Repository: frank26080115/alpha-fairy Branch: main Commit: fd1f2989f952 Files: 272 Total size: 41.2 MB Directory structure: gitextract_3jorpr5v/ ├── .github/ │ └── ISSUE_TEMPLATE/ │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── Full-Features-Guide.md ├── INSTRUCTIONS.md ├── LICENSE ├── README.md ├── arduino_workspace/ │ ├── .gitignore │ ├── AlphaFairy/ │ │ ├── AlphaFairy.h │ │ ├── AlphaFairy.ino │ │ ├── AlphaFairyCamera.cpp │ │ ├── AlphaFairyCamera.h │ │ ├── AppUtils.ino │ │ ├── AutoConnect.ino │ │ ├── Buttons.ino │ │ ├── CamUtils.ino │ │ ├── CmdlineHandlers.ino │ │ ├── ConfigMenu.ino │ │ ├── CpuFreq.ino │ │ ├── DrawingUtils.ino │ │ ├── DualShutter.ino │ │ ├── FairyMenu.cpp │ │ ├── FairyMenu.h │ │ ├── FocusEncoder.ino │ │ ├── FocusFrustration.ino │ │ ├── FocusPull.ino │ │ ├── FocusStack.ino │ │ ├── HttpServer.ino │ │ ├── InfoView.ino │ │ ├── Intervalometer.ino │ │ ├── Lepton.ino │ │ ├── PowerMgmt.ino │ │ ├── QuickRemote.ino │ │ ├── RemoteShutter.ino │ │ ├── Settings.ino │ │ ├── ShutterStep.ino │ │ ├── SoundTrigger.ino │ │ ├── TallyLite.ino │ │ ├── TimecodeReset.ino │ │ ├── Trigger.ino │ │ ├── WifiHandlers.ino │ │ ├── WifiMenu.ino │ │ ├── WifiUtils.ino │ │ ├── alfy_conf.h │ │ ├── alfy_defs.h │ │ ├── alfy_types.h │ │ └── data/ │ │ ├── chk2.txt │ │ └── chk3.txt │ ├── libraries/ │ │ ├── AlphaFairyImu/ │ │ │ ├── AlphaFairyImu.cpp │ │ │ └── AlphaFairyImu.h │ │ ├── AlphaFairy_NetMgr/ │ │ │ ├── AlphaFairy_NetMgr.cpp │ │ │ └── AlphaFairy_NetMgr.h │ │ ├── AsyncTCP/ │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── CMakeLists.txt │ │ │ ├── Kconfig.projbuild │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── component.mk │ │ │ ├── library.json │ │ │ ├── library.properties │ │ │ └── src/ │ │ │ ├── AsyncTCP.cpp │ │ │ └── AsyncTCP.h │ │ ├── DebuggingSerial/ │ │ │ ├── DebuggingSerial.cpp │ │ │ ├── DebuggingSerial.h │ │ │ └── DebuggingSerialDisable.cpp │ │ ├── ESPAsyncWebServer/ │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── _config.yml │ │ │ ├── component.mk │ │ │ ├── keywords.txt │ │ │ ├── library.json │ │ │ ├── library.properties │ │ │ └── src/ │ │ │ ├── AsyncEventSource.cpp │ │ │ ├── AsyncEventSource.h │ │ │ ├── AsyncJson.h │ │ │ ├── AsyncWebSocket.cpp │ │ │ ├── AsyncWebSocket.h │ │ │ ├── AsyncWebSynchronization.h │ │ │ ├── ESPAsyncWebServer.h │ │ │ ├── SPIFFSEditor.cpp │ │ │ ├── SPIFFSEditor.h │ │ │ ├── StringArray.h │ │ │ ├── WebAuthentication.cpp │ │ │ ├── WebAuthentication.h │ │ │ ├── WebHandlerImpl.h │ │ │ ├── WebHandlers.cpp │ │ │ ├── WebRequest.cpp │ │ │ ├── WebResponseImpl.h │ │ │ ├── WebResponses.cpp │ │ │ ├── WebServer.cpp │ │ │ └── edit.htm │ │ ├── FairyEncoder/ │ │ │ ├── FairyEncoder.cpp │ │ │ └── FairyEncoder.h │ │ ├── FairyKeyboard/ │ │ │ ├── FairyKeyboard.cpp │ │ │ ├── FairyKeyboard.h │ │ │ └── examples/ │ │ │ └── FairyKeyboardDemo/ │ │ │ └── FairyKeyboardDemo.ino │ │ ├── Lepton/ │ │ │ ├── Lepton.h │ │ │ ├── img/ │ │ │ │ ├── ColorT.h │ │ │ │ ├── ColorT_0000_16.h │ │ │ │ ├── ColorT_0001_15.h │ │ │ │ ├── ColorT_0002_14.h │ │ │ │ ├── ColorT_0003_13.h │ │ │ │ ├── ColorT_0004_12.h │ │ │ │ ├── ColorT_0005_11.h │ │ │ │ ├── ColorT_0006_10.h │ │ │ │ ├── ColorT_0007_9.h │ │ │ │ ├── ColorT_0008_8.h │ │ │ │ ├── ColorT_0009_7.h │ │ │ │ ├── ColorT_0010_6.h │ │ │ │ ├── ColorT_0011_5.h │ │ │ │ ├── ColorT_0012_4.h │ │ │ │ ├── ColorT_0013_3.h │ │ │ │ ├── ColorT_0014_2.h │ │ │ │ ├── ColorT_0015_1.h │ │ │ │ └── ColorT_0016_0.h │ │ │ ├── img_table.h │ │ │ └── lepton.cpp │ │ ├── M5DisplayExt/ │ │ │ ├── M5DisplayExt.cpp │ │ │ ├── M5DisplayExt.h │ │ │ ├── SpriteMgr.cpp │ │ │ ├── SpriteMgr.h │ │ │ └── utility/ │ │ │ ├── pngle.c │ │ │ └── pngle.h │ │ ├── M5StickC-Plus/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── library.json │ │ │ ├── library.properties │ │ │ └── src/ │ │ │ ├── AXP192.cpp │ │ │ ├── AXP192.h │ │ │ ├── Fonts/ │ │ │ │ ├── ASC16 │ │ │ │ ├── ASC16.h │ │ │ │ ├── Custom/ │ │ │ │ │ ├── Orbitron_Light_24.h │ │ │ │ │ ├── Orbitron_Light_32.h │ │ │ │ │ ├── Roboto_Thin_24.h │ │ │ │ │ ├── Satisfy_24.h │ │ │ │ │ └── Yellowtail_32.h │ │ │ │ ├── Font16.c │ │ │ │ ├── Font16.h │ │ │ │ ├── Font32rle.c │ │ │ │ ├── Font32rle.h │ │ │ │ ├── Font64rle.c │ │ │ │ ├── Font64rle.h │ │ │ │ ├── Font72rle.c │ │ │ │ ├── Font72rle.h │ │ │ │ ├── Font7srle.c │ │ │ │ ├── Font7srle.h │ │ │ │ ├── GFXFF/ │ │ │ │ │ ├── FreeMono12pt7b.h │ │ │ │ │ ├── FreeMono18pt7b.h │ │ │ │ │ ├── FreeMono24pt7b.h │ │ │ │ │ ├── FreeMono9pt7b.h │ │ │ │ │ ├── FreeMonoBold12pt7b.h │ │ │ │ │ ├── FreeMonoBold18pt7b.h │ │ │ │ │ ├── FreeMonoBold24pt7b.h │ │ │ │ │ ├── FreeMonoBold9pt7b.h │ │ │ │ │ ├── FreeMonoBoldOblique12pt7b.h │ │ │ │ │ ├── FreeMonoBoldOblique18pt7b.h │ │ │ │ │ ├── FreeMonoBoldOblique24pt7b.h │ │ │ │ │ ├── FreeMonoBoldOblique9pt7b.h │ │ │ │ │ ├── FreeMonoOblique12pt7b.h │ │ │ │ │ ├── FreeMonoOblique18pt7b.h │ │ │ │ │ ├── FreeMonoOblique24pt7b.h │ │ │ │ │ ├── FreeMonoOblique9pt7b.h │ │ │ │ │ ├── FreeSans12pt7b.h │ │ │ │ │ ├── FreeSans18pt7b.h │ │ │ │ │ ├── FreeSans24pt7b.h │ │ │ │ │ ├── FreeSans9pt7b.h │ │ │ │ │ ├── FreeSansBold12pt7b.h │ │ │ │ │ ├── FreeSansBold18pt7b.h │ │ │ │ │ ├── FreeSansBold24pt7b.h │ │ │ │ │ ├── FreeSansBold9pt7b.h │ │ │ │ │ ├── FreeSansBoldOblique12pt7b.h │ │ │ │ │ ├── FreeSansBoldOblique18pt7b.h │ │ │ │ │ ├── FreeSansBoldOblique24pt7b.h │ │ │ │ │ ├── FreeSansBoldOblique9pt7b.h │ │ │ │ │ ├── FreeSansOblique12pt7b.h │ │ │ │ │ ├── FreeSansOblique18pt7b.h │ │ │ │ │ ├── FreeSansOblique24pt7b.h │ │ │ │ │ ├── FreeSansOblique9pt7b.h │ │ │ │ │ ├── FreeSerif12pt7b.h │ │ │ │ │ ├── FreeSerif18pt7b.h │ │ │ │ │ ├── FreeSerif24pt7b.h │ │ │ │ │ ├── FreeSerif9pt7b.h │ │ │ │ │ ├── FreeSerifBold12pt7b.h │ │ │ │ │ ├── FreeSerifBold18pt7b.h │ │ │ │ │ ├── FreeSerifBold24pt7b.h │ │ │ │ │ ├── FreeSerifBold9pt7b.h │ │ │ │ │ ├── FreeSerifBoldItalic12pt7b.h │ │ │ │ │ ├── FreeSerifBoldItalic18pt7b.h │ │ │ │ │ ├── FreeSerifBoldItalic24pt7b.h │ │ │ │ │ ├── FreeSerifBoldItalic9pt7b.h │ │ │ │ │ ├── FreeSerifItalic12pt7b.h │ │ │ │ │ ├── FreeSerifItalic18pt7b.h │ │ │ │ │ ├── FreeSerifItalic24pt7b.h │ │ │ │ │ ├── FreeSerifItalic9pt7b.h │ │ │ │ │ ├── TomThumb.h │ │ │ │ │ ├── gfxfont.h │ │ │ │ │ ├── license.txt │ │ │ │ │ └── print.txt │ │ │ │ ├── HZK16 │ │ │ │ ├── HZK16.h │ │ │ │ ├── TrueType/ │ │ │ │ │ └── Not_yet_supported.txt │ │ │ │ └── glcdfont.c │ │ │ ├── M5Display.cpp │ │ │ ├── M5Display.h │ │ │ ├── M5StickCPlus.cpp │ │ │ ├── M5StickCPlus.h │ │ │ ├── RTC.cpp │ │ │ ├── RTC.h │ │ │ └── utility/ │ │ │ ├── Button.cpp │ │ │ ├── Button.h │ │ │ ├── Config.h │ │ │ ├── In_eSPI.cpp │ │ │ ├── In_eSPI.h │ │ │ ├── In_eSPI_Setup.h │ │ │ ├── MPU6886.cpp │ │ │ ├── MPU6886.h │ │ │ ├── MahonyAHRS.cpp │ │ │ ├── MahonyAHRS.h │ │ │ ├── ST7735_Defines.h │ │ │ ├── ST7735_Init.h │ │ │ ├── ST7735_Rotation.h │ │ │ ├── ST7789_Defines.h │ │ │ ├── ST7789_Init.h │ │ │ ├── ST7789_Rotation.h │ │ │ ├── Speaker.cpp │ │ │ ├── Speaker.h │ │ │ ├── Sprite.cpp │ │ │ ├── Sprite.h │ │ │ ├── qrcode.c │ │ │ └── qrcode.h │ │ ├── PtpIpCamera/ │ │ │ ├── PtpIpCamera.cpp │ │ │ ├── PtpIpCamera.h │ │ │ ├── PtpIpCameraSend.cpp │ │ │ ├── PtpIpSonyAlphaCamera.cpp │ │ │ ├── PtpIpSonyAlphaCamera.h │ │ │ ├── PtpIpSonyAlphaCameraPropDecoder.cpp │ │ │ ├── PtpIpSonyAlphaCameraSend.cpp │ │ │ ├── examples/ │ │ │ │ ├── PtpApDemo/ │ │ │ │ │ └── PtpApDemo.ino │ │ │ │ └── PtpStaDemo/ │ │ │ │ └── PtpStaDemo.ino │ │ │ ├── ptpcodes.h │ │ │ ├── ptpip_utils.cpp │ │ │ ├── ptpip_utils.h │ │ │ ├── ptpipdefs.h │ │ │ └── ptpsonycodes.h │ │ ├── SerialCmdLine/ │ │ │ ├── SerialCmdLine.cpp │ │ │ └── SerialCmdLine.h │ │ ├── SonyCameraInfraredRemote/ │ │ │ ├── SonyCameraInfraredRemote.cpp │ │ │ └── SonyCameraInfraredRemote.h │ │ ├── SonyHttpCamera/ │ │ │ ├── SonyHttpCamera.cpp │ │ │ ├── SonyHttpCamera.h │ │ │ ├── SonyHttpCameraCmds.cpp │ │ │ ├── SonyHttpCameraInit.cpp │ │ │ ├── SonyHttpCameraUtils.cpp │ │ │ └── examples/ │ │ │ └── HttpJsonDemo/ │ │ │ └── HttpJsonDemo.ino │ │ └── Wire/ │ │ ├── keywords.txt │ │ ├── library.properties │ │ └── src/ │ │ ├── Wire.cpp │ │ └── Wire.h │ └── tools/ │ └── ESP32FS/ │ └── tool/ │ └── esp32fs.jar ├── doc/ │ ├── Camera-Reverse-Engineering.md │ ├── Firmware-Engineering.md │ ├── M5StickC-MicroPython-Sucks-Rant.md │ ├── Shutter-Release-Cable-Connector.md │ ├── Wishlist-for-Sony-Mirrorless-Camera-Remote-Protocol.md │ └── img/ │ └── menu_map.afdesign ├── platformio.ini └── screens_240/ ├── dual_shutter.afphoto ├── png2jpg.py └── shutter_step.afphoto ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.md ================================================ --- name: Bug report about: Create a report to help us improve title: "[BUG]" labels: bug assignees: frank26080115 --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: 1. Do this 2. Do that 3. Do a dance 4. Do something **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots/Photos/Video** If applicable, add screenshots/photos/video to help explain your problem. **Version** Use the menu system to see the build version. It's under the UTILITIES menu, press the big button while viewing the About app. **Camera** What camera are you using it with? What connection method are you using? **Additional context** Add any other context about the problem here. ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.md ================================================ --- name: Feature request about: Suggest an idea for this project title: "[Feature Request]" labels: enhancement assignees: frank26080115 --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. ================================================ FILE: .gitignore ================================================ # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ pip-wheel-metadata/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ #PlatformIO .pio .vscode ================================================ FILE: Full-Features-Guide.md ================================================ # Full Features Guide ![](doc/img/features_family_photo.png) ## Preface This project is not a product, it is my experiment. Some of the features I've implemented are purely for fun and are gimmicks. Some of them may not work all of the time, and have camera compatibility issues. ## Map of All Menu Items [Click to zoom in](https://raw.githubusercontent.com/frank26080115/alpha-fairy/main/doc/img/menu_map.webp) [![](doc/img/menu_map_lq.jpg)](https://raw.githubusercontent.com/frank26080115/alpha-fairy/main/doc/img/menu_map.webp) ## Quick Remote ![](doc/img/quickremote_demo.webp) Press the side button to lock or unlock the motion selection, rotate the remote to change the selection. Pressing the big button will activate the function that is selected. If the camera is not connected by Wi-Fi, and the infrared emitter feature is enabled, then pressing the big button will send out the remote shutter command via the infrared emitter. If the camera is not connected by Wi-Fi, and the infrared emitter feature is disabled, and the GPIO feature is enabled, then pressing the big button will send out the remote shutter command via the shutter release cable connected to the GPIO. The focus function and zoom function are only functional on lenses that have those functions. ## Timed Remote Shutter Uses a countdown before sending the remote shutter command. ![](doc/img/spin_num_select.webp) Rotate the remote to change the time delay amount. ## Shutter Trigger ![](screens_240/shuttertrigger.png) ![](doc/img/soundtrigger.jpg) ![](doc/img/pir_motion_sensor.jpg) The trigger source is configurable between: ALL (any), microphone, external input, IMU The trigger action is configurable between: photo, video, intervalometer The option "Arm Delay" is a delay after pressing the Arm button before triggering is allowed. This gives you a chance to run away from the boobytrap you just set. The option "Start Delay" is the delay between triggering and taking the action. The option "Re-arm" means automatically arm again after taking the action. This is used for unsupervised security camera style tasks. This can be disabled. There will be a display of the relevant sensor value on the top of the screen. The triggering threshold is indicated with a tick, and can be adjusted. The microphone uses a very simple peak detector algorithm, it cannot recognize words. The external-input mode uses a voltage threshold (represented in 0-100%, 100% maps to 3.3V), it uses the ADC of the ESP32, the pin number is configurable through the main configuration menu. The signal can be inverted. Use this mode with PIR sensors, laser beam-break sensors, weight sensors, etc. The IMU motion mode uses acceleration (in G units, between 0 and 4 G) and gyro spin (in DPS, between 0 and 500 DPS). ## Talley Light The entire screen will turn bright red when the camera is recording a movie. ![](doc/img/talleylight.webp) When the camera stops recording, the red screen will disappear and the remote will go back to normal state. Pressing any button will also clear the screen and make the remote go back to normal. This feature can be disabled through the configuration menu. ## Virtual Top Panel This is a simple camera settings display. (inspired by cameras that actually have this as a real feature) ![](doc/img/virtual-top-panel.jpg) It is activated by using the Quick-Remote feature, but tilting forward to the extreme. Pressing the side-button will lock it into this mode once this mode is displayed. Pressing the big-button will cycle through 4 display styles (landscape vs portrait, black vs white). Pressing-and-holding the big button, then pressing the side button while the big button is still held, will activate **EDIT-MODE**. This mode is where the user can change the shutter speed, aperture, ISO, or exposure compensation. In edit-mode, pressing the side button will select an item to edit, tilting the remote left or right will determine the direction of the edit, and pressing the big button will perform the edit. ![](doc/img/tilt_cam_settings.webp) ## Focus Pull ![](doc/img/focus_pull_imu.webp) Adjusts the camera's manual focus. The adjustment speed is determined by the tilt angle of the remote. Press the big-button to actually perform the adjustment. ## Focus Knob A focus knob can be attached to the remote. It will adjust focus **linearly** on focus-by-wire lenses, one click of the knob equals a fixed number of focus adjustment steps. ![](doc/img/focusknob_small.jpg) The focus knob function does not need to be activated through any menus. As long as a focus knob is connected and the camera is in manual focus mode, the focus knob will work. In the configuration menu, there are two settings that can be adjusted: * MF knob steps: the number of steps of MF movement to perform for every click of the knob * MF knob large steps: the number of queued steps before the step size changes to the larger step size These two parameters needs to be calibrated for true linear operation, and the parameters will be different depending on which lens is attached to the camera. There is also a utility to automatically calibrate the large steps. ![](screens_240/focus_calib.png) ## Intervalometer ![](doc/img/intervalometer_working.webp) The intervalometer mode has configurable options for * shutter bulb time * set to zero to use the camera's own shutter speed instead of bulb mode * interval between photos * start delay before first photo * number of photos ![](doc/img/intervalometer_options.webp) NOTE: in astrophotography mode, instead of interval between photos, the user sets a pause between each photo. The side-button navigates through items. The big-button will edit the current item. The tilt angle of the remote determines if the big-button will add or subtract from the value. There is a start screen with all of the settings displayed to review, pressing the big-button on this screen will begin the intervalometer. NOTE: If Wi-Fi is not connected, the method of sending the shutter command will use the infrared emitter or GPIO (shutter release cable), depending on which one is enabled in the configuration. If this happens, the entire Alpha-Fairy is placed into a low power "airplane mode" to extend battery life. A reboot will occur to exit out of airplane mode. NOTE: Rotating the remote while in the intervalometer app will toggle "red mode", which is meant to be more eye-friendly during night time. ![](doc/img/interval_redmode.jpg) ## Focus Stacking ![](screens_240/focusstack_far_1.png) When activated, the camera will start to continuously take photos, and perform a focus adjustment in between each photo. The adjustment is from near to far, so it is recommended to start the camera's focusing point at the minimum focusing point of the lens. https://user-images.githubusercontent.com/1427911/187117478-654adc80-a0a3-48cf-8b0b-643bfd7b2884.mp4 There are two focus step sizes available, indicated by the red arrow. The camera must be placed in manual focus mode. To learn more about focus stacking: [click here for the Wikipedia article](https://en.wikipedia.org/wiki/Focus_stacking) NOTE: the camera's API offers 3 step sizes, but the biggest step size is too large to be useful ## 9-point Focus ![](screens_240/focus_9point.png) When activated, the camera will start to continuously take photos, and change the focus spot to one of 9 points between each photo. https://user-images.githubusercontent.com/1427911/187118098-8fa0dbad-dda0-40ed-ad42-8bafc61e2450.mp4 The camera must be: * placed in movable spot autofocus mode * not using MF * the option "AF with shutter" must be turned ON (through the camera's menu system) ## Shutter Speed Step ![](screens_240/shutter_step.png) This is an experimental feature that does not work very well. When activated, the camera will start to continuously take photos, and change the shutter speed to a slower speed between each photo. https://user-images.githubusercontent.com/1427911/187117818-dda28b7c-d5e2-45bd-96e9-6ff3c6a178e0.mp4 The camera must be placed in Shutter Priority mode or Manual Exposure mode. This is an experimental feature, meant to allow for experimentation with long exposures without touching the camera. NOTE: this mode does not work very well, the camera does not seem to respond to the speed setting command 100% of the time ## Dual Shutter This is an experimental feature that does not work very well. The goal is to take two photos in quick succession, but each photo has a different shutter speed. The shutter speed (and ISO setting) for the first photo will be the setting on the camera. The second photo's settings will be the settings registered into the remote. To register settings for the second photo, be on the "register settings" screen. Use the camera's controls to set the settings you want, and then press the big-button. The settings will then be displayed on the screen. ![](doc/img/dualshutter_register.png) Once the settings are registered, set your camera to the settings for the first photo. Then navigate to the "press to shoot" screen. Now either half-press the shutter button on the camera, or press the big-button on the remote. The sequence of photos will be taken. ![](doc/img/dualshutter_operation.png) Use photo editing software to merge the two photos. NOTE: this mode does not work very well, the camera does not seem to respond to the speed setting command 100% of the time ## Focus Frustration ![](screens_240/focus_frust.png) When the remote is in this mode, and the user repeatedly activates and deactivates autofocus (repeatedly tapping half-pressing the shutter button), the remote will issue a manual focus command to place the focus plane at the minimum focus distance. This is an experimental feature, meant more as a joke, for those situations when the camera's AF locks onto the background and refuses to focus onto the subject you actually want it to focus on. NOTE: the reporting rate of the focus status from the camera is rather slow, so the rapid tapping detection doesn't work very reliably ## Timecode Reset ![](screens_240/timecode_reset.png) Press the big button to send the infrared command that resets timecode on a supported Sony camera. ([see feature request](https://github.com/frank26080115/alpha-fairy/issues/13)) ## Auto Connect ![](doc/img/autoconnect_ani.webp) Scans for Wi-Fi access points. It does two different searches: * first searches for any SSIDs that the remote already has in the Wi-Fi profile database * if none are found, it then looks for any SSIDs that appears to be a Sony camera When a SSID is found, a connection will be attempted. If a password is required, the user will be prompted to enter the password. ## Configuration ![](screens_240/config.png) Some options like the power-save timeout can be edited through the configuration screen. The side-button navigates through items. The big-button will edit the current item. The tilt angle of the remote determines if the big-button will add or subtract from the value. There is an explicit save-and-exit item, press the big button on it to save the new settings. If the power button is pressed, the configuration screen will exit without saving. ## Wi-Fi Configuration ![](screens_240/wifi_config.png) Entering the Wi-Fi configuration menu item will launch the HTTP server, and the remote will begin operating as a soft-AP (access point) with the default SSID and default password (SSID: "fairywifi", password: "1234567890"). The submenu items contain information and QR codes for a smartphone to establish a connection to the remote. ![](doc/img/wificfg_qrcode.jpg) **NOTE:** the screen is super tiny and your QR scanner might not actually work, sorry! Just type in the credentials manually if this is the case. ![](doc/img/wificonfig_androidwifi.png) With a smartphone browser, the entire list of Wi-Fi profiles (ie. cameras registered with the remote) can be edited, and also new entries can be added. ![](doc/img/wificonfig_captiveportal.png) NOTE: this uses a captive portal, but another QR code is provided for a normal web browser too One of the submenu items is the profile switcher. Rotate the remote to select another profile number. Press the big-button to save the selection, that profile will be used on the next boot. Press and hold the big-button to save and reboot the remote immediately. One of these submenu items is a factory reset option. ## Wi-Fi Info ![](screens_240/wifiinfo.png) This will simply display the current Wi-Fi settings, useful to look at while the user is configuring the camera. ![](doc/img/wifiinfo_example.jpg) When a camera is connected, this screen will also show the camera's name. ================================================ FILE: INSTRUCTIONS.md ================================================ This document covers: * Installation and setup of Arduino for ESP32 * Building the source code and flashing onto a M5StickC-Plus unit * Connecting the Alpha-Fairy to a Sony Camera * Basic usage of the Alpha-Fairy # Disclaimer There are inherent dangers in the use of any software/firmware available for download on the Internet, and we caution you to make sure that you completely understand the potential risks before downloading any of the software/firmware. The software, firmware, instructions, and code samples available on this website are provided "as is" without warranty of any kind, either express or implied. Use at your own risk. The use of the software, firmware, instructions, and scripts on this site is done at your own discretion and risk and with agreement that you will be solely responsible for any damage to your electronic devices or loss of data that results from such activities. You are solely responsible for adequate protection and backup of the data and equipment used in connection with any of the software or firmware, and we will not be liable for any damages that you may suffer in connection with using, modifying or distributing any of this software or firmware. No advice or information, whether oral or written, obtained by you from us or from this website shall create any warranty for the software or firmware. We make makes no warranty that * the software or firmware will meet your requirements * the software or firmware will be uninterrupted, timely, secure or error-free * the results that may be obtained from the use of the software or firmware will be effective, accurate or reliable * the quality of the software or firmware will meet your expectations * any errors in the software or firmware obtained from us will be corrected. The software, firmware, code sample and their documentation made available on this website: * could include technical or other mistakes, inaccuracies or typographical errors. We may make changes to the software or firmware or documentation made available on its web site at any time without prior-notice. * may be out of date, and we make no commitment to update such materials. We assume no responsibility for errors or omissions in the software or documentation available from its web site. In no event shall we be liable to you or any third parties for any special, punitive, incidental, indirect or consequential damages of any kind, or any damages whatsoever, including, without limitation, those resulting from loss of use, data or profits, and on any theory of liability, arising out of or in connection with the use of this software or firmware. # Quick Way: Build with PlatformIO PlatformIO is an alternative IDE to Arduino, if you choose to use PlatformIO, skip the instruction section about Arduino. Download a copy of this particular GitHub repo. ![](doc/img_instruct/github_download.png) Install [Visual Studio Code](https://code.visualstudio.com/download) (aka VSCode) Then install the extension [PlatformIO](https://platformio.org/platformio-ide), this is done from within VSCode by first clicking on "Extensions" ![](doc/img_instruct/pio_install.png) After installation, restart the VSCode editor and open the source code directory. ![](doc/img_instruct/pio_open_folder.png) ![](doc/img_instruct/pio_after_open.png) On the left-hand side, select the PlatformIO icon. Connect the M5StickC-Plus now. Select the right COM port ![](doc/img_instruct/pio_select_com_port.png) On the left-hand side, click "Project Tasks -> m5stick-c -> General -> Upload". (the toolbox will automatically download the toolchain and build the project the first time it is run) ![](doc/img_instruct/pio_upload.png) After that, in "Project Tasks -> m5stick-c -> Platform" choose "Build Filesystem Image" and then "Upload Filesystem Image" ![](doc/img_instruct/pio_upload_data.png) # Normal Way: Arduino IDE, Installation Setup on PC This is an open source firmware project, it is free for anybody to download and install onto the M5StickC-Plus. I do not sell any pre-installed units, so for you to build one of these Alpha-Fairy remotes, you must follow these installation instructions. Install [Arduino IDE](https://www.arduino.cc/en/software), please obtain **version 1.8.19**, later versions (such as v 2.x) will not work. Scroll down on the page until the `Legacy IDE (1.8.X)` section. ![](doc/img_instruct/legacy_ide.png) Download a copy of this particular GitHub repo. ![](doc/img_instruct/github_download.png) Find the directory called "arduino_workspace". From inside Arduino IDE, use the menu bar, click File->Preferences, put the path to "arduino_workspace" into "Sketchbook Location". ![](doc/img_instruct/sketchbook_location.png) Install the ESP32 toolchain. From inside Arduino IDE, use the menu bar, click File->Preferences. The "Additional Boards Manager URLS" text box needs to be filled with "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json", then click "OK". ![](doc/img_instruct/board_manager_url.png) Then use the board manager to install the ESP32 toolchain. From inside Arduino IDE, use the menu bar, click Tools->Boards->Board Manager. Inside the board manager, search for "ESP32" and install the toolchain. (version 2.0.5 is fine) ![](doc/img_instruct/board_manager_install.png) Connect the M5StickC-Plus to the computer, follow instructions to install the FTDI driver (if required): https://docs.m5stack.com/en/quick_start/m5stickc_plus/arduino (this may also contain instructions for steps I've already listed) Close the Arduino IDE and open it again. **NOTE:** if you are updating the firmware (thank you for keeping up to date with my project and being patient), then you will be repeating the steps below. Open Arduino IDE, from the menu bar, select the correct board: Tools->Boards->ESP32 Boards->M5StickC ![](doc/img_instruct/select_board.png) Select the correct serial port: Tools->Port->(select the option that matches the M5StickC) ![](doc/img_instruct/select_com_port.png) Using Arduino IDE, open the file at "arduino_workspace/AlphaFairy/AlphaFairy.ino", this should be available in the sketchbook directly. ![](doc/img_instruct/open_sketch.png) Upload the image files: Tools->"ESP32 Sketch Data Upload" ![](doc/img_instruct/sketch_data_upload.png) (if the "ESP32 Sketch Data Upload" is missing, follow the instructions at https://github.com/me-no-dev/arduino-esp32fs-plugin to install the plugin, which also requires you to restart the Arduino IDE) **IMPORTANT:** every time you press "ESP32 Sketch Data Upload", the Wi-Fi profiles you have saved **will be erased**. The web interface can be used to view all existing Wi-Fi profiles so you can back them up. Disable core debug level: Tools->"Core Debug Level:", select "None" ![](doc/img_instruct/disable_debug_level.png) Click "Upload" on the tool-bar ![](doc/img_instruct/click_upload.png) # Connecting Your Camera Make sure your camera's Wi-Fi is configured to use the 2.4 GHz band. ![](doc/img/wifi_freq_24ghz_band.jpg) From the camera menu, the option "Still Image Save Destination" should be set to "Camera Only". There are actually two places where this is set, one for PC remote, one for smartphone remote. Please set "Camera Only" to both modes. ![](doc/img/smartphone_save_cam_only.webp) ![](doc/img/pc_save_cam_only.webp) ## For PTP capable cameras (newer models) AP mode When the AlphaFairy code is running on the M5StickC, turn on the camera. Follow instructions similar to https://support.d-imaging.sony.co.jp/app/imagingedge/en/instruction/4_1_connection.php (note: we are using the Wi-Fi Access Point method, without pairing) ![](doc/img/wifilogin_a1.webp) From the camera menu, the option "PC control method" should be "Wi-Fi Access Point". From the camera menu, airplane mode should be disabled, FTP should be disabled, control-with-smartphone should be disabled. From the camera menu, the option "connect without pairing" should be enabled. **This is important! Sony cameras don't have an option to un-pair, only through a factory reset, and only one pairing can exist!** If you are having trouble with this step (some cameras do not allow "connect without pairing"), then try the STA connection mode (described below). From the camera menu, connect to the SSID that the AlphaFairy is broadcasting ("fairywifi" by default), the password should be "1234567890" On the M5StickC's screen, the "no signal" icon should disappear. On the camera's screen, the `Wi-Fi` symbol should be fully white and the `-PC-` icon should be fully white. ## STA mode, both PTP and HTTP JSON-RPC protocol, all other cameras Turn on the camera, and activate the "Control from Smartphone" function. This may be implemented differently on different cameras: * Newer cameras will present a QR code but also have an option to show the SSID and password as text ![](doc/img/wifilogin_a1_sta.webp) ![](doc/img/wifilogin_a6600.webp) * Older cameras may have a "Smart Remote Embedded" application inside a collection of applications ![](doc/img/wifilogin_rx100.webp) On the Alpha-Fairy, use the Auto Connect function. A search for the camera will be initiated and when the camera is found, you will be prompted to input the password. Input the password of the camera to complete the connection. ![](doc/img/autoconnect_ani.webp) Completing the connection will add the camera to the next available Wi-Fi profile slot. You can chose which profile to boot with by using the Wi-Fi Config menu. Otherwise, using the Auto Connect function again will also work (and the password will be remembered). ## Managing Multiple Cameras The Alpha-Fairy has 20 available slots for Wi-Fi profiles, each slot can be used for a different camera. Each profile may be used in AP mode (Alpha-Fairy is an access point, camera connects to the Alpha-Fairy) or STA mode (Alpha-Fairy is a station, and connects to the access point presented by the camera). Slot 0 is always the default slot, AP mode, SSID: "fairywifi", password: "1234567890". This slot cannot be edited. This slot is also used for the web interface. To select one of the slots/cameras to use, go into the Wi-Fi configuration menu, there is a screen where you can select the slot. To change the slot number, rotate the entire Alpha-Fairy device, a clockwise rotation increments the slot number, counter-clockwise rotation decrements the slot number. Press the big button to save the slot number, and that slot number will be used the next time the Alpha-Fairy boots. (holding the big button will save the slot number and then immediately perform a device reboot) # General Usage ![](doc/img/4sides.jpg) There are three buttons: "big", "side", and "power" The side button navigates, chooses the next item. The big button is used to either enter a menu item, or activate a menu item. The power button turns the device on, and holding it down for 4 seconds (or more) will shutdown the device. It also acts as an exit button when you press it quickly. When the battery is low, recharge the remote with an USB-C cable. ## Usage of Features [Click Here](Full-Features-Guide.md) to view the Full Features Guide ## Motion Controls When trying to adjust a configurable option, there will be either a plus (+) or minus (-) sign beside the number. Tilting the device to the right will use plus mode, pressing the big button will add to the number. Tilting the device to the left will use minus mode, pressing the big button will subtract from the number. ![](doc/img/config_inc_dec.webp) When in delayed remote shutter mode, completely rotating the device will change the delay. ![](doc/img/spin_num_select.webp) When in focus pull mode or zoom adjust mode, the tilt of the device determines the speed and direction of the adjustment, press the big button to perform the adjustment. ![](doc/img/focus_pull_imu.webp) When prompted to input a password for a Wi-Fi connection, a keyboard is displayed. To select a key on the keyboard, rotate the keyboard around to change the selection. Pressing the big-button will press the highlighted key. Pressing the side-button will toggle between upper-case and lower-case. Pressing the power button will cancel the keyboard. Use the `ENT` key is the enter key. ![](doc/img/imu_keyboard.webp) ## Status Icons ![](doc/img/icon_labels.png) ## Shutter Release Cable Connector It may be wise to use the intervalometer mode with a shutter release cable, due to the chance of the Wi-Fi connection being unreliable or having too much latency. [See this page for details](doc/Shutter-Release-Cable-Connector.md) ![](doc/img/shutter_release_cable_plugged_in.jpg) ## Focus Knob A rotary encoder can be purchased (from M5Stack) and connected to the remote to function as a focus pulling knob. It will adjust focus **linearly** with focus-by-wire lenses, one click of the knob equals a fixed number of focus adjustment steps. It is recommended that a larger knob and handle be 3D printed for practical focus pulling, and for attaching to a rig. ![](doc/img/focusknob_1440.jpg) ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2022 Frank Zhao Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # Alpha-Fairy This is a tiny remote control for Sony Alpha cameras. ![](doc/img/main_menu_options.webp) The hardware platform is a [M5StickC-Plus](https://shop.m5stack.com/products/m5stickc-plus-esp32-pico-mini-iot-development-kit), which is a DIY device with a [ESP32-PICO](https://www.espressif.com/en/products/socs/esp32) inside, along with a colour LCD screen, rechargable battery, some buttons, and a few other features. ![](doc/img/size_comparison.jpg) This remote combines the features of other simple camera remotes, plus many complex functions that automates some tasks that photographers would like to do. It communicates wirelessly with the camera via [Picture Transfer Protocol](https://en.wikipedia.org/wiki/Picture_Transfer_Protocol), mostly reverse engineered by spying on Sony's own [Imaging Edge Remote](https://imagingedge.sony.net/l/ie-desktop.html#remote) application with [Wireshark](https://www.wireshark.org/). A second protocol uses HTTP and supports more cameras but has less features. This GitHub repo contains the C++ source code (and graphics files) that can be compiled and loaded into the M5StickC-Plus, so anybody can [create this remote](INSTRUCTIONS.md). Supported camera models: A1, A6600, A6000, RX100M4, RX0M2 Untested but theoretically can support over PTP protocol: A7SM3, A9M2, A7M4A, A7RM4, A7C, A7M4, ZV-E10, listed on https://support.d-imaging.sony.co.jp/app/sdk/en/index.html Untested but theoretically can support over HTTP protocol: https://developer.sony.com/develop/cameras/api-information/supported-features-and-compatible-cameras The fun part about this project for me is to create a usable user interface on a device with only two buttons plus an IMU. ## Main Features ![](doc/img/features_family_photo.png) * Remote Shutter (with optional timer), Movie Record, Settings View/Adjust * Focus Stack * takes consecutive photos as the focus is slowly shifted, this is a technique used in macro photography and some other camera brands offer this in-camera (but not Sony) * Focus 9-Point * takes consecutive photos as the auto-focus point moves around the scene, to obtain multiple photos focused on multiple objects, convenient for landscape photography * Focus Pull * with optional focus knob (for **linear** focus pull) * Talley Light, Virtual "Top Panel" * Sensor Trigger Shutter * trigger sources: microphone, voltage input, and/or IMU motion trigger * trigger action: take photo, take video (adjustable duration), start intervalometer * adjustable delays before arming and after trigger * good for security camera applications * Dual Shutter * takes two consecutive photos, with different shutter speeds, for compositing photos with both sharp subjects and blurred features * Intervalometer * supports AF-C, different from in-camera intervalometer (which forces AF-S) * Astrophotography Intervalometer * same as intervalometer but more focused on bulb mode, and uses pause time instead of fixed interval time * Focus Frustration * is your camera not focusing on the thing you want it to focus on? rapidly tapping the AF button repeatedly will automatically pull the focus back to the nearest possible point * [Timecode reset](https://github.com/frank26080115/alpha-fairy/issues/13), can be used to reset timecode on multiple cameras simultaneously ### Minor Features * can fall-back to using infrared communication if Wi-Fi is disconnected * can use shutter release cable connected to GPIO * status bar with battery indicator and connection indicator * auto power save * configurable options * serial port debugging and command line interface * smartphone web-browser interface to manage multiple camera logins ## Known Problems The camera does not re-establish a broken connection. If the remote is turned off (or disconnected for other reasons), you need to turn off the camera and turn it back on (after the remote is turned back on). The features that can change shutter speed are not reliable. The camera takes a long (and variable) time to register a remote command to change the shutter speed. By long, I mean sometimes up to several seconds, or never. Battery life is a bit short. Do not use it for intervalometer purposes without an external power source. Also, using Wi-Fi for intervalometer is ill-advised (reliability and latency issues), use a real shutter release cable if possible. Putting a full frame camera in APS-C mode will disable a ton of features from working. Only Wi-Fi 2.4 GHz mode is supported. Other issues will be logged in the Issues tab of GitHub. ## More * [Instructions for Setup and Usage](INSTRUCTIONS.md) * [Full Features Guide](Full-Features-Guide.md) * [Firmware Engineering](doc/Firmware-Engineering.md) * [Camera Reverse Engineering](doc/Camera-Reverse-Engineering.md) * [My personal website blog post](https://eleccelerator.com/alpha-fairy-wireless-camera-remote/) * [Wishlist of things I'd like Sony to change](doc/Wishlist-for-Sony-Mirrorless-Camera-Remote-Protocol.md) ## Demo Videos #### Focus Stacking: https://user-images.githubusercontent.com/1427911/187117478-654adc80-a0a3-48cf-8b0b-643bfd7b2884.mp4 #### Shutter Speed Stepping: https://user-images.githubusercontent.com/1427911/187117818-dda28b7c-d5e2-45bd-96e9-6ff3c6a178e0.mp4 #### Camera Triggering: https://user-images.githubusercontent.com/1427911/195257775-e0213d1b-5642-413e-9474-2736aee4f98b.mp4 #### Focus Pull Knob: https://user-images.githubusercontent.com/1427911/195407559-9cf6f15e-1cde-4ad6-bc44-528534690053.mp4 ================================================ FILE: arduino_workspace/.gitignore ================================================ tools/* libraries/Adafruit* libraries/Arduino* libraries/FastLED* libraries/IRremote* libraries/MAX30100* libraries/HX711_Arduino_Library libraries/MFRC522_I2C libraries/PCA9554 libraries/M5GFX libraries/PubSubClient libraries/M5StickC libraries/TFTTerminal libraries/M5_ADS1100 libraries/TinyGPSPlus libraries/M5_ADS1115 libraries/UNIT_ENV libraries/M5_BM8563 libraries/ClosedCube_TCA9548A libraries/M5_EzData libraries/FFT libraries/M5_FPC1020A libraries/Wifi/examples libraries/Wifi/keywords.txt libraries/Wifi/library.properties libraries/M5* libraries/readme.txt #AlphaFairy/data/* # Prerequisites *.d # Compiled Object files *.slo *.lo *.o *.obj # Precompiled Headers *.gch *.pch # Compiled Dynamic libraries *.so *.dylib *.dll # Fortran module files *.mod *.smod # Compiled Static libraries *.lai *.la *.a *.lib # Executables *.exe *.out *.app # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ pip-wheel-metadata/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ #PlatformIO .pio .vscode ================================================ FILE: arduino_workspace/AlphaFairy/AlphaFairy.h ================================================ #ifndef _ALPHAFAIRY_H_ #define _ALPHAFAIRY_H_ #include #include #include "alfy_conf.h" #include "alfy_types.h" #include "alfy_defs.h" #include #include #include #include #include #include #include #include #include "AlphaFairyCamera.h" #include #include #include #include #include #include #include #ifdef ENABLE_BUILD_LEPTON #include #endif extern PtpIpSonyAlphaCamera ptpcam; extern SonyHttpCamera httpcam; extern AlphaFairyCamera fairycam; extern SerialCmdLine cmdline; extern configsettings_t config_settings; extern AlphaFairyImu imu; extern SpriteMgr* sprites; extern #ifdef DISABLE_ALL_MSG DebuggingSerialDisabled #else DebuggingSerial #endif dbg_ser; extern bool app_poll(void); extern void app_waitAllRelease(void); extern void app_waitAllReleaseConnecting(void); extern void app_waitAllReleaseUnsupported(void); extern void app_sleep(uint32_t x, bool forget_btns); extern void settings_save(void); extern void pwr_lcdUndim(void); extern void pwr_sleepCheck(void); extern void pwr_tick(bool); extern bool btnSide_hasPressed(void); extern bool btnBig_hasPressed(void); extern bool btnPwr_hasPressed(void); extern bool btnBoth_hasPressed(void); extern bool btnAny_hasPressed(void); extern bool btnSide_isPressed(void); extern bool btnBig_isPressed(void); extern bool btnPwr_isPressed(void); extern bool btnBoth_isPressed(void); extern bool btnAll_isPressed(void); extern void btnSide_clrPressed(void); extern void btnBig_clrPressed(void); extern void btnPwr_clrPressed(void); extern void btnBoth_clrPressed(void); extern void btnAny_clrPressed(void); #endif ================================================ FILE: arduino_workspace/AlphaFairy/AlphaFairy.ino ================================================ #include "AlphaFairy.h" #include #include #include #include "FairyMenu.h" #include #include #include #include "AlphaFairyCamera.h" #include #include #include #include #include #include #ifdef ENABLE_BUILD_LEPTON #include #endif PtpIpSonyAlphaCamera ptpcam((char*)"ALPHA-FAIRY", NULL); SonyHttpCamera httpcam; AlphaFairyCamera fairycam(&ptpcam, &httpcam); #ifdef DISABLE_ALL_MSG DebuggingSerialDisabled #else DebuggingSerial #endif dbg_ser(&Serial); uint32_t gpio_time = 0; // keeps track of the GPIO shutter activation time so it doesn't get stuck bool airplane_mode = false; bool redraw_flag = false; // forces menu redraw SpriteMgr* sprites; AlphaFairyImu imu; FairyEncoder fencoder; FairySubmenu main_menu(NULL, 0); void setup() { Serial.begin(SERIAL_PORT_BAUDRATE); dbg_ser.enabled = true; Wire1.begin(21, 22); Wire1.setClock(400000); cpufreq_init(); settings_init(); btns_init(); SonyCamIr_Init(); M5.begin(false, true, false); // do not initialize the LCD, we have our own extended M5Lcd class to initialize later M5.IMU.Init(); M5.IMU.SetGyroFsr(M5.IMU.GFS_500DPS); M5.IMU.SetAccelFsr(M5.IMU.AFS_4G); M5.Axp.begin(); M5.Axp.ScreenSwitch(false); // turn off the LCD backlight while initializing, avoids junk being shown on the screen M5Lcd.begin(); // our own extended LCD object M5Lcd.fillScreen(TFT_BLACK); M5.Axp.ScreenBreath(config_settings.lcd_brightness); spiffs_init(); #ifdef PMIC_LOG_ON_BOOT pmic_startCoulombCount(); #endif setup_menus(); cmdline.print_prompt(); sprites = new SpriteMgr(&M5Lcd); httpcam.borrowBuffer(ptpcam.donateBuffer(), DATA_BUFFER_SIZE); cam_cb_setup(); wifi_init(); dbg_ser.printf("finished setup() at %u ms\r\n", millis()); // clear the button flags btnAny_clrPressed(); imu.poll(); pwr_tick(true); #ifdef DISABLE_ALL_MSG dbg_ser.enabled = false; fairycam.set_debugflags(0); #endif #ifdef MUTE_NETMSG_ON_BOOT fairycam.set_debugflags(0); #endif btnAny_clrPressed(); srand(lroundf(imu.accX) + lroundf(imu.accY) + lroundf(imu.accZ)); } void loop() { main_menu.on_execute(); // this runs an internal loop, the loop calls app_poll, and app_poll will call yield, which resets the watchdog dbg_ser.println("main menu exited"); // exited pwr_shutdown(); } FairySubmenu menu_remote ("/main_remote.png"); FairySubmenu menu_focus ("/main_focus.png"); FairyCfgApp menu_interval("/main_interval.png", "/intervalometer.png", MENUITEM_INTERVAL); FairyCfgApp menu_astro ("/main_astro.png" , "/galaxy_icon.png" , MENUITEM_ASTRO); FairySubmenu menu_utils ("/main_utils.png"); FairySubmenu menu_auto ("/main_auto.png"); void setup_menus() { // install menu items // these calls must be in the correct order because internally the menu system uses a linked list // taking advantage of Arduino's automatic function prototype generation // each *.ino file can have its own setup_xxx function main_menu.install(&menu_remote); menu_remote.set_enc_nav(false); main_menu.install(&menu_focus); menu_focus.set_enc_nav(false); setup_intervalometer(); main_menu.install(&menu_utils ); setup_autoconnect(); #ifdef ENABLE_BUILD_LEPTON setup_leptonflir(); #endif setup_qikrmt(); setup_remoteshutter(); setup_shuttertrigger(); setup_dualshutter(); setup_timecodeReset(); setup_focusstack(); setup_shutterstep(); setup_focuspull(); setup_focusfrustration(); setup_wifimenus(); setup_configmenu(); setup_focuscalib(); setup_aboutme(); } bool app_poll() { static uint8_t busy_cnt = 0; // make sure we actually do something at least sometimes // high priority tasks if (airplane_mode == false) { NetMgr_task(); ptpcam.task(); httpcam.task(); #ifdef HTTP_ON_BOOT httpsrv_poll(); #endif } // do low priority tasks if the networking is not busy if (ptpcam.isKindaBusy() == false || airplane_mode != false || busy_cnt > 1) { imu.poll(); cmdline.task(); fenc_task(); btnPwr_poll(); shutterrelease_task(); if (imu.hasMajorMotion) { // do not sleep if the user is moving the device imu.hasMajorMotion = false; pwr_tick(true); } pmic_log(); yield(); cpufreq_task(); pwr_lightSleepEnter(); // this doesn't work yet busy_cnt = 0; return true; // can do more low priority tasks } else { busy_cnt++; } return false; // should not do more low priority tasks } void shutterrelease_task() { if (gpio_time != 0) { // release the GPIO after a timeout uint32_t telapsed = millis() - gpio_time; int32_t tlimit = config_settings.intv_bulb; tlimit = (tlimit <= 0) ? config_settings.astro_bulb : tlimit; tlimit *= 1000; // previous units were in seconds, next unit is in milliseconds tlimit = (tlimit <= 0) ? config_settings.shutter_press_time_ms : tlimit; if (tlimit > 0 && (telapsed >= tlimit)) { safe_all_pins(); gpio_time = 0; } } } extern int wifi_err_reason; extern bool prevent_status_bar_thread; void critical_error(const char* fp) { prevent_status_bar_thread = true; // critical error can happen from the WiFi thread, so prevent the GUI thread from drawing a status bar over the error screen cpufreq_boost(); pwr_tick(true); M5.Axp.GetBtnPress(); // clear the button bit uint32_t t = millis(), now = t; // disconnect esp_wifi_disconnect(); esp_wifi_stop(); esp_wifi_deinit(); M5Lcd.setRotation(0); M5Lcd.drawPngFile(SPIFFS, fp, 0, 0); if (wifi_err_reason != 0) { // indicate the error code if there is one M5Lcd.setTextFont(2); M5Lcd.highlight(true); M5Lcd.setTextWrap(true); M5Lcd.setHighlightColor(TFT_BLACK); M5Lcd.setTextColor(TFT_WHITE, TFT_BLACK); M5Lcd.setCursor(5, M5Lcd.height() - 16); // bottom of screen M5Lcd.printf("REASON: %d", wifi_err_reason); } while (true) { pwr_sleepCheck(); // restart on button press if (btnBoth_hasPressed()) { ESP.restart(); } // shutdown on power button press if (M5.Axp.GetBtnPress() != 0) { show_poweroff(); M5.Axp.PowerOff(); } // if debugging over serial port, or allow the user to plug it in now, repeat the message if (((now = millis()) - t) > 2000) { Serial.print("CRITICAL ERROR"); if (wifi_err_reason != 0) { Serial.printf(", WIFI REASON %d", wifi_err_reason); } Serial.println(); t = now; } } } class AppAboutMe : public FairyMenuItem { public: AppAboutMe() : FairyMenuItem("/about.png") { }; virtual bool on_execute(void) { int loop_cnt = 0; int16_t ystart = 110; M5Lcd.fillRect(0, ystart, M5Lcd.width(), M5Lcd.height() - ystart - 14, TFT_WHITE); do { gui_startMenuPrint(); M5Lcd.setCursor(SUBMENU_X_OFFSET, ystart); #ifndef ENABLE_BUILD_LEPTON M5Lcd.print("Build"); ystart += M5Lcd.fontHeight() + 2; M5Lcd.setCursor(SUBMENU_X_OFFSET, ystart); #endif M5Lcd.printf("V %s", ALFY_VERSION); // found in alfy_conf.h , please change with every new build ystart += M5Lcd.fontHeight() + 2; M5Lcd.setCursor(SUBMENU_X_OFFSET, ystart); M5Lcd.setTextFont(2); #ifdef ENABLE_BUILD_LEPTON M5Lcd.print("LEPTON"); ystart += M5Lcd.fontHeight() + 2; M5Lcd.setCursor(SUBMENU_X_OFFSET, ystart); #endif M5Lcd.print("Debug "); #ifdef DISABLE_ALL_MSG M5Lcd.print("OFF"); #else M5Lcd.print("ON"); #endif ystart += M5Lcd.fontHeight() + 2; M5Lcd.setCursor(SUBMENU_X_OFFSET, ystart); M5Lcd.print("CMD-line "); #ifdef DISABLE_ALL_MSG M5Lcd.print("OFF"); #else M5Lcd.print("ON"); #endif ystart += M5Lcd.fontHeight() + 2; M5Lcd.setCursor(SUBMENU_X_OFFSET, ystart); #ifdef DISABLE_POWER_SAVE M5Lcd.print("PWR-save OFF"); ystart += M5Lcd.fontHeight() + 2; M5Lcd.setCursor(SUBMENU_X_OFFSET, ystart); #endif #ifdef DISABLE_STATUS_BAR M5Lcd.print("STS-bar OFF"); ystart += M5Lcd.fontHeight() + 2; M5Lcd.setCursor(SUBMENU_X_OFFSET, ystart); #endif // if the screen overflows, try redrawing everything but full-screen if (ystart >= M5Lcd.height() - 16) { ystart = 0; M5Lcd.fillRect(0, ystart, M5Lcd.width(), M5Lcd.height() - ystart, TFT_WHITE); ystart = SUBMENU_Y_OFFSET; continue; } else { break; } } while ((loop_cnt++) <= 2); app_waitAllRelease(); return false; }; }; void setup_aboutme(void) { static AppAboutMe app; menu_utils.install(&app); } void spiffs_init(void) { uint8_t fail = 0; if (!SPIFFS.begin(false)) { Serial.println("SPIFFS Mount Failed"); fail = 1; } else if (!SPIFFS.exists("/about.png")) { // A file that should exist which we can use to quickly test that the files are present. // The main case here is that the user only flashed the firmware, and not the FS, so a // single file is a sufficient check. fail = 2; } else if (!SPIFFS.exists(ALFY_VERSION_FILE_CHECK)) // defined in alfy_conf.h { // use this file to make sure the version matches the files // change the file name when files are updated fail = 3; } // If there was any issue finding the images, give the user a helpful message if (fail != 0) { gui_startAppPrint(); M5Lcd.setTextColor(TFT_RED, TFT_BLACK); M5Lcd.setTextFont(4); M5Lcd.setCursor(SUBMENU_X_OFFSET, SUBMENU_Y_OFFSET); M5Lcd.printf("ERROR!!!"); M5Lcd.setCursor(SUBMENU_X_OFFSET, SUBMENU_Y_OFFSET + 25); if (fail != 3) { M5Lcd.printf("Image Files Missing"); } else { M5Lcd.printf("Files out-of-date"); } M5Lcd.setTextFont(2); M5Lcd.setCursor(SUBMENU_X_OFFSET, SUBMENU_Y_OFFSET + 50); M5Lcd.printf("Please use the Arduino IDE"); M5Lcd.setCursor(SUBMENU_X_OFFSET, SUBMENU_Y_OFFSET + 68); if (fail != 3) { M5Lcd.printf("to upload the missing files"); } else { M5Lcd.printf("to upload the new files"); } // We should still let the user power off... No sense killing the battery. while (true) { yield(); if (fail == 1) { Serial.println("SPIFFS Mount Failed"); } else if (fail == 2) { Serial.println("Image files are missing"); } if (M5.Axp.GetBtnPress() != 0) { pwr_shutdown(); } delay(100); } } } ================================================ FILE: arduino_workspace/AlphaFairy/AlphaFairyCamera.cpp ================================================ #include "AlphaFairyCamera.h" extern uint32_t shutter_to_millis(uint32_t x); extern uint32_t parse_shutter_speed_str(char* s); static int get_idx_in_str_tbl(char* tbl_prt, uint32_t x, uint32_t cvt_mode); static bool get_str_at_tbl_idx(char* tbl, int idx, char* dst); static bool get_val_at_tbl_idx(char* tbl, int idx, void* dst, uint32_t cvt_mode); uint32_t AlphaFairyCamera::getIp(void) { if (cam_ptp->isOperating()) { return cam_ptp->getIp(); } if (cam_http->isOperating()) { return cam_http->getIp(); } return 0; } char* AlphaFairyCamera::getCameraName(void) { if (cam_ptp->isOperating()) { return cam_ptp->getCameraName(); } if (cam_http->isOperating()) { return cam_http->getCameraName(); } return NULL; } void AlphaFairyCamera::wait_while_busy(uint32_t min_wait, uint32_t max_wait, volatile bool* exit_signal) { if (cam_ptp->isOperating()) { return cam_ptp->wait_while_busy(min_wait, max_wait, exit_signal); } if (cam_http->isOperating()) { return cam_http->wait_while_busy(min_wait, max_wait, exit_signal); } } void AlphaFairyCamera::wait_while_saving(uint32_t min_wait, uint32_t max_wait_get, uint32_t max_wait_save) { if (cam_ptp->isOperating()) { return cam_ptp->wait_while_saving(min_wait, max_wait_get, max_wait_save); } if (cam_http->isOperating()) { return cam_http->wait_while_saving(min_wait, max_wait_get, max_wait_save); } } bool AlphaFairyCamera::is_movierecording(void) { if (cam_ptp->isOperating()) { return cam_ptp->is_movierecording(); } if (cam_http->isOperating()) { return cam_http->is_movierecording(); } return false; } bool AlphaFairyCamera::is_manuallyfocused(void) { if (cam_ptp->isOperating()) { return cam_ptp->is_manuallyfocused(); } if (cam_http->isOperating()) { return cam_http->is_manuallyfocused() == SHCAM_FOCUSMODE_MF; } return false; } bool AlphaFairyCamera::is_focused(void) { if (cam_ptp->isOperating()) { return cam_ptp->is_focused; } if (cam_http->isOperating()) { return cam_http->is_focused; } return false; } uint32_t AlphaFairyCamera::get_exposureMode(void) { int32_t x = 0; if (cam_ptp->isOperating()) { if (cam_ptp->has_property(PTP_PROPCODE_ExposureProgramMode)) { x = cam_ptp->get_property(PTP_PROPCODE_ExposureProgramMode); if ((x & 0x8000) != 0) { return x; // bit 15 is set so just return it since it's a part of the enums } if ((x & 0xF0000) != 0) { return x & 0xFFFF; // mask off to match the enums } // handle classic PTP codes if (x > 0) { // convert it to the Sony codes switch (x) { case PTP_EXPOPROGMODE_MANUAL: return SONYALPHA_EXPOMODE_M; case PTP_EXPOPROGMODE_AUTO: return SONYALPHA_EXPOMODE_P; case PTP_EXPOPROGMODE_A: return SONYALPHA_EXPOMODE_A; case PTP_EXPOPROGMODE_S: return SONYALPHA_EXPOMODE_S; } } } if (cam_ptp->has_property(SONYALPHA_PROPCODE_ExposeIndex)) { x = cam_ptp->get_property(SONYALPHA_PROPCODE_ExposeIndex); if (x >= SONYALPHA_EXPOMODE_IntelligentAuto && x <= 0x9000) { return x; } } } if (cam_http->isOperating()) { // convert string to enumeration char* str_em = cam_http->get_str_expomode(); if (memcmp("Manual", str_em, 5) == 0) { return SONYALPHA_EXPOMODE_M; } if (memcmp("Program Auto", str_em, 5) == 0) { return SONYALPHA_EXPOMODE_P; } if (memcmp("Aperture", str_em, 5) == 0) { return SONYALPHA_EXPOMODE_A; } if (memcmp("Shutter", str_em, 5) == 0) { return SONYALPHA_EXPOMODE_S; } if (memcmp("Intelligent Auto", str_em, 5) == 0) { return SONYALPHA_EXPOMODE_IntelligentAuto; } if (memcmp("Superior Auto", str_em, 5) == 0) { return SONYALPHA_EXPOMODE_SuperiorAuto; } } return x; } bool AlphaFairyCamera::need_wait_af(void) { if (cam_ptp->isOperating()) { return cam_ptp->need_wait_af(); } if (cam_http->isOperating()) { return cam_http->need_wait_af(); } return false; } bool AlphaFairyCamera::cmd_AutoFocus(bool onoff) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_AutoFocus(onoff); } if (cam_http->isOperating()) { cam_http->cmd_AutoFocus(onoff); return true; } return false; } bool AlphaFairyCamera::cmd_Shutter(bool openclose) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_Shutter(openclose); } if (openclose && cam_http->isOperating()) { cam_http->cmd_Shoot(); return true; } return false; } bool AlphaFairyCamera::cmd_FocusPointSet(int16_t x, int16_t y) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_FocusPointSet(x, y); } if (cam_http->isOperating()) { cam_http->cmd_FocusPointSet16(x, y); return true; } return false; } bool AlphaFairyCamera::cmd_Shoot(int t) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_Shoot(t); } if (cam_http->isOperating()) { cam_http->cmd_Shoot(); return true; } return false; } bool AlphaFairyCamera::cmd_MovieRecord(bool onoff) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_MovieRecord(onoff); } if (cam_http->isOperating()) { cam_http->cmd_MovieRecord(onoff); return true; } return false; } bool AlphaFairyCamera::cmd_MovieRecordToggle() { if (cam_ptp->isOperating()) { return cam_ptp->cmd_MovieRecordToggle(); } if (cam_http->isOperating()) { cam_http->cmd_MovieRecordToggle(); return true; } return false; } bool AlphaFairyCamera::cmd_ManualFocusMode(bool onoff, bool precheck) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_ManualFocusMode(onoff, precheck); } if (cam_http->isOperating()) { cam_http->cmd_ManualFocusMode(onoff, precheck); return true; } return false; } bool AlphaFairyCamera::cmd_ManualFocusToggle(bool onoff) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_ManualFocusToggle(onoff); } if (cam_http->isOperating()) { cam_http->cmd_ManualFocusToggle(onoff); return true; } return false; } bool AlphaFairyCamera::cmd_IsoSet(uint32_t x) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_IsoSet(x); } if (cam_http->isOperating()) { cam_http->cmd_IsoSet(x); return true; } return false; } bool AlphaFairyCamera::cmd_ShutterSpeedSet(uint32_t x) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_ShutterSpeedSet32(x); } if (cam_http->isOperating() && cam_http->tbl_shutterspd != NULL) { int idx = getIdx_shutter(x); if (idx >= 0) { char sbuff[32]; bool r = get_str_at_tbl_idx(cam_http->tbl_shutterspd, idx, sbuff); if (r) { int slen = strlen(sbuff); if (sbuff[0] == '1' && sbuff[1] == '/') { // do nothing } else if (sbuff[0] >= '0' && sbuff[0] <= '9') { sbuff[slen] = '\\'; sbuff[slen + 1] = '"'; sbuff[slen + 2] = 0; } cam_http->cmd_ShutterSpeedSetStr(sbuff); return true; } } return true; } return false; } bool AlphaFairyCamera::cmd_ApertureSet(uint32_t x) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_ApertureSet((uint16_t)x); } if (cam_http->isOperating()) { cam_http->cmd_ApertureSet32(x); return true; } return false; } bool AlphaFairyCamera::cmd_ExpoCompSet(int32_t x) { if (cam_ptp->isOperating()) { return cam_ptp->cmd_ExpoCompSet(x); } if (cam_http->isOperating()) { cam_http->cmd_ExpoCompSet32(x); return true; } return false; } void AlphaFairyCamera::set_debugflags(uint32_t x) { if (cam_ptp != NULL) { cam_ptp->set_debugflags(x); } if (cam_http != NULL) { cam_http->set_debugflags(x); } } void AlphaFairyCamera::force_disconnect(void) { if (cam_ptp != NULL) { cam_ptp->force_disconnect(); } if (cam_http != NULL) { cam_http->force_disconnect(); } } static int get_idx_in_str_tbl(char* tbl_ptr, uint32_t x, uint32_t cvt_mode) { uint32_t oricomp = x; if (cvt_mode == SONYALPHA_PROPCODE_ShutterSpeed) { oricomp = shutter_to_millis(x); } else if (cvt_mode == SONYALPHA_PROPCODE_ISO) { oricomp &= 0xFFFFFF; } int commas = 0; int has_min = -1; uint32_t min_dist; char dst[32]; int i, j = strlen(tbl_ptr); for (i = 0; i < j; i++) { char c = tbl_ptr[i]; if (i == 0 || c == ',') // first entry or found comma { i++; int k; for (k = 0, dst[0] = 0; i < j && k < 30; i++) { c = tbl_ptr[i]; if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '+' || c == '-' || c == '.' || c == '/') // look for valid numeric characters { // record valid character into string dst[k] = c; dst[k+1] = 0; k++; } else if (c == ',') // found another comma, end of entry, go back to outer loop { i--; break; } } if (k > 0) // if has result { if (cvt_mode == SONYALPHA_PROPCODE_ShutterSpeed) { uint32_t y = parse_shutter_speed_str(dst); uint32_t yms = shutter_to_millis(y); if (oricomp == yms) { return commas; } else { uint32_t dist = (oricomp > yms) ? (oricomp - yms) : (yms - oricomp); if (has_min < 0 || dist < min_dist) { has_min = commas; min_dist = dist; } } } else if (cvt_mode == SONYALPHA_PROPCODE_ISO) { if (dst[0] >= '0' && dst[0] <= '9') { uint32_t y = atoi(dst); if (oricomp == y) { return commas; } uint32_t dist = (oricomp > y) ? (oricomp - y) : (y - oricomp); if (has_min < 0 || dist < min_dist) { has_min = commas; min_dist = dist; } } else { if (oricomp == 0 || oricomp == 0xFFFFFF) { return commas; } } } else if (cvt_mode == SONYALPHA_PROPCODE_Aperture) { uint32_t y = (uint32_t)lround(100.0f * atof(dst)); if (y >= (oricomp - 6) && y <= (oricomp + 6)) { return commas; } uint32_t dist = (oricomp > y) ? (oricomp - y) : (y - oricomp); if (has_min < 0 || (dist < min_dist && min_dist < 200)) { has_min = commas; min_dist = dist; } } } commas++; } } if (has_min >= 0) { return has_min; } return -1; } static bool get_str_at_tbl_idx(char* tbl, int idx, char* dst) { int commas = 0; int i, j = strlen(tbl); for (i = 0; i < j; i++) { char c = tbl[i]; if (c == ',') { commas++; } if (commas == idx) { i++; int k; for (k = 0; k < 30 && i < j; i++) { c = tbl[i]; if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '+' || c == '-' || c == '.' || c == '/') { dst[k] = c; dst[k + 1] = 0; k++; } else if (c == ',') { break; } } if (k > 0) { return true; } } } return false; } static bool get_val_at_tbl_idx(char* tbl, int idx, void* dst, uint32_t cvt_mode) { char sbuff[32]; if (idx < 0) { idx = 0; } while (idx >= 0) { bool r = get_str_at_tbl_idx(tbl, idx, (char*) sbuff); if (r) { if (cvt_mode == SONYALPHA_PROPCODE_ShutterSpeed) { uint32_t* p = (uint32_t*)dst; (*p) = parse_shutter_speed_str((char*)sbuff); return true; } else if (cvt_mode == SONYALPHA_PROPCODE_Aperture) { uint32_t* p = (uint32_t*)dst; (*p) = (uint32_t)lround(100.0f * atof(sbuff)); return true; } else if (cvt_mode == SONYALPHA_PROPCODE_ISO) { uint32_t* p = (uint32_t*)dst; if (sbuff[0] >= '0' && sbuff[0] <= '9') { (*p) = (uint32_t)atoi(sbuff); } else { (*p) = 0; } return true; } } idx--; } return false; } int AlphaFairyCamera::getIdx_shutter(uint32_t x) { if (cam_ptp->isOperating() && cam_ptp->table_shutter_speed != NULL) { uint32_t* tbl = (uint32_t*)&(cam_ptp->table_shutter_speed[1]); uint32_t i, j = cam_ptp->table_shutter_speed[0]; for (i = 0; i < j; i++) { if (tbl[i] == x) { return i; } } } if (cam_http->isOperating() && cam_http->tbl_shutterspd != NULL) { return get_idx_in_str_tbl(cam_http->tbl_shutterspd, x, SONYALPHA_PROPCODE_ShutterSpeed); } return -1; } int AlphaFairyCamera::getIdx_aperture(uint32_t x) { if (cam_ptp->isOperating() && cam_ptp->table_aperture != NULL) { uint16_t* tbl = (uint16_t*)&(cam_ptp->table_aperture[1]); uint32_t i, j = cam_ptp->table_aperture[0]; for (i = 0; i < j; i++) { if (tbl[i] <= (x + 6) && tbl[i] >= (x - 6)) { return i; } } } if (cam_http->isOperating() && cam_http->tbl_aperture != NULL) { return get_idx_in_str_tbl(cam_http->tbl_aperture, x, SONYALPHA_PROPCODE_Aperture); } return -1; } int AlphaFairyCamera::getIdx_iso(uint32_t x) { if (cam_ptp->isOperating() && cam_ptp->table_iso != NULL) { uint32_t* tbl = (uint32_t*)&(cam_ptp->table_iso[1]); uint32_t i, j = cam_ptp->table_iso[0]; for (i = 0; i < j; i++) { if (tbl[i] == x) { return i; } } if (x == 0) { x = 0xFFFFFF; } for (i = 0; i < j; i++) { if (tbl[i] == x) { return i; } } } if (cam_http->isOperating() && cam_http->tbl_iso != NULL) { return get_idx_in_str_tbl(cam_http->tbl_iso, x, SONYALPHA_PROPCODE_ISO); } return -1; } int AlphaFairyCamera::getIdx_expoComp(int32_t x) { float fx = x; return (int)lround(fx / 333.3f); } uint32_t AlphaFairyCamera::getVal_shutter(int idx) { idx = idx < 0 ? 0 : idx; if (cam_ptp->isOperating() && cam_ptp->table_shutter_speed != NULL) { uint32_t* tbl = (uint32_t*)&(cam_ptp->table_shutter_speed[1]); if (idx >= cam_ptp->table_shutter_speed[0]) { return tbl[cam_ptp->table_shutter_speed[0] - 1]; } else if (idx < 0) { return tbl[0]; } return tbl[idx]; } if (cam_http->isOperating() && cam_http->tbl_shutterspd != NULL) { uint32_t v; bool r = get_val_at_tbl_idx(cam_http->tbl_shutterspd, idx, &v, SONYALPHA_PROPCODE_ShutterSpeed); if (r) { return v; } } return 0; } uint32_t AlphaFairyCamera::getVal_aperture(int idx) { idx = idx < 0 ? 0 : idx; if (cam_ptp->isOperating() && cam_ptp->table_aperture != NULL) { uint16_t* tbl = (uint16_t*)&(cam_ptp->table_aperture[1]); if (idx >= cam_ptp->table_aperture[0]) { return tbl[cam_ptp->table_aperture[0] - 1]; } else if (idx < 0) { return tbl[0]; } return tbl[idx]; } if (cam_http->isOperating() && cam_http->tbl_aperture != NULL) { uint32_t v; bool r = get_val_at_tbl_idx(cam_http->tbl_aperture, idx, &v, SONYALPHA_PROPCODE_Aperture); if (r) { return v; } } return 0; } uint32_t AlphaFairyCamera::getVal_iso(int idx) { idx = idx < 0 ? 0 : idx; if (cam_ptp->isOperating() && cam_ptp->table_iso != NULL) { uint32_t* tbl = (uint32_t*)&(cam_ptp->table_iso[1]); if (idx >= cam_ptp->table_iso[0]) { return tbl[cam_ptp->table_iso[0] - 1]; } else if (idx < 0) { return tbl[0]; } return tbl[idx]; } if (cam_http->isOperating() && cam_http->tbl_iso != NULL) { uint32_t v; bool r = get_val_at_tbl_idx(cam_http->tbl_iso, idx, &v, SONYALPHA_PROPCODE_ISO); if (r) { return v; } } return 0; } int32_t AlphaFairyCamera::getVal_expoComp(int idx) { return idx * 333; } ================================================ FILE: arduino_workspace/AlphaFairy/AlphaFairyCamera.h ================================================ #ifndef _ALPHAFAIRYCAMERA_H_ #define _ALPHAFAIRYCAMERA_H_ // this class exists to make the main application code neater // it encapsulates the PtpIpSonyAlphaCamera and SonyHttpCamera class // so that common functions can be called upon the AlphaFairyCamera class // and the AlphaFairyCamera class decides which protocol to send the command with, depending on how the camera is actually connected #include #include class AlphaFairyCamera { public: AlphaFairyCamera(PtpIpSonyAlphaCamera* cam_p, SonyHttpCamera* cam_h) { cam_ptp = cam_p; cam_http = cam_h; }; private: PtpIpSonyAlphaCamera* cam_ptp; SonyHttpCamera* cam_http; public: uint32_t getIp (void); char* getCameraName (void); void wait_while_busy(uint32_t min_wait, uint32_t max_wait, volatile bool* exit_signal = NULL); void wait_while_saving(uint32_t min_wait, uint32_t max_wait_get, uint32_t max_wait_save); inline bool isOperating() { return cam_ptp->isOperating() || cam_http->isOperating(); }; void force_disconnect(void); bool is_movierecording(void); bool is_manuallyfocused(void); uint32_t get_exposureMode(void); bool need_wait_af(void); bool is_focused(void); bool cmd_AutoFocus(bool onoff); bool cmd_Shutter(bool openclose); bool cmd_FocusPointSet(int16_t x, int16_t y); bool cmd_Shoot(int t); bool cmd_MovieRecord(bool onoff); bool cmd_MovieRecordToggle(); bool cmd_ManualFocusMode(bool onoff, bool precheck = false); bool cmd_ManualFocusToggle(bool onoff); bool cmd_IsoSet(uint32_t x); // input parameter expects format matching PTP mode bool cmd_ShutterSpeedSet(uint32_t x); // input parameter expects format matching PTP mode bool cmd_ApertureSet(uint32_t x); // input parameter expects format matching PTP mode bool cmd_ExpoCompSet(int32_t x); // input parameter expects format matching PTP mode int getIdx_shutter (uint32_t x); // input parameter expects format matching PTP mode int getIdx_aperture(uint32_t x); // input parameter expects format matching PTP mode int getIdx_iso (uint32_t x); // input parameter expects format matching PTP mode int getIdx_expoComp(int32_t x); // input parameter expects format matching PTP mode uint32_t getVal_shutter (int idx); // output return format matches PTP mode uint32_t getVal_aperture(int idx); // output return format matches PTP mode uint32_t getVal_iso (int idx); // output return format matches PTP mode int32_t getVal_expoComp(int idx); // output return format matches PTP mode void set_debugflags(uint32_t x); }; #endif ================================================ FILE: arduino_workspace/AlphaFairy/AppUtils.ino ================================================ #include "AlphaFairy.h" #ifdef ENABLE_BUILD_LEPTON extern bool lepton_enable_poll; #endif void app_waitAllReleaseGfx(uint8_t waitgfx) { btnAny_clrPressed(); if (btnSide_isPressed() == false && btnBig_isPressed() == false) { return; } #ifdef ENABLE_BUILD_LEPTON lepton_enable_poll = false; #endif cpufreq_boost(); if (waitgfx == WAITGFX_CONNECTING) { gui_drawConnecting(true); } else if (waitgfx == WAITGFX_UNSUPPORTED) { M5Lcd.drawPngFile(SPIFFS, "/unsupported.png", 0, 0); } uint32_t now = millis(); uint32_t last_time = now; do { app_poll(); if (waitgfx == WAITGFX_CONNECTING) { gui_drawConnecting(false); } if (btnSide_isPressed() || btnBig_isPressed()) { last_time = millis(); } } while ((last_time - (now = millis())) < BTN_DEBOUNCE); redraw_flag = true; #ifdef ENABLE_BUILD_LEPTON lepton_enable_poll = true; #endif } void app_waitAllRelease() { app_waitAllReleaseGfx(WAITGFX_NONE); } void app_waitAnyPress(bool can_sleep) { #ifdef ENABLE_BUILD_LEPTON lepton_enable_poll = false; #endif while (true) { app_poll(); if (can_sleep == false) { pwr_tick(true); } if (btnAny_hasPressed()) { break; } } btnAny_clrPressed(); #ifdef ENABLE_BUILD_LEPTON lepton_enable_poll = true; #endif } void app_waitAllReleaseConnecting() { app_waitAllReleaseGfx(WAITGFX_CONNECTING); } void app_waitAllReleaseUnsupported() { app_waitAllReleaseGfx(WAITGFX_UNSUPPORTED); } void app_sleep(uint32_t x, bool forget_btns) { uint32_t tstart = millis(); uint32_t now; #ifdef ENABLE_BUILD_LEPTON lepton_enable_poll = false; #endif while (((now = millis()) - tstart) < x) { app_poll(); } if (forget_btns) { btnAny_clrPressed(); } #ifdef ENABLE_BUILD_LEPTON lepton_enable_poll = true; #endif } int8_t imu_getFocusPull() { int n = 0; int ang = imu.getPitchAdj(); int aang = (ang < 0) ? (-ang) : (ang); if (aang >= 2) { // deadzone n = aang / 7; n = n > 3 ? 3 : n; } return (ang < 0) ? (-n) : (n); } int focus_tiltToStepSize(int8_t tilt) { // translate tilt into Sony's focus step sizes int atilt = tilt < 0 ? -tilt : tilt; int n = (atilt == 2) ? SONYALPHA_FOCUSSTEP_FARTHER_MEDIUM : ((atilt == 3) ? SONYALPHA_FOCUSSTEP_FARTHER_LARGE : n); return (tilt < 0) ? -n : n; } uint32_t shutter_to_millis(uint32_t x) { uint16_t* p16 = (uint16_t*)&x; if (x == 0 || x == 0xFFFFFFFF) { return 0; } uint32_t nn = p16[1]; uint32_t dd = p16[0]; nn *= 1000; float n = nn; float d = dd; float y = d != 0 ? (n/d) : 0; return lroundf(y); } void gui_formatSecondsTime(int32_t x, char* str, bool shorten) { // format time in 00:00:00 format when provided in seconds // optionally shortens to 0H:00 format when the time is very long int i = 0; if (x < 0) { // negative sign i += sprintf(&(str[i]), "-"); x *= -1; } uint32_t mins = x / 60; uint32_t hrs = mins / 60; mins %= 60; uint32_t secs = x % 60; if (hrs > 0) { i += sprintf(&(str[i]), "%u", hrs); if (shorten) { // add a H just so we understand it's HH:MM instead of MM:SS i += sprintf(&(str[i]), "H"); } i += sprintf(&(str[i]), ":"); if (mins < 10) { i += sprintf(&(str[i]), "0"); } } if (shorten && hrs > 0) { i += sprintf(&(str[i]), "%u", mins); } else { i += sprintf(&(str[i]), "%u:%02u", mins, secs); } } void gui_formatShutterSpeed(uint32_t x, char* str) { uint16_t* p16 = (uint16_t*)&x; if (x == 0 || x == 0xFFFFFFFF) { sprintf(str, "BULB"); return; } uint16_t nn = p16[1]; uint16_t dd = p16[0]; float n = nn; float d = dd; float y = d != 0 ? (n/d) : 0; sprintf(str, "%0.1f\"", y); if (y >= 4 || nn == dd || y == 2.0 || y == 3.0) { sprintf(str, "%u\"", lroundf(y)); return; } if (y >= 0.35) { return; } if (nn >= 10 && dd > 10) { return; } if (nn == 1) { sprintf(str, "1/%u", dd); } return; } void gui_formatISO(uint32_t x, char* str) { uint16_t* p16 = (uint16_t*)&x; if (x == 0) { sprintf(str, "???"); return; } if (x == 0xFFFFFF) { sprintf(str, "AUTO"); return; } x &= 0xFFFFFF; sprintf(str, "%u", x); return; } int file_readLine(File* f, char* tgt, int charlimit) { int i = 0; if (f->available() <= 0) { return -1; } while (f->available() > 0) // until end of file { char c = f->read(); if (c != '\r' && c != '\n' && c != '\0') // is not terminator { if (i < charlimit - 1) // if there is room in string buffer { // append char to string tgt[i] = c; i += 1; tgt[i] = 0; } } else // is terminator { // end the string tgt[i] = 0; if (i > 0) { // this trims the start of a line i += 1; break; } } } return i; } void dissolve_restart(uint16_t colour) { uint32_t t = millis(); cpufreq_boost(); esp_wifi_disconnect(); esp_wifi_stop(); esp_wifi_deinit(); while (btnBig_isPressed()) { int x = rand() % M5Lcd.width(); int y = rand() % M5Lcd.height(); if ((millis() - t) < 5000) { M5Lcd.fillRect(x, y, 1, 1, colour); } else { M5Lcd.fillRect(x, y, 1, 1, TFT_BLACK); int32_t b = config_settings.lcd_brightness - (((millis() - t) - 5000) / 1250); M5.Axp.ScreenBreath(b); } } ESP.restart(); } int32_t get_pinCfgGpio(int32_t x) { switch (x) { #ifndef ENABLE_BUILD_LEPTON case PINCFG_G0 : return 0; case PINCFG_G25: return 25; #endif case PINCFG_G26: return 26; case PINCFG_G32: return 32; case PINCFG_G33: return 33; #ifndef ENABLE_BUILD_LEPTON case PINCFG_G36: return 36; #endif } return -1; } void safe_all_pins() { #ifndef ENABLE_BUILD_LEPTON pinMode(0, INPUT); pinMode(25, INPUT); #endif pinMode(26, INPUT); pinMode(32, INPUT); pinMode(33, INPUT); #ifndef ENABLE_BUILD_LEPTON pinMode(36, INPUT); #endif } ================================================ FILE: arduino_workspace/AlphaFairy/AutoConnect.ino ================================================ #include "AlphaFairy.h" #include bool autoconnect_active = false; int autoconnect_status = 0; extern bool airplane_mode; void autoconnect_poll() { yield(); cpufreq_boost(); imu.poll(); cmdline.task(); pwr_sleepCheck(); // this will only dim the screen, because pwr_tick is always being called if (imu.hasMajorMotion) { imu.hasMajorMotion = false; pwr_tick(true); } else { pwr_tick(false); } btnPwr_quickPoll(); } class AppAutoConnect : public FairyMenuItem { public: AppAutoConnect() : FairyMenuItem("/main_auto.png") { }; // hide this item when a camera is actually connected virtual bool can_navTo(void) { if (fairycam.isOperating()) { return false; } if (airplane_mode) { return false; } return FairyMenuItem::can_navTo(); }; virtual bool on_execute(void) { autoconnect_active = true; autoconnect_status = 0; uint8_t scan_failed_cnt = 0; uint8_t result_code = 0; uint8_t result_profile = 0; wifiprofile_t profile; bool first_loop = true; bool user_quit = false; int draw_idx = 0; uint32_t t = millis(); uint32_t now = t; WiFi.mode(WIFI_STA); WiFi.disconnect(); // halt wifi activity for now btnAny_clrPressed(); dbg_ser.println("autoconnect starting"); int scan_ret; while (true) { autoconnect_poll(); if (((now = millis()) - t) > 333) // time for new animation frame { t = now; // rotate the icon's position in a loop int x, y; switch (draw_idx) { case 0: x = 71; y = 141; break; case 1: x = 8; y = 141; break; case 2: x = 8; y = 39; break; case 3: x = 71; y = 39; break; } draw_idx = (draw_idx + 1) % 4; M5Lcd.setRotation(0); M5Lcd.fillRect(0, 39, M5Lcd.width(), 62, TFT_WHITE); // remove old icons M5Lcd.fillRect(0, 141, M5Lcd.width(), 62, TFT_WHITE); // remove old icons M5Lcd.drawPngFile(SPIFFS, "/autoconn_icon.png", x, y); gui_drawStatusBar(false); } if (first_loop) { scan_ret = 0; first_loop = false; } else if (scan_ret <= 0) { scan_ret = WiFi.scanComplete(); } if (scan_ret > 0) // has results { scan_failed_cnt = 0; dbg_ser.printf("autoconnect scan complete, %u results\r\n", scan_ret); int i, j; // first check if anything is broadcasting a SSID that we already have in database for (i = 1; i <= WIFIPROFILE_LIMIT; i++) // for all profiles { if (wifiprofile_getProfile(i, &profile)) // profile exists { for (j = 0; j < scan_ret; j++) // for all scan results { if (strcmp(profile.ssid, WiFi.SSID(j).c_str()) == 0) // SSID matches { dbg_ser.printf("autoconnect found matching SSID[%u, %u]: %s\r\n", i, j, profile.ssid); result_profile = i; result_code = (strlen(profile.password) > 0) ? AUTOCONNRES_FOUND_EXISTING : AUTOCONNRES_FOUND_EXISTING_NEED_PASSWORD; break; } } } else if (wifiprofile_isBlank(i)) { dbg_ser.printf("autoconnect reached end of database at %u\r\n", i); // when WIFIPROFILE_LIMIT is large, we shouldn't waste time with the file system reads break; } } if (result_code == AUTOCONNRES_NONE) // we didn't find anything in our existing database { dbg_ser.printf("autoconnect no existing database entry\r\n"); // check if any entry has a SSID that looks like a Sony camera for (i = 0; i < scan_ret; i++) { char* ssid_str = (char*)WiFi.SSID(i).c_str(); if (strlen(ssid_str) > 0) { dbg_ser.printf(" [%u]scanned SSID: %s\r\n", i, ssid_str); } if (memcmp("DIRECT-", ssid_str, 7) == 0) // looks like a Sony camera { dbg_ser.printf("autoconnect new SSID: %s\r\n", ssid_str); result_code = AUTOCONNRES_FOUND_NEW; // use the data structure as a cache, we can save it into SPIFFS later quickly strncpy(profile.ssid, ssid_str, WIFI_STRING_LEN); profile.password[0] = 0; profile.opmode = WIFIOPMODE_STA; profile.guid[0] = 0; break; } // TODO: check for compatible cameras only? // TODO: handle multiple new cameras? currently only handles one new entity } } if (result_code == AUTOCONNRES_NONE) { // nothing found, restart the scan dbg_ser.printf("autoconnect re-scan\r\n"); scan_ret = WiFi.scanNetworks(true, false, false); } else { // found something, we can quit this loop break; } } else if (scan_ret != WIFI_SCAN_RUNNING) { // either the scan isn't running or no results were found, (re)start the scan dbg_ser.printf("autoconnect scan start (code %d)\r\n", scan_ret); if (scan_ret == WIFI_SCAN_FAILED) { scan_failed_cnt++; } scan_ret = WiFi.scanNetworks(true, false, false); } // maybe the user wants to cancel user_quit |= btnSide_hasPressed() || btnPwr_hasPressed(); if (user_quit) { dbg_ser.printf("autoconnect user quit\r\n"); result_code = AUTOCONNRES_QUIT; esp_wifi_scan_stop(); WiFi.scanDelete(); btnSide_clrPressed(); btnPwr_clrPressed(); break; } if (scan_failed_cnt > 5) { critical_error("/wifi_error.png"); } } WiFi.scanDelete(); if (user_quit || result_code == AUTOCONNRES_QUIT) { // user quit, go back to normal NetMgr_reset(); wifiprofile_connect(config_settings.wifi_profile); goto all_done_exit; } // use this buffer as a cache for wifi_pswdPromptDrawCb() strncpy(NetMgr_getSSID(), profile.ssid, WIFI_STRING_LEN); if (result_code == AUTOCONNRES_FOUND_NEW) { // if the SSID does not exist in our database, then find a slot for it result_profile = 0; int k; for (k = 1; k <= WIFIPROFILE_LIMIT; k++) { if (wifiprofile_isBlank(k)) { result_profile = k; dbg_ser.printf("autoconnect new camera blank spot %u\r\n", k); break; } } } if (result_profile != 0) { bool need_ask = (result_code == AUTOCONNRES_FOUND_EXISTING_NEED_PASSWORD || result_code == AUTOCONNRES_FOUND_NEW); // do not need to ask if the database already has entry bool can_save = result_code == AUTOCONNRES_FOUND_NEW; user_quit = wifi_newConnectOrPrompt(result_profile, &profile, need_ask, can_save); goto all_done_exit; } else { // result_profile is zero but the user didn't quit? the only reason should be that the database is now full, but could be another reason // the database is YUGE, so... I'm not going to handle this error gracefully wifi_err_reason = 0; critical_error("/wifi_error.png"); } all_done_exit: if (result_code >= AUTOCONNRES_FOUND_EXISTING && user_quit == false) { FairySubmenu* p = dynamic_cast((FairySubmenu*)get_parent()); p->rewind(); if (result_profile != config_settings.wifi_profile) { config_settings.wifi_profile = result_profile; dbg_ser.printf("autoconnect saving profile %u\r\n", result_profile); settings_save(); } } dbg_ser.printf("autoconnect exiting function\r\n"); app_waitAllRelease(); autoconnect_active = false; redraw_flag = true; return false; }; }; extern FairySubmenu main_menu; void setup_autoconnect() { static AppAutoConnect app; main_menu.install(&app); } ================================================ FILE: arduino_workspace/AlphaFairy/Buttons.ino ================================================ #include "AlphaFairy.h" #include #include /* interrupts are used to catch new button press events a simple debounce algorithm is used */ #define PIN_BTN_SIDE 39 #define PIN_BTN_BIG 37 #define GPIO_BTN_SIDE GPIO_NUM_39 #define GPIO_BTN_BIG GPIO_NUM_37 //#define BTNS_DEBUG volatile uint32_t btnSide_downTime = 0; volatile uint32_t btnBig_downTime = 0; volatile uint32_t btnSide_clrTime = 0; volatile uint32_t btnBig_clrTime = 0; volatile uint32_t btnSide_cnt = 0; volatile uint32_t btnBig_cnt = 0; volatile uint32_t btnPwr_cnt = 0; volatile uint32_t btnSide_cnt_prev = 0; volatile uint32_t btnBig_cnt_prev = 0; volatile uint32_t btnPwr_cnt_prev = 0; extern uint32_t pwr_last_tick; extern uint32_t lcddim_last_tick; extern void pwr_lcdUndim(void); void IRAM_ATTR btnSide_isr() { if (digitalRead(PIN_BTN_SIDE) != LOW) { // guard against ESP32 hardware bug // https://github.com/espressif/arduino-esp32/issues/5055 // https://github.com/espressif/esp-idf/commit/d890a516a1097f0a07788e203fdb1a82bb83520e return; } #if defined(ENABLE_LIGHT_SLEEP) && defined(ENABLE_LIGHT_SLEEP_GPIOWAKE) // if we went to sleep, then the mode is GPIO_INTR_LOW_LEVEL, we need to change it back to GPIO_INTR_NEGEDGE gpio_set_intr_type(GPIO_BTN_SIDE, GPIO_INTR_NEGEDGE); #endif uint32_t now = millis(); if ((now - btnSide_downTime) > BTN_DEBOUNCE) { btnSide_cnt++; } btnSide_downTime = now; } void IRAM_ATTR btnBig_isr() { if (digitalRead(PIN_BTN_BIG) != LOW) { // guard against ESP32 hardware bug // https://github.com/espressif/arduino-esp32/issues/5055 // https://github.com/espressif/esp-idf/commit/d890a516a1097f0a07788e203fdb1a82bb83520e return; } #if defined(ENABLE_LIGHT_SLEEP) && defined(ENABLE_LIGHT_SLEEP_GPIOWAKE) // if we went to sleep, then the mode is GPIO_INTR_LOW_LEVEL, we need to change it back to GPIO_INTR_NEGEDGE gpio_set_intr_type(GPIO_BTN_BIG, GPIO_INTR_NEGEDGE); #endif uint32_t now = millis(); if ((now - btnBig_downTime) > BTN_DEBOUNCE) { btnBig_cnt++; } btnBig_downTime = now; } void btns_init() { pinMode(PIN_BTN_SIDE, INPUT_PULLUP); attachInterrupt(PIN_BTN_SIDE, btnSide_isr, FALLING); pinMode(PIN_BTN_BIG, INPUT_PULLUP); attachInterrupt(PIN_BTN_BIG, btnBig_isr, FALLING); } void btns_poll() { #ifdef TRY_CATCH_MISSED_GPIO_ISR // this function attempts to catch missed ISRs static char prev_side = HIGH; static char prev_big = HIGH; char x; volatile uint32_t now = millis(); if ((x = digitalRead(PIN_BTN_SIDE)) != prev_side) { if (x == LOW && btnSide_downTime == 0 && (now - btnSide_clrTime) > 100) { btnSide_cnt++; btnSide_downTime = now; } prev_side = x; } if ((x = digitalRead(PIN_BTN_BIG)) != prev_big) { if (x == LOW && btnBig_downTime == 0 && (now - btnBig_clrTime) > 100) { btnBig_cnt++; btnBig_downTime = now; } prev_big = x; } #endif } bool btnSide_hasPressed() { volatile bool x = btnSide_cnt_prev != btnSide_cnt; #ifdef BTNS_DEBUG static uint32_t rpt_time = 0; #endif #ifdef TRY_CATCH_MISSED_GPIO_ISR if (x == false) { btns_poll(); x = btnSide_cnt_prev != btnSide_cnt; } #endif if (x) { #ifdef BTNS_DEBUG Serial.printf("btnSide_cnt %u %u\r\n", btnSide_cnt, btnSide_cnt_prev); rpt_time = 0; #endif cpufreq_boost(); return true; } #ifdef BTNS_DEBUG uint32_t now = millis(); if ((now - rpt_time) > 500) { rpt_time = now; Serial.printf("not btnSide_cnt %u %u\r\n", btnSide_cnt, btnSide_cnt_prev); } #endif return false; } void btnSide_clrPressed() { uint32_t now = millis(); #ifdef BTNS_DEBUG Serial.printf("clr btnSide_cnt %u %u\r\n", btnSide_cnt, btnSide_cnt_prev); #endif btnSide_cnt_prev = btnSide_cnt; //btnSide_downTime = 0; btnSide_clrTime = now; pwr_last_tick = now; lcddim_last_tick = now; pwr_lcdUndim(); } bool btnBig_hasPressed() { volatile bool x = btnBig_cnt_prev != btnBig_cnt; #ifdef BTNS_DEBUG static uint32_t rpt_time = 0; #endif #ifdef TRY_CATCH_MISSED_GPIO_ISR if (x == false) { btns_poll(); x = btnBig_cnt_prev != btnBig_cnt; } #endif if (x) { #ifdef BTNS_DEBUG Serial.printf("btnBig_cnt %u %u\r\n", btnBig_cnt, btnBig_cnt_prev); rpt_time = 0; #endif cpufreq_boost(); return true; } #ifdef BTNS_DEBUG uint32_t now = millis(); if ((now - rpt_time) > 500) { rpt_time = now; Serial.printf("not btnBig_cnt %u %u\r\n", btnBig_cnt, btnBig_cnt_prev); } #endif return false; } void btnBig_clrPressed() { uint32_t now = millis(); #ifdef BTNS_DEBUG Serial.printf("clr btnBig_cnt %u %u\r\n", btnBig_cnt, btnBig_cnt_prev); #endif btnBig_cnt_prev = btnBig_cnt; //btnBig_downTime = 0; btnBig_clrTime = now; pwr_last_tick = now; lcddim_last_tick = now; pwr_lcdUndim(); } bool btnPwr_hasPressed() { volatile bool x = btnPwr_cnt != btnPwr_cnt_prev; return x; } void btnPwr_clrPressed() { uint32_t now = millis(); btnPwr_cnt_prev = btnPwr_cnt; pwr_last_tick = now; lcddim_last_tick = now; } bool btnSide_isPressed() { return (digitalRead(PIN_BTN_SIDE) == LOW); } bool btnBig_isPressed() { return (digitalRead(PIN_BTN_BIG) == LOW); } bool btnBoth_hasPressed() { bool x; x |= btnSide_hasPressed(); x |= btnBig_hasPressed(); return x; } void btnBoth_clrPressed() { btnSide_clrPressed(); btnBig_clrPressed(); } bool btnAny_hasPressed() { bool x; x |= btnSide_hasPressed(); x |= btnBig_hasPressed(); x |= btnPwr_hasPressed(); x |= M5.Axp.GetBtnPress() != 0; return x; } void btnAny_clrPressed() { btnSide_clrPressed(); btnBig_clrPressed(); btnPwr_clrPressed(); } void btnPwr_poll() { uint32_t now = millis(); static uint32_t btn_last_time = 0; if ((now - btn_last_time) > 100 || btn_last_time == 0) { btn_last_time = now; btnPwr_quickPoll(); } } void btnPwr_quickPoll() { uint8_t b = M5.Axp.GetBtnPress(); if (b != 0) { btnPwr_cnt++; dbg_ser.printf("user pressed power button\r\n"); pwr_tick(true); cpufreq_boost(); } } #if defined(HTTP_MOCKBTNS_ENABLE) #include #include extern AsyncWebServer* httpServer; void btn_installMockServer() { httpServer->on("/btnbig", HTTP_GET, [] (AsyncWebServerRequest* request) { btnBig_cnt++; AsyncResponseStream* response = request->beginResponseStream("text/html"); response->printf("ok"); request->send(response); }); httpServer->on("/btnside", HTTP_GET, [] (AsyncWebServerRequest* request) { btnSide_cnt++; AsyncResponseStream* response = request->beginResponseStream("text/html"); response->printf("ok"); request->send(response); }); httpServer->on("/btnpwr", HTTP_GET, [] (AsyncWebServerRequest* request) { btnPwr_cnt++; AsyncResponseStream* response = request->beginResponseStream("text/html"); response->printf("ok"); request->send(response); }); } #endif ================================================ FILE: arduino_workspace/AlphaFairy/CamUtils.ino ================================================ #include "AlphaFairy.h" extern bool airplane_mode; void cam_shootQuick() { // convenience function for quickly taking a photo without complicated connectivity checks if (airplane_mode == false && ptpcam.isOperating()) { ptpcam.cmd_Shoot(config_settings.shutter_press_time_ms); } else if (airplane_mode == false && httpcam.isOperating()) { httpcam.cmd_Shoot(); } else { if (config_settings.pin_shutter != PINCFG_NONE && config_settings.pin_shutter != config_settings.pin_exinput) { cam_shootQuickGpio(); } else if (config_settings.infrared_enabled) { SonyCamIr_Shoot(); } } } void cam_shootQuickGpio() { // convenience function for quickly taking a photo without complicated connectivity checks int32_t pin = get_pinCfgGpio(config_settings.pin_shutter); if (pin < 0) { return; } #ifdef SHUTTER_GPIO_ACTIVE_HIGH pinMode(pin, OUTPUT); digitalWrite(pin, HIGH); app_sleep(config_settings.shutter_press_time_ms, false); digitalWrite(pin, LOW); #else digitalWrite(pin, LOW); pinMode(pin, OUTPUT); digitalWrite(pin, LOW); app_sleep(config_settings.shutter_press_time_ms, false); pinMode(pin, INPUT); #endif } void cam_shootOpen() { // convenience function for quickly taking a photo without complicated connectivity checks if (airplane_mode == false && ptpcam.isOperating()) { ptpcam.cmd_Shutter(true); if (gpio_time != 0) { int32_t pin = get_pinCfgGpio(config_settings.pin_shutter); if (pin >= 0) { #ifdef SHUTTER_GPIO_ACTIVE_HIGH digitalWrite(pin, LOW); #endif pinMode(pin, INPUT); } gpio_time = 0; } } else if (airplane_mode == false && httpcam.isOperating()) { httpcam.cmd_Shoot(); } else { if (config_settings.pin_shutter != PINCFG_NONE && config_settings.pin_shutter != config_settings.pin_exinput) { int32_t pin = get_pinCfgGpio(config_settings.pin_shutter); if (pin >= 0) { #ifdef SHUTTER_GPIO_ACTIVE_HIGH pinMode(pin, OUTPUT); digitalWrite(pin, HIGH); #else digitalWrite(pin, LOW); pinMode(pin, OUTPUT); digitalWrite(pin, LOW); #endif } gpio_time = millis(); } else if (config_settings.infrared_enabled) { SonyCamIr_Shoot(); } } } void cam_shootClose() { // convenience function for quickly taking a photo without complicated connectivity checks if (airplane_mode == false && ptpcam.isOperating()) { ptpcam.cmd_Shutter(false); if (gpio_time != 0) { int32_t pin = get_pinCfgGpio(config_settings.pin_shutter); if (pin >= 0) { #ifdef SHUTTER_GPIO_ACTIVE_HIGH digitalWrite(pin, LOW); #endif pinMode(pin, INPUT); } gpio_time = 0; } } else if (airplane_mode == false && httpcam.isOperating()) { // do nothing } else { if (config_settings.pin_shutter != PINCFG_NONE && config_settings.pin_shutter != config_settings.pin_exinput) { gpio_time = 0; // stop the timer int32_t pin = get_pinCfgGpio(config_settings.pin_shutter); if (pin >= 0) { #ifdef SHUTTER_GPIO_ACTIVE_HIGH digitalWrite(pin, LOW); #else pinMode(pin, INPUT); #endif } } else if (config_settings.infrared_enabled) { // do nothing } } } void cam_videoStart() { // convenience function for quickly taking a video without complicated connectivity checks if (airplane_mode == false && ptpcam.isOperating()) { ptpcam.cmd_MovieRecord(true); } else if (airplane_mode == false && httpcam.isOperating()) { httpcam.cmd_MovieRecord(true); } else { if (config_settings.infrared_enabled) { SonyCamIr_Movie(); } } } void cam_videoStop() { // convenience function for quickly taking a video without complicated connectivity checks if (airplane_mode == false && ptpcam.isOperating()) { ptpcam.cmd_MovieRecord(false); } else if (airplane_mode == false && httpcam.isOperating()) { httpcam.cmd_MovieRecord(false); } else { if (config_settings.infrared_enabled) { SonyCamIr_Movie(); } } } ================================================ FILE: arduino_workspace/AlphaFairy/CmdlineHandlers.ino ================================================ #include "AlphaFairy.h" #include /* handles command line commands this is used only for testing */ void factory_reset_func(void* cmd, char* argstr, Stream* stream); #ifndef DISABLE_CMD_LINE void focuscalib_func(void* cmd, char* argstr, Stream* stream); void shoot_func (void* cmd, char* argstr, Stream* stream); void echo_func (void* cmd, char* argstr, Stream* stream); void memcheck_func (void* cmd, char* argstr, Stream* stream); void statscheck_func(void* cmd, char* argstr, Stream* stream); void reboot_func (void* cmd, char* argstr, Stream* stream); void imu_func (void* cmd, char* argstr, Stream* stream); void imushow_func (void* cmd, char* argstr, Stream* stream); void mic_func (void* cmd, char* argstr, Stream* stream); void pwr_func (void* cmd, char* argstr, Stream* stream); void btncnt_func (void* cmd, char* argstr, Stream* stream); void debug_func (void* cmd, char* argstr, Stream* stream); void camdebug_func (void* cmd, char* argstr, Stream* stream); void infrared_func (void* cmd, char* argstr, Stream* stream); void savewifi_func (void* cmd, char* argstr, Stream* stream); void dumpwifi_func (void* cmd, char* argstr, Stream* stream); void wifipwr_func (void* cmd, char* argstr, Stream* stream); void pmiclog_func (void* cmd, char* argstr, Stream* stream); void listlog_func (void* cmd, char* argstr, Stream* stream); void readlog_func (void* cmd, char* argstr, Stream* stream); void readhex_func (void* cmd, char* argstr, Stream* stream); #endif const cmd_def_t cmds[] = { { "factoryreset", factory_reset_func}, #ifndef DISABLE_CMD_LINE { "focuscalib", focuscalib_func }, { "shoot" , shoot_func }, { "echo" , echo_func }, { "mem" , memcheck_func }, { "imu" , imu_func }, { "imushow" , imushow_func }, { "mic" , mic_func }, { "pwr" , pwr_func }, { "btncnt" , btncnt_func }, { "stats" , statscheck_func }, { "reboot" , reboot_func }, { "debug" , debug_func }, { "camdebug" , camdebug_func }, { "ir" , infrared_func }, { "savewifi" , savewifi_func }, { "dumpwifi" , dumpwifi_func }, { "wifipwr" , wifipwr_func }, { "pmiclog" , pmiclog_func }, { "listlog" , listlog_func }, { "readlog" , readlog_func }, { "readhex" , readhex_func }, #endif { "", NULL }, // end of table }; SerialCmdLine cmdline(&Serial, (cmd_def_t*)cmds, false, (char*)">>>", (char*)"???", true, 512); extern bool redraw_flag; void factory_reset_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); settings_default(); settings_save(); stream->println("factory reset performed"); } #ifndef DISABLE_CMD_LINE void focuscalib_func(void* cmd, char* argstr, Stream* stream) { fenc_calibrate(); } void shoot_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); if (fairycam.isOperating()) { stream->println("shoot"); fairycam.cmd_Shoot(250); } else { stream->println("camera not connected"); } } void echo_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); stream->println(argstr); } void reboot_func(void* cmd, char* argstr, Stream* stream) { stream->println("rebooting...\r\n\r\n"); ESP.restart(); } void memcheck_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); stream->printf("free heap mem: %u\r\n", ESP.getFreeHeap()); } void statscheck_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); #ifdef PTPIP_KEEP_STATS stream->printf("ptpipcam stats: %u %u %u\r\n", ptpcam.stats_tx, ptpcam.stats_acks, ptpcam.stats_pkts); #else stream->printf("ptpipcam stats not available\r\n"); #endif } void imu_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); stream->printf("imu: %0.1f %0.1f %0.1f\r\n", imu.pitch, imu.roll, imu.yaw); } void imushow_func(void* cmd, char* argstr, Stream* stream) { gui_startAppPrint(); M5Lcd.setTextFont(4); int spin_cnt = 0; while (true) { app_poll(); pwr_tick(true); stream->printf("imu: %0.1f %0.1f %0.1f\r\n", imu.pitch, imu.roll, imu.yaw); M5Lcd.setCursor(SUBMENU_X_OFFSET, SUBMENU_Y_OFFSET); M5Lcd.printf("%0.1f , %0.1f ", imu.roll, imu.pitch); gui_blankRestOfLine(); M5Lcd.println(); gui_setCursorNextLine(); M5Lcd.printf("%0.1f , %0.1f ", imu.roll_adj, imu.pitch_adj); gui_blankRestOfLine(); M5Lcd.println(); gui_setCursorNextLine(); M5Lcd.printf("%d", imu.pitch_accum); gui_blankRestOfLine(); M5Lcd.println(); gui_setCursorNextLine(); int spin = imu.getSpin(); if (spin > 0) { spin_cnt++; } else if (spin < 0) { spin_cnt--; } M5Lcd.printf("spin %d", spin_cnt); gui_blankRestOfLine(); if (spin != 0) { imu.resetSpin(); } if (btnAny_hasPressed()) { stream->printf("user exit\r\n"); delay(100); ESP.restart(); } } } extern volatile int32_t mictrig_lastMax, mictrig_filteredMax; void mic_func(void* cmd, char* argstr, Stream* stream) { #if 0 gui_startAppPrint(); mictrig_drawIcon(); while (true) { pwr_tick(true); app_poll(); mictrig_poll(); stream->printf("mic: %d %d\r\n", mictrig_lastMax, mictrig_filteredMax); mictrig_drawLevel(); if (btnAny_hasPressed()) { stream->printf("user exit\r\n"); delay(100); ESP.restart(); } } #endif } void pwr_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); stream->printf("pwr: %0.3f %0.3f %0.3f %0.3f\r\n", M5.Axp.GetBatVoltage(), M5.Axp.GetBatCurrent(), M5.Axp.GetVBusVoltage(), M5.Axp.GetVBusCurrent() ); } extern volatile uint32_t btnSide_cnt, btnBig_cnt, btnPwr_cnt; void btncnt_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); stream->printf("btn cnt: %u %u %u\r\n", btnSide_cnt, btnBig_cnt, btnPwr_cnt); } extern DebuggingSerial dbg_ser; void debug_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); dbg_ser.enabled = atoi(argstr) != 0; stream->printf("debugging output = %u\r\n", dbg_ser.enabled); dbg_ser.println("test output from debugging serial port"); } void camdebug_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); int x = atoi(argstr); ptpcam.set_debugflags(x); httpcam.set_debugflags(x); stream->printf("camera debugging output = %u\r\n", x); ptpcam.test_debug_msg("test from ptpcam debug serport\r\n"); httpcam.test_debug_msg("test from httpcam debug serport\r\n"); } void infrared_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); stream->printf("infrared test fire\r\n"); SonyCamIr_Shoot(); } void savewifi_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); char delim[] = ","; char *ptr = strtok(argstr, delim); int i = 0; int profile_num; wifiprofile_t profile; memset(&profile, 0, sizeof(wifiprofile_t)); while (ptr != NULL) { switch (i) { case 0: profile_num = atoi(ptr); break; case 1: strncpy(profile.ssid, ptr, WIFI_STRING_LEN); break; case 2: strncpy(profile.password, ptr, WIFI_STRING_LEN); break; case 3: if (memcmp("sta", ptr, 3) == 0 || memcmp("STA", ptr, 3) == 0) { profile.opmode = WIFIOPMODE_STA; } case 4: strncpy(profile.guid, ptr, 17); break; default: break; } ptr = strtok(NULL, delim); i++; } if (profile_num > 0 && profile_num <= WIFIPROFILE_LIMIT) { if (profile.ssid[0] != 0) { wifiprofile_writeProfile(profile_num, &profile); stream->printf("WiFi profile %d written\r\n", profile_num); } else { wifiprofile_deleteProfile(profile_num); stream->printf("WiFi profile %d deleted\r\n", profile_num); } } else { stream->printf("ERROR: WiFi profile %d write disallowed\r\n", profile_num); } redraw_flag = true; } void dumpwifi_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); int i; stream->printf("WiFi Profile Dump:\r\n"); for (i = 0; i <= WIFIPROFILE_LIMIT; i++) { wifiprofile_t profile; memset(&profile, 0, sizeof(wifiprofile_t)); if (wifiprofile_getProfile(i, &profile)) { stream->printf("%d,%s,%s,%s,%s\r\n", i, profile.ssid, profile.password, profile.opmode == WIFIOPMODE_STA ? "sta" : "ap", profile.guid); } } stream->printf("\r\n"); } void wifipwr_func(void* cmd, char* argstr, Stream* stream) { pwr_tick(true); int8_t x; int ret; if (strlen(argstr) == 0) { ret = (int)esp_wifi_get_max_tx_power(&x); stream->printf("WiFi get pwr %d , return code %d\r\n", x, ret); } else { x = atoi(argstr); ret = (int)esp_wifi_set_max_tx_power(x); stream->printf("WiFi set pwr %d , return code %d\r\n", x, ret); } } void listlog_func(void* cmd, char* argstr, Stream* stream) { File root = SPIFFS.open("/"); File file = root.openNextFile(); stream->println("listing log files"); while(file) { if (memcmp(file.name(), "pwrlog_", 7) == 0) { stream->print("file: "); stream->println(file.name()); } file = root.openNextFile(); } stream->println("end of file listing"); } void readlog_func(void* cmd, char* argstr, Stream* stream) { File f = SPIFFS.open(argstr); stream->println(); while (f.available() > 0) { stream->write((uint8_t)(f.read())); } f.close(); stream->println(); } void readhex_func(void* cmd, char* argstr, Stream* stream) { int i = 0; File f = SPIFFS.open(argstr); stream->println(); while (f.available() > 0) { stream->printf("0x%02X, ", (uint8_t)(f.read())); i++; if ((i % 16) == 0) { stream->printf("\r\n"); } } f.close(); stream->println(); } void pmiclog_func(void* cmd, char* argstr, Stream* stream) { pmic_startCoulombCount(); stream->println("coulomb count started"); } #endif ================================================ FILE: arduino_workspace/AlphaFairy/ConfigMenu.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" static bool has_saved = false; bool config_save_exit(void*) { has_saved = true; settings_save(); return true; } class PageLcdBrightness : public FairyCfgItem { public: PageLcdBrightness(const char* disp_name, int32_t* linked_var, int32_t val_min, int32_t val_max, int32_t step_size, uint16_t fmt_flags) : FairyCfgItem(disp_name, linked_var, val_min, val_max, step_size, fmt_flags) { }; virtual void on_readjust(void) { M5.Axp.ScreenBreath(config_settings.lcd_brightness); }; virtual void on_eachFrame(void) { pwr_tick(true); }; }; class AppConfigMenu : public FairyCfgApp { public: AppConfigMenu() : FairyCfgApp("/config.png", "/config_icon.png") { install(new FairyCfgItem("focus pause" , (int32_t*)&(config_settings.focus_pause_time_ms ), 0, 1000, 10, TXTFMT_BYTENS )); install(new FairyCfgItem("MF knob steps" , (int32_t*)&(config_settings.fenc_multi ), -100, 100, 1, TXTFMT_NONE )); install(new FairyCfgItem("MF knob large steps" , (int32_t*)&(config_settings.fenc_large ), 0, 1000, 1, TXTFMT_NONE )); install(new FairyCfgItem("shutter press duration" , (int32_t*)&(config_settings.shutter_press_time_ms ), 0, 1000, 10, TXTFMT_BYTENS )); install(new FairyCfgItem("MF return" , (int32_t*)&(config_settings.manual_focus_return ), 0, 1, 1, TXTFMT_BOOL )); install(new FairyCfgItem("Tv step delay" , (int32_t*)&(config_settings.shutter_step_time_ms ), 0, 5000, 10, TXTFMT_BYTENS )); install(new FairyCfgItem("Tally Light en" , (int32_t*)&(config_settings.tallylite ), 0, 3, 1, TXTFMT_TALLEYLITE)); install(new FairyCfgItem("power save time (s)" , (int32_t*)&(config_settings.pwr_save_secs ), 0, 1000, 10, TXTFMT_BYTENS | TXTFMT_ZEROINF)); install(new PageLcdBrightness("LCD bright" , (int32_t*)&(config_settings.lcd_brightness ), 7, 12, 1, TXTFMT_LCDBRITE )); install(new FairyCfgItem("LCD dim time (s)" , (int32_t*)&(config_settings.lcd_dim_secs ), 0, 1000, 1, TXTFMT_BYTENS | TXTFMT_ZEROINF)); install(new FairyCfgItem("WiFi power" , (int32_t*)&(config_settings.wifi_pwr ), 0, 14, 1, TXTFMT_BYTENS )); install(new FairyCfgItem("SSDP timeout (s)" , (int32_t*)&(config_settings.ssdp_timeout ), 0, 1000, 1, TXTFMT_BYTENS )); install(new FairyCfgItem("IR en" , (int32_t*)&(config_settings.infrared_enabled ), 0, 1, 1, TXTFMT_BOOL )); install(new FairyCfgItem("camera protocol" , (int32_t*)&(config_settings.protocol ), 0, 2, 1, TXTFMT_PROTOCOL )); install(new FairyCfgItem("pin - shutter rel." , (int32_t*)&(config_settings.pin_shutter ), 0, PINCFG_END - 1, 1, TXTFMT_PINCFG)); install(new FairyCfgItem("pin - ext input" , (int32_t*)&(config_settings.pin_exinput ), 0, PINCFG_END - 1, 1, TXTFMT_PINCFG)); install(new FairyCfgItem("Save + Exit", config_save_exit, "/back_icon.png")); }; virtual bool on_execute(void) { has_saved = false; if (_backup == NULL) { _backup = (configsettings_t*)malloc(sizeof(configsettings_t)); } memcpy(_backup, &config_settings, sizeof(configsettings_t)); // allows for changes to be undone bool exit = FairyCfgApp::on_execute(); if (has_saved == false) { // user quit via pwr button press, so do not save the settings memcpy(&config_settings, _backup, sizeof(configsettings_t)); M5.Axp.ScreenBreath(config_settings.lcd_brightness); } else { if (_backup->wifi_pwr != config_settings.wifi_pwr) { NetMgr_setWifiPower((wifi_power_t)wifipwr_table[config_settings.wifi_pwr]); } while (_backup->pin_shutter != config_settings.pin_shutter || _backup->pin_exinput != config_settings.pin_exinput) { ESP.restart(); } } if (_backup != NULL) { free(_backup); _backup = NULL; } return exit; } protected: configsettings_t* _backup = NULL; }; extern FairySubmenu menu_utils; void setup_configmenu(void) { static AppConfigMenu app; menu_utils.install(&app); } ================================================ FILE: arduino_workspace/AlphaFairy/CpuFreq.ino ================================================ #include "AlphaFairy.h" #include "driver/uart.h" static uint32_t cpufreq_xtal = 0; static const uint32_t cpufreq_cpuFreqMax = 240; static uint32_t cpufreq_cpuFreqMin = 80; // change later based on crystal static uint32_t cpufreq_timestamp = 0; static uint32_t cpufreq_cpuFreqLast = 80; static uint32_t cpufreq_tgtFreq = 240; extern "C" { extern uint32_t _get_effective_baudrate(uint32_t baudrate); }; void cpufreq_init(void) { cpufreq_xtal = getXtalFrequencyMhz(); dbg_ser.printf("XTAL freq: %u MHz\r\n", cpufreq_xtal); #if 0 // these frequencies are technically possible but breaks WiFi switch (cpufreq_xtal) { case 40: cpufreq_cpuFreqMin = 10; // this is the one for M5StickC-Plus (ESP32-PICO) break; case 26: cpufreq_cpuFreqMin = 13; break; case 24: cpufreq_cpuFreqMin = 12; break; } #else #ifdef ENABLE_CPU_FREQ_SCALING cpufreq_cpuFreqMin = 80; // this seems to work #else cpufreq_cpuFreqMin = 240; #endif #endif dbg_ser.printf("CPU freq range: %u - %u MHz\r\n", cpufreq_cpuFreqMax, cpufreq_cpuFreqMin); cpufreq_cpuFreqLast = getCpuFrequencyMhz(); cpufreq_tgtFreq = cpufreq_cpuFreqLast; dbg_ser.printf("CPU freq on boot: %u MHz\r\n", cpufreq_cpuFreqLast); if (cpufreq_cpuFreqLast != cpufreq_cpuFreqMax) { cpufreq_boost(); } } static volatile bool cpufreq_mtx = false; void cpufreq_setTarget(uint32_t mhz) { #ifdef ENABLE_CPU_FREQ_SCALING cpufreq_tgtFreq = mhz; if (mhz == cpufreq_cpuFreqMax) { cpufreq_change(mhz); } #endif } void cpufreq_change(uint32_t mhz) { #ifdef ENABLE_CPU_FREQ_SCALING if (cpufreq_mtx) { return; } cpufreq_mtx = true; if (cpufreq_cpuFreqLast != mhz) { setCpuFrequencyMhz(mhz); cpufreq_cpuFreqLast = mhz; if (mhz == cpufreq_tgtFreq) { uart_config_t uart_config; uart_config.baud_rate = _get_effective_baudrate(SERIAL_PORT_BAUDRATE); uart_config.data_bits = UART_DATA_8_BITS; uart_config.parity = UART_PARITY_DISABLE; uart_config.stop_bits = UART_STOP_BITS_2; uart_config.flow_ctrl = UART_HW_FLOWCTRL_DISABLE; uart_config.rx_flow_ctrl_thresh = 122; uart_config.source_clk = UART_SCLK_APB; uart_param_config(0, &uart_config); dbg_ser.printf("new CPU freq %u MHz\r\n", mhz); } } cpufreq_mtx = false; #endif } void cpufreq_boost(void) { #ifdef ENABLE_CPU_FREQ_SCALING uint32_t now = millis(); cpufreq_timestamp = now; cpufreq_setTarget(cpufreq_cpuFreqMax); #endif } void cpufreq_task(void) { #ifdef ENABLE_CPU_FREQ_SCALING uint32_t now = millis(); if (cpufreq_tgtFreq != cpufreq_cpuFreqLast) { if (cpufreq_tgtFreq < cpufreq_cpuFreqLast) { // there is a errata that says to not change directly from 240 MHz to 80 or 40 MHz immediately, instead, step down if (cpufreq_cpuFreqLast == 240) { cpufreq_change(160); } else if (cpufreq_cpuFreqLast == 160) { cpufreq_change(80); } } else if (cpufreq_tgtFreq > cpufreq_cpuFreqLast) { /* if (cpufreq_cpuFreqLast <= 40) { cpufreq_change(80); } else if (cpufreq_cpuFreqLast == 80) { cpufreq_change(160); } else if (cpufreq_cpuFreqLast == 160) { cpufreq_change(240); } */ cpufreq_change(cpufreq_tgtFreq); } } if ((now - cpufreq_timestamp) < 1000) { return; } cpufreq_setTarget(cpufreq_cpuFreqMin); #endif } ================================================ FILE: arduino_workspace/AlphaFairy/DrawingUtils.ino ================================================ #include "AlphaFairy.h" #include void gui_drawVerticalDots(int x_offset, int y_margin, int y_offset, int dot_radius, int dot_cnt, int dot_idx, bool reverse, uint16_t back_color, uint16_t fore_color) { // draws a line of vertical dots, with one dot that's highlighted // the calling function can move the highlighted dot to indicate progress/count-down/busy-status // defaults to being in the middle of the screen but the offsets can be defined int lcd_width = M5Lcd.width(); int lcd_height = M5Lcd.height(); int x = (lcd_width / 2) + x_offset; int y_span = lcd_height - (2 * y_margin); int i; cpufreq_boost(); // drawing these dots almost always mean we are in a long execution if (reverse) { dot_idx %= dot_cnt; dot_idx = dot_cnt - dot_idx - 1; } for (i = 0; i < dot_cnt; i++) { int y = y_margin + y_offset + ((y_span * i) / (dot_cnt - 1)); uint32_t color = (i == (dot_idx % dot_cnt)) ? fore_color : back_color; M5Lcd.fillCircle(x, y, dot_radius, color); } } void gui_startAppPrint() { // setup for printing text for a specific application // all black screen, rotated landscape, white text M5Lcd.fillScreen(TFT_BLACK); M5Lcd.setRotation(1); M5Lcd.highlight(true); M5Lcd.setTextWrap(true); M5Lcd.setHighlightColor(TFT_BLACK); // there's no frame buffer, so use the highlight function to prevent messy overlapping text M5Lcd.setTextColor(TFT_WHITE, TFT_BLACK); } void gui_startMenuPrint() { // setup for printing text on a menu screen // white text, large font M5Lcd.setTextFont(4); M5Lcd.highlight(true); M5Lcd.setTextWrap(false); M5Lcd.setTextColor(TFT_BLACK, TFT_WHITE); M5Lcd.setHighlightColor(TFT_WHITE); } void gui_drawConnecting(bool first) { // this function will blink between a sequence of images that indicates that we are waiting for the camera to connect // this code can be tweaked for more animation frames if needed // right now it just goes between 0 and 1 static char conn_filename[] = "/connecting0.png"; static int last_idx = -1; static uint32_t t; if (first) { last_idx = -1; t = millis(); } int cur_idx; uint32_t now = millis(); uint32_t dt = now - t; dt %= 1400; cur_idx = dt / 700; if (cur_idx != last_idx) { last_idx = cur_idx; conn_filename[11] = '0' + cur_idx; cpufreq_boost(); M5Lcd.setRotation(0); M5Lcd.drawPngFile(SPIFFS, conn_filename, 0, 0); } redraw_flag = true; } void gui_setCursorNextLine() { // the new-line sequence only shifts Y and puts X back to zero // so this wrapper call restores X but uses the new Y M5Lcd.setCursor(SUBMENU_X_OFFSET, M5Lcd.getCursorY()); } void gui_blankRestOfLine() { uint32_t margin = (M5Lcd.getRotation() == 0) ? 8 : 65; uint32_t lim = M5Lcd.width() - margin; while (M5Lcd.getCursorX() < lim) { M5Lcd.print(" "); } } void gui_drawTopThickLine(uint16_t thickness, uint16_t colour) { M5Lcd.fillRect(0, 0, M5Lcd.width(), thickness, colour); } void gui_drawSpinStatus(uint16_t thickness, uint16_t bgcolour) { int ang = imu.pitch_accum; int x; if (ang > 0) { x = ang; x = x > M5Lcd.width() ? M5Lcd.width() : x; M5Lcd.fillRect(0, 0, x, thickness, TFT_LIGHTGREY); M5Lcd.fillRect(x + 1, 0, M5Lcd.width() - x, thickness, bgcolour); } else if (ang < 0) { x = -ang; x = x > M5Lcd.width() ? M5Lcd.width() : x; M5Lcd.fillRect(0, 0, M5Lcd.width() - x, thickness, bgcolour); M5Lcd.fillRect(M5Lcd.width() - x + 1, 0, x, thickness, TFT_LIGHTGREY); } else { gui_drawTopThickLine(thickness, bgcolour); } } void gui_showVal(int32_t x, uint32_t txtfmt, Print* printer) { char str[64]; int i = 0; uint32_t txtfmt_masked = txtfmt & TXTFMT_BASEMASK; if (txtfmt_masked == TXTFMT_BOOL) { if (x == 0) { i += sprintf(&(str[i]), "NO"); } else { i += sprintf(&(str[i]), "YES"); } } else if (txtfmt_masked == TXTFMT_BULB) { if (x == 0) { // when bulb = 0, the shutter speed setting on the camera is used i += sprintf(&(str[i]), "(Tv)"); } else { gui_formatSecondsTime(x, str, false); } } else if (txtfmt_masked == TXTFMT_TIMELONG) { gui_formatSecondsTime(x, str, true); } else if (txtfmt_masked == TXTFMT_TIME) { gui_formatSecondsTime(x, str, false); } else if (txtfmt_masked == TXTFMT_TIMEMS) { // if time is provided in milliseconds // print the time as usual (after calculating the whole seconds) x = x < 0 ? 0 : x; uint32_t tsec = x / 1000; uint32_t tsubsec = (x / 100) % 10; // get one decimal place gui_formatSecondsTime(tsec, str, false); // add one decimal place sprintf(&(str[strlen(str)]), ".%d", tsubsec); } else if (txtfmt_masked == TXTFMT_SHUTTER) { gui_formatShutterSpeed(x, str); } else if (txtfmt_masked == TXTFMT_ISO) { gui_formatISO(x, str); } else if (txtfmt_masked == TXTFMT_PROTOCOL) { if (x == ALLOWEDPROTOCOL_ALL) { i += sprintf(&(str[i]), "ALL"); } else if (x == ALLOWEDPROTOCOL_PTP) { i += sprintf(&(str[i]), "PTP (newer)"); } else if (x == ALLOWEDPROTOCOL_HTTP) { i += sprintf(&(str[i]), "HTTP (older)"); } } else if (txtfmt_masked == TXTFMT_TRIGSRC) { if ((txtfmt & TXTFMT_SMALL) == 0) { if (x == TRIGSRC_ALL) { i += sprintf(&(str[i]), "all"); } else if (x == TRIGSRC_MIC) { i += sprintf(&(str[i]), "mic"); } else if (x == TRIGSRC_EXINPUT) { i += sprintf(&(str[i]), "ext-input"); } else if (x == TRIGSRC_IMU) { i += sprintf(&(str[i]), "IMU"); } #ifdef ENABLE_BUILD_LEPTON else if (x == TRIGSRC_THERMAL) { i += sprintf(&(str[i]), "FLIR"); } #endif } else { if (x == TRIGSRC_ALL) { i += sprintf(&(str[i]), "ALL"); } else if (x == TRIGSRC_MIC) { i += sprintf(&(str[i]), "MIC"); } else if (x == TRIGSRC_EXINPUT) { i += sprintf(&(str[i]), "EXT"); } else if (x == TRIGSRC_IMU) { i += sprintf(&(str[i]), "IMU"); } #ifdef ENABLE_BUILD_LEPTON else if (x == TRIGSRC_THERMAL) { i += sprintf(&(str[i]), "FLIR"); } #endif } } else if (txtfmt_masked == TXTFMT_TRIGACT) { if ((txtfmt & TXTFMT_SMALL) == 0) { if (x == TRIGACT_PHOTO) { i += sprintf(&(str[i]), "photo"); } else if (x == TRIGACT_VIDEO) { i += sprintf(&(str[i]), "video"); } else if (x == TRIGACT_INTERVAL) { i += sprintf(&(str[i]), "interval"); } } else { if (x == TRIGACT_PHOTO) { i += sprintf(&(str[i]), "PIC"); } else if (x == TRIGACT_VIDEO) { i += sprintf(&(str[i]), "VID"); } else if (x == TRIGACT_INTERVAL) { i += sprintf(&(str[i]), "INTV"); } } } else if (txtfmt_masked == TXTFMT_PINCFG) { if (x == PINCFG_NONE) { i += sprintf(&(str[i]), "none"); } else { int pin = get_pinCfgGpio(x); if (pin >= 0) { i += sprintf(&(str[i]), "G%u", pin); } else { i += sprintf(&(str[i]), "G??"); } } } else if (txtfmt_masked == TXTFMT_TALLEYLITE) { if (x == TALLYLITE_OFF) { i += sprintf(&(str[i]), "OFF"); } else if (x == TALLYLITE_SCREEN) { i += sprintf(&(str[i]), "SCREEN"); } else if (x == TALLYLITE_LED) { i += sprintf(&(str[i]), "LED"); } else if (x == TALLYLITE_BOTH) { i += sprintf(&(str[i]), "BOTH"); } } else if ((txtfmt & TXTFMT_DIVHUNDRED) != 0) { float xx = x; xx /= 100.0; i += sprintf(&(str[i]), "%0.2f", xx); } else { i += sprintf(&(str[i]), "%d", x); } if (((txtfmt & TXTFMT_ZEROOFF) != 0 && x == 0) || ((txtfmt & TXTFMT_NEGOFF) != 0 && x < 0)) { i = sprintf(&(str[0]), "OFF"); } else if (((txtfmt & TXTFMT_ZEROINF) != 0 && x == 0) || ((txtfmt & TXTFMT_NEGINF) != 0 && x < 0)) { i = sprintf(&(str[0]), "inf."); } if (i > 0 && ((txtfmt & TXTFMT_ALLCAPS) != 0) || ((txtfmt & TXTFMT_ALLLOWER) != 0)) { uint8_t j; for (j = 0; j < i; j++) { char c = str[j]; if (c == 0) { break; } if ((txtfmt & TXTFMT_ALLCAPS) != 0) { if (c >= 'a' && c <= 'z') { str[j] -= 'a'; str[j] += 'A'; } } else if ((txtfmt & TXTFMT_ALLLOWER) != 0) { if (c >= 'A' && c <= 'A') { str[j] += 'a' - 'A'; } } } } if (txtfmt_masked == TXTFMT_LCDBRITE) { M5.Axp.ScreenBreath(x); } if (printer != NULL) { printer->print(str); } } int8_t gui_drawFocusPullState(int y) { int8_t dir = imu_getFocusPull(); if (y < -30) { return dir; } uint16_t pink = 0xFF3C; fpull_drawOneArrowLeft ( 5 + 0, y, dir <= -3 ? TFT_RED : pink); fpull_drawOneArrowLeft ( 5 + 20, y, dir <= -2 ? TFT_RED : pink); fpull_drawOneArrowLeft ( 5 + 40, y, dir <= -1 ? TFT_RED : pink); fpull_drawOneArrowRight(71 + 0, y, dir >= 1 ? TFT_RED : pink); fpull_drawOneArrowRight(71 + 20, y, dir >= 2 ? TFT_RED : pink); fpull_drawOneArrowRight(71 + 40, y, dir >= 3 ? TFT_RED : pink); return dir; } void gui_drawLevelBar(int32_t lvl1, int32_t lvl2, int32_t thresh1, int32_t thresh2) { static TFT_eSprite* level_canvas = NULL; if (level_canvas == NULL) { level_canvas = new TFT_eSprite(&M5Lcd); level_canvas->createSprite(M5Lcd.width() - GENERAL_ICON_WIDTH, MICTRIG_LEVEL_MARGIN); } #define MICTRIG_LEVEL_BAR_HEIGHT 8 #define MICTRIG_LEVEL_TRIG_HEIGHT 12 int16_t ysplit = MICTRIG_LEVEL_TRIG_HEIGHT / 2; level_canvas->fillSprite(TFT_BLACK); if (lvl1 >= 0 && lvl2 < 0) { level_canvas->fillRect(0 , 0, lvl1, MICTRIG_LEVEL_BAR_HEIGHT , TFT_RED ); } else if (lvl1 < 0 && lvl2 >= 0) { level_canvas->fillRect(0 , 0, lvl2, MICTRIG_LEVEL_BAR_HEIGHT , TFT_RED ); } else if (lvl1 >= 0 && lvl2 >= 0) { level_canvas->fillRect(0 , 0 , lvl1, ysplit, TFT_RED ); level_canvas->fillRect(0 , ysplit, lvl2, ysplit, TFT_RED ); } if (thresh1 >= 0 && thresh2 < 0) { level_canvas->fillRect(thresh1, 0, 3 , MICTRIG_LEVEL_TRIG_HEIGHT, lvl2 > lvl1 ? TFT_DARKGREEN : TFT_GREEN); } else if (thresh2 >= 0 && thresh1 < 0) { level_canvas->fillRect(thresh2, 0, 3 , MICTRIG_LEVEL_TRIG_HEIGHT, lvl2 > lvl1 ? TFT_GREEN : TFT_DARKGREEN); } else if (thresh1 >= 0 && thresh2 >= 0) { level_canvas->fillRect(thresh1, 0 , 3 , ysplit, TFT_GREEN); level_canvas->fillRect(thresh2, ysplit, 3 , ysplit, TFT_GREEN); } level_canvas->pushSprite(0, 0); } void draw_borderRect(int16_t thickness, uint16_t colour) { int16_t i; for (i = 0; i < thickness; i++) { M5Lcd.drawRect(0 + i, 0 + i, M5Lcd.width() - 1 - (i * 2), M5Lcd.height() - 1 - (i * 2), colour); } } void interval_drawTimerStart() { //M5Lcd.drawPngFile(SPIFFS, "/timer_blank.png", M5Lcd.width() - GENERAL_ICON_WIDTH, M5Lcd.height() - GENERAL_ICON_WIDTH); M5Lcd.fillRect(M5Lcd.width() - GENERAL_ICON_WIDTH, M5Lcd.height() - GENERAL_ICON_WIDTH, GENERAL_ICON_WIDTH, GENERAL_ICON_WIDTH, TFT_BLACK); } void interval_drawTimerLine(int16_t cx, int16_t cy, int8_t i, uint16_t colour) { float hand = 12.0; float ang = (-M_PI * 2.0f * (float)i) / CLOCK_ANG_DIV; float nx0 = hand * sin(ang); float ny0 = hand * cos(ang); float nx1 = 1.8 * sin(ang + (M_PI / 2.0f)); float ny1 = 1.8 * cos(ang + (M_PI / 2.0f)); float nx2 = 1.8 * sin(ang - (M_PI / 2.0f)); float ny2 = 1.8 * cos(ang - (M_PI / 2.0f)); M5Lcd.fillTriangle( cx + lround(nx0), cy + lround(ny0), cx + lround(nx1), cy + lround(ny1), cx + lround(nx2), cy + lround(ny2), colour); } void interval_drawTimerCircle(int16_t cx, int16_t cy) { // draws a thick circle M5Lcd.drawCircle(cx, cy, 18, TFT_WHITE); M5Lcd.drawCircle(cx, cy, 19, TFT_WHITE); M5Lcd.drawCircle(cx, cy + 1, 18, TFT_WHITE); M5Lcd.drawCircle(cx, cy - 1, 18, TFT_WHITE); M5Lcd.drawCircle(cx + 1, cy, 18, TFT_WHITE); M5Lcd.drawCircle(cx - 1, cy, 18, TFT_WHITE); M5Lcd.drawCircle(cx + 1, cy + 1, 18, TFT_WHITE); M5Lcd.drawCircle(cx - 1, cy + 1, 18, TFT_WHITE); M5Lcd.drawCircle(cx + 1, cy - 1, 18, TFT_WHITE); M5Lcd.drawCircle(cx - 1, cy - 1, 18, TFT_WHITE); } void fpull_drawOneArrowLeft(int16_t x, int16_t y, uint16_t colour) { M5Lcd.fillTriangle(x , y + 11, x + 11 , y + 11, x + 8 , y , colour); M5Lcd.fillTriangle(x , y + 11, x + 11 , y + 11, x + 8 + 11, y , colour); M5Lcd.fillTriangle(x + 8, y , x + 8 + 11, y , x , y + 11, colour); M5Lcd.fillTriangle(x + 8, y , x + 8 + 11, y , x + 11 , y + 11, colour); M5Lcd.fillTriangle(x , y + 12, x + 11 , y + 11, x + 8 , y + 24, colour); M5Lcd.fillTriangle(x , y + 12, x + 11 , y + 11, x + 8 + 11, y + 24, colour); M5Lcd.fillTriangle(x + 8, y + 24, x + 8 + 11, y + 24, x , y + 12, colour); M5Lcd.fillTriangle(x + 8, y + 24, x + 8 + 11, y + 24, x + 11 , y + 12, colour); } void fpull_drawOneArrowRight(int16_t x, int16_t y, uint16_t colour) { M5Lcd.fillTriangle(x , y , x + 11 , y , x + 8 , y + 11, colour); M5Lcd.fillTriangle(x , y , x + 11 , y , x + 11 + 8, y + 11, colour); M5Lcd.fillTriangle(x + 8, y + 11, x + 11 + 8, y + 11, x , y , colour); M5Lcd.fillTriangle(x + 8, y + 11, x + 11 + 8, y + 11, x + 11 , y , colour); M5Lcd.fillTriangle(x , y + 24, x + 11 , y + 24, x + 8 , y + 12, colour); M5Lcd.fillTriangle(x , y + 24, x + 11 , y + 24, x + 11 + 8, y + 12, colour); M5Lcd.fillTriangle(x + 8, y + 12, x + 11 + 8, y + 12, x , y + 24, colour); M5Lcd.fillTriangle(x + 8, y + 12, x + 11 + 8, y + 12, x + 11 , y + 24, colour); } ================================================ FILE: arduino_workspace/AlphaFairy/DualShutter.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" speed_t dual_shutter_next = { 0, 0, "" }; speed_t dual_shutter_iso = { 0, 0, "" }; speed_t dual_shutter_last_tv = { 0, 0, "" }; speed_t dual_shutter_last_iso = { 0, 0, "" }; void dual_shutter_shoot(bool already_focused, bool read_button, speed_t* restore_shutter, speed_t* restore_iso) { bool starting_mf = false; bool starting_mf_ignore = false; bool need_restore_af = false; bool need_restore_ss = false; bool need_restore_iso = false; if (httpcam.isOperating() && httpcam.is_manuallyfocused() == SHCAM_FOCUSMODE_NONE) { starting_mf_ignore = true; } if (already_focused == false) { // only care about MF if we are not already focused starting_mf = fairycam.is_manuallyfocused(); } if (already_focused == false && starting_mf == false && starting_mf_ignore == false) { // the camera won't actually take a photo if it's not focused (when shutter tries to open, it'll lag to focus) // so we turn on AF fairycam.cmd_AutoFocus(true); need_restore_af = true; } fairycam.cmd_Shutter(true); uint32_t t = millis(), now = t; uint32_t shutter_ms = 500; if (ptpcam.isOperating() && restore_shutter != NULL && restore_shutter->flags == SPEEDTYPE_PTP) { shutter_ms = shutter_to_millis(restore_shutter->u32 == 0 ? ptpcam.get_property(SONYALPHA_PROPCODE_ShutterSpeed) : restore_shutter->u32); } else if (httpcam.isOperating() && restore_shutter != NULL && restore_shutter->flags == SPEEDTYPE_HTTP) { shutter_ms = shutter_to_millis(parse_shutter_speed_str(restore_shutter->str)); } // first wait is for minimum press time while (((now = millis()) - t) < shutter_ms && (now - t) < config_settings.shutter_press_time_ms) { ptpcam.poll(); httpcam.poll(); } // release button and wait for the rest of the time fairycam.cmd_Shutter(false); while (((now = millis()) - t) < shutter_ms && fairycam.isOperating()) { ptpcam.poll(); httpcam.poll(); if (read_button) { if (btnBig_isPressed() == false) { break; } } } // opportunity for early pause if (read_button && btnBig_isPressed() == false) { goto last_step; } fairycam.wait_while_saving(0, 500, DEFAULT_SAVE_TIMEOUT); // set the shutter speed for second shot need_restore_ss = true; if (ptpcam.isOperating() && dual_shutter_next.flags == SPEEDTYPE_PTP) { ptpcam.cmd_ShutterSpeedSet32(dual_shutter_next.u32); } else if (httpcam.isOperating() && dual_shutter_next.flags == SPEEDTYPE_HTTP) { httpcam.cmd_ShutterSpeedSetStr(dual_shutter_next.str); } fairycam.wait_while_busy(config_settings.shutter_step_time_ms, DEFAULT_BUSY_TIMEOUT); // change ISO if required if (ptpcam.isOperating() && restore_iso != NULL && dual_shutter_iso.flags == SPEEDTYPE_PTP && restore_iso->flags == SPEEDTYPE_PTP && dual_shutter_iso.u32 != restore_iso->u32) { need_restore_iso = true; ptpcam.cmd_IsoSet(dual_shutter_iso.u32); } else if (httpcam.isOperating() && restore_iso != NULL && dual_shutter_iso.flags == SPEEDTYPE_HTTP && restore_iso->flags == SPEEDTYPE_HTTP && strcmp(dual_shutter_iso.str, restore_iso->str) != 0) { need_restore_iso = true; httpcam.cmd_IsoSetStr(dual_shutter_iso.str); } if (need_restore_iso) { fairycam.wait_while_busy(config_settings.shutter_step_time_ms, DEFAULT_BUSY_TIMEOUT); } // start second shot fairycam.cmd_Shutter(true); t = millis(); now = t; if (ptpcam.isOperating() && dual_shutter_next.flags == SPEEDTYPE_PTP) { shutter_ms = shutter_to_millis(dual_shutter_next.u32 == 0 ? ptpcam.get_property(SONYALPHA_PROPCODE_ShutterSpeed) : dual_shutter_next.u32); } else if (httpcam.isOperating() && dual_shutter_next.flags == SPEEDTYPE_HTTP) { shutter_ms = shutter_to_millis(parse_shutter_speed_str(dual_shutter_next.str)); } while (((now = millis()) - t) < shutter_ms && (now - t) < config_settings.shutter_press_time_ms) { ptpcam.poll(); httpcam.poll(); } fairycam.cmd_Shutter(false); while (((now = millis()) - t) < shutter_ms && ptpcam.isOperating()) { ptpcam.poll(); httpcam.poll(); if (read_button) { if (btnBig_isPressed() == false) { break; } } } last_step: // attempt to restore camera to original state if needed // this sends the commands over and over again until the change is effective t = millis(); now = t; uint32_t timeout = 800; if (need_restore_ss && restore_shutter != NULL) { uint32_t cur_ss; uint32_t compare_ss; if (ptpcam.isOperating() && restore_shutter->flags == SPEEDTYPE_PTP) { compare_ss = restore_shutter->u32; } else if (httpcam.isOperating() && restore_shutter->flags == SPEEDTYPE_HTTP) { compare_ss = parse_shutter_speed_str(restore_shutter->str); } do { if (ptpcam.isOperating() && restore_shutter->flags == SPEEDTYPE_PTP && restore_shutter->u32 != 0) { ptpcam.cmd_ShutterSpeedSet32(restore_shutter->u32); ptpcam.wait_while_busy(100, DEFAULT_BUSY_TIMEOUT); cur_ss = ptpcam.get_property(SONYALPHA_PROPCODE_ShutterSpeed); if (cur_ss == compare_ss) { break; } } else if (httpcam.isOperating() && restore_shutter->flags == SPEEDTYPE_HTTP && restore_shutter->str[0] != 0) { httpcam.cmd_ShutterSpeedSetStr(restore_shutter->str); httpcam.wait_while_busy(100, DEFAULT_BUSY_TIMEOUT); cur_ss = httpcam.get_shutterspd_32(); if (cur_ss == compare_ss) { break; } } } while (((now = millis()) - t) < timeout || btnBig_isPressed()); } t = millis(); now = t; if (need_restore_iso && restore_iso != NULL) { uint32_t cur_iso; do { if (ptpcam.isOperating() && restore_iso->flags == SPEEDTYPE_PTP && restore_iso->u32 != 0) { ptpcam.cmd_IsoSet(restore_iso->u32); ptpcam.wait_while_busy(100, DEFAULT_BUSY_TIMEOUT); cur_iso = ptpcam.get_property(SONYALPHA_PROPCODE_ISO); if (cur_iso == restore_iso->u32) { break; } } else if (httpcam.isOperating() && restore_iso->flags == SPEEDTYPE_HTTP && restore_iso->str[0] != 0) { httpcam.cmd_IsoSetStr(restore_iso->str); httpcam.wait_while_busy(100, DEFAULT_BUSY_TIMEOUT); char* cur_iso_str = httpcam.get_iso_str(); if (strcmp(cur_iso_str, restore_iso->str) == 0) { break; } } } while (((now = millis()) - t) < timeout || btnBig_isPressed()); } if (already_focused) { // wait for user to let go of button t = millis(); now = t; do { app_poll(); if (ptpcam.isOperating()) { if (ptpcam.get_property(SONYALPHA_PROPCODE_FocusFound) == SONYALPHA_FOCUSSTATUS_NONE) { break; } } else if (httpcam.isOperating()) { if (httpcam.is_focused == false) { break; } } } while (((now = millis()) - t) < timeout); } if (need_restore_af && starting_mf_ignore == false) { fairycam.wait_while_busy(config_settings.shutter_step_time_ms, DEFAULT_BUSY_TIMEOUT); fairycam.cmd_AutoFocus(false); } app_waitAllRelease(); return; } void dualshutter_drawText() { gui_startMenuPrint(); M5Lcd.fillRect(0, 52, M5Lcd.width(), 102 - 52, TFT_WHITE); if (dual_shutter_next.flags == SPEEDTYPE_NONE) { M5Lcd.setTextFont(4); M5Lcd.setCursor(0, 70); M5Lcd.printf(" "); M5Lcd.setCursor(6, 70); M5Lcd.printf(" NOT SET"); gui_blankRestOfLine(); } else { M5Lcd.setTextFont(2); M5Lcd.setCursor(15, 65); M5Lcd.printf("Tv "); if (dual_shutter_next.flags == SPEEDTYPE_PTP) { gui_showVal(dual_shutter_next.u32, TXTFMT_SHUTTER, (Print*)&M5Lcd); } else { M5Lcd.print(dual_shutter_next.str); } gui_blankRestOfLine(); M5Lcd.setCursor(15, 65 + 18); M5Lcd.printf("ISO "); if (dual_shutter_iso.flags == SPEEDTYPE_PTP) { gui_showVal(dual_shutter_iso.u32, TXTFMT_ISO, (Print*)&M5Lcd); } else { M5Lcd.print(dual_shutter_iso.str); } gui_blankRestOfLine(); } } void dualshutter_logSettings() { if (ptpcam.isOperating() && ptpcam.has_property(SONYALPHA_PROPCODE_ShutterSpeed) && ptpcam.has_property(SONYALPHA_PROPCODE_ISO) && ptpcam.has_property(SONYALPHA_PROPCODE_FocusFound) && ptpcam.get_property(SONYALPHA_PROPCODE_FocusFound) == SONYALPHA_FOCUSSTATUS_NONE) { // remember last known setting uint32_t tv = ptpcam.get_property(SONYALPHA_PROPCODE_ShutterSpeed); uint32_t iso = ptpcam.get_property(SONYALPHA_PROPCODE_ISO); // only remember if it's not the same (workaround for the camera not responding to restore commands) dual_shutter_last_tv.u32 = (tv != dual_shutter_next.u32 || dual_shutter_next.flags != SPEEDTYPE_PTP) ? tv : dual_shutter_last_tv.u32; dual_shutter_last_iso.u32 = (iso != dual_shutter_iso.u32 || dual_shutter_iso.flags != SPEEDTYPE_PTP) ? iso : dual_shutter_last_iso.u32; dual_shutter_last_tv.flags = SPEEDTYPE_PTP; dual_shutter_last_iso.flags = SPEEDTYPE_PTP; } } class AppDualShutter : public FairyMenuItem { public: AppDualShutter() : FairyMenuItem("/dualshutter_reg.png") { }; virtual void on_navTo(void) { _is_armed = false; FairyMenuItem::on_navTo(); }; virtual void draw_mainImage(void) { if (_is_armed == false) { FairyMenuItem::draw_mainImage(); } else { cpufreq_boost(); M5Lcd.setRotation(0); M5Lcd.drawPngFile(SPIFFS, "/dualshutter_shoot.png", _main_img_x, _main_img_y); } }; virtual void on_redraw(void) { FairyMenuItem::on_redraw(); draw_text(); }; virtual void on_spin(int8_t x) { // toggle mode on spin if (x != 0) { if (_is_armed) { _is_armed = false; } else { //if (dual_shutter_next.flags != SPEEDTYPE_NONE && fairycam.isOperating()) { _is_armed = true; } } set_redraw(); } }; virtual void on_eachFrame(void) { gui_drawSpinStatus(5, TFT_WHITE); if (_is_armed) { if ((ptpcam.isOperating() && ptpcam.has_property(SONYALPHA_PROPCODE_FocusFound) && ptpcam.get_property(SONYALPHA_PROPCODE_FocusFound) == SONYALPHA_FOCUSSTATUS_FOCUSED) || (httpcam.isOperating() && httpcam.is_focused)) { // trigger via shutter half press gui_drawTopThickLine(8, TFT_RED); // indicate dual_shutter_shoot(true, false, &dual_shutter_last_tv, &dual_shutter_last_iso); gui_drawTopThickLine(8, TFT_WHITE); } } dualshutter_logSettings(); }; virtual bool on_execute(void) { if (must_be_connected() == false) { return false; } if (_is_armed == false) { bool gotdata = false; if (ptpcam.isOperating()) { if (ptpcam.has_property(SONYALPHA_PROPCODE_ShutterSpeed) && ptpcam.has_property(SONYALPHA_PROPCODE_ISO)) { dual_shutter_next.flags = SPEEDTYPE_PTP; dual_shutter_iso.flags = SPEEDTYPE_PTP; dual_shutter_next.u32 = ptpcam.get_property(SONYALPHA_PROPCODE_ShutterSpeed); dual_shutter_iso.u32 = ptpcam.get_property(SONYALPHA_PROPCODE_ISO); dbg_ser.printf("dualshutter 0x%08X %u\r\n", dual_shutter_next, dual_shutter_iso); gotdata = true; } } else if (httpcam.isOperating()) { if (strlen(httpcam.get_shutterspd_str()) > 0 && strlen(httpcam.get_iso_str()) > 0) { dual_shutter_next.flags = SPEEDTYPE_HTTP; dual_shutter_iso.flags = SPEEDTYPE_HTTP; strcpy(dual_shutter_next.str, httpcam.get_shutterspd_str()); strcpy(dual_shutter_iso.str, httpcam.get_iso_str()); gotdata = true; } } if (gotdata == false) { dbg_ser.println("dualshutter no data from camera"); } draw_text(); app_waitAllRelease(); } else if (_is_armed) { gui_drawTopThickLine(8, TFT_RED); dual_shutter_shoot(false, true, &dual_shutter_last_tv, &dual_shutter_last_iso); gui_drawTopThickLine(8, TFT_WHITE); app_waitAllRelease(); } return false; }; protected: bool _is_armed = false; void draw_text(void) { dualshutter_drawText(); }; }; extern FairySubmenu menu_remote; void setup_dualshutter() { static AppDualShutter app; menu_remote.install(&app); } ================================================ FILE: arduino_workspace/AlphaFairy/FairyMenu.cpp ================================================ #include "FairyMenu.h" #include "AlphaFairy.h" #include extern M5DisplayExt M5Lcd; extern void gui_startAppPrint(void); extern void gui_drawStatusBar(bool); extern void gui_showVal(int32_t x, uint32_t txtfmt, Print* printer); extern void tallylite_task(void); extern void handle_user_reauth(void); // shows the wifi error screen and offers the user a way of changing wifi password #ifdef ENABLE_BUILD_LEPTON extern void lepton_encRead(bool* sw, int16_t* inc, int16_t* rem); extern void lepton_encClear(void); #endif int8_t FairyCfgApp::prev_tilt = 0; bool FairyCfgItem::dirty = false; FairyMenuItem::FairyMenuItem(const char* img_fname, uint16_t id) { _id = id; if (img_fname != NULL) { _main_img = (char*)malloc(strlen(img_fname) + 2); strcpy(_main_img, img_fname); } else { _main_img = NULL; } } void FairyMenuItem::draw_mainImage(void) { cpufreq_boost(); M5Lcd.setRotation(0); M5Lcd.drawPngFile(SPIFFS, _main_img, _main_img_x, _main_img_y); // if you need to overlay something else on top of the main image, then override this function, call it first, then do whatever you need to do } void FairyMenuItem::draw_statusBar(void) { gui_drawStatusBar(false); // if the background is black, then override this virtual function } FairySubmenu::FairySubmenu(const char* img_fname, uint16_t id) : FairyMenuItem(img_fname, id) { } bool FairySubmenu::on_execute(void) { uint32_t t = millis(); cpufreq_boost(); rewind(); imu.resetSpin(); FairyMenuItem* itm = (FairyMenuItem*)cur_node->item; itm->on_navTo(); // this does a redraw bool run_normally = true; if (itm->get_quickEnter()) { while (btnBig_isPressed()) // must hold button { app_poll(); if ((millis() - t) > 1000) // must hold button for this long { run_normally = false; break; } } if (run_normally == false) // quick enter has triggered { sprites->unload_all(); itm->on_execute(); sprites->unload_all(); itm->on_navOut(); // direct exit anyways } } if (run_normally) { app_waitAllRelease(); do { if (app_poll()) // true if low priority tasks can execute { tallylite_task(); if (task()) // true if user wants to exit out of submenu { itm->on_navOut(); break; } pwr_sleepCheck(); } } while (true); } // user exit set_redraw(); return false; } void FairySubmenu::install(FairyItem* itm) { itm->set_parent((void*)this, this->_id); if (head_node == NULL) // first node of the list, need to be assigned to head_node { head_node = (FairyItemNode_t*)malloc(sizeof(FairyItemNode_t)); head_node->item = itm; head_node->next_node = (void*)head_node; head_node->prev_node = (void*)head_node; cur_node = head_node; } else // not first node, need to insert between head node and tail node, to become the new tail node { FairyItemNode_t* tail_node = get_tailNode(); FairyItemNode_t* new_node = (FairyItemNode_t*)malloc(sizeof(FairyItemNode_t)); new_node->item = itm; new_node->next_node = (void*)head_node; new_node->prev_node = (void*)tail_node; tail_node->next_node = (void*)new_node; head_node->prev_node = (void*)new_node; } } FairyItem* FairySubmenu::nav_next(void) { FairyItemNode_t* n = cur_node; uint8_t i; if (cur_node == NULL) { return NULL; } for (i = 0; i < 10; i++) // this is a for loop just to prevent infinite loops { n = (FairyItemNode_t*)(n->next_node); // find the next node that isn't hidden if (n->item->can_navTo()) { cur_node = n; return cur_node->item; } } return NULL; } #ifdef ENABLE_BUILD_LEPTON FairyItem* FairySubmenu::nav_prev(void) { FairyItemNode_t* n = cur_node; uint8_t i; if (cur_node == NULL) { return NULL; } for (i = 0; i < 10; i++) // this is a for loop just to prevent infinite loops { n = (FairyItemNode_t*)(n->prev_node); // find the next node that isn't hidden if (n->item->can_navTo()) { cur_node = n; return cur_node->item; } } return NULL; } #endif bool FairySubmenu::task(void) { handle_user_reauth(); FairyMenuItem* itm; bool redraw = redraw_flag; #ifdef ENABLE_BUILD_LEPTON bool enc_center_btn; int16_t enc_nav; #endif itm = (FairyMenuItem*)cur_node->item; bool to_nav = false; if (btnSide_hasPressed()) { // next button pressed btnSide_clrPressed(); to_nav = true; } else if (_bigbtn_nav) { // big button becomes next button if (btnBig_hasPressed()) { btnBig_clrPressed(); to_nav = true; } } #ifdef ENABLE_BUILD_LEPTON if (_enc_nav) { lepton_encRead(&enc_center_btn, &enc_nav, NULL); if (enc_nav > 0) { to_nav = true; } else if (enc_nav < 0) { to_nav = false; itm->on_navOut(); itm = (FairyMenuItem*)nav_prev(); itm->on_navTo(); imu.resetSpin(); } } #endif if (to_nav) // next button pressed { itm->on_navOut(); itm = (FairyMenuItem*)nav_next(); itm->on_navTo(); imu.resetSpin(); } itm = (FairyMenuItem*)cur_node->item; redraw |= itm->check_redraw(); if (redraw) { itm->on_redraw(); redraw_flag = false; } // user has spun the IMU if (imu.getSpin() != 0) { itm->on_spin(imu.getSpin()); imu.resetSpin(); } #ifdef ENABLE_BUILD_LEPTON else if (_enc_nav == false) { lepton_encRead(&enc_center_btn, &enc_nav, NULL); if (enc_nav != 0) { itm->on_spin(enc_nav); } } #endif itm->on_eachFrame(); itm->draw_statusBar(); // the status bar function has its own frame rate control #ifdef ENABLE_BUILD_LEPTON // waits until encoder stops while (enc_nav != 0) { lepton_encRead(&enc_center_btn, &enc_nav, NULL); app_poll(); } if (enc_center_btn) { // encoder center button will act as big button sprites->unload_all(); bool need_exit = itm->on_execute(); sprites->unload_all(); if (need_exit) { return true; } if (itm->get_quitOnExit()) { return true; } if (itm->get_quitToNext()) { itm->on_navOut(); itm = (FairyMenuItem*)nav_next(); itm->on_navTo(); imu.resetSpin(); } } else #endif if (_bigbtn_nav) { // do nothing here, big button is acting as the next button } else if (btnBig_hasPressed()) { btnBig_clrPressed(); sprites->unload_all(); bool need_exit = itm->on_execute(); sprites->unload_all(); if (need_exit) { return true; } if (itm->get_quitOnExit()) { return true; } if (itm->get_quitToNext()) { itm->on_navOut(); itm = (FairyMenuItem*)nav_next(); itm->on_navTo(); imu.resetSpin(); } } if (btnPwr_hasPressed()) { btnPwr_clrPressed(); return true; } return false; } FairyCfgItem::FairyCfgItem(const char* disp_name, int32_t* linked_var, int32_t val_min, int32_t val_max, int32_t step_size, uint32_t fmt_flags) { set_name(disp_name); _linked_ptr = linked_var; _fmt_flags = fmt_flags; _val_min = val_min; _val_max = val_max; _step_size = step_size; if ((_fmt_flags & TXTFMT_AUTOCFG) == TXTFMT_AUTOCFG) { _fmt_flags = 0; if (_val_min == 0 && _val_max == 1 && _step_size == 1) { _fmt_flags = TXTFMT_BOOL; } else if (_val_min <= 1 && _val_max >= 1000 && _step_size == 1) { _fmt_flags |= TXTFMT_BYTENS; } } } FairyCfgItem::FairyCfgItem(const char* disp_name, bool (*cb)(void*), const char* icon) { _cb = cb; if (icon != NULL) { set_icon(icon); } set_name(disp_name); } void FairyCfgItem::set_name(const char* x) { _disp_name = (char*)malloc(strlen(x) + 2); strcpy(_disp_name, x); set_font(-1); } void FairyCfgItem::set_icon(const char* x) { _icon_fpath = (char*)malloc(strlen(x) + 2); strcpy(_icon_fpath, x); _icon_width = GENERAL_ICON_WIDTH; } void FairyCfgItem::set_font(int fn) { if (fn < 0) // auto set { uint16_t dim1 = M5Lcd.width(); uint16_t dim2 = M5Lcd.height(); uint16_t dim = dim1 > dim2 ? dim1 : dim2; uint16_t w = M5Lcd.textWidth((const char*)_disp_name, _font_num = 4); if (w >= dim - _icon_width - 10) { _font_num = 2; } } else { _font_num = fn; } _line0_height = M5Lcd.fontHeight(_font_num); } void FairyCfgItem::draw_name(void) { int y = get_y(0); M5Lcd.setCursor(_margin_x, y); M5Lcd.setTextFont(_font_num); M5Lcd.print(_disp_name); M5Lcd.setTextFont(4); M5Lcd.fillRect(M5Lcd.getCursorX(), y, M5Lcd.width() - M5Lcd.getCursorX() - _icon_width, M5Lcd.fontHeight(), TFT_BLACK); draw_icon(); } void FairyCfgItem::draw_icon(void) { if (_icon_fpath != NULL && _icon_width > 0) { M5Lcd.drawPngFile(SPIFFS, _icon_fpath, M5Lcd.width() - _icon_width, 0); } FairyCfgApp* p = dynamic_cast((FairyCfgApp*)get_parent()); if (p != NULL) { p->draw_icon(); } } void FairyCfgItem::draw_statusBar(void) { gui_drawStatusBar(true); } void FairyCfgItem::blank_text(void) { M5Lcd.fillRect(M5Lcd.width() - GENERAL_ICON_WIDTH, 0 , GENERAL_ICON_WIDTH , GENERAL_ICON_WIDTH + _margin_y , TFT_BLACK); M5Lcd.fillRect(0 , _margin_y , M5Lcd.width() - _icon_width , GENERAL_ICON_WIDTH , TFT_BLACK); M5Lcd.fillRect(0 , GENERAL_ICON_WIDTH , M5Lcd.width() - GENERAL_ICON_WIDTH, GENERAL_ICON_WIDTH - 5 , TFT_BLACK); } void FairyCfgItem::on_navTo(void) { on_redraw(); } void FairyCfgItem::on_redraw(void) { blank_text(); draw_name(); draw_value(imu.getTilt()); } void FairyCfgItem::draw_value(int8_t tilt) { if (_linked_ptr == NULL) { return; } int y = get_y(1); M5Lcd.setCursor(_margin_x, y); M5Lcd.setTextFont(4); gui_showVal(get_val(), _fmt_flags, (Print*)&M5Lcd); if (tilt != 0) { M5Lcd.print((tilt > 0) ? " +> " : " <- "); // indicate if button press will increment or decrement } blank_line(); } void FairyCfgItem::draw_value(void) { draw_value(imu.getTilt()); } void FairyCfgItem::blank_line(void) { M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX() - 60, M5Lcd.fontHeight(), TFT_BLACK); } void FairyCfgItem::on_tiltChange(void) { draw_value(); } void FairyCfgItem::on_checkAdjust(int8_t tilt) { // this function handles: // * displaying the arrows beside the value according to tilt // * changing the value on button press // * changing the value even faster when the button is held down int32_t next_step = 0; // this will latch the direction of change during button-hold int16_t rx, ry; rx = M5Lcd.getCursorX(); ry = M5Lcd.getCursorY(); #ifdef ENABLE_BUILD_LEPTON bool enc_btn = false; int16_t enc_inc = 0; int16_t enc_rem; int16_t enc_inc_prev = 0; #endif if (btnBig_hasPressed()) { if (tilt > 0) { (*_linked_ptr) += _step_size; if ((*_linked_ptr) >= _val_max) { // limit the range (*_linked_ptr) = _val_max; } else { next_step = _step_size; // indicate that change has been made } dirty = true; } else if (tilt < 0) { (*_linked_ptr) -= _step_size; if ((*_linked_ptr) <= _val_min) { // limit the range (*_linked_ptr) = _val_min; } else { next_step = -_step_size; // indicate that change has been made } dirty = true; } else { // flip boolean variable even if there's no tilt if (_fmt_flags == TXTFMT_BOOL) { (*_linked_ptr) = ((*_linked_ptr) == 0) ? 1 : 0; dirty = true; } } draw_value(tilt); on_drawLive(); on_readjust(); M5Lcd.setCursor(rx, ry); btnBig_clrPressed(); } #ifdef ENABLE_BUILD_LEPTON else { lepton_encRead(&enc_btn, &enc_inc, &enc_rem); if (enc_inc > 0) { (*_linked_ptr) += _step_size; if ((*_linked_ptr) >= _val_max) { // limit the range (*_linked_ptr) = _val_max; } else { next_step = _step_size; // indicate that change has been made } dirty = true; } else if (enc_inc < 0) { (*_linked_ptr) -= _step_size; if ((*_linked_ptr) <= _val_min) { // limit the range (*_linked_ptr) = _val_min; } else { next_step = -_step_size; // indicate that change has been made } dirty = true; } if (enc_inc != 0) { draw_value(tilt); on_drawLive(); on_readjust(); M5Lcd.setCursor(rx, ry); } enc_inc_prev = enc_inc; } #endif if (next_step != 0 && _fmt_flags != TXTFMT_BOOL) // has pressed { uint32_t press_time = millis(); uint32_t dly = btnBig_isPressed() ? 500 : 1000; // press-and-hold repeating delay int step_cnt = 0; // used to make sure at least some steps are done at minimum step size int tens = 10 * next_step * ((next_step < 0) ? (-1) : (1)); // if the step size starts at 1 or 10, these cases are handled while (true) // is press-and-hold { if (btnBig_isPressed() == false) { #ifdef ENABLE_BUILD_LEPTON #if 0 // this chunk of code doesn't work lepton_encRead(&enc_btn, &enc_inc, &enc_rem); if (enc_inc != 0 || enc_rem != 0) { if (enc_inc != 0 && enc_inc != enc_inc_prev && enc_rem == 0) { break; } } else if (enc_inc == 0 && enc_rem == 0) { break; } else #endif #endif break; } app_poll(); on_extraPoll(); on_drawLive(); uint32_t now = millis(); if ((now - press_time) >= dly) { press_time = now; // make the required delay shorter for the next iteration // this makes the changes "accelerate" dly *= 3; dly /= 4; // impose a limit on the delay if ((_fmt_flags & TXTFMT_BYTENS) != 0) { dly = (dly < 100) ? 100 : dly; } step_cnt++; (*_linked_ptr) += next_step; if ((*_linked_ptr) >= _val_max) { // limit the range (*_linked_ptr) = _val_max; break; } else if ((*_linked_ptr) <= _val_min) { // limit the range (*_linked_ptr) = _val_min; break; } if ((*_linked_ptr) >= 10 && ((*_linked_ptr) % tens) == 0 && step_cnt > 5 && (_fmt_flags & TXTFMT_BYTENS) != 0) { step_cnt = 0; tens *= 10; next_step *= 10; } draw_value(tilt); on_drawLive(); on_readjust(); M5Lcd.setCursor(rx, ry); } } draw_value(tilt); on_drawLive(); on_readjust(); M5Lcd.setCursor(rx, ry); } #ifdef ENABLE_BUILD_LEPTON if (enc_inc_prev != 0) { lepton_encClear(); } #endif } bool FairyCfgItem::on_execute(void) { if (_cb == NULL) { return false; } return _cb(this); } int16_t FairyCfgItem::get_y(int8_t linenum) { if (linenum == 0) { return _margin_y; } return _margin_y + _line0_height + ((linenum - 1) * (M5Lcd.fontHeight(4) + _line_space)); } FairyCfgApp::FairyCfgApp(const char* img_fname, const char* icon_fname, uint16_t id) : FairySubmenu(img_fname, id) { if (icon_fname != NULL) { _icon_fname = (char*)malloc(strlen(icon_fname) + 2); strcpy(_icon_fname, icon_fname); _icon_width = GENERAL_ICON_WIDTH; } _enc_nav = false; } void FairyCfgApp::draw_icon(void) { if (_icon_fname == NULL || _icon_width == 0) { return; } M5Lcd.drawPngFile(SPIFFS, _icon_fname, M5Lcd.width() - _icon_width, M5Lcd.height() - _icon_width); } // this function is similar to FairySubmenu::task(void) bool FairyCfgApp::task(void) { handle_user_reauth(); FairyCfgItem* itm; bool redraw = redraw_flag; bool enc_btn; int16_t enc_inc; itm = (FairyCfgItem*)cur_node->item; if (btnSide_hasPressed()) { btnSide_clrPressed(); itm->on_navOut(); itm = (FairyCfgItem*)nav_next(); itm->on_navTo(); redraw = false; } itm = (FairyCfgItem*)cur_node->item; itm->on_eachFrame(); itm->draw_statusBar(); // the status bar function has its own frame rate control if (redraw) { cpufreq_boost(); itm->on_redraw(); redraw_flag = false; } if (itm->is_func()) { if (btnBig_hasPressed()) { btnBig_clrPressed(); bool ret = itm->on_execute(); if (ret) { return ret; } } #ifdef ENABLE_BUILD_LEPTON else { lepton_encRead(&enc_btn, &enc_inc, NULL); if (enc_btn) { bool ret = itm->on_execute(); if (ret) { return ret; } } } #endif } else if (itm->is_value()) { int8_t tilt = imu.getTilt(); if (tilt != prev_tilt) { itm->on_tiltChange(); } itm->on_checkAdjust(tilt); prev_tilt = tilt; } else { // this case is not supposed to ever happen, but we need to clear the big button's event flag if (btnBig_hasPressed()) { btnBig_clrPressed(); } } if (btnPwr_hasPressed()) { btnPwr_clrPressed(); return true; } return false; } // this function is similar to FairySubmenu::on_execute(void) bool FairyCfgApp::on_execute(void) { cpufreq_boost(); rewind(); FairyCfgItem* itm = (FairyCfgItem*)cur_node->item; gui_startAppPrint(); itm->on_navTo(); app_waitAllRelease(); while (true) { if (app_poll()) { if (task()) { itm->on_navOut(); break; } pwr_sleepCheck(); } } M5Lcd.setRotation(0); set_redraw(); return false; } bool FairyMenuItem::must_be_connected(void) { if (fairycam.isOperating() == false) { app_waitAllReleaseConnecting(); return false; } return true; } bool FairyMenuItem::must_be_ptp(void) { if (must_be_connected() == false) { return false; } if (httpcam.isOperating()) { app_waitAllReleaseUnsupported(); return false; } return true; } ================================================ FILE: arduino_workspace/AlphaFairy/FairyMenu.h ================================================ #ifndef _FAIRYMENU_H_ #define _FAIRYMENU_H_ #include #include #include #include "AlphaFairy.h" extern bool redraw_flag; extern void cpufreq_boost(void); // the base class that every type of menu item is derived from class FairyItem { public: virtual bool on_execute (void) { return false; }; // performs a the app's action, return true for "should exit out of submenu" // for some shared items, it'll be useful to know what parent menu is holding it inline uint16_t get_id (void) { return _id; }; virtual void set_parent(void* x, uint16_t id) { _parent = x; _parent_id = id; }; inline uint16_t get_parentId (void) { return _parent_id; }; inline void* get_parent (void) { return _parent; }; virtual bool can_navTo (void) { return true; }; // used to hide an item virtual void on_navTo (void) { }; // usually used to draw an item virtual void on_navOut (void) { }; // usually used to stop something virtual void on_eachFrame (void) { }; // usually used to poll something specific and/or to update text inline void set_redraw (void) { cpufreq_boost(); redraw_flag = true; } // forces a redraw on next loop, useful for when app execution has drawn extra stuff that needs to disappear protected: void* _parent = NULL; uint16_t _id, _parent_id = 0; }; // used for linked list typedef struct { FairyItem* item; void* next_node; void* prev_node; } FairyItemNode_t; class FairyMenuItem : public FairyItem { public: FairyMenuItem(const char* img_fname, uint16_t id = 0); virtual void reset (void) {}; virtual bool on_execute (void) { return false; }; // do the thing, return true means "exit submenu" // by default, do nothing and do not exit virtual bool can_navTo (void) { return true; }; // used to hide an item // by default, do not hide virtual void on_navTo (void) { on_redraw(); }; // usually used to draw the main image virtual void on_navOut (void) {}; virtual void on_eachFrame (void) {}; virtual void on_spin (int8_t x) {}; // handle IMU spin, do not actually do actions to the imu object here virtual void on_redraw (void) { draw_mainImage(); }; // usually used to draw the main image virtual bool check_redraw (void) { return false; }; virtual void draw_mainImage (void); virtual void draw_statusBar (void); inline char* get_mainImage (void) { return _main_img; }; inline int16_t get_mainImage_X (void) { return _main_img_x; }; inline int16_t get_mainImage_Y (void) { return _main_img_y; }; inline void set_quickEnter (bool x) { _can_quickEnter = x; }; inline bool get_quickEnter (void) { return _can_quickEnter; }; inline bool get_quitOnExit (void) { return _quitOnExit; }; inline bool get_quitToNext (void) { return _quitToNext; }; protected: char* _main_img; int16_t _main_img_x = 0, _main_img_y = 0; bool _can_quickEnter = false; bool _quitOnExit = false; bool _quitToNext = false; bool must_be_connected(void); // convenient to show the "connecting..." animation when required // returns true if connected, false if disconnected bool must_be_ptp(void); // convenient to show the "unsupported camera" error screen, also uses must_be_connected // returns true if connected and supported, false if otherwise unable to operate }; class FairySubmenu : public FairyMenuItem { // this class represents a submenu with items that are full screen, mostly white background, in portrait orientation public: FairySubmenu(const char* img_fname, uint16_t id = 0); inline void set_bigbtn_nav(bool x) { _bigbtn_nav = x; }; // allows the use of the big button as a next button, which disables on_execute completely inline void set_enc_nav(bool x) { _enc_nav = x; }; virtual void install(FairyItem* itm); // adds item to linked list virtual bool on_execute(void); // usually used for a menu loop virtual bool task(void); // usually used to do stuff inside the menu loop, return true means "exit submenu" inline void rewind(void) { cur_node = head_node; }; // reset to showing the first item in the linked list FairyItem* nav_next(void); // navigate to the next item that is not hidden #ifdef ENABLE_BUILD_LEPTON FairyItem* nav_prev(void); // navigate to the prev item that is not hidden #endif // linked list getters inline FairyItemNode_t* get_headNode(void) { return head_node; }; inline FairyItemNode_t* get_tailNode(void) { if (head_node == NULL ) return NULL; return (FairyItemNode_t*)(head_node->prev_node); }; protected: // linked list FairyItemNode_t* head_node = NULL; FairyItemNode_t* cur_node = NULL; bool _bigbtn_nav = false; // allows the use of the big button as a next button, which disables on_execute completely bool _enc_nav = true; // allows the lepton encoder to navigate }; class FairyCfgItem : public FairyItem { // this class is a page within the "configurable app" style of apps, the apps usually consist of many pages of settings and one page for execution public: // initialize as a page representing a setting item FairyCfgItem(const char* disp_name, int32_t* linked_var, int32_t val_min, int32_t val_max, int32_t step_size, uint32_t fmt_flags); // initialize as a page representing a way to execute action FairyCfgItem(const char* disp_name, bool (*cb)(void*), const char* icon = NULL); void set_icon(const char* icon); // sets the icon for the top-right corner void set_font(int fn); // set the font size of the first line of text, use a negative number for auto-sizing inline int32_t get_val (void) { return *_linked_ptr; }; // get the actual value of the configurable item // a way of checking what kind of page this is inline bool is_value(void) { return _linked_ptr != NULL; }; inline bool is_func (void) { return _cb != NULL; }; virtual bool on_execute (void); // do the thing, by default, this calls the registered callback function, return true means "exit submenu" virtual bool can_navTo (void) { return true; }; virtual void on_navTo (void); virtual void on_navOut (void) { if (_autosave && dirty) { dirty = false; settings_save(); } }; // auto-save if the value changed virtual void on_redraw (void); virtual void on_eachFrame (void) { on_extraPoll(); on_drawLive(); }; virtual void on_readjust (void) {}; virtual void on_drawLive (void) {}; // this is used for drawing even faster than on_eachFrame, example: mic level bar virtual void on_extraPoll (void) {}; // this is used for polling even faster than on_eachFrame, example: mic sample reading virtual void on_tiltChange (void); virtual void on_checkAdjust (int8_t); virtual void draw_statusBar (void); virtual void draw_value(void), draw_value(int8_t); virtual void draw_name(void); virtual void draw_icon(void); virtual void blank_text(void); // blanks entire text area virtual void blank_line(void); // blanks rest of line protected: uint16_t _margin_x = SUBMENU_X_OFFSET, _margin_y = SUBMENU_Y_OFFSET, _line0_height = 16, _line_space = 1, _font_num = 4; // default graphic config char* _disp_name; char* _icon_fpath = NULL; int16_t _icon_width = 0; int32_t* _linked_ptr = NULL; bool (*_cb)(void*) = NULL; int32_t _val_min, _val_max, _step_size; uint32_t _fmt_flags; bool _autosave = false; static bool dirty; void set_name(const char*); int16_t get_y(int8_t linenum); // gets the Y coordinate of a text line, compensating for margin and font sizes, 0 indexed }; class FairyCfgApp : public FairySubmenu { // this class represents an app with configurable items, mostly black background with icons, in landscape orientation public: FairyCfgApp(const char* img_fname, const char* icon_fname, uint16_t id = 0); virtual void install(FairyCfgItem* itm) { FairySubmenu::install((FairyItem*)itm); }; virtual bool on_execute(void); // this is the app loop, return true means "exit app" virtual bool task(void); // the inner part of the app loop, return true means "exit app" virtual bool has_icon(void) { return _icon_fname != NULL; }; virtual void draw_icon(void); protected: char* _icon_fname = NULL; int16_t _icon_width = 0; static int8_t prev_tilt; }; #endif ================================================ FILE: arduino_workspace/AlphaFairy/FocusEncoder.ino ================================================ #include "AlphaFairy.h" #include bool fenc_enabled = true; int32_t fenc_val; void fenc_task() { static bool prev_can_run = false; if (config_settings.pin_shutter == PINCFG_G32 || config_settings.pin_shutter == PINCFG_G33 || config_settings.pin_exinput == PINCFG_G32 || config_settings.pin_exinput == PINCFG_G33) { fenc_enabled = false; return; } bool can_run = ptpcam.isOperating() && ptpcam.is_manuallyfocused() && fenc_enabled; // we don't want to waste IO time if the camera is not connected or not in manual focus mode if (prev_can_run != can_run) { fenc_val = 0; fencoder.read(true); // this call here checks if the knob is reconnected if (can_run) { pwr_tick(true); dbg_ser.println("focus knob can run"); } else { dbg_ser.println("focus knob cannot run"); } } prev_can_run = can_run; if (can_run == false) { return; } uint32_t now = millis(); static uint32_t prev_execute_time = 0; static uint32_t prev_move_time = 0; static uint32_t wait_time = 0; // multiplier can't be 0 if (config_settings.fenc_multi == 0) { config_settings.fenc_multi = 1; } // absolute value of multiplier is used to calculate speed int32_t absmulti = config_settings.fenc_multi < 0 ? -config_settings.fenc_multi : config_settings.fenc_multi; fencoder.task(); // do the I2C IO operations required to read encoder int16_t d = fencoder.read(true); // get the relative step count if (d != 0) { pwr_tick(true); cpufreq_boost(); int32_t additional = d * config_settings.fenc_multi; #if 1 // if there are queued steps remaining but the direction changed, immediately change direction if (additional * fenc_val < 0) { fenc_val = additional; } else #endif { fenc_val += additional; // queue up the steps } uint32_t tspan = now - prev_move_time; if (absmulti > 1) { // this is guessing the pause time for multiple steps per tick wait_time = tspan / (absmulti * 2); if (wait_time > config_settings.focus_pause_time_ms) { wait_time = config_settings.focus_pause_time_ms; } } else { wait_time = 0; } prev_move_time = now; } else if (d == 0 && (fenc_val > 1 || fenc_val < -1) && (now - prev_move_time) > 500) { // stop the movement if knob stopped moving for a while fenc_val = 0; } // do the wait by simply not doing anything if ((now - prev_execute_time) < wait_time && wait_time > 0) { return; } // NOTE: every click of the encoder wheel is actually equal to 2 ticks! while (fenc_val > 1 || fenc_val < -1) // while there are steps to do { int16_t absval = fenc_val < 0 ? -fenc_val : fenc_val; int16_t large_step = config_settings.fenc_large * 2; //dbg_ser.printf("focus knob %d\r\n", fenc_val); ptpcam.cmd_ManualFocusStep(((absval >= large_step && large_step > 2) ? SONYALPHA_FOCUSSTEP_FARTHER_LARGE : SONYALPHA_FOCUSSTEP_FARTHER_MEDIUM) // large step size if needed, default medium step size * (fenc_val < 0 ? -1 : 1) * (config_settings.fenc_multi < 0 ? -1 : 1) // account for direction ); fenc_val -= ((absval >= large_step && large_step > 2) ? large_step : 2) // take away the appropriate amount from the queue * (fenc_val < 0 ? -1 : 1) // account for direction ; prev_execute_time = now; if (wait_time != 0) { // do only one loop if a wait has been specified break; } if (millis() - now > 200) { // don't hang the thread break; } cpufreq_boost(); } } bool fenc_canOperate() { return ptpcam.isOperating() && ptpcam.is_manuallyfocused() && fencoder.avail(); } void fenc_calib_sleep(uint32_t x) { uint32_t tstart = millis(); uint32_t now; while (((now = millis()) - tstart) < x) { pwr_tick(true); ptpcam.task(); yield(); } } // lens manual focus calibration // checks how many "medium steps" fit into one "large step" bool fenc_calibrate() { #define FENC_CHECK_CALIB_FAILED() do { if (ptpcam.isOperating() == false) { Serial.printf("MF-Calib: FAILED\r\n"); return false; } } while (0) #define FENC_CHECK_BTN_QUIT() do { if (btnPwr_hasPressed()) { btnPwr_clrPressed(); Serial.printf("MF-Calib: QUIT\r\n"); return false; } } while (0) #define FENC_DOT_TICK() do { gui_drawVerticalDots(0, 40, -1, 5, 5, dot_idx++, false, TFT_GREEN, TFT_RED); } while (0) Serial.println("Manual Focus Calibration Start"); ptpcam.set_debugflags(0); redraw_flag = true; FENC_CHECK_CALIB_FAILED(); int32_t fdist_now; int dot_idx = 0; // we must be in MF mode to use manual focus adjustment commands bool starting_mf = ptpcam.is_manuallyfocused(); if (starting_mf == false) { ptpcam.cmd_ManualFocusMode(true, false); } bool do_one_more = true; uint32_t t = millis(), now = t; // move the focus point to minimum focus (nearest), using large steps so it's fast while (((now = millis()) - t) < 3000 || do_one_more) { pwr_tick(true); FENC_CHECK_CALIB_FAILED(); ptpcam.cmd_ManualFocusStep(SONYALPHA_FOCUSSTEP_CLOSER_LARGE); fenc_calib_sleep(config_settings.focus_pause_time_ms); FENC_DOT_TICK(); // check if we've reached the end, and do just one more step to be sure fdist_now = ptpcam.get_property(SONYALPHA_PROPCODE_ManualFocusDist); if (fdist_now <= 0) { if (do_one_more) { do_one_more = false; } else { break; } } } int32_t fdist_near = ptpcam.get_property(SONYALPHA_PROPCODE_ManualFocusDist); Serial.printf("MF-Calib: done homing, dist 0x%08X == %d\r\n", fdist_near, fdist_near); // do exactly just one large step farther away ptpcam.cmd_ManualFocusStep(SONYALPHA_FOCUSSTEP_FARTHER_LARGE); fenc_calib_sleep(config_settings.focus_pause_time_ms * 8); int32_t fdist_lrg = ptpcam.get_property(SONYALPHA_PROPCODE_ManualFocusDist); Serial.printf("MF-Calib: one large step, dist 0x%08X == %d\r\n", fdist_lrg); // do a few medium steps farther away until the focus distance indicator changes again, this makes the measurement more accurate int med_steps = 0, med_extra = 0; while (true) { pwr_tick(true); FENC_CHECK_CALIB_FAILED(); FENC_CHECK_BTN_QUIT(); med_extra++; ptpcam.cmd_ManualFocusStep(SONYALPHA_FOCUSSTEP_FARTHER_MEDIUM); fenc_calib_sleep(config_settings.focus_pause_time_ms * 4); FENC_DOT_TICK(); // see where the distance is now and check if it changed fdist_now = ptpcam.get_property(SONYALPHA_PROPCODE_ManualFocusDist); if (fdist_now > fdist_lrg) { break; } } Serial.printf("MF-Calib: %u extra medium steps, dist 0x%08X == %d\r\n", fdist_now); do_one_more = true; t = millis(); // go back to minimum focus distance quickly while (((now = millis()) - t) < 3000 || do_one_more) { pwr_tick(true); FENC_CHECK_CALIB_FAILED(); ptpcam.cmd_ManualFocusStep(SONYALPHA_FOCUSSTEP_CLOSER_LARGE); fenc_calib_sleep(config_settings.focus_pause_time_ms); FENC_DOT_TICK(); // check if we've reached the end, and do just one more step to be sure fdist_now = ptpcam.get_property(SONYALPHA_PROPCODE_ManualFocusDist); if (fdist_now <= 0) { if (do_one_more) { do_one_more = false; } else { break; } } } Serial.printf("MF-Calib: home again\r\n"); // do medium steps until we've reached the same distance as the large-steps-plus-extra-medium-steps while (true) { pwr_tick(true); FENC_CHECK_CALIB_FAILED(); FENC_CHECK_BTN_QUIT(); med_steps++; ptpcam.cmd_ManualFocusStep(SONYALPHA_FOCUSSTEP_FARTHER_MEDIUM); fenc_calib_sleep(config_settings.focus_pause_time_ms * 4); FENC_DOT_TICK(); // check if we've reached the target fdist_now = ptpcam.get_property(SONYALPHA_PROPCODE_ManualFocusDist); if (fdist_now > fdist_lrg) { break; } } int delta_steps = med_steps - med_extra; Serial.printf("MF-Calib: %u medium steps equals one large step\r\n", delta_steps); config_settings.fenc_large = delta_steps; settings_save(); if (starting_mf == false) { ptpcam.cmd_ManualFocusMode(false, false); } Serial.printf("Manual Focus Calibration Done\r\n"); return true; } void focus_calib_write(uint16_t colour) { M5Lcd.setCursor(10, 116); M5Lcd.setTextFont(4); M5Lcd.highlight(true); M5Lcd.setHighlightColor(TFT_WHITE); M5Lcd.setTextColor(colour, TFT_WHITE); M5Lcd.printf("%u", config_settings.fenc_large); } #include "FairyMenu.h" class AppFocusCalib : public FairyMenuItem { public: AppFocusCalib() : FairyMenuItem("/focus_calib.png") { }; virtual void on_navTo(void) { if (config_settings.fenc_large != 0 && _success != 2) { _success = 1; } FairyMenuItem::on_navTo(); }; virtual void on_redraw(void) { FairyMenuItem::on_redraw(); if (_success > 0) { focus_calib_write(_success == 1 ? TFT_BLACK : TFT_RED); } }; virtual bool on_execute(void) { if (must_be_ptp() == false) { return false; } M5Lcd.drawPngFile(SPIFFS, "/focus_calib.png", 0, 0); // clear screen, removes text bool success = fenc_calibrate(); _success = success ? 1 : 2; set_redraw(); return false; }; protected: int _success = 0; }; extern FairySubmenu menu_utils; void setup_focuscalib() { static AppFocusCalib app; menu_utils.install(&app); } ================================================ FILE: arduino_workspace/AlphaFairy/FocusFrustration.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" class AppFocusFrustration : public FairyMenuItem { public: AppFocusFrustration() : FairyMenuItem("/focus_frust.png") { }; virtual void on_navTo(void) { var_reset(); FairyMenuItem::on_navTo(); } virtual void on_eachFrame(void) { if (ptpcam.isOperating() == false) { var_reset(); return; } if (ptpcam.has_property(SONYALPHA_PROPCODE_FocusFound) == false) { return; } cpufreq_boost(); uint32_t x; /* track the card space and buffer space, reset the tap counter if the user actually takes a photo */ uint32_t cardspace = 0; if (ptpcam.has_property(SONYALPHA_PROPCODE_ObjectInMemory)) { x = ptpcam.get_property(SONYALPHA_PROPCODE_ObjectInMemory); if (x != _objinmem) { // buffer space has changed _cnt = 0; _objinmem = x; dbg_ser.printf("focusfrust obj in mem %u\r\n", x); } } if (ptpcam.has_property(SONYALPHA_PROPCODE_MemoryRemaining_Card1)) { x = ptpcam.get_property(SONYALPHA_PROPCODE_MemoryRemaining_Card1); cardspace += x; } if (ptpcam.has_property(SONYALPHA_PROPCODE_MemoryRemaining_Card2)) { x = ptpcam.get_property(SONYALPHA_PROPCODE_MemoryRemaining_Card2); cardspace += x; } if (cardspace != _cardrem) { // cardspace has changed _cnt = 0; _cardrem = cardspace; dbg_ser.printf("focusfrust card space %u\r\n", cardspace); } x = ptpcam.get_property(SONYALPHA_PROPCODE_FocusFound); uint32_t now = millis(); if (x != SONYALPHA_FOCUSSTATUS_NONE) { // shutter button half press if (_state_prev == false) { _last_time_on = now; pwr_tick(true); dbg_ser.printf("focusfrust pressed %u\r\n", now); } _state_prev = true; } else { // shutter button released if (_state_prev) { pwr_tick(true); if ((now - _last_time_on) < 500 && (now - _last_time_off) < 1000) { // the tap was rapid enough dbg_ser.printf("focusfrust released %u\r\n", now); _cnt += 1; } else { _cnt = 0; } _last_time_off = now; } _state_prev = false; } if (_cnt >= 4) { dbg_ser.println("focusfrust cnt reached limit"); M5Lcd.fillRect(0, 0, M5Lcd.width(), 12, TFT_RED); execute(); _cnt = 0; M5Lcd.fillRect(0, 0, M5Lcd.width(), 12, TFT_WHITE); } }; virtual bool on_execute(void) { if (must_be_connected() == false) { return false; } execute(); return false; }; protected: bool _state_prev = false; uint32_t _last_time_on = 0; uint32_t _last_time_off = 0; uint8_t _cnt = 0; uint32_t _objinmem = 0; uint32_t _cardrem = 0; void var_reset(void) { _state_prev = false; _last_time_on = 0; _last_time_off = 0; _cnt = 0; }; void execute(void) { cpufreq_boost(); // obviously we need to be in manual focus mode in order to change focus bool starting_mf = fairycam.is_manuallyfocused(); if (starting_mf == false && fairycam.isOperating()) { fairycam.cmd_ManualFocusMode(true, false); } int step_cnt = 0; ptpcam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); for (int i = 0; i < 10 || btnBig_isPressed(); i++) { gui_drawVerticalDots(0, 40, -1, 5, 5, step_cnt++, false, TFT_GREEN, TFT_RED); ptpcam.cmd_ManualFocusStep(SONYALPHA_FOCUSSTEP_CLOSER_LARGE); ptpcam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); } // return to AF mode if (starting_mf == false) { ptpcam.cmd_ManualFocusMode(false, false); } set_redraw(); }; }; extern FairySubmenu menu_focus; void setup_focusfrustration() { static AppFocusFrustration app; menu_focus.install(&app); } ================================================ FILE: arduino_workspace/AlphaFairy/FocusPull.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" void focus_pull(bool live, int bar_y) { bool starting_mf = ptpcam.is_manuallyfocused(); if (starting_mf == false && ptpcam.isOperating()) { // force into manual focus mode ptpcam.cmd_ManualFocusMode(true, false); ptpcam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); } int8_t step_size = focus_tiltToStepSize(gui_drawFocusPullState(bar_y)); while (ptpcam.isOperating()) { app_poll(); if (live) { step_size = focus_tiltToStepSize(gui_drawFocusPullState(bar_y)); } if (step_size != 0) { ptpcam.cmd_ManualFocusStep(step_size); ptpcam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); } if (btnBig_isPressed() == false) { // checking last makes sure at least one focus step is done break; } } if (starting_mf == false && ptpcam.isOperating()) { // restore AF state ptpcam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); ptpcam.cmd_ManualFocusMode(false, false); } } class AppFocusPull : public FairyMenuItem { public: AppFocusPull() : FairyMenuItem("/focus_pull.png") { _dir = 0; }; virtual void on_eachFrame(void) { _dir = gui_drawFocusPullState(_bar_y); }; virtual bool on_execute(void) { if (must_be_ptp() == false) { return false; } if (_dir == 0) { app_waitAllRelease(); return false; } focus_pull(false, _bar_y); return false; }; protected: const int16_t _bar_y = 108; int8_t _dir; }; extern FairySubmenu menu_focus; void setup_focuspull() { static AppFocusPull app; menu_focus.install(&app); } ================================================ FILE: arduino_workspace/AlphaFairy/FocusStack.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" class AppFocusStack : public FairyMenuItem { public: AppFocusStack() : FairyMenuItem("/focusstack.png") { _speed = 3; }; virtual void on_spin(int8_t x) { if (x < 0) { if (_speed > 1) { _speed--; } } else if (x > 0) { if (_speed < 5) { _speed++; } } draw_text(); }; virtual void on_eachFrame(void) { gui_drawSpinStatus(5, TFT_WHITE); FairyMenuItem::on_eachFrame(); }; virtual void on_redraw(void) { FairyMenuItem::on_redraw(); draw_text(); }; virtual bool on_execute(void) { if (must_be_ptp() == false) { return false; } bool toggle_button = imu.rolli < -60; // hold the device upside down bool starting_mf = ptpcam.is_manuallyfocused(); if (starting_mf == false && ptpcam.isOperating()) { // obviously we need to be in manual focus mode in order to do focus stacking ptpcam.cmd_ManualFocusMode(true, false); } // TODO: // returning the camera to original focus point will be hard // there is an indicator but I can't be sure when it is updated // and it is in the range 0 to 100 only, some fine movements won't register as a change int starting_focus_dist = config_settings.manual_focus_return != 0 ? 0 : -1; int steps_done = 0; if (starting_focus_dist >= 0) { // we want to be able to return the focus to the starting point // but we started off in auto-focus mode // there's a chance that we haven't gotten the correct focus distance yet, it might be in memory but not correct // there's no way to solve this, even if a new dev-properties packet arrives, we don't know if the contents contain outdated information // so the best thing to do is just do a wait while polling if (starting_mf == false) { app_sleep(300, true); } if (ptpcam.has_property(SONYALPHA_PROPCODE_ManualFocusDist)) { starting_focus_dist = ptpcam.get_property(SONYALPHA_PROPCODE_ManualFocusDist); } else { starting_focus_dist = -1; } } // configuring the shutter_press_time_ms to be 0 means hold the button down as the focus is stepped // this will work when the camera is in continuous shooting mode // but I can't guarantee that the photos are one-step-one-frame bool is_contshoot = false; if (config_settings.shutter_press_time_ms == 0 && ptpcam.is_continuousshooting() && ptpcam.isOperating()) { is_contshoot = true; ptpcam.cmd_Shutter(true); } int step_size, step_cnt, i; // pick a step size and step count based on the "speed" indicator switch (_speed) { case 1: step_size = SONYALPHA_FOCUSSTEP_FARTHER_SMALL; step_cnt = 1; break; case 2: step_size = SONYALPHA_FOCUSSTEP_FARTHER_MEDIUM; step_cnt = 1; break; case 3: step_size = SONYALPHA_FOCUSSTEP_FARTHER_MEDIUM; step_cnt = 3; break; case 4: step_size = SONYALPHA_FOCUSSTEP_FARTHER_MEDIUM; step_cnt = 6; break; case 5: step_size = SONYALPHA_FOCUSSTEP_FARTHER_LARGE; step_cnt = 1; break; } int dot_idx = 0; // enforce minimum pause based on shutter speed uint32_t shutter_speed_time = shutter_to_millis(ptpcam.get_property(SONYALPHA_PROPCODE_ShutterSpeed)); shutter_speed_time = shutter_speed_time < config_settings.shutter_press_time_ms ? config_settings.shutter_press_time_ms : shutter_speed_time; shutter_speed_time += config_settings.focus_pause_time_ms; while (ptpcam.isOperating()) // I wish we had try-catches { app_poll(); gui_drawVerticalDots(0, 40, -1, 5, 5, dot_idx, step_size > 0, TFT_GREEN, TFT_RED); if (is_contshoot == false) { uint32_t t = millis(); ptpcam.cmd_Shoot(config_settings.shutter_press_time_ms); // enforce minimum pause based on shutter speed while ((millis() - t) < shutter_speed_time) { app_poll(); } } fairycam.wait_while_saving(config_settings.focus_pause_time_ms, 500, DEFAULT_SAVE_TIMEOUT); for (i = 0; i < step_cnt; i++) { ptpcam.cmd_ManualFocusStep(step_size); ptpcam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); steps_done++; } dot_idx++; if (btnBig_isPressed() == false && toggle_button == false) { // check button release here so at least one photo is captured break; } else if (toggle_button) { // in toggle mode, the button might actually be released already, but we still run until the next button press if (btnAny_hasPressed()) { btnAny_clrPressed(); break; } } } if (is_contshoot && ptpcam.isOperating()) { ptpcam.cmd_Shutter(false); } if (starting_focus_dist >= 0) { // this loop is what restores the focus point back to the starting focus point int x = ptpcam.get_property(SONYALPHA_PROPCODE_ManualFocusDist); do { app_poll(); gui_drawVerticalDots(0, 40, -1, 5, 5, dot_idx, step_size < 0, TFT_GREEN, TFT_RED); ptpcam.cmd_ManualFocusStep(step_size * -1); steps_done--; ptpcam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); x = ptpcam.get_property(SONYALPHA_PROPCODE_ManualFocusDist); dot_idx++; } while ( true // ignore me && ((x > starting_focus_dist && step_size > 0) || (x < starting_focus_dist && step_size < 0)) // soft limit on the distance reported && steps_done >= 0 // hard limit on the number of steps && ptpcam.isOperating() ); } if (starting_mf == false && ptpcam.isOperating()) { // if the camera was set to MF mode via PTP, then it will be stuck in MF mode even if the user toggle switches on the camera or lens! // so we MUST restore the setting via PTP ptpcam.cmd_ManualFocusMode(false, false); } set_redraw(); return false; }; protected: uint8_t _speed; void draw_text(void) { gui_startMenuPrint(); M5Lcd.setCursor(107, 78); M5Lcd.printf("%u ", _speed); }; }; class AppFocus9Point : public FairyMenuItem { public: AppFocus9Point() : FairyMenuItem("/focus_9point.png") { }; virtual void on_eachFrame(void) { gui_drawSpinStatus(5, TFT_WHITE); FairyMenuItem::on_eachFrame(); }; virtual void on_navTo(void) { uint32_t x = config_settings.nine_point_dist; x *= 100; x /= SONYALPHA_FOCUSPOINT_Y_MID; x = x >= 95 ? 95: (x <= 20 ? 20 : x); _dist = x; _dist_start = x; FairyMenuItem::on_navTo(); }; virtual void on_navOut(void) { save_if_needed(); FairyMenuItem::on_navOut(); }; virtual void on_redraw(void) { FairyMenuItem::on_redraw(); draw_text(); }; virtual void on_spin(int8_t x) { uint8_t pd = _dist; if (x > 0) { if (_dist <= 30) { _dist = 40; } else if (_dist <= 50) { _dist = 60; } else if (_dist <= 70) { _dist = 80; } else if (_dist <= 90) { _dist = 95; } } else if (x < 0) { if (_dist >= 90) { _dist = 80; } else if (_dist >= 70) { _dist = 60; } else if (_dist >= 50) { _dist = 40; } else if (_dist >= 30) { _dist = 20; } } if (_dist != pd) { draw_text(); } }; virtual bool on_execute(void) { save_if_needed(); if (must_be_ptp() == false) { return false; } if (ptpcam.isOperating() && ptpcam.is_spotfocus() == false) { // the camera must be in one of the many spot focus modes // we can't pick one for them // show user the error message show_unable("wrong AF zone"); return false; } if (ptpcam.isOperating() && ptpcam.is_manuallyfocused()) { show_unable("wrong AF mode"); return false; } bool toggle_button = imu.rolli < -60; // hold the device upside down // enforce minimum pause based on shutter speed uint32_t shutter_speed_time = shutter_to_millis(ptpcam.get_property(SONYALPHA_PROPCODE_ShutterSpeed)); shutter_speed_time = shutter_speed_time < config_settings.shutter_press_time_ms ? config_settings.shutter_press_time_ms : shutter_speed_time; shutter_speed_time += config_settings.focus_pause_time_ms; int dot_rad = 5; int dot_space = 30; int dot_y_start = (M5Lcd.height() / 2) + 28; int dot_x_start = (M5Lcd.width() / 2); // TODO: // the starting points of the dots need to be adjusted according to what the JPG looks like int x_cent = SONYALPHA_FOCUSPOINT_X_MAX / 2; int y_cent = SONYALPHA_FOCUSPOINT_Y_MAX / 2; int hdist = _dist; int vdist = _dist; int x, y, dot_x, dot_y; hdist *= SONYALPHA_FOCUSPOINT_X_MID; hdist /= 100; vdist *= SONYALPHA_FOCUSPOINT_Y_MID; vdist /= 100; int i; for (i = 0; fairycam.isOperating(); i++) { app_poll(); // figure out which point to focus on switch (i) { case 0: x = x_cent; y = y_cent; dot_x = dot_x_start; dot_y = dot_y_start; break; case 1: x = x_cent + hdist; y = y_cent; dot_x = dot_x_start + dot_space; dot_y = dot_y_start; break; case 2: x = x_cent - hdist; y = y_cent; dot_x = dot_x_start - dot_space; dot_y = dot_y_start; break; case 3: x = x_cent; y = y_cent + vdist; dot_x = dot_x_start; dot_y = dot_y_start + dot_space; break; case 4: x = x_cent; y = y_cent - vdist; dot_x = dot_x_start; dot_y = dot_y_start - dot_space; break; case 5: x = x_cent + hdist; y = y_cent + vdist; dot_x = dot_x_start + dot_space; dot_y = dot_y_start + dot_space; break; case 6: x = x_cent + hdist; y = y_cent - vdist; dot_x = dot_x_start + dot_space; dot_y = dot_y_start - dot_space; break; case 7: x = x_cent - hdist; y = y_cent + vdist; dot_x = dot_x_start - dot_space; dot_y = dot_y_start + dot_space; break; case 8: x = x_cent - hdist; y = y_cent - vdist; dot_x = dot_x_start - dot_space; dot_y = dot_y_start - dot_space; break; // the first 9 points are fixed, after that, the points are random default: x = 20 + (rand() % (SONYALPHA_FOCUSPOINT_X_MAX - 20)); y = 20 + (rand() % (SONYALPHA_FOCUSPOINT_Y_MAX - 20)); break; } if (i < 9) { // show user which point was just set // this is just cosmetic M5Lcd.fillCircle(dot_x, dot_y, dot_rad, TFT_GREEN); } // set the point fairycam.cmd_FocusPointSet(x, y); // engage autofocus fairycam.cmd_AutoFocus(true); fairycam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); // wait for autofocus to lock onto something uint32_t tstart = millis(); uint32_t now; uint32_t tlimit = (i < 9) ? 5000 : 2000; while (((now = millis()) - tstart) < 5000 && (fairycam.is_focused() == false && fairycam.isOperating())) { app_poll(); } if (fairycam.is_focused() == false && fairycam.isOperating()) // still no focus? investigate cause { fairycam.cmd_AutoFocus(false); if (ptpcam.has_property(SONYALPHA_PROPCODE_FocusFound)) { if (ptpcam.get_property(SONYALPHA_PROPCODE_FocusFound) == SONYALPHA_FOCUSSTATUS_NONE) { show_unable("AF w shutter off"); return false; } } } // take the photo uint32_t t = millis(); fairycam.cmd_Shoot(config_settings.shutter_press_time_ms); // wait for shutter to finish while ((millis() - t) < shutter_speed_time) { app_poll(); } fairycam.cmd_AutoFocus(false); fairycam.wait_while_saving(config_settings.focus_pause_time_ms, 500, DEFAULT_SAVE_TIMEOUT); //fairycam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); if (btnBig_isPressed() == false && toggle_button == false) { // check button release here so at least one photo is captured break; } else if (toggle_button) { // in toggle mode, the button might actually be released already, but we still run until the next button press if (btnAny_hasPressed()) { btnAny_clrPressed(); break; } } } set_redraw(); return false; }; protected: uint8_t _dist = 20; uint8_t _dist_start; void save_if_needed(void) { if (_dist_start != _dist) { uint32_t x = SONYALPHA_FOCUSPOINT_Y_MID; x *= _dist; x /= 100; config_settings.nine_point_dist = x; settings_save(); _dist_start = _dist; } }; void draw_text(void) { gui_startMenuPrint(); M5Lcd.setTextFont(2); M5Lcd.setCursor(40, 194); M5Lcd.printf("spacing: %u%%", _dist); M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX(), M5Lcd.fontHeight(), TFT_WHITE); }; void show_unable(const char* reason) { M5Lcd.drawPngFile(SPIFFS, "/9point_unable.png", 0, 0); if (reason != NULL) { gui_startMenuPrint(); M5Lcd.setTextFont(0); M5Lcd.setTextColor(TFT_RED, TFT_WHITE); M5Lcd.setCursor(8, M5Lcd.height() - 18 - M5Lcd.fontHeight()); M5Lcd.print(reason); } set_redraw(); app_waitAllRelease(); }; }; extern FairySubmenu menu_focus; void setup_focusstack() { static AppFocusStack app_fstack; static AppFocus9Point app_f9pt; menu_focus.install(&app_fstack); menu_focus.install(&app_f9pt); } ================================================ FILE: arduino_workspace/AlphaFairy/HttpServer.ino ================================================ #include "AlphaFairy.h" #include #include #include /* implement a simple web page interface for the user to change Wi-Fi configuration */ // this HTTP server uses // https://github.com/me-no-dev/ESPAsyncWebServer/ // plenty of documentation and examples bool http_is_active = false; #include #include #include void add_crossDomainHeaders(AsyncResponseStream* response); void send_css(AsyncResponseStream* response); bool send_wifi_settings(AsyncResponseStream* response, uint8_t idx, bool readonly); static AsyncWebServerRequest* httpsrv_request = NULL; #if 0 void httpsrv_jpgStream(uint8_t* buff, uint32_t len); void httpsrv_jpgDone(void); void httpsrv_startJpgStream(AsyncWebServerRequest* request); #endif const byte DNS_PORT = 53; DNSServer* dnsServer; AsyncWebServer* httpServer = NULL; void add_crossDomainHeaders(AsyncResponseStream* response) { response->addHeader("Access-Control-Allow-Origin", "*"); response->addHeader("Access-Control-Allow-Headers", "Content-Type"); response->addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS"); } void send_css(AsyncResponseStream* response) { response->println(""); } bool send_wifi_settings(AsyncResponseStream* response, uint8_t idx, bool readonly) { if (idx == 0) { readonly = true; } wifiprofile_t profile; bool ret = true; bool has_profile = wifiprofile_getProfile(idx, &profile); response->printf("
Wi-Fi Profile #%u%s\r\n", idx, has_profile ? "" : " (new)"); if (readonly == false) { response->printf("
\r\n", idx); } response->print("\r\n"); response->printf("\r\n"); response->printf("\r\n"); response->printf("\r\n"); response->printf("\r\n"); if (readonly == false) { response->printf("
", idx); char* sp; sp = profile.ssid; if (has_profile == false) { sp[0] = 0; ret = false; } if (readonly) { if (sp[0] == 0) { response->print(" "); } else { response->print(sp); } } else { response->printf("", idx, has_profile ? "" : "New ", WIFI_STRING_LEN, sp); } response->print("
", idx); sp = profile.password; if (has_profile == false || profile.ssid[0] == 0) { sp[0] = 0; ret = false; } if (readonly) { if (sp[0] == 0) { response->print(" "); } else { response->print(sp); } } else { response->printf("", idx, has_profile ? "" : "New ", WIFI_STRING_LEN, sp); } response->print("
", idx); if (readonly) { if (profile.opmode == WIFIOPMODE_STA) { response->print("Direct"); } else { response->print("Access Point"); } } else { response->printf(""); } response->print("
", idx); sp = profile.guid; if (has_profile == false || profile.ssid[0] == 0) { sp[0] = 0; } if (readonly) { if (sp[0] == 0) { response->print(" "); } else { response->print(sp); } } else { response->printf("", idx, sp); } response->print("
", idx); } else { response->printf("", idx); } response->print("
\r\n"); return ret; } void httpsrv_init() { if (httpServer != NULL) { return; } httpServer = new AsyncWebServer(80); dnsServer = new DNSServer(); dnsServer->start(DNS_PORT, "*", WiFi.softAPIP()); httpServer->on("/wificonfig", HTTP_GET, [] (AsyncWebServerRequest* request) { dbg_ser.println("http server wificonfig"); // main page, index page NetMgr_markClientPhoneHttp(request->client()->getRemoteAddress()); http_is_active = true; // show current settings plus show the form for changing the settings AsyncResponseStream* response = request->beginResponseStream("text/html"); response->print("Alpha Fairy Wi-Fi Config"); send_css(response); response->print("

Alpha Fairy Wi-Fi Config


\r\n"); int i; for (i = 0; i <= WIFIPROFILE_LIMIT; i++) { bool did = send_wifi_settings(response, i, false); response->print("
\r\n"); if (did == false) { // this will only leave one blank entry break; } } response->print("\r\n"); request->send(response); }); httpServer->on("/setwifi", HTTP_POST, [] (AsyncWebServerRequest* request) { dbg_ser.println("http server setwifi"); // this is the target of the form NetMgr_markClientPhoneHttp(request->client()->getRemoteAddress()); http_is_active = true; AsyncResponseStream* response = request->beginResponseStream("text/html"); if (request->hasParam("profilenum", true) && request->hasParam("ssid", true) && request->hasParam("password", true) && request->hasParam("opmode", true)) { AsyncWebParameter* paramNum = request->getParam("profilenum", true); AsyncWebParameter* paramSsid = request->getParam("ssid" , true); AsyncWebParameter* paramPass = request->getParam("password" , true); AsyncWebParameter* paramOpMode = request->getParam("opmode" , true); AsyncWebParameter* paramGuid = NULL; if (request->hasParam("guid", true)) { paramGuid = request->getParam("guid", true); } response = request->beginResponseStream("text/html"); int pnum = atoi(paramNum->value().c_str()); if (pnum < 1 || pnum > WIFIPROFILE_LIMIT) { response->print("bad value for profile number\r\n"); request->send(response); return; } wifiprofile_t profile; profile.opmode = 0; if (paramOpMode->value() == "ap" || paramOpMode->value() == "AP") { profile.opmode = WIFIOPMODE_AP; } else if (paramOpMode->value() == "sta" || paramOpMode->value() == "STA") { profile.opmode = WIFIOPMODE_STA; } else { response->print("unknown op mode\r\n"); request->send(response); return; } response->print("Alpha Fairy Wi-Fi Config"); send_css(response); response->print("

Alpha Fairy Wi-Fi Config

\r\n"); strncpy(profile.ssid, paramSsid->value().c_str(), WIFI_STRING_LEN); if (strlen(profile.ssid) > 0) { strncpy(profile.password, paramPass->value().c_str(), WIFI_STRING_LEN); if (paramGuid != NULL) { strncpy(profile.guid, paramGuid->value().c_str(), PTP_GUID_LEN); } else { profile.guid[0] = 0; } wifiprofile_writeProfile(pnum, &profile); response->printf("

Profile #%u Saved Successfully


\r\n", pnum); send_wifi_settings(response, pnum, true); } else { wifiprofile_deleteProfile(pnum); response->printf("

Profile #%u Deleted Successfully


\r\n", pnum); } // show a footer response->print("
reboot the remote to apply new settings
go back to re-config\r\n"); redraw_flag = true; } else { response = request->beginResponseStream("text/html"); response->print("missing param(s)\r\n"); } request->send(response); }); httpServer->on("/", HTTP_GET, [] (AsyncWebServerRequest* request) { NetMgr_markClientPhoneHttp(request->client()->getRemoteAddress()); http_is_active = true; #if 0 AsyncResponseStream* response = request->beginResponseStream("text/html"); add_crossDomainHeaders(response); if (ptpcam.isOperating()) { response->printf("camera: %s", ptpcam.getCameraName()); //response->printf("camera: %s
", ptpcam.getCameraName()); } else { response->printf("no camera"); } request->send(response); #else dbg_ser.println("http server root redirect"); request->redirect("/wificonfig"); #endif }); #if defined(HTTP_ENABLE_CMD_INTEFACE) && defined(HTTP_ON_BOOT) httpServer->on("/getip", HTTP_GET, [] (AsyncWebServerRequest* request) { NetMgr_markClientPhoneHttp(request->client()->getRemoteAddress()); http_is_active = true; AsyncResponseStream* response = request->beginResponseStream("text/html"); add_crossDomainHeaders(response); response->printf("%s", WiFi.softAPIP().toString().c_str()); if (ptpcam.isOperating()) { response->printf(";\r\n"); response->printf("%s;\r\n", (IPAddress(ptpcam.getIp())).toString().c_str()); } request->send(response); }); #endif #if defined(HTTP_ENABLE_CMD_INTEFACE) && defined(HTTP_ON_BOOT) httpServer->on("/getstate", HTTP_GET, [] (AsyncWebServerRequest* request) { NetMgr_markClientPhoneHttp(request->client()->getRemoteAddress()); http_is_active = true; AsyncResponseStream* response = request->beginResponseStream("text/html"); add_crossDomainHeaders(response); response->printf("%u;\r\n", ptpcam.getState()); if (ptpcam.isOperating()) { response->printf("%s;\r\n", ptpcam.getCameraName()); int i; for (i = 0; i < ptpcam.properties_cnt; i++) { ptpipcam_prop_t* p = &(ptpcam.properties[i]); response->printf("0x%04X , 0x%02X , %d;\r\n", p->prop_code, p->data_type, p->value); } } request->send(response); }); #endif #if 0 #if defined(HTTP_ENABLE_CMD_INTEFACE) && defined(HTTP_ON_BOOT) httpServer->on("/getpreview.jpg", HTTP_GET, [] (AsyncWebServerRequest* request) { if (httpcam.isOperating() && httpcam.getLiveviewUrl() != NULL) { request->redirect(httpcam.getLiveviewUrl()); return; } NetMgr_markClientPhoneHttp(request->client()->getRemoteAddress()); http_is_active = true; //AsyncResponseStream* response = request->beginResponseStream("image/jpeg", 1024 * 8); //add_crossDomainHeaders(response); httpsrv_startJpgStream(request); }); #endif #endif #if defined(HTTP_ENABLE_CMD_INTEFACE) && defined(HTTP_ON_BOOT) httpServer->on("/cmd", HTTP_GET, [] (AsyncWebServerRequest* request) { NetMgr_markClientPhoneHttp(request->client()->getRemoteAddress()); http_is_active = true; AsyncResponseStream* response = request->beginResponseStream("text/html"); add_crossDomainHeaders(response); if (ptpcam.isOperating() == false) { response->printf("disconnected"); request->send(response); return; } bool ret; if (request->hasParam("name") == false) { AsyncWebParameter* paramName = request->getParam("name"); if (request->hasParam("value")) { AsyncWebParameter* paramValue = request->getParam("value"); int32_t pv = atoi(paramValue->value().c_str()); if (paramName->value() == "mftoggle") { ret = ptpcam.cmd_ManualFocusToggle(pv != 0); } else if (paramName->value() == "mfmode") { ret = ptpcam.cmd_ManualFocusMode(pv != 0); } else if (paramName->value() == "movierec") { ret = ptpcam.cmd_MovieRecord(pv != 0); } else if (paramName->value() == "movierectog") { ret = ptpcam.cmd_MovieRecordToggle(); } else if (paramName->value() == "shoot") { ret = ptpcam.cmd_Shoot(pv); } else if (paramName->value() == "shutter") { ret = ptpcam.cmd_Shutter(pv != 0); } else if (paramName->value() == "af") { ret = ptpcam.cmd_AutoFocus(pv != 0); } else if (paramName->value() == "mfstep") { ret = ptpcam.cmd_ManualFocusStep(pv); } else if (paramName->value() == "zoomstep") { ret = ptpcam.cmd_ZoomStep(pv); } else { response->printf("error;\r\nunknown cmd"); request->send(response); return; } if (ret) { response->printf("success"); request->send(response); return; } else { response->printf("failed"); request->send(response); return; } } else { response->printf("error;\r\nmissing opcode"); } request->send(response); return; } if (request->hasParam("opcode") == false) { response->printf("error;\r\nmissing opcode"); request->send(response); return; } AsyncWebParameter* paramOpcode = request->getParam("propcode"); if (request->hasParam("opcode") == false) { response->printf("error;\r\nmissing propcode"); request->send(response); return; } AsyncWebParameter* paramPropcode = request->getParam("propcode"); uint32_t payloadcache; uint8_t* payloadptr = NULL; int32_t payloadlen = -1; if (request->hasParam("payload") && request->hasParam("payloadlen")) { AsyncWebParameter* paramPayload = request->getParam("payload"); AsyncWebParameter* paramPayloadLen = request->getParam("payloadlen"); payloadcache = atoi(paramPayload->value().c_str()); payloadlen = atoi(paramPayloadLen->value().c_str()); payloadptr = (uint8_t*)(&payloadcache); } else if (request->hasParam("payload")) { response->printf("error;\r\nmissing payloadlen"); request->send(response); return; } ret = ptpcam.cmd_arb(atoi(paramOpcode->value().c_str()), atoi(paramPropcode->value().c_str()), payloadptr, payloadlen); if (ret) { response->printf("success"); request->send(response); return; } else { response->printf("failed"); request->send(response); return; } }); #endif httpServer->onNotFound([] (AsyncWebServerRequest* request) { #if 0 AsyncResponseStream* response = request->beginResponseStream("text/html"); response->print("Alpha Fairy Captive Portal"); response->print("

This is the Alpha Fairy captive portal page

"); response->printf("

You were trying to reach: http://%s%s

", request->host().c_str(), request->url().c_str()); response->printf("

Try opening this link instead

", WiFi.softAPIP().toString().c_str()); response->print(""); request->send(response); #else dbg_ser.println("http server 404 redirect"); request->redirect("/"); #endif }); #if defined(HTTP_MOCKBTNS_ENABLE) btn_installMockServer(); #endif httpServer->begin(); } void httpsrv_jpgStream(uint8_t* buff, uint32_t len) { if (httpsrv_request == NULL) { return; } uint32_t now = millis(), t = now; while (httpsrv_request->client()->canSend() == false && ((now = millis()) - t) < 1000) { yield(); } if (httpsrv_request->client()->canSend()) { httpsrv_request->client()->write((const char *)buff, (size_t)len); } } void httpsrv_jpgDone(void) { if (httpsrv_request != NULL) { httpsrv_request->client()->close(); } httpsrv_request = NULL; } #if 0 void httpsrv_startJpgStream(AsyncWebServerRequest* request) { char http_resp[256]; httpsrv_request = request; int i = sprintf(http_resp, "HTTP/1.1 200 OK\r\nContent-Type: image/jpeg\r\nAccess-Control-Allow-Origin: *\r\nAccess-Control-Allow-Headers: Content-Type\r\nAccess-Control-Allow-Methods: POST, GET, OPTIONS\r\n\r\n"); httpsrv_request->client()->write((const char *)http_resp, (size_t)i); if (ptpcam.isOperating()) { #ifdef PTPIP_ENABLE_STREAMING ptpcam.get_jpg(httpsrv_jpgStream, httpsrv_jpgDone); #endif } else { httpsrv_jpgDone(); } } #endif void httpsrv_poll() { if (dnsServer != NULL) { dnsServer->processNextRequest(); } } ================================================ FILE: arduino_workspace/AlphaFairy/InfoView.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" #define INFOSCR_CORNER_MARGIN 65 #define INFOSCR_MIDDIV_MARGIN 5 #define INFOSCR_LINESPACE 2 #define INFOSCR_REQ_TIME_LIMIT 2000 uint8_t infoscr_mode = 0; uint16_t infoscr_forecolour, infoscr_backcolour; uint8_t infoscr_itmIdx = 0; uint32_t infoscr_tickTime = 0; int8_t infoscr_editItem = -1; uint16_t infoscr_expomode = 0; extern bool tallylite_enable; extern uint8_t qikrmt_imuState; uint32_t infoscr_reqTime = 0; int32_t infoscr_reqShutter, infoscr_reqAperture, infoscr_reqIso, infoscr_reqExpoComp; void infoscr_setup(uint8_t mode, bool clr) { static bool prev_movie = false; infoscr_mode = mode; // assign colour and rotation based on the mode switch (mode) { case INFOSCR_LANDSCAPE_BLACK: infoscr_forecolour = TFT_BLACK; infoscr_backcolour = TFT_WHITE; M5Lcd.setRotation(1); break; case INFOSCR_PORTRAIT_BLACK: infoscr_forecolour = TFT_BLACK; infoscr_backcolour = TFT_WHITE; M5Lcd.setRotation(0); break; case INFOSCR_PORTRAIT_WHITE: infoscr_forecolour = TFT_WHITE; infoscr_backcolour = TFT_BLACK; M5Lcd.setRotation(0); break; case INFOSCR_LANDSCAPE_WHITE: default: infoscr_forecolour = TFT_WHITE; infoscr_backcolour = TFT_BLACK; M5Lcd.setRotation(1); break; }; // if a video recording is active, change everything to use a red background if (config_settings.tallylite != TALLYLITE_OFF && fairycam.isOperating() && fairycam.is_movierecording()) { infoscr_forecolour = TFT_WHITE - (TFT_BLUE / 4) - ((TFT_RED / 4) & TFT_RED); infoscr_backcolour = TFT_RED; pwr_tick(true); // keep backlight on if (prev_movie == false) { clr = true; // a full screen refresh is required if (config_settings.tallylite != TALLYLITE_SCREEN) { tallylite_ledOn(); } } prev_movie = true; } else { if (prev_movie) { clr = true; // a full screen refresh is required } prev_movie = false; tallylite_ledOff(); } M5Lcd.highlight(true); M5Lcd.setTextWrap(false); M5Lcd.setHighlightColor(infoscr_backcolour); // there's no frame buffer, so use the highlight function to prevent messy overlapping text M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); // clear the screen if required if (clr) { M5Lcd.fillScreen(infoscr_backcolour); infoscr_tickTime = millis(); } // show the locked/unlocked status from quickmenu if (qikrmt_imuState == QIKRMTIMU_LOCKED && clr == false) { gui_drawTopThickLine(SUBMENU_X_OFFSET - 2, infoscr_backcolour); } else if (qikrmt_imuState != QIKRMTIMU_LOCKED) { gui_drawTopThickLine(SUBMENU_X_OFFSET - 2, TFT_ORANGE); } M5Lcd.setTextFont(4); M5Lcd.setCursor(SUBMENU_X_OFFSET, SUBMENU_Y_OFFSET); infoscr_itmIdx = 0; } void infoscr_print() { uint16_t expomode = infoscr_expomode = fairycam.get_exposureMode(); infoscr_setup(infoscr_mode, false); // choose layout based on exposure program mode if (expomode == SONYALPHA_EXPOMODE_P || expomode == SONYALPHA_EXPOMODE_MovieP || expomode == SONYALPHA_EXPOMODE_IntelligentAuto || expomode == SONYALPHA_EXPOMODE_SuperiorAuto) { infoscr_printExpoComp(); infoscr_nextPos(true); infoscr_printShutterSpeed(); infoscr_nextPos(false); infoscr_printAperture(); infoscr_nextPos(false); infoscr_printIso(); } else if (expomode == SONYALPHA_EXPOMODE_A || expomode == SONYALPHA_EXPOMODE_MovieA) { infoscr_printAperture(); infoscr_nextPos(true); infoscr_printShutterSpeed(); infoscr_nextPos(false); infoscr_printIso(); infoscr_nextPos(false); infoscr_printExpoComp(); } else { infoscr_printShutterSpeed(); infoscr_nextPos(true); infoscr_printIso(); infoscr_nextPos(false); infoscr_printAperture(); infoscr_nextPos(false); infoscr_printExpoComp(); } infoscr_nextPos(false); infoscr_printFocus(); infoscr_nextPos(true); infoscr_printExpoMode(expomode); if (infoscr_editItem >= 0) { infoscr_printEditIndicator(); if (infoscr_mode == INFOSCR_PORTRAIT_BLACK || infoscr_mode == INFOSCR_PORTRAIT_WHITE) { infoscr_clearRestOfLines(); } } else { infoscr_clearRestOfLines(); } gui_drawStatusBar(infoscr_backcolour == TFT_BLACK); // finalize the screen } void infoscr_printShutterSpeed() { bool changed_font = false; if (infoscr_mode == INFOSCR_LANDSCAPE_WHITE || infoscr_mode == INFOSCR_LANDSCAPE_BLACK) { M5Lcd.setTextFont(2); // landscape mode is a bit cramped for space, so make the label smaller changed_font = true; } if (infoscr_editItem == EDITITEM_SHUTTER) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } M5Lcd.print("Tv "); if (infoscr_editItem == EDITITEM_SHUTTER) { M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); } if (changed_font) { M5Lcd.setTextFont(4); changed_font = false; } bool has_val = false; uint32_t x; if (ptpcam.isOperating() && ptpcam.has_property(SONYALPHA_PROPCODE_ShutterSpeed)) { x = ptpcam.get_property(SONYALPHA_PROPCODE_ShutterSpeed); has_val = true; } else if (httpcam.isOperating() && (x = httpcam.get_shutterspd_32()) != 0) { has_val = true; } if (infoscr_editItem == EDITITEM_SHUTTER && infoscr_reqTime != 0 && (millis() - infoscr_reqTime) < INFOSCR_REQ_TIME_LIMIT) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); if (has_val) { if (x != infoscr_reqShutter) { M5Lcd.setTextColor(TFT_YELLOW, infoscr_backcolour); } } x = infoscr_reqShutter; has_val = true; } else { if (infoscr_editItem == EDITITEM_SHUTTER && fairycam.isOperating()) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } if (has_val) { infoscr_reqShutter = x; } } if (has_val) { gui_showVal(x, TXTFMT_SHUTTER, &M5Lcd); } M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); if (has_val == false) { M5Lcd.print("?"); infoscr_reqShutter = -1; } } void infoscr_printAperture() { bool changed_font = false; if (infoscr_mode == INFOSCR_LANDSCAPE_WHITE || infoscr_mode == INFOSCR_LANDSCAPE_BLACK) { M5Lcd.setTextFont(2); changed_font = true; } if (infoscr_editItem == EDITITEM_APERTURE) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } M5Lcd.print("Av "); if (infoscr_editItem == EDITITEM_APERTURE) { M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); } if (changed_font) { M5Lcd.setTextFont(4); changed_font = false; } uint32_t x = 0; float fx; if (ptpcam.isOperating() && ptpcam.has_property(SONYALPHA_PROPCODE_Aperture)) { x = ptpcam.get_property(SONYALPHA_PROPCODE_Aperture); } else if (httpcam.isOperating()) { x = (uint32_t)lround(100.0f * atof(httpcam.get_aperture_str())); uint32_t xr = x % 10; if (xr < 5) { x -= xr; } else if (xr >= 5) { x += (10 - xr); } } if (infoscr_editItem == EDITITEM_APERTURE && infoscr_reqTime != 0 && (millis() - infoscr_reqTime) < INFOSCR_REQ_TIME_LIMIT) { if (infoscr_reqAperture != x) { M5Lcd.setTextColor(TFT_YELLOW, infoscr_backcolour); x = infoscr_reqAperture; } else { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } } else { if (infoscr_editItem == EDITITEM_APERTURE && fairycam.isOperating()) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } } if (x != 0) { infoscr_reqAperture = x; fx = x; M5Lcd.printf("f/%0.1f", fx / 100.0f); } M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); if (x == 0) { M5Lcd.print("?"); infoscr_reqAperture = -1; } } void infoscr_printIso() { bool changed_font = false; if (infoscr_mode == INFOSCR_LANDSCAPE_WHITE || infoscr_mode == INFOSCR_LANDSCAPE_BLACK) { M5Lcd.setTextFont(2); changed_font = true; } if (infoscr_editItem == EDITITEM_ISO) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } M5Lcd.print("ISO"); if (infoscr_editItem == EDITITEM_ISO) { M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); } if (changed_font) { M5Lcd.setTextFont(4); changed_font = false; } bool has_val = false; uint32_t x; if (ptpcam.isOperating() && ptpcam.has_property(SONYALPHA_PROPCODE_ISO)) { x = ptpcam.get_property(SONYALPHA_PROPCODE_ISO); has_val = true; } else if (httpcam.isOperating()) { char* iso_str = httpcam.get_iso_str(); if (iso_str[0] < '0' || iso_str[0] > '9') { M5Lcd.print(" "); x = 0; } else { x = atoi(iso_str); } has_val = true; } if (infoscr_editItem == EDITITEM_ISO && infoscr_reqTime != 0 && (millis() - infoscr_reqTime) < INFOSCR_REQ_TIME_LIMIT) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); if (has_val && x != infoscr_reqIso) { M5Lcd.setTextColor(TFT_YELLOW, infoscr_backcolour); } x = infoscr_reqIso; has_val = true; } else { if (infoscr_editItem == EDITITEM_ISO && fairycam.isOperating()) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } if (has_val) { infoscr_reqIso = x; } } if (has_val) { // the word "auto" I wanted to format in a specific way here if (x != 0 && x != 0xFFFFFF) { gui_showVal(x, TXTFMT_ISO, &M5Lcd); } else { M5Lcd.print(" Auto"); x = 0; } infoscr_reqIso = x; } M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); if (has_val == false) { M5Lcd.print(" ?"); } } void infoscr_printExpoComp() { bool changed_font = false; if (infoscr_mode == INFOSCR_LANDSCAPE_WHITE || infoscr_mode == INFOSCR_LANDSCAPE_BLACK) { M5Lcd.setTextFont(2); changed_font = true; } if (infoscr_editItem == EDITITEM_EXPOCOMP) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } M5Lcd.print("Ev "); if (infoscr_editItem == EDITITEM_EXPOCOMP) { M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); } if (changed_font) { M5Lcd.setTextFont(4); changed_font = false; } bool has_val = false; int32_t x; float fx; if (ptpcam.isOperating() && ptpcam.has_property(SONYALPHA_PROPCODE_ExpoComp)) { x = ptpcam.get_property(SONYALPHA_PROPCODE_ExpoComp); has_val = true; } else if (httpcam.isOperating()) { x = httpcam.get_expocomp(); has_val = true; } if (infoscr_editItem == EDITITEM_EXPOCOMP && infoscr_reqTime != 0 && (millis() - infoscr_reqTime) < INFOSCR_REQ_TIME_LIMIT) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); if (has_val && x != infoscr_reqExpoComp) { M5Lcd.setTextColor(TFT_YELLOW, infoscr_backcolour); } x = infoscr_reqExpoComp; has_val = true; } else { if (infoscr_editItem == EDITITEM_EXPOCOMP && fairycam.isOperating()) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } if (has_val) { infoscr_reqExpoComp = x; } } if (has_val == false) { M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); M5Lcd.print("?"); return; } fx = x; if (x >= 0) { M5Lcd.print("+"); } M5Lcd.printf("%0.1f", fx / 1000.0f); M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); } void infoscr_printExpoMode(uint16_t expomode) { static bool was_rec = false; int16_t old_y = M5Lcd.getCursorY(); int16_t next_y = old_y; // calculate the next line so the other line clearing functions work correctly if (infoscr_mode == INFOSCR_PORTRAIT_WHITE || infoscr_mode == INFOSCR_PORTRAIT_BLACK) { // in portrait mode, the top right corner will not have room, so put this in the bottom right corner M5Lcd.setCursor(M5Lcd.width() - INFOSCR_CORNER_MARGIN, old_y); next_y += M5Lcd.fontHeight() + INFOSCR_LINESPACE; } else { // in landscape mode, put this in the top right corner M5Lcd.setCursor(M5Lcd.width() - INFOSCR_CORNER_MARGIN, SUBMENU_Y_OFFSET); } bool print_normally = true; if (fairycam.isOperating() && fairycam.is_movierecording()) { if (was_rec == false) { infoscr_tickTime = millis(); was_rec = true; } // blink the REC text if video recording uint32_t tspan = millis() - infoscr_tickTime; if ((tspan % 1500) < 750) { if (config_settings.tallylite == 0) { // if talley light is off then make the text red since the background is not red M5Lcd.setTextColor(TFT_RED, infoscr_backcolour); } M5Lcd.print("REC"); if (config_settings.tallylite == 0) { M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); } M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX(), M5Lcd.fontHeight(), infoscr_backcolour); // clear current line M5Lcd.setCursor(SUBMENU_X_OFFSET, next_y); // since this text is placed in weird places, go to the next line so the other line clearing functions work correctly return; } } else { was_rec = false; } if (expomode == SONYALPHA_EXPOMODE_IntelligentAuto) { M5Lcd.setTextColor(infoscr_backcolour == TFT_BLACK ? TFT_GREEN : TFT_GREEN, infoscr_backcolour); M5Lcd.print("iA"); M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); } else if (expomode == SONYALPHA_EXPOMODE_SuperiorAuto) { M5Lcd.setTextColor(infoscr_backcolour == TFT_BLACK ? TFT_ORANGE : TFT_ORANGE, infoscr_backcolour); M5Lcd.print("sA"); M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); } else { if (expomode == SONYALPHA_EXPOMODE_M || expomode == SONYALPHA_EXPOMODE_MovieM) { M5Lcd.print("Man"); } else if (expomode == SONYALPHA_EXPOMODE_P || expomode == SONYALPHA_EXPOMODE_MovieP) { M5Lcd.print("pA"); } else if (expomode == SONYALPHA_EXPOMODE_A || expomode == SONYALPHA_EXPOMODE_MovieA) { M5Lcd.print("Av"); } else if (expomode == SONYALPHA_EXPOMODE_S || expomode == SONYALPHA_EXPOMODE_MovieS) { M5Lcd.print("Tv"); } else { if (fairycam.isOperating() == false) { M5Lcd.print("?"); } } } M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX(), M5Lcd.fontHeight(), infoscr_backcolour); // clear current line M5Lcd.setCursor(SUBMENU_X_OFFSET, next_y); // since this text is placed in weird places, go to the next line so the other line clearing functions work correctly } void infoscr_printFocus() { bool diff_colour = false; if (fairycam.isOperating() == false) { M5Lcd.print("F?"); return; } if (fairycam.is_manuallyfocused()) { M5Lcd.print("MF"); // if possible, print the focus plane distance (given as a percentage) if (ptpcam.isOperating() && ptpcam.is_manuallyfocused() && ptpcam.has_property(SONYALPHA_PROPCODE_ManualFocusDist)) { M5Lcd.printf(" %d %%", ptpcam.get_property(SONYALPHA_PROPCODE_ManualFocusDist)); } } else if (ptpcam.isOperating() && ptpcam.has_property(SONYALPHA_PROPCODE_FocusMode)) { int32_t afmode = ptpcam.get_property(SONYALPHA_PROPCODE_FocusMode); if (afmode == SONYALPHA_AFMODE_DMF) { M5Lcd.print("DMF "); } else { if (ptpcam.has_property(SONYALPHA_PROPCODE_FocusFound)) { // change the colour of the AF text if we can determine the AF status int32_t focus_status = ptpcam.get_property(SONYALPHA_PROPCODE_FocusFound); if (focus_status == SONYALPHA_FOCUSSTATUS_FOCUSED) { M5Lcd.setHighlightColor(TFT_GREEN); M5Lcd.setTextColor(TFT_WHITE, TFT_GREEN); diff_colour = true; } else if (focus_status == SONYALPHA_FOCUSSTATUS_HUNTING) { M5Lcd.setHighlightColor(infoscr_backcolour); M5Lcd.setTextColor(infoscr_backcolour == TFT_BLACK ? TFT_GREEN : TFT_GREEN, infoscr_backcolour); diff_colour = true; } else if (focus_status == SONYALPHA_FOCUSSTATUS_FAILED || focus_status == SONYALPHA_FOCUSSTATUS_FAILED) { M5Lcd.setHighlightColor(infoscr_backcolour); M5Lcd.setTextColor(TFT_RED, infoscr_backcolour); diff_colour = true; } } M5Lcd.print("AF"); if (afmode == SONYALPHA_AFMODE_AFC) { M5Lcd.print("-C"); } else if (afmode == SONYALPHA_AFMODE_AFS) { M5Lcd.print("-S"); } else if (afmode == SONYALPHA_AFMODE_AFA) { M5Lcd.print("-A"); } } } else if (httpcam.isOperating()) { bool is_focused = httpcam.is_focused; if (is_focused) { M5Lcd.setHighlightColor(TFT_GREEN); M5Lcd.setTextColor(TFT_WHITE, TFT_GREEN); diff_colour = true; } M5Lcd.print(httpcam.get_str_afmode()); } // restore the text colour if it was changed by AF status if (diff_colour) { M5Lcd.setHighlightColor(infoscr_backcolour); M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); } } void infoscr_blankLine(bool force_new_line) { if (M5Lcd.getCursorX() >= M5Lcd.width()) { return; // nothing to clear } // clear the rest of a line, or rest of a segment // this function calculates where to end the clearing rectangle based on current X cursor position if (force_new_line) { if ((M5Lcd.getCursorY() - SUBMENU_Y_OFFSET) < M5Lcd.fontHeight() && (infoscr_mode == INFOSCR_LANDSCAPE_BLACK || infoscr_mode == INFOSCR_LANDSCAPE_WHITE)) { M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX() - INFOSCR_CORNER_MARGIN, M5Lcd.fontHeight(), infoscr_backcolour); } else { M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX(), M5Lcd.fontHeight(), infoscr_backcolour); } } else if (infoscr_mode == INFOSCR_PORTRAIT_WHITE || infoscr_mode == INFOSCR_PORTRAIT_BLACK) { if (M5Lcd.getCursorY() - SUBMENU_Y_OFFSET < M5Lcd.fontHeight()) { M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX() - INFOSCR_CORNER_MARGIN, M5Lcd.fontHeight(), infoscr_backcolour); } else { M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX(), M5Lcd.fontHeight(), infoscr_backcolour); } } else { if (M5Lcd.getCursorX() < ((M5Lcd.width() / 2) - INFOSCR_MIDDIV_MARGIN)) { M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), (M5Lcd.width() / 2) - M5Lcd.getCursorX(), M5Lcd.fontHeight(), infoscr_backcolour); } else { if ((M5Lcd.getCursorY() - SUBMENU_Y_OFFSET) < M5Lcd.fontHeight() && (infoscr_mode == INFOSCR_LANDSCAPE_BLACK || infoscr_mode == INFOSCR_LANDSCAPE_WHITE)) { M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX() - INFOSCR_CORNER_MARGIN, M5Lcd.fontHeight(), infoscr_backcolour); } else { M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX(), M5Lcd.fontHeight(), infoscr_backcolour); } } } } void infoscr_nextPos(bool force_new_line) { infoscr_blankLine(force_new_line); if ((infoscr_mode == INFOSCR_LANDSCAPE_WHITE || infoscr_mode == INFOSCR_LANDSCAPE_BLACK) && (infoscr_itmIdx % 2) == 0 && M5Lcd.getCursorX() >= ((M5Lcd.width() / 2) - INFOSCR_MIDDIV_MARGIN)) // if exceeded allotted space { infoscr_itmIdx++; // skip a space (infoscr_blankLine has detected this already) } int ny; infoscr_itmIdx++; // go to next space if (infoscr_mode == INFOSCR_PORTRAIT_WHITE || infoscr_mode == INFOSCR_PORTRAIT_BLACK) { // portrait mode is always new line ny = M5Lcd.getCursorY() + M5Lcd.fontHeight() + INFOSCR_LINESPACE; M5Lcd.setCursor(SUBMENU_X_OFFSET, ny); } else { if ((infoscr_itmIdx % 2) == 0 || force_new_line) // this should be a new line { ny = M5Lcd.getCursorY() + M5Lcd.fontHeight() + INFOSCR_LINESPACE; M5Lcd.setCursor(SUBMENU_X_OFFSET, ny); if (force_new_line && (infoscr_itmIdx % 2) != 0) { infoscr_itmIdx++; // if forcing but ending up in the middle, then skip a space } } else // this should start from the middle { M5Lcd.setCursor(M5Lcd.width() / 2, M5Lcd.getCursorY()); } } } void infoscr_clearRestOfLines() { // clear the rest of the screen by simply covering up the screen until the status bar int16_t y = M5Lcd.getCursorY(); M5Lcd.fillRect(0, y, M5Lcd.width(), M5Lcd.height() - y - 14, infoscr_backcolour); } void infoscr_changeVal(uint8_t item, int8_t tilt) { if (tilt == 0 || fairycam.isOperating() == false) { return; } int cur_idx, next_idx; uint32_t x; int32_t sx; switch (item) { case EDITITEM_SHUTTER: cur_idx = fairycam.getIdx_shutter(infoscr_reqShutter); if (cur_idx < 0) { break; } next_idx = cur_idx + tilt; x = fairycam.getVal_shutter(next_idx); fairycam.cmd_ShutterSpeedSet(x); infoscr_reqShutter = x; infoscr_reqTime = millis(); break; case EDITITEM_APERTURE: cur_idx = fairycam.getIdx_aperture(infoscr_reqAperture); if (cur_idx < 0) { break; } next_idx = cur_idx + tilt; x = fairycam.getVal_aperture(next_idx); fairycam.cmd_ApertureSet(x); infoscr_reqAperture = x; infoscr_reqTime = millis(); break; case EDITITEM_ISO: cur_idx = fairycam.getIdx_iso(infoscr_reqIso); if (cur_idx < 0) { break; } next_idx = cur_idx + tilt; x = fairycam.getVal_iso(next_idx); fairycam.cmd_IsoSet(x); infoscr_reqIso = x; infoscr_reqTime = millis(); break; case EDITITEM_EXPOCOMP: cur_idx = fairycam.getIdx_expoComp(infoscr_reqExpoComp); next_idx = cur_idx + tilt; sx = fairycam.getVal_expoComp(next_idx); fairycam.cmd_ExpoCompSet(sx); infoscr_reqExpoComp = sx; infoscr_reqTime = millis(); break; } } void infoscr_printEditIndicator() { int tilt = imu.getTilt(); // center the text M5Lcd.print(" "); if (tilt < 0) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } else { M5Lcd.setTextColor(TFT_DARKGREY, infoscr_backcolour); } M5Lcd.print("<<- "); M5Lcd.setTextColor(TFT_DARKGREY, infoscr_backcolour); M5Lcd.print("EDITING"); if (tilt > 0) { M5Lcd.setTextColor(TFT_GREEN, infoscr_backcolour); } else { M5Lcd.setTextColor(TFT_DARKGREY, infoscr_backcolour); } M5Lcd.print(" +>>"); M5Lcd.setTextFont(4); M5Lcd.setTextColor(infoscr_forecolour, infoscr_backcolour); M5Lcd.print(" "); infoscr_blankLine(true); } void infoscr_startEdit() { infoscr_editItem = 0; // start edit mode // the edit tilting makes no sense in portrait mode if (infoscr_mode == INFOSCR_PORTRAIT_WHITE) { infoscr_mode = INFOSCR_LANDSCAPE_WHITE; } if (infoscr_mode == INFOSCR_PORTRAIT_BLACK) { infoscr_mode = INFOSCR_LANDSCAPE_BLACK; } // do a draw before button release infoscr_setup(infoscr_mode, true); infoscr_print(); app_waitAllRelease(); while (true) { if (app_poll() == false) { continue; } if (redraw_flag) { infoscr_setup(infoscr_mode, true); } infoscr_print(); if (btnBig_hasPressed()) { uint32_t t = millis(); volatile uint32_t tspan = 700; btnBig_clrPressed(); int8_t tilt = imu.getTilt(); if (tilt != 0) { infoscr_changeVal(infoscr_editItem, tilt < 0 ? -1 : +1 ); infoscr_print(); // press and hold to repeatedly change while (btnBig_isPressed()) { if (app_poll() == false) { continue; } int8_t tilt2 = imu.getTilt(); if (tilt2 != tilt) { // tilt changed, make sure indicator updates redraw_flag = true; } if (redraw_flag) { infoscr_setup(infoscr_mode, true); infoscr_print(); } if (tilt2 != 0) { uint32_t t2 = millis(); uint32_t dt = t2 - t; if (dt >= tspan) // time to perform a tick { t = t2; if (tspan > 200) { // can still accelerate repetition tspan *= 3; tspan /= 4; } infoscr_changeVal(infoscr_editItem, tilt2 < 0 ? -1 : +1); infoscr_print(); } } else { // no tilt, cancel acceleration but make sure next change is immediate` t = 0; tspan = 700; } tilt = tilt2; // ignore side button presses if (btnSide_hasPressed()) { btnSide_clrPressed(); } // quit via pwr button if (btnPwr_hasPressed()) { // do not clear, quit out on next check break; } } } btnBig_clrPressed(); imu.resetSpin(); } #ifdef ENABLE_BUILD_LEPTON { bool enc_btn = false; int16_t enc_inc = 0; int16_t enc_rem; lepton_encRead(&enc_btn, &enc_inc, &enc_rem); if (enc_inc != 0) { infoscr_changeVal(infoscr_editItem, enc_inc < 0 ? -1 : +1); infoscr_print(); } } #endif if (imu.getSpin() != 0) { // spin counterclockwise to exit edit mode if (imu.getSpin() < 0) { imu.resetSpin(); break; } imu.resetSpin(); } if (btnSide_hasPressed()) { btnSide_clrPressed(); infoscr_editItem++; while (true) { if (infoscr_editItem == EDITITEM_APERTURE && fairycam.isOperating() && (infoscr_expomode != SONYALPHA_EXPOMODE_M && infoscr_expomode != SONYALPHA_EXPOMODE_MovieM && infoscr_expomode != SONYALPHA_EXPOMODE_A && infoscr_expomode != SONYALPHA_EXPOMODE_MovieA)) { infoscr_editItem++; } if (infoscr_editItem == EDITITEM_SHUTTER && fairycam.isOperating() && (infoscr_expomode != SONYALPHA_EXPOMODE_M && infoscr_expomode != SONYALPHA_EXPOMODE_MovieM && infoscr_expomode != SONYALPHA_EXPOMODE_S && infoscr_expomode != SONYALPHA_EXPOMODE_MovieS)) { infoscr_editItem++; } if (infoscr_editItem >= EDITITEM_END) { infoscr_editItem = 0; continue; } else { break; } } } if (btnPwr_hasPressed()) { btnPwr_clrPressed(); break; } // exit if disconnected if (fairycam.isOperating() == false) { break; } pwr_sleepCheck(); redraw_flag = false; } infoscr_editItem = -1; // disable edit mode } ================================================ FILE: arduino_workspace/AlphaFairy/Intervalometer.ino ================================================ #include "AlphaFairy.h" #include #include "FairyMenu.h" static uint32_t intervalometer_start_time; extern bool tallylite_enable; bool interval_redMode = false; void interval_drawTimer(int8_t x) { static uint8_t i = 0; uint8_t old_i = i; char fname[24]; if (x < 0) { // negative arg means auto-increment i++; } else { i = x; // otherwise, assign } i %= CLOCK_ANG_DIV; int16_t cx = M5Lcd.width() - (GENERAL_ICON_WIDTH / 2); int16_t cy = M5Lcd.height() - (GENERAL_ICON_WIDTH / 2) + 5; interval_drawTimerLine(cx, cy, old_i, TFT_BLACK); interval_drawTimerLine(cx, cy, i, TFT_WHITE); interval_drawTimerCircle(cx, cy); M5Lcd.fillCircle(cx, cy, 3, TFT_WHITE); if (i == 0) { gui_drawStatusBar(true); } } int32_t interval_calcTotal(uint8_t menu_id) { int32_t total_time = 0; int32_t shot_cnt = 0; if (menu_id == MENUITEM_INTERVAL) { shot_cnt = config_settings.intv_limit; total_time = shot_cnt * config_settings.intv_intval; } else if (menu_id == MENUITEM_ASTRO) { shot_cnt = config_settings.intv_limit; if (config_settings.astro_bulb == 0) { total_time = shot_cnt * config_settings.astro_pause; } else { total_time = shot_cnt * (config_settings.astro_bulb + config_settings.astro_pause); } } return total_time; } class PageInterval : public FairyCfgItem { public: PageInterval(const char* disp_name, int32_t* linked_var, int32_t val_min, int32_t val_max, int32_t step_size, uint16_t fmt_flags) : FairyCfgItem(disp_name, linked_var, val_min, val_max, step_size, fmt_flags) { _autosave = true; }; PageInterval(const char* disp_name, bool (*cb)(void*), const char* icon = NULL) : FairyCfgItem(disp_name, cb, icon) { }; virtual void on_readjust(void) { if (is_value() == false) { return; } draw_total(); }; virtual void on_redraw(void) { M5Lcd.setTextColor(interval_redMode ? TFT_RED : TFT_WHITE, TFT_BLACK); FairyCfgItem::on_redraw(); if (is_func()) { draw_start(); } else if (is_value()) { draw_total(); } }; virtual void on_eachFrame(void) { if (imu.getSpin() != 0) { interval_redMode ^= true; M5Lcd.setTextColor(interval_redMode ? TFT_RED : TFT_WHITE, TFT_BLACK); set_redraw(); imu.resetSpin(); } FairyCfgItem::on_eachFrame(); }; protected: void draw_total(void) { int32_t total_time = interval_calcTotal(_parent_id); M5Lcd.setTextFont(4); M5Lcd.setCursor(_margin_x, get_y(2)); if (total_time > 0) { M5Lcd.print("Total: "); gui_showVal(total_time, TXTFMT_TIMELONG, (Print*)&M5Lcd); } blank_line(); }; void draw_start(void) { FairyCfgItem::draw_name(); M5Lcd.setTextFont(4); int linenum = 1; M5Lcd.setCursor(_margin_x, get_y(linenum)); if (_parent_id == MENUITEM_INTERVAL) { gui_showVal(config_settings.intv_intval, TXTFMT_TIME, (Print*)&M5Lcd); if (config_settings.intv_bulb != 0) { M5Lcd.setTextFont(2); M5Lcd.print(" (B: "); gui_showVal(config_settings.intv_bulb, TXTFMT_TIME, (Print*)&M5Lcd); M5Lcd.print(")"); M5Lcd.setTextFont(4); blank_line(); } if (config_settings.intv_limit != 0 && config_settings.intv_limit < 1000) { linenum++; M5Lcd.setCursor(_margin_x, get_y(linenum)); M5Lcd.print("#: "); M5Lcd.print(config_settings.intv_limit, DEC); M5Lcd.print("x"); } } else if (_parent_id == MENUITEM_ASTRO) { if (config_settings.astro_bulb != 0) { M5Lcd.print(config_settings.astro_bulb, DEC); M5Lcd.print("s"); } if (config_settings.astro_pause > 1) { if (config_settings.astro_bulb != 0) { M5Lcd.print(" + "); } M5Lcd.print(config_settings.astro_pause, DEC); M5Lcd.print("s"); } else if (config_settings.astro_bulb == 0) { M5Lcd.print(config_settings.astro_pause, DEC); M5Lcd.print("s"); } blank_line(); if (config_settings.intv_limit != 0 && config_settings.intv_limit < 1000) { linenum++; M5Lcd.setCursor(_margin_x, get_y(linenum)); M5Lcd.print("#: "); M5Lcd.print(config_settings.intv_limit, DEC); M5Lcd.print("x"); } } int32_t total_time = interval_calcTotal(_parent_id); if (total_time > 0) { linenum++; M5Lcd.setCursor(_margin_x, get_y(linenum)); M5Lcd.setTextFont(2); M5Lcd.print("T: "); gui_showVal(total_time, TXTFMT_TIMELONG, (Print*)&M5Lcd); blank_line(); } FairyCfgItem::draw_icon(); }; }; bool intervalometer_func(void* ptr) { if (fairycam.isOperating() == false) { pwr_airplaneModeEnter(); } FairyItem* pg = (FairyItem*)ptr; uint16_t caller_id = pg->get_parentId(); // need to know if this is normal intervalometer or astrophotography intervalometer uint32_t t = millis(), now = t; intervalometer_start_time = t; bool stop_flag = false, stop_request = false; int32_t cnt = config_settings.intv_limit; cnt = cnt <= 0 ? -1 : cnt; // zero means infinite, indicated by negative uint32_t bulb = (caller_id == MENUITEM_ASTRO) ? config_settings.astro_bulb : config_settings.intv_bulb; int32_t intv_time = (caller_id == MENUITEM_ASTRO) ? config_settings.astro_pause : config_settings.intv_intval; int32_t total_period = (caller_id == MENUITEM_ASTRO) ? (config_settings.astro_bulb + config_settings.astro_pause) : config_settings.intv_intval; // prep screen for drawing gui_startAppPrint(); M5Lcd.setTextColor(interval_redMode ? TFT_RED : TFT_WHITE, TFT_BLACK); M5Lcd.fillScreen(TFT_BLACK); interval_drawTimerStart(); interval_drawTimer(-1); app_waitAllRelease(); M5Lcd.setCursor(SUBMENU_X_OFFSET, SUBMENU_Y_OFFSET); M5Lcd.setTextFont(4); // wait the starting countdown if required if (caller_id != MENUITEM_TRIGGER) { if (config_settings.intv_delay > 0) { stop_flag |= intervalometer_wait(config_settings.intv_delay, t, cnt, "Start in...", false, total_period); } } // handle early quit if (stop_flag) { sprites->unload_all(); redraw_flag = true; // force parent to redraw app_waitAllRelease(); return false; } t = now; pwr_tick(true); imu.hasMajorMotion = false; // for the number of frames we want (or infinite if negative) for (; cnt != 0 && stop_flag == false; ) { app_poll(); pwr_tick(false); // app_poll already checks for IMU motion to undim the LCD pwr_dimCheck(); if (redraw_flag) { redraw_flag = false; gui_startAppPrint(); M5Lcd.setTextColor(interval_redMode ? TFT_RED : TFT_WHITE, TFT_BLACK); M5Lcd.fillScreen(TFT_BLACK); M5Lcd.setTextFont(4); } if (btnSide_hasPressed()) { stop_flag = true; btnSide_clrPressed(); break; } if (btnPwr_hasPressed()) { btnPwr_clrPressed(); break; } if (btnBig_hasPressed()) { btnBig_clrPressed(); // do nothing, clear the press so it doesn't queue up } interval_drawTimer(-1); t = millis(); if (bulb == 0) { // shoot photo normally and indicate cam_shootQuick(); if (intv_time <= 0 && bulb <= 0) { M5Lcd.setCursor(SUBMENU_X_OFFSET, SUBMENU_Y_OFFSET); M5Lcd.print("SHOOT!"); gui_blankRestOfLine(); } } else { // bulb mode, open the shutter and wait the specified time before closing cam_shootOpen(); stop_flag |= intervalometer_wait(bulb, t, cnt, "Shutter Open", true, total_period); cam_shootClose(); } cnt--; if (stop_flag) { break; } interval_drawTimer(-1); if (caller_id == MENUITEM_ASTRO) { // astro mode uses a pause gap instead of fixed intervals, so remember timestamp here t = millis(); } if (intv_time > 0) { stop_flag |= intervalometer_wait(intv_time, t, cnt, (bulb != 0) ? "Next in..." : "Interval", false, total_period); if (stop_flag) { break; } interval_drawTimer(-1); } if (intv_time <= 0 && bulb <= 0) { // this is a special case when the intervalometer is just spamming the shutter M5Lcd.setCursor(SUBMENU_X_OFFSET, SUBMENU_Y_OFFSET); M5Lcd.print("Timer Active"); gui_blankRestOfLine(); } } // end of for-loop sprites->unload_all(); redraw_flag = true; // force parent to redraw app_waitAllRelease(); return false; } extern bool gui_microphoneActive; bool intervalometer_wait( int32_t twait // number of seconds to wait , uint32_t tstart // start time, in milliseconds, of the wait , int32_t cnt // number of photos remaining , const char* msg // message to show in the first line of text , bool pausable // if true, then a side button press will cause the pause to happen at the end of bulb , int32_t total_period // total time period for each interval, in seconds, for display purposes ) { uint32_t now, telapsed; bool stop_flag = false, stop_request = false; bool need_blank = false, need_icon = false; if (twait < 0) { return false; } twait *= 1000; while ((telapsed = ((now = millis()) - tstart)) < twait) { app_poll(); pwr_dimCheck(); if (redraw_flag) { redraw_flag = false; gui_startAppPrint(); M5Lcd.setTextColor(interval_redMode ? TFT_RED : TFT_WHITE, TFT_BLACK); M5Lcd.fillScreen(TFT_BLACK); M5Lcd.setTextFont(4); } if (btnSide_hasPressed()) { btnSide_clrPressed(); if (pausable) { if (stop_request == false) { stop_request = true; need_blank = true; // these actions need to only happen once need_icon = true; // these actions need to only happen once } else if (stop_flag != false) { // a release means two button press, if a second press is detected, quit immediately break; } } else { stop_flag = true; break; } } if (btnSide_isPressed() == false && stop_request != false) { // a release means two button press, if a second press is detected, quit immediately stop_flag = true; } if (btnPwr_hasPressed()) { stop_flag = true; stop_request = true; btnPwr_clrPressed(); break; } M5Lcd.setCursor(SUBMENU_X_OFFSET, gui_microphoneActive == false ? SUBMENU_Y_OFFSET : MICTRIG_LEVEL_MARGIN); if (stop_request == false) { M5Lcd.print(msg); } else { // stop has been requested M5Lcd.print("Stop in..."); } gui_blankRestOfLine(); M5Lcd.println(); gui_setCursorNextLine(); gui_showVal(twait - telapsed, TXTFMT_TIMEMS, (Print*)&M5Lcd); // show remaining time gui_blankRestOfLine(); if (cnt > 0 && stop_request == false) { M5Lcd.println(); gui_setCursorNextLine(); M5Lcd.print("# Rem: "); M5Lcd.print(cnt, DEC); gui_blankRestOfLine(); if (total_period > 0) // only show if data is available { uint32_t total_time = total_period * cnt; M5Lcd.println(); gui_setCursorNextLine(); if (total_time > 120 && cnt > 5) { // this counter isn't live, so don't show it if it needs to be precise M5Lcd.print("T Rem: "); gui_showVal(total_time, TXTFMT_TIMELONG, (Print*)&M5Lcd); } gui_blankRestOfLine(); } } else if (need_blank) { M5Lcd.println(); gui_setCursorNextLine(); gui_blankRestOfLine(); M5Lcd.println(); gui_setCursorNextLine(); gui_blankRestOfLine(); need_blank = false; // do only once } if (stop_request && need_icon) { M5Lcd.drawPngFile(SPIFFS, "/back_icon.png", M5Lcd.width() - GENERAL_ICON_WIDTH, 0); need_icon = false; // do only once, SPI flash file read and file decoding is extremely slow } interval_drawTimer(-1); } // make sure 0 is the last number shown if (stop_request == false) { M5Lcd.setCursor(SUBMENU_X_OFFSET, gui_microphoneActive == false ? SUBMENU_Y_OFFSET : MICTRIG_LEVEL_MARGIN); M5Lcd.print(msg); M5Lcd.println(); gui_setCursorNextLine(); gui_showVal(0, TXTFMT_TIMEMS, (Print*)&M5Lcd); // show remaining time of zero gui_blankRestOfLine(); } return stop_flag; } class AppIntervalometer : public FairyCfgApp { public: AppIntervalometer(uint16_t id) : FairyCfgApp(id == MENUITEM_INTERVAL ? "/main_interval.png" : "/main_astro.png", id == MENUITEM_INTERVAL ? "/intervalometer_icon.png" : "/galaxy_icon.png", id ) { if (id == MENUITEM_INTERVAL) { install(new PageInterval("Bulb Time", (int32_t*)&(config_settings.intv_bulb) , 0, 10000, 1, TXTFMT_TIME | TXTFMT_BULB)); install(new PageInterval("Interval" , (int32_t*)&(config_settings.intv_intval), 0, 10000, 1, TXTFMT_TIME)); } else if (id == MENUITEM_ASTRO) { install(new PageInterval("Bulb Time", (int32_t*)&(config_settings.astro_bulb) , 0, 10000, 1, TXTFMT_TIME | TXTFMT_BULB)); install(new PageInterval("Pause Gap", (int32_t*)&(config_settings.astro_pause), 0, 10000, 1, TXTFMT_TIME)); } install(new PageInterval("Start Delay" , (int32_t*)&(config_settings.intv_delay), 0, 10000, 1, TXTFMT_TIME)); install(new PageInterval("Num of Shots", (int32_t*)&(config_settings.intv_limit), 0, 10000, 1, TXTFMT_BYTENS)); install(new PageInterval("Start", intervalometer_func, "/go_icon.png")); }; virtual bool on_execute(void) { tallylite_enable = false; bool ret = FairyCfgApp::on_execute(); tallylite_enable = true; pwr_airplaneModeExit(); return ret; }; }; extern FairySubmenu main_menu; void setup_intervalometer() { static AppIntervalometer app_interval(MENUITEM_INTERVAL); static AppIntervalometer app_astro (MENUITEM_ASTRO); main_menu.install(&app_interval); main_menu.install(&app_astro); } ================================================ FILE: arduino_workspace/AlphaFairy/Lepton.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" #ifdef ENABLE_BUILD_LEPTON #include #include typedef struct { float data; int16_t increment; bool sw; } lepton_encoder_t; //#define ENABLE_LEPTON_HISTOGRAM //#define ENABLE_LEPTON_SCALING //#define ENABLE_LEPTON_COLOURS #define MAX_FLIR_RAW_BUFFER (FLIR_X * FLIR_Y - 1) #define FLIR_WINDOW_X1 5 #define FLIR_WINDOW_Y1 4 #define FLIR_WINDOW_X2 (FLIR_WINDOW_X1 + FLIR_X) #define FLIR_WINDOW_Y2 (FLIR_WINDOW_Y1 + FLIR_Y) #define FLIR_WINDOW_CENTER_X (FLIR_WINDOW_X1 + FLIR_X / 2) #define FLIR_WINDOW_CENTER_Y (FLIR_WINDOW_Y1 + FLIR_Y / 2) #define HIST_HEIGHT 70 #define HIST_WINDOWS_X1 171 #define HIST_WINDOWS_Y1 34 #define HIST_WINDOWS_X2 (HIST_WINDOWS_X1 + 64) #define HIST_WINDOWS_Y2 (HIST_WINDOWS_Y1 + HIST_HEIGHT) #define MES_MODE_X 171 #define MES_MODE_Y 8 #define DISP_MODE_X 171 #define DISP_MODE_Y 25 Lepton lepton(21, 22, 0, 38); const uint8_t lepenc_addr = 0x30; extern uint16_t fpa_temp, aux_temp; extern const uint16_t camColors[]; extern const uint16_t GrayLevel[]; extern uint16_t smallBuffer[FLIR_X * FLIR_Y]; extern uint16_t raw_max, raw_min; extern uint16_t max_x, max_y, min_x, min_y; TFT_eSprite* lepton_imgBuff = NULL; bool smallBuffer_Lock = false; bool img_buffer_Lock = false; lepton_encoder_t lepton_enc_data = {0}; const float kEncoderTempStep = 0.05f; #ifdef ENABLE_LEPTON_HISTOGRAM uint16_t lepton_histoBuff[64] = {0}; #endif uint8_t lepenc_errCnt = 0; bool lepton_success = false; bool lepton_enable_poll = true; uint8_t lepton_initStage = 0; uint32_t lepton_initMidTime = 0; uint32_t lepton_lastPollTime = 0; uint32_t lepton_startTime = 0; int lepton_trigBar = 0; int lepton_trigThresh = 0; int lepton_saveNum = 0; extern int32_t trigger_source; extern bool tallylite_enable; /** @brief Read the encoder wheel */ void lepton_encRead(bool* sw, int16_t* inc, int16_t* rem) { (*sw) = false; (*inc) = 0; if (lepenc_errCnt > 3) { return; } uint8_t err; Wire1.beginTransmission(lepenc_addr); Wire1.write(0x10); err = Wire1.endTransmission(); if (err != 0) { lepenc_errCnt++; return; } Wire1.requestFrom(lepenc_addr, (uint8_t)1); while (Wire1.available() < 1) { app_poll(); } (*sw) = Wire1.read() != 0; if ((*sw)) { pwr_tick(true); lepton_encClear(); } else { Wire1.beginTransmission(lepenc_addr); Wire1.write(0x00); Wire1.endTransmission(); Wire1.requestFrom(lepenc_addr, (uint8_t)2); while (Wire1.available() < 2) { app_poll(); } uint8_t* ptr = (uint8_t*)inc; ptr[1] = Wire1.read(); ptr[0] = Wire1.read(); if ((*inc) != 0) { pwr_tick(true); int16_t x = (*inc); int16_t absx = x < 0 ? -x : x; if ((absx % 2) == 0) { lepton_encClear(); } else { (*inc) = 0; } if (rem != NULL) { (*rem) = x < 0 ? (-absx % 2) : (absx % 2); } } } } void lepton_encClear() { Wire1.beginTransmission(lepenc_addr); Wire1.write(0x20); Wire1.write(0xFF); Wire1.endTransmission(); } /** @brief Draws temperature focus cursor * @param coordinates */ void lepton_dispCursor(uint16_t x, uint16_t y) { lepton_imgBuff->drawCircle(x, y, 6, TFT_WHITE); lepton_imgBuff->drawLine(x, y - 10, x, y + 10, TFT_WHITE); lepton_imgBuff->drawLine(x - 10, y, x + 10, y, TFT_WHITE); } /** @brief Draws a pseudo-color image & Creat data pack to RemoteImgTransfer * @param raw_diff Quantization step * @param raw_cursor Temperature range * @param palette False color palette * @param dir_flag Temperature range direction selection, H->L or L->H */ void lepton_dispImg(float raw_diff, uint16_t raw_cursor, const uint16_t *palette, bool dir_flag) { uint16_t x, y, i = 0, b; uint16_t index = 0; if (dir_flag) { for (y = FLIR_WINDOW_Y1; y < FLIR_WINDOW_Y2; y++) { for (x = FLIR_WINDOW_X1; x < FLIR_WINDOW_X2; x++) { b = smallBuffer[i]; if (b < raw_cursor) { index = 0; } else { index = (b - raw_cursor) * raw_diff; } if (index > 255) { index = 255; } #ifdef ENABLE_LEPTON_HISTOGRAM lepton_histoBuff[(index >> 2)]++; #endif //if (palette != NULL) { lepton_imgBuff->drawPixel(x, y, *(palette + index)); } i++; } } } else { for (y = FLIR_WINDOW_Y1; y < FLIR_WINDOW_Y2; y++) { for (x = FLIR_WINDOW_X1; x < FLIR_WINDOW_X2; x++) { b = smallBuffer[i]; if (b > raw_cursor) { index = 255; } else { index = (b - raw_min) * raw_diff; } if (index > 255) { index = 255; } #ifdef ENABLE_LEPTON_HISTOGRAM lepton_histoBuff[(index >> 2)]++; #endif //if (palette != NULL) { lepton_imgBuff->drawPixel(x, y, *(palette + index)); } i++; } } } } /** @brief Draw battery icon * @param coordinates * @param vol battery voltage */ void lepton_dispBatt(uint16_t x, uint16_t y, float vol) { const uint8_t w = 18; const uint8_t h = 7; #ifdef ENABLE_LEPTON_HISTOGRAM TFT_eSprite* ib = lepton_imgBuff; #else M5DisplayExt* ib = &M5Lcd; #endif ib->drawLine(x + 1, y, x + w, y, TFT_WHITE); // - ib->drawLine(x, y + 1, x, y + h, TFT_WHITE); // | ib->drawLine(x + 1, y + h + 1, x + w, y + h + 1, TFT_WHITE); // _ ib->drawLine(x + w + 1, y + 1, x + w + 1, y + h, TFT_WHITE); // | ib->drawLine(x + w + 3, y + 4, x + w + 3, y + h - 3, TFT_WHITE); ib->drawPixel(x + w + 2, y + 3, TFT_WHITE); ib->drawPixel(x + w + 2, y + h - 2, TFT_WHITE); float rate = (vol - 3.4) / (4.1 - 3.4); if (rate > 1.0) { ib->fillRect(x + 2, y + 2, w - 2, h - 2, TFT_GREEN); } else if (rate <= 0.05) { ib->drawLine(x + 2, y + 2, x + 2, y + h - 1, TFT_GREEN); } else { uint16_t bw = uint16_t(rate * (w - 2)); ib->fillRect(x + 2, y + 2, bw, h - 2, TFT_GREEN); ib->fillRect(x + 2 + bw, y + 2, w - 2 - bw, h - 2, TFT_BLACK); } // draw the connection status too int16_t x2 = FLIR_X + 10; int16_t w2 = 12, w3 = 10, spc = 5; uint16_t antc = fairycam.isOperating() ? TFT_BLACK : TFT_RED; ib->drawLine(x2 , y, x2 + w2 , y , antc); ib->drawLine(x2 + (w2/2), y, x2 + (w2/2), y + w3 , antc); ib->drawLine(x2 , y, x2 + (w2/2), y + (w2/2), antc); ib->drawLine(x2 + w2 , y, x2 + (w2/2), y + (w2/2), antc); ib->drawLine(x2 + w2 + spc, y , x2 + w2 + spc + w3, y + w3, antc); ib->drawLine(x2 + w2 + spc, y + w3, x2 + w2 + spc + w3, y + 0 , antc); #ifndef ENABLE_LEPTON_SCALING if (lepton_saveNum > 0) { ib->setCursor(x2 - 5, 21); ib->printf("SAVED: %u", lepton_saveNum); } #endif } #ifndef ENABLE_LEPTON_SCALING void lepton_saveImg() { char fname[32] = {0}; while (true) { if (lepton_saveNum == 0) { lepton_saveNum++; } sprintf(fname, "/flir_%u.bin", lepton_saveNum); if (SPIFFS.exists(fname) == false) { break; } else { lepton_saveNum++; continue; } } File f = SPIFFS.open(fname, FILE_WRITE); if (!f) { return; } dbg_ser.printf("saving FLIR img to %s\r\n", fname); f.write((uint8_t*)&fpa_temp, 2); f.write((uint8_t*)&raw_max, 2); f.write((uint8_t*)&raw_min, 2); uint8_t* ptr = (uint8_t*)smallBuffer; f.write(ptr, FLIR_X * FLIR_Y * 2); f.close(); M5Lcd.fillRect(FLIR_X + 5, 20, 70, 60, TFT_BLACK); } #endif /** @brief Update encoder data */ void lepton_updateEncoder() { #ifdef ENABLE_LEPTON_SCALING lepton_encRead(&lepton_enc_data.sw, &lepton_enc_data.increment, &NULL); if (lepton_enc_data.sw) // button press resets the data { lepton_enc_data.data = 0; } else { if (lepton_enc_data.increment != 0) { lepton_enc_data.data += ((lepton_enc_data.increment) * kEncoderTempStep); } } #endif } void lepton_makeFrameBuff() { #ifdef ENABLE_LEPTON_HISTOGRAM int16_t w = M5Lcd.width(), h = M5Lcd.height(); #else int16_t w = FLIR_X, h = FLIR_Y; #endif lepton_imgBuff = new TFT_eSprite(&M5Lcd); lepton_imgBuff->createSprite(w > h ? w : h, w > h ? h : w); lepton_imgBuff->setTextFont(0); //lepton_imgBuff->highlight(true); lepton_imgBuff->setTextWrap(true); //lepton_imgBuff->setHighlightColor(TFT_BLACK); lepton_imgBuff->setTextColor(TFT_WHITE); } #define GET_PIXEL_TEMPERATURE(_pixidx) (0.0217f * smallBuffer[(_pixidx)] + ((fpa_temp / 100.0f) - 273.15f) - 177.77f) #define GET_PIXEL_INDEX(_x, _y) (((_y) * FLIR_X) + (_x)) /** @brief Update frame */ void lepton_updateFlir(bool gui) { pwr_tick(true); lepton.getRawValues(); lepton_lastPollTime = millis(); #ifdef ENABLE_LEPTON_SCALING lepton_updateEncoder(); #else bool enc_sw; int16_t enc_inc; lepton_encRead(&enc_sw, &enc_inc, NULL); if (enc_sw) { lepton_saveImg(); } #endif uint16_t i = 0, raw_cursor = raw_max; int32_t x, y; uint8_t index; float raw_diff = 0; if (gui && lepton_imgBuff == NULL) { gui = false; } if (gui) { if (lepton_imgBuff == NULL) { lepton_makeFrameBuff(); } lepton_imgBuff->fillScreen(TFT_BLACK); } //convert temp float fpa_temp_f = fpa_temp / 100.0f - 273.15; float max_temp = 0.0217f * raw_max + fpa_temp_f - 177.77f; float min_temp = 0.0217f * raw_min + fpa_temp_f - 177.77f; float center_temp = GET_PIXEL_TEMPERATURE(9519); //The quantized step was calculated using the temperature range cursor float cursor_temp = max_temp; bool dir_flag = lepton_enc_data.data >= 0; if (dir_flag) { if (lepton_enc_data.data > 0.95) { lepton_enc_data.data = 0.95; } cursor_temp = min_temp + (max_temp - min_temp) * lepton_enc_data.data; raw_cursor = (cursor_temp + 177.77 - fpa_temp_f) / 0.0217f; raw_diff = 256.0f / (raw_max - raw_cursor); } else { if (lepton_enc_data.data < -0.95) { lepton_enc_data.data = -0.95; } cursor_temp = max_temp - ((max_temp - min_temp) * (-lepton_enc_data.data)); raw_cursor = (cursor_temp + 177.77 - fpa_temp_f) / 0.0217f; raw_diff = 256.0f / (raw_cursor - raw_min); } max_x += FLIR_WINDOW_X1; max_y += FLIR_WINDOW_Y1; min_x += FLIR_WINDOW_X1; min_y += FLIR_WINDOW_Y1; if (gui) { #ifdef ENABLE_LEPTON_COLOURS //display mode switch switch (config_settings.lepton_dispmode) { case DISP_MODE_RGB: lepton_dispImg(raw_diff, raw_cursor, colormap_cam, dir_flag); break; case DISP_MODE_GRAY: lepton_dispImg(raw_diff, raw_cursor, colormap_grayscale, dir_flag); break; case DISP_MODE_GOLDEN: lepton_dispImg(raw_diff, raw_cursor, colormap_golden, dir_flag); break; case DISP_MODE_RAINBOW: lepton_dispImg(raw_diff, raw_cursor, colormap_rainbow, dir_flag); break; case DISP_MODE_IRONBLACK: lepton_dispImg(raw_diff, raw_cursor, colormap_ironblack, dir_flag); break; } #else lepton_dispImg(raw_diff, raw_cursor, colormap_cam, dir_flag); #endif } //measure mode switch switch (config_settings.lepton_measmode) { case MES_AUTO_MAX: if (gui) { lepton_dispCursor(max_x, max_y); } x = max_x + 5; y = max_y + 5; if (max_x > FLIR_WINDOW_X2 - 35) x = max_x - 35; if (max_y > FLIR_WINDOW_Y2 - 15) y = max_y - 15; if (gui) { lepton_imgBuff->setCursor(x, y); lepton_imgBuff->printf("%0.2f", max_temp); } break; case MES_AUTO_MIN: if (gui) { lepton_dispCursor(min_x, min_y); } x = min_x + 5; y = min_y + 5; if (min_x > FLIR_WINDOW_X2 - 35) x = min_x - 35; if (min_y > FLIR_WINDOW_Y2 - 15) y = min_y - 15; if (gui) { lepton_imgBuff->setCursor(x, y); lepton_imgBuff->printf("%.02f", min_temp); } break; case MES_CENTER: if (gui) { lepton_dispCursor(FLIR_WINDOW_CENTER_X, FLIR_WINDOW_CENTER_Y); lepton_imgBuff->setCursor(FLIR_WINDOW_CENTER_X + 5, FLIR_WINDOW_CENTER_Y + 5); lepton_imgBuff->printf("%0.2f", center_temp); } break; } #ifdef ENABLE_LEPTON_HISTOGRAM //Histogram uint16_t max_hist = 0; for (i = 0; i < 64; i++) { if (lepton_histoBuff[i] > max_hist) { max_hist = lepton_histoBuff[i]; } } uint16_t hist_div = max_hist / HIST_HEIGHT; i = 0; switch (config_settings.lepton_dispmode) { case DISP_MODE_RGB: for (x = HIST_WINDOWS_X1; x < HIST_WINDOWS_X2; x++) { if (gui) { lepton_imgBuff->drawLine(x, HIST_WINDOWS_Y2, x, HIST_WINDOWS_Y2 - lepton_histoBuff[i] / hist_div, colormap_cam[i * 4]); } lepton_histoBuff[i] = 0; i++; } break; case DISP_MODE_GRAY: for (x = HIST_WINDOWS_X1; x < HIST_WINDOWS_X2; x++) { if (gui) { lepton_imgBuff->drawLine(x, HIST_WINDOWS_Y2, x, HIST_WINDOWS_Y2 - lepton_histoBuff[i] / hist_div, colormap_grayscale[i * 4]); } lepton_histoBuff[i] = 0; i++; } break; case DISP_MODE_GOLDEN: for (x = HIST_WINDOWS_X1; x < HIST_WINDOWS_X2; x++) { if (gui) { lepton_imgBuff->drawLine(x, HIST_WINDOWS_Y2, x, HIST_WINDOWS_Y2 - lepton_histoBuff[i] / hist_div, colormap_golden[i * 4]); } lepton_histoBuff[i] = 0; i++; } break; case DISP_MODE_RAINBOW: for (x = HIST_WINDOWS_X1; x < HIST_WINDOWS_X2; x++) { if (gui) { lepton_imgBuff->drawLine(x, HIST_WINDOWS_Y2, x, HIST_WINDOWS_Y2 - lepton_histoBuff[i] / hist_div, colormap_rainbow[i * 4]); } lepton_histoBuff[i] = 0; i++; } break; case DISP_MODE_IRONBLACK: for (x = HIST_WINDOWS_X1; x < HIST_WINDOWS_X2; x++) { if (gui) { lepton_imgBuff->drawLine(x, HIST_WINDOWS_Y2, x, HIST_WINDOWS_Y2 - lepton_histoBuff[i] / hist_div, colormap_ironblack[i * 4]); } lepton_histoBuff[i] = 0; i++; } break; } double bar_percentage = (double)(raw_cursor - raw_min) / (double)(raw_max - raw_min); uint8_t bar_len = bar_percentage * 64; if (gui) { lepton_imgBuff->drawRect(HIST_WINDOWS_X1, HIST_WINDOWS_Y2 + 5, 64, 4, TFT_WHITE); if (dir_flag) { lepton_imgBuff->fillRect(HIST_WINDOWS_X1 + bar_len, HIST_WINDOWS_Y2 + 5, 64 - bar_len, 4, TFT_WHITE); } else { lepton_imgBuff->fillRect(HIST_WINDOWS_X1, HIST_WINDOWS_Y2 + 5, bar_len, 4, TFT_WHITE); } lepton_imgBuff->setCursor(HIST_WINDOWS_X1, HIST_WINDOWS_Y2 + 12); lepton_imgBuff->printf("%.0f", min_temp); lepton_imgBuff->setCursor(HIST_WINDOWS_X2 - 12, HIST_WINDOWS_Y2 + 12); lepton_imgBuff->printf("%.0f", max_temp); } #endif if (gui) { //Setting info lepton_imgBuff->setTextDatum(TC_DATUM); float bat_voltage = M5.Axp.GetBatVoltage(); lepton_dispBatt(214, 4, bat_voltage); } if (gui) { lepton_imgBuff->pushSprite(0, 0); } } bool lepton_checkTrigger() { if (config_settings.lepton_trigmode == THERMTRIG_OFF) { return false; } if (lepton_initStage != LEPINIT_DONE) { return false; } int16_t x, y; int16_t cx = FLIR_X / 2; int16_t cy = FLIR_Y / 2; int16_t sx = cx - ((config_settings.lepton_trigzone + 1) / 2); int16_t sy = cy - ((config_settings.lepton_trigzone + 1) / 2); int16_t ex = cx + ((config_settings.lepton_trigzone + 1) / 2); int16_t ey = cy + ((config_settings.lepton_trigzone + 1) / 2); sx = sx < 0 ? 0 : sx; sy = sy < 0 ? 0 : sy; ex = ex >= FLIR_X ? FLIR_X : ex; ey = ey >= FLIR_Y ? FLIR_Y : ey; bool found = false; bool foundlim = false; int limtemp = 0; for (x = sx; x < ex; x++) { for (y = sy; y < ey; y++) { float t = GET_PIXEL_TEMPERATURE(GET_PIXEL_INDEX(x, y)); int tt = lround(t); if ((foundlim == false) || (config_settings.lepton_trigmode == THERMTRIG_HOT && tt > limtemp) || (config_settings.lepton_trigmode == THERMTRIG_COLD && tt < limtemp)) { limtemp = t; foundlim = true; } if ((config_settings.lepton_trigmode == THERMTRIG_HOT && tt >= config_settings.lepton_trigtemp) || (config_settings.lepton_trigmode == THERMTRIG_COLD && tt <= config_settings.lepton_trigtemp) ) { found |= true; } } } if (foundlim) { lepton_trigBar = map(lround(limtemp * 100.0) , 0, 6000, 10, 170); lepton_trigThresh = map(config_settings.lepton_trigtemp * 100, 0, 6000, 10, 170); } return found; } bool lepton_init() { if (lepton_initStage == LEPINIT_RST_1) { pinMode(LEPTON_RESET_PIN, OUTPUT); digitalWrite(LEPTON_RESET_PIN, HIGH); lepton_initMidTime = millis(); lepton_initStage = LEPINIT_RST_2; } else if (lepton_initStage == LEPINIT_RST_2) { if ((millis() - lepton_initMidTime) >= 100) { digitalWrite(LEPTON_RESET_PIN, LOW); lepton_initMidTime = millis(); lepton_initStage = LEPINIT_RST_3; } } else if (lepton_initStage == LEPINIT_RST_3) { if ((millis() - lepton_initMidTime) >= 300) { digitalWrite(LEPTON_RESET_PIN, HIGH); lepton_initMidTime = millis(); lepton_initStage = LEPINIT_RST_4; } } else if (lepton_initStage == LEPINIT_RST_4) { if ((millis() - lepton_initMidTime) >= 50) { lepton_initStage = LEPINIT_BEGIN; } } else if (lepton_initStage == LEPINIT_BEGIN) { if (lepton.begin()) { dbg_ser.println("lepton begin"); lepton_success = true; lepton_initStage = LEPINIT_SYNC; } else { Serial.println("lepton begin failed"); lepton_success = false; lepton_initStage = LEPINIT_FAIL; } } else if (lepton_initStage == LEPINIT_SYNC) { lepton.syncFrame(); dbg_ser.println("lepton syncFrame"); #if 0 lepton_initMidTime = millis(); lepton_initStage = LEPINIT_CMD; #else delay(1000); // using millis() and scheduling doesn't seem to work as well as using delay() uint16_t SYNC = 5, DELAY = 3; lepton.doSetCommand(0x4854, &SYNC, 1); lepton.doSetCommand(0x4858, &DELAY, 1); lepton.end(); lepton_initStage = LEPINIT_DONE; dbg_ser.println("lepton done"); #endif } else if (lepton_initStage == LEPINIT_CMD) { if ((millis() - lepton_initMidTime) >= 1000) { uint16_t SYNC = 5, DELAY = 3; lepton.doSetCommand(lepton.CMD_OEM_SYNC_SET , &SYNC , 1); lepton.doSetCommand(lepton.CMD_OEM_DELAY_SET, &DELAY, 1); lepton.end(); uint32_t t = millis(); if ((t - lepton_initMidTime) > 1500) { lepton_initStage = LEPINIT_RST_1; dbg_ser.println("lepton reattempt init"); } else { lepton_initStage = LEPINIT_DONE; dbg_ser.println("lepton doSetCommand"); } } } else if (lepton_initStage == LEPINIT_DONE) { lepton_poll(false); } return lepton_success; } void lepton_poll(bool init) { if (lepton_enable_poll == false) { return; } if ((millis() - lepton_lastPollTime) < 300) { return; } if (lepton_initStage != LEPINIT_DONE) { if (init) { lepton_init(); } return; } lepton.getRawValues(); lepton_lastPollTime = millis(); } bool lepton_nullFunc(void* x) { return false; } class PageLeptonImage : public FairyCfgItem { public: PageLeptonImage() : FairyCfgItem("", lepton_nullFunc) { }; virtual void on_navTo(void) { if (lepton_imgBuff == NULL) { lepton_makeFrameBuff(); } FairyCfgItem::on_navTo(); }; virtual void on_navOut(void) { if (lepton_imgBuff != NULL) { lepton_imgBuff->deleteSprite(); delete lepton_imgBuff; lepton_imgBuff = NULL; } lepton_encClear(); }; virtual void on_eachFrame(void) { lepton_updateFlir(true); #ifdef ENABLE_BUILD_LEPTON_TRIGGER_SIMPLE if ((millis() - lepton_startTime) < 5000) { return; } bool trig = lepton_checkTrigger(); if (trig) { dbg_ser.println("therm simple trigger"); _triptime = millis(); draw_borderRect(3, TFT_RED); pwr_tick(true); cam_shootQuick(); } else if (_triptime > 0 && (millis() - _triptime) >= 500) { dbg_ser.println("therm trigger clear screen"); draw_borderRect(3, TFT_BLACK); _triptime = 0; } #endif }; virtual void on_redraw(void) { M5Lcd.fillScreen(TFT_BLACK); lepton_updateFlir(true); }; virtual void draw_statusBar(void) { // do nothing, do not draw }; virtual bool on_execute(void) { return false; }; protected: uint32_t _triptime = 0; }; class PageLeptonMesMode : public FairyCfgItem { public: PageLeptonMesMode() : FairyCfgItem("Meas. Mode", (int32_t*)&(config_settings.lepton_measmode), 0, 2, 1, TXTFMT_NONE) { this->_margin_y = MICTRIG_LEVEL_MARGIN; this->_autosave = false; }; virtual void on_redraw(void) { M5Lcd.fillScreen(TFT_BLACK); FairyCfgItem::on_redraw(); draw_info(); }; virtual void on_readjust(void) { FairyCfgItem::on_readjust(); draw_info(); }; protected: void draw_info(void) { M5Lcd.setTextFont(4); M5Lcd.setCursor(_margin_x, get_y(2)); switch (config_settings.lepton_measmode) { case MES_AUTO_MAX: M5Lcd.print("Max Temp"); break; case MES_AUTO_MIN: M5Lcd.print("Min Temp"); break; case MES_CENTER: M5Lcd.print("Center"); break; default: M5Lcd.setTextFont(2); M5Lcd.print("Meas Mode Unknown"); M5Lcd.setTextFont(4); break; } blank_line(); }; }; #ifdef ENABLE_LEPTON_COLOURS class PageLeptonDispMode : public FairyCfgItem { public: PageLeptonDispMode() : FairyCfgItem("Disp. Mode", (int32_t*)&(config_settings.lepton_dispmode), 0, 4, 1, TXTFMT_NONE) { this->_margin_y = MICTRIG_LEVEL_MARGIN; this->_autosave = false; }; virtual void on_redraw(void) { M5Lcd.fillScreen(TFT_BLACK); FairyCfgItem::on_redraw(); draw_info(); }; virtual void on_readjust(void) { FairyCfgItem::on_readjust(); draw_info(); }; protected: void draw_info(void) { M5Lcd.setTextFont(4); M5Lcd.setCursor(_margin_x, get_y(2)); switch (config_settings.lepton_dispmode) { case DISP_MODE_RGB: M5Lcd.print("RGB"); break; case DISP_MODE_GOLDEN: M5Lcd.print("Golden"); break; case DISP_MODE_GRAY: M5Lcd.print("Gray"); break; case DISP_MODE_IRONBLACK: M5Lcd.print("Iron Black"); break; case DISP_MODE_RAINBOW: M5Lcd.print("Rainbow"); break; default: M5Lcd.setTextFont(2); M5Lcd.print("Disp Mode Unknown"); M5Lcd.setTextFont(4); break; } blank_line(); }; }; #endif class PageLeptonTrigger : public FairyCfgItem { public: PageLeptonTrigger(const char* disp_name, int32_t* linked_var, int32_t val_min, int32_t val_max, int32_t step_size, uint32_t fmt_flags) : FairyCfgItem(disp_name, linked_var, val_min, val_max, step_size, fmt_flags) { this->_margin_y = MICTRIG_LEVEL_MARGIN; this->_autosave = true; }; PageLeptonTrigger(const char* disp_name, bool (*cb)(void*), const char* icon) : FairyCfgItem(disp_name, cb, icon) { this->_margin_y = MICTRIG_LEVEL_MARGIN; this->_autosave = false; }; virtual void on_drawLive (void) { if (this->get_parentId() == MENUITEM_TRIGGER) { trigger_drawLevel(); } else { lepton_drawLevel(); } }; virtual void on_extraPoll(void) { if (this->get_parentId() == MENUITEM_TRIGGER) { trigger_all_poll(); } else { lepton_checkTrigger(); } }; }; class PageLeptonTriggerMode : public PageLeptonTrigger { public: PageLeptonTriggerMode() : PageLeptonTrigger("Trigger Mode", (int32_t*)&(config_settings.lepton_trigmode), 0, 2, 1, TXTFMT_NONE) { }; virtual bool can_navTo(void) { if (this->get_parentId() == MENUITEM_TRIGGER) { if (trigger_source != TRIGSRC_ALL && trigger_source != TRIGSRC_THERMAL) { return false; } } return true; }; virtual void on_redraw(void) { if (this->get_parentId() == MENUITEM_TRIGGER) { if (config_settings.lepton_trigmode == THERMTRIG_OFF) { config_settings.lepton_trigmode = THERMTRIG_HOT; } } M5Lcd.fillScreen(TFT_BLACK); FairyCfgItem::on_redraw(); draw_info(); }; virtual void on_readjust(void) { if (config_settings.lepton_trigmode < THERMTRIG_OFF) { config_settings.lepton_trigmode = THERMTRIG_OFF; } FairyCfgItem::on_readjust(); draw_info(); }; protected: void draw_info(void) { M5Lcd.setTextFont(4); M5Lcd.setCursor(_margin_x, get_y(2)); if (config_settings.lepton_trigmode < THERMTRIG_OFF) { config_settings.lepton_trigmode = THERMTRIG_OFF; } switch (config_settings.lepton_trigmode) { case THERMTRIG_OFF: M5Lcd.print("Off"); break; case THERMTRIG_HOT: M5Lcd.print("Hot Obj"); break; case THERMTRIG_COLD: M5Lcd.print("Cold Obj"); break; default: M5Lcd.setTextFont(2); M5Lcd.print("Trig Mode Unknown"); M5Lcd.setTextFont(4); break; } blank_line(); }; }; class PageLeptonTriggerTemp : public PageLeptonTrigger { public: PageLeptonTriggerTemp() : PageLeptonTrigger("Trig Temp.", (int32_t*)&(config_settings.lepton_trigtemp), 0, 200, 1, TXTFMT_BYTENS) { }; virtual bool can_navTo(void) { if (config_settings.lepton_trigmode == THERMTRIG_OFF) { return false; } if (this->get_parentId() == MENUITEM_TRIGGER) { if (trigger_source != TRIGSRC_ALL && trigger_source != TRIGSRC_THERMAL) { return false; } } return true; }; virtual void on_redraw(void) { M5Lcd.fillScreen(TFT_BLACK); FairyCfgItem::on_redraw(); }; }; class PageLeptonTriggerZone : public PageLeptonTrigger { public: PageLeptonTriggerZone() : PageLeptonTrigger("Trig Zone", (int32_t*)&(config_settings.lepton_trigzone), 2, FLIR_X > FLIR_Y ? FLIR_X : FLIR_Y, 1, TXTFMT_BYTENS) { }; virtual bool can_navTo(void) { if (config_settings.lepton_trigmode == THERMTRIG_OFF) { return false; } if (this->get_parentId() == MENUITEM_TRIGGER) { if (trigger_source != TRIGSRC_ALL && trigger_source != TRIGSRC_THERMAL) { return false; } } return true; }; virtual void on_redraw(void) { M5Lcd.fillScreen(TFT_BLACK); FairyCfgItem::on_redraw(); }; }; class PageLeptonExit : public FairyCfgItem { public: PageLeptonExit() : FairyCfgItem("Exit", lepton_nullFunc, "/back_icon.png") { this->_margin_y = MICTRIG_LEVEL_MARGIN; this->_autosave = false; }; virtual void on_redraw(void) { M5Lcd.fillScreen(TFT_BLACK); FairyCfgItem::on_redraw(); }; virtual bool on_execute(void) { return true; // causes exit }; }; class AppLepton : public FairyCfgApp { public: AppLepton() : FairyCfgApp("/main_lepton.png", "/lepton_icon.png", MENUITEM_LEPTON) { install(new PageLeptonImage()); #ifdef ENABLE_LEPTON_COLOURS install(new PageLeptonDispMode()); #endif install(new PageLeptonMesMode()); #ifdef ENABLE_BUILD_LEPTON_TRIGGER_SIMPLE install(new PageLeptonTriggerMode()); install(new PageLeptonTriggerTemp()); install(new PageLeptonTriggerZone()); #endif install(new PageLeptonExit()); }; virtual bool on_execute(void) { #ifndef ENABLE_BUILD_LEPTON_TRIGGER_SIMPLE pwr_airplaneModeEnter(); #endif bool r = false; M5Lcd.fillScreen(TFT_DARKGREY); while (lepton_initStage < LEPINIT_DONE) { lepton_init(); app_poll(); } if (lepton_initStage == LEPINIT_DONE) { lepton_startTime = millis(); tallylite_enable = false; r = FairyCfgApp::on_execute(); tallylite_enable = true; } #ifndef ENABLE_BUILD_LEPTON_TRIGGER_SIMPLE pwr_airplaneModeExit(); #endif return r; }; }; extern FairySubmenu main_menu; void setup_leptonflir() { static AppLepton app; main_menu.install(&app); } void install_lepton_trigger(FairyCfgApp* parent) { #ifdef ENABLE_BUILD_LEPTON_TRIGGER_COMPLEX parent->install(new PageLeptonTriggerMode()); parent->install(new PageLeptonTriggerTemp()); parent->install(new PageLeptonTriggerZone()); #endif } #endif ================================================ FILE: arduino_workspace/AlphaFairy/PowerMgmt.ino ================================================ #include "AlphaFairy.h" #include #include #include "esp_pm.h" #include "esp32/pm.h" uint8_t batt_status = BATTSTAT_NONE; float batt_vbus = -1; float batt_vbatt = -1; float batt_ibatt = -1; float batt_ibatt_max = -1; extern bool http_is_active; extern bool autoconnect_active; extern bool airplane_mode; uint32_t pwr_last_tick = 0; uint32_t lcddim_last_tick = 0; bool lcd_backlight_dim = false; bool prevent_status_bar_thread = false; extern bool gui_microphoneActive; void gui_drawStatusBar(bool is_black) { #ifdef DISABLE_STATUS_BAR return; #endif static uint8_t li = 0; static uint32_t batt_last_time = 0; uint32_t now; static const char* txt_white = "_white"; static const char* txt_black = "_black"; static const char* txt_prefix = "/status_"; static const char* txt_suffix = ".png"; char fpath[64]; if (((now = millis()) - batt_last_time) > 300 || batt_last_time == 0) { // only do once in a while, these are I2C transactions, could cause slowdowns // I'll admit that file reading, decoding, and LCD transactions are also very slow batt_last_time = now; if (li == 0 || batt_vbus < 0) { batt_vbus = M5.Axp.GetVBusVoltage(); } if (li == 1 || batt_vbatt < 0) { batt_vbatt = M5.Axp.GetBatVoltage(); } if (li == 2 || batt_ibatt < 0) { batt_ibatt = M5.Axp.GetBatCurrent(); } li = (li + 1) % 3; // the PMIC gives us a lot of data to use if (batt_vbus > 3) // check if USB power is available { batt_status = BATTSTAT_CHARGING; if (batt_vbatt > 4.1 && batt_ibatt >= 0) { // high vbatt and no in-flow current means battery is full // but there's a case when there's a constant trickle into the battery that never stops (I don't know why) // so we track what the maximum in-flow current is and see if it drops batt_ibatt_max = (batt_ibatt > batt_ibatt_max) ? batt_ibatt : batt_ibatt_max; if (batt_ibatt <= 20) { batt_status = BATTSTAT_FULL; } else { if (batt_ibatt < (batt_ibatt_max * 0.8)) { batt_status = BATTSTAT_FULL; } } } else if (batt_vbatt < 3.7) { batt_status = BATTSTAT_CHARGING_LOW; } } else { // not charging, check if battery is low if (batt_status == BATTSTAT_LOW) { // already low, see if it magically recharged itself if (batt_vbatt > 3.6) { batt_status = BATTSTAT_NONE; } } else { // just became low if (batt_vbatt < 3.5) { batt_status = BATTSTAT_LOW; } else if (batt_vbatt < 4.1) { batt_status = BATTSTAT_NONE; } } } } if (prevent_status_bar_thread) { return; } if (batt_status == BATTSTAT_LOW && batt_vbatt < 3.05) { pwr_shutdown(); } static uint32_t max_x = 0; uint32_t icon_width = 32; uint32_t icon_height = 14; // should be 12, but 14 looks better uint32_t x = 0; uint32_t y = M5Lcd.height() - icon_height; // draw required status icons from left to right if (batt_status != BATTSTAT_NONE) { if (batt_status == BATTSTAT_LOW) { sprintf(fpath, "%slowbatt%s%s", txt_prefix, is_black ? txt_black : txt_white, txt_suffix); } else if (batt_status == BATTSTAT_FULL) { sprintf(fpath, "%sfullbatt%s%s", txt_prefix, is_black ? txt_black : txt_white, txt_suffix); } else if (batt_status == BATTSTAT_CHARGING) { sprintf(fpath, "%scharging%s%s", txt_prefix, is_black ? txt_black : txt_white, txt_suffix); } else if (batt_status == BATTSTAT_CHARGING_LOW) { sprintf(fpath, "%schglow%s%s", txt_prefix, is_black ? txt_black : txt_white, txt_suffix); } sprites->draw(fpath, x, y, icon_width, 12); x += icon_width; } if (airplane_mode) { sprintf(fpath, "%sairplane%s%s", txt_prefix, is_black ? txt_black : txt_white, txt_suffix); sprites->draw(fpath, x, y, icon_width, 12); x += icon_width; } else if (fairycam.isOperating() == false && http_is_active == false && autoconnect_active == false) { if (ptpcam.isPairingWaiting()) { gui_prepStatusBarText(x, y, is_black); M5Lcd.print("PAIR"); x += icon_width; } else { sprintf(fpath, "%snocam%s%s", txt_prefix, is_black ? txt_black : txt_white, txt_suffix); sprites->draw(fpath, x, y, icon_width, 12); x += icon_width; } } #ifndef DISABLE_POWER_SAVE if (config_settings.pwr_save_secs > 5 && (now - pwr_last_tick) > ((config_settings.pwr_save_secs - 5) * 1000)) { // show a "ZZZ" status when we are close to going into automatic sleep mode gui_prepStatusBarText(x, y, is_black); M5Lcd.print("ZZZ"); x += icon_width; } #endif if (x > max_x) { // track the largest status bar we've made so we can clear it max_x = x; } if (x < max_x) { // clear the blank space of the status bar M5Lcd.fillRect(x, y, max_x - x, icon_height, is_black ? TFT_BLACK : TFT_WHITE); } } void gui_prepStatusBarText(int16_t x, int16_t y, bool is_black) { M5Lcd.setCursor(x + 5, y + 2); M5Lcd.setTextFont(0); M5Lcd.highlight(true); M5Lcd.setTextWrap(false); if (is_black == false) { M5Lcd.setTextColor(TFT_BLACK, TFT_WHITE); M5Lcd.setHighlightColor(TFT_WHITE); } else { M5Lcd.setTextColor(TFT_WHITE, TFT_BLACK); M5Lcd.setHighlightColor(TFT_BLACK); } } void pwr_lcdUndim() { if (lcd_backlight_dim) { M5.Axp.ScreenBreath(config_settings.lcd_brightness); lcd_backlight_dim = false; } } void pwr_sleepCheck() { uint32_t now = millis(); if (config_settings.lcd_dim_secs != 0) { if ((now - lcddim_last_tick) > (config_settings.lcd_dim_secs * 1000)) { // time to dim the LCD backlight if (lcd_backlight_dim == false) { M5.Axp.ScreenBreath(7); lcd_backlight_dim = true; } } else { pwr_lcdUndim(); } } else { pwr_lcdUndim(); } #ifdef DISABLE_POWER_SAVE return; #else // do not sleep if HTTP client is connected if (http_is_active) { pwr_tick(true); return; } // enforce a minimum int32_t sleep_secs = config_settings.pwr_save_secs; if (sleep_secs < 30) { sleep_secs = 30; dbg_ser.printf("pwr_save_secs too low, reset to 30 seconds\r\n"); } if ((now - pwr_last_tick) > (sleep_secs * 1000) && config_settings.pwr_save_secs > 0) // time to shutdown (and feature is enabled) { pwr_shutdown(); } #endif } void pwr_dimCheck() { uint32_t now = millis(); if (config_settings.lcd_dim_secs != 0) { if ((now - lcddim_last_tick) > (config_settings.lcd_dim_secs * 1000)) { // time to dim the LCD backlight if (lcd_backlight_dim == false) { M5.Axp.ScreenBreath(7); lcd_backlight_dim = true; } } else { pwr_lcdUndim(); } } else { pwr_lcdUndim(); } } void pwr_lightSleepEnter() { if (gui_microphoneActive) { return; } #ifdef ENABLE_LIGHT_SLEEP static esp_err_t old_e = ESP_OK; pwr_lightSleepSetup(); #ifdef ENABLE_LIGHT_SLEEP_GPIOWAKE gpio_wakeup_enable(GPIO_BTN_SIDE, GPIO_INTR_LOW_LEVEL); gpio_wakeup_enable(GPIO_BTN_BIG , GPIO_INTR_LOW_LEVEL); #endif if (NetMgr_getOpMode() == WIFIOPMODE_STA) { esp_wifi_set_ps(WIFI_PS_MIN_MODEM); } WiFi.setSleep(true); esp_err_t e = esp_light_sleep_start(); if (e != ESP_OK) { if (old_e != e) { Serial.printf("[%u] light sleep err %d\r\n", millis(), e); } } old_e = e; esp_wifi_start(); #else if (airplane_mode == false) { // attempt modem sleep if (NetMgr_getOpMode() == WIFIOPMODE_STA) { esp_wifi_set_ps(WIFI_PS_MIN_MODEM); } WiFi.setSleep(true); vTaskDelay(10 / portTICK_PERIOD_MS); } else { esp_sleep_enable_timer_wakeup(5000); esp_light_sleep_start(); } #endif } void pwr_lightSleepSetup() { static bool has_configed = false; if (has_configed) { return; } has_configed = true; const esp_pm_config_esp32_t cfg = { .max_freq_mhz = 240, .min_freq_mhz = 80, .light_sleep_enable = true, }; esp_pm_configure(&cfg); #ifdef ENABLE_LIGHT_SLEEP #ifdef ENABLE_LIGHT_SLEEP_GPIOWAKE esp_sleep_enable_gpio_wakeup(); // note: gpio_wakeup_enable is called from pwr_lightSleepEnter because the ISR changes the interrupt mode every time it fires #endif esp_sleep_enable_wifi_wakeup(); esp_sleep_enable_timer_wakeup(5000); #endif } void pwr_airplaneModeEnter() { if (airplane_mode) { return; } airplane_mode = true; esp_wifi_disconnect(); esp_wifi_stop(); } void pwr_airplaneModeExit() { #if 0 if (airplane_mode) { wifiprofile_connect(config_settings.wifi_profile); } #else if (airplane_mode) { M5Lcd.fillScreen(TFT_BLACK); draw_borderRect(3, TFT_ORANGE); while (true) { ESP.restart(); } } #endif airplane_mode = false; } // shutdown, or pretend to shutdown void pwr_shutdown() { // disconnect wifi esp_wifi_disconnect(); esp_wifi_stop(); esp_wifi_deinit(); // show the animation on screen show_poweroff(); // no USB voltage -> power off if (batt_vbus < 3) { Serial.println("Power Save Shutdown"); while (true) { M5.Axp.PowerOff(); } } // yes USB voltage -> pretend power off but keep charging the battery Serial.println("Power Save Screen Saver"); M5Lcd.fillScreen(TFT_BLACK); M5.Axp.ScreenSwitch(false); while (true) { cmdline.task(); yield(); batt_vbus = M5.Axp.GetVBusVoltage(); // no USB voltage -> power off if (batt_vbus < 3) { Serial.println("Power Save Screen Saver Shutdown"); while (true) { M5.Axp.PowerOff(); } } if (M5.Axp.GetBtnPress() != 0) { ESP.restart(); } } } // reset the power sleep timer, prevent power saving sleep for a while // parameter undim means the LCD backlight should be lit up again void pwr_tick(bool undim) { pwr_last_tick = millis(); if (undim) { lcddim_last_tick = pwr_last_tick; pwr_lcdUndim(); } } // show the shutdown animation and then perform the actual shutdown void show_poweroff() { uint32_t t = millis(); prevent_status_bar_thread = true; // just in case this function is called from a non-GUI thread, prevent the status bar from being drawn over the animation cpufreq_boost(); dbg_ser.println("show poweroff"); // prep M5Lcd.setRotation(0); M5Lcd.fillScreen(TFT_BLACK); bool batt_good = batt_vbatt > 3.05 || batt_vbatt <= 0 || batt_status == BATTSTAT_CHARGING || batt_status == BATTSTAT_CHARGING_LOW; if (batt_good) { M5Lcd.drawPngFile(SPIFFS, "/sleep.png", 0, 0); delay(500); // animation is random if ((rand() % 2) == 0) { // fade by horizontal lines int y, dly = 10, m = 50; for (y = m + 0; y < M5Lcd.height() - m; y += 4) { M5Lcd.drawFastHLine(0, y, M5Lcd.width(), TFT_BLACK); delay(dly); } for (y = m + 2; y < M5Lcd.height() - m; y += 4) { M5Lcd.drawFastHLine(0, y, M5Lcd.width(), TFT_BLACK); delay(dly); } for (y = m + 1; y < M5Lcd.height() - m; y += 4) { M5Lcd.drawFastHLine(0, y, M5Lcd.width(), TFT_BLACK); delay(dly); } for (y = m + 3; y < M5Lcd.height() - m; y += 4) { M5Lcd.drawFastHLine(0, y, M5Lcd.width(), TFT_BLACK); delay(dly); } } else { // fade by snow, with dimming backlight int b = config_settings.lcd_brightness - 1; while (true) { uint32_t d = millis() - t; if (d > 800) { t = millis(); M5.Axp.ScreenBreath(b); b -= 1; if (b < 5) { break; } } int x = rand() % M5Lcd.width(); int y = 50 + (rand() % (M5Lcd.height() - 100)); M5Lcd.fillRect(x, y, 1, 1, TFT_BLACK); } } } else // battery is dead { M5Lcd.drawPngFile(SPIFFS, "/dead_batt.png", 0, 0); delay(500); int b = config_settings.lcd_brightness - 1; while (true) { uint32_t d = millis() - t; if (d > 800) { t = millis(); M5.Axp.ScreenBreath(b); b -= 1; if (b < 5) { break; } } int x = rand() % M5Lcd.width(); int y = rand() % M5Lcd.height(); M5Lcd.fillRect(x, y, 1, 1, TFT_BLACK); } } M5Lcd.fillScreen(TFT_BLACK); M5.Axp.ScreenSwitch(false); } int pmic_fnum = 0; void pmic_startCoulombCount(void) { int fnum; char fname[32]; for (fnum = 1; fnum < 999; ) { sprintf(fname, "/pwrlog_%u.txt", fnum); if (SPIFFS.exists(fname) == false) { pmic_fnum = fnum; break; } else { fnum++; continue; } } #ifdef PMIC_LOG_DISABLE_RECHARGING M5.Axp.Write1Byte(0x33, 0); #endif M5.Axp.EnableCoulombcounter(); M5.Axp.ClearCoulombcounter(); if (pmic_fnum > 0) { dbg_ser.printf("coulomb cnt started, file %s\r\n", fname); } else { dbg_ser.println("unable to start pmic log"); } } void pmic_log(void) { static uint32_t last_time = 0; uint32_t now = millis(); if (pmic_fnum <= 0) { return; } if ((now - last_time) < 5000) { return; } last_time = now; static float prev_c = 0; float c = M5.Axp.GetCoulombData(); float vbat = M5.Axp.GetBatVoltage(); float ibat = M5.Axp.GetBatCurrent(); char logstr[256]; char fname[32]; sprintf(fname, "/pwrlog_%u.txt", pmic_fnum); sprintf(logstr, "%8u, %0.3f, %0.3f, %0.3f, %0.3f, \r\n", millis(), vbat, ibat, c, (c - prev_c) / 5); prev_c = c; File f = SPIFFS.open(fname, FILE_APPEND); f.print(logstr); f.close(); dbg_ser.printf("coulomb cnt: "); dbg_ser.printf(logstr); } ================================================ FILE: arduino_workspace/AlphaFairy/QuickRemote.ino ================================================ #include "AlphaFairy.h" #define QIKRMT_ROLL_SPAN 60 #define QIKRMT_HYSTER 3 #define QIKRMT_FPULL_Y 198 uint8_t qikrmt_imuState = QIKRMTIMU_LOCKED; uint8_t qikrmt_col = 0; uint8_t qikrmt_row = 0; int8_t qikrmt_col_prev = -1; int8_t qikrmt_row_prev = -1; int8_t qikrmt_imustate_prev = -1; int qikrmt_roll_center = 0; void qikrmt_task(bool freeze_row) { int ang; uint32_t now = millis(); static uint32_t btn_down_time = 0; // lock or unlock the IMU selection, via side button if (btnSide_hasPressed()) { btn_down_time = millis(); btnSide_clrPressed(); if (qikrmt_row != QIKRMT_ROW_INFOSCR) { if (qikrmt_imuState == QIKRMTIMU_LOCKED) { qikrmt_imuState = QIKRMTIMU_FREE; } else { qikrmt_imuState = QIKRMTIMU_LOCKED; } } else { if (qikrmt_imuState == QIKRMTIMU_LOCKED) { // quickly return from info screen, immediately allow user choice qikrmt_row = 0; qikrmt_imuState = QIKRMTIMU_FREE; } else { qikrmt_imuState = QIKRMTIMU_LOCKED; } } } // holding down the side button means the unlock is only temporary else if (btnSide_isPressed() && btn_down_time > 0 && (qikrmt_imuState == QIKRMTIMU_FREE_TEMP || qikrmt_imuState == QIKRMTIMU_FREE)) { if ((now - btn_down_time) > 1000) { qikrmt_imuState = QIKRMTIMU_FREE_TEMP; } } else if (btnSide_isPressed() == false) { // end the temporary unlock if needed if (qikrmt_imuState == QIKRMTIMU_FREE_TEMP) { qikrmt_imuState = QIKRMTIMU_LOCKED; } } if (imu.getSpin() != 0) { // use spin to go into info screen if (qikrmt_row != QIKRMT_ROW_INFOSCR) { qikrmt_row = QIKRMT_ROW_INFOSCR; tallylite_enable = false; qikrmt_imuState = QIKRMTIMU_LOCKED; } else if (qikrmt_imuState == QIKRMTIMU_LOCKED && imu.getSpin() < 0) { // use spin to get out of info screen only with counterclockwise rotation qikrmt_row = 0; qikrmt_imuState = QIKRMTIMU_FREE; } else if (qikrmt_imuState == QIKRMTIMU_LOCKED && imu.getSpin() > 0) { // clockwise spin enteres edit mode infoscr_startEdit(); qikrmt_imuState = QIKRMTIMU_FREE; qikrmt_row = 0; } redraw_flag = true; imu.resetSpin(); } if (qikrmt_imuState == QIKRMTIMU_FREE || qikrmt_imuState == QIKRMTIMU_FREE_TEMP) { if (freeze_row == false) { ang = imu.rolli; ang = ang > 90 ? 90 : (ang < -90 ? -90 : ang); // limit if (ang < -45) { qikrmt_row = QIKRMT_ROW_INFOSCR; // show info tallylite_enable = false; } else if ((qikrmt_row == QIKRMT_ROW_INFOSCR && ang > -40) || (ang < qikrmt_roll_center - (QIKRMT_ROLL_SPAN / 2))) { // exceeded boundary, shift the center point qikrmt_roll_center = ang + (QIKRMT_ROLL_SPAN / 2); qikrmt_row = 0; } else if (ang > qikrmt_roll_center + (QIKRMT_ROLL_SPAN / 2)) { // exceeded boundary, shift the center point qikrmt_roll_center = ang - (QIKRMT_ROLL_SPAN / 2); qikrmt_row = 2; } // pick a row based on the angle, centered over a particular angle representing the center else if (qikrmt_row == 0 && ang >= qikrmt_roll_center - (QIKRMT_ROLL_SPAN / (3 * 2)) + QIKRMT_HYSTER) { qikrmt_row = 1; } else if (qikrmt_row == 1 && ang >= qikrmt_roll_center + (QIKRMT_ROLL_SPAN / (3 * 2)) + QIKRMT_HYSTER) { qikrmt_row = 2; } else if (qikrmt_row == 1 && ang <= qikrmt_roll_center - (QIKRMT_ROLL_SPAN / (3 * 2)) - QIKRMT_HYSTER) { qikrmt_row = 0; } else if (qikrmt_row == 2 && ang <= qikrmt_roll_center + (QIKRMT_ROLL_SPAN / (3 * 2)) - QIKRMT_HYSTER) { qikrmt_row = 1; } } ang = imu.pitchi; ang = ang > 90 ? 90 : (ang < -90 ? -90 : ang); // limit // pick the column based on angle, since this is the pitch angle, always use 0 as center if (qikrmt_col == 0 && ang >= QIKRMT_HYSTER) { qikrmt_col = 1; } else if (qikrmt_col == 1 && ang <= -QIKRMT_HYSTER) { qikrmt_col = 0; } } // draw the box if needed if (qikrmt_col != qikrmt_col_prev || qikrmt_row != qikrmt_row_prev || qikrmt_imuState != qikrmt_imustate_prev || redraw_flag) { cpufreq_boost(); pwr_tick(true); // movement means don't turn off if (qikrmt_row == QIKRMT_ROW_INFOSCR) { if (qikrmt_row_prev != qikrmt_row || redraw_flag) { // just entered, or needs a clearing infoscr_setup(infoscr_mode, true); } infoscr_print(); tallylite_enable = false; // disable talley light because infoscr implements its own talley light } else { // if previous was info-view, then redraw the entire background if (qikrmt_row_prev == QIKRMT_ROW_INFOSCR) { M5Lcd.setRotation(0); M5Lcd.drawPngFile(SPIFFS, "/qikrmt_active.png", 0, 0); tallylite_enable = true; } // first draw a white box over the previous coordinate to remove the box if (qikrmt_row_prev >= 0 && qikrmt_col_prev >= 0) { qikrmt_drawBox(qikrmt_row_prev, qikrmt_col_prev, TFT_WHITE); } // draw the new box qikrmt_drawBox(qikrmt_row, qikrmt_col, qikrmt_imuState == QIKRMTIMU_LOCKED ? TFT_BLACK : TFT_ORANGE); // blank out the arrows for focus pull when not in focus mode if (qikrmt_row != 2) { M5Lcd.fillRect(0, QIKRMT_FPULL_Y, M5Lcd.width(), 26, TFT_WHITE); } } } else if (qikrmt_row == QIKRMT_ROW_INFOSCR) { infoscr_print(); } // when in focus pull mode, indicate step size of focus change if (qikrmt_row == 2) { gui_drawFocusPullState(QIKRMT_FPULL_Y); } qikrmt_col_prev = qikrmt_col; qikrmt_row_prev = qikrmt_row; qikrmt_imustate_prev = qikrmt_imuState; } void qikrmt_drawBox(uint8_t row, uint8_t col, uint16_t colour) { uint16_t linewidth = M5Lcd.width(); uint16_t xstart = 1, xwidth = linewidth / 2; if (col == 1 && row != 2) { xstart = (linewidth / 2) + 1; } uint16_t boxheight = 50; uint16_t ystart = 44 + (boxheight * row); M5Lcd.drawRect(xstart , ystart , (row == 2 ? linewidth : (linewidth / 2)) - 2, boxheight , colour); M5Lcd.drawRect(xstart + 1, ystart + 1, (row == 2 ? linewidth : (linewidth / 2)) - 4, boxheight - 2, colour); // thicker } #include "FairyMenu.h" class AppQuickRemote : public FairyMenuItem { public: AppQuickRemote() : FairyMenuItem("/qikrmt_faded.png") // main image is the faded version, the loop will draw the active version when required { _can_quickEnter = true; _quitToNext = true; reset(); }; virtual void reset(void) { qikrmt_imuState = QIKRMTIMU_LOCKED; qikrmt_col = 0; qikrmt_row = 0; qikrmt_col_prev = -1; qikrmt_row_prev = -1; qikrmt_imustate_prev = -1; qikrmt_roll_center = 0; }; virtual bool on_execute(void) { reset(); M5Lcd.drawPngFile(SPIFFS, "/qikrmt_active.png", 0, 0); redraw_flag = false; app_waitAllRelease(); while (true) { app_poll(); if (redraw_flag) { if (qikrmt_row != QIKRMT_ROW_INFOSCR) { M5Lcd.drawPngFile(SPIFFS, "/qikrmt_active.png", 0, 0); } } qikrmt_task(false); // draw the table, with the indicator position set by IMU polling if (qikrmt_row != QIKRMT_ROW_INFOSCR) { gui_drawStatusBar(false); } pwr_sleepCheck(); redraw_flag = false; if (btnBig_hasPressed()) { btnBig_clrPressed(); bool can_do = true; if (qikrmt_row == 0 && qikrmt_col == 0) { // remote shutter remote_shutter(0, false); } else if (qikrmt_row == 0 && qikrmt_col == 1) { // record movie record_movie(); } else if (qikrmt_row == 1) // zoom { do { cpufreq_boost(); app_poll(); int8_t dir = qikrmt_col == 0 ? -1 : +1; // pick direction of zoom based on which table column is selected if (ptpcam.isOperating()) { if (dir != 0) { ptpcam.cmd_ZoomStep((dir < 0) ? -1 : ((dir > 0) ? +1 : 0)); ptpcam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); } } if (httpcam.isOperating()) { httpcam.cmd_ZoomStart(dir); httpcam.wait_while_busy(config_settings.focus_pause_time_ms, DEFAULT_BUSY_TIMEOUT); } if (fairycam.isOperating() == false && config_settings.infrared_enabled != 0) { SonyCamIr_SendRawX(IR_ADDR_SONYCAM, dir < 0 ? IR_CMD_ZOOM_WIDE2 : IR_CMD_ZOOM_TELE2, 3); } } while (btnBig_isPressed()); // button is released, stop the zooming if (ptpcam.isOperating()) { ptpcam.cmd_ZoomStep(0); } if (httpcam.isOperating()) { httpcam.cmd_ZoomStop(); } } else if (qikrmt_row == 2) // focus { if (must_be_ptp() == false) { can_do = false; } if (can_do) { focus_pull(true, QIKRMT_FPULL_Y); } } else if (qikrmt_row == QIKRMT_ROW_INFOSCR) { bool toCycle = true; qikrmt_imuState = QIKRMTIMU_LOCKED; if (fairycam.isOperating()) { while (btnBig_isPressed()) { app_poll(); if (btnSide_hasPressed()) { toCycle = false; btnSide_clrPressed(); infoscr_startEdit(); qikrmt_imuState = QIKRMTIMU_FREE; qikrmt_row = 0; redraw_flag = true; imu.resetSpin(); } } } if (toCycle) { // cycle through display mode and save the user preference infoscr_mode++; infoscr_mode %= INFOSCR_END; config_settings.infoscr_mode = infoscr_mode; settings_saveLater(); redraw_flag = true; } } } if (btnPwr_hasPressed()) { // this will quit out of the quick remote mode btnPwr_clrPressed(); break; } settings_saveTask(false); // saves settings if change occurred and enough time has passed } // end of while loop if (_quitOnExit == false && _quitToNext == false) { draw_mainImage(); // draws the faded image } settings_saveTask(true); // save if needed qikrmt_imuState = QIKRMTIMU_LOCKED; // restore default return false; }; }; extern FairySubmenu menu_remote; void setup_qikrmt() { static AppQuickRemote app; menu_remote.install(&app); } ================================================ FILE: arduino_workspace/AlphaFairy/RemoteShutter.ino ================================================ #include "AlphaFairy.h" extern bool airplane_mode; void remote_shutter(uint8_t time_delay, bool use_gui) { uint32_t tstart, now, tdiff; bool quit = false; tstart = millis(); cpufreq_boost(); if (use_gui && time_delay <= 2) { draw_borderRect(5, TFT_RED); } if (fairycam.isOperating() == false || airplane_mode != false) { bool can_still_shoot = false; // no camera connected via wifi so use infrared or GPIO if possible if (config_settings.infrared_enabled && time_delay <= 2) { if (time_delay == 2) { dbg_ser.println("IR - shoot 2s"); SonyCamIr_Shoot2S(); } else { dbg_ser.println("IR - shoot"); SonyCamIr_Shoot(); } can_still_shoot = true; } if (config_settings.pin_shutter != PINCFG_NONE) { dbg_ser.print("GPIO rmt "); if (time_delay > 0) { dbg_ser.print("wait "); tstart = millis(); now = tstart; quit = false; // wait the countdown time while (((tdiff = ((now = millis()) - tstart)) < (time_delay * 1000))) { if (app_poll()) { if (use_gui && time_delay > 2) { gui_drawVerticalDots(0, 40, -1, 5, time_delay, tdiff / 1000, false, TFT_GREEN, TFT_RED); } } if (time_delay > 2) { if (btnSide_hasPressed()) { btnSide_clrPressed(); quit = true; break; } if (btnPwr_hasPressed()) { btnPwr_clrPressed(); quit = true; break; } } } } if (quit == false) { dbg_ser.println("shoot"); //cam_shootQuickGpio(); cam_shootOpen(); tstart = millis(); while (((tdiff = ((now = millis()) - tstart))) < config_settings.shutter_press_time_ms || btnBig_isPressed()) { app_poll(); } cam_shootClose(); } can_still_shoot = true; } if (can_still_shoot == false) { // show user that the camera isn't connected dbg_ser.println("remote_shutter but no camera connected"); app_waitAllReleaseConnecting(); } return; } bool starting_mf = fairycam.is_manuallyfocused() == SHCAM_FOCUSMODE_MF; bool starting_mf_ignore = false; if (httpcam.isOperating() && httpcam.is_manuallyfocused() == SHCAM_FOCUSMODE_NONE) { starting_mf_ignore = true; } // start focusing at the beginning of the countdown if (starting_mf == false && starting_mf_ignore == false) { dbg_ser.printf("rmtshutter AF\r\n"); fairycam.cmd_AutoFocus(true); } now = tstart; quit = false; if (time_delay > 0) { dbg_ser.printf("rmtshutter wait delay %u... ", time_delay); // wait the countdown time while (((tdiff = ((now = millis()) - tstart)) < (time_delay * 1000)) && fairycam.isOperating()) { if (app_poll()) { cpufreq_boost(); if (use_gui && time_delay > 2) { gui_drawVerticalDots(0, 40, -1, 5, time_delay, tdiff / 1000, false, TFT_GREEN, TFT_RED); } } if (btnSide_hasPressed()) { btnSide_clrPressed(); quit = true; break; } if (btnPwr_hasPressed()) { btnPwr_clrPressed(); quit = true; break; } } // if user cancelled if (quit) { dbg_ser.printf(" user cancelled\r\n"); // end autofocus if (starting_mf == false && starting_mf_ignore == false && fairycam.isOperating()) { fairycam.cmd_AutoFocus(false); } app_waitAllRelease(); return; } else { dbg_ser.printf(" done\r\n"); } } tstart = millis(); app_poll(); if ((ptpcam.isOperating() && ptpcam.is_focused) || starting_mf) { // if the camera is focused or MF, then the shutter should immediately take the picture ptpcam.cmd_Shoot(config_settings.shutter_press_time_ms); dbg_ser.printf("rmtshutter shoot\r\n"); } else if ((httpcam.isOperating() && httpcam.is_focused) || starting_mf) { httpcam.cmd_Shoot(); dbg_ser.printf("rmtshutter shoot\r\n"); } else if (btnBig_isPressed() || time_delay == 0) { // if the camera is not focused, we try to take the shot anyways if the user is holding the button if (ptpcam.isOperating()) { ptpcam.cmd_Shutter(true); dbg_ser.printf("rmtshutter shutter open\r\n"); while ((btnBig_isPressed() || (starting_mf == false && ptpcam.is_focused == false && ((now = millis()) - tstart) < 2000)) && ptpcam.isOperating()) { app_poll(); } if (ptpcam.is_focused) { dbg_ser.printf("rmtshutter got focus\r\n"); ptpcam.wait_while_busy(config_settings.shutter_press_time_ms, DEFAULT_BUSY_TIMEOUT); } ptpcam.cmd_Shutter(false); dbg_ser.printf("rmtshutter shutter close\r\n"); } else if (httpcam.isOperating()) { httpcam.cmd_Shoot(); } } else if (fairycam.isOperating()) { fairycam.cmd_Shoot(config_settings.shutter_press_time_ms); dbg_ser.printf("rmtshutter shoot\r\n"); } if (starting_mf == false && starting_mf_ignore == false) { fairycam.cmd_AutoFocus(false); dbg_ser.printf("rmtshutter disable AF\r\n"); } app_waitAllRelease(); } void record_movie() { if (fairycam.isOperating() == false) { if (config_settings.infrared_enabled) { dbg_ser.println("IR - movie"); SonyCamIr_Movie(); return; } else { dbg_ser.println("record_movie but no camera connected"); app_waitAllReleaseConnecting(); return; } } fairycam.cmd_MovieRecordToggle(); app_waitAllRelease(); } #include "FairyMenu.h" class AppRemoteShutter : public FairyMenuItem { public: AppRemoteShutter() : FairyMenuItem("/remoteshutter_d.png") { }; uint8_t _delay = 2; void draw_delay(void) { gui_startMenuPrint(); M5Lcd.setCursor(80, 188); M5Lcd.printf("%us ", _delay); } virtual void on_redraw(void) { draw_mainImage(); draw_delay(); }; virtual void on_spin(int8_t x) { if (x > 0) { if (_delay == 2) { _delay = 5; } else if (_delay == 5) { _delay = 10; } else { _delay = 5; } draw_delay(); } else if (x < 0) { if (_delay == 5) { _delay = 2; } else if (_delay == 10) { _delay = 5; } else { _delay = 2; } draw_delay(); } }; virtual void on_eachFrame(void) { gui_drawSpinStatus(5, TFT_WHITE); FairyMenuItem::on_eachFrame(); }; virtual bool on_execute(void) { cpufreq_boost(); remote_shutter(_delay, true); set_redraw(); return false; }; }; extern FairySubmenu menu_remote; void setup_remoteshutter() { static AppRemoteShutter app; menu_remote.install(&app); } ================================================ FILE: arduino_workspace/AlphaFairy/Settings.ino ================================================ #include "AlphaFairy.h" #include extern uint32_t crc32_le(uint32_t crc, uint8_t const *buf, uint32_t len); extern uint32_t fletcher32(const uint16_t *data, size_t len); //#define CHECKSUM(_buf, _len) crc32_le(0, (uint8_t*)(_buf), (size_t)(_len)) #define CHECKSUM(_buf, _len) fletcher32((const uint16_t*)(_buf), (size_t)(_len)) configsettings_t config_settings; void settings_default() { config_settings.len = sizeof(configsettings_t); // set the default setting values here config_settings.protocol = ALLOWEDPROTOCOL_ALL; config_settings.wifi_profile = 0; config_settings.wifi_pwr = 0; config_settings.ssdp_timeout = 10; config_settings.focus_pause_time_ms = 100; config_settings.shutter_press_time_ms = 200; config_settings.manual_focus_return = 1; config_settings.nine_point_dist = 150; config_settings.shutter_speed_step_cnt = 3; config_settings.shutter_step_time_ms = 500; config_settings.infrared_enabled = 1; config_settings.lcd_brightness = 10; config_settings.pwr_save_secs = 60; config_settings.lcd_dim_secs = 5; config_settings.intv_bulb = 0; config_settings.intv_intval = 10; config_settings.intv_delay = 2; config_settings.intv_limit = 999; config_settings.astro_bulb = 30; config_settings.astro_pause = 1; //config_settings.astro_delay = 2; //config_settings.astro_limit = 999; config_settings.mictrig_level = 75; config_settings.mictrig_delay = 0; config_settings.trigger_armtime = 3; config_settings.trigger_delay = 0; config_settings.trigger_retrigger = -1; config_settings.trigger_vidtime = 0; config_settings.trigger_siglevel = 25; config_settings.trigger_imuaccel = 300; config_settings.trigger_imurot = 400; config_settings.fenc_multi = 1; config_settings.fenc_large = 10; config_settings.tallylite = TALLYLITE_SCREEN; config_settings.infoscr_mode = INFOSCR_LANDSCAPE_BLACK; #ifdef ENABLE_BUILD_LEPTON config_settings.pin_shutter = PINCFG_NONE; config_settings.pin_exinput = PINCFG_NONE; #else config_settings.pin_shutter = PINCFG_G26; config_settings.pin_exinput = PINCFG_G36; #endif config_settings.trigger_edge = 0; #ifdef ENABLE_BUILD_LEPTON config_settings.lepton_dispmode = DISP_MODE_RGB; config_settings.lepton_measmode = MES_AUTO_MAX; config_settings.lepton_trigmode = THERMTRIG_OFF; config_settings.lepton_trigtemp = 35; config_settings.lepton_trigzone = 160; #endif } bool settings_load() { EEPROM.begin(sizeof(configsettings_t)); //dbg_ser.printf("settings struct size = %u\r\n", sizeof(configsettings_t)); EEPROM.readBytes(0, (void*)(&config_settings), sizeof(configsettings_t)); uint32_t crc_calced = CHECKSUM(&config_settings, sizeof(configsettings_t) - sizeof(uint32_t)); // if the data is invalid, report so if (config_settings.magic != CONFIGSETTINGS_MAGIC || crc_calced != config_settings.crc32) { Serial.printf("settings not valid, magic 0x%08X, CRC 0x%08X ?= 0x%08X\r\n", config_settings.magic, crc_calced, config_settings.crc32); return false; } return true; } void settings_init() { if (settings_load() == false) { // if the data is invalid, load default values settings_default(); } } void settings_save() { // save the data with a valid checksum so it can be loaded next time config_settings.magic = CONFIGSETTINGS_MAGIC; config_settings.len = sizeof(configsettings_t); uint32_t crc_calced = CHECKSUM(&config_settings, sizeof(configsettings_t) - sizeof(uint32_t)); config_settings.crc32 = crc_calced; EEPROM.writeBytes(0, (const void*)(&config_settings), sizeof(configsettings_t)); EEPROM.commit(); } uint32_t settings_saveLaterTime = 0; void settings_saveLater() { // delay the flash writing to preserve flash life settings_saveLaterTime = millis(); } void settings_saveTask(bool force) { if (settings_saveLaterTime != 0 && ((millis() - settings_saveLaterTime) >= 5000 || force)) { settings_save(); settings_saveLaterTime = 0; } } uint32_t fletcher32(const uint16_t *data, size_t len) { // https://en.wikipedia.org/wiki/Fletcher%27s_checksum uint32_t c0, c1; len = (len + 1) & ~1; /* Round up len to words */ /* We similarly solve for n > 0 and n * (n+1) / 2 * (2^16-1) < (2^32-1) here. */ /* On modern computers, using a 64-bit c0/c1 could allow a group size of 23726746. */ for (c0 = c1 = 0; len > 0; ) { size_t blocklen = len; if (blocklen > 360*2) { blocklen = 360*2; } len -= blocklen; do { c0 = c0 + *data++; c1 = c1 + c0; } while ((blocklen -= 2)); c0 = c0 % 65535; c1 = c1 % 65535; } return (c1 << 16 | c0); } ================================================ FILE: arduino_workspace/AlphaFairy/ShutterStep.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" extern int32_t infoscr_reqShutter; class AppShutterStep : public FairyMenuItem { public: AppShutterStep() : FairyMenuItem("/shutter_step.png") { }; virtual void on_eachFrame(void) { gui_drawSpinStatus(5, TFT_WHITE); FairyMenuItem::on_eachFrame(); }; virtual void on_navTo(void) { _step_cnt = config_settings.shutter_speed_step_cnt; FairyMenuItem::on_navTo(); }; virtual void on_navOut(void) { save_if_needed(); FairyMenuItem::on_navOut(); }; virtual void on_spin(int8_t x) { int prev = _step_cnt; _step_cnt = _step_cnt <= 0 ? 1 : _step_cnt; // enforce a minimum if (x > 0) { if (_step_cnt <= 9) { _step_cnt++; } } else if (x < 0) { if (_step_cnt > 1) { _step_cnt--; } } if (prev != _step_cnt) { draw_text(); } }; virtual void on_redraw(void) { FairyMenuItem::on_redraw(); draw_text(); }; virtual bool on_execute(void) { if (must_be_connected() == false) { return false; } uint32_t expo_mode = fairycam.get_exposureMode(); if (expo_mode != SONYALPHA_EXPOMODE_M && expo_mode != SONYALPHA_EXPOMODE_S) { M5Lcd.drawPngFile(SPIFFS, "/tvstep_unable.png", 0, 0); app_waitAllRelease(); set_redraw(); return false; } save_if_needed(); bool toggle_button = imu.rolli < -60; // hold the device upside down uint32_t t, now; bool starting_mf = fairycam.is_manuallyfocused(); if (starting_mf == false && fairycam.isOperating()) { // use manual focus mode to avoid the complexity of waiting for autofocus // assume the user has obtained focus already fairycam.cmd_ManualFocusMode(true, false); } _step_cnt = _step_cnt <= 0 ? 1 : _step_cnt; // enforce a minimum uint32_t cur_ss; // get the current shutter speed if (ptpcam.isOperating()) { cur_ss = ptpcam.get_property(SONYALPHA_PROPCODE_ShutterSpeed); } else if (httpcam.isOperating()) { cur_ss = httpcam.get_shutterspd_32(); } infoscr_reqShutter = cur_ss; uint32_t shutter_ms = shutter_to_millis(cur_ss); int dot_idx = 0; do { app_poll(); if (fairycam.isOperating() == false) { break; } fairycam.cmd_Shutter(true); t = millis(); now = t; while (((now = millis()) - t) < shutter_ms && (now - t) < config_settings.shutter_press_time_ms) { ptpcam.poll(); httpcam.poll(); cpufreq_boost(); } fairycam.cmd_Shutter(false); // wait the amount of time that the shutter speed says we need to pause for while (((now = millis()) - t) < shutter_ms && fairycam.isOperating() && btnBig_isPressed()) { ptpcam.poll(); httpcam.poll(); cpufreq_boost(); } gui_drawVerticalDots(0, 40, -1, 5, 5, dot_idx, false, TFT_GREEN, TFT_RED); dot_idx++; fairycam.wait_while_saving(config_settings.shutter_step_time_ms, 500, DEFAULT_SAVE_TIMEOUT); infoscr_changeVal(EDITITEM_SHUTTER, -_step_cnt); // calculate the next shutter speed if (ptpcam.isOperating()) { cur_ss = ptpcam.get_property(SONYALPHA_PROPCODE_ShutterSpeed); } else if (httpcam.isOperating()) { cur_ss = httpcam.get_shutterspd_32(); } shutter_ms = shutter_to_millis(cur_ss); dbg_ser.printf("shutter_step next %u\r\n", shutter_ms); if (btnBig_isPressed() == false && toggle_button == false) { // check button release here so at least one photo is captured break; } else if (toggle_button) { // in toggle mode, the button might actually be released already, but we still run until the next button press if (btnAny_hasPressed()) { btnAny_clrPressed(); break; } } } while (fairycam.isOperating()); if (starting_mf == false && fairycam.isOperating()) { // restore AF state fairycam.wait_while_busy(config_settings.shutter_step_time_ms, DEFAULT_BUSY_TIMEOUT); fairycam.cmd_ManualFocusMode(false, false); } set_redraw(); return false; }; protected: int8_t _step_cnt; void draw_text(void) { gui_startMenuPrint(); M5Lcd.setTextFont(4); M5Lcd.setCursor(55, 200); M5Lcd.printf("%u ", _step_cnt); }; void save_if_needed(void) { if (_step_cnt != config_settings.shutter_speed_step_cnt) { config_settings.shutter_speed_step_cnt = _step_cnt; settings_save(); } }; }; extern FairySubmenu menu_focus; void setup_shutterstep() { static AppShutterStep app; menu_focus.install(&app); } ================================================ FILE: arduino_workspace/AlphaFairy/SoundTrigger.ino ================================================ #include "AlphaFairy.h" #include #include /* NOTE: the newer I2S code in ESP-IDF has not made it into the Arduino ESP32 core yet */ #define PIN_I2S_CLK 0 #define PIN_I2S_DATA 34 #define MICTRIG_READ_LEN 256 #define MICTRIG_GAIN 2 #define MICTRIG_I2S_SAMPLERATE 36000 static bool mictrig_hasInit = false; uint8_t mictrig_buffer8[MICTRIG_READ_LEN * 2] = {0}; volatile int16_t* mictrig_buffer16; volatile int32_t mictrig_lastMax = 0; volatile int32_t mictrig_filteredMax = 0; volatile int32_t mictrig_decay = 0; volatile bool mictrig_hasTriggered = false; bool gui_microphoneActive = false; //#define MICTRIG_STATS #ifdef MICTRIG_STATS volatile uint32_t mictrig_stats_sampleCnt = 0; volatile uint32_t mictrig_stats_startTime = 0; #endif #ifdef MICTRIG_NEW_I2S_LIB i2s_chan_handle_t mictrig_i2shandle; static IRAM_ATTR bool mictrig_rx_cb(i2s_chan_handle_t handle, i2s_event_data_t *event, void *user_ctx); #endif void mictrig_init() { #ifdef MICTRIG_NEW_I2S_LIB i2s_chan_config_t chan_cfg = I2S_CHANNEL_DEFAULT_CONFIG(I2S_NUM_AUTO, I2S_ROLE_MASTER); i2s_new_channel(&chan_cfg, NULL, &mictrig_i2shandle); i2s_std_config_t std_cfg = { .clk_cfg = I2S_PDM_RX_CLK_DEFAULT_CONFIG(MICTRIG_I2S_SAMPLERATE), .slot_cfg = I2S_PDM_RX_SLOT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_MONO), .gpio_cfg = { .mclk = I2S_GPIO_UNUSED, .bclk = I2S_GPIO_UNUSED, .ws = GPIO_NUM_0, .dout = I2S_GPIO_UNUSED, .din = GPIO_NUM_34, .invert_flags = { .mclk_inv = false, .bclk_inv = false, .ws_inv = false, }, }, }; i2s_channel_init_pdm_rx_mode(mictrig_i2shandle, &pdm_rx_cfg); i2s_event_callbacks_t cbs = { .on_recv = mictrig_rx_cb, .on_recv_q_ovf = NULL, .on_sent = NULL, .on_send_q_ovf = NULL, }; i2s_channel_register_event_callback(mictrig_i2shandle, &cbs, NULL); #else // code adapted from https://github.com/m5stack/M5StickC/blob/master/examples/Basics/Micophone/Micophone.ino i2s_config_t i2s_config = { .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX | I2S_MODE_PDM), // Set the I2S operating mode .sample_rate = MICTRIG_I2S_SAMPLERATE, // Set the I2S sampling rate .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT, // Fixed 12-bit stereo MSB .channel_format = I2S_CHANNEL_FMT_ALL_RIGHT, // Set the channel format #if ESP_IDF_VERSION > ESP_IDF_VERSION_VAL(4, 1, 0) .communication_format = I2S_COMM_FORMAT_STAND_I2S, // Set the format of the communication #else .communication_format = I2S_COMM_FORMAT_I2S, #endif .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, // Set the interrupt flag .dma_buf_count = 2, // DMA buffer count .dma_buf_len = 128, // DMA buffer length }; i2s_pin_config_t pin_config; #if (ESP_IDF_VERSION > ESP_IDF_VERSION_VAL(4, 3, 0)) pin_config.mck_io_num = I2S_PIN_NO_CHANGE; #endif pin_config.bck_io_num = I2S_PIN_NO_CHANGE; pin_config.ws_io_num = PIN_I2S_CLK; pin_config.data_out_num = I2S_PIN_NO_CHANGE; pin_config.data_in_num = PIN_I2S_DATA; i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL); i2s_set_pin(I2S_NUM_0, &pin_config); i2s_set_clk(I2S_NUM_0, MICTRIG_I2S_SAMPLERATE, I2S_BITS_PER_SAMPLE_16BIT, I2S_CHANNEL_MONO); mictrig_buffer16 = (int16_t*)mictrig_buffer8; #endif } #ifdef MICTRIG_NEW_I2S_LIB static IRAM_ATTR bool mictrig_rx_cb(i2s_chan_handle_t handle, i2s_event_data_t *event, void *user_ctx) { mictrig_buffer16 = (int16_t*)(event->data); uint32_t sz = (uint32_t)(event->size); #ifdef MICTRIG_STATS if (sz > 0) mictrig_stats_task(sz, millis()); #endif uint32_t i; int32_t m = 0; for (i = 0; i < sz / 2; i++) { int16_t s = mictrig_buffer16[i]; s = (s < 0) ? -s : s; if (s > m) { m = s; } } mictrig_decayTask(); m *= MICTRIG_GAIN; // apply gain m = m > 0x7FFF ? 0x7FFF : m; // limit after gain mictrig_lastMax = m; // remember the latest peak if (m > mictrig_filteredMax) { mictrig_decay = 16; // slow down the decay mictrig_filteredMax = m; // set the new displayed peak } // check if triggered int32_t thresh = config_settings.mictrig_level * 327; // re-map value 0-100 to actual level if (m > thresh) { mictrig_hasTriggered = true; } return false; } #endif void mictrig_unpause() { if (mictrig_hasInit == false) { mictrig_init(); mictrig_hasInit = true; } #ifdef MICTRIG_NEW_I2S_LIB i2s_channel_enable(mictrig_i2shandle); #else i2s_start(I2S_NUM_0); #endif gui_microphoneActive = true; } void mictrig_pause() { if (mictrig_hasInit == false) { return; } #ifdef MICTRIG_NEW_I2S_LIB i2s_channel_disable(mictrig_i2shandle); #else i2s_stop(I2S_NUM_0); #endif gui_microphoneActive = false; } void mictrig_poll() { #ifndef MICTRIG_NEW_I2S_LIB cpufreq_boost(); size_t bytesread; uint32_t tstart = millis(); for (uint8_t iter = 0; iter < 100 && (millis() - tstart) < 100; iter++) { i2s_read(I2S_NUM_0, (uint8_t *)mictrig_buffer8, MICTRIG_READ_LEN * 2, &bytesread, 0); uint32_t i; int32_t m = 0; for (i = 0; i < bytesread / 2; i++) { int16_t s = mictrig_buffer16[i]; s = (s < 0) ? -s : s; if (s > m) { m = s; } } if (bytesread <= 0) { break; } #ifdef MICTRIG_STATS mictrig_stats_task(bytesread, tstart); #endif m *= MICTRIG_GAIN; // apply gain m = m > 0x7FFF ? 0x7FFF : m; // limit after gain mictrig_decayTask(); mictrig_lastMax = m; // remember the latest peak if (m > mictrig_filteredMax) { mictrig_decay = 16; // slow down the decay mictrig_filteredMax = m; // set the new displayed peak } // check if triggered int32_t thresh = config_settings.mictrig_level * 327; // re-map value 0-100 to actual level if (m > thresh) { mictrig_hasTriggered = true; } } #endif } #ifdef MICTRIG_STATS void mictrig_stats_task(uint32_t add_bytes, uint32_t now_time) { if (mictrig_stats_sampleCnt <= 0) { mictrig_stats_startTime = now_time; } mictrig_stats_sampleCnt += add_bytes / 2; if (mictrig_stats_sampleCnt >= (MICTRIG_I2S_SAMPLERATE * 10)) { uint32_t t = millis(); uint32_t dt = t - mictrig_stats_startTime; uint32_t samps = mictrig_stats_sampleCnt * 1000; dbg_ser.printf("mic sample rate %u\r\n", (samps / dt)); mictrig_stats_sampleCnt = 0; } } #endif void mictrig_decayTask() { // decay the displayed peak if (mictrig_filteredMax >= mictrig_decay) { mictrig_filteredMax -= mictrig_decay; } // accelerate the decay if (mictrig_decay <= 0xFFF) { mictrig_decay += 8; } } bool mictrig_shoot() { M5Lcd.setCursor(SUBMENU_X_OFFSET, MICTRIG_LEVEL_MARGIN); M5Lcd.fillRect(0, MICTRIG_LEVEL_MARGIN, M5Lcd.width() - GENERAL_ICON_WIDTH, M5Lcd.height() - MICTRIG_LEVEL_MARGIN - 12, TFT_BLACK); mictrig_drawLevel(); if (config_settings.mictrig_delay > 0) { uint32_t now = millis(); int32_t twait = config_settings.mictrig_delay; // wait with a countdown on the GUI if (intervalometer_wait(twait, now, 0, "MIC TRIG'ed", config_settings.mictrig_delay > 2, 0)) { return true; } } else { M5Lcd.setCursor(SUBMENU_X_OFFSET, MICTRIG_LEVEL_MARGIN); M5Lcd.setTextFont(4); M5Lcd.print("MIC TRIG'ed"); gui_blankRestOfLine(); } // do the actual shutter command, depending on connectivity method cam_shootQuick(); // reset the mic states mictrig_lastMax = 0; mictrig_filteredMax = 0; return false; } void mictrig_drawLevel() { // calculate the length of the red bar representing the current sound level peak uint32_t lvl = (mictrig_filteredMax + 90) / 182; lvl = (lvl < MICTRIG_LEVEL_BAR_HEIGHT) ? MICTRIG_LEVEL_BAR_HEIGHT : lvl; lvl = (lvl > 180) ? 180 : lvl; // calculate the position of the green tick representing the trigger level volatile uint32_t thresh = config_settings.mictrig_level; thresh *= 318; thresh /= 180; thresh = (thresh < MICTRIG_LEVEL_BAR_HEIGHT) ? MICTRIG_LEVEL_BAR_HEIGHT : thresh; gui_drawLevelBar(lvl, -1, thresh, -1); } ================================================ FILE: arduino_workspace/AlphaFairy/TallyLite.ino ================================================ #include "AlphaFairy.h" extern bool redraw_flag; bool tallylite_nopoll = false; // used to prevent recursion in app_poll() bool tallylite_enable = true; void tallylite_task() { // prevent recursion if (tallylite_nopoll || tallylite_enable == false) { return; } static bool was_recording = false; if (config_settings.tallylite == TALLYLITE_OFF) { // feature not used tallylite_ledOff(); return; } if (fairycam.isOperating() == false) { // no way of getting status was_recording = false; tallylite_ledOff(); return; } bool is_recording = fairycam.is_movierecording(); if (is_recording && was_recording == false) // transitioning of recording state { if (config_settings.tallylite == TALLYLITE_LED || config_settings.tallylite == TALLYLITE_BOTH) { tallylite_ledOn(); } if (config_settings.tallylite == TALLYLITE_SCREEN || config_settings.tallylite == TALLYLITE_BOTH) { tallylite_show(); } } was_recording = fairycam.is_movierecording(); if (was_recording == false) { tallylite_ledOff(); } } void tallylite_show() { M5Lcd.fillScreen(TFT_RED); // red screen M5.Axp.ScreenBreath(12); // super bright tallylite_nopoll = true; // prevent recursion while (fairycam.isOperating() && fairycam.is_movierecording()) // quit if disconnected, or recording has stopped { app_poll(); // this is where recursion is not allowed fenc_task(); // allow focus pull while red screen pwr_tick(true); // prevent screen dimming and sleep if (btnAny_hasPressed()) { // exit on button press btnAny_clrPressed(); break; } } M5.Axp.ScreenBreath(config_settings.lcd_brightness); // normal screen brightness tallylite_nopoll = false; redraw_flag = true; } bool tallylite_ledIsOn = false; void tallylite_ledOn() { pinMode(10, OUTPUT); digitalWrite(10, LOW); tallylite_ledIsOn = true; } void tallylite_ledOff() { if (tallylite_ledIsOn) { pinMode(10, INPUT); digitalWrite(10, HIGH); } tallylite_ledIsOn = false; } ================================================ FILE: arduino_workspace/AlphaFairy/TimecodeReset.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" #include class AppTimecodeReset : public FairyMenuItem { public: AppTimecodeReset() : FairyMenuItem("/timecode_reset.png") { }; virtual bool on_execute(void) { draw_borderRect(6, TFT_RED); SonyCamIr_SendRawBits(IR_CMD_RMT845_TCRESET, 20, 5); app_waitAllRelease(); draw_borderRect(6, TFT_WHITE); set_redraw(); return false; }; }; extern FairySubmenu menu_remote; void setup_timecodeReset() { static AppTimecodeReset app_timecodeReset; menu_remote.install(&app_timecodeReset); } ================================================ FILE: arduino_workspace/AlphaFairy/Trigger.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" int32_t trigger_source = TRIGSRC_MIC; int32_t trigger_action = TRIGACT_PHOTO; extern volatile bool mictrig_hasTriggered; extern bool gui_microphoneActive; extern bool tallylite_enable; int exinput_bar = 0; int exinput_thresh = 0; float imutrig_prev_accelX; float imutrig_prev_accelY; float imutrig_prev_accelZ; int imutrig_accelBar = 0; int imutrig_accelThresh = 0; int imutrig_gyroBar = 0; int imutrig_gyroThresh = 0; #define IMUTRIG_BAR_DIV 15 int imutrig_accelBarPeak = 0; int imutrig_gyroBarPeak = 0; bool extinput_poll() { int gpio = get_pinCfgGpio(config_settings.pin_exinput); if (gpio < 0) { exinput_bar = 0; return false; } int x = analogRead(gpio); if (config_settings.trigger_edge != 0) { // invert the sensor input x = 4095 - x; } exinput_bar = map(x , 0, 4095, 10, 170); exinput_thresh = map(config_settings.trigger_siglevel, 0, 100, 10, 170); return (exinput_bar >= exinput_thresh); } bool imutrig_poll() { float dAX = imu.accX - imutrig_prev_accelX; float dAY = imu.accY - imutrig_prev_accelY; float dAZ = imu.accZ - imutrig_prev_accelZ; // check for motion via accelerometer // remember that 1G is always present due to gravity, we compare against 1G later // the code will also compare the previous vector and the current vector, to determine lateral movement perpendicular to gravity int accelMag = lround(sqrt((imu.accX * imu.accX) + (imu.accY * imu.accY) + (imu.accZ * imu.accZ)) * 100); int accelDMag = lround(sqrt((dAX * dAX) + (dAY * dAY) + (dAZ * dAZ)) * 100); int accelGMag = accelMag > 100 ? (accelMag - 100) : (100 - accelMag); // absolute magnitude will always be around 1G while not in motion, due to gravity int accelMaxMag = accelGMag; accelMaxMag = max(accelDMag, accelGMag); imutrig_prev_accelX = imu.accX; imutrig_prev_accelY = imu.accY; imutrig_prev_accelZ = imu.accZ; // check for motion via gyroscope spin // simply find the axis with highest spin // note: AHRS algorithm cannot be used for this as the values don't seem to be continuous int absGyroX = abs(lround(imu.gyroX)); int absGyroY = abs(lround(imu.gyroY)); int absGyroZ = abs(lround(imu.gyroZ)); int gyroMax = 0; gyroMax = max(gyroMax, absGyroX); gyroMax = max(gyroMax, absGyroY); gyroMax = max(gyroMax, absGyroZ); // note: the accel range is 0G to 4G and gyro range is 0DPS to 500DPS, but we add a bit of overhead just so the user can disable a particular option imutrig_accelBar = map(accelGMag , 0, 500, 10, 170); imutrig_accelThresh = map(config_settings.trigger_imuaccel, 0, 500, 10, 170); imutrig_gyroBar = map(gyroMax , 0, 600, 10, 170); imutrig_gyroThresh = map(config_settings.trigger_imurot , 0, 600, 10, 170); // show a decaying peak, because it's hard to read the screen while it is moving if (imutrig_accelBar > (imutrig_accelBarPeak / IMUTRIG_BAR_DIV)) { imutrig_accelBarPeak = imutrig_accelBar * IMUTRIG_BAR_DIV; } else { imutrig_accelBarPeak -= 1; } if (imutrig_gyroBar > (imutrig_gyroBarPeak / IMUTRIG_BAR_DIV)) { imutrig_gyroBarPeak = imutrig_gyroBar * IMUTRIG_BAR_DIV; } else { imutrig_gyroBarPeak -= 1; } return (imutrig_accelBar >= imutrig_accelThresh) || (imutrig_gyroBar >= imutrig_gyroThresh); } void extinput_drawLevel() { gui_drawLevelBar(exinput_bar, -1, exinput_thresh, -1); } void imutrig_drawLevel() { gui_drawLevelBar(imutrig_accelBarPeak / IMUTRIG_BAR_DIV, imutrig_gyroBarPeak / IMUTRIG_BAR_DIV, imutrig_accelThresh, imutrig_gyroThresh); } #ifdef ENABLE_BUILD_LEPTON extern int lepton_trigBar; extern int lepton_trigThresh; void lepton_drawLevel() { gui_drawLevelBar(lepton_trigBar, -1, lepton_trigThresh, -1); } #endif void trigger_drawLevel() { if (trigger_source == TRIGSRC_ALL) { gui_drawLevelBar(-1, -1, -1, -1); // draws a black region } else if (trigger_source == TRIGSRC_MIC) { mictrig_drawLevel(); } else if (trigger_source == TRIGSRC_EXINPUT) { extinput_drawLevel(); } else if (trigger_source == TRIGSRC_IMU) { imutrig_drawLevel(); } #ifdef ENABLE_BUILD_LEPTON else if (trigger_source == TRIGSRC_THERMAL) { lepton_drawLevel(); } #endif else { gui_drawLevelBar(-1, -1, -1, -1); // draws a black region } } bool trigger_all_poll() { bool triggered = false; if (trigger_source == TRIGSRC_MIC || trigger_source == TRIGSRC_ALL) { mictrig_poll(); triggered |= mictrig_hasTriggered; } if (trigger_source == TRIGSRC_EXINPUT || trigger_source == TRIGSRC_ALL) { triggered |= extinput_poll(); } if (trigger_source == TRIGSRC_IMU || trigger_source == TRIGSRC_ALL) { triggered |= imutrig_poll(); } #ifdef ENABLE_BUILD_LEPTON #ifdef ENABLE_BUILD_LEPTON_TRIGGER_COMPLEX if (trigger_source == TRIGSRC_THERMAL || trigger_source == TRIGSRC_ALL) { lepton_poll(true); triggered |= lepton_checkTrigger(); } #endif #endif return triggered; } void trigger_drawActionIcon(int16_t y) { int16_t w = GENERAL_ICON_WIDTH; int16_t x = M5Lcd.width() - w; if (trigger_action == TRIGACT_PHOTO) { M5Lcd.drawPngFile(SPIFFS, "/camera_icon.png", x, y); } else if (trigger_action == TRIGACT_VIDEO) { M5Lcd.drawPngFile(SPIFFS, "/vid_icon.png", x, y); } else if (trigger_action == TRIGACT_INTERVAL) { M5Lcd.drawPngFile(SPIFFS, "/intervalometer_icon.png", x, y); } else { M5Lcd.fillRect(x, y, w, w, TFT_BLACK); //M5Lcd.drawPngFile(SPIFFS, "/trap_icon.png", x, y); } } class PageTrigger : public FairyCfgItem { public: PageTrigger(const char* disp_name, int32_t* linked_var, int32_t val_min, int32_t val_max, int32_t step_size, uint32_t fmt_flags) : FairyCfgItem(disp_name, linked_var, val_min, val_max, step_size, fmt_flags) { this->_margin_y = MICTRIG_LEVEL_MARGIN; this->_autosave = true; }; PageTrigger(const char* disp_name, bool (*cb)(void*), const char* icon) : FairyCfgItem(disp_name, cb, icon) { this->_margin_y = MICTRIG_LEVEL_MARGIN; this->_autosave = false; }; virtual void on_drawLive (void) { trigger_drawLevel(); }; virtual void on_extraPoll(void) { trigger_all_poll(); }; }; class PageTriggerSource : public PageTrigger { public: PageTriggerSource() : PageTrigger("Trigger Source", (int32_t*)&(trigger_source), 0, #if defined(ENABLE_BUILD_LEPTON) && defined(ENABLE_BUILD_LEPTON_TRIGGER_COMPLEX) 4 #else 3 #endif , 1, TXTFMT_TRIGSRC) { this->_autosave = false; }; virtual void on_readjust(void) { draw_icon(); }; }; class PageTriggerAction : public PageTrigger { public: PageTriggerAction() : PageTrigger("Trigger Action", (int32_t*)&(trigger_action), 0, 2, 1, TXTFMT_TRIGACT) { this->_autosave = false; }; virtual void on_readjust(void) { draw_val_icon(); }; virtual void draw_icon(void) { FairyCfgItem::draw_icon(); draw_val_icon(); }; protected: void draw_val_icon(void) { trigger_drawActionIcon(0); }; }; class PageSoundTriggerLevel : public PageTrigger { public: PageSoundTriggerLevel() : PageTrigger("Sound Trig Level", (int32_t*)&(config_settings.mictrig_level), 0, 100, 1, TXTFMT_NONE) { }; virtual void on_drawLive (void) { mictrig_drawLevel(); }; virtual bool can_navTo(void) { return trigger_source == TRIGSRC_MIC || trigger_source == TRIGSRC_ALL; }; }; class PageTriggerSigEdge : public PageTrigger { public: PageTriggerSigEdge() : PageTrigger("Sig Invert", (int32_t*)&(config_settings.trigger_edge), 0, 1, 1, TXTFMT_BOOL) { }; virtual void on_drawLive (void) { extinput_drawLevel(); }; virtual bool can_navTo(void) { return trigger_source == TRIGSRC_EXINPUT || trigger_source == TRIGSRC_ALL; }; }; class PageTriggerSigLevel : public PageTrigger { public: PageTriggerSigLevel() : PageTrigger("Sig Level", (int32_t*)&(config_settings.trigger_siglevel), 0, 100, 1, TXTFMT_NONE) { }; virtual void on_drawLive (void) { extinput_drawLevel(); }; virtual bool can_navTo(void) { return trigger_source == TRIGSRC_EXINPUT || trigger_source == TRIGSRC_ALL; }; }; class PageTriggerImuAccel : public PageTrigger { public: PageTriggerImuAccel() : PageTrigger("IMU Accel Level", (int32_t*)&(config_settings.trigger_imuaccel), 0, 500, 1, TXTFMT_BYTENS | TXTFMT_DIVHUNDRED) // note: the accel range is 0G to 4G and gyro range is 0DPS to 500DPS, but we add a bit of overhead just so the user can disable a particular option { }; virtual void on_drawLive (void) { imutrig_drawLevel(); }; virtual bool can_navTo(void) { return trigger_source == TRIGSRC_IMU || trigger_source == TRIGSRC_ALL; }; virtual void on_navTo(void) { imutrig_accelBarPeak = 0; PageTrigger::on_navTo(); }; }; class PageTriggerImuRot : public PageTrigger { public: PageTriggerImuRot() : PageTrigger("IMU Rot Level", (int32_t*)&(config_settings.trigger_imurot), 0, 600, 1, TXTFMT_BYTENS) // note: the accel range is 0G to 4G and gyro range is 0DPS to 500DPS, but we add a bit of overhead just so the user can disable a particular option { }; virtual void on_drawLive (void) { imutrig_drawLevel(); }; virtual bool can_navTo(void) { return trigger_source == TRIGSRC_IMU || trigger_source == TRIGSRC_ALL; }; virtual void on_navTo(void) { imutrig_gyroBarPeak = 0; PageTrigger::on_navTo(); }; }; class PageTriggerArmDelay : public PageTrigger { public: PageTriggerArmDelay() : PageTrigger("Arm Delay", (int32_t*)&(config_settings.trigger_armtime), 3, 10000, 1, TXTFMT_TIME) { }; }; class PageTriggerDelay : public PageTrigger { public: PageTriggerDelay() : PageTrigger("Start Delay", (int32_t*)&(config_settings.trigger_delay), 0, 1000, 1, TXTFMT_TIME) { }; }; class PageTriggerRetrigger : public PageTrigger { public: PageTriggerRetrigger() : PageTrigger("Retrigger", (int32_t*)&(config_settings.trigger_retrigger), -1, 10000, 1, TXTFMT_TIME | TXTFMT_NEGOFF) { }; virtual bool can_navTo(void) { return trigger_action != TRIGACT_INTERVAL; }; }; class PageTriggerVideoTime : public PageTrigger { public: PageTriggerVideoTime() : PageTrigger("Video Length", (int32_t*)&(config_settings.trigger_vidtime), 0, 10000, 1, TXTFMT_TIME | TXTFMT_ZEROINF) { }; virtual bool can_navTo(void) { return trigger_action == TRIGACT_VIDEO; }; }; // never actually called bool trigger_nullfunc(void* ptr) { return false; } class PageTriggerArm : public PageTrigger { public: PageTriggerArm() : PageTrigger("Arm?", trigger_nullfunc, "/go_icon.png") { }; virtual void on_redraw(void) { PageTrigger::on_redraw(); M5Lcd.setTextColor(TFT_WHITE, TFT_BLACK); M5Lcd.setTextFont(4); _linenum = 1; draw_info(); M5Lcd.setCursor(_margin_x, get_y(_linenum)); if (config_settings.trigger_delay <= 0 && config_settings.trigger_armtime > 0) { M5Lcd.print("Arm Dly: "); M5Lcd.print(config_settings.trigger_armtime, DEC); M5Lcd.print("s"); } else if (config_settings.trigger_delay > 0 && config_settings.trigger_armtime <= 0) { M5Lcd.print("Delay: "); M5Lcd.print(config_settings.trigger_delay, DEC); M5Lcd.print("s"); } else { M5Lcd.print("T: "); M5Lcd.print(config_settings.trigger_armtime, DEC); M5Lcd.print(" -> "); M5Lcd.print(config_settings.trigger_delay, DEC); } blank_line(); }; virtual bool on_execute(void) { if (fairycam.isOperating() == false) { pwr_airplaneModeEnter(); } app_waitAllRelease(); execute(); on_redraw(); app_waitAllRelease(); return false; }; protected: int _linenum = 0; void draw_parent_icon(void) { FairyCfgApp* p = dynamic_cast((FairyCfgApp*)get_parent()); if (p != NULL) { p->draw_icon(); } }; void execute(void) { gui_microphoneActive = true; int shot_cnt = 0; uint32_t t = 0; M5Lcd.fillScreen(TFT_BLACK); // enforce minimum arming delay, gives the user a chance to run away, also the button seems to trigger the mic when pressed config_settings.trigger_armtime = (config_settings.trigger_armtime < 3) ? 3 : config_settings.trigger_armtime; if (intervalometer_wait(config_settings.trigger_armtime, millis(), 0, "Arming Dly...", false, 0)) { return; // user quit } pwr_tick(true); do // this loop is for auto-retriggering { app_poll(); pwr_tick(false); // put some indicator on the screen M5Lcd.fillScreen(TFT_BLACK); gui_startAppPrint(); M5Lcd.setTextColor(TFT_RED, TFT_BLACK); M5Lcd.setTextFont(4); _linenum = 0; M5Lcd.setCursor(_margin_x, get_y(_linenum)); M5Lcd.print("!!!ARMED!!!"); _linenum = 1; if (shot_cnt <= 0) { // first run, show info draw_info(); } else { // we have some shots already, show the counter M5Lcd.setCursor(_margin_x, get_y(_linenum)); M5Lcd.setTextColor(TFT_WHITE, TFT_BLACK); M5Lcd.printf("CNT = %u", shot_cnt); } // draw some icons so the screen doesn't look boring draw_parent_icon(); trigger_drawActionIcon(0); int dot_idx = 0; mictrig_hasTriggered = false; bool triggered = false; while (triggered == false) { app_poll(); pwr_tick(false); triggered |= trigger_all_poll(); // quit on button press if (btnSide_hasPressed()) { btnSide_clrPressed(); return; } if (btnPwr_hasPressed()) { btnPwr_clrPressed(); return; } // intentional trigger if (btnBig_hasPressed()) { btnBig_clrPressed(); triggered |= true; } // just so the screen doesn't look boring trigger_drawLevel(); gui_drawStatusBar(true); // animate dots just to show we haven't frozen if ((millis() - t) >= 200 || t == 0) { gui_drawVerticalDots(50, 40, 5, 5, 5, dot_idx++, true, TFT_GREEN, TFT_DARKGREEN); t = millis(); } } // triggered == true here M5Lcd.fillScreen(TFT_BLACK); pwr_tick(true); if (config_settings.trigger_delay > 0) { // wait if needed if (intervalometer_wait(config_settings.trigger_armtime, millis(), 0, "Trig'd Wait...", false, 0)) { return; // user quit } pwr_tick(true); } t = millis(); M5Lcd.fillScreen(TFT_BLACK); M5Lcd.setTextColor(TFT_RED, TFT_BLACK); M5Lcd.setTextFont(4); _linenum = 0; M5Lcd.setCursor(_margin_x, get_y(_linenum)); // do the action when triggered if (trigger_action == TRIGACT_PHOTO) { M5Lcd.print("SHOOT"); cam_shootQuick(); } else if (trigger_action == TRIGACT_VIDEO) { if (config_settings.trigger_vidtime <= 0) { M5Lcd.print("FILM"); } cam_videoStart(); t = millis(); bool vid_quit = false; if (config_settings.trigger_vidtime > 0) { if (intervalometer_wait(config_settings.trigger_vidtime, t, 0, "Vid Rec...", false, 0)) { vid_quit = true; // user quit } pwr_tick(true); cam_videoStop(); t = millis(); } if (vid_quit) { return; } } else if (trigger_action == TRIGACT_INTERVAL) { if (intervalometer_func(this)) { return; } t = millis(); shot_cnt++; break; // if this ends without exiting, it means the intervalometer ended due to finishing all of the shots } _linenum++; shot_cnt++; M5Lcd.setTextColor(TFT_WHITE, TFT_BLACK); if (config_settings.trigger_retrigger > 0) { if (intervalometer_wait(config_settings.trigger_retrigger, t, 0, "Re-arming...", false, 0)) { return; } pwr_tick(true); } // quit on button press if (btnSide_hasPressed()) { btnSide_clrPressed(); return; } if (btnPwr_hasPressed()) { btnPwr_clrPressed(); return; } } while (config_settings.trigger_retrigger >= 0); uint32_t done_time = millis(); redraw_flag = true; // forces the first iteration of the next loop to draw stuff // wait for user to acknowledge event while (true) { if (redraw_flag) { // put some indicator on the screen that something has happened M5Lcd.fillScreen(TFT_BLACK); gui_startAppPrint(); M5Lcd.setTextColor(TFT_RED, TFT_BLACK); M5Lcd.setTextFont(4); _linenum = 0; M5Lcd.setCursor(_margin_x, get_y(_linenum)); M5Lcd.print("DONE"); _linenum++; if (config_settings.trigger_retrigger >= 0 && trigger_action != TRIGACT_INTERVAL) { // show the number of triggers only if it can be more than 1 M5Lcd.setCursor(_margin_x, get_y(_linenum)); M5Lcd.setTextColor(TFT_WHITE, TFT_BLACK); M5Lcd.printf("CNT = %u", shot_cnt); _linenum++; } draw_parent_icon(); redraw_flag = false; } int line_num_2 = _linenum; uint32_t dt; // show how long ago the trigger happened if ((dt = (millis() - done_time)) >= 2000) // been a while { dt /= 1000; // convert to seconds M5Lcd.setCursor(_margin_x, get_y(line_num_2)); M5Lcd.setTextColor(TFT_WHITE, TFT_BLACK); gui_showVal(dt, dt >= (60 * 10) ? TXTFMT_TIMELONG : TXTFMT_TIME, &M5Lcd); M5Lcd.print(" ago"); blank_line(); line_num_2++; } app_poll(); pwr_tick(false); gui_drawStatusBar(true); // quit on button press if (btnSide_hasPressed()) { btnSide_clrPressed(); return; } if (btnBig_hasPressed()) { btnBig_clrPressed(); return; } if (btnPwr_hasPressed()) { btnPwr_clrPressed(); return; } } }; void draw_info(void) { M5Lcd.setTextColor(TFT_WHITE, TFT_BLACK); M5Lcd.setCursor(_margin_x, get_y(_linenum)); if (trigger_action != TRIGACT_PHOTO) { gui_showVal(trigger_action, TXTFMT_TRIGACT, (Print*)&M5Lcd); blank_line(); _linenum++; } M5Lcd.setCursor(_margin_x, get_y(_linenum)); if (trigger_source == TRIGSRC_MIC #ifndef ENABLE_BUILD_LEPTON || trigger_source == TRIGSRC_EXINPUT #endif ) { M5Lcd.print("Level: "); if (trigger_source == TRIGSRC_MIC) { gui_showVal(config_settings.mictrig_level, TXTFMT_NONE, (Print*)&M5Lcd); } #ifndef ENABLE_BUILD_LEPTON else { if (config_settings.trigger_edge != 0) { M5Lcd.print("!"); } gui_showVal(config_settings.trigger_siglevel, TXTFMT_NONE, (Print*)&M5Lcd); } #endif blank_line(); _linenum++; } if (_linenum == 1) { // if nothing interesting to write, then just show the trigger source M5Lcd.print("Src: "); gui_showVal(trigger_source, TXTFMT_TRIGSRC | TXTFMT_ALLCAPS | TXTFMT_SMALL, (Print*)&M5Lcd); blank_line(); _linenum++; } }; }; class AppShutterTrigger : public FairyCfgApp { public: AppShutterTrigger() : FairyCfgApp("/shuttertrigger.png", "/trap_icon.png", MENUITEM_TRIGGER) { this->install(new PageTriggerSource()); this->install(new PageTriggerAction()); this->install(new PageTriggerArmDelay()); this->install(new PageTriggerDelay()); this->install(new PageTriggerRetrigger()); this->install(new PageTriggerVideoTime()); this->install(new PageSoundTriggerLevel()); this->install(new PageTriggerSigEdge()); this->install(new PageTriggerSigLevel()); this->install(new PageTriggerImuAccel()); this->install(new PageTriggerImuRot()); #ifdef ENABLE_BUILD_LEPTON install_lepton_trigger(this); #endif this->install(new PageTriggerArm()); }; virtual bool on_execute(void) { mictrig_unpause(); tallylite_enable = false; bool ret = FairyCfgApp::on_execute(); tallylite_enable = true; mictrig_pause(); pwr_airplaneModeExit(); return ret; }; virtual void draw_icon(void) { int16_t w = GENERAL_ICON_WIDTH; int16_t x = M5Lcd.width() - w, y = M5Lcd.height() - w; if (trigger_source == TRIGSRC_MIC) { M5Lcd.drawPngFile(SPIFFS, "/mic_icon.png", x, y); } else if (trigger_source == TRIGSRC_EXINPUT) { M5Lcd.drawPngFile(SPIFFS, "/extinput_icon.png", x, y); } else if (trigger_source == TRIGSRC_IMU) { M5Lcd.drawPngFile(SPIFFS, "/imu_icon.png", x, y); } #ifdef ENABLE_BUILD_LEPTON else if (trigger_source == TRIGSRC_THERMAL) { M5Lcd.drawPngFile(SPIFFS, "/lepton_icon.png", x, y); } #endif else { FairyCfgApp::draw_icon(); } }; }; extern FairySubmenu menu_remote; void setup_shuttertrigger() { static AppShutterTrigger app; menu_remote.install(&app); } ================================================ FILE: arduino_workspace/AlphaFairy/WifiHandlers.ino ================================================ #include "AlphaFairy.h" extern bool autoconnect_active; extern int autoconnect_status; extern bool signal_wifiauthfailed; // assign all callback functions for camera events void cam_cb_setup() { ptpcam.cb_onConnect = ptpcam_onConnect; ptpcam.cb_onDisconnect = ptpcam_onDisconnect; ptpcam.cb_onCriticalError = ptpcam_onCriticalError; ptpcam.cb_onReject = ptpcam_onReject; ptpcam.cb_onConfirmedAvail = ptpcam_onConfirmedAvail; ptpcam.cb_onEvent = ptpcam_onEvent; ptpcam.cb_onRxAct = cpufreq_boost; httpcam.cb_onConnect = ptpcam_onConnect; httpcam.cb_onDisconnect = httpcam_onDisconnect; httpcam.cb_onCriticalError = httpcam_onCriticalError; httpcam.cb_onNoServiceUrl = httpcam_onNoServiceUrl; } void wifi_onConnect() { uint32_t newip; dbg_ser.printf("application wifi event handler called\r\n"); autoconnect_status = AUTOCONNSTS_CONNECTED; pwr_tick(true); if (ptpcam.canNewConnect() && config_settings.protocol != ALLOWEDPROTOCOL_HTTP) { newip = NetMgr_getConnectableClient(); if (newip != 0) { #if 1 if (NetMgr_getOpMode() == WIFIOPMODE_STA) { // if the mode is STA then it is more likely that the camera is HTTP // it seems like some of those cameras do not like being connected to over the PTP port first // so add an extra delay for the PTP initialization just in case ptpcam.begin(newip, 5000); } else #endif { ptpcam.begin(newip); } wifiprofile_t wp; bool has_profile = wifiprofile_getProfile(config_settings.wifi_profile, &wp); ptpcam.install_guid((config_settings.wifi_profile == 0 || has_profile == false) ? NULL : wp.guid); } } if (httpcam.canNewConnect() && config_settings.protocol != ALLOWEDPROTOCOL_PTP) { newip = NetMgr_getConnectableClient(); if (newip != 0) { httpcam.begin(newip, NetMgr_getSsdpSock()); httpcam.set_ssdpTimeout(config_settings.ssdp_timeout); } } } void wifi_onDisconnect(uint8_t x, int reason) { NetMgr_markClientDisconnect(ptpcam.getIp()); NetMgr_markClientDisconnect(httpcam.getIp()); fairycam.force_disconnect(); if (x == WIFIDISCON_NORMAL) { Serial.printf("WiFi disconnected normal, reason %d\r\n", reason); } else if (x == WIFIDISCON_AUTH_ERROR) { Serial.printf("WiFi disconnected error, reason %d\r\n", reason); wifi_err_reason = reason; critical_error("/wifi_error.png"); } else if (x == WIFIDISCON_AUTH_FAIL) { Serial.printf("WiFi disconnected auth failed, reason %d\r\n", reason); wifi_err_reason = reason; autoconnect_status = AUTOCONNSTS_FAILED; if (autoconnect_active == false) { //force_wifi_config("/wifi_reject.png"); WiFi.disconnect(); // prevent reconnection attempt signal_wifiauthfailed = true; // signal to the GUI thread to show error } } } void ptpcam_onConnect() { cpufreq_boost(); dbg_ser.printf("ptpcam_onConnect\r\n"); pwr_tick(true); if (ptpcam.isOperating()) { NetMgr_markClientCameraPtp(ptpcam.getIp()); httpcam.setForbidden(); } } void httpcam_onConnect() { cpufreq_boost(); dbg_ser.printf("httpcam_onConnect\r\n"); pwr_tick(true); if (httpcam.isOperating()) { NetMgr_markClientCameraHttp(httpcam.getIp()); } } void ptpcam_onDisconnect() { pwr_tick(true); NetMgr_markClientDisconnect(ptpcam.getIp()); } void httpcam_onDisconnect() { pwr_tick(true); NetMgr_markClientDisconnect(httpcam.getIp()); } void ptpcam_onCriticalError() { pwr_tick(true); if (ptpcam.critical_error_cnt > 2) { NetMgr_markClientError(ptpcam.getIp()); if (NetMgr_shouldReportError() && httpcam.isOperating() == false) { critical_error("/crit_error.png"); } } } void httpcam_onCriticalError() { pwr_tick(true); if (httpcam.critical_error_cnt > 0 && NetMgr_getOpMode() == WIFIOPMODE_STA) { NetMgr_markClientError(httpcam.getIp()); if (NetMgr_shouldReportError() && ptpcam.isOperating() == false) { critical_error("/crit_error.png"); } } } void httpcam_onNoServiceUrl() { pwr_tick(true); if (ptpcam.canNewConnect()) { dbg_ser.printf("maybe try ptp\r\n"); ptpcam.begin(httpcam.getIp()); } else { dbg_ser.printf("unable to try ptp, state 0x%04X\r\n", ptpcam.getState()); } } void ptpcam_onReject() { critical_error("/rejected.png"); } void ptpcam_onConfirmedAvail() { httpcam.setForbidden(); } void ptpcam_onEvent(uint16_t event_code) { cpufreq_boost(); } void handle_user_reauth() { // NOTE: only call this function from GUI thread if (signal_wifiauthfailed == false) { return; } signal_wifiauthfailed = false; autoconnect_active = true; bool user_quit = false; M5Lcd.setRotation(0); M5Lcd.drawPngFile(SPIFFS, "/wifi_reject.png", 0, 0); while (true) { autoconnect_poll(); if (btnBoth_hasPressed()) { // normal button press means retry entering the password dbg_ser.printf("autoconnect user wants retry\r\n"); btnBoth_clrPressed(); break; } if (btnPwr_hasPressed()) { // power button press means give up dbg_ser.printf("autoconnect user wants give up (handle_user_reauth)\r\n"); btnPwr_clrPressed(); user_quit = true; break; } } if (user_quit == false) { uint8_t profile_num = config_settings.wifi_profile; wifiprofile_t profile; bool got_profile = wifiprofile_getProfile(profile_num, &profile); // this can't possibly fail if (wifi_newConnectOrPrompt(profile_num, &profile, true, false)) { // user cancel } else { // user did not cancel } } else { // user actually quit and wants to shutdown // this function is called from FairyMenu task loop // so if we don't quit, it loops and happens again show_poweroff(); } autoconnect_active = false; redraw_flag = true; } ================================================ FILE: arduino_workspace/AlphaFairy/WifiMenu.ino ================================================ #include "AlphaFairy.h" #include "FairyMenu.h" static uint32_t wifinfo_previp = 0; bool wifinfo_check_redraw(void) { // need to redraw if the IP was suddenly changed (most often it starts off as 0.0.0.0) uint32_t cur_ip = (uint32_t)(IPAddress(WiFi.softAPIP())); if (cur_ip != wifinfo_previp) { wifinfo_previp = cur_ip; return true; } return false; }; class PageHttpInfo : public FairyMenuItem { public: PageHttpInfo() : FairyMenuItem("/wificfg_head.png", 0) { }; virtual bool check_redraw(void) { return wifinfo_check_redraw(); }; virtual void on_navTo(void) { FairyMenuItem::on_navTo(); check_redraw(); // clear redraw flag, sets the _prev_ip correctly }; virtual void on_redraw(void) { //M5Lcd.fillRect(0, 50, M5Lcd.width(), M5Lcd.height() - 16 - 50, TFT_WHITE); M5Lcd.fillScreen(TFT_WHITE); FairyMenuItem::on_redraw(); // draw_mainImage(); draw_text(); check_redraw(); // clear redraw flag, sets the _prev_ip correctly }; protected: void draw_text() { int line_space = 16; int top_margin = 7; int left_margin = 55; M5Lcd.setRotation(1); M5Lcd.highlight(true); M5Lcd.setTextWrap(true); M5Lcd.setHighlightColor(TFT_WHITE); M5Lcd.setTextColor(TFT_BLACK, TFT_WHITE); M5Lcd.setCursor(left_margin, top_margin); M5Lcd.setTextFont(2); M5Lcd.println("use phone browser"); M5Lcd.setCursor(left_margin, top_margin + line_space); M5Lcd.print("Wi-Fi SSID: "); M5Lcd.setCursor(left_margin + 8, top_margin + line_space + (line_space * 1)); M5Lcd.print(NetMgr_getSSID()); gui_blankRestOfLine(); M5Lcd.setCursor(left_margin, top_margin + line_space + (line_space * 2)); M5Lcd.print("password: "); M5Lcd.setCursor(left_margin + 8, top_margin + line_space + (line_space * 3)); M5Lcd.print(NetMgr_getPassword()); gui_blankRestOfLine(); M5Lcd.setCursor(left_margin, top_margin + line_space + (line_space * 4)); M5Lcd.print("URL: "); M5Lcd.setCursor(left_margin + 8, top_margin + line_space + (line_space * 5)); M5Lcd.print("http://"); M5Lcd.print(WiFi.softAPIP()); M5Lcd.print("/"); M5Lcd.setRotation(0); }; }; // this QR code page is used for 4 different things, 2 of them are for the WiFi Info app, 2 for the WiFi Config app class PageWifiQr : public FairyMenuItem { public: PageWifiQr(bool is_wifi, const char* img_fname) : FairyMenuItem(img_fname, 0) { _is_wifi = is_wifi; // is_wifi: true = show WiFi login ; false = show browser URL }; virtual bool check_redraw(void) { return wifinfo_check_redraw(); }; virtual void on_redraw(void) { M5Lcd.fillScreen(TFT_WHITE); FairyMenuItem::on_redraw(); //M5Lcd.fillRect(0, 70, M5Lcd.width(), M5Lcd.height() - 16 - 50, TFT_WHITE); uint32_t cur_ip = (uint32_t)(IPAddress(WiFi.softAPIP())); if (cur_ip == 0) { return; } char qrstr[64]; uint32_t width = 124; uint32_t x = (M5Lcd.width() - width + 1) / 2; uint32_t y = (M5Lcd.height() - width + 1) / 2; y += 20; if (_is_wifi) { sprintf(qrstr, "WIFI:T:WPA;S:%s;P:%s;;", NetMgr_getSSID(), NetMgr_getPassword()); } else { sprintf(qrstr, "http://%s/", WiFi.softAPIP()); } M5Lcd.qrcode(qrstr, x, y, width, 7); }; virtual void on_eachFrame(void) { pwr_tick(true); // keep light on for QR code }; protected: bool _is_wifi; }; class PageWifiSelectProfile : public FairyMenuItem { public: PageWifiSelectProfile() : FairyMenuItem("/wificfg_selprofile.png", 0) { }; virtual void on_navTo(void) { _profile_num = config_settings.wifi_profile; FairyMenuItem::on_navTo(); }; virtual void on_redraw(void) { M5Lcd.fillScreen(TFT_WHITE); FairyMenuItem::on_redraw(); draw_text(); }; virtual void on_spin(int8_t x) { if (x > 0) { _profile_num = _profile_num + 1; // allowed to go up until a blank profile // there will never be a gap in the profile list if (wifiprofile_isBlank(_profile_num)) { _profile_num = 0; } dbg_ser.printf("spin-sel right wifi-profile %u\r\n", _profile_num); } else if (x < 0) { if (_profile_num <= 0) { _profile_num = WIFIPROFILE_LIMIT; } else { _profile_num -= 1; } // there will never be a gap in the profile list // in the event of a negative rollover, find the last profile while (wifiprofile_isBlank(_profile_num) && _profile_num > 0) { _profile_num--; } dbg_ser.printf("spin-sel left wifi-profile %u\r\n", _profile_num); } draw_text(); }; virtual void on_eachFrame(void) { gui_drawSpinStatus(5, TFT_WHITE); FairyMenuItem::on_eachFrame(); }; virtual bool on_execute(void) { // press button to save config_settings.wifi_profile = _profile_num; settings_save(); M5Lcd.drawPngFile(SPIFFS, "/wificfg_profilesave.png", 95, 53); // hold button to save-and-reboot uint32_t now, t = millis(); while (((now = millis()) - t) < 2000 && btnBig_isPressed()) { app_poll(); pwr_tick(true); } if (btnBig_isPressed()) { dissolve_restart(TFT_WHITE); } return false; }; protected: uint8_t _profile_num; void draw_text(void) { M5Lcd.setRotation(0); M5Lcd.fillRect(0, 87, M5Lcd.width(), 90, TFT_WHITE); M5Lcd.highlight(true); M5Lcd.setTextWrap(true); M5Lcd.setHighlightColor(TFT_WHITE); M5Lcd.setTextColor(TFT_BLACK, TFT_WHITE); M5Lcd.setTextFont(4); int top_margin = 94; int left_margin = 5; M5Lcd.setCursor((M5Lcd.width() / 2) - 5, top_margin); M5Lcd.println(_profile_num, DEC); M5Lcd.setCursor(5, M5Lcd.getCursorY()); M5Lcd.setTextFont(2); wifiprofile_t wifi_profile; wifiprofile_getProfile(_profile_num, &wifi_profile); char* ssid_str = wifi_profile.ssid; // make the string shorter if it's a recognized format if (memcmp("DIRECT-", ssid_str, 7) == 0) { ssid_str += 4; ssid_str[0] = '.'; ssid_str[1] = '.'; ssid_str[2] = '.'; } M5Lcd.println(ssid_str); }; }; class PageFactoryReset : public FairyMenuItem { public: PageFactoryReset() : FairyMenuItem("/wificfg_frst.png", 0) { }; virtual bool on_execute(void) { draw_borderRect(5, TFT_RED); settings_default(); settings_save(); wifiprofile_deleteAll(); M5Lcd.drawPngFile(SPIFFS, "/wificfg_frstdone.png", 0, 0); delay(3000); if (btnBig_isPressed()) { dissolve_restart(TFT_WHITE); } return false; }; }; // both the first and second page of the WiFi Info app show text info, but one page is for access point info, the second page is for camera info class PageWifiInfo : public FairyMenuItem { public: PageWifiInfo(bool show_cam) : FairyMenuItem("/wifiinfo_head.png", 0) { _show_cam = show_cam; // wifi AP info or camera info }; virtual void on_navTo(void) { _show_rssi = false; _prev_connected = fairycam.isOperating(); FairyMenuItem::on_navTo(); check_redraw(); // clear redraw flag }; virtual bool can_navTo(void) { if (_show_cam && fairycam.isOperating() == false) { return false; } return true; }; virtual bool check_redraw(void) { // need to redraw if the connection state changes bool connected = fairycam.isOperating(); if (connected != _prev_connected) { _prev_connected = connected; return true; } return false; }; virtual void on_redraw(void) { M5Lcd.fillScreen(TFT_WHITE); FairyMenuItem::on_redraw(); //M5Lcd.setRotation(0); //M5Lcd.fillRect(0, 50, M5Lcd.width(), M5Lcd.height() - 16 - 50, TFT_WHITE); draw_text(); }; virtual void on_eachFrame(void) { int16_t pitch = imu.getPitch(); if (pitch > 60 || pitch < -60 || _show_rssi) // show RSSI only if the device is at an upside down angle { int rssi; if (NetMgr_getRssi(fairycam.getIp(), &rssi)) { M5Lcd.setRotation(1); M5Lcd.setTextFont(2); M5Lcd.setCursor(_left_margin, _top_margin); M5Lcd.printf("Wi-Fi SSID: (RSSI %d)", rssi); gui_blankRestOfLine(); M5Lcd.setRotation(0); _show_rssi = true; // make sure the RSSI keeps displaying } } }; protected: bool _show_cam; bool _show_rssi; bool _prev_connected; const int _line_space = 16; const int _top_margin = 7; const int _left_margin = 55; void draw_text(void) { M5Lcd.setRotation(1); M5Lcd.highlight(true); M5Lcd.setTextWrap(true); M5Lcd.setHighlightColor(TFT_WHITE); M5Lcd.setTextColor(TFT_BLACK, TFT_WHITE); M5Lcd.setCursor(_left_margin, _top_margin); M5Lcd.setTextFont(2); if (_show_rssi == false) { // already overwritten, prevent collide M5Lcd.print("Wi-Fi SSID:"); gui_blankRestOfLine(); } M5Lcd.setCursor(_left_margin + 8, _top_margin + (_line_space * 1)); M5Lcd.print(NetMgr_getSSID()); gui_blankRestOfLine(); M5Lcd.setCursor(_left_margin, _top_margin + (_line_space * 2)); M5Lcd.print("password: "); M5Lcd.setCursor(_left_margin + 8, _top_margin + (_line_space * 3)); M5Lcd.print(NetMgr_getPassword()); gui_blankRestOfLine(); M5Lcd.setCursor(_left_margin, _top_margin + (_line_space * 4)); if (_show_cam && fairycam.isOperating()) { M5Lcd.print("Camera: "); M5Lcd.setCursor(_left_margin + 8, _top_margin + (_line_space * 5)); M5Lcd.print(IPAddress(fairycam.getIp())); char* cam_name = fairycam.getCameraName(); if (cam_name != NULL && strlen(cam_name) > 0) { M5Lcd.setCursor(_left_margin + 8, _top_margin + (_line_space * 6)); M5Lcd.print(cam_name); } } else { M5Lcd.print("URL: "); M5Lcd.setCursor(_left_margin + 8, _top_margin + (_line_space * 5)); M5Lcd.print("http://"); M5Lcd.print(WiFi.softAPIP()); M5Lcd.print("/"); } M5Lcd.setRotation(0); }; }; class AppWifiConfig : public FairySubmenu { public: AppWifiConfig() : FairySubmenu("/wifi_config.png") { install(new PageHttpInfo()); install(new PageWifiQr(true , "/wificfg_login.png")); install(new PageWifiQr(false, "/wificfg_url.png")); install(new PageWifiSelectProfile()); install(new PageFactoryReset()); _already_running = false; set_enc_nav(false); }; virtual bool on_execute(void) { bool ret = false; if (_already_running == false) // prevent calling from another thread { _already_running = true; // use AP default mode if (NetMgr_getOpMode() == WIFIOPMODE_STA) { wifiprofile_connect(0); } httpsrv_init(); // start HTTP server if not already started rewind(); ret = FairySubmenu::on_execute(); _already_running = false; } return ret; }; virtual bool task(void) { httpsrv_poll(); cpufreq_boost(); return FairySubmenu::task(); }; protected: bool _already_running; // prevent calling from another thread }; class AppWifiInfo : public FairySubmenu { public: AppWifiInfo() : FairySubmenu("/wifiinfo.png") { install(new PageWifiInfo(false)); install(new PageWifiInfo(true)); install(new PageWifiQr(true , "/wifiinfo_login.png")); install(new PageWifiQr(false, "/wifiinfo_url.png")); }; }; extern FairySubmenu menu_utils; AppWifiInfo app_wifinfo; AppWifiConfig app_wificfg; void setup_wifimenus() { menu_utils.install(&app_wifinfo); menu_utils.install(&app_wificfg); app_wifinfo.set_bigbtn_nav(true); } void run_wifi_cfg() { app_wificfg.on_execute(); } ================================================ FILE: arduino_workspace/AlphaFairy/WifiUtils.ino ================================================ #include "AlphaFairy.h" extern void wifi_onConnect(void); extern void wifi_onDisconnect(uint8_t, int); int wifi_err_reason = 0; extern bool autoconnect_active; extern int autoconnect_status; bool signal_wifiauthfailed = false; void wifi_init() { NetMgr_regCallback(wifi_onConnect, wifi_onDisconnect); wifiprofile_connect(config_settings.wifi_profile); #ifdef HTTP_ON_BOOT httpsrv_init(); #endif if (config_settings.wifi_pwr != 0) { NetMgr_setWifiPower((wifi_power_t)wifipwr_table[config_settings.wifi_pwr]); } } void wifi_get_unique_ssid(char* tgt) { uint8_t wifi_ap_mac[16]; WiFi.macAddress(wifi_ap_mac); sprintf(tgt, WIFI_DEFAULT_SSID "-%u%u%u", wifi_ap_mac[0], wifi_ap_mac[1], wifi_ap_mac[2]); } void wifiprofile_getIdxFname(uint8_t idx, char* tgt) { sprintf(tgt, "/wifipro_%u.txt", idx); } bool wifiprofile_getProfileRaw(uint8_t idx, char* ssid, char* password, uint8_t* opmode, char* guid) { if (idx == 0) { #ifdef WIFI_AP_UNIQUE_NAME char wifi_ap_name[64]; wifi_get_unique_ssid(ssid); strcpy(password, (char*)WIFI_DEFAULT_PASS); #else strcpy(ssid, (char*)WIFI_DEFAULT_SSID); strcpy(password, (char*)WIFI_DEFAULT_PASS); #endif *opmode = WIFIOPMODE_AP; if (guid != NULL) { ptpcam.generate_guid(guid); } return true; } char fname[32]; char* tmp = (char*)fname; wifiprofile_getIdxFname(idx, fname); File f = SPIFFS.open(fname); if (!f) { ssid[0] = 0; password[0] = 0; *opmode = 0; if (guid != NULL) { guid[0] = 0; } return false; } int r; r = file_readLine(&f, ssid, WIFI_STRING_LEN + 2); if (r < 0) { ssid[0] = 0; password[0] = 0; *opmode = 0; f.close(); return false; } r = file_readLine(&f, password, WIFI_STRING_LEN + 2); if (r < 0) { f.close(); return false; } r = file_readLine(&f, tmp, WIFI_STRING_LEN + 2); if (r < 0) { f.close(); return false; } else { if (tmp[0] == '2') { *opmode = WIFIOPMODE_STA; } else { *opmode = WIFIOPMODE_AP; } } if (guid != NULL) { r = file_readLine(&f, guid, 16 + 1); if (r < 0) { guid[0] = 0; } } f.close(); return true; } bool wifiprofile_writeProfileRaw(uint8_t idx, char* ssid, char* password, uint8_t opmode, char* guid) { if (idx == 0) { return false; } char fcontents[64]; char fname[32]; char* tmp = (char*)fname; wifiprofile_getIdxFname(idx, fname); File f = SPIFFS.open(fname, FILE_WRITE); if (!f) { return false; } f.println(ssid); f.println(password); f.println(opmode, DEC); if (guid != NULL) { if (guid[0] != 0) { f.println(guid); } } f.close(); return true; } bool wifiprofile_getProfile(uint8_t idx, wifiprofile_t* p) { return wifiprofile_getProfileRaw(idx, (char*)(p->ssid), (char*)(p->password), (uint8_t*)&(p->opmode), (char*)(p->guid)); } bool wifiprofile_writeProfile(uint8_t idx, wifiprofile_t* p) { return wifiprofile_writeProfileRaw(idx, (char*)(p->ssid), (char*)(p->password), p->opmode, (char*)(p->guid)); } bool wifiprofile_connect(uint8_t idx) { wifiprofile_t profile; if (wifiprofile_getProfile(idx, &profile)) { if (idx != 0 && strlen(profile.ssid) > 0) { Serial.print("WiFi AP Name: "); Serial.println(profile.ssid); if (profile.opmode == WIFIOPMODE_STA) { NetMgr_beginSTA((char*)profile.ssid, (char*)profile.password); } else { NetMgr_beginAP((char*)profile.ssid, (char*)profile.password); } return true; } } // fallback to default settings #ifdef WIFI_AP_UNIQUE_NAME char wifi_ap_name[64]; wifi_get_unique_ssid(wifi_ap_name); Serial.print("WiFi AP Name: "); Serial.println(wifi_ap_name); NetMgr_beginAP((char*)wifi_ap_name, (char*)WIFI_DEFAULT_PASS); #else NetMgr_beginAP((char*)WIFI_DEFAULT_SSID, (char*)WIFI_DEFAULT_PASS); #endif return false; } void wifiprofile_deleteAll() { int i; for (i = 1; i <= WIFIPROFILE_LIMIT; i++) { wifiprofile_writeProfileRaw(i, (char*)"", (char*)"", 0, NULL); } } void wifiprofile_deleteProfile(uint8_t idx) { if (idx <= 0 || idx > WIFIPROFILE_LIMIT) { return; } char fname[16]; char fname2[16]; wifiprofile_getIdxFname(idx, (char*)fname); SPIFFS.remove(fname); for (; idx < WIFIPROFILE_LIMIT; idx++) { wifiprofile_getIdxFname(idx, (char*)fname); wifiprofile_getIdxFname(idx + 1, (char*)fname2); if (SPIFFS.exists(fname2)) { SPIFFS.rename(fname, fname2); } } } bool wifiprofile_isBlank(uint8_t idx) { wifiprofile_t p; if (wifiprofile_getProfile(idx, &p) == false) { return true; } if (p.ssid[0] == 0) { return true; } return false; } void wifiprofile_scanFill() { uint32_t t = millis(); Serial.printf("WiFi camera scan, start time %u\r\n", t); wifiprofile_t pscan, pfile; int n = WiFi.scanNetworks(false,false,false,100U); int i, j; for (i = 0; i < n; i++) { String ssid = WiFi.SSID(i); strcpy(pscan.ssid, ssid.c_str()); if (memcmp("DIRECT-", pscan.ssid, 7) == 0) { Serial.print("WiFi scan found camera: "); Serial.print(pscan.ssid); bool found = false; for (j = 1; j <= WIFIPROFILE_LIMIT && found == false; j++) { bool hasfile = wifiprofile_getProfile(j, &pfile); if (hasfile) { if (strcmp(pfile.ssid, pscan.ssid) == 0) { found = true; break; } } } if (found == false) { for (j = 1; j <= WIFIPROFILE_LIMIT && found == false; j++) { bool hasfile = wifiprofile_getProfile(j, &pfile); if (hasfile == false || pfile.ssid[0] == 0) { wifiprofile_writeProfileRaw(j, pscan.ssid, (char*)"", WIFIOPMODE_STA, NULL); Serial.printf("\t; wrote to profile #%u", j); found = true; break; } } } Serial.println(); } } uint32_t t2 = millis(), t3 = t2 - t; Serial.printf("Scan time %u\r\n", t3); // this includes all of the flash file reads } int wifiprofile_autoFind(wifiprofile_t* ptgt) { uint32_t t = millis(); Serial.printf("WiFi camera scan, start time %u\r\n", t); wifiprofile_t pscan, pfile; int n = WiFi.scanNetworks(false,false,false,100U); int i, j; for (i = 0; i < n; i++) { String ssid = WiFi.SSID(i); strcpy(pscan.ssid, ssid.c_str()); if (memcmp("DIRECT-", pscan.ssid, 7) == 0) { Serial.print("WiFi scan found camera: "); Serial.print(pscan.ssid); for (j = 1; j <= WIFIPROFILE_LIMIT; j++) { bool hasfile = wifiprofile_getProfile(j, &pfile); if (hasfile) { if (strcmp(pfile.ssid, pscan.ssid) == 0) { Serial.printf("\t; matches profile #%d\r\n", i); if (ptgt != NULL) { memcpy(ptgt, &pfile, sizeof(wifiprofile_t)); } return i; } } } Serial.println(); } } uint32_t t2 = millis(), t3 = t2 - t; Serial.printf("Scan time %u\r\n", t3); // this includes all of the flash file reads return -1; } void force_wifi_config(const char* fp) { prevent_status_bar_thread = true; pwr_tick(true); M5.Axp.GetBtnPress(); uint32_t t = millis(), now = t; M5Lcd.setRotation(0); M5Lcd.drawPngFile(SPIFFS, fp, 0, 0); if (wifi_err_reason != 0) { M5Lcd.setTextFont(2); M5Lcd.highlight(true); M5Lcd.setTextWrap(true); M5Lcd.setHighlightColor(TFT_BLACK); M5Lcd.setTextColor(TFT_WHITE, TFT_BLACK); M5Lcd.setCursor(5, M5Lcd.height() - 16); M5Lcd.printf("REASON: %d", wifi_err_reason); } while (true) { app_poll(); pwr_sleepCheck(); if (btnBoth_hasPressed()) { break; } if (M5.Axp.GetBtnPress() != 0) { show_poweroff(); M5.Axp.PowerOff(); } } btnBoth_clrPressed(); run_wifi_cfg(); } void wifi_pswdPromptDrawCb() { M5Lcd.setTextWrap(false); M5Lcd.setTextColor(TFT_BLACK, TFT_WHITE); M5Lcd.setTextFont(2); M5Lcd.setCursor(5, 4); M5Lcd.print("SSID: "); M5Lcd.print(NetMgr_getSSID()); M5Lcd.fillRect(M5Lcd.getCursorX(), M5Lcd.getCursorY(), M5Lcd.width() - M5Lcd.getCursorX(), M5Lcd.fontHeight(), TFT_WHITE); M5Lcd.setCursor(5, 18); M5Lcd.print("Password:"); } int wifi_promptForPassword(char* ssid, char* existingPassword, char* newPassword) { static FairyKeyboard kbd(&M5Lcd); cpufreq_boost(); M5Lcd.fillScreen(TFT_WHITE); kbd.register_redraw_cb(wifi_pswdPromptDrawCb); kbd.reset(); if (existingPassword != NULL) { if (existingPassword[0] != 0) { kbd.set_str(existingPassword); } } while (true) { cpufreq_boost(); autoconnect_poll(); kbd.update(imu.roll, imu.pitch); if (btnSide_hasPressed()) { kbd.toggleLowerCase(); btnSide_clrPressed(); } if (btnBig_hasPressed()) { btnBig_clrPressed(); if (kbd.click()) { char* ns = kbd.get_str(); if (strlen(ns) > 0) { if (newPassword != NULL) { strncpy(newPassword, ns, WIFI_STRING_LEN); } return WIFIPROMPTRET_DONE; } else { return WIFIPROMPTRET_EMPTY; } } } if (btnPwr_hasPressed()) { btnPwr_clrPressed(); return WIFIPROMPTRET_CANCEL; } } } bool wifi_newConnectOrPrompt(uint8_t profile_num, wifiprofile_t* profile, bool need_ask, bool can_save) { bool user_quit = false; while (user_quit == false) // this loop will prompt the user for a password until a successful connection is made (or the user cancels) { cpufreq_boost(); if (need_ask) { dbg_ser.printf("autoconnect starting keyboard\r\n"); int pret = wifi_promptForPassword((char*)profile->ssid, (char*)profile->password, (char*)profile->password); if (pret != WIFIPROMPTRET_CANCEL) { dbg_ser.printf("autoconnect keyboard done: %s\r\n", profile->password); wifiprofile_writeProfile(profile_num, profile); if (can_save && profile_num != config_settings.wifi_profile) { // only save once config_settings.wifi_profile = profile_num; settings_save(); } } else { dbg_ser.printf("autoconnect user quit keyboard\r\n"); user_quit = true; return true; } } // attempt connection NetMgr_reset(); wifiprofile_connect((can_save && need_ask) ? config_settings.wifi_profile : profile_num); autoconnect_status = AUTOCONNSTS_NONE; // this variable will be set to something by the Wi-Fi callbacks // wait for connection (with an animation) dbg_ser.printf("autoconnect waiting for connection\r\n"); gui_drawConnecting(true); while (autoconnect_status == AUTOCONNSTS_NONE) { gui_drawConnecting(false); app_poll(); if (btnAny_hasPressed()) { // any key press means to not wait for connection // no timeout implemented btnAny_clrPressed(); user_quit = true; dbg_ser.printf("autoconnect waiting for connection user quit\r\n"); return true; } } if (autoconnect_status == AUTOCONNSTS_CONNECTED) { // Wi-Fi is connected, cameras are not handshaken but we can quit this loop // this should end up in main menu after the return dbg_ser.printf("autoconnect wifi connect success\r\n"); need_ask = false; return false; } else if (autoconnect_status == AUTOCONNSTS_FAILED) { dbg_ser.printf("autoconnect wifi failed\r\n"); need_ask = true; WiFi.disconnect(); NetMgr_reset(); M5Lcd.drawPngFile(SPIFFS, "/wifi_reject.png", 0, 0); while (true) { autoconnect_poll(); if (btnBoth_hasPressed()) { // normal button press means retry entering the password dbg_ser.printf("autoconnect user wants retry\r\n"); btnBoth_clrPressed(); break; } if (btnPwr_hasPressed()) { // power button press means give up dbg_ser.printf("autoconnect user wants give up (wifi_newConnectOrPrompt)\r\n"); btnPwr_clrPressed(); user_quit = true; return true; } } } // user_quit is evaluated here, the end of the loop } return user_quit; } ================================================ FILE: arduino_workspace/AlphaFairy/alfy_conf.h ================================================ #ifndef _ALFY_CONF_H_ #define _ALFY_CONF_H_ #define ALFY_VERSION "1.0.14" // change this with every new build #define ALFY_VERSION_FILE_CHECK "/chk3.txt" // change this when FS files needs updating //#define WIFI_AP_UNIQUE_NAME #ifndef WIFI_AP_UNIQUE_NAME #define WIFI_DEFAULT_SSID "fairywifi" #else #define WIFI_DEFAULT_SSID "fairy" #endif #define WIFI_DEFAULT_PASS "1234567890" //#define DISABLE_STATUS_BAR //#define DISABLE_POWER_SAVE #define DISABLE_CMD_LINE #define DISABLE_ALL_MSG #define MUTE_NETMSG_ON_BOOT //#define HTTP_MOCKBTNS_ENABLE //#define HTTP_ON_BOOT //#define HTTP_ENABLE_CMD_INTEFACE //#define PMIC_LOG_ON_BOOT //#define PMIC_LOG_DISABLE_RECHARGING //#define ENABLE_CPU_FREQ_SCALING // doesn't work, will crash //#define ENABLE_LIGHT_SLEEP // doesn't work, no WiFi connectivity //#define ENABLE_LIGHT_SLEEP_GPIOWAKE // note: even with these features disabled, automatic light sleep should be enabled #define WIFIPROFILE_LIMIT 20 #define WIFI_STRING_LEN 30 #define SHUTTER_GPIO_ACTIVE_LOW //#define SHUTTER_GPIO_ACTIVE_HIGH #define SUBMENU_X_OFFSET 8 #define SUBMENU_Y_OFFSET 8 #define MICTRIG_LEVEL_MARGIN 16 #define GENERAL_ICON_WIDTH 60 #define CLOCK_ANG_DIV 18 #define BTN_DEBOUNCE 50 #define SERIAL_PORT_BAUDRATE 500000 //#define ENABLE_BUILD_LEPTON //#define ENABLE_BUILD_LEPTON_TRIGGER_SIMPLE //#define ENABLE_BUILD_LEPTON_TRIGGER_COMPLEX #endif ================================================ FILE: arduino_workspace/AlphaFairy/alfy_defs.h ================================================ #ifndef _ALFY_DEFS_H_ #define _ALFY_DEFS_H_ #include "alfy_conf.h" #define CONFIGSETTINGS_MAGIC 0xDEADBEEF enum { MENUITEM_NONE = 0, // if a unique identifier is needed for a menu item, add it here MENUITEM_INTERVAL, MENUITEM_ASTRO, MENUITEM_TRIGGER, MENUITEM_LEPTON, }; enum { TXTFMT_NONE = 0, TXTFMT_BASEMASK = 0x00FF, TXTFMT_BOOL = 0x0001, TXTFMT_TIME , TXTFMT_BULB , TXTFMT_TIMEMS , TXTFMT_TIMELONG , TXTFMT_SHUTTER , TXTFMT_ISO , TXTFMT_LCDBRITE , TXTFMT_PROTOCOL , TXTFMT_TRIGSRC , TXTFMT_TRIGACT , TXTFMT_PINCFG , TXTFMT_TALLEYLITE , TXTFMT_BYTENS = 0x0100, TXTFMT_AUTOCFG = 0xFF00, TXTFMT_ALLCAPS = 0x010000, TXTFMT_SMALL = 0x020000, TXTFMT_ALLLOWER = 0x040000, TXTFMT_ZEROOFF = 0x080000, TXTFMT_NEGOFF = 0x100000, TXTFMT_ZEROINF = 0x200000, TXTFMT_NEGINF = 0x400000, TXTFMT_DIVHUNDRED = 0x800000, }; enum { BATTSTAT_NONE, BATTSTAT_LOW, BATTSTAT_CHARGING, BATTSTAT_CHARGING_LOW, BATTSTAT_FULL, }; enum { SPRITESHOLDER_FOCUSPULL = 0x01, SPRITESHOLDER_INTERVAL = 0x02, }; enum { AUTOCONNRES_NONE, AUTOCONNRES_QUIT, AUTOCONNRES_FOUND_EXISTING, AUTOCONNRES_FOUND_EXISTING_NEED_PASSWORD, AUTOCONNRES_FOUND_NEW, }; enum { WIFIPROMPTRET_CANCEL, WIFIPROMPTRET_DONE, WIFIPROMPTRET_EMPTY, }; enum { AUTOCONNSTS_NONE, AUTOCONNSTS_CONNECTED, AUTOCONNSTS_FAILED, }; enum { WAITGFX_NONE, WAITGFX_CONNECTING, WAITGFX_UNSUPPORTED, }; enum { ALLOWEDPROTOCOL_ALL = 0, ALLOWEDPROTOCOL_PTP = 1, ALLOWEDPROTOCOL_HTTP = 2, }; enum { PINCFG_NONE = 0, #ifndef ENABLE_BUILD_LEPTON PINCFG_G0, // front header, shared with Lepton SPI PINCFG_G25, // shared with G36 and Lepton SPI #endif PINCFG_G26, // front header PINCFG_G32, // rear I2C PINCFG_G33, // rear I2C #ifndef ENABLE_BUILD_LEPTON PINCFG_G36, // front header, shared with G25 (and Lepton SPI) #endif PINCFG_END, }; enum { TRIGSRC_ALL = 0, TRIGSRC_MIC, TRIGSRC_EXINPUT, TRIGSRC_IMU, TRIGSRC_THERMAL, }; enum { TRIGACT_PHOTO = 0, TRIGACT_VIDEO, TRIGACT_INTERVAL, }; enum { MES_AUTO_MAX = 0, MES_AUTO_MIN, MES_CENTER, DISP_MODE_RGB = 0, DISP_MODE_GRAY, DISP_MODE_GOLDEN, DISP_MODE_RAINBOW, DISP_MODE_IRONBLACK, }; enum { LEPINIT_RST_1 = 0, LEPINIT_RST_2, LEPINIT_RST_3, LEPINIT_RST_4, LEPINIT_BEGIN, LEPINIT_SYNC, LEPINIT_CMD, LEPINIT_DONE, LEPINIT_FAIL, }; enum { THERMTRIG_OFF = 0, THERMTRIG_HOT, THERMTRIG_COLD, }; enum { INFOSCR_LANDSCAPE_WHITE, INFOSCR_LANDSCAPE_BLACK, INFOSCR_PORTRAIT_WHITE, INFOSCR_PORTRAIT_BLACK, INFOSCR_END, }; enum { QIKRMTBTN_IDLE, QIKRMTBTN_PRESSED_LOCKING_WAIT, QIKRMTBTN_PRESSED_UNLOCKING_WAIT, }; enum { QIKRMTIMU_FREE, QIKRMTIMU_FREE_TEMP, QIKRMTIMU_LOCKED, }; enum { QIKRMT_ROW_INFOSCR = 0x0F, }; enum { EDITITEM_SHUTTER, EDITITEM_APERTURE, EDITITEM_ISO, EDITITEM_EXPOCOMP, EDITITEM_END, }; enum { TALLYLITE_OFF, TALLYLITE_SCREEN, TALLYLITE_BOTH, TALLYLITE_LED, }; #endif ================================================ FILE: arduino_workspace/AlphaFairy/alfy_types.h ================================================ #ifndef _ALFY_TYPES_H_ #define _ALFY_TYPES_H_ #include #include #include "alfy_conf.h" #include "alfy_defs.h" typedef struct { uint32_t magic; uint32_t len; int32_t wifi_profile; int32_t focus_pause_time_ms; int32_t shutter_press_time_ms; int32_t manual_focus_return; int32_t nine_point_dist; int32_t shutter_speed_step_cnt; int32_t shutter_step_time_ms; int32_t infrared_enabled; int32_t pwr_save_secs; int32_t lcd_dim_secs; int32_t wifi_pwr; int32_t lcd_brightness; int32_t ssdp_timeout; int32_t intv_bulb; int32_t intv_intval; int32_t intv_delay; int32_t intv_limit; int32_t astro_bulb; int32_t astro_pause; //int32_t astro_delay; //int32_t astro_limit; int32_t trigger_armtime; int32_t trigger_delay; int32_t trigger_retrigger; int32_t trigger_vidtime; int32_t mictrig_level; int32_t mictrig_delay; int32_t trigger_siglevel; int32_t trigger_imuaccel; int32_t trigger_imurot; int32_t fenc_multi; int32_t fenc_large; int32_t tallylite; int32_t protocol; int32_t pin_shutter; int32_t pin_exinput; int32_t trigger_edge; #ifdef ENABLE_BUILD_LEPTON int32_t lepton_dispmode; int32_t lepton_measmode; int32_t lepton_trigmode; int32_t lepton_trigtemp; int32_t lepton_trigzone; #endif uint32_t infoscr_mode; uint32_t crc32; } configsettings_t; enum { SPEEDTYPE_NONE, SPEEDTYPE_PTP, SPEEDTYPE_HTTP, }; typedef struct { uint8_t flags; // use SPEEDTYPE_XXX uint32_t u32; // use for values from PTP camera char str[16]; // use for values from HTTP camera } speed_t; typedef struct { char ssid [WIFI_STRING_LEN + 2]; char password[WIFI_STRING_LEN + 2]; uint8_t opmode; char guid[16 + 1]; } wifiprofile_t; #endif ================================================ FILE: arduino_workspace/AlphaFairy/data/chk2.txt ================================================ {\rtf1} ================================================ FILE: arduino_workspace/AlphaFairy/data/chk3.txt ================================================ {\rtf1} ================================================ FILE: arduino_workspace/libraries/AlphaFairyImu/AlphaFairyImu.cpp ================================================ #include "AlphaFairyImu.h" #include #include #include #include #define TILT_THRESH 40 #define TILT_HYSTER 20 extern void MahonyAHRSupdate(float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz); // void MahonyAHRSupdateIMU(float gx, float gy, float gz, float ax, float ay, // float az); extern void MahonyAHRSupdateIMU(float gx, float gy, float gz, float ax, float ay, float az, float *pitch, float *roll, float *yaw); AlphaFairyImu::AlphaFairyImu() { hasChange = false; tilt = 0; resetSpin(); } void AlphaFairyImu::poll() { uint8_t old_tilt = tilt; int32_t old_spin = spin_cnt; uint32_t now = millis(); // MahonyAHRS wants 25 Hz sample frequency (40 millisecond intervals) // going any faster and it will integrate more gyro spin than it's supposed to // slowing it down will lower gyro sensitivity if ((now - sample_timestamp) < 40) { return; } sample_timestamp = now; M5.IMU.getGyroData(&gyroX, &gyroY, &gyroZ); M5.IMU.getAccelData(&accX, &accY, &accZ); MahonyAHRSupdateIMU(gyroX * DEG_TO_RAD, gyroY * DEG_TO_RAD, gyroZ * DEG_TO_RAD, accX, accY, accZ, &pitch, &roll, &yaw); if (hasMajorMotion == false) { // detect major movements for the purposes of auto power sleep float accMag = sqrtf((accX * accX) + (accY * accY) + (accZ * accZ)); if (accMag > 1.2 || accMag < 0.8) { hasMajorMotion |= true; } if (hasMajorMotion == false) { if (abs(gyroX) > 180 || abs(gyroY) > 180 || abs(gyroZ) > 180) { hasMajorMotion |= true; } } } // generalize the angle being reported into a tilt direction if (roll >= TILT_THRESH || (tilt > 0 && roll >= (TILT_THRESH - TILT_HYSTER))) { tilt = 1; } else if (roll <= -TILT_THRESH || (tilt < 0 && roll <= -(TILT_THRESH - TILT_HYSTER))) { tilt = -1; } else { tilt = 0; } roll_adj = roll; pitch_adj = pitch; rolli = lroundf(roll); pitchi = lroundf(pitch); if (rolli > 90 || rolli < 0) { // is upside down // the pitch number goes 0 to 90 then back to 0 again as it approaches what should be 180 // so we read the roll to see if it's about to go upside down, and recalculate pitch if (pitchi < 0) { pitch_adj = -90 + (-90 - pitch); } else { pitch_adj = 90 + (90 - pitch); } } rollai = lroundf(roll_adj); pitchai = lroundf(pitch_adj); if (((pitchai > -45 && pitchai < 0) || (pitchai < 45 && pitchai >= 0)) && (roll < 90 && roll > -90)) { // near flat, which is when we can count the spins if (spin_has_home == false) { spin_has_home = true; spin_cnt = 0; pitch_accum = 0; } if ((now - spin_timestamp) > 500) // rate limit { // see which direction we have spun if (pitch_accum > (45 * 3)) { spin_cnt++; spin_timestamp = now; } else if (pitch_accum < -(45 * 3)) { spin_cnt--; spin_timestamp = now; } } pitch_accum = 0; } else { // we are not near flat, so accumulate the spin amount int32_t diff; // impose a limit on the frame-to-frame difference in angle detected, to avoid jitter #define DIFF_LIMIT 30 #define LIMIT_DIFF_TO() do { diff = (diff > DIFF_LIMIT) ? DIFF_LIMIT : ((diff < -DIFF_LIMIT) ? -DIFF_LIMIT : diff); } while (0) if (pitchai >= 0 && pitch_prev >= 0) { diff = pitchai - pitch_prev; LIMIT_DIFF_TO(); pitch_accum += diff; } else if (pitchai <= 0 && pitch_prev <= 0) { diff = pitch_prev - pitchai; LIMIT_DIFF_TO(); pitch_accum -= diff; } else if (pitchai >= 0 && pitch_prev <= 0) { diff = (-180 - pitch_prev) - (180 - pitchai); LIMIT_DIFF_TO(); pitch_accum += diff; } else if (pitchai <= 0 && pitch_prev >= 0) { diff = (180 - pitch_prev) - (-180 - pitchai); LIMIT_DIFF_TO(); pitch_accum += diff; } } pitch_prev = pitchai; if (old_tilt != tilt) { hasChange |= true; hasMajorMotion |= true; } if (old_spin != spin_cnt) { hasChange |= true; hasMajorMotion |= true; } } int AlphaFairyImu::getSpin() { if (spin_has_home == false) { return 0; } return spin_cnt; } void AlphaFairyImu::resetSpin() { spin_has_home = false; spin_cnt = 0; pitch_accum = 0; } int8_t AlphaFairyImu::getTilt() { return tilt; } int16_t AlphaFairyImu::getPitch() { return pitchi; } int16_t AlphaFairyImu::getPitchAdj() { return pitchai; } ================================================ FILE: arduino_workspace/libraries/AlphaFairyImu/AlphaFairyImu.h ================================================ #ifndef _ALPHAFAIRYIMU_H_ #define _ALPHAFAIRYIMU_H_ #include #include class AlphaFairyImu { public: AlphaFairyImu(); void poll(); int getSpin(); void resetSpin(); int8_t getTilt(); int16_t getPitch(); int16_t getPitchAdj(); bool hasChange; bool hasMajorMotion; //private: float pitch, roll, yaw; // units are degrees float pitch_adj, roll_adj; float accX, accY, accZ, gyroX, gyroY, gyroZ; int16_t pitchi, rolli; int16_t pitchai, rollai; uint32_t sample_timestamp = 0; int8_t tilt; int32_t spin_cnt = 0; bool spin_has_home = false; int16_t pitch_prev = 0, pitch_accum = 0; uint32_t spin_timestamp = 0; }; #endif ================================================ FILE: arduino_workspace/libraries/AlphaFairy_NetMgr/AlphaFairy_NetMgr.cpp ================================================ #include "AlphaFairy_NetMgr.h" #include #include "esp_wifi.h" #ifndef WIFI_STRING_LEN #define WIFI_STRING_LEN 30 #endif typedef struct { uint32_t ip; uint8_t mac[6]; uint32_t flags; } wificli_classifier_t; static uint8_t wifi_op_mode = WIFIOPMODE_NONE; static int last_sta_status = WL_IDLE_STATUS; static char NetMgr_ssid[WIFI_STRING_LEN + 2]; static char NetMgr_password[WIFI_STRING_LEN + 2]; static uint32_t gateway_ip = 0; static void (*callback)(void) = NULL; static void (*disconnect_callback)(uint8_t, int) = NULL; static uint32_t last_sta_reconn_time = 0; // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, const int8_t wifipwr_table[WIFI_PWR_TABLE_MAX + 1] = { 0, -4, -4, 8, 20, 28, 34, 44, 52, 60, 68, 74, 76, 78, 78, }; WiFiUDP ssdp_sock; void NetMgr_taskAP(void); void NetMgr_taskSTA(void); void NetMgr_eventHandler(WiFiEvent_t event, WiFiEventInfo_t info); int8_t NetMgr_findInTableSta(tcpip_adapter_sta_info_t* sta); int8_t NetMgr_insertInTableSta(tcpip_adapter_sta_info_t* sta); int8_t NetMgr_findInTableIp(uint32_t ip); void NetMgr_tableSync(tcpip_adapter_sta_list_t* lst); #define WIFICLI_TABLE_SIZE 4 wificli_classifier_t wificli_table[WIFICLI_TABLE_SIZE]; void NetMgr_beginAP(char* ssid, char* password) { if (wifi_op_mode != WIFIOPMODE_NONE) { esp_wifi_disconnect(); } wifi_op_mode = WIFIOPMODE_AP; NetMgr_reset(); strncpy(NetMgr_ssid , ssid , WIFI_STRING_LEN); strncpy(NetMgr_password, password, WIFI_STRING_LEN); WiFi.mode(WIFI_AP); WiFi.softAP(ssid, password); } void NetMgr_beginSTA(char* ssid, char* password) { if (wifi_op_mode != WIFIOPMODE_NONE) { esp_wifi_disconnect(); } wifi_op_mode = WIFIOPMODE_STA; NetMgr_reset(); strncpy(NetMgr_ssid , ssid , WIFI_STRING_LEN); strncpy(NetMgr_password, password, WIFI_STRING_LEN); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); last_sta_reconn_time = millis(); } void NetMgr_regCallback(void(*cb_evt)(void), void(*cb_disconn)(uint8_t, int)) { WiFi.onEvent(NetMgr_eventHandler, WiFiEvent_t::ARDUINO_EVENT_WIFI_AP_STAIPASSIGNED); WiFi.onEvent(NetMgr_eventHandler, WiFiEvent_t::ARDUINO_EVENT_WIFI_AP_STADISCONNECTED); WiFi.onEvent(NetMgr_eventHandler, WiFiEvent_t::ARDUINO_EVENT_WIFI_STA_GOT_IP); WiFi.onEvent(NetMgr_eventHandler, WiFiEvent_t::ARDUINO_EVENT_WIFI_STA_DISCONNECTED); WiFi.onEvent(NetMgr_eventHandler, WiFiEvent_t::ARDUINO_EVENT_WIFI_STA_LOST_IP); callback = cb_evt; disconnect_callback = cb_disconn; } void NetMgr_taskAP() { wifi_sta_list_t wifi_sta_list; tcpip_adapter_sta_list_t adapter_sta_list; memset(&wifi_sta_list , 0, sizeof(wifi_sta_list )); memset(&adapter_sta_list, 0, sizeof(adapter_sta_list)); esp_wifi_ap_get_sta_list (&wifi_sta_list); tcpip_adapter_get_sta_list(&wifi_sta_list, &adapter_sta_list); NetMgr_tableSync(&adapter_sta_list); if (NetMgr_getConnectableClient() != 0) { // start SSDP listening as soon as possible ssdp_sock.beginMulticast(IPAddress(239,255,255,250), 1900); ssdp_sock.beginMulticastPacket(); ssdp_sock.endPacket(); } if (callback != NULL) { callback(); } } void NetMgr_taskSTA() { int status = WiFi.status(); if (status == WL_CONNECTED) { IPAddress gateway = WiFi.gatewayIP(); IPAddress localIp = WiFi.localIP(); if (gateway != 0 && localIp != 0) { // start SSDP listening as soon as possible ssdp_sock.beginMulticast(IPAddress(239,255,255,250), 1900); ssdp_sock.beginMulticastPacket(); ssdp_sock.endPacket(); if (status != last_sta_status) { last_sta_status = status; gateway_ip = gateway; if (callback != NULL) { callback(); } } } } else { if (status != last_sta_status && last_sta_status == WL_CONNECTED && disconnect_callback != NULL) { disconnect_callback(WIFIDISCON_NORMAL, 0); } last_sta_status = status; } } void NetMgr_eventHandler(WiFiEvent_t event, WiFiEventInfo_t info) { if (wifi_op_mode == WIFIOPMODE_AP) { NetMgr_taskAP(); } else if (wifi_op_mode == WIFIOPMODE_STA) { int reason = (int)info.wifi_sta_disconnected.reason; #if 0 if (event == ARDUINO_EVENT_WIFI_STA_DISCONNECTED && last_sta_status == WL_CONNECTED) { WiFi.reconnect(); last_sta_reconn_time = millis(); } else if (event == ARDUINO_EVENT_WIFI_STA_DISCONNECTED && (millis() - last_sta_reconn_time) > 200) { WiFi.disconnect(); WiFi.begin(); last_sta_reconn_time = millis(); } #endif if (event == ARDUINO_EVENT_WIFI_STA_DISCONNECTED && (reason == 202 || reason == 203 || reason == 23 || reason == 15)) { Serial.printf("STA disconnect auth fail %d\r\n", reason); if (disconnect_callback != NULL) { disconnect_callback(WIFIDISCON_AUTH_FAIL, reason); } } else if (event == ARDUINO_EVENT_WIFI_STA_DISCONNECTED && (reason < 200 && reason != 3 && reason != 8 && reason != 7)) { Serial.printf("STA disconnect error %d\r\n", reason); if (disconnect_callback != NULL) { disconnect_callback(WIFIDISCON_AUTH_ERROR, reason); } } else if (event == ARDUINO_EVENT_WIFI_STA_DISCONNECTED && (reason == 3 || reason == 8)) { Serial.printf("STA disconnect normal %d\r\n", reason); if (disconnect_callback != NULL) { disconnect_callback(WIFIDISCON_NORMAL, reason); } WiFi.reconnect(); last_sta_reconn_time = millis(); } else if (event == ARDUINO_EVENT_WIFI_STA_DISCONNECTED && (reason == 7)) { // do nothing } #if 0 else if (event == ARDUINO_EVENT_WIFI_STA_DISCONNECTED) { if (disconnect_callback != NULL) { disconnect_callback(WIFIDISCON_NORMAL, reason); } WiFi.disconnect(); WiFi.begin(); last_sta_reconn_time = millis(); } #endif NetMgr_taskSTA(); } } void NetMgr_task() { #if 0 if (wifi_op_mode == WIFIOPMODE_STA && WiFi.status() != WL_CONNECTED && last_sta_status != WL_CONNECTED) { uint32_t now = millis(); if ((now - last_sta_reconn_time) > 1000) { WiFi.reconnect(); last_sta_reconn_time = now; } } #endif if (callback != NULL) { return; } if (wifi_op_mode == WIFIOPMODE_AP) { NetMgr_taskAP(); } else if (wifi_op_mode == WIFIOPMODE_STA) { NetMgr_taskSTA(); } } int8_t NetMgr_findInTableSta(tcpip_adapter_sta_info_t* sta) { int i; for (i = 0; i < WIFICLI_TABLE_SIZE; i++) { wificli_classifier_t* t = &(wificli_table[i]); if (memcmp(t->mac, sta->mac, 6) == 0) { return i; } } return -1; } int8_t NetMgr_insertInTableSta(tcpip_adapter_sta_info_t* sta) { int8_t i = NetMgr_findInTableSta(sta); wificli_classifier_t* t; if (i < 0) { for (i = 0; i < WIFICLI_TABLE_SIZE; i++) { t = &(wificli_table[i]); if (t->ip == 0) { t->ip = sta->ip.addr; memcpy(t->mac, sta->mac, 6); t->flags = 0; return i; } } } else { t = &(wificli_table[i]); t->ip = sta->ip.addr; memcpy(t->mac, sta->mac, 6); return i; } return -1; } int8_t NetMgr_findInTableIp(uint32_t ip) { int i; for (i = 0; i < WIFICLI_TABLE_SIZE; i++) { wificli_classifier_t* t = &(wificli_table[i]); if (t->ip == ip) { return i; } } return -1; } void NetMgr_tableSync(tcpip_adapter_sta_list_t* lst) { int i, j; for (i = 0; i < WIFICLI_TABLE_SIZE; i++) { wificli_classifier_t* t = &(wificli_table[i]); if (t->ip != 0) { bool found = false; for (j = 0; j < lst->num; j++) { if (lst->sta[j].ip.addr != 0 && memcmp(lst->sta[j].mac, t->mac, 6) == 0) { t->ip = lst->sta[j].ip.addr; found = true; } } if (found == false) { t->ip = 0; } } } for (j = 0; j < lst->num; j++) { if (lst->sta[j].ip.addr != 0) { NetMgr_insertInTableSta(&(lst->sta[j])); } } } uint32_t NetMgr_getConnectableClient(void) { if (wifi_op_mode == WIFIOPMODE_STA) { return gateway_ip; } int i; for (i = 0; i < WIFICLI_TABLE_SIZE; i++) { wificli_classifier_t* t = &(wificli_table[i]); if (t->ip != 0 && t->flags == 0) { return t->ip; } } return 0; } void NetMgr_markClientCameraPtp(uint32_t ip) { int8_t i = NetMgr_findInTableIp(ip); if (i < 0) { return; } wificli_classifier_t* t = &(wificli_table[i]); t->flags |= WIFICLIFLAG_IS_CAMPTP; } void NetMgr_markClientCameraHttp(uint32_t ip) { int8_t i = NetMgr_findInTableIp(ip); if (i < 0) { return; } wificli_classifier_t* t = &(wificli_table[i]); t->flags |= WIFICLIFLAG_IS_CAMHTTP; } void NetMgr_markClientPhoneHttp(uint32_t ip) { int8_t i = NetMgr_findInTableIp(ip); if (i < 0) { return; } wificli_classifier_t* t = &(wificli_table[i]); t->flags |= WIFICLIFLAG_IS_PHONEHTTP; } void NetMgr_markClientError(uint32_t ip) { int8_t i = NetMgr_findInTableIp(ip); if (i < 0) { return; } wificli_classifier_t* t = &(wificli_table[i]); t->flags |= WIFICLIFLAG_IS_ERROR; } void NetMgr_markClientDisconnect(uint32_t ip) { int8_t i = NetMgr_findInTableIp(ip); if (i < 0) { return; } wificli_classifier_t* t = &(wificli_table[i]); t->ip = 0; t->flags = WIFICLIFLAG_NONE; } bool NetMgr_shouldReportError(void) { bool has_cli = false, rpt_err = true; int i; for (i = 0; i < WIFICLI_TABLE_SIZE; i++) { wificli_classifier_t* t = &(wificli_table[i]); if (t->ip != 0) { has_cli = true; if ((t->flags & WIFICLIFLAG_IS_ERROR) == 0 || (t->flags & WIFICLIFLAG_IS_PHONEHTTP) != 0 || (t->flags & WIFICLIFLAG_IS_CAMHTTP) != 0) { rpt_err = false; } } } if (has_cli == false) { return false; } return rpt_err; } bool NetMgr_hasActiveClients(void) { int i; for (i = 0; i < WIFICLI_TABLE_SIZE; i++) { wificli_classifier_t* t = &(wificli_table[i]); if (t->ip != 0 && (t->flags & WIFICLIFLAG_IS_ERROR) == 0) { return true; } } return false; } uint8_t NetMgr_getOpMode() { return wifi_op_mode; } void NetMgr_reset() { last_sta_status = WL_IDLE_STATUS; gateway_ip = 0; memset((void*)wificli_table, 0, sizeof(wificli_classifier_t) * WIFICLI_TABLE_SIZE); } void NetMgr_reboot() { NetMgr_reset(); esp_wifi_disconnect(); if (wifi_op_mode == WIFIOPMODE_AP) { WiFi.mode(WIFI_AP); WiFi.softAP(NetMgr_ssid, NetMgr_password); } else if (wifi_op_mode == WIFIOPMODE_STA) { WiFi.mode(WIFI_STA); WiFi.begin(NetMgr_ssid, NetMgr_password); last_sta_reconn_time = millis(); } } void NetMgr_setWifiPower(wifi_power_t pwr) { while (WiFi.setTxPower(pwr) == false) { pwr = (wifi_power_t)(((int)pwr) - 1); } } bool NetMgr_getRssi(uint32_t ip, int* outres) { int i; uint8_t* mac = NULL; if (ip == 0) { return false; } if (wifi_op_mode == WIFIOPMODE_AP) { wifi_sta_list_t wifi_sta_list; tcpip_adapter_sta_list_t adapter_sta_list; memset(&wifi_sta_list , 0, sizeof(wifi_sta_list )); memset(&adapter_sta_list, 0, sizeof(adapter_sta_list)); esp_wifi_ap_get_sta_list (&wifi_sta_list); tcpip_adapter_get_sta_list(&wifi_sta_list, &adapter_sta_list); for (i = 0; i < adapter_sta_list.num; i++) { tcpip_adapter_sta_info_t* adapter = &(adapter_sta_list.sta[i]); if (adapter->ip.addr == ip) { mac = adapter->mac; break; } } for (i == 0; i < wifi_sta_list.num && mac != NULL; i++) { wifi_sta_info_t* nfo = &(wifi_sta_list.sta[i]); if (memcmp(nfo->mac, mac, 6) == 0) { int rssi32 = nfo->rssi; *outres = rssi32; return true; } } } else if (wifi_op_mode == WIFIOPMODE_STA) { wifi_ap_record_t aprec; if (esp_wifi_sta_get_ap_info(&aprec) == 0) { int rssi32 = aprec.rssi; *outres = rssi32; return true; } } return false; } char* NetMgr_getSSID() { return NetMgr_ssid; } char* NetMgr_getPassword() { return NetMgr_password; } WiFiUDP* NetMgr_getSsdpSock() { // this socket is already listening, pass it to the camera object return &ssdp_sock; } ================================================ FILE: arduino_workspace/libraries/AlphaFairy_NetMgr/AlphaFairy_NetMgr.h ================================================ #ifndef _ALPHAFAIRY_NETMGR_H_ #define _ALPHAFAIRY_NETMGR_H_ #include #include #include #include "esp_wifi.h" #ifdef __cplusplus extern "C" { #endif enum { WIFIOPMODE_NONE = 0, WIFIOPMODE_AP = 1, WIFIOPMODE_STA = 2, }; enum { WIFICLIFLAG_NONE = 0, WIFICLIFLAG_IS_CAMPTP = 0x01, WIFICLIFLAG_IS_CAMHTTP = 0x02, WIFICLIFLAG_IS_PHONEHTTP = 0x02, WIFICLIFLAG_IS_ERROR = 0x08, }; enum { WIFIDISCON_NORMAL, WIFIDISCON_AUTH_ERROR, WIFIDISCON_AUTH_FAIL, }; #define WIFI_PWR_TABLE_MAX 14 extern const int8_t wifipwr_table[WIFI_PWR_TABLE_MAX + 1]; void NetMgr_beginAP(char* ssid, char* password); void NetMgr_beginSTA(char* ssid, char* password); void NetMgr_task(void); void NetMgr_reset(void); void NetMgr_reboot(void); uint8_t NetMgr_getOpMode(void); char* NetMgr_getSSID(void); char* NetMgr_getPassword(void); void NetMgr_setWifiPower(wifi_power_t pwr); bool NetMgr_getRssi(uint32_t ip, int* outres); void NetMgr_regCallback(void(*cb_evt)(void), void(*cb_discon)(uint8_t, int)); uint32_t NetMgr_getConnectableClient(void); bool NetMgr_hasActiveClients(void); void NetMgr_markClientCameraPtp(uint32_t ip); void NetMgr_markClientCameraHttp(uint32_t ip); void NetMgr_markClientPhoneHttp(uint32_t ip); void NetMgr_markClientError(uint32_t ip); void NetMgr_markClientDisconnect(uint32_t ip); bool NetMgr_shouldReportError(void); WiFiUDP* NetMgr_getSsdpSock(void); #ifdef __cplusplus } #endif #endif ================================================ FILE: arduino_workspace/libraries/AsyncTCP/.gitignore ================================================ .DS_Store .github examples ================================================ FILE: arduino_workspace/libraries/AsyncTCP/.travis.yml ================================================ sudo: false language: python os: - linux git: depth: false stages: - build jobs: include: - name: "Arduino Build" if: tag IS blank AND (type = pull_request OR (type = push AND branch = master)) stage: build script: bash $TRAVIS_BUILD_DIR/.github/scripts/on-push.sh - name: "PlatformIO Build" if: tag IS blank AND (type = pull_request OR (type = push AND branch = master)) stage: build script: bash $TRAVIS_BUILD_DIR/.github/scripts/on-push.sh 1 1 notifications: email: on_success: change on_failure: change webhooks: urls: - https://webhooks.gitter.im/e/60e65d0c78ea0a920347 on_success: change # options: [always|never|change] default: always on_failure: always # options: [always|never|change] default: always on_start: false # default: false ================================================ FILE: arduino_workspace/libraries/AsyncTCP/CMakeLists.txt ================================================ set(COMPONENT_SRCDIRS "src" ) set(COMPONENT_ADD_INCLUDEDIRS "src" ) set(COMPONENT_REQUIRES "arduino-esp32" ) register_component() target_compile_options(${COMPONENT_TARGET} PRIVATE -fno-rtti) ================================================ FILE: arduino_workspace/libraries/AsyncTCP/Kconfig.projbuild ================================================ menu "AsyncTCP Configuration" choice ASYNC_TCP_RUNNING_CORE bool "Core on which AsyncTCP's thread is running" default ASYNC_TCP_RUN_CORE1 help Select on which core AsyncTCP is running config ASYNC_TCP_RUN_CORE0 bool "CORE 0" config ASYNC_TCP_RUN_CORE1 bool "CORE 1" config ASYNC_TCP_RUN_NO_AFFINITY bool "BOTH" endchoice config ASYNC_TCP_RUNNING_CORE int default 0 if ASYNC_TCP_RUN_CORE0 default 1 if ASYNC_TCP_RUN_CORE1 default -1 if ASYNC_TCP_RUN_NO_AFFINITY config ASYNC_TCP_USE_WDT bool "Enable WDT for the AsyncTCP task" default "y" help Enable WDT for the AsyncTCP task, so it will trigger if a handler is locking the thread. endmenu ================================================ FILE: arduino_workspace/libraries/AsyncTCP/LICENSE ================================================ GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. ================================================ FILE: arduino_workspace/libraries/AsyncTCP/README.md ================================================ https://github.com/me-no-dev/AsyncTCP ca8ac5f919d02bea07b474531981ddbfd64de97c # AsyncTCP [![Build Status](https://travis-ci.org/me-no-dev/AsyncTCP.svg?branch=master)](https://travis-ci.org/me-no-dev/AsyncTCP) ![](https://github.com/me-no-dev/AsyncTCP/workflows/Async%20TCP%20CI/badge.svg) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/2f7e4d1df8b446d192cbfec6dc174d2d)](https://www.codacy.com/manual/me-no-dev/AsyncTCP?utm_source=github.com&utm_medium=referral&utm_content=me-no-dev/AsyncTCP&utm_campaign=Badge_Grade) ### Async TCP Library for ESP32 Arduino [![Join the chat at https://gitter.im/me-no-dev/ESPAsyncWebServer](https://badges.gitter.im/me-no-dev/ESPAsyncWebServer.svg)](https://gitter.im/me-no-dev/ESPAsyncWebServer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) This is a fully asynchronous TCP library, aimed at enabling trouble-free, multi-connection network environment for Espressif's ESP32 MCUs. This library is the base for [ESPAsyncWebServer](https://github.com/me-no-dev/ESPAsyncWebServer) ## AsyncClient and AsyncServer The base classes on which everything else is built. They expose all possible scenarios, but are really raw and require more skills to use. ================================================ FILE: arduino_workspace/libraries/AsyncTCP/component.mk ================================================ COMPONENT_ADD_INCLUDEDIRS := src COMPONENT_SRCDIRS := src CXXFLAGS += -fno-rtti ================================================ FILE: arduino_workspace/libraries/AsyncTCP/library.json ================================================ { "name":"AsyncTCP", "description":"Asynchronous TCP Library for ESP32", "keywords":"async,tcp", "authors": { "name": "Hristo Gochkov", "maintainer": true }, "repository": { "type": "git", "url": "https://github.com/me-no-dev/AsyncTCP.git" }, "version": "1.1.1", "license": "LGPL-3.0", "frameworks": "arduino", "platforms": "espressif32", "build": { "libCompatMode": 2 } } ================================================ FILE: arduino_workspace/libraries/AsyncTCP/library.properties ================================================ name=AsyncTCP version=1.1.1 author=Me-No-Dev maintainer=Me-No-Dev sentence=Async TCP Library for ESP32 paragraph=Async TCP Library for ESP32 category=Other url=https://github.com/me-no-dev/AsyncTCP architectures=* ================================================ FILE: arduino_workspace/libraries/AsyncTCP/src/AsyncTCP.cpp ================================================ /* Asynchronous TCP library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "Arduino.h" #include "AsyncTCP.h" extern "C"{ #include "lwip/opt.h" #include "lwip/tcp.h" #include "lwip/inet.h" #include "lwip/dns.h" #include "lwip/err.h" } #include "esp_task_wdt.h" /* * TCP/IP Event Task * */ typedef enum { LWIP_TCP_SENT, LWIP_TCP_RECV, LWIP_TCP_FIN, LWIP_TCP_ERROR, LWIP_TCP_POLL, LWIP_TCP_CLEAR, LWIP_TCP_ACCEPT, LWIP_TCP_CONNECTED, LWIP_TCP_DNS } lwip_event_t; typedef struct { lwip_event_t event; void *arg; union { struct { void * pcb; int8_t err; } connected; struct { int8_t err; } error; struct { tcp_pcb * pcb; uint16_t len; } sent; struct { tcp_pcb * pcb; pbuf * pb; int8_t err; } recv; struct { tcp_pcb * pcb; int8_t err; } fin; struct { tcp_pcb * pcb; } poll; struct { AsyncClient * client; } accept; struct { const char * name; ip_addr_t addr; } dns; }; } lwip_event_packet_t; static xQueueHandle _async_queue; static TaskHandle_t _async_service_task_handle = NULL; SemaphoreHandle_t _slots_lock; const int _number_of_closed_slots = CONFIG_LWIP_MAX_ACTIVE_TCP; static uint32_t _closed_slots[_number_of_closed_slots]; static uint32_t _closed_index = []() { _slots_lock = xSemaphoreCreateBinary(); xSemaphoreGive(_slots_lock); for (int i = 0; i < _number_of_closed_slots; ++ i) { _closed_slots[i] = 1; } return 1; }(); static inline bool _init_async_event_queue(){ if(!_async_queue){ _async_queue = xQueueCreate(32, sizeof(lwip_event_packet_t *)); if(!_async_queue){ return false; } } return true; } static inline bool _send_async_event(lwip_event_packet_t ** e){ return _async_queue && xQueueSend(_async_queue, e, portMAX_DELAY) == pdPASS; } static inline bool _prepend_async_event(lwip_event_packet_t ** e){ return _async_queue && xQueueSendToFront(_async_queue, e, portMAX_DELAY) == pdPASS; } static inline bool _get_async_event(lwip_event_packet_t ** e){ return _async_queue && xQueueReceive(_async_queue, e, portMAX_DELAY) == pdPASS; } static bool _remove_events_with_arg(void * arg){ lwip_event_packet_t * first_packet = NULL; lwip_event_packet_t * packet = NULL; if(!_async_queue){ return false; } //figure out which is the first packet so we can keep the order while(!first_packet){ if(xQueueReceive(_async_queue, &first_packet, 0) != pdPASS){ return false; } //discard packet if matching if((int)first_packet->arg == (int)arg){ free(first_packet); first_packet = NULL; //return first packet to the back of the queue } else if(xQueueSend(_async_queue, &first_packet, portMAX_DELAY) != pdPASS){ return false; } } while(xQueuePeek(_async_queue, &packet, 0) == pdPASS && packet != first_packet){ if(xQueueReceive(_async_queue, &packet, 0) != pdPASS){ return false; } if((int)packet->arg == (int)arg){ free(packet); packet = NULL; } else if(xQueueSend(_async_queue, &packet, portMAX_DELAY) != pdPASS){ return false; } } return true; } static void _handle_async_event(lwip_event_packet_t * e){ if(e->arg == NULL){ // do nothing when arg is NULL //ets_printf("event arg == NULL: 0x%08x\n", e->recv.pcb); } else if(e->event == LWIP_TCP_CLEAR){ _remove_events_with_arg(e->arg); } else if(e->event == LWIP_TCP_RECV){ //ets_printf("-R: 0x%08x\n", e->recv.pcb); AsyncClient::_s_recv(e->arg, e->recv.pcb, e->recv.pb, e->recv.err); } else if(e->event == LWIP_TCP_FIN){ //ets_printf("-F: 0x%08x\n", e->fin.pcb); AsyncClient::_s_fin(e->arg, e->fin.pcb, e->fin.err); } else if(e->event == LWIP_TCP_SENT){ //ets_printf("-S: 0x%08x\n", e->sent.pcb); AsyncClient::_s_sent(e->arg, e->sent.pcb, e->sent.len); } else if(e->event == LWIP_TCP_POLL){ //ets_printf("-P: 0x%08x\n", e->poll.pcb); AsyncClient::_s_poll(e->arg, e->poll.pcb); } else if(e->event == LWIP_TCP_ERROR){ //ets_printf("-E: 0x%08x %d\n", e->arg, e->error.err); AsyncClient::_s_error(e->arg, e->error.err); } else if(e->event == LWIP_TCP_CONNECTED){ //ets_printf("C: 0x%08x 0x%08x %d\n", e->arg, e->connected.pcb, e->connected.err); AsyncClient::_s_connected(e->arg, e->connected.pcb, e->connected.err); } else if(e->event == LWIP_TCP_ACCEPT){ //ets_printf("A: 0x%08x 0x%08x\n", e->arg, e->accept.client); AsyncServer::_s_accepted(e->arg, e->accept.client); } else if(e->event == LWIP_TCP_DNS){ //ets_printf("D: 0x%08x %s = %s\n", e->arg, e->dns.name, ipaddr_ntoa(&e->dns.addr)); AsyncClient::_s_dns_found(e->dns.name, &e->dns.addr, e->arg); } free((void*)(e)); } static void _async_service_task(void *pvParameters){ lwip_event_packet_t * packet = NULL; for (;;) { if(_get_async_event(&packet)){ #if CONFIG_ASYNC_TCP_USE_WDT if(esp_task_wdt_add(NULL) != ESP_OK){ log_e("Failed to add async task to WDT"); } #endif _handle_async_event(packet); #if CONFIG_ASYNC_TCP_USE_WDT if(esp_task_wdt_delete(NULL) != ESP_OK){ log_e("Failed to remove loop task from WDT"); } #endif } } vTaskDelete(NULL); _async_service_task_handle = NULL; } /* static void _stop_async_task(){ if(_async_service_task_handle){ vTaskDelete(_async_service_task_handle); _async_service_task_handle = NULL; } } */ static bool _start_async_task(){ if(!_init_async_event_queue()){ return false; } if(!_async_service_task_handle){ xTaskCreateUniversal(_async_service_task, "async_tcp", 8192 * 2, NULL, 3, &_async_service_task_handle, CONFIG_ASYNC_TCP_RUNNING_CORE); if(!_async_service_task_handle){ return false; } } return true; } /* * LwIP Callbacks * */ static int8_t _tcp_clear_events(void * arg) { lwip_event_packet_t * e = (lwip_event_packet_t *)malloc(sizeof(lwip_event_packet_t)); e->event = LWIP_TCP_CLEAR; e->arg = arg; if (!_prepend_async_event(&e)) { free((void*)(e)); } return ERR_OK; } static int8_t _tcp_connected(void * arg, tcp_pcb * pcb, int8_t err) { //ets_printf("+C: 0x%08x\n", pcb); lwip_event_packet_t * e = (lwip_event_packet_t *)malloc(sizeof(lwip_event_packet_t)); e->event = LWIP_TCP_CONNECTED; e->arg = arg; e->connected.pcb = pcb; e->connected.err = err; if (!_prepend_async_event(&e)) { free((void*)(e)); } return ERR_OK; } static int8_t _tcp_poll(void * arg, struct tcp_pcb * pcb) { //ets_printf("+P: 0x%08x\n", pcb); lwip_event_packet_t * e = (lwip_event_packet_t *)malloc(sizeof(lwip_event_packet_t)); e->event = LWIP_TCP_POLL; e->arg = arg; e->poll.pcb = pcb; if (!_send_async_event(&e)) { free((void*)(e)); } return ERR_OK; } static int8_t _tcp_recv(void * arg, struct tcp_pcb * pcb, struct pbuf *pb, int8_t err) { lwip_event_packet_t * e = (lwip_event_packet_t *)malloc(sizeof(lwip_event_packet_t)); e->arg = arg; if(pb){ //ets_printf("+R: 0x%08x\n", pcb); e->event = LWIP_TCP_RECV; e->recv.pcb = pcb; e->recv.pb = pb; e->recv.err = err; } else { //ets_printf("+F: 0x%08x\n", pcb); e->event = LWIP_TCP_FIN; e->fin.pcb = pcb; e->fin.err = err; //close the PCB in LwIP thread AsyncClient::_s_lwip_fin(e->arg, e->fin.pcb, e->fin.err); } if (!_send_async_event(&e)) { free((void*)(e)); } return ERR_OK; } static int8_t _tcp_sent(void * arg, struct tcp_pcb * pcb, uint16_t len) { //ets_printf("+S: 0x%08x\n", pcb); lwip_event_packet_t * e = (lwip_event_packet_t *)malloc(sizeof(lwip_event_packet_t)); e->event = LWIP_TCP_SENT; e->arg = arg; e->sent.pcb = pcb; e->sent.len = len; if (!_send_async_event(&e)) { free((void*)(e)); } return ERR_OK; } static void _tcp_error(void * arg, int8_t err) { //ets_printf("+E: 0x%08x\n", arg); lwip_event_packet_t * e = (lwip_event_packet_t *)malloc(sizeof(lwip_event_packet_t)); e->event = LWIP_TCP_ERROR; e->arg = arg; e->error.err = err; if (!_send_async_event(&e)) { free((void*)(e)); } } static void _tcp_dns_found(const char * name, struct ip_addr * ipaddr, void * arg) { lwip_event_packet_t * e = (lwip_event_packet_t *)malloc(sizeof(lwip_event_packet_t)); //ets_printf("+DNS: name=%s ipaddr=0x%08x arg=%x\n", name, ipaddr, arg); e->event = LWIP_TCP_DNS; e->arg = arg; e->dns.name = name; if (ipaddr) { memcpy(&e->dns.addr, ipaddr, sizeof(struct ip_addr)); } else { memset(&e->dns.addr, 0, sizeof(e->dns.addr)); } if (!_send_async_event(&e)) { free((void*)(e)); } } //Used to switch out from LwIP thread static int8_t _tcp_accept(void * arg, AsyncClient * client) { lwip_event_packet_t * e = (lwip_event_packet_t *)malloc(sizeof(lwip_event_packet_t)); e->event = LWIP_TCP_ACCEPT; e->arg = arg; e->accept.client = client; if (!_prepend_async_event(&e)) { free((void*)(e)); } return ERR_OK; } /* * TCP/IP API Calls * */ #include "lwip/priv/tcpip_priv.h" typedef struct { struct tcpip_api_call_data call; tcp_pcb * pcb; int8_t closed_slot; int8_t err; union { struct { const char* data; size_t size; uint8_t apiflags; } write; size_t received; struct { ip_addr_t * addr; uint16_t port; tcp_connected_fn cb; } connect; struct { ip_addr_t * addr; uint16_t port; } bind; uint8_t backlog; }; } tcp_api_call_t; static err_t _tcp_output_api(struct tcpip_api_call_data *api_call_msg){ tcp_api_call_t * msg = (tcp_api_call_t *)api_call_msg; msg->err = ERR_CONN; if(msg->closed_slot == -1 || !_closed_slots[msg->closed_slot]) { msg->err = tcp_output(msg->pcb); } return msg->err; } static esp_err_t _tcp_output(tcp_pcb * pcb, int8_t closed_slot) { if(!pcb){ return ERR_CONN; } tcp_api_call_t msg; msg.pcb = pcb; msg.closed_slot = closed_slot; tcpip_api_call(_tcp_output_api, (struct tcpip_api_call_data*)&msg); return msg.err; } static err_t _tcp_write_api(struct tcpip_api_call_data *api_call_msg){ tcp_api_call_t * msg = (tcp_api_call_t *)api_call_msg; msg->err = ERR_CONN; if(msg->closed_slot == -1 || !_closed_slots[msg->closed_slot]) { msg->err = tcp_write(msg->pcb, msg->write.data, msg->write.size, msg->write.apiflags); } return msg->err; } static esp_err_t _tcp_write(tcp_pcb * pcb, int8_t closed_slot, const char* data, size_t size, uint8_t apiflags) { if(!pcb){ return ERR_CONN; } tcp_api_call_t msg; msg.pcb = pcb; msg.closed_slot = closed_slot; msg.write.data = data; msg.write.size = size; msg.write.apiflags = apiflags; tcpip_api_call(_tcp_write_api, (struct tcpip_api_call_data*)&msg); return msg.err; } static err_t _tcp_recved_api(struct tcpip_api_call_data *api_call_msg){ tcp_api_call_t * msg = (tcp_api_call_t *)api_call_msg; msg->err = ERR_CONN; if(msg->closed_slot == -1 || !_closed_slots[msg->closed_slot]) { msg->err = 0; tcp_recved(msg->pcb, msg->received); } return msg->err; } static esp_err_t _tcp_recved(tcp_pcb * pcb, int8_t closed_slot, size_t len) { if(!pcb){ return ERR_CONN; } tcp_api_call_t msg; msg.pcb = pcb; msg.closed_slot = closed_slot; msg.received = len; tcpip_api_call(_tcp_recved_api, (struct tcpip_api_call_data*)&msg); return msg.err; } static err_t _tcp_close_api(struct tcpip_api_call_data *api_call_msg){ tcp_api_call_t * msg = (tcp_api_call_t *)api_call_msg; msg->err = ERR_CONN; if(msg->closed_slot == -1 || !_closed_slots[msg->closed_slot]) { msg->err = tcp_close(msg->pcb); } return msg->err; } static esp_err_t _tcp_close(tcp_pcb * pcb, int8_t closed_slot) { if(!pcb){ return ERR_CONN; } tcp_api_call_t msg; msg.pcb = pcb; msg.closed_slot = closed_slot; tcpip_api_call(_tcp_close_api, (struct tcpip_api_call_data*)&msg); return msg.err; } static err_t _tcp_abort_api(struct tcpip_api_call_data *api_call_msg){ tcp_api_call_t * msg = (tcp_api_call_t *)api_call_msg; msg->err = ERR_CONN; if(msg->closed_slot == -1 || !_closed_slots[msg->closed_slot]) { tcp_abort(msg->pcb); } return msg->err; } static esp_err_t _tcp_abort(tcp_pcb * pcb, int8_t closed_slot) { if(!pcb){ return ERR_CONN; } tcp_api_call_t msg; msg.pcb = pcb; msg.closed_slot = closed_slot; tcpip_api_call(_tcp_abort_api, (struct tcpip_api_call_data*)&msg); return msg.err; } static err_t _tcp_connect_api(struct tcpip_api_call_data *api_call_msg){ tcp_api_call_t * msg = (tcp_api_call_t *)api_call_msg; msg->err = tcp_connect(msg->pcb, msg->connect.addr, msg->connect.port, msg->connect.cb); return msg->err; } static esp_err_t _tcp_connect(tcp_pcb * pcb, int8_t closed_slot, ip_addr_t * addr, uint16_t port, tcp_connected_fn cb) { if(!pcb){ return ESP_FAIL; } tcp_api_call_t msg; msg.pcb = pcb; msg.closed_slot = closed_slot; msg.connect.addr = addr; msg.connect.port = port; msg.connect.cb = cb; tcpip_api_call(_tcp_connect_api, (struct tcpip_api_call_data*)&msg); return msg.err; } static err_t _tcp_bind_api(struct tcpip_api_call_data *api_call_msg){ tcp_api_call_t * msg = (tcp_api_call_t *)api_call_msg; msg->err = tcp_bind(msg->pcb, msg->bind.addr, msg->bind.port); return msg->err; } static esp_err_t _tcp_bind(tcp_pcb * pcb, ip_addr_t * addr, uint16_t port) { if(!pcb){ return ESP_FAIL; } tcp_api_call_t msg; msg.pcb = pcb; msg.closed_slot = -1; msg.bind.addr = addr; msg.bind.port = port; tcpip_api_call(_tcp_bind_api, (struct tcpip_api_call_data*)&msg); return msg.err; } static err_t _tcp_listen_api(struct tcpip_api_call_data *api_call_msg){ tcp_api_call_t * msg = (tcp_api_call_t *)api_call_msg; msg->err = 0; msg->pcb = tcp_listen_with_backlog(msg->pcb, msg->backlog); return msg->err; } static tcp_pcb * _tcp_listen_with_backlog(tcp_pcb * pcb, uint8_t backlog) { if(!pcb){ return NULL; } tcp_api_call_t msg; msg.pcb = pcb; msg.closed_slot = -1; msg.backlog = backlog?backlog:0xFF; tcpip_api_call(_tcp_listen_api, (struct tcpip_api_call_data*)&msg); return msg.pcb; } /* Async TCP Client */ AsyncClient::AsyncClient(tcp_pcb* pcb) : _connect_cb(0) , _connect_cb_arg(0) , _discard_cb(0) , _discard_cb_arg(0) , _sent_cb(0) , _sent_cb_arg(0) , _error_cb(0) , _error_cb_arg(0) , _recv_cb(0) , _recv_cb_arg(0) , _pb_cb(0) , _pb_cb_arg(0) , _timeout_cb(0) , _timeout_cb_arg(0) , _pcb_busy(false) , _pcb_sent_at(0) , _ack_pcb(true) , _rx_last_packet(0) , _rx_since_timeout(0) , _ack_timeout(ASYNC_MAX_ACK_TIME) , _connect_port(0) , prev(NULL) , next(NULL) { _pcb = pcb; _closed_slot = -1; if(_pcb){ _allocate_closed_slot(); _rx_last_packet = millis(); tcp_arg(_pcb, this); tcp_recv(_pcb, &_tcp_recv); tcp_sent(_pcb, &_tcp_sent); tcp_err(_pcb, &_tcp_error); tcp_poll(_pcb, &_tcp_poll, 1); } } AsyncClient::~AsyncClient(){ if(_pcb) { _close(); } _free_closed_slot(); } /* * Operators * */ AsyncClient& AsyncClient::operator=(const AsyncClient& other){ if (_pcb) { _close(); } _pcb = other._pcb; _closed_slot = other._closed_slot; if (_pcb) { _rx_last_packet = millis(); tcp_arg(_pcb, this); tcp_recv(_pcb, &_tcp_recv); tcp_sent(_pcb, &_tcp_sent); tcp_err(_pcb, &_tcp_error); tcp_poll(_pcb, &_tcp_poll, 1); } return *this; } bool AsyncClient::operator==(const AsyncClient &other) { return _pcb == other._pcb; } AsyncClient & AsyncClient::operator+=(const AsyncClient &other) { if(next == NULL){ next = (AsyncClient*)(&other); next->prev = this; } else { AsyncClient *c = next; while(c->next != NULL) { c = c->next; } c->next =(AsyncClient*)(&other); c->next->prev = c; } return *this; } /* * Callback Setters * */ void AsyncClient::onConnect(AcConnectHandler cb, void* arg){ _connect_cb = cb; _connect_cb_arg = arg; } void AsyncClient::onDisconnect(AcConnectHandler cb, void* arg){ _discard_cb = cb; _discard_cb_arg = arg; } void AsyncClient::onAck(AcAckHandler cb, void* arg){ _sent_cb = cb; _sent_cb_arg = arg; } void AsyncClient::onError(AcErrorHandler cb, void* arg){ _error_cb = cb; _error_cb_arg = arg; } void AsyncClient::onData(AcDataHandler cb, void* arg){ _recv_cb = cb; _recv_cb_arg = arg; } void AsyncClient::onPacket(AcPacketHandler cb, void* arg){ _pb_cb = cb; _pb_cb_arg = arg; } void AsyncClient::onTimeout(AcTimeoutHandler cb, void* arg){ _timeout_cb = cb; _timeout_cb_arg = arg; } void AsyncClient::onPoll(AcConnectHandler cb, void* arg){ _poll_cb = cb; _poll_cb_arg = arg; } /* * Main Public Methods * */ bool AsyncClient::connect(IPAddress ip, uint16_t port){ if (_pcb){ log_w("already connected, state %d", _pcb->state); return false; } if(!_start_async_task()){ log_e("failed to start task"); return false; } ip_addr_t addr; addr.type = IPADDR_TYPE_V4; addr.u_addr.ip4.addr = ip; tcp_pcb* pcb = tcp_new_ip_type(IPADDR_TYPE_V4); if (!pcb){ log_e("pcb == NULL"); return false; } tcp_arg(pcb, this); tcp_err(pcb, &_tcp_error); tcp_recv(pcb, &_tcp_recv); tcp_sent(pcb, &_tcp_sent); tcp_poll(pcb, &_tcp_poll, 1); //_tcp_connect(pcb, &addr, port,(tcp_connected_fn)&_s_connected); _tcp_connect(pcb, _closed_slot, &addr, port,(tcp_connected_fn)&_tcp_connected); return true; } bool AsyncClient::connect(const char* host, uint16_t port){ ip_addr_t addr; if(!_start_async_task()){ log_e("failed to start task"); return false; } err_t err = dns_gethostbyname(host, &addr, (dns_found_callback)&_tcp_dns_found, this); if(err == ERR_OK) { return connect(IPAddress(addr.u_addr.ip4.addr), port); } else if(err == ERR_INPROGRESS) { _connect_port = port; return true; } log_e("error: %d", err); return false; } void AsyncClient::close(bool now){ if(_pcb){ _tcp_recved(_pcb, _closed_slot, _rx_ack_len); } _close(); } int8_t AsyncClient::abort(){ if(_pcb) { _tcp_abort(_pcb, _closed_slot ); _pcb = NULL; } return ERR_ABRT; } size_t AsyncClient::space(){ if((_pcb != NULL) && (_pcb->state == 4)){ return tcp_sndbuf(_pcb); } return 0; } size_t AsyncClient::add(const char* data, size_t size, uint8_t apiflags) { if(!_pcb || size == 0 || data == NULL) { return 0; } size_t room = space(); if(!room) { return 0; } size_t will_send = (room < size) ? room : size; int8_t err = ERR_OK; err = _tcp_write(_pcb, _closed_slot, data, will_send, apiflags); if(err != ERR_OK) { return 0; } return will_send; } bool AsyncClient::send(){ int8_t err = ERR_OK; err = _tcp_output(_pcb, _closed_slot); if(err == ERR_OK){ _pcb_busy = true; _pcb_sent_at = millis(); return true; } return false; } size_t AsyncClient::ack(size_t len){ if(len > _rx_ack_len) len = _rx_ack_len; if(len){ _tcp_recved(_pcb, _closed_slot, len); } _rx_ack_len -= len; return len; } void AsyncClient::ackPacket(struct pbuf * pb){ if(!pb){ return; } _tcp_recved(_pcb, _closed_slot, pb->len); pbuf_free(pb); } /* * Main Private Methods * */ int8_t AsyncClient::_close(){ //ets_printf("X: 0x%08x\n", (uint32_t)this); int8_t err = ERR_OK; if(_pcb) { //log_i(""); tcp_arg(_pcb, NULL); tcp_sent(_pcb, NULL); tcp_recv(_pcb, NULL); tcp_err(_pcb, NULL); tcp_poll(_pcb, NULL, 0); _tcp_clear_events(this); err = _tcp_close(_pcb, _closed_slot); if(err != ERR_OK) { err = abort(); } _pcb = NULL; if(_discard_cb) { _discard_cb(_discard_cb_arg, this); } } return err; } void AsyncClient::_allocate_closed_slot(){ xSemaphoreTake(_slots_lock, portMAX_DELAY); uint32_t closed_slot_min_index = 0; for (int i = 0; i < _number_of_closed_slots; ++ i) { if ((_closed_slot == -1 || _closed_slots[i] <= closed_slot_min_index) && _closed_slots[i] != 0) { closed_slot_min_index = _closed_slots[i]; _closed_slot = i; } } if (_closed_slot != -1) { _closed_slots[_closed_slot] = 0; } xSemaphoreGive(_slots_lock); } void AsyncClient::_free_closed_slot(){ if (_closed_slot != -1) { _closed_slots[_closed_slot] = _closed_index; _closed_slot = -1; ++ _closed_index; } } /* * Private Callbacks * */ int8_t AsyncClient::_connected(void* pcb, int8_t err){ _pcb = reinterpret_cast(pcb); if(_pcb){ _rx_last_packet = millis(); _pcb_busy = false; // tcp_recv(_pcb, &_tcp_recv); // tcp_sent(_pcb, &_tcp_sent); // tcp_poll(_pcb, &_tcp_poll, 1); } if(_connect_cb) { _connect_cb(_connect_cb_arg, this); } return ERR_OK; } void AsyncClient::_error(int8_t err) { if(_pcb){ tcp_arg(_pcb, NULL); if(_pcb->state == LISTEN) { tcp_sent(_pcb, NULL); tcp_recv(_pcb, NULL); tcp_err(_pcb, NULL); tcp_poll(_pcb, NULL, 0); } _pcb = NULL; } if(_error_cb) { _error_cb(_error_cb_arg, this, err); } if(_discard_cb) { _discard_cb(_discard_cb_arg, this); } } //In LwIP Thread int8_t AsyncClient::_lwip_fin(tcp_pcb* pcb, int8_t err) { if(!_pcb || pcb != _pcb){ log_e("0x%08x != 0x%08x", (uint32_t)pcb, (uint32_t)_pcb); return ERR_OK; } tcp_arg(_pcb, NULL); if(_pcb->state == LISTEN) { tcp_sent(_pcb, NULL); tcp_recv(_pcb, NULL); tcp_err(_pcb, NULL); tcp_poll(_pcb, NULL, 0); } if(tcp_close(_pcb) != ERR_OK) { tcp_abort(_pcb); } _free_closed_slot(); _pcb = NULL; return ERR_OK; } //In Async Thread int8_t AsyncClient::_fin(tcp_pcb* pcb, int8_t err) { _tcp_clear_events(this); if(_discard_cb) { _discard_cb(_discard_cb_arg, this); } return ERR_OK; } int8_t AsyncClient::_sent(tcp_pcb* pcb, uint16_t len) { _rx_last_packet = millis(); //log_i("%u", len); _pcb_busy = false; if(_sent_cb) { _sent_cb(_sent_cb_arg, this, len, (millis() - _pcb_sent_at)); } return ERR_OK; } int8_t AsyncClient::_recv(tcp_pcb* pcb, pbuf* pb, int8_t err) { while(pb != NULL) { _rx_last_packet = millis(); //we should not ack before we assimilate the data _ack_pcb = true; pbuf *b = pb; pb = b->next; b->next = NULL; if(_pb_cb){ _pb_cb(_pb_cb_arg, this, b); } else { if(_recv_cb) { _recv_cb(_recv_cb_arg, this, b->payload, b->len); } if(!_ack_pcb) { _rx_ack_len += b->len; } else if(_pcb) { _tcp_recved(_pcb, _closed_slot, b->len); } pbuf_free(b); } } return ERR_OK; } int8_t AsyncClient::_poll(tcp_pcb* pcb){ if(!_pcb){ log_w("pcb is NULL"); return ERR_OK; } if(pcb != _pcb){ log_e("0x%08x != 0x%08x", (uint32_t)pcb, (uint32_t)_pcb); return ERR_OK; } uint32_t now = millis(); // ACK Timeout if(_pcb_busy && _ack_timeout && (now - _pcb_sent_at) >= _ack_timeout){ _pcb_busy = false; log_w("ack timeout %d", pcb->state); if(_timeout_cb) _timeout_cb(_timeout_cb_arg, this, (now - _pcb_sent_at)); return ERR_OK; } // RX Timeout if(_rx_since_timeout && (now - _rx_last_packet) >= (_rx_since_timeout * 1000)){ log_w("rx timeout %d", pcb->state); _close(); return ERR_OK; } // Everything is fine if(_poll_cb) { _poll_cb(_poll_cb_arg, this); } return ERR_OK; } void AsyncClient::_dns_found(struct ip_addr *ipaddr){ if(ipaddr && ipaddr->u_addr.ip4.addr){ connect(IPAddress(ipaddr->u_addr.ip4.addr), _connect_port); } else { if(_error_cb) { _error_cb(_error_cb_arg, this, -55); } if(_discard_cb) { _discard_cb(_discard_cb_arg, this); } } } /* * Public Helper Methods * */ void AsyncClient::stop() { close(false); } bool AsyncClient::free(){ if(!_pcb) { return true; } if(_pcb->state == 0 || _pcb->state > 4) { return true; } return false; } size_t AsyncClient::write(const char* data) { if(data == NULL) { return 0; } return write(data, strlen(data)); } size_t AsyncClient::write(const char* data, size_t size, uint8_t apiflags) { size_t will_send = add(data, size, apiflags); if(!will_send || !send()) { return 0; } return will_send; } void AsyncClient::setRxTimeout(uint32_t timeout){ _rx_since_timeout = timeout; } uint32_t AsyncClient::getRxTimeout(){ return _rx_since_timeout; } uint32_t AsyncClient::getAckTimeout(){ return _ack_timeout; } void AsyncClient::setAckTimeout(uint32_t timeout){ _ack_timeout = timeout; } void AsyncClient::setNoDelay(bool nodelay){ if(!_pcb) { return; } if(nodelay) { tcp_nagle_disable(_pcb); } else { tcp_nagle_enable(_pcb); } } bool AsyncClient::getNoDelay(){ if(!_pcb) { return false; } return tcp_nagle_disabled(_pcb); } uint16_t AsyncClient::getMss(){ if(!_pcb) { return 0; } return tcp_mss(_pcb); } uint32_t AsyncClient::getRemoteAddress() { if(!_pcb) { return 0; } return _pcb->remote_ip.u_addr.ip4.addr; } uint16_t AsyncClient::getRemotePort() { if(!_pcb) { return 0; } return _pcb->remote_port; } uint32_t AsyncClient::getLocalAddress() { if(!_pcb) { return 0; } return _pcb->local_ip.u_addr.ip4.addr; } uint16_t AsyncClient::getLocalPort() { if(!_pcb) { return 0; } return _pcb->local_port; } IPAddress AsyncClient::remoteIP() { return IPAddress(getRemoteAddress()); } uint16_t AsyncClient::remotePort() { return getRemotePort(); } IPAddress AsyncClient::localIP() { return IPAddress(getLocalAddress()); } uint16_t AsyncClient::localPort() { return getLocalPort(); } uint8_t AsyncClient::state() { if(!_pcb) { return 0; } return _pcb->state; } bool AsyncClient::connected(){ if (!_pcb) { return false; } return _pcb->state == 4; } bool AsyncClient::connecting(){ if (!_pcb) { return false; } return _pcb->state > 0 && _pcb->state < 4; } bool AsyncClient::disconnecting(){ if (!_pcb) { return false; } return _pcb->state > 4 && _pcb->state < 10; } bool AsyncClient::disconnected(){ if (!_pcb) { return true; } return _pcb->state == 0 || _pcb->state == 10; } bool AsyncClient::freeable(){ if (!_pcb) { return true; } return _pcb->state == 0 || _pcb->state > 4; } bool AsyncClient::canSend(){ return space() > 0; } const char * AsyncClient::errorToString(int8_t error){ switch(error){ case ERR_OK: return "OK"; case ERR_MEM: return "Out of memory error"; case ERR_BUF: return "Buffer error"; case ERR_TIMEOUT: return "Timeout"; case ERR_RTE: return "Routing problem"; case ERR_INPROGRESS: return "Operation in progress"; case ERR_VAL: return "Illegal value"; case ERR_WOULDBLOCK: return "Operation would block"; case ERR_USE: return "Address in use"; case ERR_ALREADY: return "Already connected"; case ERR_CONN: return "Not connected"; case ERR_IF: return "Low-level netif error"; case ERR_ABRT: return "Connection aborted"; case ERR_RST: return "Connection reset"; case ERR_CLSD: return "Connection closed"; case ERR_ARG: return "Illegal argument"; case -55: return "DNS failed"; default: return "UNKNOWN"; } } const char * AsyncClient::stateToString(){ switch(state()){ case 0: return "Closed"; case 1: return "Listen"; case 2: return "SYN Sent"; case 3: return "SYN Received"; case 4: return "Established"; case 5: return "FIN Wait 1"; case 6: return "FIN Wait 2"; case 7: return "Close Wait"; case 8: return "Closing"; case 9: return "Last ACK"; case 10: return "Time Wait"; default: return "UNKNOWN"; } } /* * Static Callbacks (LwIP C2C++ interconnect) * */ void AsyncClient::_s_dns_found(const char * name, struct ip_addr * ipaddr, void * arg){ reinterpret_cast(arg)->_dns_found(ipaddr); } int8_t AsyncClient::_s_poll(void * arg, struct tcp_pcb * pcb) { return reinterpret_cast(arg)->_poll(pcb); } int8_t AsyncClient::_s_recv(void * arg, struct tcp_pcb * pcb, struct pbuf *pb, int8_t err) { return reinterpret_cast(arg)->_recv(pcb, pb, err); } int8_t AsyncClient::_s_fin(void * arg, struct tcp_pcb * pcb, int8_t err) { return reinterpret_cast(arg)->_fin(pcb, err); } int8_t AsyncClient::_s_lwip_fin(void * arg, struct tcp_pcb * pcb, int8_t err) { return reinterpret_cast(arg)->_lwip_fin(pcb, err); } int8_t AsyncClient::_s_sent(void * arg, struct tcp_pcb * pcb, uint16_t len) { return reinterpret_cast(arg)->_sent(pcb, len); } void AsyncClient::_s_error(void * arg, int8_t err) { reinterpret_cast(arg)->_error(err); } int8_t AsyncClient::_s_connected(void * arg, void * pcb, int8_t err){ return reinterpret_cast(arg)->_connected(pcb, err); } /* Async TCP Server */ AsyncServer::AsyncServer(IPAddress addr, uint16_t port) : _port(port) , _addr(addr) , _noDelay(false) , _pcb(0) , _connect_cb(0) , _connect_cb_arg(0) {} AsyncServer::AsyncServer(uint16_t port) : _port(port) , _addr((uint32_t) IPADDR_ANY) , _noDelay(false) , _pcb(0) , _connect_cb(0) , _connect_cb_arg(0) {} AsyncServer::~AsyncServer(){ end(); } void AsyncServer::onClient(AcConnectHandler cb, void* arg){ _connect_cb = cb; _connect_cb_arg = arg; } void AsyncServer::begin(){ if(_pcb) { return; } if(!_start_async_task()){ log_e("failed to start task"); return; } int8_t err; _pcb = tcp_new_ip_type(IPADDR_TYPE_V4); if (!_pcb){ log_e("_pcb == NULL"); return; } ip_addr_t local_addr; local_addr.type = IPADDR_TYPE_V4; local_addr.u_addr.ip4.addr = (uint32_t) _addr; err = _tcp_bind(_pcb, &local_addr, _port); if (err != ERR_OK) { _tcp_close(_pcb, -1); log_e("bind error: %d", err); return; } static uint8_t backlog = 5; _pcb = _tcp_listen_with_backlog(_pcb, backlog); if (!_pcb) { log_e("listen_pcb == NULL"); return; } tcp_arg(_pcb, (void*) this); tcp_accept(_pcb, &_s_accept); } void AsyncServer::end(){ if(_pcb){ tcp_arg(_pcb, NULL); tcp_accept(_pcb, NULL); if(tcp_close(_pcb) != ERR_OK){ _tcp_abort(_pcb, -1); } _pcb = NULL; } } //runs on LwIP thread int8_t AsyncServer::_accept(tcp_pcb* pcb, int8_t err){ //ets_printf("+A: 0x%08x\n", pcb); if(_connect_cb){ AsyncClient *c = new AsyncClient(pcb); if(c){ c->setNoDelay(_noDelay); return _tcp_accept(this, c); } } if(tcp_close(pcb) != ERR_OK){ tcp_abort(pcb); } log_e("FAIL"); return ERR_OK; } int8_t AsyncServer::_accepted(AsyncClient* client){ if(_connect_cb){ _connect_cb(_connect_cb_arg, client); } return ERR_OK; } void AsyncServer::setNoDelay(bool nodelay){ _noDelay = nodelay; } bool AsyncServer::getNoDelay(){ return _noDelay; } uint8_t AsyncServer::status(){ if (!_pcb) { return 0; } return _pcb->state; } int8_t AsyncServer::_s_accept(void * arg, tcp_pcb * pcb, int8_t err){ return reinterpret_cast(arg)->_accept(pcb, err); } int8_t AsyncServer::_s_accepted(void *arg, AsyncClient* client){ return reinterpret_cast(arg)->_accepted(client); } ================================================ FILE: arduino_workspace/libraries/AsyncTCP/src/AsyncTCP.h ================================================ /* Asynchronous TCP library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef ASYNCTCP_H_ #define ASYNCTCP_H_ #include "IPAddress.h" #include "sdkconfig.h" #include extern "C" { #include "freertos/semphr.h" #include "lwip/pbuf.h" } //If core is not defined, then we are running in Arduino or PIO #ifndef CONFIG_ASYNC_TCP_RUNNING_CORE #define CONFIG_ASYNC_TCP_RUNNING_CORE -1 //any available core #define CONFIG_ASYNC_TCP_USE_WDT 1 //if enabled, adds between 33us and 200us per event #endif class AsyncClient; #define ASYNC_MAX_ACK_TIME 5000 #define ASYNC_WRITE_FLAG_COPY 0x01 //will allocate new buffer to hold the data while sending (else will hold reference to the data given) #define ASYNC_WRITE_FLAG_MORE 0x02 //will not send PSH flag, meaning that there should be more data to be sent before the application should react. typedef std::function AcConnectHandler; typedef std::function AcAckHandler; typedef std::function AcErrorHandler; typedef std::function AcDataHandler; typedef std::function AcPacketHandler; typedef std::function AcTimeoutHandler; struct tcp_pcb; struct ip_addr; class AsyncClient { public: AsyncClient(tcp_pcb* pcb = 0); ~AsyncClient(); AsyncClient & operator=(const AsyncClient &other); AsyncClient & operator+=(const AsyncClient &other); bool operator==(const AsyncClient &other); bool operator!=(const AsyncClient &other) { return !(*this == other); } bool connect(IPAddress ip, uint16_t port); bool connect(const char* host, uint16_t port); void close(bool now = false); void stop(); int8_t abort(); bool free(); bool canSend();//ack is not pending size_t space();//space available in the TCP window size_t add(const char* data, size_t size, uint8_t apiflags=ASYNC_WRITE_FLAG_COPY);//add for sending bool send();//send all data added with the method above //write equals add()+send() size_t write(const char* data); size_t write(const char* data, size_t size, uint8_t apiflags=ASYNC_WRITE_FLAG_COPY); //only when canSend() == true uint8_t state(); bool connecting(); bool connected(); bool disconnecting(); bool disconnected(); bool freeable();//disconnected or disconnecting uint16_t getMss(); uint32_t getRxTimeout(); void setRxTimeout(uint32_t timeout);//no RX data timeout for the connection in seconds uint32_t getAckTimeout(); void setAckTimeout(uint32_t timeout);//no ACK timeout for the last sent packet in milliseconds void setNoDelay(bool nodelay); bool getNoDelay(); uint32_t getRemoteAddress(); uint16_t getRemotePort(); uint32_t getLocalAddress(); uint16_t getLocalPort(); //compatibility IPAddress remoteIP(); uint16_t remotePort(); IPAddress localIP(); uint16_t localPort(); void onConnect(AcConnectHandler cb, void* arg = 0); //on successful connect void onDisconnect(AcConnectHandler cb, void* arg = 0); //disconnected void onAck(AcAckHandler cb, void* arg = 0); //ack received void onError(AcErrorHandler cb, void* arg = 0); //unsuccessful connect or error void onData(AcDataHandler cb, void* arg = 0); //data received (called if onPacket is not used) void onPacket(AcPacketHandler cb, void* arg = 0); //data received void onTimeout(AcTimeoutHandler cb, void* arg = 0); //ack timeout void onPoll(AcConnectHandler cb, void* arg = 0); //every 125ms when connected void ackPacket(struct pbuf * pb);//ack pbuf from onPacket size_t ack(size_t len); //ack data that you have not acked using the method below void ackLater(){ _ack_pcb = false; } //will not ack the current packet. Call from onData const char * errorToString(int8_t error); const char * stateToString(); //Do not use any of the functions below! static int8_t _s_poll(void *arg, struct tcp_pcb *tpcb); static int8_t _s_recv(void *arg, struct tcp_pcb *tpcb, struct pbuf *pb, int8_t err); static int8_t _s_fin(void *arg, struct tcp_pcb *tpcb, int8_t err); static int8_t _s_lwip_fin(void *arg, struct tcp_pcb *tpcb, int8_t err); static void _s_error(void *arg, int8_t err); static int8_t _s_sent(void *arg, struct tcp_pcb *tpcb, uint16_t len); static int8_t _s_connected(void* arg, void* tpcb, int8_t err); static void _s_dns_found(const char *name, struct ip_addr *ipaddr, void *arg); int8_t _recv(tcp_pcb* pcb, pbuf* pb, int8_t err); tcp_pcb * pcb(){ return _pcb; } protected: tcp_pcb* _pcb; int8_t _closed_slot; AcConnectHandler _connect_cb; void* _connect_cb_arg; AcConnectHandler _discard_cb; void* _discard_cb_arg; AcAckHandler _sent_cb; void* _sent_cb_arg; AcErrorHandler _error_cb; void* _error_cb_arg; AcDataHandler _recv_cb; void* _recv_cb_arg; AcPacketHandler _pb_cb; void* _pb_cb_arg; AcTimeoutHandler _timeout_cb; void* _timeout_cb_arg; AcConnectHandler _poll_cb; void* _poll_cb_arg; bool _pcb_busy; uint32_t _pcb_sent_at; bool _ack_pcb; uint32_t _rx_ack_len; uint32_t _rx_last_packet; uint32_t _rx_since_timeout; uint32_t _ack_timeout; uint16_t _connect_port; int8_t _close(); void _free_closed_slot(); void _allocate_closed_slot(); int8_t _connected(void* pcb, int8_t err); void _error(int8_t err); int8_t _poll(tcp_pcb* pcb); int8_t _sent(tcp_pcb* pcb, uint16_t len); int8_t _fin(tcp_pcb* pcb, int8_t err); int8_t _lwip_fin(tcp_pcb* pcb, int8_t err); void _dns_found(struct ip_addr *ipaddr); public: AsyncClient* prev; AsyncClient* next; }; class AsyncServer { public: AsyncServer(IPAddress addr, uint16_t port); AsyncServer(uint16_t port); ~AsyncServer(); void onClient(AcConnectHandler cb, void* arg); void begin(); void end(); void setNoDelay(bool nodelay); bool getNoDelay(); uint8_t status(); //Do not use any of the functions below! static int8_t _s_accept(void *arg, tcp_pcb* newpcb, int8_t err); static int8_t _s_accepted(void *arg, AsyncClient* client); protected: uint16_t _port; IPAddress _addr; bool _noDelay; tcp_pcb* _pcb; AcConnectHandler _connect_cb; void* _connect_cb_arg; int8_t _accept(tcp_pcb* newpcb, int8_t err); int8_t _accepted(AsyncClient* client); }; #endif /* ASYNCTCP_H_ */ ================================================ FILE: arduino_workspace/libraries/DebuggingSerial/DebuggingSerial.cpp ================================================ #include DebuggingSerial::DebuggingSerial(HardwareSerial* s) : HardwareSerial(0) { this->ser_obj = s; } // override the functions that HardwareSerial have that calls a real UART function size_t DebuggingSerial::write(uint8_t c) { if (this->enabled) { ((HardwareSerial*)this->ser_obj)->write(c); } #if ARDUINO >= 100 return 1; #endif } size_t DebuggingSerial::write(const uint8_t *buffer, size_t size) { if (this->enabled) { return ((HardwareSerial*)this->ser_obj)->write(buffer, size); } return 0; } ================================================ FILE: arduino_workspace/libraries/DebuggingSerial/DebuggingSerial.h ================================================ /* this is a wrapper around a HardwareSerial object but with an enable flag so that an application can put print statements everywhere without messy conditional statements before each print call */ #ifndef _DEBUGGINGSERIAL_H_ #define _DEBUGGINGSERIAL_H_ #include #include class DebuggingSerial : public HardwareSerial { public: DebuggingSerial(HardwareSerial* s); bool enabled; // override the functions that HardwareSerial have that calls a real UART function size_t write(uint8_t c); size_t write(const uint8_t *buffer, size_t size); protected: HardwareSerial* ser_obj; }; class DebuggingSerialDisabled : public HardwareSerial { public: DebuggingSerialDisabled(HardwareSerial* s); bool enabled; // override the functions that HardwareSerial have that calls a real UART function size_t write(uint8_t c); size_t write(const uint8_t *buffer, size_t size); size_t printf(const char * format, ...) __attribute__ ((format (printf, 2, 3))); size_t print(const __FlashStringHelper *); size_t print(const String &); size_t print(const char[]); size_t print(char); size_t print(unsigned char, int = DEC); size_t print(int, int = DEC); size_t print(unsigned int, int = DEC); size_t print(long, int = DEC); size_t print(unsigned long, int = DEC); size_t print(long long, int = DEC); size_t print(unsigned long long, int = DEC); size_t print(double, int = 2); size_t print(const Printable&); size_t print(struct tm * timeinfo, const char * format = NULL); size_t println(const __FlashStringHelper *); size_t println(const String &s); size_t println(const char[]); size_t println(char); size_t println(unsigned char, int = DEC); size_t println(int, int = DEC); size_t println(unsigned int, int = DEC); size_t println(long, int = DEC); size_t println(unsigned long, int = DEC); size_t println(long long, int = DEC); size_t println(unsigned long long, int = DEC); size_t println(double, int = 2); size_t println(const Printable&); size_t println(struct tm * timeinfo, const char * format = NULL); size_t println(void); protected: HardwareSerial* ser_obj; }; #endif ================================================ FILE: arduino_workspace/libraries/DebuggingSerial/DebuggingSerialDisable.cpp ================================================ #include "DebuggingSerial.h" DebuggingSerialDisabled::DebuggingSerialDisabled(HardwareSerial* s) : HardwareSerial(0) { this->ser_obj = s; } // override the functions that HardwareSerial have that calls a real UART function size_t DebuggingSerialDisabled::write(uint8_t c) { return 1; } size_t DebuggingSerialDisabled::write(const uint8_t *buffer, size_t size) { return 0; } size_t DebuggingSerialDisabled::printf (const char * format, ...) { return 0; } size_t DebuggingSerialDisabled::print (const __FlashStringHelper * x) { return 0; } size_t DebuggingSerialDisabled::print (const String & x) { return 0; } size_t DebuggingSerialDisabled::print (const char x[]) { return 0; } size_t DebuggingSerialDisabled::print (char x) { return 0; } size_t DebuggingSerialDisabled::print (unsigned char x, int y) { return 0; } size_t DebuggingSerialDisabled::print (int x, int y) { return 0; } size_t DebuggingSerialDisabled::print (unsigned int x, int y) { return 0; } size_t DebuggingSerialDisabled::print (long x, int y) { return 0; } size_t DebuggingSerialDisabled::print (unsigned long x, int y) { return 0; } size_t DebuggingSerialDisabled::print (long long x, int y) { return 0; } size_t DebuggingSerialDisabled::print (unsigned long long x, int y) { return 0; } size_t DebuggingSerialDisabled::print (double x, int y) { return 0; } size_t DebuggingSerialDisabled::print (const Printable& x) { return 0; } size_t DebuggingSerialDisabled::print (struct tm * timeinfo, const char * format) { return 0; } size_t DebuggingSerialDisabled::println(const __FlashStringHelper * x) { return 0; } size_t DebuggingSerialDisabled::println(const String &s) { return 0; } size_t DebuggingSerialDisabled::println(const char x[]) { return 0; } size_t DebuggingSerialDisabled::println(char x) { return 0; } size_t DebuggingSerialDisabled::println(unsigned char x, int y) { return 0; } size_t DebuggingSerialDisabled::println(int x, int y) { return 0; } size_t DebuggingSerialDisabled::println(unsigned int x, int y) { return 0; } size_t DebuggingSerialDisabled::println(long x, int y) { return 0; } size_t DebuggingSerialDisabled::println(unsigned long x, int y) { return 0; } size_t DebuggingSerialDisabled::println(long long x, int y) { return 0; } size_t DebuggingSerialDisabled::println(unsigned long long x, int y) { return 0; } size_t DebuggingSerialDisabled::println(double x, int y) { return 0; } size_t DebuggingSerialDisabled::println(const Printable& x) { return 0; } size_t DebuggingSerialDisabled::println(struct tm * timeinfo, const char * format) { return 0; } size_t DebuggingSerialDisabled::println(void) { return 0; } ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/.gitignore ================================================ .vscode .DS_Store .github examples ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/.travis.yml ================================================ sudo: false language: python os: - linux git: depth: false stages: - build jobs: include: - name: "Build Arduino ESP32" if: tag IS blank AND (type = pull_request OR (type = push AND branch = master)) stage: build script: bash $TRAVIS_BUILD_DIR/.github/scripts/on-push.sh esp32 - name: "Build Arduino ESP8266" if: tag IS blank AND (type = pull_request OR (type = push AND branch = master)) stage: build script: bash $TRAVIS_BUILD_DIR/.github/scripts/on-push.sh esp8266 - name: "Build Platformio ESP32" if: tag IS blank AND (type = pull_request OR (type = push AND branch = master)) stage: build script: bash $TRAVIS_BUILD_DIR/.github/scripts/on-push.sh esp32 1 1 - name: "Build Platformio ESP8266" if: tag IS blank AND (type = pull_request OR (type = push AND branch = master)) stage: build script: bash $TRAVIS_BUILD_DIR/.github/scripts/on-push.sh esp8266 1 1 notifications: email: on_success: change on_failure: change webhooks: urls: - https://webhooks.gitter.im/e/60e65d0c78ea0a920347 on_success: change # options: [always|never|change] default: always on_failure: always # options: [always|never|change] default: always on_start: never # options: [always|never|change] default: always ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/CMakeLists.txt ================================================ set(COMPONENT_SRCDIRS "src" ) set(COMPONENT_ADD_INCLUDEDIRS "src" ) set(COMPONENT_REQUIRES "arduino-esp32" "AsyncTCP" ) register_component() target_compile_definitions(${COMPONENT_TARGET} PUBLIC -DESP32) target_compile_options(${COMPONENT_TARGET} PRIVATE -fno-rtti) ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/README.md ================================================ https://github.com/me-no-dev/ESPAsyncWebServer f71e3d427b5be9791a8a2c93cf8079792c3a9a26 # ESPAsyncWebServer [![Build Status](https://travis-ci.org/me-no-dev/ESPAsyncWebServer.svg?branch=master)](https://travis-ci.org/me-no-dev/ESPAsyncWebServer) ![](https://github.com/me-no-dev/ESPAsyncWebServer/workflows/ESP%20Async%20Web%20Server%20CI/badge.svg) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/395dd42cfc674e6ca2e326af3af80ffc)](https://www.codacy.com/manual/me-no-dev/ESPAsyncWebServer?utm_source=github.com&utm_medium=referral&utm_content=me-no-dev/ESPAsyncWebServer&utm_campaign=Badge_Grade) For help and support [![Join the chat at https://gitter.im/me-no-dev/ESPAsyncWebServer](https://badges.gitter.im/me-no-dev/ESPAsyncWebServer.svg)](https://gitter.im/me-no-dev/ESPAsyncWebServer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Async HTTP and WebSocket Server for ESP8266 Arduino For ESP8266 it requires [ESPAsyncTCP](https://github.com/me-no-dev/ESPAsyncTCP) To use this library you might need to have the latest git versions of [ESP8266](https://github.com/esp8266/Arduino) Arduino Core For ESP32 it requires [AsyncTCP](https://github.com/me-no-dev/AsyncTCP) to work To use this library you might need to have the latest git versions of [ESP32](https://github.com/espressif/arduino-esp32) Arduino Core ## Table of contents - [ESPAsyncWebServer](#espasyncwebserver) - [Table of contents](#table-of-contents) - [Installation](#installation) - [Using PlatformIO](#using-platformio) - [Why should you care](#why-should-you-care) - [Important things to remember](#important-things-to-remember) - [Principles of operation](#principles-of-operation) - [The Async Web server](#the-async-web-server) - [Request Life Cycle](#request-life-cycle) - [Rewrites and how do they work](#rewrites-and-how-do-they-work) - [Handlers and how do they work](#handlers-and-how-do-they-work) - [Responses and how do they work](#responses-and-how-do-they-work) - [Template processing](#template-processing) - [Libraries and projects that use AsyncWebServer](#libraries-and-projects-that-use-asyncwebserver) - [Request Variables](#request-variables) - [Common Variables](#common-variables) - [Headers](#headers) - [GET, POST and FILE parameters](#get-post-and-file-parameters) - [FILE Upload handling](#file-upload-handling) - [Body data handling](#body-data-handling) - [JSON body handling with ArduinoJson](#json-body-handling-with-arduinojson) - [Responses](#responses) - [Redirect to another URL](#redirect-to-another-url) - [Basic response with HTTP Code](#basic-response-with-http-code) - [Basic response with HTTP Code and extra headers](#basic-response-with-http-code-and-extra-headers) - [Basic response with string content](#basic-response-with-string-content) - [Basic response with string content and extra headers](#basic-response-with-string-content-and-extra-headers) - [Send large webpage from PROGMEM](#send-large-webpage-from-progmem) - [Send large webpage from PROGMEM and extra headers](#send-large-webpage-from-progmem-and-extra-headers) - [Send large webpage from PROGMEM containing templates](#send-large-webpage-from-progmem-containing-templates) - [Send large webpage from PROGMEM containing templates and extra headers](#send-large-webpage-from-progmem-containing-templates-and-extra-headers) - [Send binary content from PROGMEM](#send-binary-content-from-progmem) - [Respond with content coming from a Stream](#respond-with-content-coming-from-a-stream) - [Respond with content coming from a Stream and extra headers](#respond-with-content-coming-from-a-stream-and-extra-headers) - [Respond with content coming from a Stream containing templates](#respond-with-content-coming-from-a-stream-containing-templates) - [Respond with content coming from a Stream containing templates and extra headers](#respond-with-content-coming-from-a-stream-containing-templates-and-extra-headers) - [Respond with content coming from a File](#respond-with-content-coming-from-a-file) - [Respond with content coming from a File and extra headers](#respond-with-content-coming-from-a-file-and-extra-headers) - [Respond with content coming from a File containing templates](#respond-with-content-coming-from-a-file-containing-templates) - [Respond with content using a callback](#respond-with-content-using-a-callback) - [Respond with content using a callback and extra headers](#respond-with-content-using-a-callback-and-extra-headers) - [Respond with content using a callback containing templates](#respond-with-content-using-a-callback-containing-templates) - [Respond with content using a callback containing templates and extra headers](#respond-with-content-using-a-callback-containing-templates-and-extra-headers) - [Chunked Response](#chunked-response) - [Chunked Response containing templates](#chunked-response-containing-templates) - [Print to response](#print-to-response) - [ArduinoJson Basic Response](#arduinojson-basic-response) - [ArduinoJson Advanced Response](#arduinojson-advanced-response) - [Serving static files](#serving-static-files) - [Serving specific file by name](#serving-specific-file-by-name) - [Serving files in directory](#serving-files-in-directory) - [Serving static files with authentication](#serving-static-files-with-authentication) - [Specifying Cache-Control header](#specifying-cache-control-header) - [Specifying Date-Modified header](#specifying-date-modified-header) - [Specifying Template Processor callback](#specifying-template-processor-callback) - [Param Rewrite With Matching](#param-rewrite-with-matching) - [Using filters](#using-filters) - [Serve different site files in AP mode](#serve-different-site-files-in-ap-mode) - [Rewrite to different index on AP](#rewrite-to-different-index-on-ap) - [Serving different hosts](#serving-different-hosts) - [Determine interface inside callbacks](#determine-interface-inside-callbacks) - [Bad Responses](#bad-responses) - [Respond with content using a callback without content length to HTTP/1.0 clients](#respond-with-content-using-a-callback-without-content-length-to-http10-clients) - [Async WebSocket Plugin](#async-websocket-plugin) - [Async WebSocket Event](#async-websocket-event) - [Methods for sending data to a socket client](#methods-for-sending-data-to-a-socket-client) - [Direct access to web socket message buffer](#direct-access-to-web-socket-message-buffer) - [Limiting the number of web socket clients](#limiting-the-number-of-web-socket-clients) - [Async Event Source Plugin](#async-event-source-plugin) - [Setup Event Source on the server](#setup-event-source-on-the-server) - [Setup Event Source in the browser](#setup-event-source-in-the-browser) - [Scanning for available WiFi Networks](#scanning-for-available-wifi-networks) - [Remove handlers and rewrites](#remove-handlers-and-rewrites) - [Setting up the server](#setting-up-the-server) - [Setup global and class functions as request handlers](#setup-global-and-class-functions-as-request-handlers) - [Methods for controlling websocket connections](#methods-for-controlling-websocket-connections) - [Adding Default Headers](#adding-default-headers) - [Path variable](#path-variable) ## Installation ### Using PlatformIO [PlatformIO](http://platformio.org) is an open source ecosystem for IoT development with cross platform build system, library manager and full support for Espressif ESP8266/ESP32 development. It works on the popular host OS: Mac OS X, Windows, Linux 32/64, Linux ARM (like Raspberry Pi, BeagleBone, CubieBoard). 1. Install [PlatformIO IDE](http://platformio.org/platformio-ide) 2. Create new project using "PlatformIO Home > New Project" 3. Update dev/platform to staging version: - [Instruction for Espressif 8266](http://docs.platformio.org/en/latest/platforms/espressif8266.html#using-arduino-framework-with-staging-version) - [Instruction for Espressif 32](http://docs.platformio.org/en/latest/platforms/espressif32.html#using-arduino-framework-with-staging-version) 4. Add "ESP Async WebServer" to project using [Project Configuration File `platformio.ini`](http://docs.platformio.org/page/projectconf.html) and [lib_deps](http://docs.platformio.org/page/projectconf/section_env_library.html#lib-deps) option: ```ini [env:myboard] platform = espressif... board = ... framework = arduino # using the latest stable version lib_deps = ESP Async WebServer # or using GIT Url (the latest development version) lib_deps = https://github.com/me-no-dev/ESPAsyncWebServer.git ``` 5. Happy coding with PlatformIO! ## Why should you care - Using asynchronous network means that you can handle more than one connection at the same time - You are called once the request is ready and parsed - When you send the response, you are immediately ready to handle other connections while the server is taking care of sending the response in the background - Speed is OMG - Easy to use API, HTTP Basic and Digest MD5 Authentication (default), ChunkedResponse - Easily extendible to handle any type of content - Supports Continue 100 - Async WebSocket plugin offering different locations without extra servers or ports - Async EventSource (Server-Sent Events) plugin to send events to the browser - URL Rewrite plugin for conditional and permanent url rewrites - ServeStatic plugin that supports cache, Last-Modified, default index and more - Simple template processing engine to handle templates ## Important things to remember - This is fully asynchronous server and as such does not run on the loop thread. - You can not use yield or delay or any function that uses them inside the callbacks - The server is smart enough to know when to close the connection and free resources - You can not send more than one response to a single request ## Principles of operation ### The Async Web server - Listens for connections - Wraps the new clients into ```Request``` - Keeps track of clients and cleans memory - Manages ```Rewrites``` and apply them on the request url - Manages ```Handlers``` and attaches them to Requests ### Request Life Cycle - TCP connection is received by the server - The connection is wrapped inside ```Request``` object - When the request head is received (type, url, get params, http version and host), the server goes through all ```Rewrites``` (in the order they were added) to rewrite the url and inject query parameters, next, it goes through all attached ```Handlers```(in the order they were added) trying to find one that ```canHandle``` the given request. If none are found, the default(catch-all) handler is attached. - The rest of the request is received, calling the ```handleUpload``` or ```handleBody``` methods of the ```Handler``` if they are needed (POST+File/Body) - When the whole request is parsed, the result is given to the ```handleRequest``` method of the ```Handler``` and is ready to be responded to - In the ```handleRequest``` method, to the ```Request``` is attached a ```Response``` object (see below) that will serve the response data back to the client - When the ```Response``` is sent, the client is closed and freed from the memory ### Rewrites and how do they work - The ```Rewrites``` are used to rewrite the request url and/or inject get parameters for a specific request url path. - All ```Rewrites``` are evaluated on the request in the order they have been added to the server. - The ```Rewrite``` will change the request url only if the request url (excluding get parameters) is fully match the rewrite url, and when the optional ```Filter``` callback return true. - Setting a ```Filter``` to the ```Rewrite``` enables to control when to apply the rewrite, decision can be based on request url, http version, request host/port/target host, get parameters or the request client's localIP or remoteIP. - Two filter callbacks are provided: ```ON_AP_FILTER``` to execute the rewrite when request is made to the AP interface, ```ON_STA_FILTER``` to execute the rewrite when request is made to the STA interface. - The ```Rewrite``` can specify a target url with optional get parameters, e.g. ```/to-url?with=params``` ### Handlers and how do they work - The ```Handlers``` are used for executing specific actions to particular requests - One ```Handler``` instance can be attached to any request and lives together with the server - Setting a ```Filter``` to the ```Handler``` enables to control when to apply the handler, decision can be based on request url, http version, request host/port/target host, get parameters or the request client's localIP or remoteIP. - Two filter callbacks are provided: ```ON_AP_FILTER``` to execute the rewrite when request is made to the AP interface, ```ON_STA_FILTER``` to execute the rewrite when request is made to the STA interface. - The ```canHandle``` method is used for handler specific control on whether the requests can be handled and for declaring any interesting headers that the ```Request``` should parse. Decision can be based on request method, request url, http version, request host/port/target host and get parameters - Once a ```Handler``` is attached to given ```Request``` (```canHandle``` returned true) that ```Handler``` takes care to receive any file/data upload and attach a ```Response``` once the ```Request``` has been fully parsed - ```Handlers``` are evaluated in the order they are attached to the server. The ```canHandle``` is called only if the ```Filter``` that was set to the ```Handler``` return true. - The first ```Handler``` that can handle the request is selected, not further ```Filter``` and ```canHandle``` are called. ### Responses and how do they work - The ```Response``` objects are used to send the response data back to the client - The ```Response``` object lives with the ```Request``` and is freed on end or disconnect - Different techniques are used depending on the response type to send the data in packets returning back almost immediately and sending the next packet when this one is received. Any time in between is spent to run the user loop and handle other network packets - Responding asynchronously is probably the most difficult thing for most to understand - Many different options exist for the user to make responding a background task ### Template processing - ESPAsyncWebserver contains simple template processing engine. - Template processing can be added to most response types. - Currently it supports only replacing template placeholders with actual values. No conditional processing, cycles, etc. - Placeholders are delimited with ```%``` symbols. Like this: ```%TEMPLATE_PLACEHOLDER%```. - It works by extracting placeholder name from response text and passing it to user provided function which should return actual value to be used instead of placeholder. - Since it's user provided function, it is possible for library users to implement conditional processing and cycles themselves. - Since it's impossible to know the actual response size after template processing step in advance (and, therefore, to include it in response headers), the response becomes [chunked](#chunked-response). ## Libraries and projects that use AsyncWebServer - [WebSocketToSerial](https://github.com/hallard/WebSocketToSerial) - Debug serial devices through the web browser - [Sattrack](https://github.com/Hopperpop/Sattrack) - Track the ISS with ESP8266 - [ESP Radio](https://github.com/Edzelf/Esp-radio) - Icecast radio based on ESP8266 and VS1053 - [VZero](https://github.com/andig/vzero) - the Wireless zero-config controller for volkszaehler.org - [ESPurna](https://bitbucket.org/xoseperez/espurna) - ESPurna ("spark" in Catalan) is a custom C firmware for ESP8266 based smart switches. It was originally developed with the ITead Sonoff in mind. - [fauxmoESP](https://bitbucket.org/xoseperez/fauxmoesp) - Belkin WeMo emulator library for ESP8266. - [ESP-RFID](https://github.com/omersiar/esp-rfid) - MFRC522 RFID Access Control Management project for ESP8266. ## Request Variables ### Common Variables ```cpp request->version(); // uint8_t: 0 = HTTP/1.0, 1 = HTTP/1.1 request->method(); // enum: HTTP_GET, HTTP_POST, HTTP_DELETE, HTTP_PUT, HTTP_PATCH, HTTP_HEAD, HTTP_OPTIONS request->url(); // String: URL of the request (not including host, port or GET parameters) request->host(); // String: The requested host (can be used for virtual hosting) request->contentType(); // String: ContentType of the request (not avaiable in Handler::canHandle) request->contentLength(); // size_t: ContentLength of the request (not avaiable in Handler::canHandle) request->multipart(); // bool: True if the request has content type "multipart" ``` ### Headers ```cpp //List all collected headers int headers = request->headers(); int i; for(i=0;igetHeader(i); Serial.printf("HEADER[%s]: %s\n", h->name().c_str(), h->value().c_str()); } //get specific header by name if(request->hasHeader("MyHeader")){ AsyncWebHeader* h = request->getHeader("MyHeader"); Serial.printf("MyHeader: %s\n", h->value().c_str()); } //List all collected headers (Compatibility) int headers = request->headers(); int i; for(i=0;iheaderName(i).c_str(), request->header(i).c_str()); } //get specific header by name (Compatibility) if(request->hasHeader("MyHeader")){ Serial.printf("MyHeader: %s\n", request->header("MyHeader").c_str()); } ``` ### GET, POST and FILE parameters ```cpp //List all parameters int params = request->params(); for(int i=0;igetParam(i); if(p->isFile()){ //p->isPost() is also true Serial.printf("FILE[%s]: %s, size: %u\n", p->name().c_str(), p->value().c_str(), p->size()); } else if(p->isPost()){ Serial.printf("POST[%s]: %s\n", p->name().c_str(), p->value().c_str()); } else { Serial.printf("GET[%s]: %s\n", p->name().c_str(), p->value().c_str()); } } //Check if GET parameter exists if(request->hasParam("download")) AsyncWebParameter* p = request->getParam("download"); //Check if POST (but not File) parameter exists if(request->hasParam("download", true)) AsyncWebParameter* p = request->getParam("download", true); //Check if FILE was uploaded if(request->hasParam("download", true, true)) AsyncWebParameter* p = request->getParam("download", true, true); //List all parameters (Compatibility) int args = request->args(); for(int i=0;iargName(i).c_str(), request->arg(i).c_str()); } //Check if parameter exists (Compatibility) if(request->hasArg("download")) String arg = request->arg("download"); ``` ### FILE Upload handling ```cpp void handleUpload(AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final){ if(!index){ Serial.printf("UploadStart: %s\n", filename.c_str()); } for(size_t i=0; i(); // ... }); server.addHandler(handler); ``` ## Responses ### Redirect to another URL ```cpp //to local url request->redirect("/login"); //to external url request->redirect("http://esp8266.com"); ``` ### Basic response with HTTP Code ```cpp request->send(404); //Sends 404 File Not Found ``` ### Basic response with HTTP Code and extra headers ```cpp AsyncWebServerResponse *response = request->beginResponse(404); //Sends 404 File Not Found response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Basic response with string content ```cpp request->send(200, "text/plain", "Hello World!"); ``` ### Basic response with string content and extra headers ```cpp AsyncWebServerResponse *response = request->beginResponse(200, "text/plain", "Hello World!"); response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Send large webpage from PROGMEM ```cpp const char index_html[] PROGMEM = "..."; // large char array, tested with 14k request->send_P(200, "text/html", index_html); ``` ### Send large webpage from PROGMEM and extra headers ```cpp const char index_html[] PROGMEM = "..."; // large char array, tested with 14k AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", index_html); response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Send large webpage from PROGMEM containing templates ```cpp String processor(const String& var) { if(var == "HELLO_FROM_TEMPLATE") return F("Hello world!"); return String(); } // ... const char index_html[] PROGMEM = "..."; // large char array, tested with 14k request->send_P(200, "text/html", index_html, processor); ``` ### Send large webpage from PROGMEM containing templates and extra headers ```cpp String processor(const String& var) { if(var == "HELLO_FROM_TEMPLATE") return F("Hello world!"); return String(); } // ... const char index_html[] PROGMEM = "..."; // large char array, tested with 14k AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", index_html, processor); response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Send binary content from PROGMEM ```cpp //File: favicon.ico.gz, Size: 726 #define favicon_ico_gz_len 726 const uint8_t favicon_ico_gz[] PROGMEM = { 0x1F, 0x8B, 0x08, 0x08, 0x0B, 0x87, 0x90, 0x57, 0x00, 0x03, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x69, 0x63, 0x6F, 0x00, 0xCD, 0x53, 0x5F, 0x48, 0x9A, 0x51, 0x14, 0xBF, 0x62, 0x6D, 0x86, 0x96, 0xA9, 0x64, 0xD3, 0xFE, 0xA8, 0x99, 0x65, 0x1A, 0xB4, 0x8A, 0xA8, 0x51, 0x54, 0x23, 0xA8, 0x11, 0x49, 0x51, 0x8A, 0x34, 0x62, 0x93, 0x85, 0x31, 0x58, 0x44, 0x12, 0x45, 0x2D, 0x58, 0xF5, 0x52, 0x41, 0x10, 0x23, 0x82, 0xA0, 0x20, 0x98, 0x2F, 0xC1, 0x26, 0xED, 0xA1, 0x20, 0x89, 0x04, 0xD7, 0x83, 0x58, 0x20, 0x28, 0x04, 0xAB, 0xD1, 0x9B, 0x8C, 0xE5, 0xC3, 0x60, 0x32, 0x64, 0x0E, 0x56, 0xBF, 0x9D, 0xEF, 0xF6, 0x30, 0x82, 0xED, 0xAD, 0x87, 0xDD, 0x8F, 0xF3, 0xDD, 0x8F, 0x73, 0xCF, 0xEF, 0x9C, 0xDF, 0x39, 0xBF, 0xFB, 0x31, 0x26, 0xA2, 0x27, 0x37, 0x97, 0xD1, 0x5B, 0xCF, 0x9E, 0x67, 0x30, 0xA6, 0x66, 0x8C, 0x99, 0xC9, 0xC8, 0x45, 0x9E, 0x6B, 0x3F, 0x5F, 0x74, 0xA6, 0x94, 0x5E, 0xDB, 0xFF, 0xB2, 0xE6, 0xE7, 0xE7, 0xF9, 0xDE, 0xD6, 0xD6, 0x96, 0xDB, 0xD8, 0xD8, 0x78, 0xBF, 0xA1, 0xA1, 0xC1, 0xDA, 0xDC, 0xDC, 0x2C, 0xEB, 0xED, 0xED, 0x15, 0x9B, 0xCD, 0xE6, 0x4A, 0x83, 0xC1, 0xE0, 0x2E, 0x29, 0x29, 0x99, 0xD6, 0x6A, 0xB5, 0x4F, 0x75, 0x3A, 0x9D, 0x61, 0x75, 0x75, 0x95, 0xB5, 0xB7, 0xB7, 0xDF, 0xC8, 0xD1, 0xD4, 0xD4, 0xF4, 0xB0, 0xBA, 0xBA, 0xFA, 0x83, 0xD5, 0x6A, 0xFD, 0x5A, 0x5E, 0x5E, 0x9E, 0x28, 0x2D, 0x2D, 0x0D, 0x10, 0xC6, 0x4B, 0x98, 0x78, 0x5E, 0x5E, 0xDE, 0x95, 0x42, 0xA1, 0x40, 0x4E, 0x4E, 0xCE, 0x65, 0x76, 0x76, 0xF6, 0x47, 0xB5, 0x5A, 0x6D, 0x4F, 0x26, 0x93, 0xA2, 0xD6, 0xD6, 0x56, 0x8E, 0x6D, 0x69, 0x69, 0xD1, 0x11, 0x36, 0x62, 0xB1, 0x58, 0x60, 0x32, 0x99, 0xA0, 0xD7, 0xEB, 0x51, 0x58, 0x58, 0x88, 0xFC, 0xFC, 0x7C, 0x10, 0x16, 0x02, 0x56, 0x2E, 0x97, 0x43, 0x2A, 0x95, 0x42, 0x2C, 0x16, 0x23, 0x33, 0x33, 0x33, 0xAE, 0x52, 0xA9, 0x1E, 0x64, 0x65, 0x65, 0x71, 0x7C, 0x7D, 0x7D, 0xBD, 0x93, 0xEA, 0xFE, 0x30, 0x1A, 0x8D, 0xE8, 0xEC, 0xEC, 0xC4, 0xE2, 0xE2, 0x22, 0x6A, 0x6A, 0x6A, 0x40, 0x39, 0x41, 0xB5, 0x38, 0x4E, 0xC8, 0x33, 0x3C, 0x3C, 0x0C, 0x87, 0xC3, 0xC1, 0x6B, 0x54, 0x54, 0x54, 0xBC, 0xE9, 0xEB, 0xEB, 0x93, 0x5F, 0x5C, 0x5C, 0x30, 0x8A, 0x9D, 0x2E, 0x2B, 0x2B, 0xBB, 0xA2, 0x3E, 0x41, 0xBD, 0x21, 0x1E, 0x8F, 0x63, 0x6A, 0x6A, 0x0A, 0x81, 0x40, 0x00, 0x94, 0x1B, 0x3D, 0x3D, 0x3D, 0x42, 0x3C, 0x96, 0x96, 0x96, 0x70, 0x7E, 0x7E, 0x8E, 0xE3, 0xE3, 0x63, 0xF8, 0xFD, 0xFE, 0xB4, 0xD7, 0xEB, 0xF5, 0x8F, 0x8F, 0x8F, 0x5B, 0x68, 0x5E, 0x6F, 0x05, 0xCE, 0xB4, 0xE3, 0xE8, 0xE8, 0x08, 0x27, 0x27, 0x27, 0xD8, 0xDF, 0xDF, 0xC7, 0xD9, 0xD9, 0x19, 0x6C, 0x36, 0x1B, 0x36, 0x36, 0x36, 0x38, 0x9F, 0x85, 0x85, 0x05, 0xAC, 0xAF, 0xAF, 0x23, 0x1A, 0x8D, 0x22, 0x91, 0x48, 0x20, 0x16, 0x8B, 0xFD, 0xDA, 0xDA, 0xDA, 0x7A, 0x41, 0x33, 0x7E, 0x57, 0x50, 0x50, 0x80, 0x89, 0x89, 0x09, 0x84, 0xC3, 0x61, 0x6C, 0x6F, 0x6F, 0x23, 0x12, 0x89, 0xE0, 0xE0, 0xE0, 0x00, 0x43, 0x43, 0x43, 0x58, 0x5E, 0x5E, 0xE6, 0x9C, 0x7D, 0x3E, 0x1F, 0x46, 0x47, 0x47, 0x79, 0xBE, 0xBD, 0xBD, 0x3D, 0xE1, 0x3C, 0x1D, 0x0C, 0x06, 0x9F, 0x10, 0xB7, 0xC7, 0x84, 0x4F, 0xF6, 0xF7, 0xF7, 0x63, 0x60, 0x60, 0x00, 0x83, 0x83, 0x83, 0x18, 0x19, 0x19, 0xC1, 0xDC, 0xDC, 0x1C, 0x8F, 0x17, 0x7C, 0xA4, 0x27, 0xE7, 0x34, 0x39, 0x39, 0x89, 0x9D, 0x9D, 0x1D, 0x6E, 0x54, 0xE3, 0x13, 0xE5, 0x34, 0x11, 0x37, 0x49, 0x51, 0x51, 0xD1, 0x4B, 0xA5, 0x52, 0xF9, 0x45, 0x26, 0x93, 0x5D, 0x0A, 0xF3, 0x92, 0x48, 0x24, 0xA0, 0x6F, 0x14, 0x17, 0x17, 0xA3, 0xB6, 0xB6, 0x16, 0x5D, 0x5D, 0x5D, 0x7C, 0x1E, 0xBB, 0xBB, 0xBB, 0x9C, 0xD7, 0xE1, 0xE1, 0x21, 0x42, 0xA1, 0xD0, 0x6B, 0xD2, 0x45, 0x4C, 0x33, 0x12, 0x34, 0xCC, 0xA0, 0x19, 0x54, 0x92, 0x56, 0x0E, 0xD2, 0xD9, 0x43, 0xF8, 0xCF, 0x82, 0x56, 0xC2, 0xDC, 0xEB, 0xEA, 0xEA, 0x38, 0x7E, 0x6C, 0x6C, 0x4C, 0xE0, 0xFE, 0x9D, 0xB8, 0xBF, 0xA7, 0xFA, 0xAF, 0x56, 0x56, 0x56, 0xEE, 0x6D, 0x6E, 0x6E, 0xDE, 0xB8, 0x47, 0x55, 0x55, 0x55, 0x6C, 0x66, 0x66, 0x46, 0x44, 0xDA, 0x3B, 0x34, 0x1A, 0x4D, 0x94, 0xB0, 0x3F, 0x09, 0x7B, 0x45, 0xBD, 0xA5, 0x5D, 0x2E, 0x57, 0x8C, 0x7A, 0x73, 0xD9, 0xED, 0xF6, 0x3B, 0x84, 0xFF, 0xE7, 0x7D, 0xA6, 0x3A, 0x2C, 0x95, 0x4A, 0xB1, 0x8E, 0x8E, 0x0E, 0x6D, 0x77, 0x77, 0xB7, 0xCD, 0xE9, 0x74, 0x3E, 0x73, 0xBB, 0xDD, 0x8F, 0x3C, 0x1E, 0x8F, 0xE6, 0xF4, 0xF4, 0x94, 0xAD, 0xAD, 0xAD, 0xDD, 0xDE, 0xCF, 0x73, 0x0B, 0x0B, 0xB8, 0xB6, 0xE0, 0x5D, 0xC6, 0x66, 0xC5, 0xE4, 0x10, 0x4C, 0xF4, 0xF7, 0xD8, 0x59, 0xF2, 0x7F, 0xA3, 0xB8, 0xB4, 0xFC, 0x0F, 0xEE, 0x37, 0x70, 0xEC, 0x16, 0x4A, 0x7E, 0x04, 0x00, 0x00 }; AsyncWebServerResponse *response = request->beginResponse_P(200, "image/x-icon", favicon_ico_gz, favicon_ico_gz_len); response->addHeader("Content-Encoding", "gzip"); request->send(response); ``` ### Respond with content coming from a Stream ```cpp //read 12 bytes from Serial and send them as Content Type text/plain request->send(Serial, "text/plain", 12); ``` ### Respond with content coming from a Stream and extra headers ```cpp //read 12 bytes from Serial and send them as Content Type text/plain AsyncWebServerResponse *response = request->beginResponse(Serial, "text/plain", 12); response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Respond with content coming from a Stream containing templates ```cpp String processor(const String& var) { if(var == "HELLO_FROM_TEMPLATE") return F("Hello world!"); return String(); } // ... //read 12 bytes from Serial and send them as Content Type text/plain request->send(Serial, "text/plain", 12, processor); ``` ### Respond with content coming from a Stream containing templates and extra headers ```cpp String processor(const String& var) { if(var == "HELLO_FROM_TEMPLATE") return F("Hello world!"); return String(); } // ... //read 12 bytes from Serial and send them as Content Type text/plain AsyncWebServerResponse *response = request->beginResponse(Serial, "text/plain", 12, processor); response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Respond with content coming from a File ```cpp //Send index.htm with default content type request->send(SPIFFS, "/index.htm"); //Send index.htm as text request->send(SPIFFS, "/index.htm", "text/plain"); //Download index.htm request->send(SPIFFS, "/index.htm", String(), true); ``` ### Respond with content coming from a File and extra headers ```cpp //Send index.htm with default content type AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/index.htm"); //Send index.htm as text AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/index.htm", "text/plain"); //Download index.htm AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/index.htm", String(), true); response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Respond with content coming from a File containing templates Internally uses [Chunked Response](#chunked-response). Index.htm contents: ``` %HELLO_FROM_TEMPLATE% ``` Somewhere in source files: ```cpp String processor(const String& var) { if(var == "HELLO_FROM_TEMPLATE") return F("Hello world!"); return String(); } // ... //Send index.htm with template processor function request->send(SPIFFS, "/index.htm", String(), false, processor); ``` ### Respond with content using a callback ```cpp //send 128 bytes as plain text request->send("text/plain", 128, [](uint8_t *buffer, size_t maxLen, size_t index) -> size_t { //Write up to "maxLen" bytes into "buffer" and return the amount written. //index equals the amount of bytes that have been already sent //You will not be asked for more bytes once the content length has been reached. //Keep in mind that you can not delay or yield waiting for more data! //Send what you currently have and you will be asked for more again return mySource.read(buffer, maxLen); }); ``` ### Respond with content using a callback and extra headers ```cpp //send 128 bytes as plain text AsyncWebServerResponse *response = request->beginResponse("text/plain", 128, [](uint8_t *buffer, size_t maxLen, size_t index) -> size_t { //Write up to "maxLen" bytes into "buffer" and return the amount written. //index equals the amount of bytes that have been already sent //You will not be asked for more bytes once the content length has been reached. //Keep in mind that you can not delay or yield waiting for more data! //Send what you currently have and you will be asked for more again return mySource.read(buffer, maxLen); }); response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Respond with content using a callback containing templates ```cpp String processor(const String& var) { if(var == "HELLO_FROM_TEMPLATE") return F("Hello world!"); return String(); } // ... //send 128 bytes as plain text request->send("text/plain", 128, [](uint8_t *buffer, size_t maxLen, size_t index) -> size_t { //Write up to "maxLen" bytes into "buffer" and return the amount written. //index equals the amount of bytes that have been already sent //You will not be asked for more bytes once the content length has been reached. //Keep in mind that you can not delay or yield waiting for more data! //Send what you currently have and you will be asked for more again return mySource.read(buffer, maxLen); }, processor); ``` ### Respond with content using a callback containing templates and extra headers ```cpp String processor(const String& var) { if(var == "HELLO_FROM_TEMPLATE") return F("Hello world!"); return String(); } // ... //send 128 bytes as plain text AsyncWebServerResponse *response = request->beginResponse("text/plain", 128, [](uint8_t *buffer, size_t maxLen, size_t index) -> size_t { //Write up to "maxLen" bytes into "buffer" and return the amount written. //index equals the amount of bytes that have been already sent //You will not be asked for more bytes once the content length has been reached. //Keep in mind that you can not delay or yield waiting for more data! //Send what you currently have and you will be asked for more again return mySource.read(buffer, maxLen); }, processor); response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Chunked Response Used when content length is unknown. Works best if the client supports HTTP/1.1 ```cpp AsyncWebServerResponse *response = request->beginChunkedResponse("text/plain", [](uint8_t *buffer, size_t maxLen, size_t index) -> size_t { //Write up to "maxLen" bytes into "buffer" and return the amount written. //index equals the amount of bytes that have been already sent //You will be asked for more data until 0 is returned //Keep in mind that you can not delay or yield waiting for more data! return mySource.read(buffer, maxLen); }); response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Chunked Response containing templates Used when content length is unknown. Works best if the client supports HTTP/1.1 ```cpp String processor(const String& var) { if(var == "HELLO_FROM_TEMPLATE") return F("Hello world!"); return String(); } // ... AsyncWebServerResponse *response = request->beginChunkedResponse("text/plain", [](uint8_t *buffer, size_t maxLen, size_t index) -> size_t { //Write up to "maxLen" bytes into "buffer" and return the amount written. //index equals the amount of bytes that have been already sent //You will be asked for more data until 0 is returned //Keep in mind that you can not delay or yield waiting for more data! return mySource.read(buffer, maxLen); }, processor); response->addHeader("Server","ESP Async Web Server"); request->send(response); ``` ### Print to response ```cpp AsyncResponseStream *response = request->beginResponseStream("text/html"); response->addHeader("Server","ESP Async Web Server"); response->printf("Webpage at %s", request->url().c_str()); response->print("

Hello "); response->print(request->client()->remoteIP()); response->print("

"); response->print("

General

"); response->print("
    "); response->printf("
  • Version: HTTP/1.%u
  • ", request->version()); response->printf("
  • Method: %s
  • ", request->methodToString()); response->printf("
  • URL: %s
  • ", request->url().c_str()); response->printf("
  • Host: %s
  • ", request->host().c_str()); response->printf("
  • ContentType: %s
  • ", request->contentType().c_str()); response->printf("
  • ContentLength: %u
  • ", request->contentLength()); response->printf("
  • Multipart: %s
  • ", request->multipart()?"true":"false"); response->print("
"); response->print("

Headers

"); response->print("
    "); int headers = request->headers(); for(int i=0;igetHeader(i); response->printf("
  • %s: %s
  • ", h->name().c_str(), h->value().c_str()); } response->print("
"); response->print("

Parameters

"); response->print("
    "); int params = request->params(); for(int i=0;igetParam(i); if(p->isFile()){ response->printf("
  • FILE[%s]: %s, size: %u
  • ", p->name().c_str(), p->value().c_str(), p->size()); } else if(p->isPost()){ response->printf("
  • POST[%s]: %s
  • ", p->name().c_str(), p->value().c_str()); } else { response->printf("
  • GET[%s]: %s
  • ", p->name().c_str(), p->value().c_str()); } } response->print("
"); response->print(""); //send the response last request->send(response); ``` ### ArduinoJson Basic Response This way of sending Json is great for when the result is below 4KB ```cpp #include "AsyncJson.h" #include "ArduinoJson.h" AsyncResponseStream *response = request->beginResponseStream("application/json"); DynamicJsonBuffer jsonBuffer; JsonObject &root = jsonBuffer.createObject(); root["heap"] = ESP.getFreeHeap(); root["ssid"] = WiFi.SSID(); root.printTo(*response); request->send(response); ``` ### ArduinoJson Advanced Response This response can handle really large Json objects (tested to 40KB) There isn't any noticeable speed decrease for small results with the method above Since ArduinoJson does not allow reading parts of the string, the whole Json has to be passed every time a chunks needs to be sent, which shows speed decrease proportional to the resulting json packets ```cpp #include "AsyncJson.h" #include "ArduinoJson.h" AsyncJsonResponse * response = new AsyncJsonResponse(); response->addHeader("Server","ESP Async Web Server"); JsonObject& root = response->getRoot(); root["heap"] = ESP.getFreeHeap(); root["ssid"] = WiFi.SSID(); response->setLength(); request->send(response); ``` ## Serving static files In addition to serving files from SPIFFS as described above, the server provide a dedicated handler that optimize the performance of serving files from SPIFFS - ```AsyncStaticWebHandler```. Use ```server.serveStatic()``` function to initialize and add a new instance of ```AsyncStaticWebHandler``` to the server. The Handler will not handle the request if the file does not exists, e.g. the server will continue to look for another handler that can handle the request. Notice that you can chain setter functions to setup the handler, or keep a pointer to change it at a later time. ### Serving specific file by name ```cpp // Serve the file "/www/page.htm" when request url is "/page.htm" server.serveStatic("/page.htm", SPIFFS, "/www/page.htm"); ``` ### Serving files in directory To serve files in a directory, the path to the files should specify a directory in SPIFFS and ends with "/". ```cpp // Serve files in directory "/www/" when request url starts with "/" // Request to the root or none existing files will try to server the defualt // file name "index.htm" if exists server.serveStatic("/", SPIFFS, "/www/"); // Server with different default file server.serveStatic("/", SPIFFS, "/www/").setDefaultFile("default.html"); ``` ### Serving static files with authentication ```cpp server .serveStatic("/", SPIFFS, "/www/") .setDefaultFile("default.html") .setAuthentication("user", "pass"); ``` ### Specifying Cache-Control header It is possible to specify Cache-Control header value to reduce the number of calls to the server once the client loaded the files. For more information on Cache-Control values see [Cache-Control](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) ```cpp // Cache responses for 10 minutes (600 seconds) server.serveStatic("/", SPIFFS, "/www/").setCacheControl("max-age=600"); //*** Change Cache-Control after server setup *** // During setup - keep a pointer to the handler AsyncStaticWebHandler* handler = &server.serveStatic("/", SPIFFS, "/www/").setCacheControl("max-age=600"); // At a later event - change Cache-Control handler->setCacheControl("max-age=30"); ``` ### Specifying Date-Modified header It is possible to specify Date-Modified header to enable the server to return Not-Modified (304) response for requests with "If-Modified-Since" header with the same value, instead of responding with the actual file content. ```cpp // Update the date modified string every time files are updated server.serveStatic("/", SPIFFS, "/www/").setLastModified("Mon, 20 Jun 2016 14:00:00 GMT"); //*** Chage last modified value at a later stage *** // During setup - read last modified value from config or EEPROM String date_modified = loadDateModified(); AsyncStaticWebHandler* handler = &server.serveStatic("/", SPIFFS, "/www/"); handler->setLastModified(date_modified); // At a later event when files are updated String date_modified = getNewDateModfied(); saveDateModified(date_modified); // Save for next reset handler->setLastModified(date_modified); ``` ### Specifying Template Processor callback It is possible to specify template processor for static files. For information on template processor see [Respond with content coming from a File containing templates](#respond-with-content-coming-from-a-file-containing-templates). ```cpp String processor(const String& var) { if(var == "HELLO_FROM_TEMPLATE") return F("Hello world!"); return String(); } // ... server.serveStatic("/", SPIFFS, "/www/").setTemplateProcessor(processor); ``` ## Param Rewrite With Matching It is possible to rewrite the request url with parameter matchg. Here is an example with one parameter: Rewrite for example "/radio/{frequence}" -> "/radio?f={frequence}" ```cpp class OneParamRewrite : public AsyncWebRewrite { protected: String _urlPrefix; int _paramIndex; String _paramsBackup; public: OneParamRewrite(const char* from, const char* to) : AsyncWebRewrite(from, to) { _paramIndex = _from.indexOf('{'); if( _paramIndex >=0 && _from.endsWith("}")) { _urlPrefix = _from.substring(0, _paramIndex); int index = _params.indexOf('{'); if(index >= 0) { _params = _params.substring(0, index); } } else { _urlPrefix = _from; } _paramsBackup = _params; } bool match(AsyncWebServerRequest *request) override { if(request->url().startsWith(_urlPrefix)) { if(_paramIndex >= 0) { _params = _paramsBackup + request->url().substring(_paramIndex); } else { _params = _paramsBackup; } return true; } else { return false; } } }; ``` Usage: ```cpp server.addRewrite( new OneParamRewrite("/radio/{frequence}", "/radio?f={frequence}") ); ``` ## Using filters Filters can be set to `Rewrite` or `Handler` in order to control when to apply the rewrite and consider the handler. A filter is a callback function that evaluates the request and return a boolean `true` to include the item or `false` to exclude it. Two filter callback are provided for convince: * `ON_STA_FILTER` - return true when requests are made to the STA (station mode) interface. * `ON_AP_FILTER` - return true when requests are made to the AP (access point) interface. ### Serve different site files in AP mode ```cpp server.serveStatic("/", SPIFFS, "/www/").setFilter(ON_STA_FILTER); server.serveStatic("/", SPIFFS, "/ap/").setFilter(ON_AP_FILTER); ``` ### Rewrite to different index on AP ```cpp // Serve the file "/www/index-ap.htm" in AP, and the file "/www/index.htm" on STA server.rewrite("/", "index.htm"); server.rewrite("/index.htm", "index-ap.htm").setFilter(ON_AP_FILTER); server.serveStatic("/", SPIFFS, "/www/"); ``` ### Serving different hosts ```cpp // Filter callback using request host bool filterOnHost1(AsyncWebServerRequest *request) { return request->host() == "host1"; } // Server setup: server files in "/host1/" to requests for "host1", and files in "/www/" otherwise. server.serveStatic("/", SPIFFS, "/host1/").setFilter(filterOnHost1); server.serveStatic("/", SPIFFS, "/www/"); ``` ### Determine interface inside callbacks ```cpp String RedirectUrl = "http://"; if (ON_STA_FILTER(request)) { RedirectUrl += WiFi.localIP().toString(); } else { RedirectUrl += WiFi.softAPIP().toString(); } RedirectUrl += "/index.htm"; request->redirect(RedirectUrl); ``` ## Bad Responses Some responses are implemented, but you should not use them, because they do not conform to HTTP. The following example will lead to unclean close of the connection and more time wasted than providing the length of the content ### Respond with content using a callback without content length to HTTP/1.0 clients ```cpp //This is used as fallback for chunked responses to HTTP/1.0 Clients request->send("text/plain", 0, [](uint8_t *buffer, size_t maxLen, size_t index) -> size_t { //Write up to "maxLen" bytes into "buffer" and return the amount written. //You will be asked for more data until 0 is returned //Keep in mind that you can not delay or yield waiting for more data! return mySource.read(buffer, maxLen); }); ``` ## Async WebSocket Plugin The server includes a web socket plugin which lets you define different WebSocket locations to connect to without starting another listening service or using different port ### Async WebSocket Event ```cpp void onEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len){ if(type == WS_EVT_CONNECT){ //client connected os_printf("ws[%s][%u] connect\n", server->url(), client->id()); client->printf("Hello Client %u :)", client->id()); client->ping(); } else if(type == WS_EVT_DISCONNECT){ //client disconnected os_printf("ws[%s][%u] disconnect: %u\n", server->url(), client->id()); } else if(type == WS_EVT_ERROR){ //error was received from the other end os_printf("ws[%s][%u] error(%u): %s\n", server->url(), client->id(), *((uint16_t*)arg), (char*)data); } else if(type == WS_EVT_PONG){ //pong message was received (in response to a ping request maybe) os_printf("ws[%s][%u] pong[%u]: %s\n", server->url(), client->id(), len, (len)?(char*)data:""); } else if(type == WS_EVT_DATA){ //data packet AwsFrameInfo * info = (AwsFrameInfo*)arg; if(info->final && info->index == 0 && info->len == len){ //the whole message is in a single frame and we got all of it's data os_printf("ws[%s][%u] %s-message[%llu]: ", server->url(), client->id(), (info->opcode == WS_TEXT)?"text":"binary", info->len); if(info->opcode == WS_TEXT){ data[len] = 0; os_printf("%s\n", (char*)data); } else { for(size_t i=0; i < info->len; i++){ os_printf("%02x ", data[i]); } os_printf("\n"); } if(info->opcode == WS_TEXT) client->text("I got your text message"); else client->binary("I got your binary message"); } else { //message is comprised of multiple frames or the frame is split into multiple packets if(info->index == 0){ if(info->num == 0) os_printf("ws[%s][%u] %s-message start\n", server->url(), client->id(), (info->message_opcode == WS_TEXT)?"text":"binary"); os_printf("ws[%s][%u] frame[%u] start[%llu]\n", server->url(), client->id(), info->num, info->len); } os_printf("ws[%s][%u] frame[%u] %s[%llu - %llu]: ", server->url(), client->id(), info->num, (info->message_opcode == WS_TEXT)?"text":"binary", info->index, info->index + len); if(info->message_opcode == WS_TEXT){ data[len] = 0; os_printf("%s\n", (char*)data); } else { for(size_t i=0; i < len; i++){ os_printf("%02x ", data[i]); } os_printf("\n"); } if((info->index + len) == info->len){ os_printf("ws[%s][%u] frame[%u] end[%llu]\n", server->url(), client->id(), info->num, info->len); if(info->final){ os_printf("ws[%s][%u] %s-message end\n", server->url(), client->id(), (info->message_opcode == WS_TEXT)?"text":"binary"); if(info->message_opcode == WS_TEXT) client->text("I got your text message"); else client->binary("I got your binary message"); } } } } } ``` ### Methods for sending data to a socket client ```cpp //Server methods AsyncWebSocket ws("/ws"); //printf to a client ws.printf((uint32_t)client_id, arguments...); //printf to all clients ws.printfAll(arguments...); //printf_P to a client ws.printf_P((uint32_t)client_id, PSTR(format), arguments...); //printfAll_P to all clients ws.printfAll_P(PSTR(format), arguments...); //send text to a client ws.text((uint32_t)client_id, (char*)text); ws.text((uint32_t)client_id, (uint8_t*)text, (size_t)len); //send text from PROGMEM to a client ws.text((uint32_t)client_id, PSTR("text")); const char flash_text[] PROGMEM = "Text to send" ws.text((uint32_t)client_id, FPSTR(flash_text)); //send text to all clients ws.textAll((char*)text); ws.textAll((uint8_t*)text, (size_t)len); //send binary to a client ws.binary((uint32_t)client_id, (char*)binary); ws.binary((uint32_t)client_id, (uint8_t*)binary, (size_t)len); //send binary from PROGMEM to a client const uint8_t flash_binary[] PROGMEM = { 0x01, 0x02, 0x03, 0x04 }; ws.binary((uint32_t)client_id, flash_binary, 4); //send binary to all clients ws.binaryAll((char*)binary); ws.binaryAll((uint8_t*)binary, (size_t)len); //HTTP Authenticate before switch to Websocket protocol ws.setAuthentication("user", "pass"); //client methods AsyncWebSocketClient * client; //printf client->printf(arguments...); //printf_P client->printf_P(PSTR(format), arguments...); //send text client->text((char*)text); client->text((uint8_t*)text, (size_t)len); //send text from PROGMEM client->text(PSTR("text")); const char flash_text[] PROGMEM = "Text to send"; client->text(FPSTR(flash_text)); //send binary client->binary((char*)binary); client->binary((uint8_t*)binary, (size_t)len); //send binary from PROGMEM const uint8_t flash_binary[] PROGMEM = { 0x01, 0x02, 0x03, 0x04 }; client->binary(flash_binary, 4); ``` ### Direct access to web socket message buffer When sending a web socket message using the above methods a buffer is created. Under certain circumstances you might want to manipulate or populate this buffer directly from your application, for example to prevent unnecessary duplications of the data. This example below shows how to create a buffer and print data to it from an ArduinoJson object then send it. ```cpp void sendDataWs(AsyncWebSocketClient * client) { DynamicJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.createObject(); root["a"] = "abc"; root["b"] = "abcd"; root["c"] = "abcde"; root["d"] = "abcdef"; root["e"] = "abcdefg"; size_t len = root.measureLength(); AsyncWebSocketMessageBuffer * buffer = ws.makeBuffer(len); // creates a buffer (len + 1) for you. if (buffer) { root.printTo((char *)buffer->get(), len + 1); if (client) { client->text(buffer); } else { ws.textAll(buffer); } } } ``` ### Limiting the number of web socket clients Browsers sometimes do not correctly close the websocket connection, even when the close() function is called in javascript. This will eventually exhaust the web server's resources and will cause the server to crash. Periodically calling the cleanClients() function from the main loop() function limits the number of clients by closing the oldest client when the maximum number of clients has been exceeded. This can called be every cycle, however, if you wish to use less power, then calling as infrequently as once per second is sufficient. ```cpp void loop(){ ws.cleanupClients(); } ``` ## Async Event Source Plugin The server includes EventSource (Server-Sent Events) plugin which can be used to send short text events to the browser. Difference between EventSource and WebSockets is that EventSource is single direction, text-only protocol. ### Setup Event Source on the server ```cpp AsyncWebServer server(80); AsyncEventSource events("/events"); void setup(){ // setup ...... events.onConnect([](AsyncEventSourceClient *client){ if(client->lastId()){ Serial.printf("Client reconnected! Last message ID that it gat is: %u\n", client->lastId()); } //send event with message "hello!", id current millis // and set reconnect delay to 1 second client->send("hello!",NULL,millis(),1000); }); //HTTP Basic authentication events.setAuthentication("user", "pass"); server.addHandler(&events); // setup ...... } void loop(){ if(eventTriggered){ // your logic here //send event "myevent" events.send("my event content","myevent",millis()); } } ``` ### Setup Event Source in the browser ```javascript if (!!window.EventSource) { var source = new EventSource('/events'); source.addEventListener('open', function(e) { console.log("Events Connected"); }, false); source.addEventListener('error', function(e) { if (e.target.readyState != EventSource.OPEN) { console.log("Events Disconnected"); } }, false); source.addEventListener('message', function(e) { console.log("message", e.data); }, false); source.addEventListener('myevent', function(e) { console.log("myevent", e.data); }, false); } ``` ## Scanning for available WiFi Networks ```cpp //First request will return 0 results unless you start scan from somewhere else (loop/setup) //Do not request more often than 3-5 seconds server.on("/scan", HTTP_GET, [](AsyncWebServerRequest *request){ String json = "["; int n = WiFi.scanComplete(); if(n == -2){ WiFi.scanNetworks(true); } else if(n){ for (int i = 0; i < n; ++i){ if(i) json += ","; json += "{"; json += "\"rssi\":"+String(WiFi.RSSI(i)); json += ",\"ssid\":\""+WiFi.SSID(i)+"\""; json += ",\"bssid\":\""+WiFi.BSSIDstr(i)+"\""; json += ",\"channel\":"+String(WiFi.channel(i)); json += ",\"secure\":"+String(WiFi.encryptionType(i)); json += ",\"hidden\":"+String(WiFi.isHidden(i)?"true":"false"); json += "}"; } WiFi.scanDelete(); if(WiFi.scanComplete() == -2){ WiFi.scanNetworks(true); } } json += "]"; request->send(200, "application/json", json); json = String(); }); ``` ## Remove handlers and rewrites Server goes through handlers in same order as they were added. You can't simple add handler with same path to override them. To remove handler: ```arduino // save callback for particular URL path auto handler = server.on("/some/path", [](AsyncWebServerRequest *request){ //do something useful }); // when you don't need handler anymore remove it server.removeHandler(&handler); // same with rewrites server.removeRewrite(&someRewrite); server.onNotFound([](AsyncWebServerRequest *request){ request->send(404); }); // remove server.onNotFound handler server.onNotFound(NULL); // remove all rewrites, handlers and onNotFound/onFileUpload/onRequestBody callbacks server.reset(); ``` ## Setting up the server ```cpp #include "ESPAsyncTCP.h" #include "ESPAsyncWebServer.h" AsyncWebServer server(80); AsyncWebSocket ws("/ws"); // access at ws://[esp ip]/ws AsyncEventSource events("/events"); // event source (Server-Sent events) const char* ssid = "your-ssid"; const char* password = "your-pass"; const char* http_username = "admin"; const char* http_password = "admin"; //flag to use from web update to reboot the ESP bool shouldReboot = false; void onRequest(AsyncWebServerRequest *request){ //Handle Unknown Request request->send(404); } void onBody(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total){ //Handle body } void onUpload(AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final){ //Handle upload } void onEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len){ //Handle WebSocket event } void setup(){ Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); if (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.printf("WiFi Failed!\n"); return; } // attach AsyncWebSocket ws.onEvent(onEvent); server.addHandler(&ws); // attach AsyncEventSource server.addHandler(&events); // respond to GET requests on URL /heap server.on("/heap", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(200, "text/plain", String(ESP.getFreeHeap())); }); // upload a file to /upload server.on("/upload", HTTP_POST, [](AsyncWebServerRequest *request){ request->send(200); }, onUpload); // send a file when /index is requested server.on("/index", HTTP_ANY, [](AsyncWebServerRequest *request){ request->send(SPIFFS, "/index.htm"); }); // HTTP basic authentication server.on("/login", HTTP_GET, [](AsyncWebServerRequest *request){ if(!request->authenticate(http_username, http_password)) return request->requestAuthentication(); request->send(200, "text/plain", "Login Success!"); }); // Simple Firmware Update Form server.on("/update", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(200, "text/html", "
"); }); server.on("/update", HTTP_POST, [](AsyncWebServerRequest *request){ shouldReboot = !Update.hasError(); AsyncWebServerResponse *response = request->beginResponse(200, "text/plain", shouldReboot?"OK":"FAIL"); response->addHeader("Connection", "close"); request->send(response); },[](AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final){ if(!index){ Serial.printf("Update Start: %s\n", filename.c_str()); Update.runAsync(true); if(!Update.begin((ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000)){ Update.printError(Serial); } } if(!Update.hasError()){ if(Update.write(data, len) != len){ Update.printError(Serial); } } if(final){ if(Update.end(true)){ Serial.printf("Update Success: %uB\n", index+len); } else { Update.printError(Serial); } } }); // attach filesystem root at URL /fs server.serveStatic("/fs", SPIFFS, "/"); // Catch-All Handlers // Any request that can not find a Handler that canHandle it // ends in the callbacks below. server.onNotFound(onRequest); server.onFileUpload(onUpload); server.onRequestBody(onBody); server.begin(); } void loop(){ if(shouldReboot){ Serial.println("Rebooting..."); delay(100); ESP.restart(); } static char temp[128]; sprintf(temp, "Seconds since boot: %u", millis()/1000); events.send(temp, "time"); //send event "time" } ``` ### Setup global and class functions as request handlers ```cpp #include #include #include #include void handleRequest(AsyncWebServerRequest *request){} class WebClass { public : AsyncWebServer classWebServer = AsyncWebServer(81); WebClass(){}; void classRequest (AsyncWebServerRequest *request){} void begin(){ // attach global request handler classWebServer.on("/example", HTTP_ANY, handleRequest); // attach class request handler classWebServer.on("/example", HTTP_ANY, std::bind(&WebClass::classRequest, this, std::placeholders::_1)); } }; AsyncWebServer globalWebServer(80); WebClass webClassInstance; void setup() { // attach global request handler globalWebServer.on("/example", HTTP_ANY, handleRequest); // attach class request handler globalWebServer.on("/example", HTTP_ANY, std::bind(&WebClass::classRequest, webClassInstance, std::placeholders::_1)); } void loop() { } ``` ### Methods for controlling websocket connections ```cpp // Disable client connections if it was activated if ( ws.enabled() ) ws.enable(false); // enable client connections if it was disabled if ( !ws.enabled() ) ws.enable(true); ``` Example of OTA code ```cpp // OTA callbacks ArduinoOTA.onStart([]() { // Clean SPIFFS SPIFFS.end(); // Disable client connections ws.enable(false); // Advertise connected clients what's going on ws.textAll("OTA Update Started"); // Close them ws.closeAll(); }); ``` ### Adding Default Headers In some cases, such as when working with CORS, or with some sort of custom authentication system, you might need to define a header that should get added to all responses (including static, websocket and EventSource). The DefaultHeaders singleton allows you to do this. Example: ```cpp DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", "*"); webServer.begin(); ``` *NOTE*: You will still need to respond to the OPTIONS method for CORS pre-flight in most cases. (unless you are only using GET) This is one option: ```cpp webServer.onNotFound([](AsyncWebServerRequest *request) { if (request->method() == HTTP_OPTIONS) { request->send(200); } else { request->send(404); } }); ``` ### Path variable With path variable you can create a custom regex rule for a specific parameter in a route. For example we want a `sensorId` parameter in a route rule to match only a integer. ```cpp server.on("^\\/sensor\\/([0-9]+)$", HTTP_GET, [] (AsyncWebServerRequest *request) { String sensorId = request->pathArg(0); }); ``` *NOTE*: All regex patterns starts with `^` and ends with `$` To enable the `Path variable` support, you have to define the buildflag `-DASYNCWEBSERVER_REGEX`. For Arduino IDE create/update `platform.local.txt`: `Windows`: C:\Users\(username)\AppData\Local\Arduino15\packages\\`{espxxxx}`\hardware\\`espxxxx`\\`{version}`\platform.local.txt `Linux`: ~/.arduino15/packages/`{espxxxx}`/hardware/`{espxxxx}`/`{version}`/platform.local.txt Add/Update the following line: ``` compiler.cpp.extra_flags=-DDASYNCWEBSERVER_REGEX ``` For platformio modify `platformio.ini`: ```ini [env:myboard] build_flags = -DASYNCWEBSERVER_REGEX ``` *NOTE*: By enabling `ASYNCWEBSERVER_REGEX`, `` will be included. This will add an 100k to your binary. ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/_config.yml ================================================ theme: jekyll-theme-cayman ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/component.mk ================================================ COMPONENT_ADD_INCLUDEDIRS := src COMPONENT_SRCDIRS := src CXXFLAGS += -fno-rtti ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/keywords.txt ================================================ JsonArray KEYWORD1 add KEYWORD2 createArray KEYWORD3 ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/library.json ================================================ { "name":"ESP Async WebServer", "description":"Asynchronous HTTP and WebSocket Server Library for ESP8266 and ESP32", "keywords":"http,async,websocket,webserver", "authors": { "name": "Hristo Gochkov", "maintainer": true }, "repository": { "type": "git", "url": "https://github.com/me-no-dev/ESPAsyncWebServer.git" }, "version": "1.2.3", "license": "LGPL-3.0", "frameworks": "arduino", "platforms": ["espressif8266", "espressif32"], "dependencies": [ { "owner": "me-no-dev", "name": "ESPAsyncTCP", "version": "^1.2.2", "platforms": "espressif8266" }, { "owner": "me-no-dev", "name": "AsyncTCP", "version": "^1.1.1", "platforms": "espressif32" }, { "name": "Hash", "platforms": "espressif8266" } ] } ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/library.properties ================================================ name=ESP Async WebServer version=1.2.3 author=Me-No-Dev maintainer=Me-No-Dev sentence=Async Web Server for ESP8266 and ESP31B paragraph=Async Web Server for ESP8266 and ESP31B category=Other url=https://github.com/me-no-dev/ESPAsyncWebServer architectures=* ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/AsyncEventSource.cpp ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "Arduino.h" #include "AsyncEventSource.h" static String generateEventMessage(const char *message, const char *event, uint32_t id, uint32_t reconnect){ String ev = ""; if(reconnect){ ev += "retry: "; ev += String(reconnect); ev += "\r\n"; } if(id){ ev += "id: "; ev += String(id); ev += "\r\n"; } if(event != NULL){ ev += "event: "; ev += String(event); ev += "\r\n"; } if(message != NULL){ size_t messageLen = strlen(message); char * lineStart = (char *)message; char * lineEnd; do { char * nextN = strchr(lineStart, '\n'); char * nextR = strchr(lineStart, '\r'); if(nextN == NULL && nextR == NULL){ size_t llen = ((char *)message + messageLen) - lineStart; char * ldata = (char *)malloc(llen+1); if(ldata != NULL){ memcpy(ldata, lineStart, llen); ldata[llen] = 0; ev += "data: "; ev += ldata; ev += "\r\n\r\n"; free(ldata); } lineStart = (char *)message + messageLen; } else { char * nextLine = NULL; if(nextN != NULL && nextR != NULL){ if(nextR < nextN){ lineEnd = nextR; if(nextN == (nextR + 1)) nextLine = nextN + 1; else nextLine = nextR + 1; } else { lineEnd = nextN; if(nextR == (nextN + 1)) nextLine = nextR + 1; else nextLine = nextN + 1; } } else if(nextN != NULL){ lineEnd = nextN; nextLine = nextN + 1; } else { lineEnd = nextR; nextLine = nextR + 1; } size_t llen = lineEnd - lineStart; char * ldata = (char *)malloc(llen+1); if(ldata != NULL){ memcpy(ldata, lineStart, llen); ldata[llen] = 0; ev += "data: "; ev += ldata; ev += "\r\n"; free(ldata); } lineStart = nextLine; if(lineStart == ((char *)message + messageLen)) ev += "\r\n"; } } while(lineStart < ((char *)message + messageLen)); } return ev; } // Message AsyncEventSourceMessage::AsyncEventSourceMessage(const char * data, size_t len) : _data(nullptr), _len(len), _sent(0), _acked(0) { _data = (uint8_t*)malloc(_len+1); if(_data == nullptr){ _len = 0; } else { memcpy(_data, data, len); _data[_len] = 0; } } AsyncEventSourceMessage::~AsyncEventSourceMessage() { if(_data != NULL) free(_data); } size_t AsyncEventSourceMessage::ack(size_t len, uint32_t time) { (void)time; // If the whole message is now acked... if(_acked + len > _len){ // Return the number of extra bytes acked (they will be carried on to the next message) const size_t extra = _acked + len - _len; _acked = _len; return extra; } // Return that no extra bytes left. _acked += len; return 0; } size_t AsyncEventSourceMessage::send(AsyncClient *client) { const size_t len = _len - _sent; if(client->space() < len){ return 0; } size_t sent = client->add((const char *)_data, len); if(client->canSend()) client->send(); _sent += sent; return sent; } // Client AsyncEventSourceClient::AsyncEventSourceClient(AsyncWebServerRequest *request, AsyncEventSource *server) : _messageQueue(LinkedList([](AsyncEventSourceMessage *m){ delete m; })) { _client = request->client(); _server = server; _lastId = 0; if(request->hasHeader("Last-Event-ID")) _lastId = atoi(request->getHeader("Last-Event-ID")->value().c_str()); _client->setRxTimeout(0); _client->onError(NULL, NULL); _client->onAck([](void *r, AsyncClient* c, size_t len, uint32_t time){ (void)c; ((AsyncEventSourceClient*)(r))->_onAck(len, time); }, this); _client->onPoll([](void *r, AsyncClient* c){ (void)c; ((AsyncEventSourceClient*)(r))->_onPoll(); }, this); _client->onData(NULL, NULL); _client->onTimeout([this](void *r, AsyncClient* c __attribute__((unused)), uint32_t time){ ((AsyncEventSourceClient*)(r))->_onTimeout(time); }, this); _client->onDisconnect([this](void *r, AsyncClient* c){ ((AsyncEventSourceClient*)(r))->_onDisconnect(); delete c; }, this); _server->_addClient(this); delete request; } AsyncEventSourceClient::~AsyncEventSourceClient(){ _messageQueue.free(); close(); } void AsyncEventSourceClient::_queueMessage(AsyncEventSourceMessage *dataMessage){ if(dataMessage == NULL) return; if(!connected()){ delete dataMessage; return; } if(_messageQueue.length() >= SSE_MAX_QUEUED_MESSAGES){ ets_printf("ERROR: Too many messages queued\n"); delete dataMessage; } else { _messageQueue.add(dataMessage); } if(_client->canSend()) _runQueue(); } void AsyncEventSourceClient::_onAck(size_t len, uint32_t time){ while(len && !_messageQueue.isEmpty()){ len = _messageQueue.front()->ack(len, time); if(_messageQueue.front()->finished()) _messageQueue.remove(_messageQueue.front()); } _runQueue(); } void AsyncEventSourceClient::_onPoll(){ if(!_messageQueue.isEmpty()){ _runQueue(); } } void AsyncEventSourceClient::_onTimeout(uint32_t time __attribute__((unused))){ _client->close(true); } void AsyncEventSourceClient::_onDisconnect(){ _client = NULL; _server->_handleDisconnect(this); } void AsyncEventSourceClient::close(){ if(_client != NULL) _client->close(); } void AsyncEventSourceClient::write(const char * message, size_t len){ _queueMessage(new AsyncEventSourceMessage(message, len)); } void AsyncEventSourceClient::send(const char *message, const char *event, uint32_t id, uint32_t reconnect){ String ev = generateEventMessage(message, event, id, reconnect); _queueMessage(new AsyncEventSourceMessage(ev.c_str(), ev.length())); } void AsyncEventSourceClient::_runQueue(){ while(!_messageQueue.isEmpty() && _messageQueue.front()->finished()){ _messageQueue.remove(_messageQueue.front()); } for(auto i = _messageQueue.begin(); i != _messageQueue.end(); ++i) { if(!(*i)->sent()) (*i)->send(_client); } } // Handler AsyncEventSource::AsyncEventSource(const String& url) : _url(url) , _clients(LinkedList([](AsyncEventSourceClient *c){ delete c; })) , _connectcb(NULL) {} AsyncEventSource::~AsyncEventSource(){ close(); } void AsyncEventSource::onConnect(ArEventHandlerFunction cb){ _connectcb = cb; } void AsyncEventSource::_addClient(AsyncEventSourceClient * client){ /*char * temp = (char *)malloc(2054); if(temp != NULL){ memset(temp+1,' ',2048); temp[0] = ':'; temp[2049] = '\r'; temp[2050] = '\n'; temp[2051] = '\r'; temp[2052] = '\n'; temp[2053] = 0; client->write((const char *)temp, 2053); free(temp); }*/ _clients.add(client); if(_connectcb) _connectcb(client); } void AsyncEventSource::_handleDisconnect(AsyncEventSourceClient * client){ _clients.remove(client); } void AsyncEventSource::close(){ for(const auto &c: _clients){ if(c->connected()) c->close(); } } // pmb fix size_t AsyncEventSource::avgPacketsWaiting() const { if(_clients.isEmpty()) return 0; size_t aql=0; uint32_t nConnectedClients=0; for(const auto &c: _clients){ if(c->connected()) { aql+=c->packetsWaiting(); ++nConnectedClients; } } // return aql / nConnectedClients; return ((aql) + (nConnectedClients/2))/(nConnectedClients); // round up } void AsyncEventSource::send(const char *message, const char *event, uint32_t id, uint32_t reconnect){ String ev = generateEventMessage(message, event, id, reconnect); for(const auto &c: _clients){ if(c->connected()) { c->write(ev.c_str(), ev.length()); } } } size_t AsyncEventSource::count() const { return _clients.count_if([](AsyncEventSourceClient *c){ return c->connected(); }); } bool AsyncEventSource::canHandle(AsyncWebServerRequest *request){ if(request->method() != HTTP_GET || !request->url().equals(_url)) { return false; } request->addInterestingHeader("Last-Event-ID"); return true; } void AsyncEventSource::handleRequest(AsyncWebServerRequest *request){ if((_username != "" && _password != "") && !request->authenticate(_username.c_str(), _password.c_str())) return request->requestAuthentication(); request->send(new AsyncEventSourceResponse(this)); } // Response AsyncEventSourceResponse::AsyncEventSourceResponse(AsyncEventSource *server){ _server = server; _code = 200; _contentType = "text/event-stream"; _sendContentLength = false; addHeader("Cache-Control", "no-cache"); addHeader("Connection","keep-alive"); } void AsyncEventSourceResponse::_respond(AsyncWebServerRequest *request){ String out = _assembleHead(request->version()); request->client()->write(out.c_str(), _headLength); _state = RESPONSE_WAIT_ACK; } size_t AsyncEventSourceResponse::_ack(AsyncWebServerRequest *request, size_t len, uint32_t time __attribute__((unused))){ if(len){ new AsyncEventSourceClient(request, _server); } return 0; } ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/AsyncEventSource.h ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef ASYNCEVENTSOURCE_H_ #define ASYNCEVENTSOURCE_H_ #include #ifdef ESP32 #include #define SSE_MAX_QUEUED_MESSAGES 32 #else #include #define SSE_MAX_QUEUED_MESSAGES 8 #endif #include #include "AsyncWebSynchronization.h" #ifdef ESP8266 #include #ifdef CRYPTO_HASH_h // include Hash.h from espressif framework if the first include was from the crypto library #include <../src/Hash.h> #endif #endif #ifdef ESP32 #define DEFAULT_MAX_SSE_CLIENTS 8 #else #define DEFAULT_MAX_SSE_CLIENTS 4 #endif class AsyncEventSource; class AsyncEventSourceResponse; class AsyncEventSourceClient; typedef std::function ArEventHandlerFunction; class AsyncEventSourceMessage { private: uint8_t * _data; size_t _len; size_t _sent; //size_t _ack; size_t _acked; public: AsyncEventSourceMessage(const char * data, size_t len); ~AsyncEventSourceMessage(); size_t ack(size_t len, uint32_t time __attribute__((unused))); size_t send(AsyncClient *client); bool finished(){ return _acked == _len; } bool sent() { return _sent == _len; } }; class AsyncEventSourceClient { private: AsyncClient *_client; AsyncEventSource *_server; uint32_t _lastId; LinkedList _messageQueue; void _queueMessage(AsyncEventSourceMessage *dataMessage); void _runQueue(); public: AsyncEventSourceClient(AsyncWebServerRequest *request, AsyncEventSource *server); ~AsyncEventSourceClient(); AsyncClient* client(){ return _client; } void close(); void write(const char * message, size_t len); void send(const char *message, const char *event=NULL, uint32_t id=0, uint32_t reconnect=0); bool connected() const { return (_client != NULL) && _client->connected(); } uint32_t lastId() const { return _lastId; } size_t packetsWaiting() const { return _messageQueue.length(); } //system callbacks (do not call) void _onAck(size_t len, uint32_t time); void _onPoll(); void _onTimeout(uint32_t time); void _onDisconnect(); }; class AsyncEventSource: public AsyncWebHandler { private: String _url; LinkedList _clients; ArEventHandlerFunction _connectcb; public: AsyncEventSource(const String& url); ~AsyncEventSource(); const char * url() const { return _url.c_str(); } void close(); void onConnect(ArEventHandlerFunction cb); void send(const char *message, const char *event=NULL, uint32_t id=0, uint32_t reconnect=0); size_t count() const; //number clinets connected size_t avgPacketsWaiting() const; //system callbacks (do not call) void _addClient(AsyncEventSourceClient * client); void _handleDisconnect(AsyncEventSourceClient * client); virtual bool canHandle(AsyncWebServerRequest *request) override final; virtual void handleRequest(AsyncWebServerRequest *request) override final; }; class AsyncEventSourceResponse: public AsyncWebServerResponse { private: String _content; AsyncEventSource *_server; public: AsyncEventSourceResponse(AsyncEventSource *server); void _respond(AsyncWebServerRequest *request); size_t _ack(AsyncWebServerRequest *request, size_t len, uint32_t time); bool _sourceValid() const { return true; } }; #endif /* ASYNCEVENTSOURCE_H_ */ ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/AsyncJson.h ================================================ // AsyncJson.h /* Async Response to use with ArduinoJson and AsyncWebServer Written by Andrew Melvin (SticilFace) with help from me-no-dev and BBlanchon. Example of callback in use server.on("/json", HTTP_ANY, [](AsyncWebServerRequest * request) { AsyncJsonResponse * response = new AsyncJsonResponse(); JsonObject& root = response->getRoot(); root["key1"] = "key number one"; JsonObject& nested = root.createNestedObject("nested"); nested["key1"] = "key number one"; response->setLength(); request->send(response); }); -------------------- Async Request to use with ArduinoJson and AsyncWebServer Written by Arsène von Wyss (avonwyss) Example AsyncCallbackJsonWebHandler* handler = new AsyncCallbackJsonWebHandler("/rest/endpoint"); handler->onRequest([](AsyncWebServerRequest *request, JsonVariant &json) { JsonObject& jsonObj = json.as(); // ... }); server.addHandler(handler); */ #ifndef ASYNC_JSON_H_ #define ASYNC_JSON_H_ #include #include #include #if ARDUINOJSON_VERSION_MAJOR == 5 #define ARDUINOJSON_5_COMPATIBILITY #else #ifndef DYNAMIC_JSON_DOCUMENT_SIZE #define DYNAMIC_JSON_DOCUMENT_SIZE 1024 #endif #endif constexpr const char* JSON_MIMETYPE = "application/json"; /* * Json Response * */ class ChunkPrint : public Print { private: uint8_t* _destination; size_t _to_skip; size_t _to_write; size_t _pos; public: ChunkPrint(uint8_t* destination, size_t from, size_t len) : _destination(destination), _to_skip(from), _to_write(len), _pos{0} {} virtual ~ChunkPrint(){} size_t write(uint8_t c){ if (_to_skip > 0) { _to_skip--; return 1; } else if (_to_write > 0) { _to_write--; _destination[_pos++] = c; return 1; } return 0; } size_t write(const uint8_t *buffer, size_t size) { return this->Print::write(buffer, size); } }; class AsyncJsonResponse: public AsyncAbstractResponse { protected: #ifdef ARDUINOJSON_5_COMPATIBILITY DynamicJsonBuffer _jsonBuffer; #else DynamicJsonDocument _jsonBuffer; #endif JsonVariant _root; bool _isValid; public: #ifdef ARDUINOJSON_5_COMPATIBILITY AsyncJsonResponse(bool isArray=false): _isValid{false} { _code = 200; _contentType = JSON_MIMETYPE; if(isArray) _root = _jsonBuffer.createArray(); else _root = _jsonBuffer.createObject(); } #else AsyncJsonResponse(bool isArray=false, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE) : _jsonBuffer(maxJsonBufferSize), _isValid{false} { _code = 200; _contentType = JSON_MIMETYPE; if(isArray) _root = _jsonBuffer.createNestedArray(); else _root = _jsonBuffer.createNestedObject(); } #endif ~AsyncJsonResponse() {} JsonVariant & getRoot() { return _root; } bool _sourceValid() const { return _isValid; } size_t setLength() { #ifdef ARDUINOJSON_5_COMPATIBILITY _contentLength = _root.measureLength(); #else _contentLength = measureJson(_root); #endif if (_contentLength) { _isValid = true; } return _contentLength; } size_t getSize() { return _jsonBuffer.size(); } size_t _fillBuffer(uint8_t *data, size_t len){ ChunkPrint dest(data, _sentLength, len); #ifdef ARDUINOJSON_5_COMPATIBILITY _root.printTo( dest ) ; #else serializeJson(_root, dest); #endif return len; } }; class PrettyAsyncJsonResponse: public AsyncJsonResponse { public: #ifdef ARDUINOJSON_5_COMPATIBILITY PrettyAsyncJsonResponse (bool isArray=false) : AsyncJsonResponse{isArray} {} #else PrettyAsyncJsonResponse (bool isArray=false, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE) : AsyncJsonResponse{isArray, maxJsonBufferSize} {} #endif size_t setLength () { #ifdef ARDUINOJSON_5_COMPATIBILITY _contentLength = _root.measurePrettyLength (); #else _contentLength = measureJsonPretty(_root); #endif if (_contentLength) {_isValid = true;} return _contentLength; } size_t _fillBuffer (uint8_t *data, size_t len) { ChunkPrint dest (data, _sentLength, len); #ifdef ARDUINOJSON_5_COMPATIBILITY _root.prettyPrintTo (dest); #else serializeJsonPretty(_root, dest); #endif return len; } }; typedef std::function ArJsonRequestHandlerFunction; class AsyncCallbackJsonWebHandler: public AsyncWebHandler { private: protected: const String _uri; WebRequestMethodComposite _method; ArJsonRequestHandlerFunction _onRequest; size_t _contentLength; #ifndef ARDUINOJSON_5_COMPATIBILITY const size_t maxJsonBufferSize; #endif size_t _maxContentLength; public: #ifdef ARDUINOJSON_5_COMPATIBILITY AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest) : _uri(uri), _method(HTTP_POST|HTTP_PUT|HTTP_PATCH), _onRequest(onRequest), _maxContentLength(16384) {} #else AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest, size_t maxJsonBufferSize=DYNAMIC_JSON_DOCUMENT_SIZE) : _uri(uri), _method(HTTP_POST|HTTP_PUT|HTTP_PATCH), _onRequest(onRequest), maxJsonBufferSize(maxJsonBufferSize), _maxContentLength(16384) {} #endif void setMethod(WebRequestMethodComposite method){ _method = method; } void setMaxContentLength(int maxContentLength){ _maxContentLength = maxContentLength; } void onRequest(ArJsonRequestHandlerFunction fn){ _onRequest = fn; } virtual bool canHandle(AsyncWebServerRequest *request) override final{ if(!_onRequest) return false; if(!(_method & request->method())) return false; if(_uri.length() && (_uri != request->url() && !request->url().startsWith(_uri+"/"))) return false; if ( !request->contentType().equalsIgnoreCase(JSON_MIMETYPE) ) return false; request->addInterestingHeader("ANY"); return true; } virtual void handleRequest(AsyncWebServerRequest *request) override final { if(_onRequest) { if (request->_tempObject != NULL) { #ifdef ARDUINOJSON_5_COMPATIBILITY DynamicJsonBuffer jsonBuffer; JsonVariant json = jsonBuffer.parse((uint8_t*)(request->_tempObject)); if (json.success()) { #else DynamicJsonDocument jsonBuffer(this->maxJsonBufferSize); DeserializationError error = deserializeJson(jsonBuffer, (uint8_t*)(request->_tempObject)); if(!error) { JsonVariant json = jsonBuffer.as(); #endif _onRequest(request, json); return; } } request->send(_contentLength > _maxContentLength ? 413 : 400); } else { request->send(500); } } virtual void handleUpload(AsyncWebServerRequest *request, const String& filename, size_t index, uint8_t *data, size_t len, bool final) override final { } virtual void handleBody(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) override final { if (_onRequest) { _contentLength = total; if (total > 0 && request->_tempObject == NULL && total < _maxContentLength) { request->_tempObject = malloc(total); } if (request->_tempObject != NULL) { memcpy((uint8_t*)(request->_tempObject) + index, data, len); } } } virtual bool isRequestHandlerTrivial() override final {return _onRequest ? false : true;} }; #endif ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/AsyncWebSocket.cpp ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "Arduino.h" #include "AsyncWebSocket.h" #include #ifndef ESP8266 #include "mbedtls/sha1.h" #else #include #endif #define MAX_PRINTF_LEN 64 size_t webSocketSendFrameWindow(AsyncClient *client){ if(!client->canSend()) return 0; size_t space = client->space(); if(space < 9) return 0; return space - 8; } size_t webSocketSendFrame(AsyncClient *client, bool final, uint8_t opcode, bool mask, uint8_t *data, size_t len){ if(!client->canSend()) return 0; size_t space = client->space(); if(space < 2) return 0; uint8_t mbuf[4] = {0,0,0,0}; uint8_t headLen = 2; if(len && mask){ headLen += 4; mbuf[0] = rand() % 0xFF; mbuf[1] = rand() % 0xFF; mbuf[2] = rand() % 0xFF; mbuf[3] = rand() % 0xFF; } if(len > 125) headLen += 2; if(space < headLen) return 0; space -= headLen; if(len > space) len = space; uint8_t *buf = (uint8_t*)malloc(headLen); if(buf == NULL){ //os_printf("could not malloc %u bytes for frame header\n", headLen); return 0; } buf[0] = opcode & 0x0F; if(final) buf[0] |= 0x80; if(len < 126) buf[1] = len & 0x7F; else { buf[1] = 126; buf[2] = (uint8_t)((len >> 8) & 0xFF); buf[3] = (uint8_t)(len & 0xFF); } if(len && mask){ buf[1] |= 0x80; memcpy(buf + (headLen - 4), mbuf, 4); } if(client->add((const char *)buf, headLen) != headLen){ //os_printf("error adding %lu header bytes\n", headLen); free(buf); return 0; } free(buf); if(len){ if(len && mask){ size_t i; for(i=0;iadd((const char *)data, len) != len){ //os_printf("error adding %lu data bytes\n", len); return 0; } } if(!client->send()){ //os_printf("error sending frame: %lu\n", headLen+len); return 0; } return len; } /* * AsyncWebSocketMessageBuffer */ AsyncWebSocketMessageBuffer::AsyncWebSocketMessageBuffer() :_data(nullptr) ,_len(0) ,_lock(false) ,_count(0) { } AsyncWebSocketMessageBuffer::AsyncWebSocketMessageBuffer(uint8_t * data, size_t size) :_data(nullptr) ,_len(size) ,_lock(false) ,_count(0) { if (!data) { return; } _data = new uint8_t[_len + 1]; if (_data) { memcpy(_data, data, _len); _data[_len] = 0; } } AsyncWebSocketMessageBuffer::AsyncWebSocketMessageBuffer(size_t size) :_data(nullptr) ,_len(size) ,_lock(false) ,_count(0) { _data = new uint8_t[_len + 1]; if (_data) { _data[_len] = 0; } } AsyncWebSocketMessageBuffer::AsyncWebSocketMessageBuffer(const AsyncWebSocketMessageBuffer & copy) :_data(nullptr) ,_len(0) ,_lock(false) ,_count(0) { _len = copy._len; _lock = copy._lock; _count = 0; if (_len) { _data = new uint8_t[_len + 1]; _data[_len] = 0; } if (_data) { memcpy(_data, copy._data, _len); _data[_len] = 0; } } AsyncWebSocketMessageBuffer::AsyncWebSocketMessageBuffer(AsyncWebSocketMessageBuffer && copy) :_data(nullptr) ,_len(0) ,_lock(false) ,_count(0) { _len = copy._len; _lock = copy._lock; _count = 0; if (copy._data) { _data = copy._data; copy._data = nullptr; } } AsyncWebSocketMessageBuffer::~AsyncWebSocketMessageBuffer() { if (_data) { delete[] _data; } } bool AsyncWebSocketMessageBuffer::reserve(size_t size) { _len = size; if (_data) { delete[] _data; _data = nullptr; } _data = new uint8_t[_len + 1]; if (_data) { _data[_len] = 0; return true; } else { return false; } } /* * Control Frame */ class AsyncWebSocketControl { private: uint8_t _opcode; uint8_t *_data; size_t _len; bool _mask; bool _finished; public: AsyncWebSocketControl(uint8_t opcode, uint8_t *data=NULL, size_t len=0, bool mask=false) :_opcode(opcode) ,_len(len) ,_mask(len && mask) ,_finished(false) { if(data == NULL) _len = 0; if(_len){ if(_len > 125) _len = 125; _data = (uint8_t*)malloc(_len); if(_data == NULL) _len = 0; else memcpy(_data, data, len); } else _data = NULL; } virtual ~AsyncWebSocketControl(){ if(_data != NULL) free(_data); } virtual bool finished() const { return _finished; } uint8_t opcode(){ return _opcode; } uint8_t len(){ return _len + 2; } size_t send(AsyncClient *client){ _finished = true; return webSocketSendFrame(client, true, _opcode & 0x0F, _mask, _data, _len); } }; /* * Basic Buffered Message */ AsyncWebSocketBasicMessage::AsyncWebSocketBasicMessage(const char * data, size_t len, uint8_t opcode, bool mask) :_len(len) ,_sent(0) ,_ack(0) ,_acked(0) { _opcode = opcode & 0x07; _mask = mask; _data = (uint8_t*)malloc(_len+1); if(_data == NULL){ _len = 0; _status = WS_MSG_ERROR; } else { _status = WS_MSG_SENDING; memcpy(_data, data, _len); _data[_len] = 0; } } AsyncWebSocketBasicMessage::AsyncWebSocketBasicMessage(uint8_t opcode, bool mask) :_len(0) ,_sent(0) ,_ack(0) ,_acked(0) ,_data(NULL) { _opcode = opcode & 0x07; _mask = mask; } AsyncWebSocketBasicMessage::~AsyncWebSocketBasicMessage() { if(_data != NULL) free(_data); } void AsyncWebSocketBasicMessage::ack(size_t len, uint32_t time) { (void)time; _acked += len; if(_sent == _len && _acked == _ack){ _status = WS_MSG_SENT; } } size_t AsyncWebSocketBasicMessage::send(AsyncClient *client) { if(_status != WS_MSG_SENDING) return 0; if(_acked < _ack){ return 0; } if(_sent == _len){ if(_acked == _ack) _status = WS_MSG_SENT; return 0; } if(_sent > _len){ _status = WS_MSG_ERROR; return 0; } size_t toSend = _len - _sent; size_t window = webSocketSendFrameWindow(client); if(window < toSend) { toSend = window; } _sent += toSend; _ack += toSend + ((toSend < 126)?2:4) + (_mask * 4); bool final = (_sent == _len); uint8_t* dPtr = (uint8_t*)(_data + (_sent - toSend)); uint8_t opCode = (toSend && _sent == toSend)?_opcode:(uint8_t)WS_CONTINUATION; size_t sent = webSocketSendFrame(client, final, opCode, _mask, dPtr, toSend); _status = WS_MSG_SENDING; if(toSend && sent != toSend){ _sent -= (toSend - sent); _ack -= (toSend - sent); } return sent; } // bool AsyncWebSocketBasicMessage::reserve(size_t size) { // if (size) { // _data = (uint8_t*)malloc(size +1); // if (_data) { // memset(_data, 0, size); // _len = size; // _status = WS_MSG_SENDING; // return true; // } // } // return false; // } /* * AsyncWebSocketMultiMessage Message */ AsyncWebSocketMultiMessage::AsyncWebSocketMultiMessage(AsyncWebSocketMessageBuffer * buffer, uint8_t opcode, bool mask) :_len(0) ,_sent(0) ,_ack(0) ,_acked(0) ,_WSbuffer(nullptr) { _opcode = opcode & 0x07; _mask = mask; if (buffer) { _WSbuffer = buffer; (*_WSbuffer)++; _data = buffer->get(); _len = buffer->length(); _status = WS_MSG_SENDING; //ets_printf("M: %u\n", _len); } else { _status = WS_MSG_ERROR; } } AsyncWebSocketMultiMessage::~AsyncWebSocketMultiMessage() { if (_WSbuffer) { (*_WSbuffer)--; // decreases the counter. } } void AsyncWebSocketMultiMessage::ack(size_t len, uint32_t time) { (void)time; _acked += len; if(_sent >= _len && _acked >= _ack){ _status = WS_MSG_SENT; } //ets_printf("A: %u\n", len); } size_t AsyncWebSocketMultiMessage::send(AsyncClient *client) { if(_status != WS_MSG_SENDING) return 0; if(_acked < _ack){ return 0; } if(_sent == _len){ _status = WS_MSG_SENT; return 0; } if(_sent > _len){ _status = WS_MSG_ERROR; //ets_printf("E: %u > %u\n", _sent, _len); return 0; } size_t toSend = _len - _sent; size_t window = webSocketSendFrameWindow(client); if(window < toSend) { toSend = window; } _sent += toSend; _ack += toSend + ((toSend < 126)?2:4) + (_mask * 4); //ets_printf("W: %u %u\n", _sent - toSend, toSend); bool final = (_sent == _len); uint8_t* dPtr = (uint8_t*)(_data + (_sent - toSend)); uint8_t opCode = (toSend && _sent == toSend)?_opcode:(uint8_t)WS_CONTINUATION; size_t sent = webSocketSendFrame(client, final, opCode, _mask, dPtr, toSend); _status = WS_MSG_SENDING; if(toSend && sent != toSend){ //ets_printf("E: %u != %u\n", toSend, sent); _sent -= (toSend - sent); _ack -= (toSend - sent); } //ets_printf("S: %u %u\n", _sent, sent); return sent; } /* * Async WebSocket Client */ const char * AWSC_PING_PAYLOAD = "ESPAsyncWebServer-PING"; const size_t AWSC_PING_PAYLOAD_LEN = 22; AsyncWebSocketClient::AsyncWebSocketClient(AsyncWebServerRequest *request, AsyncWebSocket *server) : _controlQueue(LinkedList([](AsyncWebSocketControl *c){ delete c; })) , _messageQueue(LinkedList([](AsyncWebSocketMessage *m){ delete m; })) , _tempObject(NULL) { _client = request->client(); _server = server; _clientId = _server->_getNextId(); _status = WS_CONNECTED; _pstate = 0; _lastMessageTime = millis(); _keepAlivePeriod = 0; _client->setRxTimeout(0); _client->onError([](void *r, AsyncClient* c, int8_t error){ (void)c; ((AsyncWebSocketClient*)(r))->_onError(error); }, this); _client->onAck([](void *r, AsyncClient* c, size_t len, uint32_t time){ (void)c; ((AsyncWebSocketClient*)(r))->_onAck(len, time); }, this); _client->onDisconnect([](void *r, AsyncClient* c){ ((AsyncWebSocketClient*)(r))->_onDisconnect(); delete c; }, this); _client->onTimeout([](void *r, AsyncClient* c, uint32_t time){ (void)c; ((AsyncWebSocketClient*)(r))->_onTimeout(time); }, this); _client->onData([](void *r, AsyncClient* c, void *buf, size_t len){ (void)c; ((AsyncWebSocketClient*)(r))->_onData(buf, len); }, this); _client->onPoll([](void *r, AsyncClient* c){ (void)c; ((AsyncWebSocketClient*)(r))->_onPoll(); }, this); _server->_addClient(this); _server->_handleEvent(this, WS_EVT_CONNECT, request, NULL, 0); delete request; } AsyncWebSocketClient::~AsyncWebSocketClient(){ _messageQueue.free(); _controlQueue.free(); _server->_handleEvent(this, WS_EVT_DISCONNECT, NULL, NULL, 0); } void AsyncWebSocketClient::_onAck(size_t len, uint32_t time){ _lastMessageTime = millis(); if(!_controlQueue.isEmpty()){ auto head = _controlQueue.front(); if(head->finished()){ len -= head->len(); if(_status == WS_DISCONNECTING && head->opcode() == WS_DISCONNECT){ _controlQueue.remove(head); _status = WS_DISCONNECTED; _client->close(true); return; } _controlQueue.remove(head); } } if(len && !_messageQueue.isEmpty()){ _messageQueue.front()->ack(len, time); } _server->_cleanBuffers(); _runQueue(); } void AsyncWebSocketClient::_onPoll(){ if(_client->canSend() && (!_controlQueue.isEmpty() || !_messageQueue.isEmpty())){ _runQueue(); } else if(_keepAlivePeriod > 0 && _controlQueue.isEmpty() && _messageQueue.isEmpty() && (millis() - _lastMessageTime) >= _keepAlivePeriod){ ping((uint8_t *)AWSC_PING_PAYLOAD, AWSC_PING_PAYLOAD_LEN); } } void AsyncWebSocketClient::_runQueue(){ while(!_messageQueue.isEmpty() && _messageQueue.front()->finished()){ _messageQueue.remove(_messageQueue.front()); } if(!_controlQueue.isEmpty() && (_messageQueue.isEmpty() || _messageQueue.front()->betweenFrames()) && webSocketSendFrameWindow(_client) > (size_t)(_controlQueue.front()->len() - 1)){ _controlQueue.front()->send(_client); } else if(!_messageQueue.isEmpty() && _messageQueue.front()->betweenFrames() && webSocketSendFrameWindow(_client)){ _messageQueue.front()->send(_client); } } bool AsyncWebSocketClient::queueIsFull(){ if((_messageQueue.length() >= WS_MAX_QUEUED_MESSAGES) || (_status != WS_CONNECTED) ) return true; return false; } void AsyncWebSocketClient::_queueMessage(AsyncWebSocketMessage *dataMessage){ if(dataMessage == NULL) return; if(_status != WS_CONNECTED){ delete dataMessage; return; } if(_messageQueue.length() >= WS_MAX_QUEUED_MESSAGES){ ets_printf("ERROR: Too many messages queued\n"); delete dataMessage; } else { _messageQueue.add(dataMessage); } if(_client->canSend()) _runQueue(); } void AsyncWebSocketClient::_queueControl(AsyncWebSocketControl *controlMessage){ if(controlMessage == NULL) return; _controlQueue.add(controlMessage); if(_client->canSend()) _runQueue(); } void AsyncWebSocketClient::close(uint16_t code, const char * message){ if(_status != WS_CONNECTED) return; if(code){ uint8_t packetLen = 2; if(message != NULL){ size_t mlen = strlen(message); if(mlen > 123) mlen = 123; packetLen += mlen; } char * buf = (char*)malloc(packetLen); if(buf != NULL){ buf[0] = (uint8_t)(code >> 8); buf[1] = (uint8_t)(code & 0xFF); if(message != NULL){ memcpy(buf+2, message, packetLen -2); } _queueControl(new AsyncWebSocketControl(WS_DISCONNECT,(uint8_t*)buf,packetLen)); free(buf); return; } } _queueControl(new AsyncWebSocketControl(WS_DISCONNECT)); } void AsyncWebSocketClient::ping(uint8_t *data, size_t len){ if(_status == WS_CONNECTED) _queueControl(new AsyncWebSocketControl(WS_PING, data, len)); } void AsyncWebSocketClient::_onError(int8_t){} void AsyncWebSocketClient::_onTimeout(uint32_t time){ (void)time; _client->close(true); } void AsyncWebSocketClient::_onDisconnect(){ _client = NULL; _server->_handleDisconnect(this); } void AsyncWebSocketClient::_onData(void *pbuf, size_t plen){ _lastMessageTime = millis(); uint8_t *data = (uint8_t*)pbuf; while(plen > 0){ if(!_pstate){ const uint8_t *fdata = data; _pinfo.index = 0; _pinfo.final = (fdata[0] & 0x80) != 0; _pinfo.opcode = fdata[0] & 0x0F; _pinfo.masked = (fdata[1] & 0x80) != 0; _pinfo.len = fdata[1] & 0x7F; data += 2; plen -= 2; if(_pinfo.len == 126){ _pinfo.len = fdata[3] | (uint16_t)(fdata[2]) << 8; data += 2; plen -= 2; } else if(_pinfo.len == 127){ _pinfo.len = fdata[9] | (uint16_t)(fdata[8]) << 8 | (uint32_t)(fdata[7]) << 16 | (uint32_t)(fdata[6]) << 24 | (uint64_t)(fdata[5]) << 32 | (uint64_t)(fdata[4]) << 40 | (uint64_t)(fdata[3]) << 48 | (uint64_t)(fdata[2]) << 56; data += 8; plen -= 8; } if(_pinfo.masked){ memcpy(_pinfo.mask, data, 4); data += 4; plen -= 4; } } const size_t datalen = std::min((size_t)(_pinfo.len - _pinfo.index), plen); const auto datalast = data[datalen]; if(_pinfo.masked){ for(size_t i=0;i_handleEvent(this, WS_EVT_DATA, (void *)&_pinfo, (uint8_t*)data, datalen); _pinfo.index += datalen; } else if((datalen + _pinfo.index) == _pinfo.len){ _pstate = 0; if(_pinfo.opcode == WS_DISCONNECT){ if(datalen){ uint16_t reasonCode = (uint16_t)(data[0] << 8) + data[1]; char * reasonString = (char*)(data+2); if(reasonCode > 1001){ _server->_handleEvent(this, WS_EVT_ERROR, (void *)&reasonCode, (uint8_t*)reasonString, strlen(reasonString)); } } if(_status == WS_DISCONNECTING){ _status = WS_DISCONNECTED; _client->close(true); } else { _status = WS_DISCONNECTING; _client->ackLater(); _queueControl(new AsyncWebSocketControl(WS_DISCONNECT, data, datalen)); } } else if(_pinfo.opcode == WS_PING){ _queueControl(new AsyncWebSocketControl(WS_PONG, data, datalen)); } else if(_pinfo.opcode == WS_PONG){ if(datalen != AWSC_PING_PAYLOAD_LEN || memcmp(AWSC_PING_PAYLOAD, data, AWSC_PING_PAYLOAD_LEN) != 0) _server->_handleEvent(this, WS_EVT_PONG, NULL, data, datalen); } else if(_pinfo.opcode < 8){//continuation or text/binary frame _server->_handleEvent(this, WS_EVT_DATA, (void *)&_pinfo, data, datalen); } } else { //os_printf("frame error: len: %u, index: %llu, total: %llu\n", datalen, _pinfo.index, _pinfo.len); //what should we do? break; } // restore byte as _handleEvent may have added a null terminator i.e., data[len] = 0; if (datalen > 0) data[datalen] = datalast; data += datalen; plen -= datalen; } } size_t AsyncWebSocketClient::printf(const char *format, ...) { va_list arg; va_start(arg, format); char* temp = new char[MAX_PRINTF_LEN]; if(!temp){ va_end(arg); return 0; } char* buffer = temp; size_t len = vsnprintf(temp, MAX_PRINTF_LEN, format, arg); va_end(arg); if (len > (MAX_PRINTF_LEN - 1)) { buffer = new char[len + 1]; if (!buffer) { delete[] temp; return 0; } va_start(arg, format); vsnprintf(buffer, len + 1, format, arg); va_end(arg); } text(buffer, len); if (buffer != temp) { delete[] buffer; } delete[] temp; return len; } #ifndef ESP32 size_t AsyncWebSocketClient::printf_P(PGM_P formatP, ...) { va_list arg; va_start(arg, formatP); char* temp = new char[MAX_PRINTF_LEN]; if(!temp){ va_end(arg); return 0; } char* buffer = temp; size_t len = vsnprintf_P(temp, MAX_PRINTF_LEN, formatP, arg); va_end(arg); if (len > (MAX_PRINTF_LEN - 1)) { buffer = new char[len + 1]; if (!buffer) { delete[] temp; return 0; } va_start(arg, formatP); vsnprintf_P(buffer, len + 1, formatP, arg); va_end(arg); } text(buffer, len); if (buffer != temp) { delete[] buffer; } delete[] temp; return len; } #endif void AsyncWebSocketClient::text(const char * message, size_t len){ _queueMessage(new AsyncWebSocketBasicMessage(message, len)); } void AsyncWebSocketClient::text(const char * message){ text(message, strlen(message)); } void AsyncWebSocketClient::text(uint8_t * message, size_t len){ text((const char *)message, len); } void AsyncWebSocketClient::text(char * message){ text(message, strlen(message)); } void AsyncWebSocketClient::text(const String &message){ text(message.c_str(), message.length()); } void AsyncWebSocketClient::text(const __FlashStringHelper *data){ PGM_P p = reinterpret_cast(data); size_t n = 0; while (1) { if (pgm_read_byte(p+n) == 0) break; n += 1; } char * message = (char*) malloc(n+1); if(message){ for(size_t b=0; b(data); char * message = (char*) malloc(len); if(message){ for(size_t b=0; bremoteIP(); } uint16_t AsyncWebSocketClient::remotePort() { if(!_client) { return 0; } return _client->remotePort(); } /* * Async Web Socket - Each separate socket location */ AsyncWebSocket::AsyncWebSocket(const String& url) :_url(url) ,_clients(LinkedList([](AsyncWebSocketClient *c){ delete c; })) ,_cNextId(1) ,_enabled(true) ,_buffers(LinkedList([](AsyncWebSocketMessageBuffer *b){ delete b; })) { _eventHandler = NULL; } AsyncWebSocket::~AsyncWebSocket(){} void AsyncWebSocket::_handleEvent(AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len){ if(_eventHandler != NULL){ _eventHandler(this, client, type, arg, data, len); } } void AsyncWebSocket::_addClient(AsyncWebSocketClient * client){ _clients.add(client); } void AsyncWebSocket::_handleDisconnect(AsyncWebSocketClient * client){ _clients.remove_first([=](AsyncWebSocketClient * c){ return c->id() == client->id(); }); } bool AsyncWebSocket::availableForWriteAll(){ for(const auto& c: _clients){ if(c->queueIsFull()) return false; } return true; } bool AsyncWebSocket::availableForWrite(uint32_t id){ for(const auto& c: _clients){ if(c->queueIsFull() && (c->id() == id )) return false; } return true; } size_t AsyncWebSocket::count() const { return _clients.count_if([](AsyncWebSocketClient * c){ return c->status() == WS_CONNECTED; }); } AsyncWebSocketClient * AsyncWebSocket::client(uint32_t id){ for(const auto &c: _clients){ if(c->id() == id && c->status() == WS_CONNECTED){ return c; } } return nullptr; } void AsyncWebSocket::close(uint32_t id, uint16_t code, const char * message){ AsyncWebSocketClient * c = client(id); if(c) c->close(code, message); } void AsyncWebSocket::closeAll(uint16_t code, const char * message){ for(const auto& c: _clients){ if(c->status() == WS_CONNECTED) c->close(code, message); } } void AsyncWebSocket::cleanupClients(uint16_t maxClients) { if (count() > maxClients){ _clients.front()->close(); } } void AsyncWebSocket::ping(uint32_t id, uint8_t *data, size_t len){ AsyncWebSocketClient * c = client(id); if(c) c->ping(data, len); } void AsyncWebSocket::pingAll(uint8_t *data, size_t len){ for(const auto& c: _clients){ if(c->status() == WS_CONNECTED) c->ping(data, len); } } void AsyncWebSocket::text(uint32_t id, const char * message, size_t len){ AsyncWebSocketClient * c = client(id); if(c) c->text(message, len); } void AsyncWebSocket::textAll(AsyncWebSocketMessageBuffer * buffer){ if (!buffer) return; buffer->lock(); for(const auto& c: _clients){ if(c->status() == WS_CONNECTED){ c->text(buffer); } } buffer->unlock(); _cleanBuffers(); } void AsyncWebSocket::textAll(const char * message, size_t len){ AsyncWebSocketMessageBuffer * WSBuffer = makeBuffer((uint8_t *)message, len); textAll(WSBuffer); } void AsyncWebSocket::binary(uint32_t id, const char * message, size_t len){ AsyncWebSocketClient * c = client(id); if(c) c->binary(message, len); } void AsyncWebSocket::binaryAll(const char * message, size_t len){ AsyncWebSocketMessageBuffer * buffer = makeBuffer((uint8_t *)message, len); binaryAll(buffer); } void AsyncWebSocket::binaryAll(AsyncWebSocketMessageBuffer * buffer) { if (!buffer) return; buffer->lock(); for(const auto& c: _clients){ if(c->status() == WS_CONNECTED) c->binary(buffer); } buffer->unlock(); _cleanBuffers(); } void AsyncWebSocket::message(uint32_t id, AsyncWebSocketMessage *message){ AsyncWebSocketClient * c = client(id); if(c) c->message(message); } void AsyncWebSocket::messageAll(AsyncWebSocketMultiMessage *message){ for(const auto& c: _clients){ if(c->status() == WS_CONNECTED) c->message(message); } _cleanBuffers(); } size_t AsyncWebSocket::printf(uint32_t id, const char *format, ...){ AsyncWebSocketClient * c = client(id); if(c){ va_list arg; va_start(arg, format); size_t len = c->printf(format, arg); va_end(arg); return len; } return 0; } size_t AsyncWebSocket::printfAll(const char *format, ...) { va_list arg; char* temp = new char[MAX_PRINTF_LEN]; if(!temp){ return 0; } va_start(arg, format); size_t len = vsnprintf(temp, MAX_PRINTF_LEN, format, arg); va_end(arg); delete[] temp; AsyncWebSocketMessageBuffer * buffer = makeBuffer(len); if (!buffer) { return 0; } va_start(arg, format); vsnprintf( (char *)buffer->get(), len + 1, format, arg); va_end(arg); textAll(buffer); return len; } #ifndef ESP32 size_t AsyncWebSocket::printf_P(uint32_t id, PGM_P formatP, ...){ AsyncWebSocketClient * c = client(id); if(c != NULL){ va_list arg; va_start(arg, formatP); size_t len = c->printf_P(formatP, arg); va_end(arg); return len; } return 0; } #endif size_t AsyncWebSocket::printfAll_P(PGM_P formatP, ...) { va_list arg; char* temp = new char[MAX_PRINTF_LEN]; if(!temp){ return 0; } va_start(arg, formatP); size_t len = vsnprintf_P(temp, MAX_PRINTF_LEN, formatP, arg); va_end(arg); delete[] temp; AsyncWebSocketMessageBuffer * buffer = makeBuffer(len + 1); if (!buffer) { return 0; } va_start(arg, formatP); vsnprintf_P((char *)buffer->get(), len + 1, formatP, arg); va_end(arg); textAll(buffer); return len; } void AsyncWebSocket::text(uint32_t id, const char * message){ text(id, message, strlen(message)); } void AsyncWebSocket::text(uint32_t id, uint8_t * message, size_t len){ text(id, (const char *)message, len); } void AsyncWebSocket::text(uint32_t id, char * message){ text(id, message, strlen(message)); } void AsyncWebSocket::text(uint32_t id, const String &message){ text(id, message.c_str(), message.length()); } void AsyncWebSocket::text(uint32_t id, const __FlashStringHelper *message){ AsyncWebSocketClient * c = client(id); if(c != NULL) c->text(message); } void AsyncWebSocket::textAll(const char * message){ textAll(message, strlen(message)); } void AsyncWebSocket::textAll(uint8_t * message, size_t len){ textAll((const char *)message, len); } void AsyncWebSocket::textAll(char * message){ textAll(message, strlen(message)); } void AsyncWebSocket::textAll(const String &message){ textAll(message.c_str(), message.length()); } void AsyncWebSocket::textAll(const __FlashStringHelper *message){ for(const auto& c: _clients){ if(c->status() == WS_CONNECTED) c->text(message); } } void AsyncWebSocket::binary(uint32_t id, const char * message){ binary(id, message, strlen(message)); } void AsyncWebSocket::binary(uint32_t id, uint8_t * message, size_t len){ binary(id, (const char *)message, len); } void AsyncWebSocket::binary(uint32_t id, char * message){ binary(id, message, strlen(message)); } void AsyncWebSocket::binary(uint32_t id, const String &message){ binary(id, message.c_str(), message.length()); } void AsyncWebSocket::binary(uint32_t id, const __FlashStringHelper *message, size_t len){ AsyncWebSocketClient * c = client(id); if(c != NULL) c-> binary(message, len); } void AsyncWebSocket::binaryAll(const char * message){ binaryAll(message, strlen(message)); } void AsyncWebSocket::binaryAll(uint8_t * message, size_t len){ binaryAll((const char *)message, len); } void AsyncWebSocket::binaryAll(char * message){ binaryAll(message, strlen(message)); } void AsyncWebSocket::binaryAll(const String &message){ binaryAll(message.c_str(), message.length()); } void AsyncWebSocket::binaryAll(const __FlashStringHelper *message, size_t len){ for(const auto& c: _clients){ if(c->status() == WS_CONNECTED) c-> binary(message, len); } } const char * WS_STR_CONNECTION = "Connection"; const char * WS_STR_UPGRADE = "Upgrade"; const char * WS_STR_ORIGIN = "Origin"; const char * WS_STR_VERSION = "Sec-WebSocket-Version"; const char * WS_STR_KEY = "Sec-WebSocket-Key"; const char * WS_STR_PROTOCOL = "Sec-WebSocket-Protocol"; const char * WS_STR_ACCEPT = "Sec-WebSocket-Accept"; const char * WS_STR_UUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; bool AsyncWebSocket::canHandle(AsyncWebServerRequest *request){ if(!_enabled) return false; if(request->method() != HTTP_GET || !request->url().equals(_url) || !request->isExpectedRequestedConnType(RCT_WS)) return false; request->addInterestingHeader(WS_STR_CONNECTION); request->addInterestingHeader(WS_STR_UPGRADE); request->addInterestingHeader(WS_STR_ORIGIN); request->addInterestingHeader(WS_STR_VERSION); request->addInterestingHeader(WS_STR_KEY); request->addInterestingHeader(WS_STR_PROTOCOL); return true; } void AsyncWebSocket::handleRequest(AsyncWebServerRequest *request){ if(!request->hasHeader(WS_STR_VERSION) || !request->hasHeader(WS_STR_KEY)){ request->send(400); return; } if((_username != "" && _password != "") && !request->authenticate(_username.c_str(), _password.c_str())){ return request->requestAuthentication(); } AsyncWebHeader* version = request->getHeader(WS_STR_VERSION); if(version->value().toInt() != 13){ AsyncWebServerResponse *response = request->beginResponse(400); response->addHeader(WS_STR_VERSION,"13"); request->send(response); return; } AsyncWebHeader* key = request->getHeader(WS_STR_KEY); AsyncWebServerResponse *response = new AsyncWebSocketResponse(key->value(), this); if(request->hasHeader(WS_STR_PROTOCOL)){ AsyncWebHeader* protocol = request->getHeader(WS_STR_PROTOCOL); //ToDo: check protocol response->addHeader(WS_STR_PROTOCOL, protocol->value()); } request->send(response); } AsyncWebSocketMessageBuffer * AsyncWebSocket::makeBuffer(size_t size) { AsyncWebSocketMessageBuffer * buffer = new AsyncWebSocketMessageBuffer(size); if (buffer) { AsyncWebLockGuard l(_lock); _buffers.add(buffer); } return buffer; } AsyncWebSocketMessageBuffer * AsyncWebSocket::makeBuffer(uint8_t * data, size_t size) { AsyncWebSocketMessageBuffer * buffer = new AsyncWebSocketMessageBuffer(data, size); if (buffer) { AsyncWebLockGuard l(_lock); _buffers.add(buffer); } return buffer; } void AsyncWebSocket::_cleanBuffers() { AsyncWebLockGuard l(_lock); for(AsyncWebSocketMessageBuffer * c: _buffers){ if(c && c->canDelete()){ _buffers.remove(c); } } } AsyncWebSocket::AsyncWebSocketClientLinkedList AsyncWebSocket::getClients() const { return _clients; } /* * Response to Web Socket request - sends the authorization and detaches the TCP Client from the web server * Authentication code from https://github.com/Links2004/arduinoWebSockets/blob/master/src/WebSockets.cpp#L480 */ AsyncWebSocketResponse::AsyncWebSocketResponse(const String& key, AsyncWebSocket *server){ _server = server; _code = 101; _sendContentLength = false; uint8_t * hash = (uint8_t*)malloc(20); if(hash == NULL){ _state = RESPONSE_FAILED; return; } char * buffer = (char *) malloc(33); if(buffer == NULL){ free(hash); _state = RESPONSE_FAILED; return; } #ifdef ESP8266 sha1(key + WS_STR_UUID, hash); #else (String&)key += WS_STR_UUID; mbedtls_sha1_context ctx; mbedtls_sha1_init(&ctx); mbedtls_sha1_starts_ret(&ctx); mbedtls_sha1_update_ret(&ctx, (const unsigned char*)key.c_str(), key.length()); mbedtls_sha1_finish_ret(&ctx, hash); mbedtls_sha1_free(&ctx); #endif base64_encodestate _state; base64_init_encodestate(&_state); int len = base64_encode_block((const char *) hash, 20, buffer, &_state); len = base64_encode_blockend((buffer + len), &_state); addHeader(WS_STR_CONNECTION, WS_STR_UPGRADE); addHeader(WS_STR_UPGRADE, "websocket"); addHeader(WS_STR_ACCEPT,buffer); free(buffer); free(hash); } void AsyncWebSocketResponse::_respond(AsyncWebServerRequest *request){ if(_state == RESPONSE_FAILED){ request->client()->close(true); return; } String out = _assembleHead(request->version()); request->client()->write(out.c_str(), _headLength); _state = RESPONSE_WAIT_ACK; } size_t AsyncWebSocketResponse::_ack(AsyncWebServerRequest *request, size_t len, uint32_t time){ (void)time; if(len){ new AsyncWebSocketClient(request, _server); } return 0; } ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/AsyncWebSocket.h ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef ASYNCWEBSOCKET_H_ #define ASYNCWEBSOCKET_H_ #include #ifdef ESP32 #include #define WS_MAX_QUEUED_MESSAGES 32 #else #include #define WS_MAX_QUEUED_MESSAGES 8 #endif #include #include "AsyncWebSynchronization.h" #ifdef ESP8266 #include #ifdef CRYPTO_HASH_h // include Hash.h from espressif framework if the first include was from the crypto library #include <../src/Hash.h> #endif #endif #ifdef ESP32 #define DEFAULT_MAX_WS_CLIENTS 8 #else #define DEFAULT_MAX_WS_CLIENTS 4 #endif class AsyncWebSocket; class AsyncWebSocketResponse; class AsyncWebSocketClient; class AsyncWebSocketControl; typedef struct { /** Message type as defined by enum AwsFrameType. * Note: Applications will only see WS_TEXT and WS_BINARY. * All other types are handled by the library. */ uint8_t message_opcode; /** Frame number of a fragmented message. */ uint32_t num; /** Is this the last frame in a fragmented message ?*/ uint8_t final; /** Is this frame masked? */ uint8_t masked; /** Message type as defined by enum AwsFrameType. * This value is the same as message_opcode for non-fragmented * messages, but may also be WS_CONTINUATION in a fragmented message. */ uint8_t opcode; /** Length of the current frame. * This equals the total length of the message if num == 0 && final == true */ uint64_t len; /** Mask key */ uint8_t mask[4]; /** Offset of the data inside the current frame. */ uint64_t index; } AwsFrameInfo; typedef enum { WS_DISCONNECTED, WS_CONNECTED, WS_DISCONNECTING } AwsClientStatus; typedef enum { WS_CONTINUATION, WS_TEXT, WS_BINARY, WS_DISCONNECT = 0x08, WS_PING, WS_PONG } AwsFrameType; typedef enum { WS_MSG_SENDING, WS_MSG_SENT, WS_MSG_ERROR } AwsMessageStatus; typedef enum { WS_EVT_CONNECT, WS_EVT_DISCONNECT, WS_EVT_PONG, WS_EVT_ERROR, WS_EVT_DATA } AwsEventType; class AsyncWebSocketMessageBuffer { private: uint8_t * _data; size_t _len; bool _lock; uint32_t _count; public: AsyncWebSocketMessageBuffer(); AsyncWebSocketMessageBuffer(size_t size); AsyncWebSocketMessageBuffer(uint8_t * data, size_t size); AsyncWebSocketMessageBuffer(const AsyncWebSocketMessageBuffer &); AsyncWebSocketMessageBuffer(AsyncWebSocketMessageBuffer &&); ~AsyncWebSocketMessageBuffer(); void operator ++(int i) { (void)i; _count++; } void operator --(int i) { (void)i; if (_count > 0) { _count--; } ; } bool reserve(size_t size); void lock() { _lock = true; } void unlock() { _lock = false; } uint8_t * get() { return _data; } size_t length() { return _len; } uint32_t count() { return _count; } bool canDelete() { return (!_count && !_lock); } friend AsyncWebSocket; }; class AsyncWebSocketMessage { protected: uint8_t _opcode; bool _mask; AwsMessageStatus _status; public: AsyncWebSocketMessage():_opcode(WS_TEXT),_mask(false),_status(WS_MSG_ERROR){} virtual ~AsyncWebSocketMessage(){} virtual void ack(size_t len __attribute__((unused)), uint32_t time __attribute__((unused))){} virtual size_t send(AsyncClient *client __attribute__((unused))){ return 0; } virtual bool finished(){ return _status != WS_MSG_SENDING; } virtual bool betweenFrames() const { return false; } }; class AsyncWebSocketBasicMessage: public AsyncWebSocketMessage { private: size_t _len; size_t _sent; size_t _ack; size_t _acked; uint8_t * _data; public: AsyncWebSocketBasicMessage(const char * data, size_t len, uint8_t opcode=WS_TEXT, bool mask=false); AsyncWebSocketBasicMessage(uint8_t opcode=WS_TEXT, bool mask=false); virtual ~AsyncWebSocketBasicMessage() override; virtual bool betweenFrames() const override { return _acked == _ack; } virtual void ack(size_t len, uint32_t time) override ; virtual size_t send(AsyncClient *client) override ; }; class AsyncWebSocketMultiMessage: public AsyncWebSocketMessage { private: uint8_t * _data; size_t _len; size_t _sent; size_t _ack; size_t _acked; AsyncWebSocketMessageBuffer * _WSbuffer; public: AsyncWebSocketMultiMessage(AsyncWebSocketMessageBuffer * buffer, uint8_t opcode=WS_TEXT, bool mask=false); virtual ~AsyncWebSocketMultiMessage() override; virtual bool betweenFrames() const override { return _acked == _ack; } virtual void ack(size_t len, uint32_t time) override ; virtual size_t send(AsyncClient *client) override ; }; class AsyncWebSocketClient { private: AsyncClient *_client; AsyncWebSocket *_server; uint32_t _clientId; AwsClientStatus _status; LinkedList _controlQueue; LinkedList _messageQueue; uint8_t _pstate; AwsFrameInfo _pinfo; uint32_t _lastMessageTime; uint32_t _keepAlivePeriod; void _queueMessage(AsyncWebSocketMessage *dataMessage); void _queueControl(AsyncWebSocketControl *controlMessage); void _runQueue(); public: void *_tempObject; AsyncWebSocketClient(AsyncWebServerRequest *request, AsyncWebSocket *server); ~AsyncWebSocketClient(); //client id increments for the given server uint32_t id(){ return _clientId; } AwsClientStatus status(){ return _status; } AsyncClient* client(){ return _client; } AsyncWebSocket *server(){ return _server; } AwsFrameInfo const &pinfo() const { return _pinfo; } IPAddress remoteIP(); uint16_t remotePort(); //control frames void close(uint16_t code=0, const char * message=NULL); void ping(uint8_t *data=NULL, size_t len=0); //set auto-ping period in seconds. disabled if zero (default) void keepAlivePeriod(uint16_t seconds){ _keepAlivePeriod = seconds * 1000; } uint16_t keepAlivePeriod(){ return (uint16_t)(_keepAlivePeriod / 1000); } //data packets void message(AsyncWebSocketMessage *message){ _queueMessage(message); } bool queueIsFull(); size_t printf(const char *format, ...) __attribute__ ((format (printf, 2, 3))); #ifndef ESP32 size_t printf_P(PGM_P formatP, ...) __attribute__ ((format (printf, 2, 3))); #endif void text(const char * message, size_t len); void text(const char * message); void text(uint8_t * message, size_t len); void text(char * message); void text(const String &message); void text(const __FlashStringHelper *data); void text(AsyncWebSocketMessageBuffer *buffer); void binary(const char * message, size_t len); void binary(const char * message); void binary(uint8_t * message, size_t len); void binary(char * message); void binary(const String &message); void binary(const __FlashStringHelper *data, size_t len); void binary(AsyncWebSocketMessageBuffer *buffer); bool canSend() { return _messageQueue.length() < WS_MAX_QUEUED_MESSAGES; } //system callbacks (do not call) void _onAck(size_t len, uint32_t time); void _onError(int8_t); void _onPoll(); void _onTimeout(uint32_t time); void _onDisconnect(); void _onData(void *pbuf, size_t plen); }; typedef std::function AwsEventHandler; //WebServer Handler implementation that plays the role of a socket server class AsyncWebSocket: public AsyncWebHandler { public: typedef LinkedList AsyncWebSocketClientLinkedList; private: String _url; AsyncWebSocketClientLinkedList _clients; uint32_t _cNextId; AwsEventHandler _eventHandler; bool _enabled; AsyncWebLock _lock; public: AsyncWebSocket(const String& url); ~AsyncWebSocket(); const char * url() const { return _url.c_str(); } void enable(bool e){ _enabled = e; } bool enabled() const { return _enabled; } bool availableForWriteAll(); bool availableForWrite(uint32_t id); size_t count() const; AsyncWebSocketClient * client(uint32_t id); bool hasClient(uint32_t id){ return client(id) != NULL; } void close(uint32_t id, uint16_t code=0, const char * message=NULL); void closeAll(uint16_t code=0, const char * message=NULL); void cleanupClients(uint16_t maxClients = DEFAULT_MAX_WS_CLIENTS); void ping(uint32_t id, uint8_t *data=NULL, size_t len=0); void pingAll(uint8_t *data=NULL, size_t len=0); // done void text(uint32_t id, const char * message, size_t len); void text(uint32_t id, const char * message); void text(uint32_t id, uint8_t * message, size_t len); void text(uint32_t id, char * message); void text(uint32_t id, const String &message); void text(uint32_t id, const __FlashStringHelper *message); void textAll(const char * message, size_t len); void textAll(const char * message); void textAll(uint8_t * message, size_t len); void textAll(char * message); void textAll(const String &message); void textAll(const __FlashStringHelper *message); // need to convert void textAll(AsyncWebSocketMessageBuffer * buffer); void binary(uint32_t id, const char * message, size_t len); void binary(uint32_t id, const char * message); void binary(uint32_t id, uint8_t * message, size_t len); void binary(uint32_t id, char * message); void binary(uint32_t id, const String &message); void binary(uint32_t id, const __FlashStringHelper *message, size_t len); void binaryAll(const char * message, size_t len); void binaryAll(const char * message); void binaryAll(uint8_t * message, size_t len); void binaryAll(char * message); void binaryAll(const String &message); void binaryAll(const __FlashStringHelper *message, size_t len); void binaryAll(AsyncWebSocketMessageBuffer * buffer); void message(uint32_t id, AsyncWebSocketMessage *message); void messageAll(AsyncWebSocketMultiMessage *message); size_t printf(uint32_t id, const char *format, ...) __attribute__ ((format (printf, 3, 4))); size_t printfAll(const char *format, ...) __attribute__ ((format (printf, 2, 3))); #ifndef ESP32 size_t printf_P(uint32_t id, PGM_P formatP, ...) __attribute__ ((format (printf, 3, 4))); #endif size_t printfAll_P(PGM_P formatP, ...) __attribute__ ((format (printf, 2, 3))); //event listener void onEvent(AwsEventHandler handler){ _eventHandler = handler; } //system callbacks (do not call) uint32_t _getNextId(){ return _cNextId++; } void _addClient(AsyncWebSocketClient * client); void _handleDisconnect(AsyncWebSocketClient * client); void _handleEvent(AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len); virtual bool canHandle(AsyncWebServerRequest *request) override final; virtual void handleRequest(AsyncWebServerRequest *request) override final; // messagebuffer functions/objects. AsyncWebSocketMessageBuffer * makeBuffer(size_t size = 0); AsyncWebSocketMessageBuffer * makeBuffer(uint8_t * data, size_t size); LinkedList _buffers; void _cleanBuffers(); AsyncWebSocketClientLinkedList getClients() const; }; //WebServer response to authenticate the socket and detach the tcp client from the web server request class AsyncWebSocketResponse: public AsyncWebServerResponse { private: String _content; AsyncWebSocket *_server; public: AsyncWebSocketResponse(const String& key, AsyncWebSocket *server); void _respond(AsyncWebServerRequest *request); size_t _ack(AsyncWebServerRequest *request, size_t len, uint32_t time); bool _sourceValid() const { return true; } }; #endif /* ASYNCWEBSOCKET_H_ */ ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/AsyncWebSynchronization.h ================================================ #ifndef ASYNCWEBSYNCHRONIZATION_H_ #define ASYNCWEBSYNCHRONIZATION_H_ // Synchronisation is only available on ESP32, as the ESP8266 isn't using FreeRTOS by default #include #ifdef ESP32 // This is the ESP32 version of the Sync Lock, using the FreeRTOS Semaphore class AsyncWebLock { private: SemaphoreHandle_t _lock; mutable void *_lockedBy; public: AsyncWebLock() { _lock = xSemaphoreCreateBinary(); _lockedBy = NULL; xSemaphoreGive(_lock); } ~AsyncWebLock() { vSemaphoreDelete(_lock); } bool lock() const { extern void *pxCurrentTCB; if (_lockedBy != pxCurrentTCB) { xSemaphoreTake(_lock, portMAX_DELAY); _lockedBy = pxCurrentTCB; return true; } return false; } void unlock() const { _lockedBy = NULL; xSemaphoreGive(_lock); } }; #else // This is the 8266 version of the Sync Lock which is currently unimplemented class AsyncWebLock { public: AsyncWebLock() { } ~AsyncWebLock() { } bool lock() const { return false; } void unlock() const { } }; #endif class AsyncWebLockGuard { private: const AsyncWebLock *_lock; public: AsyncWebLockGuard(const AsyncWebLock &l) { if (l.lock()) { _lock = &l; } else { _lock = NULL; } } ~AsyncWebLockGuard() { if (_lock) { _lock->unlock(); } } }; #endif // ASYNCWEBSYNCHRONIZATION_H_ ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/ESPAsyncWebServer.h ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _ESPAsyncWebServer_H_ #define _ESPAsyncWebServer_H_ #include "Arduino.h" #include #include "FS.h" #include "StringArray.h" #ifdef ESP32 #include #include #elif defined(ESP8266) #include #include #else #error Platform not supported #endif #ifdef ASYNCWEBSERVER_REGEX #define ASYNCWEBSERVER_REGEX_ATTRIBUTE #else #define ASYNCWEBSERVER_REGEX_ATTRIBUTE __attribute__((warning("ASYNCWEBSERVER_REGEX not defined"))) #endif #define DEBUGF(...) //Serial.printf(__VA_ARGS__) class AsyncWebServer; class AsyncWebServerRequest; class AsyncWebServerResponse; class AsyncWebHeader; class AsyncWebParameter; class AsyncWebRewrite; class AsyncWebHandler; class AsyncStaticWebHandler; class AsyncCallbackWebHandler; class AsyncResponseStream; #ifndef WEBSERVER_H typedef enum { HTTP_GET = 0b00000001, HTTP_POST = 0b00000010, HTTP_DELETE = 0b00000100, HTTP_PUT = 0b00001000, HTTP_PATCH = 0b00010000, HTTP_HEAD = 0b00100000, HTTP_OPTIONS = 0b01000000, HTTP_ANY = 0b01111111, } WebRequestMethod; #endif //if this value is returned when asked for data, packet will not be sent and you will be asked for data again #define RESPONSE_TRY_AGAIN 0xFFFFFFFF typedef uint8_t WebRequestMethodComposite; typedef std::function ArDisconnectHandler; /* * PARAMETER :: Chainable object to hold GET/POST and FILE parameters * */ class AsyncWebParameter { private: String _name; String _value; size_t _size; bool _isForm; bool _isFile; public: AsyncWebParameter(const String& name, const String& value, bool form=false, bool file=false, size_t size=0): _name(name), _value(value), _size(size), _isForm(form), _isFile(file){} const String& name() const { return _name; } const String& value() const { return _value; } size_t size() const { return _size; } bool isPost() const { return _isForm; } bool isFile() const { return _isFile; } }; /* * HEADER :: Chainable object to hold the headers * */ class AsyncWebHeader { private: String _name; String _value; public: AsyncWebHeader(const String& name, const String& value): _name(name), _value(value){} AsyncWebHeader(const String& data): _name(), _value(){ if(!data) return; int index = data.indexOf(':'); if (index < 0) return; _name = data.substring(0, index); _value = data.substring(index + 2); } ~AsyncWebHeader(){} const String& name() const { return _name; } const String& value() const { return _value; } String toString() const { return String(_name+": "+_value+"\r\n"); } }; /* * REQUEST :: Each incoming Client is wrapped inside a Request and both live together until disconnect * */ typedef enum { RCT_NOT_USED = -1, RCT_DEFAULT = 0, RCT_HTTP, RCT_WS, RCT_EVENT, RCT_MAX } RequestedConnectionType; typedef std::function AwsResponseFiller; typedef std::function AwsTemplateProcessor; class AsyncWebServerRequest { using File = fs::File; using FS = fs::FS; friend class AsyncWebServer; friend class AsyncCallbackWebHandler; private: AsyncClient* _client; AsyncWebServer* _server; AsyncWebHandler* _handler; AsyncWebServerResponse* _response; StringArray _interestingHeaders; ArDisconnectHandler _onDisconnectfn; String _temp; uint8_t _parseState; uint8_t _version; WebRequestMethodComposite _method; String _url; String _host; String _contentType; String _boundary; String _authorization; RequestedConnectionType _reqconntype; void _removeNotInterestingHeaders(); bool _isDigest; bool _isMultipart; bool _isPlainPost; bool _expectingContinue; size_t _contentLength; size_t _parsedLength; LinkedList _headers; LinkedList _params; LinkedList _pathParams; uint8_t _multiParseState; uint8_t _boundaryPosition; size_t _itemStartIndex; size_t _itemSize; String _itemName; String _itemFilename; String _itemType; String _itemValue; uint8_t *_itemBuffer; size_t _itemBufferIndex; bool _itemIsFile; void _onPoll(); void _onAck(size_t len, uint32_t time); void _onError(int8_t error); void _onTimeout(uint32_t time); void _onDisconnect(); void _onData(void *buf, size_t len); void _addParam(AsyncWebParameter*); void _addPathParam(const char *param); bool _parseReqHead(); bool _parseReqHeader(); void _parseLine(); void _parsePlainPostChar(uint8_t data); void _parseMultipartPostByte(uint8_t data, bool last); void _addGetParams(const String& params); void _handleUploadStart(); void _handleUploadByte(uint8_t data, bool last); void _handleUploadEnd(); public: File _tempFile; void *_tempObject; AsyncWebServerRequest(AsyncWebServer*, AsyncClient*); ~AsyncWebServerRequest(); AsyncClient* client(){ return _client; } uint8_t version() const { return _version; } WebRequestMethodComposite method() const { return _method; } const String& url() const { return _url; } const String& host() const { return _host; } const String& contentType() const { return _contentType; } size_t contentLength() const { return _contentLength; } bool multipart() const { return _isMultipart; } const char * methodToString() const; const char * requestedConnTypeToString() const; RequestedConnectionType requestedConnType() const { return _reqconntype; } bool isExpectedRequestedConnType(RequestedConnectionType erct1, RequestedConnectionType erct2 = RCT_NOT_USED, RequestedConnectionType erct3 = RCT_NOT_USED); void onDisconnect (ArDisconnectHandler fn); //hash is the string representation of: // base64(user:pass) for basic or // user:realm:md5(user:realm:pass) for digest bool authenticate(const char * hash); bool authenticate(const char * username, const char * password, const char * realm = NULL, bool passwordIsHash = false); void requestAuthentication(const char * realm = NULL, bool isDigest = true); void setHandler(AsyncWebHandler *handler){ _handler = handler; } void addInterestingHeader(const String& name); void redirect(const String& url); void send(AsyncWebServerResponse *response); void send(int code, const String& contentType=String(), const String& content=String()); void send(FS &fs, const String& path, const String& contentType=String(), bool download=false, AwsTemplateProcessor callback=nullptr); void send(File content, const String& path, const String& contentType=String(), bool download=false, AwsTemplateProcessor callback=nullptr); void send(Stream &stream, const String& contentType, size_t len, AwsTemplateProcessor callback=nullptr); void send(const String& contentType, size_t len, AwsResponseFiller callback, AwsTemplateProcessor templateCallback=nullptr); void sendChunked(const String& contentType, AwsResponseFiller callback, AwsTemplateProcessor templateCallback=nullptr); void send_P(int code, const String& contentType, const uint8_t * content, size_t len, AwsTemplateProcessor callback=nullptr); void send_P(int code, const String& contentType, PGM_P content, AwsTemplateProcessor callback=nullptr); AsyncWebServerResponse *beginResponse(int code, const String& contentType=String(), const String& content=String()); AsyncWebServerResponse *beginResponse(FS &fs, const String& path, const String& contentType=String(), bool download=false, AwsTemplateProcessor callback=nullptr); AsyncWebServerResponse *beginResponse(File content, const String& path, const String& contentType=String(), bool download=false, AwsTemplateProcessor callback=nullptr); AsyncWebServerResponse *beginResponse(Stream &stream, const String& contentType, size_t len, AwsTemplateProcessor callback=nullptr); AsyncWebServerResponse *beginResponse(const String& contentType, size_t len, AwsResponseFiller callback, AwsTemplateProcessor templateCallback=nullptr); AsyncWebServerResponse *beginChunkedResponse(const String& contentType, AwsResponseFiller callback, AwsTemplateProcessor templateCallback=nullptr); AsyncResponseStream *beginResponseStream(const String& contentType, size_t bufferSize=1460); AsyncWebServerResponse *beginResponse_P(int code, const String& contentType, const uint8_t * content, size_t len, AwsTemplateProcessor callback=nullptr); AsyncWebServerResponse *beginResponse_P(int code, const String& contentType, PGM_P content, AwsTemplateProcessor callback=nullptr); size_t headers() const; // get header count bool hasHeader(const String& name) const; // check if header exists bool hasHeader(const __FlashStringHelper * data) const; // check if header exists AsyncWebHeader* getHeader(const String& name) const; AsyncWebHeader* getHeader(const __FlashStringHelper * data) const; AsyncWebHeader* getHeader(size_t num) const; size_t params() const; // get arguments count bool hasParam(const String& name, bool post=false, bool file=false) const; bool hasParam(const __FlashStringHelper * data, bool post=false, bool file=false) const; AsyncWebParameter* getParam(const String& name, bool post=false, bool file=false) const; AsyncWebParameter* getParam(const __FlashStringHelper * data, bool post, bool file) const; AsyncWebParameter* getParam(size_t num) const; size_t args() const { return params(); } // get arguments count const String& arg(const String& name) const; // get request argument value by name const String& arg(const __FlashStringHelper * data) const; // get request argument value by F(name) const String& arg(size_t i) const; // get request argument value by number const String& argName(size_t i) const; // get request argument name by number bool hasArg(const char* name) const; // check if argument exists bool hasArg(const __FlashStringHelper * data) const; // check if F(argument) exists const String& ASYNCWEBSERVER_REGEX_ATTRIBUTE pathArg(size_t i) const; const String& header(const char* name) const;// get request header value by name const String& header(const __FlashStringHelper * data) const;// get request header value by F(name) const String& header(size_t i) const; // get request header value by number const String& headerName(size_t i) const; // get request header name by number String urlDecode(const String& text) const; }; /* * FILTER :: Callback to filter AsyncWebRewrite and AsyncWebHandler (done by the Server) * */ typedef std::function ArRequestFilterFunction; bool ON_STA_FILTER(AsyncWebServerRequest *request); bool ON_AP_FILTER(AsyncWebServerRequest *request); /* * REWRITE :: One instance can be handle any Request (done by the Server) * */ class AsyncWebRewrite { protected: String _from; String _toUrl; String _params; ArRequestFilterFunction _filter; public: AsyncWebRewrite(const char* from, const char* to): _from(from), _toUrl(to), _params(String()), _filter(NULL){ int index = _toUrl.indexOf('?'); if (index > 0) { _params = _toUrl.substring(index +1); _toUrl = _toUrl.substring(0, index); } } virtual ~AsyncWebRewrite(){} AsyncWebRewrite& setFilter(ArRequestFilterFunction fn) { _filter = fn; return *this; } bool filter(AsyncWebServerRequest *request) const { return _filter == NULL || _filter(request); } const String& from(void) const { return _from; } const String& toUrl(void) const { return _toUrl; } const String& params(void) const { return _params; } virtual bool match(AsyncWebServerRequest *request) { return from() == request->url() && filter(request); } }; /* * HANDLER :: One instance can be attached to any Request (done by the Server) * */ class AsyncWebHandler { protected: ArRequestFilterFunction _filter; String _username; String _password; public: AsyncWebHandler():_username(""), _password(""){} AsyncWebHandler& setFilter(ArRequestFilterFunction fn) { _filter = fn; return *this; } AsyncWebHandler& setAuthentication(const char *username, const char *password){ _username = String(username);_password = String(password); return *this; }; bool filter(AsyncWebServerRequest *request){ return _filter == NULL || _filter(request); } virtual ~AsyncWebHandler(){} virtual bool canHandle(AsyncWebServerRequest *request __attribute__((unused))){ return false; } virtual void handleRequest(AsyncWebServerRequest *request __attribute__((unused))){} virtual void handleUpload(AsyncWebServerRequest *request __attribute__((unused)), const String& filename __attribute__((unused)), size_t index __attribute__((unused)), uint8_t *data __attribute__((unused)), size_t len __attribute__((unused)), bool final __attribute__((unused))){} virtual void handleBody(AsyncWebServerRequest *request __attribute__((unused)), uint8_t *data __attribute__((unused)), size_t len __attribute__((unused)), size_t index __attribute__((unused)), size_t total __attribute__((unused))){} virtual bool isRequestHandlerTrivial(){return true;} }; /* * RESPONSE :: One instance is created for each Request (attached by the Handler) * */ typedef enum { RESPONSE_SETUP, RESPONSE_HEADERS, RESPONSE_CONTENT, RESPONSE_WAIT_ACK, RESPONSE_END, RESPONSE_FAILED } WebResponseState; class AsyncWebServerResponse { protected: int _code; LinkedList _headers; String _contentType; size_t _contentLength; bool _sendContentLength; bool _chunked; size_t _headLength; size_t _sentLength; size_t _ackedLength; size_t _writtenLength; WebResponseState _state; const char* _responseCodeToString(int code); public: AsyncWebServerResponse(); virtual ~AsyncWebServerResponse(); virtual void setCode(int code); virtual void setContentLength(size_t len); virtual void setContentType(const String& type); virtual void addHeader(const String& name, const String& value); virtual String _assembleHead(uint8_t version); virtual bool _started() const; virtual bool _finished() const; virtual bool _failed() const; virtual bool _sourceValid() const; virtual void _respond(AsyncWebServerRequest *request); virtual size_t _ack(AsyncWebServerRequest *request, size_t len, uint32_t time); }; /* * SERVER :: One instance * */ typedef std::function ArRequestHandlerFunction; typedef std::function ArUploadHandlerFunction; typedef std::function ArBodyHandlerFunction; class AsyncWebServer { protected: AsyncServer _server; LinkedList _rewrites; LinkedList _handlers; AsyncCallbackWebHandler* _catchAllHandler; public: AsyncWebServer(uint16_t port); ~AsyncWebServer(); void begin(); void end(); #if ASYNC_TCP_SSL_ENABLED void onSslFileRequest(AcSSlFileHandler cb, void* arg); void beginSecure(const char *cert, const char *private_key_file, const char *password); #endif AsyncWebRewrite& addRewrite(AsyncWebRewrite* rewrite); bool removeRewrite(AsyncWebRewrite* rewrite); AsyncWebRewrite& rewrite(const char* from, const char* to); AsyncWebHandler& addHandler(AsyncWebHandler* handler); bool removeHandler(AsyncWebHandler* handler); AsyncCallbackWebHandler& on(const char* uri, ArRequestHandlerFunction onRequest); AsyncCallbackWebHandler& on(const char* uri, WebRequestMethodComposite method, ArRequestHandlerFunction onRequest); AsyncCallbackWebHandler& on(const char* uri, WebRequestMethodComposite method, ArRequestHandlerFunction onRequest, ArUploadHandlerFunction onUpload); AsyncCallbackWebHandler& on(const char* uri, WebRequestMethodComposite method, ArRequestHandlerFunction onRequest, ArUploadHandlerFunction onUpload, ArBodyHandlerFunction onBody); AsyncStaticWebHandler& serveStatic(const char* uri, fs::FS& fs, const char* path, const char* cache_control = NULL); void onNotFound(ArRequestHandlerFunction fn); //called when handler is not assigned void onFileUpload(ArUploadHandlerFunction fn); //handle file uploads void onRequestBody(ArBodyHandlerFunction fn); //handle posts with plain body content (JSON often transmitted this way as a request) void reset(); //remove all writers and handlers, with onNotFound/onFileUpload/onRequestBody void _handleDisconnect(AsyncWebServerRequest *request); void _attachHandler(AsyncWebServerRequest *request); void _rewriteRequest(AsyncWebServerRequest *request); }; class DefaultHeaders { using headers_t = LinkedList; headers_t _headers; DefaultHeaders() :_headers(headers_t([](AsyncWebHeader *h){ delete h; })) {} public: using ConstIterator = headers_t::ConstIterator; void addHeader(const String& name, const String& value){ _headers.add(new AsyncWebHeader(name, value)); } ConstIterator begin() const { return _headers.begin(); } ConstIterator end() const { return _headers.end(); } DefaultHeaders(DefaultHeaders const &) = delete; DefaultHeaders &operator=(DefaultHeaders const &) = delete; static DefaultHeaders &Instance() { static DefaultHeaders instance; return instance; } }; #include "WebResponseImpl.h" #include "WebHandlerImpl.h" #include "AsyncWebSocket.h" #include "AsyncEventSource.h" #endif /* _AsyncWebServer_H_ */ ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/SPIFFSEditor.cpp ================================================ #include "SPIFFSEditor.h" #include //File: edit.htm.gz, Size: 4151 #define edit_htm_gz_len 4151 const uint8_t edit_htm_gz[] PROGMEM = { 0x1F, 0x8B, 0x08, 0x08, 0xB8, 0x94, 0xB1, 0x59, 0x00, 0x03, 0x65, 0x64, 0x69, 0x74, 0x2E, 0x68, 0x74, 0x6D, 0x00, 0xB5, 0x3A, 0x0B, 0x7B, 0xDA, 0xB8, 0xB2, 0x7F, 0xC5, 0x71, 0xCF, 0x66, 0xED, 0x83, 0x31, 0x90, 0xA4, 0xD9, 0xD6, 0xC4, 0xC9, 0x42, 0x92, 0x36, 0x6D, 0xF3, 0x6A, 0x80, 0xB6, 0x69, 0x4F, 0xEE, 0x7E, 0xC2, 0x16, 0xA0, 0xC6, 0x96, 0x5D, 0x5B, 0x0E, 0x49, 0x59, 0xFE, 0xFB, 0x9D, 0x91, 0x6C, 0xB0, 0x09, 0x69, 0x77, 0xCF, 0xBD, 0xBB, 0xDD, 0x2D, 0x92, 0x46, 0x33, 0x9A, 0x19, 0xCD, 0x53, 0xDE, 0xBD, 0x8D, 0xA3, 0x8B, 0xC3, 0xFE, 0xF5, 0xE5, 0xB1, 0x36, 0x11, 0x61, 0xB0, 0xBF, 0x87, 0x7F, 0x6B, 0x01, 0xE1, 0x63, 0x97, 0xF2, 0xFD, 0x3D, 0xC1, 0x44, 0x40, 0xF7, 0x8F, 0x7B, 0x97, 0xDA, 0xB1, 0xCF, 0x44, 0x94, 0xEC, 0x35, 0xD4, 0xCA, 0x5E, 0x2A, 0x1E, 0x02, 0xAA, 0x85, 0xD4, 0x67, 0xC4, 0x4D, 0xBD, 0x84, 0xC2, 0x66, 0xDB, 0x0B, 0x67, 0xDF, 0xEB, 0x8C, 0xFB, 0xF4, 0xDE, 0xD9, 0x6E, 0x36, 0xDB, 0x71, 0x94, 0x32, 0xC1, 0x22, 0xEE, 0x90, 0x61, 0x1A, 0x05, 0x99, 0xA0, 0xED, 0x80, 0x8E, 0x84, 0xF3, 0x3C, 0xBE, 0x6F, 0x0F, 0xA3, 0xC4, 0xA7, 0x89, 0xD3, 0x8A, 0xEF, 0x35, 0x00, 0x31, 0x5F, 0x7B, 0xB6, 0xB3, 0xB3, 0xD3, 0x1E, 0x12, 0xEF, 0x76, 0x9C, 0x44, 0x19, 0xF7, 0xEB, 0x5E, 0x14, 0x44, 0x89, 0xF3, 0x6C, 0xF4, 0x1C, 0xFF, 0xB4, 0x7D, 0x96, 0xC6, 0x01, 0x79, 0x70, 0x78, 0xC4, 0x29, 0xE0, 0xDE, 0xD7, 0xD3, 0x09, 0xF1, 0xA3, 0xA9, 0xD3, 0xD4, 0x9A, 0x5A, 0xAB, 0x09, 0x44, 0x92, 0xF1, 0x90, 0x18, 0x4D, 0x0B, 0xFF, 0xD8, 0x3B, 0x66, 0x7B, 0x14, 0x71, 0x51, 0x4F, 0xD9, 0x77, 0xEA, 0xB4, 0xB6, 0xE0, 0x34, 0x39, 0x1D, 0x91, 0x90, 0x05, 0x0F, 0x4E, 0x4A, 0x78, 0x5A, 0x4F, 0x69, 0xC2, 0x46, 0x6A, 0x79, 0x4A, 0xD9, 0x78, 0x22, 0x9C, 0xDF, 0x9A, 0xCD, 0x39, 0xF0, 0xAF, 0x65, 0xC1, 0x2C, 0x60, 0x29, 0x20, 0xA3, 0x78, 0xEA, 0x3C, 0x11, 0xC5, 0x4E, 0x53, 0xB1, 0xDE, 0x6C, 0x87, 0x24, 0x19, 0x33, 0x0E, 0x83, 0x98, 0xF8, 0x3E, 0xE3, 0x63, 0x47, 0xA1, 0x05, 0x6C, 0xB6, 0x90, 0x36, 0xA1, 0x01, 0x11, 0xEC, 0x8E, 0xB6, 0x43, 0xC6, 0xEB, 0x53, 0xE6, 0x8B, 0x89, 0xB3, 0x0B, 0x3C, 0xB6, 0xBD, 0x2C, 0x49, 0x41, 0xA6, 0x38, 0x62, 0x5C, 0xD0, 0x44, 0xA2, 0xA5, 0x31, 0xE1, 0xB3, 0x5C, 0x54, 0x54, 0x40, 0x21, 0x27, 0xE3, 0x01, 0xE3, 0xB4, 0x3E, 0x0C, 0x22, 0xEF, 0x76, 0x71, 0xD2, 0x6E, 0x7C, 0x9F, 0x9F, 0xE5, 0x4C, 0xA2, 0x3B, 0x9A, 0xCC, 0x96, 0xEA, 0x92, 0xD8, 0x15, 0x60, 0x85, 0x34, 0xA5, 0x74, 0x6E, 0x8B, 0xBB, 0x0C, 0xA0, 0x96, 0xFC, 0x05, 0x29, 0x17, 0xFC, 0x2F, 0x45, 0x5A, 0x11, 0x5C, 0xA1, 0x30, 0x1E, 0x67, 0x62, 0xF6, 0xF8, 0x2A, 0xA3, 0x98, 0x78, 0x4C, 0x3C, 0xA0, 0xFC, 0xB0, 0x6D, 0x86, 0xBA, 0x04, 0xAC, 0x24, 0x24, 0x81, 0x86, 0x3A, 0xD7, 0x3E, 0xD0, 0xC4, 0x27, 0x9C, 0x58, 0x9D, 0x84, 0x91, 0xC0, 0xEA, 0x2D, 0xB5, 0x5E, 0x0F, 0xA3, 0xEF, 0xF5, 0x0C, 0xC6, 0x30, 0x0F, 0xA8, 0x27, 0x94, 0x92, 0xE1, 0x1E, 0x86, 0xB7, 0x4C, 0x3C, 0x06, 0x3C, 0x5A, 0x28, 0xA9, 0x4B, 0x2A, 0x69, 0xA2, 0x2E, 0xB0, 0x25, 0xD5, 0x83, 0x1C, 0x4B, 0xC9, 0x95, 0x50, 0xF5, 0x61, 0x24, 0x44, 0x14, 0x4A, 0x93, 0x5B, 0x08, 0xAC, 0x49, 0xAB, 0x79, 0xF1, 0xE8, 0x46, 0xD6, 0x6B, 0xBF, 0x44, 0xBE, 0x0D, 0x7A, 0x15, 0xCC, 0x23, 0x41, 0x9D, 0x04, 0x6C, 0xCC, 0x9D, 0x90, 0xF9, 0x7E, 0x40, 0x4B, 0x56, 0xEB, 0x64, 0x49, 0x60, 0xF8, 0x44, 0x10, 0x87, 0x85, 0x64, 0x4C, 0x1B, 0x31, 0x1F, 0x03, 0x34, 0xA5, 0xBB, 0x3B, 0x16, 0xFB, 0xD0, 0xBD, 0xB8, 0x9A, 0x36, 0xDF, 0xBD, 0x1E, 0x47, 0x1D, 0xF8, 0xE7, 0xBC, 0x37, 0x98, 0x1C, 0x0F, 0xC6, 0x30, 0xEA, 0xE2, 0xB4, 0xF3, 0xFE, 0xB0, 0xF3, 0x1E, 0x7E, 0x0E, 0x5B, 0xB5, 0xAF, 0xA3, 0x6F, 0xB8, 0xD0, 0x7D, 0xED, 0x77, 0xFB, 0x83, 0xE3, 0x4E, 0xE7, 0x5D, 0xE3, 0xCD, 0xF9, 0xF4, 0xE3, 0xBB, 0x5D, 0x04, 0x77, 0x83, 0xE6, 0xD5, 0x87, 0x49, 0x73, 0xB0, 0xF5, 0x32, 0xF4, 0x4F, 0xFC, 0x89, 0x17, 0x0E, 0x3A, 0xEF, 0x3F, 0x5E, 0xDD, 0x5D, 0x87, 0x83, 0x71, 0xEF, 0x63, 0x6B, 0xF2, 0x79, 0xEB, 0x43, 0xEF, 0xF3, 0xC7, 0x57, 0xB7, 0xF4, 0xD3, 0xC9, 0xDB, 0xCF, 0xFD, 0x29, 0x20, 0x1C, 0x45, 0xBD, 0xC1, 0x55, 0xF7, 0x43, 0x77, 0xFC, 0xB9, 0xEB, 0x1D, 0xDF, 0x0F, 0x83, 0xF3, 0xEE, 0xEB, 0xCE, 0xB0, 0xB3, 0xE5, 0x51, 0x3A, 0xEE, 0x5F, 0x75, 0xB3, 0x37, 0xEF, 0x2E, 0xC6, 0x8C, 0x4D, 0x7A, 0x9F, 0xCF, 0xFB, 0xDE, 0xE1, 0xF3, 0xD3, 0xC1, 0x49, 0x87, 0x4D, 0xCE, 0xDF, 0x5E, 0x35, 0x6F, 0x5F, 0xBF, 0x3B, 0x3C, 0xF2, 0xAE, 0xDF, 0x5E, 0xEF, 0x1E, 0x6D, 0x37, 0x7E, 0xFB, 0xED, 0xCC, 0xBF, 0x60, 0xBC, 0x7F, 0xF7, 0xBD, 0x33, 0x3E, 0x9C, 0xBE, 0x78, 0x48, 0xFB, 0x93, 0x37, 0x77, 0xBC, 0xF1, 0x21, 0xFA, 0xFA, 0xE6, 0xE1, 0x0C, 0xFE, 0xBB, 0xBC, 0xAC, 0x0D, 0x7B, 0xAD, 0x74, 0xF0, 0xFE, 0xCD, 0x87, 0xAD, 0xF4, 0xE5, 0xF3, 0xB8, 0x7B, 0x74, 0x74, 0x17, 0x0E, 0x2F, 0x1B, 0xA1, 0x7F, 0x3B, 0x12, 0x2F, 0xB6, 0x45, 0x7C, 0x3D, 0xCE, 0x3E, 0x7F, 0x7B, 0xFE, 0x76, 0xD2, 0xB8, 0xA0, 0xE4, 0x7A, 0x52, 0x7B, 0xF8, 0xFE, 0xF0, 0x62, 0xD2, 0x3F, 0xB9, 0x3B, 0x0F, 0xC8, 0xFD, 0xF9, 0xB9, 0xF7, 0x3D, 0xAC, 0x05, 0xE4, 0xE5, 0x45, 0x3F, 0x20, 0x49, 0x6B, 0xE0, 0x77, 0x1A, 0xB5, 0xC3, 0xAD, 0xCE, 0x8E, 0x48, 0xAE, 0x0E, 0xF9, 0xD1, 0xF6, 0xD7, 0xDE, 0x8B, 0x6E, 0xB7, 0x15, 0x0D, 0xBF, 0x6D, 0xBD, 0xBE, 0xDD, 0x7D, 0x3D, 0xD8, 0x7D, 0x3F, 0x7C, 0xDF, 0xE9, 0xED, 0x74, 0x07, 0xE4, 0xBA, 0xF7, 0xBE, 0x33, 0xDA, 0x19, 0x4E, 0x26, 0xEF, 0xDE, 0xF5, 0x5F, 0xF9, 0x9D, 0xEF, 0x49, 0xE7, 0x62, 0xDA, 0xB9, 0x3F, 0x1E, 0x74, 0x4E, 0x6A, 0xEF, 0x8E, 0xCF, 0x9A, 0xAD, 0xDE, 0xF5, 0xF6, 0xF8, 0x6C, 0x77, 0xDA, 0x4D, 0x8F, 0x3B, 0xEF, 0xBB, 0xCD, 0xF1, 0xDB, 0x5A, 0x48, 0x3E, 0x47, 0x87, 0xDB, 0xE3, 0x37, 0xBB, 0xEC, 0xF2, 0x9A, 0x74, 0xDE, 0x74, 0xDF, 0xA6, 0xEC, 0x2A, 0x3C, 0x19, 0x34, 0x3B, 0x9D, 0xD3, 0x0B, 0xFA, 0xEA, 0x70, 0x9B, 0xBC, 0xDB, 0xF2, 0x3E, 0x82, 0xFE, 0x07, 0x9F, 0xE8, 0x6F, 0xB5, 0xCE, 0xF4, 0xA2, 0x19, 0x78, 0x2F, 0x69, 0xFF, 0xE4, 0xBA, 0x2F, 0x6F, 0xE7, 0x38, 0x78, 0xD5, 0xBF, 0xED, 0x65, 0xEF, 0xC3, 0xC3, 0x43, 0x53, 0xE3, 0x51, 0x3D, 0xA1, 0x31, 0x25, 0xA2, 0x1C, 0xAE, 0x16, 0xFE, 0x01, 0xB6, 0xB5, 0xB4, 0xC2, 0xDC, 0x4F, 0x05, 0xBD, 0x17, 0x75, 0x9F, 0x7A, 0x51, 0x42, 0xE4, 0x1E, 0x40, 0xA0, 0x09, 0x9A, 0xD8, 0xFC, 0x77, 0x19, 0x3F, 0x35, 0x15, 0x3F, 0x35, 0xC2, 0x7D, 0xCD, 0x28, 0x1C, 0x01, 0x83, 0x87, 0x4F, 0xEF, 0x98, 0x47, 0xEB, 0x31, 0xBB, 0xA7, 0x41, 0x5D, 0x22, 0x3B, 0x4D, 0x73, 0x26, 0xFD, 0xAD, 0xD8, 0x46, 0x38, 0x98, 0x9A, 0xA4, 0x5A, 0x2C, 0xF8, 0x5F, 0x89, 0x47, 0x21, 0xB0, 0x81, 0xCB, 0x84, 0xF8, 0xAB, 0x7C, 0x27, 0x4A, 0xEA, 0xC3, 0x6C, 0x3C, 0x62, 0xF7, 0xE0, 0xD0, 0x23, 0xC6, 0x99, 0xA0, 0x5A, 0x2B, 0x9D, 0xFF, 0x5E, 0x90, 0xB9, 0xA5, 0x0F, 0xA3, 0x84, 0x84, 0x34, 0xD5, 0xFE, 0x22, 0x99, 0xD9, 0x28, 0x89, 0xC2, 0x65, 0x10, 0x99, 0x8B, 0xA8, 0x34, 0x99, 0xCF, 0x9F, 0x65, 0x71, 0x10, 0x11, 0x10, 0x73, 0x4D, 0xE4, 0x50, 0xF1, 0x34, 0x91, 0x6E, 0xB5, 0x88, 0xAB, 0xB9, 0x9B, 0x6D, 0xA1, 0x5B, 0x96, 0xDD, 0x7A, 0x6B, 0x67, 0xE9, 0xBA, 0x75, 0xB9, 0x17, 0xE3, 0xFD, 0x9A, 0x4C, 0x81, 0xF1, 0xA0, 0x14, 0xEE, 0x9E, 0x09, 0x50, 0xE9, 0x13, 0x87, 0xCB, 0x43, 0xF2, 0xC8, 0xB0, 0x60, 0x40, 0x05, 0xEA, 0x96, 0x8C, 0xD4, 0x85, 0x24, 0xB0, 0x6F, 0xFE, 0x8C, 0xCA, 0xBC, 0x67, 0x3D, 0x8B, 0x13, 0xB8, 0x0D, 0x3A, 0xFD, 0x11, 0xCD, 0x42, 0xA6, 0x2A, 0x6D, 0x45, 0x53, 0x65, 0xBC, 0x5C, 0x84, 0x65, 0xDA, 0x93, 0xBC, 0x16, 0xA4, 0x1F, 0x4B, 0x05, 0xE0, 0x05, 0x37, 0xCF, 0x91, 0x9B, 0x1F, 0x6A, 0x75, 0x7B, 0xF7, 0x97, 0x9C, 0x87, 0x9D, 0xE6, 0x2F, 0x73, 0x3B, 0xDF, 0x5B, 0xA4, 0xE4, 0x56, 0x13, 0xFE, 0x29, 0x32, 0xEF, 0x8B, 0x25, 0x0B, 0xC3, 0xE7, 0xF8, 0xA7, 0x60, 0x10, 0xE9, 0x94, 0x80, 0xDB, 0x3B, 0x2F, 0x5F, 0xF8, 0xC3, 0x02, 0x98, 0x0B, 0xF6, 0x24, 0x3C, 0x21, 0x3E, 0xCB, 0x52, 0xE7, 0x79, 0xF3, 0x97, 0x5C, 0x9F, 0x5B, 0x3B, 0x28, 0xFB, 0xE2, 0x2E, 0x71, 0xB2, 0xB4, 0xD8, 0x34, 0x66, 0x5C, 0xDB, 0x4A, 0x35, 0xBC, 0x6F, 0x92, 0x2C, 0x0C, 0xB3, 0x92, 0xED, 0xE7, 0xBF, 0x2F, 0x4D, 0x13, 0xF7, 0xCF, 0x9A, 0xBF, 0xCC, 0x44, 0x02, 0xD9, 0x64, 0x04, 0xB9, 0xC6, 0x49, 0x22, 0x41, 0x04, 0x35, 0x9A, 0xE6, 0x1C, 0x84, 0x5B, 0x03, 0xD8, 0xDE, 0x6D, 0xFA, 0x74, 0x6C, 0xCE, 0xE7, 0x7B, 0x0D, 0x99, 0xD7, 0xA0, 0x6C, 0xF1, 0x12, 0x16, 0x8B, 0xFD, 0x51, 0xC6, 0x3D, 0xE4, 0x41, 0x1B, 0x53, 0x83, 0x9A, 0xB3, 0x84, 0x8A, 0x2C, 0xE1, 0x9A, 0x1F, 0x79, 0x19, 0x1A, 0xBB, 0x3D, 0xA6, 0xE2, 0x58, 0xD9, 0x7D, 0xF7, 0xE1, 0x8D, 0x0F, 0x3B, 0xE6, 0x0B, 0x04, 0x6F, 0x2D, 0x02, 0x38, 0x30, 0x9C, 0x97, 0xE3, 0x54, 0xF6, 0x43, 0x82, 0x01, 0x22, 0xEF, 0xE8, 0x83, 0x41, 0x2D, 0xB1, 0x40, 0xA4, 0x36, 0xAE, 0x1B, 0xC5, 0x2E, 0x80, 0x71, 0x73, 0x76, 0x07, 0x4A, 0x20, 0x2E, 0xFD, 0x22, 0x6E, 0x2C, 0xE6, 0x72, 0xF8, 0x69, 0xE7, 0xBB, 0xC9, 0x1E, 0x3B, 0xA8, 0xB7, 0x1C, 0xB2, 0xCF, 0x0E, 0x5A, 0xE0, 0x5E, 0x65, 0x6E, 0xE4, 0xB9, 0xAF, 0x58, 0x40, 0x07, 0xB9, 0xC3, 0xE1, 0x31, 0x48, 0x6C, 0xB1, 0x85, 0x28, 0xE2, 0x5B, 0xCD, 0xE6, 0x86, 0x4B, 0x0F, 0x48, 0x00, 0x39, 0xCC, 0xD0, 0x8F, 0xAF, 0xAE, 0x2E, 0xAE, 0xBE, 0xE8, 0x35, 0x5A, 0xD3, 0x6F, 0x1C, 0x4D, 0xAF, 0x71, 0xD3, 0x11, 0x76, 0x42, 0x47, 0x09, 0x4D, 0x27, 0x97, 0x44, 0x4C, 0x8C, 0xD4, 0xBE, 0x23, 0x41, 0x56, 0x16, 0x84, 0xA1, 0xDC, 0xC8, 0xA2, 0x70, 0x39, 0x9D, 0x6A, 0xAF, 0x40, 0xCD, 0x47, 0x90, 0xEA, 0xDA, 0xC2, 0x26, 0x71, 0x4C, 0xB9, 0x6F, 0xE8, 0x31, 0x20, 0xEA, 0x16, 0x35, 0xAD, 0x84, 0x7E, 0xCB, 0x68, 0x2A, 0x52, 0x1B, 0x2C, 0xD7, 0xD0, 0x2F, 0x07, 0x7D, 0xDD, 0xD2, 0x1B, 0xE8, 0x47, 0x3A, 0xF0, 0x46, 0xCC, 0x39, 0x52, 0x89, 0x5C, 0xD0, 0xA4, 0x3E, 0xCC, 0xC0, 0xA0, 0xB8, 0x6E, 0xB6, 0x23, 0x9B, 0x71, 0x4E, 0x93, 0x93, 0xFE, 0xD9, 0xA9, 0xAB, 0x5F, 0x29, 0x46, 0xB4, 0x53, 0x28, 0x48, 0x74, 0x4B, 0x5E, 0x51, 0x7E, 0xC8, 0xE1, 0x84, 0x05, 0xBE, 0x11, 0x99, 0x6D, 0x24, 0xE1, 0x49, 0x12, 0xB2, 0x40, 0x01, 0x0A, 0x9E, 0x2D, 0x1E, 0x62, 0xEA, 0xEA, 0x23, 0x50, 0x86, 0x6E, 0x79, 0x76, 0x98, 0x05, 0x82, 0xC5, 0x01, 0x75, 0x37, 0x5A, 0x30, 0xE3, 0x60, 0x41, 0xAE, 0x8E, 0xB9, 0x19, 0x61, 0xCC, 0x77, 0x75, 0x15, 0xA1, 0xF2, 0xB8, 0xB6, 0xEE, 0x14, 0x4F, 0x9D, 0x92, 0x56, 0x4E, 0x49, 0xCB, 0xB8, 0x4A, 0xE0, 0x34, 0x3F, 0x18, 0xC3, 0x3C, 0xCE, 0xD4, 0x51, 0x05, 0xCC, 0xA7, 0x23, 0x02, 0x9C, 0x7C, 0x40, 0x6D, 0xBA, 0x7A, 0x63, 0xDD, 0x41, 0xA9, 0x3A, 0xC8, 0xAF, 0x6A, 0xC4, 0x2F, 0x6B, 0x44, 0xDD, 0xEE, 0x3A, 0x64, 0x5F, 0x21, 0x07, 0x55, 0xE4, 0xA0, 0x8C, 0x7C, 0x28, 0x8D, 0x64, 0x1D, 0x72, 0xA0, 0x90, 0x93, 0x8A, 0x88, 0x89, 0x14, 0x51, 0x85, 0xBD, 0x3A, 0x6A, 0x13, 0x05, 0xD2, 0xAD, 0xA4, 0x22, 0x66, 0x62, 0x83, 0x97, 0x92, 0x61, 0x40, 0x7D, 0x77, 0xA3, 0x09, 0x33, 0x2C, 0xB6, 0xDD, 0xAD, 0xE6, 0x9A, 0x33, 0x12, 0x75, 0x46, 0x56, 0x65, 0x30, 0x2B, 0x33, 0xA8, 0xF5, 0xC8, 0x1D, 0xD5, 0xD6, 0x31, 0x98, 0x99, 0x56, 0x60, 0x47, 0xDC, 0x0B, 0x98, 0x77, 0xEB, 0x2E, 0xBD, 0xC5, 0x9C, 0xB1, 0x85, 0x85, 0x5A, 0x5C, 0x06, 0xBA, 0x01, 0x94, 0x5E, 0x8B, 0xA5, 0x7C, 0x80, 0xFA, 0x9E, 0x5B, 0xD9, 0x5A, 0x02, 0xDC, 0xA6, 0xF7, 0xD4, 0x3B, 0x8C, 0xC2, 0x90, 0xA0, 0xED, 0xA6, 0xC0, 0x41, 0x3E, 0xD1, 0xCD, 0xB9, 0x15, 0xAD, 0xC5, 0x79, 0xC2, 0x45, 0x2C, 0x7F, 0x3D, 0x8B, 0x23, 0x03, 0x5C, 0xCE, 0xF5, 0x6C, 0xD4, 0x61, 0x6A, 0x83, 0x1E, 0xC7, 0x62, 0xF2, 0x13, 0x17, 0x2A, 0x0C, 0x54, 0xA2, 0x7C, 0x69, 0xDE, 0x58, 0x0B, 0x91, 0x56, 0x7C, 0xEA, 0xA2, 0xB7, 0xE2, 0x54, 0xA8, 0xBC, 0x8A, 0x5D, 0x9A, 0x4B, 0x1D, 0x94, 0x61, 0xB9, 0xBD, 0x2F, 0xA0, 0xFA, 0x7C, 0x0E, 0xE7, 0x01, 0xFF, 0x13, 0x68, 0xF9, 0xE8, 0x5F, 0x17, 0x60, 0xC9, 0xA3, 0x34, 0x78, 0x8B, 0xBB, 0x0D, 0xE3, 0xC0, 0xF9, 0x8F, 0x6D, 0x7C, 0xF9, 0x1F, 0xFB, 0xA6, 0x66, 0x9A, 0x07, 0xFF, 0x6A, 0x48, 0x0D, 0x1B, 0xC2, 0xFC, 0xD2, 0xBA, 0xB1, 0x08, 0x80, 0xED, 0x7F, 0x9B, 0xFF, 0xB1, 0x25, 0xB8, 0x02, 0x6B, 0xDF, 0x45, 0x90, 0x49, 0xF0, 0x24, 0x34, 0xB0, 0x68, 0xA4, 0x91, 0xCD, 0x4D, 0x43, 0xB8, 0xA4, 0x72, 0x8D, 0x35, 0x51, 0xD3, 0x6D, 0x88, 0x53, 0x50, 0x5B, 0xAC, 0x04, 0xBF, 0x3E, 0x24, 0x7A, 0x15, 0x5B, 0x17, 0x00, 0xC9, 0x3D, 0xCA, 0x0C, 0x3D, 0x22, 0x97, 0x52, 0xCB, 0x0C, 0x02, 0x42, 0xA7, 0x89, 0xE7, 0x2A, 0xAD, 0x1D, 0x14, 0x30, 0x17, 0xA2, 0xE0, 0xBC, 0x1C, 0x2D, 0x15, 0xEA, 0xAA, 0xFD, 0x17, 0x0A, 0xA3, 0xD6, 0x12, 0x8A, 0x04, 0x31, 0xAD, 0xD8, 0x79, 0xC6, 0x72, 0x75, 0x4C, 0x59, 0xBA, 0x35, 0x59, 0x5D, 0x96, 0xAD, 0x04, 0xAE, 0x2F, 0x8D, 0xFE, 0xD7, 0x3D, 0x16, 0x8E, 0xB5, 0x12, 0x3F, 0xF8, 0x97, 0xFB, 0x2B, 0x46, 0xE4, 0xCD, 0x3F, 0xBC, 0x21, 0x70, 0x05, 0xA6, 0x41, 0x6D, 0x1E, 0x4D, 0x0D, 0xB3, 0xF6, 0xAB, 0xAE, 0x49, 0x8A, 0xAE, 0x1E, 0x92, 0xFB, 0xBC, 0xA7, 0xC4, 0x8C, 0xD7, 0xD6, 0x70, 0x5E, 0xB4, 0x28, 0xF9, 0x82, 0xEC, 0xE6, 0x48, 0x26, 0xA2, 0xB6, 0x56, 0x64, 0x52, 0xD5, 0xCA, 0xE8, 0x5A, 0x63, 0xFF, 0xD7, 0x4A, 0x40, 0xB7, 0x98, 0xBA, 0x4E, 0x15, 0x8C, 0xB3, 0x00, 0x1C, 0x93, 0x3E, 0x1D, 0x69, 0x03, 0x26, 0x03, 0x75, 0x35, 0x46, 0x5A, 0x81, 0xC1, 0xCC, 0x03, 0xC3, 0x2B, 0xFB, 0xF3, 0x1E, 0x16, 0xBF, 0xFB, 0x97, 0xAA, 0xAA, 0x81, 0xD4, 0x8B, 0x33, 0x5D, 0x59, 0x59, 0xD5, 0x4B, 0xE0, 0xD2, 0x08, 0xA0, 0x5B, 0x8B, 0x3C, 0x3A, 0x8C, 0xFC, 0x87, 0x52, 0xF6, 0x4D, 0xBB, 0x0F, 0x87, 0x01, 0x49, 0xD3, 0x73, 0xB8, 0x01, 0x43, 0xF7, 0x42, 0x50, 0xB8, 0xB2, 0xC2, 0xFD, 0xE6, 0xE6, 0x66, 0x15, 0x29, 0xA1, 0x21, 0x14, 0xDB, 0x8A, 0x2B, 0xF0, 0x49, 0xD3, 0xF1, 0x81, 0x30, 0x18, 0xD2, 0x1A, 0xC6, 0xF0, 0x25, 0xE3, 0x47, 0x5C, 0x71, 0xF4, 0xF4, 0x22, 0xA6, 0xFC, 0x33, 0xDC, 0x95, 0x32, 0xCB, 0x1A, 0xAD, 0xA6, 0x68, 0xFA, 0x8F, 0xD8, 0x3E, 0xCA, 0x0D, 0x76, 0xC1, 0x7A, 0xBA, 0x56, 0xA1, 0xFC, 0x9F, 0x61, 0xB9, 0x94, 0x28, 0xD6, 0x70, 0x9C, 0x40, 0x80, 0x5A, 0xC3, 0x31, 0xC4, 0x1A, 0x41, 0x17, 0xFC, 0x26, 0x6B, 0xF9, 0xCD, 0xFE, 0x19, 0x7E, 0x97, 0x76, 0x1E, 0x15, 0x25, 0x91, 0xAA, 0xAF, 0x50, 0x02, 0x9F, 0xDD, 0xE9, 0xA6, 0x15, 0xB9, 0x55, 0x0A, 0x50, 0x1B, 0x46, 0x41, 0xD0, 0x8F, 0xE2, 0x83, 0x27, 0xD6, 0x9D, 0xC5, 0x7A, 0x31, 0xC8, 0xD9, 0x5C, 0x6E, 0xB1, 0xBC, 0xB5, 0x44, 0x4F, 0xA1, 0xEC, 0x5F, 0x4B, 0x15, 0x01, 0x3F, 0x23, 0x8B, 0x7B, 0xAC, 0xD4, 0xA5, 0x36, 0x28, 0x0F, 0x56, 0x3F, 0xD5, 0x3C, 0xCB, 0x5F, 0xCC, 0xAE, 0x6B, 0x51, 0x9B, 0xC0, 0x38, 0x57, 0x92, 0x8B, 0x4A, 0xB2, 0xC8, 0x13, 0x01, 0xA8, 0x58, 0xC7, 0x2E, 0xC4, 0x4D, 0x6B, 0x7A, 0x7C, 0xBF, 0x5C, 0x83, 0xC2, 0xDF, 0xF5, 0xD5, 0x12, 0x33, 0x08, 0xC4, 0xD3, 0x95, 0x4B, 0x29, 0x5F, 0x37, 0x29, 0x8A, 0x0E, 0x62, 0x47, 0xA3, 0x51, 0x4A, 0xC5, 0x47, 0x0C, 0x49, 0x56, 0xB2, 0x98, 0x9F, 0xC8, 0x90, 0x04, 0x8C, 0x45, 0x3C, 0x8C, 0xB2, 0x94, 0x46, 0x99, 0xA8, 0xA4, 0x16, 0x63, 0x21, 0xCC, 0x5E, 0xFA, 0xE7, 0x9F, 0x8B, 0xC9, 0x7E, 0x5A, 0x0B, 0x96, 0xD3, 0xEB, 0x3D, 0xBF, 0x34, 0xD9, 0xF7, 0x6B, 0x89, 0xB9, 0x7A, 0xE9, 0xFF, 0x67, 0x4B, 0x21, 0x65, 0x4B, 0xF1, 0xB0, 0x54, 0x2E, 0x62, 0x62, 0x29, 0xE6, 0xC9, 0x82, 0x91, 0x97, 0x7C, 0x16, 0x0D, 0x1A, 0x2B, 0x25, 0x55, 0x9E, 0x97, 0x7D, 0x95, 0x43, 0x40, 0x59, 0x71, 0xE5, 0x35, 0x11, 0x06, 0x34, 0xE0, 0x63, 0x64, 0xF2, 0x41, 0xEB, 0xA7, 0xD1, 0x94, 0x26, 0x87, 0x24, 0xA5, 0x06, 0x24, 0xCD, 0x65, 0xDC, 0x41, 0xA8, 0xE9, 0x04, 0xEB, 0x76, 0x6D, 0x6E, 0x12, 0x05, 0xCE, 0x33, 0x77, 0xC4, 0xB1, 0x26, 0x03, 0xF9, 0xB2, 0xCA, 0x09, 0xD4, 0xC6, 0xBE, 0x12, 0xA4, 0x3E, 0x52, 0x25, 0xA8, 0x61, 0x5A, 0xD0, 0x76, 0xC0, 0x35, 0x5F, 0x26, 0x51, 0x4C, 0xC6, 0xB2, 0x07, 0x83, 0x35, 0x74, 0x0F, 0xA4, 0x66, 0x6D, 0x34, 0x91, 0x60, 0xA9, 0x73, 0x29, 0xFC, 0x66, 0xD9, 0xC2, 0x70, 0x4B, 0x57, 0xC9, 0xB0, 0xBD, 0xF4, 0xA5, 0x35, 0x59, 0x83, 0xE0, 0x0B, 0x6C, 0x62, 0xE0, 0x1E, 0x68, 0x64, 0xF2, 0x7B, 0x00, 0x77, 0x6B, 0xB6, 0xA3, 0x3D, 0xD6, 0x8E, 0x6A, 0x35, 0x53, 0x55, 0xE9, 0xAE, 0x0B, 0x6D, 0x4E, 0x74, 0x23, 0x0B, 0x4B, 0x10, 0xAA, 0x9A, 0x59, 0x0C, 0x38, 0x1B, 0x81, 0xAA, 0xBA, 0xC0, 0x11, 0xD6, 0x98, 0x66, 0xA9, 0x23, 0xF1, 0x97, 0x1D, 0xC9, 0x13, 0xB5, 0x07, 0x95, 0xF5, 0x05, 0xD4, 0x31, 0xAB, 0x25, 0x86, 0x30, 0xD3, 0x29, 0x13, 0xDE, 0x04, 0x03, 0x90, 0x07, 0x5A, 0xD5, 0x05, 0x14, 0xB5, 0x8E, 0x1C, 0x4D, 0x44, 0xB8, 0x1C, 0x05, 0xF9, 0xF0, 0x6B, 0x9A, 0x0F, 0xBC, 0xB4, 0x18, 0xDD, 0x97, 0x80, 0x50, 0xD2, 0xE6, 0xE0, 0x88, 0x8F, 0xF2, 0x21, 0xF4, 0xB2, 0x05, 0x9D, 0x02, 0x58, 0xFC, 0xC6, 0x71, 0x3E, 0x8A, 0x27, 0xC5, 0x68, 0x42, 0xEF, 0x17, 0x78, 0x51, 0x01, 0xF5, 0xA9, 0xEE, 0x28, 0x1B, 0xDB, 0x68, 0xCE, 0xF3, 0x41, 0x6B, 0x29, 0x7F, 0xF0, 0xFF, 0x28, 0x7F, 0xCC, 0xC7, 0x85, 0x34, 0x71, 0x31, 0x1A, 0xB3, 0x42, 0x96, 0x61, 0x18, 0xFF, 0x90, 0x93, 0xA4, 0xD4, 0x13, 0x97, 0x7A, 0x5A, 0xF1, 0xB3, 0xB6, 0x53, 0x98, 0x8E, 0x31, 0xAA, 0xF8, 0xE3, 0xC8, 0xF6, 0xF0, 0xF7, 0x3C, 0xF2, 0x65, 0x6D, 0x69, 0x5A, 0xA1, 0x31, 0x82, 0x3A, 0x57, 0x37, 0xCB, 0x7E, 0x9A, 0xFD, 0xB7, 0xAD, 0xE8, 0xD1, 0xF1, 0xE9, 0x71, 0xFF, 0xB8, 0x5C, 0x38, 0x23, 0xE7, 0x25, 0x93, 0x8A, 0x2B, 0x5D, 0xFA, 0xB2, 0x22, 0x80, 0x02, 0x1B, 0x45, 0x01, 0x7B, 0xDD, 0xDC, 0x54, 0x7E, 0xF1, 0xB6, 0x77, 0x71, 0x6E, 0xC7, 0x24, 0x01, 0x8F, 0x24, 0x15, 0xE6, 0xC2, 0x82, 0x44, 0xF9, 0xE0, 0xD7, 0xC7, 0xA5, 0x72, 0x5D, 0x7E, 0x61, 0x70, 0xC4, 0xDC, 0x52, 0xA7, 0xA9, 0x7E, 0x78, 0xE2, 0x62, 0x5D, 0x99, 0xBF, 0x04, 0x41, 0x72, 0x1A, 0x2D, 0x13, 0x55, 0x11, 0x67, 0x46, 0xE5, 0x30, 0x2F, 0xEE, 0xB2, 0x75, 0x0D, 0xD3, 0xC8, 0xB4, 0xC4, 0x84, 0xA5, 0xE5, 0x46, 0xA5, 0x12, 0x14, 0xFE, 0xA2, 0xB6, 0xE7, 0x8B, 0x91, 0x24, 0xB7, 0x5A, 0x73, 0xAB, 0x6F, 0x41, 0x2A, 0x3E, 0x58, 0x04, 0x23, 0x66, 0x39, 0xDB, 0x16, 0x77, 0xA3, 0x43, 0xEE, 0x61, 0x5C, 0x7F, 0xBA, 0x35, 0x78, 0xD2, 0x3C, 0x79, 0x61, 0x9E, 0xFC, 0xB1, 0x7B, 0x2E, 0x1C, 0x45, 0xF9, 0xDA, 0xE2, 0x98, 0xF6, 0x10, 0x58, 0xBB, 0x6D, 0x2F, 0x7D, 0x18, 0x20, 0xD2, 0x83, 0xCB, 0x00, 0xF4, 0x63, 0x58, 0xFF, 0x4A, 0xEE, 0x88, 0x7A, 0x09, 0xAA, 0xA2, 0xAD, 0x73, 0x54, 0xD8, 0xEE, 0xFD, 0x81, 0xA3, 0xF2, 0xCE, 0x65, 0x18, 0x48, 0x97, 0xC3, 0x92, 0x37, 0x8B, 0x75, 0xC1, 0x61, 0x19, 0x31, 0x64, 0x6C, 0x00, 0xE3, 0xCD, 0x5D, 0x49, 0x13, 0xD5, 0x1C, 0xB4, 0xF0, 0x1B, 0x08, 0x8A, 0x4F, 0x39, 0xCE, 0x9A, 0x38, 0xAD, 0x62, 0x72, 0xC5, 0x23, 0xC8, 0x4A, 0x67, 0x89, 0xC0, 0x6E, 0x10, 0x0D, 0x0D, 0x7C, 0x64, 0x9A, 0xA1, 0xB6, 0x1D, 0x3E, 0x37, 0xD7, 0xBC, 0xD9, 0x54, 0xFA, 0x4B, 0x62, 0x79, 0xD5, 0xB0, 0x8B, 0x1C, 0x56, 0xCC, 0x75, 0x7D, 0x1F, 0xF4, 0xA3, 0x4E, 0x29, 0xAF, 0x48, 0xA4, 0x53, 0xD1, 0x83, 0xC4, 0x86, 0xA2, 0x41, 0xBE, 0x91, 0x40, 0x44, 0x72, 0x4A, 0x33, 0x5D, 0xC7, 0xCA, 0xD2, 0x0B, 0x28, 0x49, 0x7A, 0xB2, 0x73, 0x95, 0x49, 0x6B, 0x25, 0x06, 0xFE, 0xC8, 0xD7, 0xF0, 0xC7, 0xA1, 0xD0, 0xA3, 0x83, 0x9B, 0x49, 0x2B, 0x83, 0xA4, 0x23, 0x64, 0x83, 0xA9, 0x37, 0xE4, 0xBB, 0xA8, 0x2D, 0x2F, 0xCB, 0xB4, 0x16, 0x50, 0x70, 0x71, 0x83, 0xBB, 0x11, 0x30, 0x52, 0x5A, 0xC4, 0x9E, 0x94, 0xA8, 0xC7, 0x8F, 0x10, 0x1F, 0x53, 0x4A, 0x20, 0x06, 0x20, 0xA6, 0x40, 0xD0, 0xA7, 0x42, 0x8A, 0x54, 0xE6, 0x92, 0x53, 0x2A, 0x20, 0xCA, 0x48, 0xCD, 0xE2, 0xC1, 0x85, 0x78, 0xD4, 0x46, 0xD6, 0x80, 0xFD, 0xDC, 0xBD, 0x73, 0x33, 0xDE, 0x90, 0x68, 0x09, 0x56, 0x36, 0x3D, 0x9A, 0xA6, 0x52, 0x5C, 0x54, 0xC7, 0x19, 0xF8, 0xA8, 0xA1, 0x03, 0x5A, 0x23, 0x84, 0x11, 0x1E, 0x84, 0x8A, 0x01, 0x40, 0x7F, 0x42, 0xC3, 0x1C, 0x22, 0x70, 0x08, 0x20, 0x82, 0xA0, 0x7F, 0x49, 0x0D, 0xF7, 0x64, 0x05, 0xC9, 0xF8, 0xD8, 0x6D, 0x35, 0xF0, 0x9D, 0x66, 0x95, 0xEC, 0x20, 0xA5, 0xBD, 0x68, 0x24, 0xFA, 0x64, 0x98, 0x1A, 0x50, 0x00, 0xAC, 0xD9, 0x01, 0xA0, 0x1E, 0x24, 0x5E, 0x63, 0x2B, 0x3F, 0xEF, 0x04, 0x2A, 0xBB, 0x00, 0xAB, 0xBB, 0x8E, 0x87, 0x5F, 0x39, 0x4F, 0x19, 0xA7, 0x39, 0x26, 0x00, 0x7B, 0x93, 0x68, 0x7A, 0x99, 0x30, 0x2E, 0xCE, 0x64, 0x1B, 0x6A, 0x6C, 0xB4, 0xE4, 0xF5, 0xA9, 0x87, 0x15, 0x79, 0x3F, 0xC5, 0x8B, 0xCB, 0x0C, 0xF3, 0xBA, 0x53, 0x79, 0x77, 0xB1, 0x86, 0x70, 0x21, 0x50, 0x66, 0x38, 0xB3, 0x29, 0x74, 0xB0, 0xFA, 0xA1, 0x48, 0x82, 0x7A, 0x4F, 0xB7, 0x42, 0xE2, 0xC1, 0x44, 0xED, 0x81, 0xF9, 0xDC, 0xC2, 0xD8, 0xE1, 0x94, 0x83, 0x5A, 0x0A, 0xB5, 0x02, 0x45, 0xC6, 0x95, 0xCD, 0x98, 0x35, 0x1D, 0x6A, 0x58, 0x88, 0x61, 0xE0, 0xAF, 0xFE, 0x05, 0x0F, 0x1E, 0x1C, 0xC8, 0x55, 0x3F, 0xE1, 0x23, 0xE3, 0x7E, 0xF4, 0x23, 0x3E, 0x3E, 0xAF, 0xF0, 0xF1, 0x79, 0x1D, 0x1F, 0xB4, 0xAA, 0x3C, 0x98, 0x0C, 0x80, 0xEC, 0x19, 0xE1, 0x64, 0x4C, 0x13, 0x58, 0xC0, 0x43, 0x50, 0x25, 0x7F, 0x8B, 0xB3, 0x84, 0xFE, 0x98, 0xB3, 0xDE, 0x84, 0x8D, 0xC4, 0x23, 0xFE, 0x8A, 0xD5, 0xFF, 0x82, 0x4B, 0x3C, 0x70, 0x3D, 0x97, 0x79, 0x6D, 0x5A, 0x49, 0x28, 0x3F, 0x7E, 0x2B, 0x91, 0x7E, 0xE4, 0x42, 0x78, 0xA9, 0x38, 0xC8, 0xDF, 0xB7, 0xF4, 0x00, 0xBC, 0x11, 0xF8, 0x29, 0x35, 0x75, 0xBC, 0x0B, 0xA5, 0xFC, 0x29, 0x30, 0x64, 0xA8, 0xC0, 0x47, 0xDD, 0xD9, 0xDC, 0x12, 0xAE, 0x01, 0x8A, 0xF1, 0xA3, 0x29, 0xB0, 0xEA, 0xC9, 0x02, 0xD7, 0x9E, 0x40, 0x26, 0x04, 0x91, 0xE0, 0x48, 0xC8, 0xA7, 0x8D, 0x2F, 0x07, 0x9B, 0x37, 0x35, 0xC8, 0x43, 0x2E, 0xFC, 0x98, 0x2E, 0x0C, 0x36, 0x6F, 0xFE, 0x6D, 0x36, 0xC6, 0xCC, 0x5A, 0x76, 0xA4, 0x96, 0x4C, 0xF6, 0xF4, 0x0B, 0xBF, 0x71, 0x09, 0x48, 0x5D, 0x49, 0x78, 0x45, 0x34, 0x03, 0x6B, 0x43, 0x61, 0xE1, 0x07, 0xFF, 0x47, 0x09, 0xF8, 0x91, 0x9E, 0x07, 0xCE, 0xBD, 0xE6, 0x3D, 0x5E, 0x2F, 0x3E, 0x85, 0xE9, 0x56, 0xE9, 0xC1, 0x4A, 0xC7, 0xEF, 0x53, 0x3A, 0x76, 0x59, 0xA2, 0x14, 0x4A, 0x14, 0x59, 0x88, 0x1A, 0x6A, 0x50, 0x0E, 0x51, 0x98, 0x89, 0x17, 0xCD, 0x81, 0x02, 0x9B, 0x73, 0x34, 0x5B, 0x3A, 0x02, 0x0F, 0xF4, 0xF5, 0x45, 0xEE, 0xFC, 0x74, 0x76, 0x7A, 0x22, 0x44, 0x7C, 0xA5, 0x62, 0x22, 0xD0, 0xAA, 0x2E, 0x2C, 0x2F, 0xCF, 0x9C, 0x89, 0xE4, 0xA1, 0x28, 0x75, 0x30, 0x31, 0x28, 0x87, 0xFE, 0x74, 0x31, 0xFC, 0x0A, 0x71, 0xD6, 0xD0, 0xCF, 0x52, 0x48, 0x58, 0x5B, 0x36, 0xA2, 0xF7, 0xFB, 0x97, 0xF6, 0xAE, 0xDD, 0x84, 0xBA, 0x00, 0xB4, 0x0A, 0x69, 0x19, 0xEE, 0x7D, 0xFE, 0xB7, 0x90, 0xB7, 0xFF, 0x1E, 0x32, 0x83, 0xA8, 0x95, 0x42, 0x58, 0x2A, 0xF0, 0xAB, 0xB8, 0x93, 0x24, 0x9A, 0x4A, 0xB4, 0xE3, 0x24, 0xC1, 0x4B, 0xE9, 0x43, 0x85, 0xA2, 0x0D, 0x61, 0x31, 0xA5, 0x89, 0xE6, 0x47, 0x34, 0xD5, 0x78, 0x24, 0xB4, 0x34, 0x8B, 0x63, 0x68, 0x5C, 0x56, 0xF4, 0x61, 0xEB, 0xC5, 0xEB, 0xCB, 0xFB, 0x8C, 0x66, 0xD4, 0xCF, 0x97, 0x69, 0x52, 0xD1, 0x0B, 0x56, 0x50, 0xDF, 0x10, 0xEE, 0x7E, 0xB9, 0xC9, 0xEB, 0xA9, 0x8C, 0x73, 0x8C, 0xA2, 0x1B, 0x2D, 0x35, 0x07, 0xE9, 0x26, 0x40, 0xD5, 0xE5, 0x59, 0x10, 0xCC, 0xDB, 0x2B, 0xB4, 0xA0, 0xF1, 0x8A, 0x44, 0x24, 0x9F, 0xCB, 0x67, 0x7F, 0xE4, 0xC9, 0xA9, 0xE2, 0x82, 0x50, 0xF2, 0x54, 0xA9, 0x36, 0xAD, 0x0D, 0x63, 0x83, 0x6A, 0x8C, 0xA7, 0x82, 0x70, 0x0F, 0xAF, 0x51, 0xE9, 0xC2, 0x2C, 0x6A, 0x29, 0xDC, 0xDE, 0x46, 0x5F, 0xCB, 0x6D, 0xE9, 0x89, 0x7C, 0x2A, 0x25, 0xE3, 0xAE, 0xAE, 0x63, 0x55, 0x45, 0xB1, 0x3E, 0x25, 0x61, 0x5A, 0x26, 0x5B, 0x54, 0x06, 0x26, 0x77, 0x0B, 0x70, 0x9B, 0x06, 0x29, 0x1C, 0xBD, 0x7E, 0x7F, 0xCE, 0x46, 0xD1, 0xCE, 0x11, 0x80, 0x69, 0xC5, 0x3E, 0x93, 0xD7, 0xE0, 0x24, 0xCC, 0x73, 0x07, 0x32, 0xE9, 0x4A, 0x03, 0x0E, 0xA9, 0x98, 0x44, 0xFE, 0x81, 0x7E, 0xA0, 0x3B, 0x3A, 0xFC, 0xBB, 0x09, 0x35, 0x47, 0xCD, 0xA5, 0xD0, 0xA4, 0xFA, 0x74, 0x70, 0xF5, 0x06, 0xC2, 0x53, 0x0C, 0xA5, 0x01, 0x17, 0x50, 0x34, 0xD7, 0x74, 0x7C, 0x7A, 0x7D, 0x0C, 0x29, 0xC8, 0x7F, 0x21, 0x37, 0x66, 0xBB, 0xAA, 0x6C, 0xB8, 0xF3, 0xEA, 0x75, 0x56, 0x2E, 0x03, 0x7A, 0x61, 0x8C, 0x58, 0x0F, 0x29, 0x7E, 0xFB, 0x7B, 0xF4, 0x9E, 0x8D, 0x15, 0xD2, 0x6A, 0x5D, 0x6F, 0xCE, 0x76, 0x90, 0x67, 0x89, 0xD5, 0x43, 0x2C, 0x70, 0x97, 0x1F, 0x29, 0x59, 0x95, 0x35, 0xDC, 0xF6, 0x48, 0x10, 0xE0, 0xC7, 0x5A, 0x03, 0x1B, 0x6A, 0x22, 0xB2, 0xD4, 0x42, 0x22, 0x29, 0x08, 0x90, 0xD2, 0x3E, 0x84, 0x39, 0xD3, 0x92, 0x65, 0x86, 0xB2, 0xA1, 0xBC, 0xFF, 0xC5, 0x9A, 0xA3, 0x64, 0x46, 0xE8, 0xCE, 0xF9, 0x6C, 0x73, 0x53, 0xD8, 0x85, 0x99, 0x18, 0x05, 0x52, 0x8A, 0x01, 0x1C, 0x9A, 0x7D, 0x68, 0x2D, 0x8C, 0xB2, 0x90, 0x58, 0xAB, 0x3D, 0xD2, 0xB6, 0x51, 0x55, 0x03, 0x54, 0x7C, 0x46, 0x01, 0x03, 0xCE, 0xB2, 0x24, 0x80, 0xA8, 0x8B, 0x39, 0xBA, 0xB2, 0x2D, 0xC5, 0xBA, 0xD0, 0x84, 0x0E, 0xEC, 0x67, 0xC8, 0x12, 0x95, 0x97, 0xAD, 0xA2, 0x27, 0x12, 0xC5, 0x77, 0x95, 0x9E, 0xC8, 0x6F, 0xE5, 0x84, 0xAA, 0xC8, 0x77, 0x88, 0x2F, 0x13, 0x5C, 0xD4, 0xD1, 0x13, 0xA0, 0x24, 0x83, 0x52, 0x34, 0x60, 0x2A, 0x2C, 0x37, 0xEE, 0xEB, 0xD3, 0xE9, 0xB4, 0x8E, 0xDF, 0x6A, 0xEB, 0x70, 0x82, 0xB2, 0x02, 0x5F, 0x5F, 0xC7, 0x21, 0x47, 0x15, 0x58, 0xF8, 0x6E, 0xE1, 0xAC, 0xBA, 0xE8, 0x42, 0x7F, 0x2B, 0xDE, 0xD4, 0xAA, 0xD2, 0x59, 0xE1, 0x73, 0x79, 0xDB, 0x7B, 0x3B, 0x2B, 0x20, 0x32, 0xC4, 0xAF, 0xB2, 0x90, 0x69, 0x20, 0x0D, 0x3B, 0xE5, 0x46, 0x56, 0x25, 0x85, 0x65, 0x5C, 0xB0, 0xE3, 0x2C, 0x9D, 0x18, 0x33, 0x60, 0xDD, 0x11, 0x96, 0xD2, 0x95, 0x43, 0x2D, 0x65, 0xB7, 0x0E, 0xB7, 0x0A, 0xFB, 0x70, 0x30, 0x83, 0x94, 0x79, 0xFB, 0xF3, 0x4F, 0x39, 0x5B, 0xDE, 0xF6, 0x92, 0x62, 0x71, 0xE1, 0xF3, 0xFC, 0xA9, 0x35, 0xAF, 0x69, 0xA5, 0xD1, 0xAF, 0xC4, 0x97, 0xBD, 0x46, 0xFE, 0x19, 0x3B, 0xFF, 0x9C, 0xAD, 0x81, 0xB1, 0x43, 0x23, 0x2A, 0xDC, 0x4C, 0x8C, 0xEA, 0x2F, 0x34, 0xE6, 0x63, 0x79, 0x29, 0xBF, 0x2D, 0xA0, 0x54, 0xA9, 0xD3, 0x68, 0x78, 0x3E, 0xFF, 0x9A, 0x42, 0x19, 0x1D, 0x65, 0xFE, 0x28, 0x20, 0x09, 0xC5, 0x82, 0xA3, 0x41, 0xBE, 0x92, 0xFB, 0x46, 0xC0, 0x86, 0x69, 0x03, 0x93, 0x6D, 0xCB, 0xDE, 0xB2, 0x77, 0x71, 0x64, 0x7F, 0x4D, 0xF7, 0x57, 0x4F, 0xD8, 0x5F, 0x34, 0x69, 0x58, 0x0B, 0xE7, 0xB5, 0xAB, 0x8A, 0x4D, 0x6A, 0x83, 0xFB, 0xC4, 0xA7, 0x70, 0x3D, 0x6F, 0xB3, 0xCC, 0xB6, 0x1A, 0xE4, 0x5F, 0x60, 0xD4, 0x31, 0xBA, 0x95, 0x2F, 0x92, 0xF4, 0x81, 0x7B, 0x18, 0x5B, 0x17, 0x54, 0x26, 0x70, 0x49, 0xD5, 0x87, 0x34, 0xB9, 0xD3, 0x9C, 0x2F, 0x39, 0xC3, 0xB7, 0x3C, 0xA8, 0x03, 0xE4, 0x37, 0x9C, 0x72, 0x39, 0xB0, 0xBF, 0x07, 0x5D, 0x33, 0x2A, 0x41, 0x79, 0xB1, 0x26, 0x9B, 0xE6, 0x7C, 0x02, 0x82, 0x01, 0x70, 0xB1, 0xA3, 0x48, 0xCD, 0x2B, 0xCB, 0x98, 0x9B, 0x57, 0x96, 0x54, 0xE2, 0x5F, 0x59, 0xCC, 0xDB, 0x9F, 0xFC, 0xDB, 0x4C, 0xF9, 0x7F, 0x5B, 0x28, 0x36, 0x32, 0xF9, 0xE1, 0x09, 0xF7, 0x56, 0x3F, 0x45, 0xAD, 0x47, 0x51, 0xBB, 0xF7, 0xFF, 0x17, 0x53, 0xE8, 0x9D, 0x36, 0x92, 0x29, 0x00, 0x00 }; #define SPIFFS_MAXLENGTH_FILEPATH 32 const char *excludeListFile = "/.exclude.files"; typedef struct ExcludeListS { char *item; ExcludeListS *next; } ExcludeList; static ExcludeList *excludes = NULL; static bool matchWild(const char *pattern, const char *testee) { const char *nxPat = NULL, *nxTst = NULL; while (*testee) { if (( *pattern == '?' ) || (*pattern == *testee)){ pattern++;testee++; continue; } if (*pattern=='*'){ nxPat=pattern++; nxTst=testee; continue; } if (nxPat){ pattern = nxPat+1; testee=++nxTst; continue; } return false; } while (*pattern=='*'){pattern++;} return (*pattern == 0); } static bool addExclude(const char *item){ size_t len = strlen(item); if(!len){ return false; } ExcludeList *e = (ExcludeList *)malloc(sizeof(ExcludeList)); if(!e){ return false; } e->item = (char *)malloc(len+1); if(!e->item){ free(e); return false; } memcpy(e->item, item, len+1); e->next = excludes; excludes = e; return true; } static void loadExcludeList(fs::FS &_fs, const char *filename){ static char linebuf[SPIFFS_MAXLENGTH_FILEPATH]; fs::File excludeFile=_fs.open(filename, "r"); if(!excludeFile){ //addExclude("/*.js.gz"); return; } #ifdef ESP32 if(excludeFile.isDirectory()){ excludeFile.close(); return; } #endif if (excludeFile.size() > 0){ uint8_t idx; bool isOverflowed = false; while (excludeFile.available()){ linebuf[0] = '\0'; idx = 0; int lastChar; do { lastChar = excludeFile.read(); if(lastChar != '\r'){ linebuf[idx++] = (char) lastChar; } } while ((lastChar >= 0) && (lastChar != '\n') && (idx < SPIFFS_MAXLENGTH_FILEPATH)); if(isOverflowed){ isOverflowed = (lastChar != '\n'); continue; } isOverflowed = (idx >= SPIFFS_MAXLENGTH_FILEPATH); linebuf[idx-1] = '\0'; if(!addExclude(linebuf)){ excludeFile.close(); return; } } } excludeFile.close(); } static bool isExcluded(fs::FS &_fs, const char *filename) { if(excludes == NULL){ loadExcludeList(_fs, excludeListFile); } ExcludeList *e = excludes; while(e){ if (matchWild(e->item, filename)){ return true; } e = e->next; } return false; } // WEB HANDLER IMPLEMENTATION #ifdef ESP32 SPIFFSEditor::SPIFFSEditor(const fs::FS& fs, const String& username, const String& password) #else SPIFFSEditor::SPIFFSEditor(const String& username, const String& password, const fs::FS& fs) #endif :_fs(fs) ,_username(username) ,_password(password) ,_authenticated(false) ,_startTime(0) {} bool SPIFFSEditor::canHandle(AsyncWebServerRequest *request){ if(request->url().equalsIgnoreCase("/edit")){ if(request->method() == HTTP_GET){ if(request->hasParam("list")) return true; if(request->hasParam("edit")){ request->_tempFile = _fs.open(request->arg("edit"), "r"); if(!request->_tempFile){ return false; } #ifdef ESP32 if(request->_tempFile.isDirectory()){ request->_tempFile.close(); return false; } #endif } if(request->hasParam("download")){ request->_tempFile = _fs.open(request->arg("download"), "r"); if(!request->_tempFile){ return false; } #ifdef ESP32 if(request->_tempFile.isDirectory()){ request->_tempFile.close(); return false; } #endif } request->addInterestingHeader("If-Modified-Since"); return true; } else if(request->method() == HTTP_POST) return true; else if(request->method() == HTTP_DELETE) return true; else if(request->method() == HTTP_PUT) return true; } return false; } void SPIFFSEditor::handleRequest(AsyncWebServerRequest *request){ if(_username.length() && _password.length() && !request->authenticate(_username.c_str(), _password.c_str())) return request->requestAuthentication(); if(request->method() == HTTP_GET){ if(request->hasParam("list")){ String path = request->getParam("list")->value(); #ifdef ESP32 File dir = _fs.open(path); #else Dir dir = _fs.openDir(path); #endif path = String(); String output = "["; #ifdef ESP32 File entry = dir.openNextFile(); while(entry){ #else while(dir.next()){ fs::File entry = dir.openFile("r"); #endif if (isExcluded(_fs, entry.name())) { #ifdef ESP32 entry = dir.openNextFile(); #endif continue; } if (output != "[") output += ','; output += "{\"type\":\""; output += "file"; output += "\",\"name\":\""; output += String(entry.name()); output += "\",\"size\":"; output += String(entry.size()); output += "}"; #ifdef ESP32 entry = dir.openNextFile(); #else entry.close(); #endif } #ifdef ESP32 dir.close(); #endif output += "]"; request->send(200, "application/json", output); output = String(); } else if(request->hasParam("edit") || request->hasParam("download")){ request->send(request->_tempFile, request->_tempFile.name(), String(), request->hasParam("download")); } else { const char * buildTime = __DATE__ " " __TIME__ " GMT"; if (request->header("If-Modified-Since").equals(buildTime)) { request->send(304); } else { AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", edit_htm_gz, edit_htm_gz_len); response->addHeader("Content-Encoding", "gzip"); response->addHeader("Last-Modified", buildTime); request->send(response); } } } else if(request->method() == HTTP_DELETE){ if(request->hasParam("path", true)){ _fs.remove(request->getParam("path", true)->value()); request->send(200, "", "DELETE: "+request->getParam("path", true)->value()); } else request->send(404); } else if(request->method() == HTTP_POST){ if(request->hasParam("data", true, true) && _fs.exists(request->getParam("data", true, true)->value())) request->send(200, "", "UPLOADED: "+request->getParam("data", true, true)->value()); else request->send(500); } else if(request->method() == HTTP_PUT){ if(request->hasParam("path", true)){ String filename = request->getParam("path", true)->value(); if(_fs.exists(filename)){ request->send(200); } else { fs::File f = _fs.open(filename, "w"); if(f){ f.write((uint8_t)0x00); f.close(); request->send(200, "", "CREATE: "+filename); } else { request->send(500); } } } else request->send(400); } } void SPIFFSEditor::handleUpload(AsyncWebServerRequest *request, const String& filename, size_t index, uint8_t *data, size_t len, bool final){ if(!index){ if(!_username.length() || request->authenticate(_username.c_str(),_password.c_str())){ _authenticated = true; request->_tempFile = _fs.open(filename, "w"); _startTime = millis(); } } if(_authenticated && request->_tempFile){ if(len){ request->_tempFile.write(data,len); } if(final){ request->_tempFile.close(); } } } ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/SPIFFSEditor.h ================================================ #ifndef SPIFFSEditor_H_ #define SPIFFSEditor_H_ #include class SPIFFSEditor: public AsyncWebHandler { private: fs::FS _fs; String _username; String _password; bool _authenticated; uint32_t _startTime; public: #ifdef ESP32 SPIFFSEditor(const fs::FS& fs, const String& username=String(), const String& password=String()); #else SPIFFSEditor(const String& username=String(), const String& password=String(), const fs::FS& fs=SPIFFS); #endif virtual bool canHandle(AsyncWebServerRequest *request) override final; virtual void handleRequest(AsyncWebServerRequest *request) override final; virtual void handleUpload(AsyncWebServerRequest *request, const String& filename, size_t index, uint8_t *data, size_t len, bool final) override final; virtual bool isRequestHandlerTrivial() override final {return false;} }; #endif ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/StringArray.h ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef STRINGARRAY_H_ #define STRINGARRAY_H_ #include "stddef.h" #include "WString.h" template class LinkedListNode { T _value; public: LinkedListNode* next; LinkedListNode(const T val): _value(val), next(nullptr) {} ~LinkedListNode(){} const T& value() const { return _value; }; T& value(){ return _value; } }; template class Item = LinkedListNode> class LinkedList { public: typedef Item ItemType; typedef std::function OnRemove; typedef std::function Predicate; private: ItemType* _root; OnRemove _onRemove; class Iterator { ItemType* _node; public: Iterator(ItemType* current = nullptr) : _node(current) {} Iterator(const Iterator& i) : _node(i._node) {} Iterator& operator ++() { _node = _node->next; return *this; } bool operator != (const Iterator& i) const { return _node != i._node; } const T& operator * () const { return _node->value(); } const T* operator -> () const { return &_node->value(); } }; public: typedef const Iterator ConstIterator; ConstIterator begin() const { return ConstIterator(_root); } ConstIterator end() const { return ConstIterator(nullptr); } LinkedList(OnRemove onRemove) : _root(nullptr), _onRemove(onRemove) {} ~LinkedList(){} void add(const T& t){ auto it = new ItemType(t); if(!_root){ _root = it; } else { auto i = _root; while(i->next) i = i->next; i->next = it; } } T& front() const { return _root->value(); } bool isEmpty() const { return _root == nullptr; } size_t length() const { size_t i = 0; auto it = _root; while(it){ i++; it = it->next; } return i; } size_t count_if(Predicate predicate) const { size_t i = 0; auto it = _root; while(it){ if (!predicate){ i++; } else if (predicate(it->value())) { i++; } it = it->next; } return i; } const T* nth(size_t N) const { size_t i = 0; auto it = _root; while(it){ if(i++ == N) return &(it->value()); it = it->next; } return nullptr; } bool remove(const T& t){ auto it = _root; auto pit = _root; while(it){ if(it->value() == t){ if(it == _root){ _root = _root->next; } else { pit->next = it->next; } if (_onRemove) { _onRemove(it->value()); } delete it; return true; } pit = it; it = it->next; } return false; } bool remove_first(Predicate predicate){ auto it = _root; auto pit = _root; while(it){ if(predicate(it->value())){ if(it == _root){ _root = _root->next; } else { pit->next = it->next; } if (_onRemove) { _onRemove(it->value()); } delete it; return true; } pit = it; it = it->next; } return false; } void free(){ while(_root != nullptr){ auto it = _root; _root = _root->next; if (_onRemove) { _onRemove(it->value()); } delete it; } _root = nullptr; } }; class StringArray : public LinkedList { public: StringArray() : LinkedList(nullptr) {} bool containsIgnoreCase(const String& str){ for (const auto& s : *this) { if (str.equalsIgnoreCase(s)) { return true; } } return false; } }; #endif /* STRINGARRAY_H_ */ ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/WebAuthentication.cpp ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "WebAuthentication.h" #include #ifdef ESP32 #include "mbedtls/md5.h" #else #include "md5.h" #endif // Basic Auth hash = base64("username:password") bool checkBasicAuthentication(const char * hash, const char * username, const char * password){ if(username == NULL || password == NULL || hash == NULL) return false; size_t toencodeLen = strlen(username)+strlen(password)+1; size_t encodedLen = base64_encode_expected_len(toencodeLen); if(strlen(hash) != encodedLen) return false; char *toencode = new char[toencodeLen+1]; if(toencode == NULL){ return false; } char *encoded = new char[base64_encode_expected_len(toencodeLen)+1]; if(encoded == NULL){ delete[] toencode; return false; } sprintf(toencode, "%s:%s", username, password); if(base64_encode_chars(toencode, toencodeLen, encoded) > 0 && memcmp(hash, encoded, encodedLen) == 0){ delete[] toencode; delete[] encoded; return true; } delete[] toencode; delete[] encoded; return false; } static bool getMD5(uint8_t * data, uint16_t len, char * output){//33 bytes or more #ifdef ESP32 mbedtls_md5_context _ctx; #else md5_context_t _ctx; #endif uint8_t i; uint8_t * _buf = (uint8_t*)malloc(16); if(_buf == NULL) return false; memset(_buf, 0x00, 16); #ifdef ESP32 mbedtls_md5_init(&_ctx); mbedtls_md5_starts_ret(&_ctx); mbedtls_md5_update_ret(&_ctx, data, len); mbedtls_md5_finish_ret(&_ctx, _buf); #else MD5Init(&_ctx); MD5Update(&_ctx, data, len); MD5Final(_buf, &_ctx); #endif for(i = 0; i < 16; i++) { sprintf(output + (i * 2), "%02x", _buf[i]); } free(_buf); return true; } static String genRandomMD5(){ #ifdef ESP8266 uint32_t r = RANDOM_REG32; #else uint32_t r = rand(); #endif char * out = (char*)malloc(33); if(out == NULL || !getMD5((uint8_t*)(&r), 4, out)) return ""; String res = String(out); free(out); return res; } static String stringMD5(const String& in){ char * out = (char*)malloc(33); if(out == NULL || !getMD5((uint8_t*)(in.c_str()), in.length(), out)) return ""; String res = String(out); free(out); return res; } String generateDigestHash(const char * username, const char * password, const char * realm){ if(username == NULL || password == NULL || realm == NULL){ return ""; } char * out = (char*)malloc(33); String res = String(username); res.concat(":"); res.concat(realm); res.concat(":"); String in = res; in.concat(password); if(out == NULL || !getMD5((uint8_t*)(in.c_str()), in.length(), out)) return ""; res.concat(out); free(out); return res; } String requestDigestAuthentication(const char * realm){ String header = "realm=\""; if(realm == NULL) header.concat("asyncesp"); else header.concat(realm); header.concat( "\", qop=\"auth\", nonce=\""); header.concat(genRandomMD5()); header.concat("\", opaque=\""); header.concat(genRandomMD5()); header.concat("\""); return header; } bool checkDigestAuthentication(const char * header, const char * method, const char * username, const char * password, const char * realm, bool passwordIsHash, const char * nonce, const char * opaque, const char * uri){ if(username == NULL || password == NULL || header == NULL || method == NULL){ //os_printf("AUTH FAIL: missing requred fields\n"); return false; } String myHeader = String(header); int nextBreak = myHeader.indexOf(","); if(nextBreak < 0){ //os_printf("AUTH FAIL: no variables\n"); return false; } String myUsername = String(); String myRealm = String(); String myNonce = String(); String myUri = String(); String myResponse = String(); String myQop = String(); String myNc = String(); String myCnonce = String(); myHeader += ", "; do { String avLine = myHeader.substring(0, nextBreak); avLine.trim(); myHeader = myHeader.substring(nextBreak+1); nextBreak = myHeader.indexOf(","); int eqSign = avLine.indexOf("="); if(eqSign < 0){ //os_printf("AUTH FAIL: no = sign\n"); return false; } String varName = avLine.substring(0, eqSign); avLine = avLine.substring(eqSign + 1); if(avLine.startsWith("\"")){ avLine = avLine.substring(1, avLine.length() - 1); } if(varName.equals("username")){ if(!avLine.equals(username)){ //os_printf("AUTH FAIL: username\n"); return false; } myUsername = avLine; } else if(varName.equals("realm")){ if(realm != NULL && !avLine.equals(realm)){ //os_printf("AUTH FAIL: realm\n"); return false; } myRealm = avLine; } else if(varName.equals("nonce")){ if(nonce != NULL && !avLine.equals(nonce)){ //os_printf("AUTH FAIL: nonce\n"); return false; } myNonce = avLine; } else if(varName.equals("opaque")){ if(opaque != NULL && !avLine.equals(opaque)){ //os_printf("AUTH FAIL: opaque\n"); return false; } } else if(varName.equals("uri")){ if(uri != NULL && !avLine.equals(uri)){ //os_printf("AUTH FAIL: uri\n"); return false; } myUri = avLine; } else if(varName.equals("response")){ myResponse = avLine; } else if(varName.equals("qop")){ myQop = avLine; } else if(varName.equals("nc")){ myNc = avLine; } else if(varName.equals("cnonce")){ myCnonce = avLine; } } while(nextBreak > 0); String ha1 = (passwordIsHash) ? String(password) : stringMD5(myUsername + ":" + myRealm + ":" + String(password)); String ha2 = String(method) + ":" + myUri; String response = ha1 + ":" + myNonce + ":" + myNc + ":" + myCnonce + ":" + myQop + ":" + stringMD5(ha2); if(myResponse.equals(stringMD5(response))){ //os_printf("AUTH SUCCESS\n"); return true; } //os_printf("AUTH FAIL: password\n"); return false; } ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/WebAuthentication.h ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef WEB_AUTHENTICATION_H_ #define WEB_AUTHENTICATION_H_ #include "Arduino.h" bool checkBasicAuthentication(const char * header, const char * username, const char * password); String requestDigestAuthentication(const char * realm); bool checkDigestAuthentication(const char * header, const char * method, const char * username, const char * password, const char * realm, bool passwordIsHash, const char * nonce, const char * opaque, const char * uri); //for storing hashed versions on the device that can be authenticated against String generateDigestHash(const char * username, const char * password, const char * realm); #endif ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/WebHandlerImpl.h ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef ASYNCWEBSERVERHANDLERIMPL_H_ #define ASYNCWEBSERVERHANDLERIMPL_H_ #include #ifdef ASYNCWEBSERVER_REGEX #include #endif #include "stddef.h" #include class AsyncStaticWebHandler: public AsyncWebHandler { using File = fs::File; using FS = fs::FS; private: bool _getFile(AsyncWebServerRequest *request); bool _fileExists(AsyncWebServerRequest *request, const String& path); uint8_t _countBits(const uint8_t value) const; protected: FS _fs; String _uri; String _path; String _default_file; String _cache_control; String _last_modified; AwsTemplateProcessor _callback; bool _isDir; bool _gzipFirst; uint8_t _gzipStats; public: AsyncStaticWebHandler(const char* uri, FS& fs, const char* path, const char* cache_control); virtual bool canHandle(AsyncWebServerRequest *request) override final; virtual void handleRequest(AsyncWebServerRequest *request) override final; AsyncStaticWebHandler& setIsDir(bool isDir); AsyncStaticWebHandler& setDefaultFile(const char* filename); AsyncStaticWebHandler& setCacheControl(const char* cache_control); AsyncStaticWebHandler& setLastModified(const char* last_modified); AsyncStaticWebHandler& setLastModified(struct tm* last_modified); #ifdef ESP8266 AsyncStaticWebHandler& setLastModified(time_t last_modified); AsyncStaticWebHandler& setLastModified(); //sets to current time. Make sure sntp is runing and time is updated #endif AsyncStaticWebHandler& setTemplateProcessor(AwsTemplateProcessor newCallback) {_callback = newCallback; return *this;} }; class AsyncCallbackWebHandler: public AsyncWebHandler { private: protected: String _uri; WebRequestMethodComposite _method; ArRequestHandlerFunction _onRequest; ArUploadHandlerFunction _onUpload; ArBodyHandlerFunction _onBody; bool _isRegex; public: AsyncCallbackWebHandler() : _uri(), _method(HTTP_ANY), _onRequest(NULL), _onUpload(NULL), _onBody(NULL), _isRegex(false) {} void setUri(const String& uri){ _uri = uri; _isRegex = uri.startsWith("^") && uri.endsWith("$"); } void setMethod(WebRequestMethodComposite method){ _method = method; } void onRequest(ArRequestHandlerFunction fn){ _onRequest = fn; } void onUpload(ArUploadHandlerFunction fn){ _onUpload = fn; } void onBody(ArBodyHandlerFunction fn){ _onBody = fn; } virtual bool canHandle(AsyncWebServerRequest *request) override final{ if(!_onRequest) return false; if(!(_method & request->method())) return false; #ifdef ASYNCWEBSERVER_REGEX if (_isRegex) { std::regex pattern(_uri.c_str()); std::smatch matches; std::string s(request->url().c_str()); if(std::regex_search(s, matches, pattern)) { for (size_t i = 1; i < matches.size(); ++i) { // start from 1 request->_addPathParam(matches[i].str().c_str()); } } else { return false; } } else #endif if (_uri.length() && _uri.startsWith("/*.")) { String uriTemplate = String (_uri); uriTemplate = uriTemplate.substring(uriTemplate.lastIndexOf(".")); if (!request->url().endsWith(uriTemplate)) return false; } else if (_uri.length() && _uri.endsWith("*")) { String uriTemplate = String(_uri); uriTemplate = uriTemplate.substring(0, uriTemplate.length() - 1); if (!request->url().startsWith(uriTemplate)) return false; } else if(_uri.length() && (_uri != request->url() && !request->url().startsWith(_uri+"/"))) return false; request->addInterestingHeader("ANY"); return true; } virtual void handleRequest(AsyncWebServerRequest *request) override final { if((_username != "" && _password != "") && !request->authenticate(_username.c_str(), _password.c_str())) return request->requestAuthentication(); if(_onRequest) _onRequest(request); else request->send(500); } virtual void handleUpload(AsyncWebServerRequest *request, const String& filename, size_t index, uint8_t *data, size_t len, bool final) override final { if((_username != "" && _password != "") && !request->authenticate(_username.c_str(), _password.c_str())) return request->requestAuthentication(); if(_onUpload) _onUpload(request, filename, index, data, len, final); } virtual void handleBody(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) override final { if((_username != "" && _password != "") && !request->authenticate(_username.c_str(), _password.c_str())) return request->requestAuthentication(); if(_onBody) _onBody(request, data, len, index, total); } virtual bool isRequestHandlerTrivial() override final {return _onRequest ? false : true;} }; #endif /* ASYNCWEBSERVERHANDLERIMPL_H_ */ ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/WebHandlers.cpp ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "ESPAsyncWebServer.h" #include "WebHandlerImpl.h" AsyncStaticWebHandler::AsyncStaticWebHandler(const char* uri, FS& fs, const char* path, const char* cache_control) : _fs(fs), _uri(uri), _path(path), _default_file("index.htm"), _cache_control(cache_control), _last_modified(""), _callback(nullptr) { // Ensure leading '/' if (_uri.length() == 0 || _uri[0] != '/') _uri = "/" + _uri; if (_path.length() == 0 || _path[0] != '/') _path = "/" + _path; // If path ends with '/' we assume a hint that this is a directory to improve performance. // However - if it does not end with '/' we, can't assume a file, path can still be a directory. _isDir = _path[_path.length()-1] == '/'; // Remove the trailing '/' so we can handle default file // Notice that root will be "" not "/" if (_uri[_uri.length()-1] == '/') _uri = _uri.substring(0, _uri.length()-1); if (_path[_path.length()-1] == '/') _path = _path.substring(0, _path.length()-1); // Reset stats _gzipFirst = false; _gzipStats = 0xF8; } AsyncStaticWebHandler& AsyncStaticWebHandler::setIsDir(bool isDir){ _isDir = isDir; return *this; } AsyncStaticWebHandler& AsyncStaticWebHandler::setDefaultFile(const char* filename){ _default_file = String(filename); return *this; } AsyncStaticWebHandler& AsyncStaticWebHandler::setCacheControl(const char* cache_control){ _cache_control = String(cache_control); return *this; } AsyncStaticWebHandler& AsyncStaticWebHandler::setLastModified(const char* last_modified){ _last_modified = String(last_modified); return *this; } AsyncStaticWebHandler& AsyncStaticWebHandler::setLastModified(struct tm* last_modified){ char result[30]; strftime (result,30,"%a, %d %b %Y %H:%M:%S %Z", last_modified); return setLastModified((const char *)result); } #ifdef ESP8266 AsyncStaticWebHandler& AsyncStaticWebHandler::setLastModified(time_t last_modified){ return setLastModified((struct tm *)gmtime(&last_modified)); } AsyncStaticWebHandler& AsyncStaticWebHandler::setLastModified(){ time_t last_modified; if(time(&last_modified) == 0) //time is not yet set return *this; return setLastModified(last_modified); } #endif bool AsyncStaticWebHandler::canHandle(AsyncWebServerRequest *request){ if(request->method() != HTTP_GET || !request->url().startsWith(_uri) || !request->isExpectedRequestedConnType(RCT_DEFAULT, RCT_HTTP) ){ return false; } if (_getFile(request)) { // We interested in "If-Modified-Since" header to check if file was modified if (_last_modified.length()) request->addInterestingHeader("If-Modified-Since"); if(_cache_control.length()) request->addInterestingHeader("If-None-Match"); DEBUGF("[AsyncStaticWebHandler::canHandle] TRUE\n"); return true; } return false; } bool AsyncStaticWebHandler::_getFile(AsyncWebServerRequest *request) { // Remove the found uri String path = request->url().substring(_uri.length()); // We can skip the file check and look for default if request is to the root of a directory or that request path ends with '/' bool canSkipFileCheck = (_isDir && path.length() == 0) || (path.length() && path[path.length()-1] == '/'); path = _path + path; // Do we have a file or .gz file if (!canSkipFileCheck && _fileExists(request, path)) return true; // Can't handle if not default file if (_default_file.length() == 0) return false; // Try to add default file, ensure there is a trailing '/' ot the path. if (path.length() == 0 || path[path.length()-1] != '/') path += "/"; path += _default_file; return _fileExists(request, path); } #ifdef ESP32 #define FILE_IS_REAL(f) (f == true && !f.isDirectory()) #else #define FILE_IS_REAL(f) (f == true) #endif bool AsyncStaticWebHandler::_fileExists(AsyncWebServerRequest *request, const String& path) { bool fileFound = false; bool gzipFound = false; String gzip = path + ".gz"; if (_gzipFirst) { request->_tempFile = _fs.open(gzip, "r"); gzipFound = FILE_IS_REAL(request->_tempFile); if (!gzipFound){ request->_tempFile = _fs.open(path, "r"); fileFound = FILE_IS_REAL(request->_tempFile); } } else { request->_tempFile = _fs.open(path, "r"); fileFound = FILE_IS_REAL(request->_tempFile); if (!fileFound){ request->_tempFile = _fs.open(gzip, "r"); gzipFound = FILE_IS_REAL(request->_tempFile); } } bool found = fileFound || gzipFound; if (found) { // Extract the file name from the path and keep it in _tempObject size_t pathLen = path.length(); char * _tempPath = (char*)malloc(pathLen+1); snprintf(_tempPath, pathLen+1, "%s", path.c_str()); request->_tempObject = (void*)_tempPath; // Calculate gzip statistic _gzipStats = (_gzipStats << 1) + (gzipFound ? 1 : 0); if (_gzipStats == 0x00) _gzipFirst = false; // All files are not gzip else if (_gzipStats == 0xFF) _gzipFirst = true; // All files are gzip else _gzipFirst = _countBits(_gzipStats) > 4; // IF we have more gzip files - try gzip first } return found; } uint8_t AsyncStaticWebHandler::_countBits(const uint8_t value) const { uint8_t w = value; uint8_t n; for (n=0; w!=0; n++) w&=w-1; return n; } void AsyncStaticWebHandler::handleRequest(AsyncWebServerRequest *request) { // Get the filename from request->_tempObject and free it String filename = String((char*)request->_tempObject); free(request->_tempObject); request->_tempObject = NULL; if((_username != "" && _password != "") && !request->authenticate(_username.c_str(), _password.c_str())) return request->requestAuthentication(); if (request->_tempFile == true) { String etag = String(request->_tempFile.size()); if (_last_modified.length() && _last_modified == request->header("If-Modified-Since")) { request->_tempFile.close(); request->send(304); // Not modified } else if (_cache_control.length() && request->hasHeader("If-None-Match") && request->header("If-None-Match").equals(etag)) { request->_tempFile.close(); AsyncWebServerResponse * response = new AsyncBasicResponse(304); // Not modified response->addHeader("Cache-Control", _cache_control); response->addHeader("ETag", etag); request->send(response); } else { AsyncWebServerResponse * response = new AsyncFileResponse(request->_tempFile, filename, String(), false, _callback); if (_last_modified.length()) response->addHeader("Last-Modified", _last_modified); if (_cache_control.length()){ response->addHeader("Cache-Control", _cache_control); response->addHeader("ETag", etag); } request->send(response); } } else { request->send(404); } } ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/WebRequest.cpp ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "ESPAsyncWebServer.h" #include "WebResponseImpl.h" #include "WebAuthentication.h" #ifndef ESP8266 #define os_strlen strlen #endif static const String SharedEmptyString = String(); #define __is_param_char(c) ((c) && ((c) != '{') && ((c) != '[') && ((c) != '&') && ((c) != '=')) enum { PARSE_REQ_START, PARSE_REQ_HEADERS, PARSE_REQ_BODY, PARSE_REQ_END, PARSE_REQ_FAIL }; AsyncWebServerRequest::AsyncWebServerRequest(AsyncWebServer* s, AsyncClient* c) : _client(c) , _server(s) , _handler(NULL) , _response(NULL) , _temp() , _parseState(0) , _version(0) , _method(HTTP_ANY) , _url() , _host() , _contentType() , _boundary() , _authorization() , _reqconntype(RCT_HTTP) , _isDigest(false) , _isMultipart(false) , _isPlainPost(false) , _expectingContinue(false) , _contentLength(0) , _parsedLength(0) , _headers(LinkedList([](AsyncWebHeader *h){ delete h; })) , _params(LinkedList([](AsyncWebParameter *p){ delete p; })) , _pathParams(LinkedList([](String *p){ delete p; })) , _multiParseState(0) , _boundaryPosition(0) , _itemStartIndex(0) , _itemSize(0) , _itemName() , _itemFilename() , _itemType() , _itemValue() , _itemBuffer(0) , _itemBufferIndex(0) , _itemIsFile(false) , _tempObject(NULL) { c->onError([](void *r, AsyncClient* c, int8_t error){ (void)c; AsyncWebServerRequest *req = (AsyncWebServerRequest*)r; req->_onError(error); }, this); c->onAck([](void *r, AsyncClient* c, size_t len, uint32_t time){ (void)c; AsyncWebServerRequest *req = (AsyncWebServerRequest*)r; req->_onAck(len, time); }, this); c->onDisconnect([](void *r, AsyncClient* c){ AsyncWebServerRequest *req = (AsyncWebServerRequest*)r; req->_onDisconnect(); delete c; }, this); c->onTimeout([](void *r, AsyncClient* c, uint32_t time){ (void)c; AsyncWebServerRequest *req = (AsyncWebServerRequest*)r; req->_onTimeout(time); }, this); c->onData([](void *r, AsyncClient* c, void *buf, size_t len){ (void)c; AsyncWebServerRequest *req = (AsyncWebServerRequest*)r; req->_onData(buf, len); }, this); c->onPoll([](void *r, AsyncClient* c){ (void)c; AsyncWebServerRequest *req = ( AsyncWebServerRequest*)r; req->_onPoll(); }, this); } AsyncWebServerRequest::~AsyncWebServerRequest(){ _headers.free(); _params.free(); _pathParams.free(); _interestingHeaders.free(); if(_response != NULL){ delete _response; } if(_tempObject != NULL){ free(_tempObject); } if(_tempFile){ _tempFile.close(); } } void AsyncWebServerRequest::_onData(void *buf, size_t len){ size_t i = 0; while (true) { if(_parseState < PARSE_REQ_BODY){ // Find new line in buf char *str = (char*)buf; for (i = 0; i < len; i++) { if (str[i] == '\n') { break; } } if (i == len) { // No new line, just add the buffer in _temp char ch = str[len-1]; str[len-1] = 0; _temp.reserve(_temp.length()+len); _temp.concat(str); _temp.concat(ch); } else { // Found new line - extract it and parse str[i] = 0; // Terminate the string at the end of the line. _temp.concat(str); _temp.trim(); _parseLine(); if (++i < len) { // Still have more buffer to process buf = str+i; len-= i; continue; } } } else if(_parseState == PARSE_REQ_BODY){ // A handler should be already attached at this point in _parseLine function. // If handler does nothing (_onRequest is NULL), we don't need to really parse the body. const bool needParse = _handler && !_handler->isRequestHandlerTrivial(); if(_isMultipart){ if(needParse){ size_t i; for(i=0; i end) equal = end; String name = params.substring(start, equal); String value = equal + 1 < end ? params.substring(equal + 1, end) : String(); _addParam(new AsyncWebParameter(urlDecode(name), urlDecode(value))); start = end + 1; } } bool AsyncWebServerRequest::_parseReqHead(){ // Split the head into method, url and version int index = _temp.indexOf(' '); String m = _temp.substring(0, index); index = _temp.indexOf(' ', index+1); String u = _temp.substring(m.length()+1, index); _temp = _temp.substring(index+1); if(m == "GET"){ _method = HTTP_GET; } else if(m == "POST"){ _method = HTTP_POST; } else if(m == "DELETE"){ _method = HTTP_DELETE; } else if(m == "PUT"){ _method = HTTP_PUT; } else if(m == "PATCH"){ _method = HTTP_PATCH; } else if(m == "HEAD"){ _method = HTTP_HEAD; } else if(m == "OPTIONS"){ _method = HTTP_OPTIONS; } String g = String(); index = u.indexOf('?'); if(index > 0){ g = u.substring(index +1); u = u.substring(0, index); } _url = urlDecode(u); _addGetParams(g); if(!_temp.startsWith("HTTP/1.0")) _version = 1; _temp = String(); return true; } bool strContains(String src, String find, bool mindcase = true) { int pos=0, i=0; const int slen = src.length(); const int flen = find.length(); if (slen < flen) return false; while (pos <= (slen - flen)) { for (i=0; i < flen; i++) { if (mindcase) { if (src[pos+i] != find[i]) i = flen + 1; // no match } else if (tolower(src[pos+i]) != tolower(find[i])) i = flen + 1; // no match } if (i == flen) return true; pos++; } return false; } bool AsyncWebServerRequest::_parseReqHeader(){ int index = _temp.indexOf(':'); if(index){ String name = _temp.substring(0, index); String value = _temp.substring(index + 2); if(name.equalsIgnoreCase("Host")){ _host = value; } else if(name.equalsIgnoreCase("Content-Type")){ _contentType = value.substring(0, value.indexOf(';')); if (value.startsWith("multipart/")){ _boundary = value.substring(value.indexOf('=')+1); _boundary.replace("\"",""); _isMultipart = true; } } else if(name.equalsIgnoreCase("Content-Length")){ _contentLength = atoi(value.c_str()); } else if(name.equalsIgnoreCase("Expect") && value == "100-continue"){ _expectingContinue = true; } else if(name.equalsIgnoreCase("Authorization")){ if(value.length() > 5 && value.substring(0,5).equalsIgnoreCase("Basic")){ _authorization = value.substring(6); } else if(value.length() > 6 && value.substring(0,6).equalsIgnoreCase("Digest")){ _isDigest = true; _authorization = value.substring(7); } } else { if(name.equalsIgnoreCase("Upgrade") && value.equalsIgnoreCase("websocket")){ // WebSocket request can be uniquely identified by header: [Upgrade: websocket] _reqconntype = RCT_WS; } else { if(name.equalsIgnoreCase("Accept") && strContains(value, "text/event-stream", false)){ // WebEvent request can be uniquely identified by header: [Accept: text/event-stream] _reqconntype = RCT_EVENT; } } } _headers.add(new AsyncWebHeader(name, value)); } _temp = String(); return true; } void AsyncWebServerRequest::_parsePlainPostChar(uint8_t data){ if(data && (char)data != '&') _temp += (char)data; if(!data || (char)data == '&' || _parsedLength == _contentLength){ String name = "body"; String value = _temp; if(!_temp.startsWith("{") && !_temp.startsWith("[") && _temp.indexOf('=') > 0){ name = _temp.substring(0, _temp.indexOf('=')); value = _temp.substring(_temp.indexOf('=') + 1); } _addParam(new AsyncWebParameter(urlDecode(name), urlDecode(value), true)); _temp = String(); } } void AsyncWebServerRequest::_handleUploadByte(uint8_t data, bool last){ _itemBuffer[_itemBufferIndex++] = data; if(last || _itemBufferIndex == 1460){ //check if authenticated before calling the upload if(_handler) _handler->handleUpload(this, _itemFilename, _itemSize - _itemBufferIndex, _itemBuffer, _itemBufferIndex, false); _itemBufferIndex = 0; } } enum { EXPECT_BOUNDARY, PARSE_HEADERS, WAIT_FOR_RETURN1, EXPECT_FEED1, EXPECT_DASH1, EXPECT_DASH2, BOUNDARY_OR_DATA, DASH3_OR_RETURN2, EXPECT_FEED2, PARSING_FINISHED, PARSE_ERROR }; void AsyncWebServerRequest::_parseMultipartPostByte(uint8_t data, bool last){ #define itemWriteByte(b) do { _itemSize++; if(_itemIsFile) _handleUploadByte(b, last); else _itemValue+=(char)(b); } while(0) if(!_parsedLength){ _multiParseState = EXPECT_BOUNDARY; _temp = String(); _itemName = String(); _itemFilename = String(); _itemType = String(); } if(_multiParseState == WAIT_FOR_RETURN1){ if(data != '\r'){ itemWriteByte(data); } else { _multiParseState = EXPECT_FEED1; } } else if(_multiParseState == EXPECT_BOUNDARY){ if(_parsedLength < 2 && data != '-'){ _multiParseState = PARSE_ERROR; return; } else if(_parsedLength - 2 < _boundary.length() && _boundary.c_str()[_parsedLength - 2] != data){ _multiParseState = PARSE_ERROR; return; } else if(_parsedLength - 2 == _boundary.length() && data != '\r'){ _multiParseState = PARSE_ERROR; return; } else if(_parsedLength - 3 == _boundary.length()){ if(data != '\n'){ _multiParseState = PARSE_ERROR; return; } _multiParseState = PARSE_HEADERS; _itemIsFile = false; } } else if(_multiParseState == PARSE_HEADERS){ if((char)data != '\r' && (char)data != '\n') _temp += (char)data; if((char)data == '\n'){ if(_temp.length()){ if(_temp.length() > 12 && _temp.substring(0, 12).equalsIgnoreCase("Content-Type")){ _itemType = _temp.substring(14); _itemIsFile = true; } else if(_temp.length() > 19 && _temp.substring(0, 19).equalsIgnoreCase("Content-Disposition")){ _temp = _temp.substring(_temp.indexOf(';') + 2); while(_temp.indexOf(';') > 0){ String name = _temp.substring(0, _temp.indexOf('=')); String nameVal = _temp.substring(_temp.indexOf('=') + 2, _temp.indexOf(';') - 1); if(name == "name"){ _itemName = nameVal; } else if(name == "filename"){ _itemFilename = nameVal; _itemIsFile = true; } _temp = _temp.substring(_temp.indexOf(';') + 2); } String name = _temp.substring(0, _temp.indexOf('=')); String nameVal = _temp.substring(_temp.indexOf('=') + 2, _temp.length() - 1); if(name == "name"){ _itemName = nameVal; } else if(name == "filename"){ _itemFilename = nameVal; _itemIsFile = true; } } _temp = String(); } else { _multiParseState = WAIT_FOR_RETURN1; //value starts from here _itemSize = 0; _itemStartIndex = _parsedLength; _itemValue = String(); if(_itemIsFile){ if(_itemBuffer) free(_itemBuffer); _itemBuffer = (uint8_t*)malloc(1460); if(_itemBuffer == NULL){ _multiParseState = PARSE_ERROR; return; } _itemBufferIndex = 0; } } } } else if(_multiParseState == EXPECT_FEED1){ if(data != '\n'){ _multiParseState = WAIT_FOR_RETURN1; itemWriteByte('\r'); _parseMultipartPostByte(data, last); } else { _multiParseState = EXPECT_DASH1; } } else if(_multiParseState == EXPECT_DASH1){ if(data != '-'){ _multiParseState = WAIT_FOR_RETURN1; itemWriteByte('\r'); itemWriteByte('\n'); _parseMultipartPostByte(data, last); } else { _multiParseState = EXPECT_DASH2; } } else if(_multiParseState == EXPECT_DASH2){ if(data != '-'){ _multiParseState = WAIT_FOR_RETURN1; itemWriteByte('\r'); itemWriteByte('\n'); itemWriteByte('-'); _parseMultipartPostByte(data, last); } else { _multiParseState = BOUNDARY_OR_DATA; _boundaryPosition = 0; } } else if(_multiParseState == BOUNDARY_OR_DATA){ if(_boundaryPosition < _boundary.length() && _boundary.c_str()[_boundaryPosition] != data){ _multiParseState = WAIT_FOR_RETURN1; itemWriteByte('\r'); itemWriteByte('\n'); itemWriteByte('-'); itemWriteByte('-'); uint8_t i; for(i=0; i<_boundaryPosition; i++) itemWriteByte(_boundary.c_str()[i]); _parseMultipartPostByte(data, last); } else if(_boundaryPosition == _boundary.length() - 1){ _multiParseState = DASH3_OR_RETURN2; if(!_itemIsFile){ _addParam(new AsyncWebParameter(_itemName, _itemValue, true)); } else { if(_itemSize){ //check if authenticated before calling the upload if(_handler) _handler->handleUpload(this, _itemFilename, _itemSize - _itemBufferIndex, _itemBuffer, _itemBufferIndex, true); _itemBufferIndex = 0; _addParam(new AsyncWebParameter(_itemName, _itemFilename, true, true, _itemSize)); } free(_itemBuffer); _itemBuffer = NULL; } } else { _boundaryPosition++; } } else if(_multiParseState == DASH3_OR_RETURN2){ if(data == '-' && (_contentLength - _parsedLength - 4) != 0){ //os_printf("ERROR: The parser got to the end of the POST but is expecting %u bytes more!\nDrop an issue so we can have more info on the matter!\n", _contentLength - _parsedLength - 4); _contentLength = _parsedLength + 4;//lets close the request gracefully } if(data == '\r'){ _multiParseState = EXPECT_FEED2; } else if(data == '-' && _contentLength == (_parsedLength + 4)){ _multiParseState = PARSING_FINISHED; } else { _multiParseState = WAIT_FOR_RETURN1; itemWriteByte('\r'); itemWriteByte('\n'); itemWriteByte('-'); itemWriteByte('-'); uint8_t i; for(i=0; i<_boundary.length(); i++) itemWriteByte(_boundary.c_str()[i]); _parseMultipartPostByte(data, last); } } else if(_multiParseState == EXPECT_FEED2){ if(data == '\n'){ _multiParseState = PARSE_HEADERS; _itemIsFile = false; } else { _multiParseState = WAIT_FOR_RETURN1; itemWriteByte('\r'); itemWriteByte('\n'); itemWriteByte('-'); itemWriteByte('-'); uint8_t i; for(i=0; i<_boundary.length(); i++) itemWriteByte(_boundary.c_str()[i]); itemWriteByte('\r'); _parseMultipartPostByte(data, last); } } } void AsyncWebServerRequest::_parseLine(){ if(_parseState == PARSE_REQ_START){ if(!_temp.length()){ _parseState = PARSE_REQ_FAIL; _client->close(); } else { _parseReqHead(); _parseState = PARSE_REQ_HEADERS; } return; } if(_parseState == PARSE_REQ_HEADERS){ if(!_temp.length()){ //end of headers _server->_rewriteRequest(this); _server->_attachHandler(this); _removeNotInterestingHeaders(); if(_expectingContinue){ const char * response = "HTTP/1.1 100 Continue\r\n\r\n"; _client->write(response, os_strlen(response)); } //check handler for authentication if(_contentLength){ _parseState = PARSE_REQ_BODY; } else { _parseState = PARSE_REQ_END; if(_handler) _handler->handleRequest(this); else send(501); } } else _parseReqHeader(); } } size_t AsyncWebServerRequest::headers() const{ return _headers.length(); } bool AsyncWebServerRequest::hasHeader(const String& name) const { for(const auto& h: _headers){ if(h->name().equalsIgnoreCase(name)){ return true; } } return false; } bool AsyncWebServerRequest::hasHeader(const __FlashStringHelper * data) const { PGM_P p = reinterpret_cast(data); size_t n = 0; while (1) { if (pgm_read_byte(p+n) == 0) break; n += 1; } char * name = (char*) malloc(n+1); name[n] = 0; if (name) { for(size_t b=0; bname().equalsIgnoreCase(name)){ return h; } } return nullptr; } AsyncWebHeader* AsyncWebServerRequest::getHeader(const __FlashStringHelper * data) const { PGM_P p = reinterpret_cast(data); size_t n = strlen_P(p); char * name = (char*) malloc(n+1); if (name) { strcpy_P(name, p); AsyncWebHeader* result = getHeader( String(name)); free(name); return result; } else { return nullptr; } } AsyncWebHeader* AsyncWebServerRequest::getHeader(size_t num) const { auto header = _headers.nth(num); return header ? *header : nullptr; } size_t AsyncWebServerRequest::params() const { return _params.length(); } bool AsyncWebServerRequest::hasParam(const String& name, bool post, bool file) const { for(const auto& p: _params){ if(p->name() == name && p->isPost() == post && p->isFile() == file){ return true; } } return false; } bool AsyncWebServerRequest::hasParam(const __FlashStringHelper * data, bool post, bool file) const { PGM_P p = reinterpret_cast(data); size_t n = strlen_P(p); char * name = (char*) malloc(n+1); name[n] = 0; if (name) { strcpy_P(name,p); bool result = hasParam( name, post, file); free(name); return result; } else { return false; } } AsyncWebParameter* AsyncWebServerRequest::getParam(const String& name, bool post, bool file) const { for(const auto& p: _params){ if(p->name() == name && p->isPost() == post && p->isFile() == file){ return p; } } return nullptr; } AsyncWebParameter* AsyncWebServerRequest::getParam(const __FlashStringHelper * data, bool post, bool file) const { PGM_P p = reinterpret_cast(data); size_t n = strlen_P(p); char * name = (char*) malloc(n+1); if (name) { strcpy_P(name, p); AsyncWebParameter* result = getParam(name, post, file); free(name); return result; } else { return nullptr; } } AsyncWebParameter* AsyncWebServerRequest::getParam(size_t num) const { auto param = _params.nth(num); return param ? *param : nullptr; } void AsyncWebServerRequest::addInterestingHeader(const String& name){ if(!_interestingHeaders.containsIgnoreCase(name)) _interestingHeaders.add(name); } void AsyncWebServerRequest::send(AsyncWebServerResponse *response){ _response = response; if(_response == NULL){ _client->close(true); _onDisconnect(); return; } if(!_response->_sourceValid()){ delete response; _response = NULL; send(500); } else { _client->setRxTimeout(0); _response->_respond(this); } } AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(int code, const String& contentType, const String& content){ return new AsyncBasicResponse(code, contentType, content); } AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(FS &fs, const String& path, const String& contentType, bool download, AwsTemplateProcessor callback){ if(fs.exists(path) || (!download && fs.exists(path+".gz"))) return new AsyncFileResponse(fs, path, contentType, download, callback); return NULL; } AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(File content, const String& path, const String& contentType, bool download, AwsTemplateProcessor callback){ if(content == true) return new AsyncFileResponse(content, path, contentType, download, callback); return NULL; } AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(Stream &stream, const String& contentType, size_t len, AwsTemplateProcessor callback){ return new AsyncStreamResponse(stream, contentType, len, callback); } AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(const String& contentType, size_t len, AwsResponseFiller callback, AwsTemplateProcessor templateCallback){ return new AsyncCallbackResponse(contentType, len, callback, templateCallback); } AsyncWebServerResponse * AsyncWebServerRequest::beginChunkedResponse(const String& contentType, AwsResponseFiller callback, AwsTemplateProcessor templateCallback){ if(_version) return new AsyncChunkedResponse(contentType, callback, templateCallback); return new AsyncCallbackResponse(contentType, 0, callback, templateCallback); } AsyncResponseStream * AsyncWebServerRequest::beginResponseStream(const String& contentType, size_t bufferSize){ return new AsyncResponseStream(contentType, bufferSize); } AsyncWebServerResponse * AsyncWebServerRequest::beginResponse_P(int code, const String& contentType, const uint8_t * content, size_t len, AwsTemplateProcessor callback){ return new AsyncProgmemResponse(code, contentType, content, len, callback); } AsyncWebServerResponse * AsyncWebServerRequest::beginResponse_P(int code, const String& contentType, PGM_P content, AwsTemplateProcessor callback){ return beginResponse_P(code, contentType, (const uint8_t *)content, strlen_P(content), callback); } void AsyncWebServerRequest::send(int code, const String& contentType, const String& content){ send(beginResponse(code, contentType, content)); } void AsyncWebServerRequest::send(FS &fs, const String& path, const String& contentType, bool download, AwsTemplateProcessor callback){ if(fs.exists(path) || (!download && fs.exists(path+".gz"))){ send(beginResponse(fs, path, contentType, download, callback)); } else send(404); } void AsyncWebServerRequest::send(File content, const String& path, const String& contentType, bool download, AwsTemplateProcessor callback){ if(content == true){ send(beginResponse(content, path, contentType, download, callback)); } else send(404); } void AsyncWebServerRequest::send(Stream &stream, const String& contentType, size_t len, AwsTemplateProcessor callback){ send(beginResponse(stream, contentType, len, callback)); } void AsyncWebServerRequest::send(const String& contentType, size_t len, AwsResponseFiller callback, AwsTemplateProcessor templateCallback){ send(beginResponse(contentType, len, callback, templateCallback)); } void AsyncWebServerRequest::sendChunked(const String& contentType, AwsResponseFiller callback, AwsTemplateProcessor templateCallback){ send(beginChunkedResponse(contentType, callback, templateCallback)); } void AsyncWebServerRequest::send_P(int code, const String& contentType, const uint8_t * content, size_t len, AwsTemplateProcessor callback){ send(beginResponse_P(code, contentType, content, len, callback)); } void AsyncWebServerRequest::send_P(int code, const String& contentType, PGM_P content, AwsTemplateProcessor callback){ send(beginResponse_P(code, contentType, content, callback)); } void AsyncWebServerRequest::redirect(const String& url){ AsyncWebServerResponse * response = beginResponse(302); response->addHeader("Location",url); send(response); } bool AsyncWebServerRequest::authenticate(const char * username, const char * password, const char * realm, bool passwordIsHash){ if(_authorization.length()){ if(_isDigest) return checkDigestAuthentication(_authorization.c_str(), methodToString(), username, password, realm, passwordIsHash, NULL, NULL, NULL); else if(!passwordIsHash) return checkBasicAuthentication(_authorization.c_str(), username, password); else return _authorization.equals(password); } return false; } bool AsyncWebServerRequest::authenticate(const char * hash){ if(!_authorization.length() || hash == NULL) return false; if(_isDigest){ String hStr = String(hash); int separator = hStr.indexOf(":"); if(separator <= 0) return false; String username = hStr.substring(0, separator); hStr = hStr.substring(separator + 1); separator = hStr.indexOf(":"); if(separator <= 0) return false; String realm = hStr.substring(0, separator); hStr = hStr.substring(separator + 1); return checkDigestAuthentication(_authorization.c_str(), methodToString(), username.c_str(), hStr.c_str(), realm.c_str(), true, NULL, NULL, NULL); } return (_authorization.equals(hash)); } void AsyncWebServerRequest::requestAuthentication(const char * realm, bool isDigest){ AsyncWebServerResponse * r = beginResponse(401); if(!isDigest && realm == NULL){ r->addHeader("WWW-Authenticate", "Basic realm=\"Login Required\""); } else if(!isDigest){ String header = "Basic realm=\""; header.concat(realm); header.concat("\""); r->addHeader("WWW-Authenticate", header); } else { String header = "Digest "; header.concat(requestDigestAuthentication(realm)); r->addHeader("WWW-Authenticate", header); } send(r); } bool AsyncWebServerRequest::hasArg(const char* name) const { for(const auto& arg: _params){ if(arg->name() == name){ return true; } } return false; } bool AsyncWebServerRequest::hasArg(const __FlashStringHelper * data) const { PGM_P p = reinterpret_cast(data); size_t n = strlen_P(p); char * name = (char*) malloc(n+1); if (name) { strcpy_P(name, p); bool result = hasArg( name ); free(name); return result; } else { return false; } } const String& AsyncWebServerRequest::arg(const String& name) const { for(const auto& arg: _params){ if(arg->name() == name){ return arg->value(); } } return SharedEmptyString; } const String& AsyncWebServerRequest::arg(const __FlashStringHelper * data) const { PGM_P p = reinterpret_cast(data); size_t n = strlen_P(p); char * name = (char*) malloc(n+1); if (name) { strcpy_P(name, p); const String & result = arg( String(name) ); free(name); return result; } else { return SharedEmptyString; } } const String& AsyncWebServerRequest::arg(size_t i) const { return getParam(i)->value(); } const String& AsyncWebServerRequest::argName(size_t i) const { return getParam(i)->name(); } const String& AsyncWebServerRequest::pathArg(size_t i) const { auto param = _pathParams.nth(i); return param ? **param : SharedEmptyString; } const String& AsyncWebServerRequest::header(const char* name) const { AsyncWebHeader* h = getHeader(String(name)); return h ? h->value() : SharedEmptyString; } const String& AsyncWebServerRequest::header(const __FlashStringHelper * data) const { PGM_P p = reinterpret_cast(data); size_t n = strlen_P(p); char * name = (char*) malloc(n+1); if (name) { strcpy_P(name, p); const String & result = header( (const char *)name ); free(name); return result; } else { return SharedEmptyString; } }; const String& AsyncWebServerRequest::header(size_t i) const { AsyncWebHeader* h = getHeader(i); return h ? h->value() : SharedEmptyString; } const String& AsyncWebServerRequest::headerName(size_t i) const { AsyncWebHeader* h = getHeader(i); return h ? h->name() : SharedEmptyString; } String AsyncWebServerRequest::urlDecode(const String& text) const { char temp[] = "0x00"; unsigned int len = text.length(); unsigned int i = 0; String decoded = String(); decoded.reserve(len); // Allocate the string internal buffer - never longer from source text while (i < len){ char decodedChar; char encodedChar = text.charAt(i++); if ((encodedChar == '%') && (i + 1 < len)){ temp[2] = text.charAt(i++); temp[3] = text.charAt(i++); decodedChar = strtol(temp, NULL, 16); } else if (encodedChar == '+') { decodedChar = ' '; } else { decodedChar = encodedChar; // normal ascii char } decoded.concat(decodedChar); } return decoded; } const char * AsyncWebServerRequest::methodToString() const { if(_method == HTTP_ANY) return "ANY"; else if(_method & HTTP_GET) return "GET"; else if(_method & HTTP_POST) return "POST"; else if(_method & HTTP_DELETE) return "DELETE"; else if(_method & HTTP_PUT) return "PUT"; else if(_method & HTTP_PATCH) return "PATCH"; else if(_method & HTTP_HEAD) return "HEAD"; else if(_method & HTTP_OPTIONS) return "OPTIONS"; return "UNKNOWN"; } const char *AsyncWebServerRequest::requestedConnTypeToString() const { switch (_reqconntype) { case RCT_NOT_USED: return "RCT_NOT_USED"; case RCT_DEFAULT: return "RCT_DEFAULT"; case RCT_HTTP: return "RCT_HTTP"; case RCT_WS: return "RCT_WS"; case RCT_EVENT: return "RCT_EVENT"; default: return "ERROR"; } } bool AsyncWebServerRequest::isExpectedRequestedConnType(RequestedConnectionType erct1, RequestedConnectionType erct2, RequestedConnectionType erct3) { bool res = false; if ((erct1 != RCT_NOT_USED) && (erct1 == _reqconntype)) res = true; if ((erct2 != RCT_NOT_USED) && (erct2 == _reqconntype)) res = true; if ((erct3 != RCT_NOT_USED) && (erct3 == _reqconntype)) res = true; return res; } ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/WebResponseImpl.h ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef ASYNCWEBSERVERRESPONSEIMPL_H_ #define ASYNCWEBSERVERRESPONSEIMPL_H_ #ifdef Arduino_h // arduino is not compatible with std::vector #undef min #undef max #endif #include // It is possible to restore these defines, but one can use _min and _max instead. Or std::min, std::max. class AsyncBasicResponse: public AsyncWebServerResponse { private: String _content; public: AsyncBasicResponse(int code, const String& contentType=String(), const String& content=String()); void _respond(AsyncWebServerRequest *request); size_t _ack(AsyncWebServerRequest *request, size_t len, uint32_t time); bool _sourceValid() const { return true; } }; class AsyncAbstractResponse: public AsyncWebServerResponse { private: String _head; // Data is inserted into cache at begin(). // This is inefficient with vector, but if we use some other container, // we won't be able to access it as contiguous array of bytes when reading from it, // so by gaining performance in one place, we'll lose it in another. std::vector _cache; size_t _readDataFromCacheOrContent(uint8_t* data, const size_t len); size_t _fillBufferAndProcessTemplates(uint8_t* buf, size_t maxLen); protected: AwsTemplateProcessor _callback; public: AsyncAbstractResponse(AwsTemplateProcessor callback=nullptr); void _respond(AsyncWebServerRequest *request); size_t _ack(AsyncWebServerRequest *request, size_t len, uint32_t time); bool _sourceValid() const { return false; } virtual size_t _fillBuffer(uint8_t *buf __attribute__((unused)), size_t maxLen __attribute__((unused))) { return 0; } }; #ifndef TEMPLATE_PLACEHOLDER #define TEMPLATE_PLACEHOLDER '%' #endif #define TEMPLATE_PARAM_NAME_LENGTH 32 class AsyncFileResponse: public AsyncAbstractResponse { using File = fs::File; using FS = fs::FS; private: File _content; String _path; void _setContentType(const String& path); public: AsyncFileResponse(FS &fs, const String& path, const String& contentType=String(), bool download=false, AwsTemplateProcessor callback=nullptr); AsyncFileResponse(File content, const String& path, const String& contentType=String(), bool download=false, AwsTemplateProcessor callback=nullptr); ~AsyncFileResponse(); bool _sourceValid() const { return !!(_content); } virtual size_t _fillBuffer(uint8_t *buf, size_t maxLen) override; }; class AsyncStreamResponse: public AsyncAbstractResponse { private: Stream *_content; public: AsyncStreamResponse(Stream &stream, const String& contentType, size_t len, AwsTemplateProcessor callback=nullptr); bool _sourceValid() const { return !!(_content); } virtual size_t _fillBuffer(uint8_t *buf, size_t maxLen) override; }; class AsyncCallbackResponse: public AsyncAbstractResponse { private: AwsResponseFiller _content; size_t _filledLength; public: AsyncCallbackResponse(const String& contentType, size_t len, AwsResponseFiller callback, AwsTemplateProcessor templateCallback=nullptr); bool _sourceValid() const { return !!(_content); } virtual size_t _fillBuffer(uint8_t *buf, size_t maxLen) override; }; class AsyncChunkedResponse: public AsyncAbstractResponse { private: AwsResponseFiller _content; size_t _filledLength; public: AsyncChunkedResponse(const String& contentType, AwsResponseFiller callback, AwsTemplateProcessor templateCallback=nullptr); bool _sourceValid() const { return !!(_content); } virtual size_t _fillBuffer(uint8_t *buf, size_t maxLen) override; }; class AsyncProgmemResponse: public AsyncAbstractResponse { private: const uint8_t * _content; size_t _readLength; public: AsyncProgmemResponse(int code, const String& contentType, const uint8_t * content, size_t len, AwsTemplateProcessor callback=nullptr); bool _sourceValid() const { return true; } virtual size_t _fillBuffer(uint8_t *buf, size_t maxLen) override; }; class cbuf; class AsyncResponseStream: public AsyncAbstractResponse, public Print { private: cbuf *_content; public: AsyncResponseStream(const String& contentType, size_t bufferSize); ~AsyncResponseStream(); bool _sourceValid() const { return (_state < RESPONSE_END); } virtual size_t _fillBuffer(uint8_t *buf, size_t maxLen) override; size_t write(const uint8_t *data, size_t len); size_t write(uint8_t data); using Print::write; }; #endif /* ASYNCWEBSERVERRESPONSEIMPL_H_ */ ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/WebResponses.cpp ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "ESPAsyncWebServer.h" #include "WebResponseImpl.h" #include "cbuf.h" // Since ESP8266 does not link memchr by default, here's its implementation. void* memchr(void* ptr, int ch, size_t count) { unsigned char* p = static_cast(ptr); while(count--) if(*p++ == static_cast(ch)) return --p; return nullptr; } /* * Abstract Response * */ const char* AsyncWebServerResponse::_responseCodeToString(int code) { switch (code) { case 100: return "Continue"; case 101: return "Switching Protocols"; case 200: return "OK"; case 201: return "Created"; case 202: return "Accepted"; case 203: return "Non-Authoritative Information"; case 204: return "No Content"; case 205: return "Reset Content"; case 206: return "Partial Content"; case 300: return "Multiple Choices"; case 301: return "Moved Permanently"; case 302: return "Found"; case 303: return "See Other"; case 304: return "Not Modified"; case 305: return "Use Proxy"; case 307: return "Temporary Redirect"; case 400: return "Bad Request"; case 401: return "Unauthorized"; case 402: return "Payment Required"; case 403: return "Forbidden"; case 404: return "Not Found"; case 405: return "Method Not Allowed"; case 406: return "Not Acceptable"; case 407: return "Proxy Authentication Required"; case 408: return "Request Time-out"; case 409: return "Conflict"; case 410: return "Gone"; case 411: return "Length Required"; case 412: return "Precondition Failed"; case 413: return "Request Entity Too Large"; case 414: return "Request-URI Too Large"; case 415: return "Unsupported Media Type"; case 416: return "Requested range not satisfiable"; case 417: return "Expectation Failed"; case 500: return "Internal Server Error"; case 501: return "Not Implemented"; case 502: return "Bad Gateway"; case 503: return "Service Unavailable"; case 504: return "Gateway Time-out"; case 505: return "HTTP Version not supported"; default: return ""; } } AsyncWebServerResponse::AsyncWebServerResponse() : _code(0) , _headers(LinkedList([](AsyncWebHeader *h){ delete h; })) , _contentType() , _contentLength(0) , _sendContentLength(true) , _chunked(false) , _headLength(0) , _sentLength(0) , _ackedLength(0) , _writtenLength(0) , _state(RESPONSE_SETUP) { for(auto header: DefaultHeaders::Instance()) { _headers.add(new AsyncWebHeader(header->name(), header->value())); } } AsyncWebServerResponse::~AsyncWebServerResponse(){ _headers.free(); } void AsyncWebServerResponse::setCode(int code){ if(_state == RESPONSE_SETUP) _code = code; } void AsyncWebServerResponse::setContentLength(size_t len){ if(_state == RESPONSE_SETUP) _contentLength = len; } void AsyncWebServerResponse::setContentType(const String& type){ if(_state == RESPONSE_SETUP) _contentType = type; } void AsyncWebServerResponse::addHeader(const String& name, const String& value){ _headers.add(new AsyncWebHeader(name, value)); } String AsyncWebServerResponse::_assembleHead(uint8_t version){ if(version){ addHeader("Accept-Ranges","none"); if(_chunked) addHeader("Transfer-Encoding","chunked"); } String out = String(); int bufSize = 300; char buf[bufSize]; snprintf(buf, bufSize, "HTTP/1.%d %d %s\r\n", version, _code, _responseCodeToString(_code)); out.concat(buf); if(_sendContentLength) { snprintf(buf, bufSize, "Content-Length: %d\r\n", _contentLength); out.concat(buf); } if(_contentType.length()) { snprintf(buf, bufSize, "Content-Type: %s\r\n", _contentType.c_str()); out.concat(buf); } for(const auto& header: _headers){ snprintf(buf, bufSize, "%s: %s\r\n", header->name().c_str(), header->value().c_str()); out.concat(buf); } _headers.free(); out.concat("\r\n"); _headLength = out.length(); return out; } bool AsyncWebServerResponse::_started() const { return _state > RESPONSE_SETUP; } bool AsyncWebServerResponse::_finished() const { return _state > RESPONSE_WAIT_ACK; } bool AsyncWebServerResponse::_failed() const { return _state == RESPONSE_FAILED; } bool AsyncWebServerResponse::_sourceValid() const { return false; } void AsyncWebServerResponse::_respond(AsyncWebServerRequest *request){ _state = RESPONSE_END; request->client()->close(); } size_t AsyncWebServerResponse::_ack(AsyncWebServerRequest *request, size_t len, uint32_t time){ (void)request; (void)len; (void)time; return 0; } /* * String/Code Response * */ AsyncBasicResponse::AsyncBasicResponse(int code, const String& contentType, const String& content){ _code = code; _content = content; _contentType = contentType; if(_content.length()){ _contentLength = _content.length(); if(!_contentType.length()) _contentType = "text/plain"; } addHeader("Connection","close"); } void AsyncBasicResponse::_respond(AsyncWebServerRequest *request){ _state = RESPONSE_HEADERS; String out = _assembleHead(request->version()); size_t outLen = out.length(); size_t space = request->client()->space(); if(!_contentLength && space >= outLen){ _writtenLength += request->client()->write(out.c_str(), outLen); _state = RESPONSE_WAIT_ACK; } else if(_contentLength && space >= outLen + _contentLength){ out += _content; outLen += _contentLength; _writtenLength += request->client()->write(out.c_str(), outLen); _state = RESPONSE_WAIT_ACK; } else if(space && space < outLen){ String partial = out.substring(0, space); _content = out.substring(space) + _content; _contentLength += outLen - space; _writtenLength += request->client()->write(partial.c_str(), partial.length()); _state = RESPONSE_CONTENT; } else if(space > outLen && space < (outLen + _contentLength)){ size_t shift = space - outLen; outLen += shift; _sentLength += shift; out += _content.substring(0, shift); _content = _content.substring(shift); _writtenLength += request->client()->write(out.c_str(), outLen); _state = RESPONSE_CONTENT; } else { _content = out + _content; _contentLength += outLen; _state = RESPONSE_CONTENT; } } size_t AsyncBasicResponse::_ack(AsyncWebServerRequest *request, size_t len, uint32_t time){ (void)time; _ackedLength += len; if(_state == RESPONSE_CONTENT){ size_t available = _contentLength - _sentLength; size_t space = request->client()->space(); //we can fit in this packet if(space > available){ _writtenLength += request->client()->write(_content.c_str(), available); _content = String(); _state = RESPONSE_WAIT_ACK; return available; } //send some data, the rest on ack String out = _content.substring(0, space); _content = _content.substring(space); _sentLength += space; _writtenLength += request->client()->write(out.c_str(), space); return space; } else if(_state == RESPONSE_WAIT_ACK){ if(_ackedLength >= _writtenLength){ _state = RESPONSE_END; } } return 0; } /* * Abstract Response * */ AsyncAbstractResponse::AsyncAbstractResponse(AwsTemplateProcessor callback): _callback(callback) { // In case of template processing, we're unable to determine real response size if(callback) { _contentLength = 0; _sendContentLength = false; _chunked = true; } } void AsyncAbstractResponse::_respond(AsyncWebServerRequest *request){ addHeader("Connection","close"); _head = _assembleHead(request->version()); _state = RESPONSE_HEADERS; _ack(request, 0, 0); } size_t AsyncAbstractResponse::_ack(AsyncWebServerRequest *request, size_t len, uint32_t time){ (void)time; if(!_sourceValid()){ _state = RESPONSE_FAILED; request->client()->close(); return 0; } _ackedLength += len; size_t space = request->client()->space(); size_t headLen = _head.length(); if(_state == RESPONSE_HEADERS){ if(space >= headLen){ _state = RESPONSE_CONTENT; space -= headLen; } else { String out = _head.substring(0, space); _head = _head.substring(space); _writtenLength += request->client()->write(out.c_str(), out.length()); return out.length(); } } if(_state == RESPONSE_CONTENT){ size_t outLen; if(_chunked){ if(space <= 8){ return 0; } outLen = space; } else if(!_sendContentLength){ outLen = space; } else { outLen = ((_contentLength - _sentLength) > space)?space:(_contentLength - _sentLength); } uint8_t *buf = (uint8_t *)malloc(outLen+headLen); if (!buf) { // os_printf("_ack malloc %d failed\n", outLen+headLen); return 0; } if(headLen){ memcpy(buf, _head.c_str(), _head.length()); } size_t readLen = 0; if(_chunked){ // HTTP 1.1 allows leading zeros in chunk length. Or spaces may be added. // See RFC2616 sections 2, 3.6.1. readLen = _fillBufferAndProcessTemplates(buf+headLen+6, outLen - 8); if(readLen == RESPONSE_TRY_AGAIN){ free(buf); return 0; } outLen = sprintf((char*)buf+headLen, "%x", readLen) + headLen; while(outLen < headLen + 4) buf[outLen++] = ' '; buf[outLen++] = '\r'; buf[outLen++] = '\n'; outLen += readLen; buf[outLen++] = '\r'; buf[outLen++] = '\n'; } else { readLen = _fillBufferAndProcessTemplates(buf+headLen, outLen); if(readLen == RESPONSE_TRY_AGAIN){ free(buf); return 0; } outLen = readLen + headLen; } if(headLen){ _head = String(); } if(outLen){ _writtenLength += request->client()->write((const char*)buf, outLen); } if(_chunked){ _sentLength += readLen; } else { _sentLength += outLen - headLen; } free(buf); if((_chunked && readLen == 0) || (!_sendContentLength && outLen == 0) || (!_chunked && _sentLength == _contentLength)){ _state = RESPONSE_WAIT_ACK; } return outLen; } else if(_state == RESPONSE_WAIT_ACK){ if(!_sendContentLength || _ackedLength >= _writtenLength){ _state = RESPONSE_END; if(!_chunked && !_sendContentLength) request->client()->close(true); } } return 0; } size_t AsyncAbstractResponse::_readDataFromCacheOrContent(uint8_t* data, const size_t len) { // If we have something in cache, copy it to buffer const size_t readFromCache = std::min(len, _cache.size()); if(readFromCache) { memcpy(data, _cache.data(), readFromCache); _cache.erase(_cache.begin(), _cache.begin() + readFromCache); } // If we need to read more... const size_t needFromFile = len - readFromCache; const size_t readFromContent = _fillBuffer(data + readFromCache, needFromFile); return readFromCache + readFromContent; } size_t AsyncAbstractResponse::_fillBufferAndProcessTemplates(uint8_t* data, size_t len) { if(!_callback) return _fillBuffer(data, len); const size_t originalLen = len; len = _readDataFromCacheOrContent(data, len); // Now we've read 'len' bytes, either from cache or from file // Search for template placeholders uint8_t* pTemplateStart = data; while((pTemplateStart < &data[len]) && (pTemplateStart = (uint8_t*)memchr(pTemplateStart, TEMPLATE_PLACEHOLDER, &data[len - 1] - pTemplateStart + 1))) { // data[0] ... data[len - 1] uint8_t* pTemplateEnd = (pTemplateStart < &data[len - 1]) ? (uint8_t*)memchr(pTemplateStart + 1, TEMPLATE_PLACEHOLDER, &data[len - 1] - pTemplateStart) : nullptr; // temporary buffer to hold parameter name uint8_t buf[TEMPLATE_PARAM_NAME_LENGTH + 1]; String paramName; // If closing placeholder is found: if(pTemplateEnd) { // prepare argument to callback const size_t paramNameLength = std::min(sizeof(buf) - 1, (unsigned int)(pTemplateEnd - pTemplateStart - 1)); if(paramNameLength) { memcpy(buf, pTemplateStart + 1, paramNameLength); buf[paramNameLength] = 0; paramName = String(reinterpret_cast(buf)); } else { // double percent sign encountered, this is single percent sign escaped. // remove the 2nd percent sign memmove(pTemplateEnd, pTemplateEnd + 1, &data[len] - pTemplateEnd - 1); len += _readDataFromCacheOrContent(&data[len - 1], 1) - 1; ++pTemplateStart; } } else if(&data[len - 1] - pTemplateStart + 1 < TEMPLATE_PARAM_NAME_LENGTH + 2) { // closing placeholder not found, check if it's in the remaining file data memcpy(buf, pTemplateStart + 1, &data[len - 1] - pTemplateStart); const size_t readFromCacheOrContent = _readDataFromCacheOrContent(buf + (&data[len - 1] - pTemplateStart), TEMPLATE_PARAM_NAME_LENGTH + 2 - (&data[len - 1] - pTemplateStart + 1)); if(readFromCacheOrContent) { pTemplateEnd = (uint8_t*)memchr(buf + (&data[len - 1] - pTemplateStart), TEMPLATE_PLACEHOLDER, readFromCacheOrContent); if(pTemplateEnd) { // prepare argument to callback *pTemplateEnd = 0; paramName = String(reinterpret_cast(buf)); // Copy remaining read-ahead data into cache _cache.insert(_cache.begin(), pTemplateEnd + 1, buf + (&data[len - 1] - pTemplateStart) + readFromCacheOrContent); pTemplateEnd = &data[len - 1]; } else // closing placeholder not found in file data, store found percent symbol as is and advance to the next position { // but first, store read file data in cache _cache.insert(_cache.begin(), buf + (&data[len - 1] - pTemplateStart), buf + (&data[len - 1] - pTemplateStart) + readFromCacheOrContent); ++pTemplateStart; } } else // closing placeholder not found in content data, store found percent symbol as is and advance to the next position ++pTemplateStart; } else // closing placeholder not found in content data, store found percent symbol as is and advance to the next position ++pTemplateStart; if(paramName.length()) { // call callback and replace with result. // Everything in range [pTemplateStart, pTemplateEnd] can be safely replaced with parameter value. // Data after pTemplateEnd may need to be moved. // The first byte of data after placeholder is located at pTemplateEnd + 1. // It should be located at pTemplateStart + numBytesCopied (to begin right after inserted parameter value). const String paramValue(_callback(paramName)); const char* pvstr = paramValue.c_str(); const unsigned int pvlen = paramValue.length(); const size_t numBytesCopied = std::min(pvlen, static_cast(&data[originalLen - 1] - pTemplateStart + 1)); // make room for param value // 1. move extra data to cache if parameter value is longer than placeholder AND if there is no room to store if((pTemplateEnd + 1 < pTemplateStart + numBytesCopied) && (originalLen - (pTemplateStart + numBytesCopied - pTemplateEnd - 1) < len)) { _cache.insert(_cache.begin(), &data[originalLen - (pTemplateStart + numBytesCopied - pTemplateEnd - 1)], &data[len]); //2. parameter value is longer than placeholder text, push the data after placeholder which not saved into cache further to the end memmove(pTemplateStart + numBytesCopied, pTemplateEnd + 1, &data[originalLen] - pTemplateStart - numBytesCopied); len = originalLen; // fix issue with truncated data, not sure if it has any side effects } else if(pTemplateEnd + 1 != pTemplateStart + numBytesCopied) //2. Either parameter value is shorter than placeholder text OR there is enough free space in buffer to fit. // Move the entire data after the placeholder memmove(pTemplateStart + numBytesCopied, pTemplateEnd + 1, &data[len] - pTemplateEnd - 1); // 3. replace placeholder with actual value memcpy(pTemplateStart, pvstr, numBytesCopied); // If result is longer than buffer, copy the remainder into cache (this could happen only if placeholder text itself did not fit entirely in buffer) if(numBytesCopied < pvlen) { _cache.insert(_cache.begin(), pvstr + numBytesCopied, pvstr + pvlen); } else if(pTemplateStart + numBytesCopied < pTemplateEnd + 1) { // result is copied fully; if result is shorter than placeholder text... // there is some free room, fill it from cache const size_t roomFreed = pTemplateEnd + 1 - pTemplateStart - numBytesCopied; const size_t totalFreeRoom = originalLen - len + roomFreed; len += _readDataFromCacheOrContent(&data[len - roomFreed], totalFreeRoom) - roomFreed; } else { // result is copied fully; it is longer than placeholder text const size_t roomTaken = pTemplateStart + numBytesCopied - pTemplateEnd - 1; len = std::min(len + roomTaken, originalLen); } } } // while(pTemplateStart) return len; } /* * File Response * */ AsyncFileResponse::~AsyncFileResponse(){ if(_content) _content.close(); } void AsyncFileResponse::_setContentType(const String& path){ if (path.endsWith(".html")) _contentType = "text/html"; else if (path.endsWith(".htm")) _contentType = "text/html"; else if (path.endsWith(".css")) _contentType = "text/css"; else if (path.endsWith(".json")) _contentType = "application/json"; else if (path.endsWith(".js")) _contentType = "application/javascript"; else if (path.endsWith(".png")) _contentType = "image/png"; else if (path.endsWith(".gif")) _contentType = "image/gif"; else if (path.endsWith(".jpg")) _contentType = "image/jpeg"; else if (path.endsWith(".ico")) _contentType = "image/x-icon"; else if (path.endsWith(".svg")) _contentType = "image/svg+xml"; else if (path.endsWith(".eot")) _contentType = "font/eot"; else if (path.endsWith(".woff")) _contentType = "font/woff"; else if (path.endsWith(".woff2")) _contentType = "font/woff2"; else if (path.endsWith(".ttf")) _contentType = "font/ttf"; else if (path.endsWith(".xml")) _contentType = "text/xml"; else if (path.endsWith(".pdf")) _contentType = "application/pdf"; else if (path.endsWith(".zip")) _contentType = "application/zip"; else if(path.endsWith(".gz")) _contentType = "application/x-gzip"; else _contentType = "text/plain"; } AsyncFileResponse::AsyncFileResponse(FS &fs, const String& path, const String& contentType, bool download, AwsTemplateProcessor callback): AsyncAbstractResponse(callback){ _code = 200; _path = path; if(!download && !fs.exists(_path) && fs.exists(_path+".gz")){ _path = _path+".gz"; addHeader("Content-Encoding", "gzip"); _callback = nullptr; // Unable to process zipped templates _sendContentLength = true; _chunked = false; } _content = fs.open(_path, "r"); _contentLength = _content.size(); if(contentType == "") _setContentType(path); else _contentType = contentType; int filenameStart = path.lastIndexOf('/') + 1; char buf[26+path.length()-filenameStart]; char* filename = (char*)path.c_str() + filenameStart; if(download) { // set filename and force download snprintf(buf, sizeof (buf), "attachment; filename=\"%s\"", filename); } else { // set filename and force rendering snprintf(buf, sizeof (buf), "inline; filename=\"%s\"", filename); } addHeader("Content-Disposition", buf); } AsyncFileResponse::AsyncFileResponse(File content, const String& path, const String& contentType, bool download, AwsTemplateProcessor callback): AsyncAbstractResponse(callback){ _code = 200; _path = path; if(!download && String(content.name()).endsWith(".gz") && !path.endsWith(".gz")){ addHeader("Content-Encoding", "gzip"); _callback = nullptr; // Unable to process gzipped templates _sendContentLength = true; _chunked = false; } _content = content; _contentLength = _content.size(); if(contentType == "") _setContentType(path); else _contentType = contentType; int filenameStart = path.lastIndexOf('/') + 1; char buf[26+path.length()-filenameStart]; char* filename = (char*)path.c_str() + filenameStart; if(download) { snprintf(buf, sizeof (buf), "attachment; filename=\"%s\"", filename); } else { snprintf(buf, sizeof (buf), "inline; filename=\"%s\"", filename); } addHeader("Content-Disposition", buf); } size_t AsyncFileResponse::_fillBuffer(uint8_t *data, size_t len){ return _content.read(data, len); } /* * Stream Response * */ AsyncStreamResponse::AsyncStreamResponse(Stream &stream, const String& contentType, size_t len, AwsTemplateProcessor callback): AsyncAbstractResponse(callback) { _code = 200; _content = &stream; _contentLength = len; _contentType = contentType; } size_t AsyncStreamResponse::_fillBuffer(uint8_t *data, size_t len){ size_t available = _content->available(); size_t outLen = (available > len)?len:available; size_t i; for(i=0;iread(); return outLen; } /* * Callback Response * */ AsyncCallbackResponse::AsyncCallbackResponse(const String& contentType, size_t len, AwsResponseFiller callback, AwsTemplateProcessor templateCallback): AsyncAbstractResponse(templateCallback) { _code = 200; _content = callback; _contentLength = len; if(!len) _sendContentLength = false; _contentType = contentType; _filledLength = 0; } size_t AsyncCallbackResponse::_fillBuffer(uint8_t *data, size_t len){ size_t ret = _content(data, len, _filledLength); if(ret != RESPONSE_TRY_AGAIN){ _filledLength += ret; } return ret; } /* * Chunked Response * */ AsyncChunkedResponse::AsyncChunkedResponse(const String& contentType, AwsResponseFiller callback, AwsTemplateProcessor processorCallback): AsyncAbstractResponse(processorCallback) { _code = 200; _content = callback; _contentLength = 0; _contentType = contentType; _sendContentLength = false; _chunked = true; _filledLength = 0; } size_t AsyncChunkedResponse::_fillBuffer(uint8_t *data, size_t len){ size_t ret = _content(data, len, _filledLength); if(ret != RESPONSE_TRY_AGAIN){ _filledLength += ret; } return ret; } /* * Progmem Response * */ AsyncProgmemResponse::AsyncProgmemResponse(int code, const String& contentType, const uint8_t * content, size_t len, AwsTemplateProcessor callback): AsyncAbstractResponse(callback) { _code = code; _content = content; _contentType = contentType; _contentLength = len; _readLength = 0; } size_t AsyncProgmemResponse::_fillBuffer(uint8_t *data, size_t len){ size_t left = _contentLength - _readLength; if (left > len) { memcpy_P(data, _content + _readLength, len); _readLength += len; return len; } memcpy_P(data, _content + _readLength, left); _readLength += left; return left; } /* * Response Stream (You can print/write/printf to it, up to the contentLen bytes) * */ AsyncResponseStream::AsyncResponseStream(const String& contentType, size_t bufferSize){ _code = 200; _contentLength = 0; _contentType = contentType; _content = new cbuf(bufferSize); } AsyncResponseStream::~AsyncResponseStream(){ delete _content; } size_t AsyncResponseStream::_fillBuffer(uint8_t *buf, size_t maxLen){ return _content->read((char*)buf, maxLen); } size_t AsyncResponseStream::write(const uint8_t *data, size_t len){ if(_started()) return 0; if(len > _content->room()){ size_t needed = len - _content->room(); _content->resizeAdd(needed); } size_t written = _content->write((const char*)data, len); _contentLength += written; return written; } size_t AsyncResponseStream::write(uint8_t data){ return write(&data, 1); } ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/WebServer.cpp ================================================ /* Asynchronous WebServer library for Espressif MCUs Copyright (c) 2016 Hristo Gochkov. All rights reserved. This file is part of the esp8266 core for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "ESPAsyncWebServer.h" #include "WebHandlerImpl.h" bool ON_STA_FILTER(AsyncWebServerRequest *request) { return WiFi.localIP() == request->client()->localIP(); } bool ON_AP_FILTER(AsyncWebServerRequest *request) { return WiFi.localIP() != request->client()->localIP(); } AsyncWebServer::AsyncWebServer(uint16_t port) : _server(port) , _rewrites(LinkedList([](AsyncWebRewrite* r){ delete r; })) , _handlers(LinkedList([](AsyncWebHandler* h){ delete h; })) { _catchAllHandler = new AsyncCallbackWebHandler(); if(_catchAllHandler == NULL) return; _server.onClient([](void *s, AsyncClient* c){ if(c == NULL) return; c->setRxTimeout(3); AsyncWebServerRequest *r = new AsyncWebServerRequest((AsyncWebServer*)s, c); if(r == NULL){ c->close(true); c->free(); delete c; } }, this); } AsyncWebServer::~AsyncWebServer(){ reset(); end(); if(_catchAllHandler) delete _catchAllHandler; } AsyncWebRewrite& AsyncWebServer::addRewrite(AsyncWebRewrite* rewrite){ _rewrites.add(rewrite); return *rewrite; } bool AsyncWebServer::removeRewrite(AsyncWebRewrite *rewrite){ return _rewrites.remove(rewrite); } AsyncWebRewrite& AsyncWebServer::rewrite(const char* from, const char* to){ return addRewrite(new AsyncWebRewrite(from, to)); } AsyncWebHandler& AsyncWebServer::addHandler(AsyncWebHandler* handler){ _handlers.add(handler); return *handler; } bool AsyncWebServer::removeHandler(AsyncWebHandler *handler){ return _handlers.remove(handler); } void AsyncWebServer::begin(){ _server.setNoDelay(true); _server.begin(); } void AsyncWebServer::end(){ _server.end(); } #if ASYNC_TCP_SSL_ENABLED void AsyncWebServer::onSslFileRequest(AcSSlFileHandler cb, void* arg){ _server.onSslFileRequest(cb, arg); } void AsyncWebServer::beginSecure(const char *cert, const char *key, const char *password){ _server.beginSecure(cert, key, password); } #endif void AsyncWebServer::_handleDisconnect(AsyncWebServerRequest *request){ delete request; } void AsyncWebServer::_rewriteRequest(AsyncWebServerRequest *request){ for(const auto& r: _rewrites){ if (r->match(request)){ request->_url = r->toUrl(); request->_addGetParams(r->params()); } } } void AsyncWebServer::_attachHandler(AsyncWebServerRequest *request){ for(const auto& h: _handlers){ if (h->filter(request) && h->canHandle(request)){ request->setHandler(h); return; } } request->addInterestingHeader("ANY"); request->setHandler(_catchAllHandler); } AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, WebRequestMethodComposite method, ArRequestHandlerFunction onRequest, ArUploadHandlerFunction onUpload, ArBodyHandlerFunction onBody){ AsyncCallbackWebHandler* handler = new AsyncCallbackWebHandler(); handler->setUri(uri); handler->setMethod(method); handler->onRequest(onRequest); handler->onUpload(onUpload); handler->onBody(onBody); addHandler(handler); return *handler; } AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, WebRequestMethodComposite method, ArRequestHandlerFunction onRequest, ArUploadHandlerFunction onUpload){ AsyncCallbackWebHandler* handler = new AsyncCallbackWebHandler(); handler->setUri(uri); handler->setMethod(method); handler->onRequest(onRequest); handler->onUpload(onUpload); addHandler(handler); return *handler; } AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, WebRequestMethodComposite method, ArRequestHandlerFunction onRequest){ AsyncCallbackWebHandler* handler = new AsyncCallbackWebHandler(); handler->setUri(uri); handler->setMethod(method); handler->onRequest(onRequest); addHandler(handler); return *handler; } AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, ArRequestHandlerFunction onRequest){ AsyncCallbackWebHandler* handler = new AsyncCallbackWebHandler(); handler->setUri(uri); handler->onRequest(onRequest); addHandler(handler); return *handler; } AsyncStaticWebHandler& AsyncWebServer::serveStatic(const char* uri, fs::FS& fs, const char* path, const char* cache_control){ AsyncStaticWebHandler* handler = new AsyncStaticWebHandler(uri, fs, path, cache_control); addHandler(handler); return *handler; } void AsyncWebServer::onNotFound(ArRequestHandlerFunction fn){ _catchAllHandler->onRequest(fn); } void AsyncWebServer::onFileUpload(ArUploadHandlerFunction fn){ _catchAllHandler->onUpload(fn); } void AsyncWebServer::onRequestBody(ArBodyHandlerFunction fn){ _catchAllHandler->onBody(fn); } void AsyncWebServer::reset(){ _rewrites.free(); _handlers.free(); if (_catchAllHandler != NULL){ _catchAllHandler->onRequest(NULL); _catchAllHandler->onUpload(NULL); _catchAllHandler->onBody(NULL); } } ================================================ FILE: arduino_workspace/libraries/ESPAsyncWebServer/src/edit.htm ================================================ ESP Editor
================================================ FILE: arduino_workspace/libraries/FairyEncoder/FairyEncoder.cpp ================================================ #include "FairyEncoder.h" #define ENCODER_REG 0x10 #define BUTTON_REG 0x20 #define RGB_LED_REG 0x30 FairyEncoder::FairyEncoder(TwoWire* wire, uint8_t i2c_addr, uint32_t chk_intv_fast, uint32_t chk_intv_slow, uint32_t chk_intv_sleep) { _wire = wire; _i2c_addr = i2c_addr; _last_cnt = 0; _last_read = 0; _last_check_time = 0; _last_move_time = 0; _chkintv_fast = chk_intv_fast; _chkintv_slow = chk_intv_slow; _chkintv_sleep = chk_intv_sleep; _check_interval = _chkintv_slow; _has_begun = false; } void FairyEncoder::begin() { if (_has_begun == false) { _wire->begin(); _has_begun = true; } _last_cnt = 0; _last_read = 0; _last_check_time = 0; _last_move_time = 0; } void FairyEncoder::task() { uint32_t now = millis(); if ((now - _last_check_time) < _check_interval) { return; } if (_has_begun == false) { begin(); } _last_check_time = now; bool prev_avail = _avail; int16_t x; readBytes(ENCODER_REG, (uint8_t*)&x, 2); _last_cnt = x; if (_last_cnt != _last_read) { _last_move_time = now; _check_interval = _chkintv_fast; } if ((now - _last_move_time) >= _chkintv_sleep) { _check_interval = _chkintv_slow; } if (_avail == false || _avail != prev_avail) { _last_read = _last_cnt; } } int16_t FairyEncoder::read(bool to_clr) { int16_t d = _last_cnt - _last_read; if (to_clr) { _last_read = _last_cnt; } return d; } int16_t FairyEncoder::readRaw() { return _last_cnt; } bool FairyEncoder::avail() { return _avail; } void FairyEncoder::writeBytes(uint8_t reg, uint8_t* buffer, uint8_t length) { _wire->beginTransmission(_i2c_addr); _wire->write(reg); for (int i = 0; i < length; i++) { _wire->write(*(buffer + i)); } if (_wire->endTransmission() == 0) { _avail = false; } } bool FairyEncoder::readBytes(uint8_t reg, uint8_t* buffer, uint8_t length) { uint8_t index = 0; _wire->beginTransmission(_i2c_addr); _wire->write(reg); if (_wire->endTransmission(false) == 0) { if (_wire->requestFrom((uint8_t)_i2c_addr, (uint8_t)length, (uint8_t)true) > 0) { for (int i = 0; i < length; i++) { buffer[index++] = _wire->read(); } _avail = true; return true; } } _avail = false; _check_interval = _chkintv_slow; return false; } bool FairyEncoder::getButtonStatus() { uint8_t data; readBytes(BUTTON_REG, &data, 1); return data; } void FairyEncoder::setLEDColor(uint8_t index, uint32_t color) { uint8_t data[4]; data[3] = color & 0xff; data[2] = (color >> 8) & 0xff; data[1] = (color >> 16) & 0xff; data[0] = index; writeBytes(RGB_LED_REG, data, 4); } ================================================ FILE: arduino_workspace/libraries/FairyEncoder/FairyEncoder.h ================================================ #ifndef _FAIRYENCODER_H_ #define _FAIRYENCODER_H_ #include "Arduino.h" #include "Wire.h" #include #include class FairyEncoder { public: FairyEncoder(TwoWire* wire = &Wire, uint8_t i2c_addr = 0x40 , uint32_t chk_intv_fast = 1 // delay between I2C reads if the encoder has recently been rotated (in milliseconds) , uint32_t chk_intv_slow = 200 // delay between I2C reads if the encoder has not been recently rotated (in milliseconds) , uint32_t chk_intv_sleep = 2000 // the criteria for being "recent" for the above two delay times (in milliseconds) ); void begin(void); // calls _wire->begin() and resets variables void task(void); // reads the I2C device when it needs to int16_t read(bool clear = true); // returns relative encoder steps since last clear int16_t readRaw(void); // returns the absolute encoder steps stored on encoder module bool avail(void); // true if encoder is connected, false if I2C communication has failed bool getButtonStatus(void); void setLEDColor(uint8_t index, uint32_t color); void writeBytes(uint8_t reg, uint8_t* buffer, uint8_t length); bool readBytes(uint8_t reg, uint8_t* buffer, uint8_t length); protected: TwoWire* _wire; uint8_t _i2c_addr; bool _avail; bool _has_begun = false; int16_t _last_cnt; int16_t _last_read; uint32_t _last_check_time, _last_move_time; uint32_t _check_interval; uint32_t _chkintv_fast, _chkintv_slow, _chkintv_sleep; }; #endif ================================================ FILE: arduino_workspace/libraries/FairyKeyboard/FairyKeyboard.cpp ================================================ #include "FairyKeyboard.h" #define KBD_LINE_SPACING 24 #define KBD_LEFT_MARGIN 7 #define KBD_DIVIDER_Y (_screen_height - 75) #define KBD_DIVIDER_Y2 (KBD_DIVIDER_Y + KBD_LINE_SPACING + 2) #define KBD_DIVIDER_Y3 (KBD_DIVIDER_Y2 + KBD_LINE_SPACING) #define KBD_TYPE_Y (KBD_DIVIDER_Y - 7) #define KBD_BOARD_Y (KBD_DIVIDER_Y + 20) #define KBD_CHAR_WIDTH (14 + 3) #define KBD_ALLCHAR_WIDTH (KBD_CHAR_WIDTH * 13) #define KBD_ALLNUM_WIDTH (KBD_CHAR_WIDTH * 14) #define KBD_ROW_CNT 3 #define KBD_GET_COL_SPAN(xyz) (((xyz) == 2) ? 14 : 13) #define KBD_FONT_MAIN FreeMono12pt7b #define KBD_SPECIALCHAR_BACKSPACE '<' #define KBD_SPECIALCHAR_ENTER '=' static const char line_1_u[] = "ABCDEFGHIJKLM"; static const char line_1_l[] = "abcdefghijklm"; static const char line_2_u[] = "NOPQRSTUVWXYZ"; static const char line_2_l[] = "nopqrstuvwxyz"; static const char line_3[] = "<<1234567890=="; FairyKeyboard::FairyKeyboard(M5Display* used_lcd, uint16_t colour_bg, uint16_t colour_fg, uint16_t colour_fade, uint32_t colour_hl, uint32_t colour_box, uint16_t roll_span, uint16_t pitch_span, uint16_t pitch_hyster, uint32_t blink_dly, bool auto_flip) { _lcd = used_lcd; _colour_back = colour_bg; _colour_fore = colour_fg; _colour_hilite = colour_hl; _colour_box = colour_box; _colour_fade = colour_fade; _roll_span = roll_span; _pitch_span = pitch_span; _pitch_hyster = pitch_hyster; _blink_dly = blink_dly; _auto_flip = auto_flip; reset(); } void FairyKeyboard::reset() { _has_pitch = false; _center_pitch = 0; _cur_row = -1; _cur_col = -1; _prev_row = -1; _prev_col = -1; _prev_char = 0; _cur_rot = 1; _prev_rot = 0; _start_time = millis(); _is_lowercase = false; _prev_lowercase = false; _recent_click = false; _str_idx = 0; _str[0] = 0; } void FairyKeyboard::lcd_setup() { _lcd->setRotation(_cur_rot); _screen_width = _lcd->width(); _screen_height = _lcd->height(); _lcd->setFreeFont(&KBD_FONT_MAIN); _lcd->setTextColor(_colour_fade, _colour_back); } void FairyKeyboard::draw_base() { lcd_setup(); _lcd->fillRect(0, KBD_TYPE_Y, _screen_width, _screen_height - KBD_TYPE_Y, _colour_back); // erase everything below the typing line _lcd->drawFastHLine(0, KBD_DIVIDER_Y, _screen_width, _colour_fade); // draw typing line divider // draw all keys int16_t row, col, x, y; for (row = 0; row < KBD_ROW_CNT; row++) { int col_span = KBD_GET_COL_SPAN(row); for (col = 0; col < col_span; col++) { char c; get_char_coords(row, col, &c, &x, &y); _lcd->setCursor(x, y); if (c != KBD_SPECIALCHAR_BACKSPACE && c != KBD_SPECIALCHAR_ENTER) { _lcd->write(c); } else if (row == 2 && c == KBD_SPECIALCHAR_BACKSPACE) { draw_backspace(false); _lcd->setTextColor(_colour_fade, _colour_back); } else if (row == 2 &&c == KBD_SPECIALCHAR_ENTER) { draw_enter(false); _lcd->setTextColor(_colour_fade, _colour_back); } } } if (redraw_cb != NULL) { redraw_cb(); } } /* pitch is up/down roll is left/right + pitch + +-------------------------+ | +---------------+ +-- | | |##row#0########| | | -roll- | |##row#1########| | | +roll+ | |##row#2########| | | | +---------------+ +-- | +-------------------------+ - pitch - */ void FairyKeyboard::update(float roll, float pitch) { if (_auto_flip) { // extreme pitch angle causes auto-flipping bool flip; if (_cur_rot != 3) { flip = (pitch > (_pitch_span / 2)); } else { flip = (pitch > -(_pitch_span / 2)); } // do the flip if (flip) { roll *= -1; pitch *= -1; _cur_rot = 3; // used inside draw_base() } else { _cur_rot = 1; // used inside draw_base() } } // clear the screen if (_cur_rot != _prev_rot) { _lcd->fillScreen(_colour_back); draw_base(); _prev_char = 0; // trigger redraw of keys later } else if (_prev_lowercase != _is_lowercase) { draw_base(); _prev_char = 0; // trigger redraw of keys later } lcd_setup(); // call just in case if the user redraw callback mucked up the font int pitchi = lroundf(pitch); // speed up processing, shrink code size if (_has_pitch == false) { // set some defaults if it's the first run _center_pitch = pitchi; _has_pitch = true; _cur_row = 1; } // determine row index from pitch angle if (pitchi > (_center_pitch + (_pitch_span / 2))) { // angle exceeded extreme limits, so move the center-point _center_pitch = pitchi - (_pitch_span / 2); _cur_row = 0; } else if (pitchi < (_center_pitch - (_pitch_span / 2))) { // angle exceeded extreme limits, so move the center-point _center_pitch = pitchi + (_pitch_span / 2); _cur_row = (KBD_ROW_CNT - 1); } else if (_cur_row == 1) { if (pitchi > (_center_pitch + (_pitch_span / (KBD_ROW_CNT * 2)) + _pitch_hyster)) { _cur_row = 0; } else if (pitchi < (_center_pitch - (_pitch_span / (KBD_ROW_CNT * 2)) - _pitch_hyster)) { _cur_row = 2; } } else if (_cur_row == 0) { if (pitchi < (_center_pitch - (_pitch_span / (KBD_ROW_CNT * 2)))) { _cur_row = 2; } if (pitchi < (_center_pitch + (_pitch_span / (KBD_ROW_CNT * 2)) - _pitch_hyster)) { _cur_row = 1; } } else if (_cur_row == (KBD_ROW_CNT - 1)) { if (pitchi > (_center_pitch + (_pitch_span / (KBD_ROW_CNT * 2)))) { _cur_row = 2; } if (pitchi > (_center_pitch - (_pitch_span / (KBD_ROW_CNT * 2)) + _pitch_hyster)) { _cur_row = 1; } } int col_span = KBD_GET_COL_SPAN(_cur_row); // number of columns vary depending on row float col_width = _roll_span / col_span; // width of each column is dynamic // enforce a limit if (roll < -(_roll_span / 2)) { roll = -(_roll_span / 2); } else if (roll > (_roll_span / 2)) { roll = (_roll_span / 2); } // offset so it's useful for zero-indexed calculations roll += (_roll_span / 2); if (_cur_col < 0) { // first run, very easy to find location, no need for hysteresis for (_cur_col = 0; _cur_col < col_span; _cur_col++) { if ((col_width * (_cur_col + 1)) > roll) { break; } } } else { do { // determine boundaries of column, accounting for hysteresis float roll_hyster = col_width / 10; float roll_left = ( _cur_col * col_width) - roll_hyster; float roll_right = ((_cur_col + 1) * col_width) + roll_hyster; if (roll >= roll_left && roll <= roll_right) { // if within boundaries, then we have found the right column break; } else if (roll <= roll_left ) { // exceed boundary, move left _cur_col -= 1; } else if (roll >= roll_right) { // exceed boundary, move right _cur_col += 1; } } while (_cur_col > 0 && _cur_col < col_span); } // enforce limits _cur_col = ((_cur_col < 0) ? 0 : ((_cur_col >= col_span) ? (col_span - 1) : _cur_col)); _cur_row = ((_cur_row < 0) ? 0 : ((_cur_row >= KBD_ROW_CNT) ? (KBD_ROW_CNT - 1) : _cur_row)); int16_t x, y, px, py, bw, bh; char pc; get_char_coords(_cur_row, _cur_col, &_cur_char, &x, &y); // only draw if changes detected if (_cur_char != _prev_char || _prev_lowercase != _is_lowercase) { if (_prev_col >= 0 || _prev_row >= 0 || _prev_char > 0) { // instead of redrawing the whole keyboard with idle-state keys // only draw the previously selected key with idle-state key colouring get_char_coords(_prev_row, _prev_col, &pc, &px, &py); _lcd->setTextColor(_colour_fade, _colour_back); if (pc == KBD_SPECIALCHAR_BACKSPACE) { draw_backspace(false); } else if (pc == KBD_SPECIALCHAR_ENTER) { draw_enter(false); } else { _lcd->setCursor(px, py); draw_box(px, py, _colour_back, true); _lcd->write(pc); } } // now we can draw the selected key with selected-state colouring set_sel_colour(); if (_cur_char == KBD_SPECIALCHAR_BACKSPACE) { draw_backspace(true); } else if (_cur_char == KBD_SPECIALCHAR_ENTER) { draw_enter(true); } else { _lcd->setCursor(x, y); if ((_colour_box & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_BOXBACKFILL) { draw_box(x, y, _colour_box & KBD_COLOUR_MASK, true); } _lcd->write(_cur_char); if ((_colour_box & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_BOXBORDER) { draw_box(x, y, _colour_box & KBD_COLOUR_MASK, false); } } } draw_inputstr(); _prev_col = _cur_col; _prev_row = _cur_row; _prev_char = _cur_char; _prev_rot = _cur_rot; _prev_lowercase = _is_lowercase; } void FairyKeyboard::toggleLowerCase() { _is_lowercase ^= true; _start_time = millis(); } void FairyKeyboard::setLowerCase(bool x) { if (x != _is_lowercase) { _start_time = millis(); } _is_lowercase = x; } bool FairyKeyboard::click(void) { _start_time = millis(); _recent_click = true; if (_cur_char == KBD_SPECIALCHAR_ENTER) { // enter return true; } else if (_cur_char == KBD_SPECIALCHAR_BACKSPACE) { // backspace if (_str_idx > 0) { _str_idx -= 1; } _str[_str_idx] = 0; return false; } if (_str_idx < KBD_STR_LEN) { _str[_str_idx] = _cur_char; _str_idx += 1; _str[_str_idx] = 0; } return false; } void FairyKeyboard::get_char_coords(int8_t row, int8_t col, char* outchar, int16_t* outx, int16_t* outy) { int col_span = KBD_GET_COL_SPAN(row); char c; *outy = KBD_BOARD_Y + (row * KBD_LINE_SPACING); *outx = ((_screen_width - (KBD_CHAR_WIDTH * col_span)) / 2) + (col * KBD_CHAR_WIDTH); if (row == 2) { *outchar = line_3[col]; } else if (row == 1) { *outchar = _is_lowercase ? line_2_l[col] : line_2_u[col]; } else if (row == 0) { *outchar = _is_lowercase ? line_1_l[col] : line_1_u[col]; } // TODO: this can be extended to include more possible characters } void FairyKeyboard::draw_inputstr() { uint32_t now = millis(); uint32_t tspan = now - _start_time; int col_span = KBD_GET_COL_SPAN(0); int x = ((_screen_width - (KBD_CHAR_WIDTH * col_span)) / 2); _lcd->setCursor(x, KBD_TYPE_Y); _lcd->setTextColor(_colour_fore, _colour_back); if (_recent_click) { // a recent click leaves the risk of leaving the carrot int i; // write out every character except the last one for (i = 0; i < _str_idx - 1; i++) { _lcd->write(_str[i]); } // blank out the space underneat the last character _lcd->fillRect(_lcd->getCursorX(), KBD_DIVIDER_Y - KBD_LINE_SPACING, KBD_CHAR_WIDTH * 2, KBD_LINE_SPACING, _colour_back); // blank a little section _lcd->write(_str[_str_idx - 1]); // write the last character _recent_click = false; } else { _lcd->print(_str); // no risk, print the string normally } if (_str_idx < KBD_STR_LEN) { // blink the carrot if ((tspan % _blink_dly) < (_blink_dly / 2)) { _lcd->write('_'); } // yes I know it's spelled caret } // blank rest of line _lcd->fillRect(_lcd->getCursorX(), KBD_DIVIDER_Y - KBD_LINE_SPACING, _screen_width - _lcd->getCursorX() - 1, KBD_LINE_SPACING, _colour_back); } void FairyKeyboard::draw_box(int16_t x, int16_t y, uint16_t colour, bool fill) { #define KBD_DRAW_BOX_COORDS(xxx, yyy) (xxx) - 2, (yyy) - KBD_LINE_SPACING + 5, KBD_CHAR_WIDTH + 1, KBD_LINE_SPACING + 1 if (fill) { _lcd->fillRect(KBD_DRAW_BOX_COORDS(x, y), colour); } else { _lcd->drawRect(KBD_DRAW_BOX_COORDS(x, y), colour); } }; void FairyKeyboard::draw_backspace(bool sel) { int16_t row = 2, col = 0, x, y; char c; get_char_coords(row, col, &c, &x, &y); _lcd->setTextFont(2); _lcd->setCursor(x + 7, y - KBD_LINE_SPACING + 10); #define KBD_BACKSPACE_BOX_COORDS(xxx, yyy) (xxx) - 1, (yyy) - KBD_LINE_SPACING + 5, (KBD_CHAR_WIDTH * 2) - 1, KBD_LINE_SPACING + 1 if (sel) { set_sel_colour(); if ((_colour_box & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_BOXBACKFILL) { _lcd->fillRect(KBD_BACKSPACE_BOX_COORDS(x, y), _colour_box & KBD_COLOUR_MASK); } } else { _lcd->setTextColor(_colour_fade, _colour_back); if ((_colour_box & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_BOXBACKFILL) { _lcd->fillRect(KBD_BACKSPACE_BOX_COORDS(x, y), _colour_back); } } _lcd->write('<'); _lcd->setCursor(_lcd->getCursorX() + 1, _lcd->getCursorY() - 1); // needs a bit more space _lcd->write('x'); _lcd->setCursor(_lcd->getCursorX() + 1, _lcd->getCursorY()); // needs a bit more space _lcd->write('x'); if (sel) { if ((_colour_box & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_BOXBORDER) { _lcd->drawRect(KBD_BACKSPACE_BOX_COORDS(x, y), _colour_box & KBD_COLOUR_MASK); } } else { _lcd->drawRect(KBD_BACKSPACE_BOX_COORDS(x, y), _colour_back); } _lcd->setFreeFont(&KBD_FONT_MAIN); }; void FairyKeyboard::draw_enter(bool sel) { int16_t row = 2, col = 12, x, y; char c; get_char_coords(row, col, &c, &x, &y); _lcd->setTextFont(2); _lcd->setCursor(x + 1, y - KBD_LINE_SPACING + 9); #define KBD_ENTERKEY_BOX_COORDS(xxx, yyy) (xxx) - 1, (yyy) - KBD_LINE_SPACING + 5, (KBD_CHAR_WIDTH * 2) + 2, KBD_LINE_SPACING + 1 if (sel) { set_sel_colour(); if ((_colour_box & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_BOXBACKFILL) { _lcd->fillRect(KBD_ENTERKEY_BOX_COORDS(x, y), _colour_box & KBD_COLOUR_MASK); } } else { _lcd->setTextColor(_colour_fade, _colour_back); if ((_colour_box & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_BOXBACKFILL) { _lcd->fillRect(KBD_ENTERKEY_BOX_COORDS(x, y), _colour_back); } } _lcd->write('>'); _lcd->write('E'); _lcd->write('N'); _lcd->write('T'); if (sel) { if ((_colour_box & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_BOXBORDER) { _lcd->drawRect(KBD_ENTERKEY_BOX_COORDS(x, y), _colour_box & KBD_COLOUR_MASK); } } else { _lcd->drawRect(KBD_ENTERKEY_BOX_COORDS(x, y), _colour_back); } _lcd->setFreeFont(&KBD_FONT_MAIN); }; void FairyKeyboard::set_sel_colour() { if ((_colour_hilite & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_HLACTIVE) { if ((_colour_box & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_BOXBACKFILL) { _lcd->setTextColor(_colour_hilite & KBD_COLOUR_MASK, _colour_box & KBD_COLOUR_MASK); } else { _lcd->setTextColor(_colour_hilite & KBD_COLOUR_MASK, _colour_back); } } else { if ((_colour_box & KBD_COLOURFLAG_MASK) == KBD_COLOURFLAG_BOXBACKFILL) { _lcd->setTextColor(_colour_fore, _colour_box & KBD_COLOUR_MASK); } else { _lcd->setTextColor(_colour_fore, _colour_back); } } } void FairyKeyboard::register_redraw_cb(void(*cb)(void)) { redraw_cb = cb; } void FairyKeyboard::set_str(char* x) { strncpy(_str, x, KBD_STR_LEN); _str_idx = strlen(_str); if (_str_idx >= KBD_STR_LEN) { _str_idx = KBD_STR_LEN; _str[_str_idx] = 0; } } ================================================ FILE: arduino_workspace/libraries/FairyKeyboard/FairyKeyboard.h ================================================ #ifndef _FAIRYKEYBOARD_H_ #define _FAIRYKEYBOARD_H_ #include #include #include #include #include #include #include #define KBD_COLOURFLAG_MASK 0xFF0000 #define KBD_COLOUR_MASK 0xFFFF #define KBD_COLOURFLAG_NONE 0x000000 #define KBD_COLOURFLAG_BOXBACKFILL 0x020000 #define KBD_COLOURFLAG_BOXBORDER 0x010000 #define KBD_COLOURFLAG_HLACTIVE 0x010000 #define KBD_STR_LEN 15 class FairyKeyboard { public: FairyKeyboard(M5Display* used_lcd, uint16_t colour_bg = TFT_WHITE, uint16_t colour_fg = TFT_BLACK, uint16_t colour_fade = TFT_LIGHTGREY, uint32_t colour_hl = KBD_COLOURFLAG_HLACTIVE | TFT_BLACK, uint32_t colour_box = KBD_COLOURFLAG_BOXBACKFILL | TFT_ORANGE, uint16_t roll_span = 90, uint16_t pitch_span = 90, uint16_t pitch_hyster = 5, uint32_t blink_dly = 400, bool auto_flip = true ); inline char* get_str(void) { return _str; }; // get the current input string inline void clr_str(void) { _str[0] = 0; _str_idx = 0; }; // clear the current input string void set_str(char*); // set the current input string void reset(void); // resets state variables to default void lcd_setup(void); // sets basic LCD paramters void draw_base(void); // draws the whole background basic keyboard void update(float roll, float pitch); // call for redraw and new IMU data void toggleLowerCase(void); // toggles shift key void setLowerCase(bool x); // presses shift key bool click(void); // call when the big button is pressed, returns true if the ENTER key is the one being clicked upon void register_redraw_cb(void(*)(void)); // register a function to be called when a whole screen redraw is called protected: M5Display* _lcd; void (*redraw_cb)(void) = NULL; bool _auto_flip; uint16_t _screen_width, _screen_height; char _cur_char, _prev_char; uint8_t _cur_rot, _prev_rot; uint16_t _colour_back, _colour_fore, _colour_fade; uint32_t _colour_hilite, _colour_box; uint16_t _roll_span, _pitch_span; int8_t _cur_row , _cur_col; int8_t _prev_row, _prev_col; bool _has_pitch; int16_t _center_pitch; int16_t _pitch_hyster; uint32_t _start_time, _blink_dly; bool _is_lowercase, _prev_lowercase; bool _recent_click; char _str[KBD_STR_LEN + 2]; // stores current input string uint8_t _str_idx; // write pointer for input string void get_char_coords(int8_t row, int8_t col, char* outchar, int16_t* outx, int16_t* outy); // get the character, X, and Y coordinates, when given row and column as parameters void draw_box(int16_t x, int16_t y, uint16_t colour, bool fill); // draws a box around the currently selected key void draw_backspace(bool sel); // draws the backspace key, param "sel" means "currently selected" void draw_enter(bool sel); // draws the enter key, param "sel" means "currently selected" void set_sel_colour(void); // sets the selected colour according to settings void draw_inputstr(void); // draws the input text }; #endif ================================================ FILE: arduino_workspace/libraries/FairyKeyboard/examples/FairyKeyboardDemo/FairyKeyboardDemo.ino ================================================ #include #include #define PIN_BTN_SIDE 39 #define PIN_BTN_BIG 37 FairyKeyboard kbd(&(M5.Lcd)); char input_str[64] = {0}; void draw_header() { M5.Lcd.setTextColor(TFT_BLACK, TFT_WHITE); M5.Lcd.setTextFont(2); M5.Lcd.setCursor(5, 4); M5.Lcd.print("SSID: "); if (input_str[0] == 0) { M5.Lcd.print("[empty]"); } else { M5.Lcd.print(input_str); } M5.Lcd.fillRect(M5.Lcd.getCursorX(), M5.Lcd.getCursorY(), M5.Lcd.width() - M5.Lcd.getCursorX(), M5.Lcd.fontHeight(), TFT_WHITE); M5.Lcd.setCursor(5, 18); M5.Lcd.print("Password:"); } void setup() { Serial.begin(115200); M5.begin(false); // do not initialize the LCD, we have our own extended M5Lcd class to initialize later M5.IMU.Init(); M5.IMU.SetGyroFsr(M5.IMU.GFS_500DPS); M5.IMU.SetAccelFsr(M5.IMU.AFS_4G); M5.Axp.begin(); M5.Axp.ScreenSwitch(false); // turn off the LCD backlight while initializing, avoids junk being shown on the screen M5.Lcd.begin(); // our own extended LCD object M5.Lcd.fillScreen(TFT_WHITE); M5.Axp.ScreenBreath(12); pinMode(PIN_BTN_SIDE, INPUT_PULLUP); pinMode(PIN_BTN_BIG, INPUT_PULLUP); kbd.register_redraw_cb(draw_header); kbd.reset(); kbd.draw_base(); } void loop() { static bool prev_big_btn = false; static bool prev_side_btn = false; static uint32_t last_imu_time = 0; uint32_t now = millis(); float roll, pitch, yaw; if ((now - last_imu_time) >= 40) { M5.IMU.getAhrsData(&pitch, &roll, &yaw); kbd.update(roll, pitch); last_imu_time = now; } if (digitalRead(PIN_BTN_BIG) == LOW) { if (prev_big_btn == false) { if (kbd.click()) { strcpy(input_str, kbd.get_str()); kbd.clr_str(); draw_header(); } } prev_big_btn = true; } else { prev_big_btn = false; } if (digitalRead(PIN_BTN_SIDE) == LOW) { if (prev_side_btn == false) { kbd.toggleLowerCase(); } prev_side_btn = true; } else { prev_side_btn = false; } } ================================================ FILE: arduino_workspace/libraries/Lepton/Lepton.h ================================================ #ifndef Lepton_h #define Lepton_h #include "Arduino.h" #include "img_table.h" #include "img/ColorT.h" #define FLIR_X 160 #define FLIR_Y 120 #define LEPTON_RESET_PIN 26 #define ESP_GetUS() ((uint64_t)(esp_timer_get_time())) class Lepton { public: // Registers for use with readRegister and writeRegister. static const uint16_t REG_POWER = 0; static const uint16_t REG_STATUS = 2; static const uint16_t REG_COMMAND_ID = 4; static const uint16_t REG_DATA_LEN = 6; static const uint16_t REG_DATA_BASE = 8; // Automatic Gain Control commands static const uint16_t CMD_AGC_ENABLE = 0x0100; static const uint16_t CMD_AGC_ROI = 0x0108; static const uint16_t CMD_AGC_HISTOGRAM_STATISTICS = 0x010c; static const uint16_t CMD_AGC_HEQ_DAMPING_FACTOR = 0x0124; static const uint16_t CMD_AGC_HEQ_CLIP_LIMIT_HIGH = 0x012c; static const uint16_t CMD_AGC_HEQ_CLIP_LIMIT_LOW = 0x0130; static const uint16_t CMD_AGC_HEQ_EMPTY_COUNT = 0x013c; static const uint16_t CMD_AGC_HEQ_SCALE_FACTOR = 0x0144; static const uint16_t CMD_AGC_HEQ_CALC_ENABLE_STATE = 0x0148; // System commands static const uint16_t CMD_SYS_PING = 0x0200; static const uint16_t CMD_SYS_STATUS = 0x0204; static const uint16_t CMD_SYS_FLIR_SERIAL_NUMBER = 0x0208; static const uint16_t CMD_SYS_CAMERA_UPTIME = 0x020C; static const uint16_t CMD_SYS_AUX_TEMPERATURE_KELVIN = 0x0210; static const uint16_t CMD_SYS_FPA_TEMPERATURE_KELVIN = 0x0214; static const uint16_t CMD_SYS_TELEMETRY_ENABLE = 0x0218; static const uint16_t CMD_SYS_TELEMETRY_LOCATION = 0x021c; static const uint16_t CMD_SYS_FRAMES_TO_AVERAGE = 0x0224; static const uint16_t CMD_SYS_CUST_SERIAL_NUMBER = 0x0228; static const uint16_t CMD_SYS_SCENE_STATISTICS = 0x022c; static const uint16_t CMD_SYS_SCENE_ROI = 0x0230; static const uint16_t CMD_SYS_THERMAL_SHUTDOWN_COUNT = 0x0234; static const uint16_t CMD_SYS_SHUTTER_POSITION = 0x0238; static const uint16_t CMD_SYS_FFC_SHUTTER_MODE = 0x023c; static const uint16_t CMD_SYS_FFC_NORMALIZATION = 0x0240; static const uint16_t CMD_SYS_FFC_STATUS = 0x0244; // Video commands static const uint16_t CMD_VID_USER_LUT = 0x0308; static const uint16_t CMD_VID_FOCUS_CALC_ENABLE = 0x030c; static const uint16_t CMD_VID_FOCUS_ROI = 0x0310; static const uint16_t CMD_VID_FOCUS_METRIC_THRESHOLD = 0x0314; static const uint16_t CMD_VID_FOCUS_METRIC = 0x0318; static const uint16_t CMD_VID_FREEZE_ENABLE = 0x0324; // static const uint16_t CMD_OEM_SYNC_SET = 0x4854; //static const uint16_t CMD_OEM_SYNC_GET = 0x4864; static const uint16_t CMD_OEM_DELAY_SET = 0x4858; static const uint16_t STATUS_BIT_BUSY = 1; static const uint16_t STATUS_BIT_BOOT_MODE = 2; static const uint16_t STATUS_BIT_BOOT_STATUS = 4; // Create a new Lepton instance Lepton(int sdaPin, int sclPin, int ssPin, int syncPin); // Start Lepton access bool begin(); // Read a (16-bit) register uint16_t readRegister(uint16_t reg); // Write a (16-bit) register void writeRegister(uint16_t reg, uint16_t value); // Do a get command, and get the resulting data uint16_t doGetCommand(uint16_t commandIdBase, uint16_t* data); // Do a set command, using the provided data void doSetCommand(uint16_t commandIdBase, uint16_t* data, uint16_t dataLen); // Do a run command, using the provided data and returning the result in the same buffer uint16_t doRunCommand(uint16_t commandIdBase, uint16_t* data, uint16_t dataLen); void end(); // (Re-)synchronize the frame stream void syncFrame(); void getRawValues(); // Read a frame into a 80 * 60 uint16_t buffer int readFrame(uint16_t* data); //int read160X120Frame(uint16_t* data); int read_160x120_Frame(uint16_t* data); void reset(); // Read completely raw frame data - for debugging purposes void readFrameRaw(uint16_t* data); uint16_t wait_160X120_NextFrame(); // checks if the lepton device is actually on the I2C bus inline bool i2cAvail(void) { return _i2cAvail; }; private: // Device ID on the I2C interface static const uint8_t DEVICE_ID = 0x2A; // Command types static const uint16_t TYPE_GET = 0; static const uint16_t TYPE_SET = 1; static const uint16_t TYPE_RUN = 2; bool _i2cAvail = true; // Start I2C transmission relating to a specific register void startTransmission(uint16_t reg); // Transmit a word over I2C void transmitWord(uint16_t value); // End I2C transmission void endTransmission(); // Read a word over I2C uint16_t readWord(); // Set the current register over I2C void setRegister(uint16_t reg); // Wait for the camera to become idle, e.g. after performing a command bool waitIdle(); // return true for OK // Read data from a buffer uint16_t readData(uint16_t* data); // Write data to a buffer void writeData(uint16_t* data, uint16_t dataLen); // Read a word of frame data over SPI uint16_t readFrameWord(); // Wait for the next frame over SPI uint16_t waitNextFrame(); //uint16_t wait_160X120_NextFrame(); // Dump a buffer as hex to serial - for debugging purposes void dumpHex(uint16_t *data, int dataLen); bool savePackage(byte line, byte segment); int getPackage(byte line, byte seg); // SDA, SCL and SPI CS pins int _sdaPin; int _sclPin; int _ssPin; int _syncPin; }; #endif ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT.h ================================================ #include "ColorT_0000_16.h" #include "ColorT_0001_15.h" #include "ColorT_0002_14.h" #include "ColorT_0003_13.h" #include "ColorT_0004_12.h" #include "ColorT_0005_11.h" #include "ColorT_0006_10.h" #include "ColorT_0007_9.h" #include "ColorT_0008_8.h" #include "ColorT_0009_7.h" #include "ColorT_0010_6.h" #include "ColorT_0011_5.h" #include "ColorT_0012_4.h" #include "ColorT_0013_3.h" #include "ColorT_0014_2.h" #include "ColorT_0015_1.h" #include "ColorT_0016_0.h" ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0000_16.h ================================================ // extern const uint16_t ColorT_0000_16[3650]; const uint16_t ColorT_0000_16[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff7c, 0xfdf5, 0xfd11, 0xfcf1, 0xfcf1, 0xfcd1, 0xfcb1, 0xfcb1, 0xfc91, 0xfc91, 0xfc91, 0xfc71, 0xfc71, 0xfc71, 0xfc51, 0xfc51, 0xfc51, 0xfc51, 0xfc51, 0xfc51, 0xfc51, 0xfc51, 0xfc51, 0xfc71, 0xfc71, 0xfc71, 0xfc91, 0xfc91, 0xfcb1, 0xfcb1, 0xfcd1, 0xfcd1, 0xfcf1, 0xfcf1, 0xfd11, 0xfd11, 0xfd31, 0xfd50, 0xfdd4, 0xff3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfd30, 0xfa42, 0xf960, 0xf940, 0xf8e0, 0xf8c0, 0xf880, 0xf860, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf960, 0xf9a0, 0xf9c0, 0xfa00, 0xfa80, 0xfc8b, 0xff7b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfc8c, 0xf9a0, 0xf9c0, 0xf9a0, 0xf980, 0xf940, 0xf920, 0xf900, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf920, 0xf940, 0xf960, 0xf9a0, 0xf9c0, 0xfa00, 0xfa20, 0xfa40, 0xfa80, 0xfaa0, 0xfa60, 0xfb63, 0xff1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xfd92, 0xf9e0, 0xfa00, 0xf9c0, 0xf980, 0xf960, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa20, 0xfa60, 0xfa80, 0xfac0, 0xfb00, 0xfae0, 0xfc04, 0xffbd, 0xffff, 0xffff, 0xff9d, 0xfac2, 0xf9e0, 0xf9e0, 0xf9c0, 0xf980, 0xf940, 0xf920, 0xf900, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf880, 0xf8a0, 0xf8e0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa20, 0xfa40, 0xfa80, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb20, 0xfe11, 0xffff, 0xffff, 0xfe14, 0xf9e0, 0xfa00, 0xf9c0, 0xf9a0, 0xf960, 0xf940, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8c0, 0xf900, 0xf920, 0xf940, 0xf960, 0xf9a0, 0xf9c0, 0xfa00, 0xfa20, 0xfa40, 0xfa80, 0xfa80, 0xfac0, 0xfb00, 0xfb40, 0xfb60, 0xfb40, 0xfcc8, 0xffff, 0xffff, 0xfd71, 0xf9c0, 0xfa00, 0xf9c0, 0xf980, 0xf960, 0xf920, 0xf8e0, 0xf8e0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa40, 0xfa60, 0xfa80, 0xfac0, 0xfb00, 0xfb20, 0xfb40, 0xfb60, 0xfb80, 0xfca6, 0xffff, 0xffff, 0xfdf4, 0xf9c0, 0xf9e0, 0xf9a0, 0xf960, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf920, 0xf940, 0xf980, 0xf9a0, 0xf9c0, 0xfa00, 0xfa20, 0xfa40, 0xfa80, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb60, 0xfba0, 0xfba0, 0xfd08, 0xffff, 0xffff, 0xff5b, 0xfa20, 0xf9a0, 0xf9a0, 0xf940, 0xf920, 0xf900, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf820, 0xf860, 0xf880, 0xf880, 0xf8a0, 0xf8c0, 0xf900, 0xf920, 0xf940, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa40, 0xfa80, 0xfaa0, 0xfac0, 0xfb00, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfb80, 0xfe52, 0xffff, 0xffff, 0xffff, 0xfc6d, 0xf920, 0xf980, 0xf940, 0xf920, 0xf8e0, 0xf8c0, 0xf8a0, 0xf860, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf940, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xfa00, 0xfa20, 0xfa60, 0xfa80, 0xfac0, 0xfae0, 0xfb20, 0xfb40, 0xfb60, 0xfba0, 0xfba0, 0xfca5, 0xffde, 0xffff, 0xffff, 0xffff, 0xffbe, 0xfb48, 0xf8e0, 0xf900, 0xf8e0, 0xf8e0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf800, 0xf820, 0xf840, 0xf860, 0xf860, 0xf880, 0xf8a0, 0xf8e0, 0xf900, 0xf920, 0xf940, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa40, 0xfa80, 0xfac0, 0xfae0, 0xfb00, 0xfb40, 0xfb60, 0xfba0, 0xfb80, 0xfc43, 0xff5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbe, 0xfc2e, 0xf961, 0xf880, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf940, 0xf940, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa60, 0xfa80, 0xfac0, 0xfae0, 0xfb20, 0xfb40, 0xfbc0, 0xfd4a, 0xff9c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff3c, 0xfd74, 0xfcb1, 0xfc90, 0xfc71, 0xfc70, 0xfc51, 0xfc50, 0xfc51, 0xfc31, 0xfc31, 0xfc50, 0xfc30, 0xfb4c, 0xf800, 0xf820, 0xf820, 0xf840, 0xf860, 0xf860, 0xf8a0, 0xf8a0, 0xf8e0, 0xf900, 0xf920, 0xf920, 0xfb28, 0xfd11, 0xfd31, 0xfd31, 0xfd51, 0xfd50, 0xfd71, 0xfd90, 0xfd90, 0xfdb0, 0xfdd1, 0xfdd1, 0xfe73, 0xff5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe79, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf900, 0xfcf0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf920, 0xf960, 0xf920, 0xfcb0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe17, 0xf800, 0xf840, 0xf860, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf900, 0xf920, 0xf960, 0xf960, 0xf940, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf940, 0xf960, 0xf9a0, 0xf960, 0xfccf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf840, 0xf860, 0xf880, 0xf8c0, 0xf8e0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9a0, 0xf980, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf960, 0xf9a0, 0xf9c0, 0xf9a0, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf820, 0xf860, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf940, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xf9c0, 0xfd0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf840, 0xf880, 0xf8a0, 0xf8e0, 0xf900, 0xf920, 0xf940, 0xf980, 0xf9a0, 0xf9c0, 0xfa00, 0xf9e0, 0xfd0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf840, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf960, 0xf9a0, 0xf9c0, 0xf9e0, 0xfa20, 0xfa00, 0xfd2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf860, 0xf8a0, 0xf8e0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xfa00, 0xfa40, 0xfa20, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe37, 0xf860, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf960, 0xf9a0, 0xf9e0, 0xfa00, 0xfa20, 0xfa60, 0xfa40, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf880, 0xf8c0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xfa00, 0xfa20, 0xfa40, 0xfa80, 0xfa80, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf8a0, 0xf8e0, 0xf920, 0xf960, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa40, 0xfa80, 0xfaa0, 0xfa80, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf8c0, 0xf900, 0xf940, 0xf980, 0xf9a0, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfac0, 0xfd8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf8c0, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa40, 0xfa80, 0xfac0, 0xfae0, 0xfae0, 0xfd8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf8e0, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa40, 0xfa80, 0xfaa0, 0xfae0, 0xfb20, 0xfb00, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf900, 0xf960, 0xf980, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb20, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf920, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa60, 0xfa80, 0xfac0, 0xfb00, 0xfb20, 0xfb60, 0xfb60, 0xfdcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf940, 0xf9a0, 0xf9c0, 0xfa00, 0xfa40, 0xfa80, 0xfaa0, 0xfae0, 0xfb20, 0xfb40, 0xfb80, 0xfb80, 0xfdef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf960, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb60, 0xfba0, 0xfba0, 0xfdef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe77, 0xf980, 0xf9e0, 0xfa00, 0xfa40, 0xfa80, 0xfac0, 0xfb00, 0xfb20, 0xfb60, 0xfba0, 0xfbc0, 0xfbc0, 0xfe0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf9a0, 0xfa00, 0xfa40, 0xfa60, 0xfaa0, 0xfae0, 0xfb20, 0xfb40, 0xfb80, 0xfbc0, 0xfbe0, 0xfbe0, 0xfe0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe77, 0xf9c0, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc20, 0xfc00, 0xfe2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xf9e0, 0xfa40, 0xfa80, 0xfac0, 0xfae0, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfc00, 0xfc40, 0xfc40, 0xfe4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe97, 0xfa00, 0xfa60, 0xfaa0, 0xfae0, 0xfb20, 0xfb40, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc60, 0xfc60, 0xfe4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe97, 0xfa20, 0xfa80, 0xfae0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfc80, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb7, 0xfa40, 0xfaa0, 0xfb00, 0xfb20, 0xfb60, 0xfba0, 0xfbe0, 0xfc00, 0xfc40, 0xfc60, 0xfca0, 0xfca0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xfa80, 0xfae0, 0xfb20, 0xfb40, 0xfb80, 0xfbc0, 0xfc00, 0xfc20, 0xfc60, 0xfca0, 0xfcc0, 0xfcc0, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb7, 0xfaa0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfce0, 0xfce0, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfac0, 0xfb20, 0xfb60, 0xfba0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd00, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfae0, 0xfb40, 0xfb80, 0xfbc0, 0xfc00, 0xfc40, 0xfc60, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd20, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfb20, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc60, 0xfca0, 0xfcc0, 0xfce0, 0xfd20, 0xfd40, 0xfd40, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfb40, 0xfba0, 0xfbe0, 0xfc00, 0xfc40, 0xfc80, 0xfcc0, 0xfce0, 0xfd00, 0xfd40, 0xfd60, 0xfd60, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfb60, 0xfbc0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd20, 0xfd60, 0xfd80, 0xfd80, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfba0, 0xfbe0, 0xfc40, 0xfc60, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd80, 0xfda0, 0xfd80, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfbc0, 0xfc20, 0xfc40, 0xfc80, 0xfcc0, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfda0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfbe0, 0xfc40, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff17, 0xfc20, 0xfc60, 0xfca0, 0xfce0, 0xfd00, 0xfd20, 0xfd40, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfc40, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfde0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff17, 0xfc60, 0xfcc0, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfde0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff37, 0xfca0, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xf5e0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfcc0, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfde0, 0xf600, 0xede0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff37, 0xfce0, 0xfd20, 0xfd40, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfde0, 0xf600, 0xede0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfde0, 0xfde0, 0xfe00, 0xfde0, 0xf600, 0xf600, 0xede0, 0xf6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd20, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe5e0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfd40, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xee01, 0xdde0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd60, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xede0, 0xee00, 0xe600, 0xdde0, 0xef10, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfd80, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xede0, 0xee00, 0xe601, 0xde01, 0xd5e0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf5e0, 0xf600, 0xee00, 0xe601, 0xde01, 0xde01, 0xcde0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe601, 0xde01, 0xde01, 0xd601, 0xc5c0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfdc0, 0xfde0, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe600, 0xdde1, 0xde01, 0xd5e1, 0xcde1, 0xc5e0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfdc0, 0xfde0, 0xf600, 0xf600, 0xee00, 0xe600, 0xe600, 0xde00, 0xd601, 0xce01, 0xc5e2, 0xbde0, 0xdf10, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xf600, 0xf600, 0xf600, 0xe600, 0xe601, 0xdde1, 0xd601, 0xce01, 0xc601, 0xc5e2, 0xb5e0, 0xd6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff98, 0xfde0, 0xf600, 0xee00, 0xe5e0, 0xe601, 0xde01, 0xd601, 0xce01, 0xc601, 0xc602, 0xbe02, 0xade0, 0xd711, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbb, 0xf600, 0xf5e0, 0xee00, 0xe5e0, 0xde01, 0xdde1, 0xce01, 0xce02, 0xc601, 0xb5e2, 0xae02, 0xa5e1, 0xdf35, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf668, 0xede0, 0xe5e0, 0xde00, 0xd601, 0xd5e1, 0xcde1, 0xc601, 0xbe02, 0xb602, 0xa602, 0xa604, 0xf7dc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff97, 0xe600, 0xe5e0, 0xdde1, 0xd601, 0xce02, 0xc601, 0xbe02, 0xb5e3, 0xae02, 0x9de0, 0xd712, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf733, 0xdde1, 0xd5e0, 0xce01, 0xc601, 0xbe02, 0xb602, 0xa5e2, 0x9de1, 0xc6ae, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf777, 0xd668, 0xc601, 0xbde0, 0xb5e1, 0xa5e1, 0xb646, 0xd713, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7ba, 0xef56, 0xe756, 0xef99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0001_15.h ================================================ // extern const uint16_t ColorT_0001_15[3650]; const uint16_t ColorT_0001_15[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff5c, 0xfd55, 0xfc71, 0xfc50, 0xfc51, 0xfc71, 0xfc71, 0xfc71, 0xfc71, 0xfc91, 0xfc91, 0xfcb1, 0xfcd1, 0xfcf1, 0xfcf1, 0xfcf1, 0xfd11, 0xfd31, 0xfd31, 0xfd51, 0xfd71, 0xfd91, 0xfd91, 0xfdb1, 0xfdb1, 0xfdd1, 0xfdf1, 0xfe11, 0xfe11, 0xfe31, 0xfe51, 0xfe51, 0xfe71, 0xfe91, 0xfe91, 0xfeb1, 0xfeb1, 0xfed1, 0xff14, 0xff9b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfc31, 0xf882, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa20, 0xfa40, 0xfa80, 0xfac0, 0xfb00, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfcc0, 0xfce0, 0xfd20, 0xfd20, 0xfd60, 0xfda0, 0xfe6a, 0xffbc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfb2d, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8c0, 0xf8c0, 0xf900, 0xf920, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfac0, 0xfb00, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfcc0, 0xfce0, 0xfd20, 0xfd20, 0xfd60, 0xfd80, 0xfd80, 0xfda0, 0xfda0, 0xfe23, 0xff9a, 0xffff, 0xffff, 0xffff, 0xffff, 0xfcb2, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa40, 0xfa80, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbc0, 0xfc00, 0xfc40, 0xfc60, 0xfca0, 0xfcc0, 0xfce0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfdc0, 0xfe44, 0xffde, 0xffff, 0xffff, 0xff5d, 0xf8a2, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8e0, 0xf8e0, 0xf920, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa40, 0xfa60, 0xfaa0, 0xfac0, 0xfb00, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd60, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfde0, 0xfde0, 0xff11, 0xffff, 0xffff, 0xfd34, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf940, 0xf960, 0xf9a0, 0xf9c0, 0xf9e0, 0xfa20, 0xfa40, 0xfa80, 0xfac0, 0xfae0, 0xfb20, 0xfb40, 0xfb80, 0xfbc0, 0xfbe0, 0xfc00, 0xfc40, 0xfc80, 0xfca0, 0xfcc0, 0xfce0, 0xfd00, 0xfd20, 0xfd40, 0xfd80, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfde0, 0xf688, 0xffff, 0xffff, 0xfc51, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf900, 0xf920, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa40, 0xfa60, 0xfaa0, 0xfac0, 0xfb00, 0xfb40, 0xfb60, 0xfba0, 0xfbe0, 0xfc00, 0xfc20, 0xfc60, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfde0, 0xf5e0, 0xfe66, 0xffff, 0xffff, 0xfd14, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf960, 0xf9a0, 0xf9c0, 0xf9e0, 0xfa20, 0xfa40, 0xfa80, 0xfac0, 0xfb00, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfcc0, 0xfd00, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfde0, 0xfe00, 0xf5e0, 0xfe89, 0xffff, 0xffff, 0xfefb, 0xf820, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf900, 0xf920, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa40, 0xfa80, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb60, 0xfba0, 0xfbe0, 0xfbe0, 0xfc40, 0xfc60, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd20, 0xfd40, 0xfd80, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfde0, 0xf600, 0xf5e0, 0xff32, 0xffff, 0xffff, 0xffff, 0xfb6d, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfa80, 0xfac0, 0xfae0, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc60, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfde0, 0xfde0, 0xf5e0, 0xf645, 0xfffe, 0xffff, 0xffff, 0xffff, 0xff9e, 0xfa08, 0xf800, 0xf800, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf980, 0xf9c0, 0xf9e0, 0xfa00, 0xfa40, 0xfa60, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc00, 0xfc40, 0xfc80, 0xfca0, 0xfcc0, 0xfce0, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfde0, 0xfe00, 0xf5c0, 0xf644, 0xffba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbe, 0xfb8d, 0xf882, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf880, 0xf8a0, 0xf8c0, 0xf900, 0xf920, 0xf960, 0xf9a0, 0xf9e0, 0xfa60, 0xfa80, 0xfac0, 0xfb00, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc60, 0xfc80, 0xfca0, 0xfcc0, 0xfce0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xf5e0, 0xf6ab, 0xffdb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff1c, 0xfd55, 0xfc70, 0xfc90, 0xfc91, 0xfcb0, 0xfcb1, 0xfcd0, 0xfcd0, 0xfcf0, 0xfd10, 0xfd31, 0xfd30, 0xfc8d, 0xfa80, 0xfaa0, 0xfae0, 0xfb20, 0xfb40, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfda8, 0xfe91, 0xfe91, 0xfeb1, 0xfed1, 0xfed0, 0xfef0, 0xfef0, 0xfef0, 0xff10, 0xff10, 0xff11, 0xff34, 0xffba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef9, 0xfa60, 0xfac0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc00, 0xfc40, 0xfc60, 0xfca0, 0xfc80, 0xfe90, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfa80, 0xfae0, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc60, 0xfc80, 0xfcc0, 0xfca0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb7, 0xfaa0, 0xfb00, 0xfb40, 0xfb60, 0xfba0, 0xfbe0, 0xfc00, 0xfc40, 0xfc60, 0xfca0, 0xfcc0, 0xfcc0, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb7, 0xfac0, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfc00, 0xfc20, 0xfc60, 0xfc80, 0xfca0, 0xfce0, 0xfce0, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfae0, 0xfb40, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfcc0, 0xfd00, 0xfd00, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfb00, 0xfb60, 0xfba0, 0xfbe0, 0xfc00, 0xfc40, 0xfc60, 0xfca0, 0xfcc0, 0xfce0, 0xfd20, 0xfd20, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfb20, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc60, 0xfc80, 0xfcc0, 0xfce0, 0xfd00, 0xfd20, 0xfd20, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfb40, 0xfba0, 0xfbe0, 0xfc00, 0xfc40, 0xfc60, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd40, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfb60, 0xfbc0, 0xfbe0, 0xfc20, 0xfc60, 0xfca0, 0xfcc0, 0xfce0, 0xfd00, 0xfd40, 0xfd60, 0xfd40, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef7, 0xfb80, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd20, 0xfd60, 0xfd80, 0xfd60, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef7, 0xfba0, 0xfbe0, 0xfc40, 0xfc60, 0xfca0, 0xfcc0, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfd80, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfbc0, 0xfc20, 0xfc60, 0xfc80, 0xfcc0, 0xfce0, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfda0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfbe0, 0xfc40, 0xfc80, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfdc0, 0xfda0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfc00, 0xfc60, 0xfca0, 0xfcc0, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff17, 0xfc20, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfc40, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfc60, 0xfcc0, 0xfce0, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfde0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff37, 0xfc80, 0xfce0, 0xfd00, 0xfd20, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfdc0, 0xff0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfca0, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xfdc0, 0xff0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfcc0, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfde0, 0xf5e0, 0xff0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfce0, 0xfd20, 0xfd40, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf5e0, 0xede0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd00, 0xfd40, 0xfd60, 0xfda0, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xede0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd20, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xede0, 0xf6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd40, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfde0, 0xf600, 0xf600, 0xee00, 0xe5c0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf5e0, 0xf600, 0xee00, 0xee00, 0xdde0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd60, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xf600, 0xf5e0, 0xee00, 0xee00, 0xe600, 0xdde0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfd80, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe5e0, 0xde00, 0xd5c0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe5e0, 0xe600, 0xdde1, 0xd5e0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfda0, 0xfde0, 0xfde0, 0xfe00, 0xfde0, 0xf600, 0xee00, 0xee00, 0xe600, 0xde01, 0xd601, 0xcde0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf5e0, 0xf600, 0xee00, 0xe601, 0xde00, 0xde01, 0xd601, 0xc5e0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe600, 0xe601, 0xde01, 0xd601, 0xce01, 0xc5e0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfe00, 0xf600, 0xf600, 0xee00, 0xee00, 0xe600, 0xde01, 0xd601, 0xce01, 0xc601, 0xbde0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfde0, 0xfe00, 0xf5e0, 0xf600, 0xee00, 0xe5e0, 0xde01, 0xdde1, 0xce01, 0xcde1, 0xc602, 0xb5e0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xf600, 0xf600, 0xede0, 0xe600, 0xdde1, 0xde01, 0xd5e1, 0xce01, 0xc5e2, 0xbde2, 0xb5e0, 0xd6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xf600, 0xee00, 0xe5e0, 0xe600, 0xde01, 0xd601, 0xce01, 0xc601, 0xc602, 0xb5e2, 0xade0, 0xd6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xee00, 0xee01, 0xe600, 0xde01, 0xd5e1, 0xd5e1, 0xce02, 0xc601, 0xb602, 0xb602, 0xa5e0, 0xd6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xee00, 0xe5e1, 0xde01, 0xdde1, 0xce01, 0xce01, 0xc601, 0xbe02, 0xb602, 0xade2, 0x9de0, 0xcef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xe600, 0xdde1, 0xde01, 0xd601, 0xce01, 0xc5e1, 0xbe02, 0xb602, 0xae02, 0xa602, 0x95e1, 0xcef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff98, 0xede0, 0xe600, 0xde01, 0xd5e1, 0xce01, 0xc601, 0xc602, 0xbe02, 0xade2, 0xa602, 0xa5e3, 0x95e1, 0xc6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xe5e0, 0xde01, 0xd601, 0xd601, 0xc601, 0xc602, 0xbe02, 0xb602, 0xae02, 0x9e03, 0x9e03, 0x8de1, 0xc6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff98, 0xdde0, 0xde01, 0xd601, 0xce01, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa603, 0x9e03, 0x9603, 0x85e2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xdde0, 0xd601, 0xce01, 0xc601, 0xbe02, 0xb5e2, 0xae02, 0xa5e3, 0x9e03, 0x9603, 0x8e03, 0x7de2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf798, 0xd5e0, 0xce01, 0xc601, 0xbe01, 0xb5e2, 0xae02, 0xa602, 0x9e03, 0x9603, 0x8e03, 0x8603, 0x75e2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xd5e0, 0xc601, 0xc602, 0xb5e2, 0xae02, 0xae02, 0x9e03, 0x95e3, 0x8e03, 0x8de4, 0x7e04, 0x6de2, 0xbef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xcde0, 0xc601, 0xbe02, 0xb602, 0xae02, 0xa603, 0x9603, 0x9603, 0x8603, 0x8604, 0x7604, 0x65e3, 0xb6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf798, 0xc5e1, 0xbe02, 0xb602, 0xade2, 0xa603, 0x9e03, 0x9603, 0x8e03, 0x8604, 0x7de4, 0x7604, 0x5de3, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf798, 0xbde1, 0xb602, 0xae02, 0xa603, 0x9e03, 0x9603, 0x8de3, 0x8604, 0x7e04, 0x75e4, 0x6e04, 0x55e3, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xb5e1, 0xae02, 0xa602, 0x9e03, 0x9603, 0x8e03, 0x8603, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x4de4, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xade1, 0xade2, 0xa5e3, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x75e4, 0x6e04, 0x6605, 0x5e05, 0x45c4, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xade1, 0x9e02, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x6de4, 0x6605, 0x5e05, 0x55e5, 0x3dc4, 0xa712, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xa5e2, 0x9e03, 0x95e3, 0x8e03, 0x7de4, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x4e06, 0x35c4, 0x9ef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x9de2, 0x9603, 0x8e03, 0x85e4, 0x7e04, 0x75e4, 0x65e4, 0x5de5, 0x55e5, 0x4e05, 0x4606, 0x2de4, 0x9ef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe798, 0x95e2, 0x8e03, 0x8604, 0x7e04, 0x6e04, 0x6605, 0x65e5, 0x5605, 0x4e06, 0x4606, 0x3e06, 0x2de5, 0x96f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x8de3, 0x8604, 0x7de4, 0x7604, 0x6e04, 0x5e05, 0x5de5, 0x5605, 0x45e6, 0x45e6, 0x3de7, 0x25c5, 0x96f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7bb, 0x8e04, 0x7e03, 0x7604, 0x6de5, 0x5de5, 0x5e05, 0x5605, 0x4606, 0x3e06, 0x3de6, 0x2de7, 0x1de6, 0xaf56, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9e6b, 0x6de3, 0x6de4, 0x65e5, 0x5e05, 0x55e5, 0x4e06, 0x3de6, 0x3de7, 0x3606, 0x2606, 0x2e08, 0xe7dd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x6de4, 0x65e4, 0x5e05, 0x55e5, 0x4e06, 0x3e06, 0x3e06, 0x3606, 0x2607, 0x15c5, 0x9714, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc735, 0x55e4, 0x4de4, 0x4de6, 0x45e6, 0x3de6, 0x3606, 0x25e6, 0x15e6, 0x7ed1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd778, 0x766b, 0x45e6, 0x35e5, 0x2de6, 0x25e6, 0x464b, 0xa735, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdfbb, 0xc758, 0xbf58, 0xd79a, 0xfffe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0002_14.h ================================================ // extern const uint16_t ColorT_0002_14[3650]; const uint16_t ColorT_0002_14[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff5d, 0xfdb5, 0xfcf1, 0xfcf1, 0xfd11, 0xfd31, 0xfd51, 0xfd51, 0xfd71, 0xfd91, 0xfdb1, 0xfdb1, 0xfdd1, 0xfdf1, 0xfdf1, 0xfe11, 0xfe31, 0xfe51, 0xfe51, 0xfe71, 0xfe71, 0xfe90, 0xfeb1, 0xfeb1, 0xfed1, 0xfed1, 0xfef1, 0xfef1, 0xfef1, 0xfef1, 0xff10, 0xff11, 0xff11, 0xff11, 0xff11, 0xf711, 0xf710, 0xf711, 0xf754, 0xffba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfcb1, 0xf962, 0xf8e0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xf5e0, 0xf5e0, 0xedc0, 0xede0, 0xe5e0, 0xdde0, 0xdde0, 0xde01, 0xdeab, 0xffdc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfbac, 0xf860, 0xf900, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa40, 0xfa80, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc00, 0xfc40, 0xfc60, 0xfca0, 0xfcc0, 0xfce0, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xf600, 0xee00, 0xe600, 0xe600, 0xdde1, 0xde01, 0xd601, 0xcde0, 0xce24, 0xf7ba, 0xffff, 0xffff, 0xffff, 0xffff, 0xfcf2, 0xf860, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa40, 0xfa80, 0xfac0, 0xfb00, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc60, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xfe00, 0xf5e0, 0xf5e0, 0xf600, 0xee00, 0xe5e1, 0xde01, 0xdde0, 0xd5e1, 0xce01, 0xcde1, 0xc5e0, 0xce46, 0xffde, 0xffff, 0xffff, 0xff7d, 0xf942, 0xf8c0, 0xf900, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc20, 0xfc40, 0xfc60, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xf600, 0xee00, 0xe600, 0xe600, 0xde01, 0xde01, 0xd601, 0xcde1, 0xc602, 0xbe02, 0xb5c0, 0xdf12, 0xffff, 0xffff, 0xfd94, 0xf860, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9a0, 0xfa00, 0xfa20, 0xfa60, 0xfa80, 0xfaa0, 0xfae0, 0xfb20, 0xfb60, 0xfba0, 0xfbc0, 0xfbe0, 0xfc20, 0xfc60, 0xfc80, 0xfca0, 0xfce0, 0xfd00, 0xfd20, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xee01, 0xe5e0, 0xde01, 0xde01, 0xd601, 0xce01, 0xc601, 0xc602, 0xbe02, 0xb5e1, 0xc68a, 0xffff, 0xffff, 0xfcb1, 0xf860, 0xf900, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfac0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xf600, 0xee00, 0xe600, 0xde00, 0xde00, 0xd601, 0xce01, 0xcde1, 0xc601, 0xc602, 0xbe02, 0xade1, 0xbe68, 0xffff, 0xffff, 0xfd74, 0xf880, 0xf920, 0xf940, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa40, 0xfa80, 0xfac0, 0xfae0, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc60, 0xfca0, 0xfcc0, 0xfce0, 0xfd00, 0xfd20, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xfde0, 0xf5e0, 0xf600, 0xee00, 0xee00, 0xe601, 0xde01, 0xdde1, 0xd601, 0xce01, 0xcde1, 0xc5e2, 0xbde2, 0xb602, 0xade1, 0xc68a, 0xffff, 0xffff, 0xff1b, 0xf921, 0xf920, 0xf960, 0xf9a0, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfde0, 0xfe00, 0xf5e0, 0xf600, 0xee00, 0xee00, 0xe600, 0xde01, 0xde01, 0xd601, 0xcde1, 0xce02, 0xc601, 0xbe02, 0xb602, 0xae02, 0xa5c0, 0xdf33, 0xffff, 0xffff, 0xffff, 0xfc0e, 0xf8c0, 0xf960, 0xf9a0, 0xf9e0, 0xfa00, 0xfa40, 0xfa80, 0xfaa0, 0xfae0, 0xfb20, 0xfb60, 0xfb80, 0xfbc0, 0xfc00, 0xfc40, 0xfc60, 0xfca0, 0xfcc0, 0xfce0, 0xfd20, 0xfd20, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf5e0, 0xf5e0, 0xee00, 0xee00, 0xe600, 0xe601, 0xde01, 0xd601, 0xce02, 0xce01, 0xc5e1, 0xbe02, 0xbe02, 0xb603, 0xa5e1, 0xb647, 0xffde, 0xffff, 0xffff, 0xffff, 0xffbe, 0xfb08, 0xf920, 0xf9c0, 0xf9e0, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb80, 0xfbc0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfcc0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfdc0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe600, 0xe600, 0xde01, 0xd601, 0xd601, 0xce01, 0xc601, 0xc602, 0xbe02, 0xb5e2, 0xade0, 0xb625, 0xefba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbe, 0xfc6d, 0xfa21, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfb20, 0xfb40, 0xfb80, 0xfbc0, 0xfc00, 0xfc20, 0xfc60, 0xfcc0, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfde0, 0xf600, 0xf5c0, 0xede0, 0xe5c0, 0xe5c0, 0xdde0, 0xdde0, 0xd5e0, 0xcde0, 0xc5e0, 0xc5e0, 0xb5c0, 0xade0, 0xae02, 0xc68c, 0xf7bc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff3c, 0xfdf5, 0xfd71, 0xfd71, 0xfd90, 0xfdb0, 0xfdd0, 0xfdf0, 0xfe10, 0xfe10, 0xfe30, 0xfe50, 0xfe50, 0xfe0c, 0xfcc0, 0xfd00, 0xfd20, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xfde0, 0xf668, 0xff11, 0xf711, 0xf711, 0xf711, 0xf711, 0xef11, 0xef11, 0xe711, 0xe711, 0xe711, 0xdf12, 0xe754, 0xf7bb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff79, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xfde0, 0xf5e0, 0xff10, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfce0, 0xfd40, 0xfd40, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfde0, 0xf600, 0xede0, 0xf70f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xede0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfd20, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xede0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xf600, 0xede0, 0xf6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd40, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe5e0, 0xf710, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd60, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xee00, 0xe5e0, 0xeeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd60, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xf600, 0xee00, 0xe600, 0xdde0, 0xeeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfd80, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xede0, 0xee01, 0xe600, 0xdde0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xf600, 0xf600, 0xee00, 0xede1, 0xe601, 0xde01, 0xd5c0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfda0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf5e0, 0xf600, 0xee00, 0xe5e0, 0xdde1, 0xde00, 0xd5c0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe5e0, 0xe601, 0xde01, 0xd601, 0xcdc0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xede0, 0xee00, 0xe601, 0xe601, 0xde01, 0xd601, 0xcdc0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe600, 0xe601, 0xde01, 0xd5e1, 0xce01, 0xc5e0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfe00, 0xf600, 0xf5e0, 0xee00, 0xee00, 0xe600, 0xde01, 0xd601, 0xd601, 0xce02, 0xc5e0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff97, 0xfde0, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe600, 0xde00, 0xde01, 0xd601, 0xce01, 0xc602, 0xbde0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff98, 0xfde0, 0xf5e0, 0xf5e0, 0xee00, 0xe600, 0xe601, 0xde01, 0xd5e1, 0xce01, 0xce02, 0xc602, 0xb5e0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xf5e0, 0xede0, 0xee00, 0xe600, 0xde01, 0xd601, 0xd5e1, 0xc601, 0xc602, 0xbe02, 0xade0, 0xd6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xf600, 0xee00, 0xe5e0, 0xde01, 0xde01, 0xd601, 0xcde1, 0xc601, 0xc602, 0xb5e2, 0xade0, 0xd6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xee00, 0xede1, 0xe600, 0xde01, 0xd601, 0xce01, 0xce02, 0xc602, 0xbe02, 0xb602, 0xa5e0, 0xd6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xee00, 0xe5e1, 0xde01, 0xde01, 0xd601, 0xce02, 0xc601, 0xbe02, 0xb5e2, 0xae02, 0xa5e0, 0xcef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xe600, 0xe601, 0xde01, 0xd601, 0xce01, 0xc5e1, 0xbe02, 0xb602, 0xade2, 0xa602, 0x9de1, 0xcef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xe600, 0xde01, 0xd601, 0xce01, 0xc601, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa603, 0x95e1, 0xc6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xe5e0, 0xde00, 0xdde1, 0xd5e1, 0xce01, 0xc601, 0xbde2, 0xb602, 0xade2, 0xa602, 0x9de3, 0x8de1, 0xc6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xe5e0, 0xde01, 0xd601, 0xcde1, 0xc601, 0xbe02, 0xb5e2, 0xade2, 0xa602, 0x9e03, 0x9603, 0x8de2, 0xc6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff98, 0xdde0, 0xd601, 0xce01, 0xcde1, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa603, 0x9de3, 0x9603, 0x85e2, 0xbf11, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xdde0, 0xd601, 0xce02, 0xc5e2, 0xbe02, 0xb5e2, 0xae02, 0xa602, 0x9e03, 0x9603, 0x8de3, 0x7de2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xd5e0, 0xce01, 0xc5e1, 0xbe02, 0xb602, 0xae02, 0xa602, 0x9de3, 0x9603, 0x8de3, 0x8604, 0x75e2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xcde0, 0xc601, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa5e3, 0x9603, 0x8e03, 0x8e03, 0x8604, 0x75e2, 0xb6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xcde0, 0xc601, 0xbe02, 0xb602, 0xae02, 0xa603, 0x9e03, 0x9603, 0x8e03, 0x85e4, 0x7e04, 0x6de2, 0xb6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xc5e1, 0xbe01, 0xb5e2, 0xae02, 0xa602, 0x9e03, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x65e3, 0xaf12, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xbde1, 0xb5e2, 0xade2, 0xae02, 0xa5e3, 0x9603, 0x8e03, 0x8603, 0x7e04, 0x7604, 0x6e04, 0x5de3, 0xaf12, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xb5e1, 0xb5e2, 0xae02, 0xa603, 0x9e03, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x6e05, 0x55e3, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xb5e1, 0xade2, 0xa603, 0x9e03, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x75e4, 0x6e04, 0x6605, 0x4de4, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xade1, 0xade2, 0x9e03, 0x95e3, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x6de5, 0x6605, 0x5e05, 0x45e4, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xa5e2, 0x9e03, 0x9603, 0x9603, 0x8604, 0x7de4, 0x7de4, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x3de4, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xa5e2, 0x9e03, 0x9603, 0x8de3, 0x8604, 0x7e04, 0x7604, 0x6604, 0x6605, 0x5605, 0x4de5, 0x3de4, 0x9ef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef98, 0x9de2, 0x9603, 0x8e03, 0x8604, 0x7de4, 0x7604, 0x6e05, 0x6605, 0x5e05, 0x5606, 0x4e06, 0x35e5, 0x9ef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x95e2, 0x8e03, 0x8604, 0x7e04, 0x75e4, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x4de6, 0x45e6, 0x2de5, 0x96f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x8de2, 0x8e03, 0x8604, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x4e06, 0x4606, 0x3e06, 0x25e5, 0x96f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x85e3, 0x8603, 0x7de4, 0x75e4, 0x6de5, 0x5e05, 0x5605, 0x4e05, 0x4606, 0x3e06, 0x35e6, 0x25e5, 0x96f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe779, 0x7de3, 0x7e04, 0x7604, 0x6e05, 0x6605, 0x5de5, 0x4e06, 0x4606, 0x4606, 0x3e06, 0x3607, 0x1dc6, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe779, 0x7de3, 0x7604, 0x6de4, 0x6605, 0x5e05, 0x5606, 0x4e06, 0x4606, 0x3e06, 0x3606, 0x2de7, 0x15e6, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe779, 0x75e3, 0x6e05, 0x6605, 0x5e05, 0x5605, 0x4e06, 0x4606, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x15c6, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x6de3, 0x6605, 0x5de5, 0x55e5, 0x4e06, 0x4606, 0x3e06, 0x3606, 0x2e07, 0x2607, 0x25e7, 0x0dc6, 0x86f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x65e4, 0x5e05, 0x55e5, 0x4de5, 0x45e6, 0x3e06, 0x3606, 0x2e07, 0x2607, 0x25e7, 0x1de8, 0x05a7, 0x86d3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x5de4, 0x5e05, 0x4e06, 0x4606, 0x3de6, 0x3e06, 0x3607, 0x2e07, 0x25e7, 0x1de8, 0x15c8, 0x05a7, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x55e4, 0x55e5, 0x4e06, 0x4606, 0x3e06, 0x3607, 0x2e07, 0x25e7, 0x1de8, 0x15e8, 0x15c8, 0x0587, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x4de5, 0x4e05, 0x45e6, 0x3e06, 0x3607, 0x2de7, 0x25e7, 0x1de8, 0x1de8, 0x15c8, 0x0dc9, 0x0567, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x45e5, 0x4606, 0x3de6, 0x3607, 0x2e07, 0x2607, 0x1de8, 0x1de8, 0x15c8, 0x0dc9, 0x05a9, 0x0568, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x45e5, 0x3e06, 0x3607, 0x2e07, 0x2e07, 0x25e7, 0x1de8, 0x15e8, 0x15a8, 0x0da9, 0x05a9, 0x0568, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x3de5, 0x3606, 0x3607, 0x2de7, 0x2607, 0x1de8, 0x15e8, 0x15c8, 0x0da9, 0x0589, 0x0589, 0x0548, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x35e6, 0x35e7, 0x2e07, 0x25e7, 0x1de8, 0x15e8, 0x15c9, 0x0da9, 0x05a9, 0x0589, 0x056a, 0x0549, 0x7e94, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf99, 0x2de6, 0x2e07, 0x2607, 0x1de7, 0x15c8, 0x0dc8, 0x0dc9, 0x05a9, 0x058a, 0x058a, 0x056a, 0x0528, 0x8695, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe7bc, 0x3608, 0x1de7, 0x1de8, 0x1dc8, 0x15c8, 0x0da8, 0x05a9, 0x0589, 0x0569, 0x0569, 0x054a, 0x0529, 0x9ef7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x5e8d, 0x15c6, 0x1de8, 0x15c8, 0x0dc9, 0x0da9, 0x0589, 0x056a, 0x056a, 0x056a, 0x054a, 0x0d4b, 0xe7bd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc779, 0x15c7, 0x0dc7, 0x0da8, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x052a, 0x04e9, 0x8eb6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9f36, 0x0da8, 0x0588, 0x0589, 0x0589, 0x056a, 0x054a, 0x0529, 0x0509, 0x6653, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf59, 0x3e0e, 0x0589, 0x0549, 0x0549, 0x052a, 0x258d, 0x96d6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd79c, 0xb739, 0xaf39, 0xcf7b, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0003_13.h ================================================ // extern const uint16_t ColorT_0003_13[3650]; const uint16_t ColorT_0003_13[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbc, 0xfef5, 0xfe91, 0xfe91, 0xfeb1, 0xfeb1, 0xfed1, 0xfed1, 0xfef1, 0xfef1, 0xfef1, 0xff11, 0xff11, 0xff11, 0xff11, 0xff11, 0xff11, 0xf711, 0xf711, 0xf711, 0xef11, 0xef11, 0xef11, 0xe712, 0xe711, 0xe712, 0xdf12, 0xdf12, 0xd712, 0xd712, 0xd712, 0xcf12, 0xcf12, 0xc712, 0xc712, 0xc713, 0xc713, 0xbf12, 0xc735, 0xe7bb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe30, 0xfc82, 0xfc60, 0xfc80, 0xfcc0, 0xfce0, 0xfd00, 0xfd20, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfde0, 0xf5e0, 0xede0, 0xede0, 0xe5e0, 0xe5e0, 0xdde0, 0xd5e0, 0xcde0, 0xc5e0, 0xc5e0, 0xbde0, 0xb5c0, 0xade0, 0xa5e0, 0x9de1, 0x95e1, 0x95e1, 0x85e2, 0x85e2, 0x7de2, 0x75e2, 0x6de2, 0x65e3, 0x5de3, 0x55e4, 0x5de6, 0x8eae, 0xefbc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfdac, 0xfc00, 0xfc60, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xf600, 0xf600, 0xf600, 0xee00, 0xe600, 0xe600, 0xde01, 0xd5e1, 0xcde1, 0xcde1, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa602, 0x9e02, 0x9de3, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x7de4, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x55e5, 0x3de4, 0x5e28, 0xdfbb, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe52, 0xfbe0, 0xfc60, 0xfc80, 0xfcc0, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe5e0, 0xe601, 0xde01, 0xd601, 0xd601, 0xce01, 0xc602, 0xbe02, 0xb602, 0xb602, 0xae02, 0xa603, 0x9de3, 0x9603, 0x8e03, 0x8603, 0x7e04, 0x7604, 0x7604, 0x6e04, 0x6604, 0x5e05, 0x55e5, 0x4e06, 0x4e06, 0x35e5, 0x5e4a, 0xf7fe, 0xffff, 0xffff, 0xffbd, 0xfc41, 0xfc20, 0xfc60, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe600, 0xde01, 0xde01, 0xd5e1, 0xce01, 0xc602, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa602, 0x9e03, 0x9603, 0x9603, 0x8de3, 0x8604, 0x7e04, 0x7604, 0x6de5, 0x6605, 0x5de5, 0x5e05, 0x5605, 0x4de6, 0x4606, 0x3e06, 0x2dc5, 0xa714, 0xffff, 0xffff, 0xfe95, 0xfbe0, 0xfc60, 0xfc80, 0xfcc0, 0xfce0, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe600, 0xe600, 0xdde1, 0xdde1, 0xce01, 0xce01, 0xc601, 0xbe02, 0xb602, 0xb602, 0xade3, 0xa603, 0x9e03, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x7604, 0x6de4, 0x5de4, 0x5e05, 0x55e6, 0x4de5, 0x4606, 0x45e6, 0x3e06, 0x2de5, 0x668d, 0xffff, 0xffff, 0xfe31, 0xfc00, 0xfc60, 0xfca0, 0xfcc0, 0xfd00, 0xfd20, 0xfd40, 0xfd60, 0xfda0, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xfde0, 0xf5e0, 0xede0, 0xee00, 0xe5e0, 0xde01, 0xde01, 0xd5e1, 0xce01, 0xc601, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa5e3, 0x9de3, 0x9603, 0x8e03, 0x8603, 0x8604, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x4e05, 0x4de6, 0x4606, 0x3e06, 0x3606, 0x25e6, 0x566c, 0xffff, 0xffff, 0xfe94, 0xfc20, 0xfc80, 0xfca0, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfde0, 0xfe00, 0xfde0, 0xf600, 0xf600, 0xee00, 0xe600, 0xde00, 0xde01, 0xd601, 0xd601, 0xce02, 0xc601, 0xbe02, 0xb5e2, 0xae02, 0xa603, 0xa5e3, 0x9e03, 0x95e3, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x5de5, 0x55e5, 0x4e06, 0x4606, 0x3e06, 0x3de6, 0x35e7, 0x25e5, 0x668e, 0xffff, 0xffff, 0xff7b, 0xfc81, 0xfc80, 0xfcc0, 0xfce0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xf600, 0xede1, 0xe601, 0xde01, 0xdde1, 0xce01, 0xcde1, 0xc601, 0xbde1, 0xb602, 0xb602, 0xae02, 0xa602, 0x9de3, 0x9603, 0x8e03, 0x8603, 0x7e04, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x4e06, 0x4606, 0x4606, 0x3de6, 0x35e7, 0x2de7, 0x1de5, 0xa735, 0xffff, 0xffff, 0xffff, 0xfe0d, 0xfc60, 0xfcc0, 0xfd00, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf600, 0xee00, 0xe600, 0xe5e0, 0xdde1, 0xd5e1, 0xce01, 0xc602, 0xc602, 0xbde2, 0xb602, 0xae02, 0xa602, 0x9de3, 0x9603, 0x8e03, 0x8e04, 0x85e4, 0x7de4, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x4e05, 0x4e06, 0x45e6, 0x3de6, 0x3607, 0x3607, 0x1e06, 0x4e4b, 0xf7fe, 0xffff, 0xffff, 0xffff, 0xffde, 0xfd88, 0xfca0, 0xfd20, 0xfd40, 0xfd60, 0xfd80, 0xfda0, 0xfdc0, 0xfde0, 0xfe00, 0xfe00, 0xf600, 0xf5e0, 0xf600, 0xee00, 0xe5e1, 0xde01, 0xde01, 0xcde1, 0xce01, 0xc5e1, 0xbe02, 0xb602, 0xb602, 0xade2, 0xa603, 0x9e03, 0x95e3, 0x8e03, 0x8603, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x6605, 0x5605, 0x55e5, 0x4e06, 0x4606, 0x3de6, 0x3606, 0x2e07, 0x1de5, 0x3e2a, 0xd79b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffde, 0xfe4d, 0xfd41, 0xfd20, 0xfd40, 0xfd80, 0xfda0, 0xfdc0, 0xfdc0, 0xfde0, 0xf5e0, 0xf5e0, 0xede0, 0xedc0, 0xe5e0, 0xdde0, 0xdde1, 0xd5e1, 0xce01, 0xc601, 0xc601, 0xbe02, 0xb602, 0xade2, 0xa603, 0x9e02, 0x9603, 0x8e03, 0x85e2, 0x75e2, 0x6de2, 0x65e3, 0x65e3, 0x55c3, 0x55e4, 0x4de4, 0x45e4, 0x3de4, 0x35e5, 0x2de5, 0x25e5, 0x2de7, 0x76af, 0xe7bc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbc, 0xff15, 0xfed1, 0xfef0, 0xfef1, 0xff10, 0xff10, 0xff10, 0xff10, 0xf710, 0xf711, 0xf711, 0xf711, 0xeecd, 0xd5e0, 0xd602, 0xce01, 0xc5e2, 0xbde2, 0xb602, 0xae02, 0xae02, 0xa5e3, 0x9de3, 0x9603, 0x85e3, 0xa66b, 0xc713, 0xbf13, 0xbf13, 0xbf13, 0xb713, 0xaf13, 0xaf13, 0xaf13, 0xa714, 0xa713, 0x9ef4, 0xaf36, 0xdfbb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf799, 0xd5e0, 0xce01, 0xc601, 0xbe02, 0xbe02, 0xb602, 0xae02, 0xa602, 0x9de3, 0x95e3, 0x8e03, 0x7dc2, 0xc712, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xd5e0, 0xcde1, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa603, 0x9de3, 0x9603, 0x95e3, 0x8604, 0x7de2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xcde0, 0xc602, 0xbde2, 0xbde2, 0xae02, 0xae02, 0xa5e2, 0x9e03, 0x9603, 0x8de3, 0x8604, 0x75e2, 0xbef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xcde0, 0xc601, 0xbe02, 0xb602, 0xae02, 0xa5e3, 0x9e03, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x6de2, 0xbef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf798, 0xc5e1, 0xbe01, 0xb602, 0xb602, 0xa602, 0xa5e3, 0x9e03, 0x9603, 0x8de3, 0x8604, 0x7de4, 0x6de2, 0xb6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf798, 0xc5e1, 0xbe02, 0xb602, 0xae02, 0xa603, 0x9e03, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x65e3, 0xb712, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xbde1, 0xb602, 0xae02, 0xa602, 0x9e03, 0x9603, 0x8e03, 0x8603, 0x8604, 0x7e04, 0x7604, 0x5de3, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xb5e1, 0xb602, 0xae02, 0xa603, 0x9e03, 0x95e3, 0x8e03, 0x8603, 0x7e04, 0x75e4, 0x6e04, 0x5de3, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xb5e1, 0xae02, 0xa602, 0x9e03, 0x9603, 0x8de3, 0x8604, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x55e3, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xade1, 0xae03, 0xa5e3, 0x9603, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x4de4, 0xa712, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xade1, 0xa603, 0x9de3, 0x9603, 0x8e03, 0x8604, 0x7de4, 0x7604, 0x6e05, 0x6605, 0x5e05, 0x4de4, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xa5e2, 0x9e03, 0x9603, 0x8de3, 0x8603, 0x8604, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x45e4, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xa5e2, 0x9e03, 0x9603, 0x8de3, 0x8604, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x3de4, 0x9f12, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0x9de2, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x4e05, 0x3de4, 0x9f12, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0x95e2, 0x9603, 0x8e03, 0x7e04, 0x7de4, 0x75e4, 0x6605, 0x6605, 0x5605, 0x4e05, 0x4e06, 0x35e5, 0x9ef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x8de2, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x5de5, 0x5605, 0x4e06, 0x4606, 0x2de5, 0x9f12, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x8de3, 0x8603, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x55e5, 0x4e06, 0x4606, 0x3de6, 0x2de5, 0x9713, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x85e3, 0x7de4, 0x7de4, 0x7604, 0x6e05, 0x6605, 0x5605, 0x55e6, 0x4606, 0x4606, 0x3e06, 0x25e5, 0x96f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x85e3, 0x7de4, 0x75e4, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x4de6, 0x4606, 0x3e06, 0x3607, 0x25e5, 0x9713, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe779, 0x7de3, 0x7604, 0x6e04, 0x65e5, 0x5e05, 0x5606, 0x4de5, 0x4606, 0x3e06, 0x35e6, 0x3607, 0x1de5, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x75e3, 0x7604, 0x6e04, 0x65e5, 0x5e05, 0x5606, 0x4e06, 0x4606, 0x3e06, 0x35e7, 0x2de7, 0x15e6, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf99, 0x75e3, 0x6de4, 0x6605, 0x5de5, 0x55e5, 0x4e06, 0x4606, 0x3de6, 0x3607, 0x2e07, 0x2607, 0x15c6, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x6de4, 0x6605, 0x5e05, 0x5605, 0x4e05, 0x4606, 0x3e06, 0x3606, 0x2e07, 0x2e07, 0x2607, 0x0dc6, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x65e4, 0x6605, 0x5e05, 0x5606, 0x4e06, 0x4606, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x1de7, 0x0dc6, 0x86f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x5de4, 0x5e05, 0x5605, 0x4e06, 0x4606, 0x3e06, 0x3606, 0x2e07, 0x2607, 0x25e7, 0x1de8, 0x05a7, 0x86d3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf99, 0x5de4, 0x5605, 0x4e06, 0x4606, 0x3e06, 0x35e6, 0x2e07, 0x2607, 0x25e8, 0x1de7, 0x15e8, 0x05a7, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x55e4, 0x4de5, 0x4de6, 0x4606, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x1de8, 0x1de8, 0x15c8, 0x0587, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x4e04, 0x4e06, 0x45e6, 0x3e06, 0x35e7, 0x2e07, 0x2607, 0x25e7, 0x1de8, 0x15c8, 0x0dc8, 0x0587, 0x7ed4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x4de4, 0x4606, 0x3de6, 0x35e6, 0x2e07, 0x2e07, 0x25e7, 0x1de8, 0x15e8, 0x15c8, 0x0da9, 0x0587, 0x7ed4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x45e5, 0x4606, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x1de8, 0x15e8, 0x15c8, 0x0da8, 0x0da9, 0x0568, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x3de5, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x1de8, 0x1de8, 0x15c8, 0x0dc9, 0x0da9, 0x0589, 0x0568, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x3de5, 0x3606, 0x2e07, 0x2de7, 0x25e7, 0x1de8, 0x15c8, 0x15c8, 0x0da9, 0x05a9, 0x0589, 0x0548, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x35e6, 0x2de7, 0x2e07, 0x25e7, 0x1de8, 0x15e8, 0x15c8, 0x0da9, 0x0da9, 0x0589, 0x0589, 0x0548, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf99, 0x2de6, 0x2e07, 0x2607, 0x1de8, 0x15e8, 0x15c8, 0x0da8, 0x0da9, 0x05a9, 0x0589, 0x056a, 0x0529, 0x7eb5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x2de6, 0x2607, 0x1e08, 0x1de8, 0x15c8, 0x0dc8, 0x0da9, 0x05a9, 0x0589, 0x0589, 0x056a, 0x0529, 0x7e94, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x25e6, 0x25e7, 0x1de8, 0x15c8, 0x0dc8, 0x0da9, 0x05a9, 0x0589, 0x056a, 0x056a, 0x056a, 0x0509, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x1de7, 0x1de7, 0x1de8, 0x15c8, 0x0da9, 0x0da9, 0x0589, 0x0589, 0x056a, 0x054a, 0x054a, 0x0509, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf7a, 0x1de7, 0x15e8, 0x15c8, 0x0da9, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x052a, 0x04e9, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf7a, 0x15e7, 0x15c8, 0x0dc8, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x04ea, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x15c7, 0x15c8, 0x0da9, 0x05a9, 0x0589, 0x056a, 0x056a, 0x054a, 0x054a, 0x052b, 0x050b, 0x04ca, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0dc8, 0x0da8, 0x0da9, 0x0589, 0x0589, 0x056a, 0x054a, 0x052a, 0x052b, 0x052b, 0x04eb, 0x04aa, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x05a8, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x052a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x048a, 0x7e55, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x05a8, 0x0589, 0x058a, 0x056a, 0x056a, 0x056a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04cb, 0x048b, 0x7e35, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0589, 0x0589, 0x056a, 0x056a, 0x056a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04cc, 0x04cc, 0x046b, 0x7e36, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0589, 0x0589, 0x056a, 0x054a, 0x054a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x044b, 0x7e36, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x0569, 0x0569, 0x054a, 0x054a, 0x052b, 0x050b, 0x04eb, 0x04ec, 0x04cc, 0x04ac, 0x048c, 0x042b, 0x7e16, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0569, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x040c, 0x7e16, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x0549, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044d, 0x03ec, 0x7e16, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04ac, 0x04ac, 0x048c, 0x044d, 0x042d, 0x03cc, 0x7df6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x0529, 0x052a, 0x050b, 0x050b, 0x04cc, 0x04cc, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ad, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x052a, 0x050b, 0x050b, 0x04eb, 0x04ac, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x03ee, 0x038d, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x050a, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x03ee, 0x03ce, 0x036d, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73a, 0x04ea, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x044c, 0x044d, 0x042d, 0x03ee, 0x03ee, 0x03ae, 0x034d, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x04cb, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x038f, 0x032e, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf7c, 0x04eb, 0x04ab, 0x04ac, 0x048c, 0x044d, 0x042d, 0x040d, 0x03ce, 0x03ce, 0x038f, 0x036f, 0x030e, 0x9e39, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x3d90, 0x046b, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ed, 0x03ce, 0x038f, 0x036f, 0x032e, 0x0b70, 0xe77e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73a, 0x046c, 0x044c, 0x042d, 0x042d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x034f, 0x02ce, 0x85b8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9e98, 0x042c, 0x03ec, 0x040d, 0x03ce, 0x03ae, 0x038f, 0x032e, 0x02ce, 0x6516, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbefb, 0x3cd1, 0x03ce, 0x036e, 0x034d, 0x032f, 0x23d1, 0x95f9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd73c, 0xb69a, 0xae9a, 0xcefc, 0xf7df, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0004_12.h ================================================ // extern const uint16_t ColorT_0004_12[3650]; const uint16_t ColorT_0004_12[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdc, 0xf755, 0xf712, 0xef11, 0xef11, 0xe711, 0xe711, 0xe711, 0xdf12, 0xdf12, 0xd712, 0xd712, 0xd712, 0xcf12, 0xcf13, 0xc713, 0xc713, 0xc713, 0xbf13, 0xbf13, 0xb713, 0xaf13, 0xaf13, 0xaf13, 0xa714, 0xa714, 0xa714, 0x9f14, 0x9f14, 0x9714, 0x9714, 0x9715, 0x9715, 0x8ef5, 0x8ef5, 0x8ef5, 0x8ef5, 0x8ed5, 0xa717, 0xd79c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf711, 0xee02, 0xdde0, 0xdde0, 0xd5c0, 0xcde0, 0xc5e0, 0xbdc0, 0xb5e0, 0xade0, 0xadc0, 0xa5e0, 0x95c1, 0x8de1, 0x85c1, 0x85c2, 0x75e2, 0x6de2, 0x65e3, 0x5dc3, 0x55e3, 0x4de3, 0x4de4, 0x45c4, 0x35e4, 0x35c4, 0x2dc5, 0x25e5, 0x1de5, 0x15e6, 0x15c6, 0x0dc6, 0x0da7, 0x05a7, 0x0587, 0x0587, 0x0587, 0x0568, 0x0548, 0x0549, 0x054a, 0x5e51, 0xe7bd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf6ad, 0xede0, 0xe5e0, 0xe601, 0xde01, 0xd601, 0xcde1, 0xc5e1, 0xbde2, 0xb602, 0xb602, 0xae03, 0xa603, 0x9e03, 0x9603, 0x8de3, 0x8604, 0x7e04, 0x7604, 0x6e05, 0x6605, 0x5e05, 0x5605, 0x4e06, 0x4e06, 0x4606, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x2607, 0x1de7, 0x15e8, 0x15c8, 0x0dc9, 0x0da9, 0x05a9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x0509, 0x1d6d, 0xd79c, 0xffff, 0xffff, 0xffff, 0xffff, 0xf732, 0xede0, 0xe5e0, 0xe601, 0xde01, 0xd5e1, 0xce01, 0xce02, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa602, 0x9e02, 0x9603, 0x8e03, 0x8603, 0x7de4, 0x7604, 0x7604, 0x6605, 0x5e05, 0x5de5, 0x5606, 0x4de6, 0x4606, 0x3e06, 0x3606, 0x2de7, 0x2e07, 0x25e7, 0x1de8, 0x1de8, 0x15c8, 0x15c8, 0x0da9, 0x0da9, 0x0589, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x054a, 0x050a, 0x258e, 0xefde, 0xffff, 0xffff, 0xffdd, 0xf622, 0xede0, 0xe5e1, 0xe600, 0xde01, 0xd601, 0xce01, 0xc601, 0xc602, 0xbe02, 0xade2, 0xade2, 0xa5e3, 0x9e03, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x6e05, 0x6605, 0x5e05, 0x5605, 0x4e05, 0x4606, 0x4606, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x25e7, 0x1de7, 0x15e8, 0x15c8, 0x0dc9, 0x0da9, 0x05a9, 0x0589, 0x058a, 0x056a, 0x056a, 0x054a, 0x054a, 0x052a, 0x050b, 0x04c9, 0x8eb6, 0xffff, 0xffff, 0xff54, 0xede0, 0xee00, 0xe600, 0xde01, 0xdde1, 0xcde2, 0xce01, 0xc601, 0xbe02, 0xb5e2, 0xae02, 0xa602, 0x9e03, 0x9603, 0x8de3, 0x8e04, 0x7de4, 0x7de4, 0x7604, 0x6605, 0x6605, 0x5605, 0x5606, 0x4e06, 0x45e6, 0x3e06, 0x3606, 0x2e07, 0x2e07, 0x2607, 0x1de8, 0x1de8, 0x15c8, 0x0dc8, 0x0da9, 0x05a9, 0x05a9, 0x0589, 0x056a, 0x056a, 0x054a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04ca, 0x45b0, 0xffff, 0xffff, 0xff11, 0xede0, 0xe600, 0xe600, 0xde00, 0xd601, 0xce01, 0xcde1, 0xc602, 0xbde2, 0xb602, 0xae02, 0xa602, 0x9e03, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x75e4, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x4e06, 0x45e6, 0x3de6, 0x3e07, 0x3607, 0x2e07, 0x2608, 0x1e07, 0x1de8, 0x15c8, 0x15c8, 0x0da9, 0x0da9, 0x05a9, 0x0589, 0x056a, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x052b, 0x050b, 0x04ca, 0x358f, 0xffff, 0xffff, 0xf754, 0xede0, 0xe5e1, 0xe601, 0xde01, 0xd601, 0xce02, 0xc601, 0xbe02, 0xb602, 0xae02, 0xa602, 0x9e03, 0x9603, 0x8de3, 0x8603, 0x7e04, 0x7604, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x4e05, 0x4e06, 0x4606, 0x3de6, 0x3607, 0x2e07, 0x2de7, 0x25e7, 0x1de8, 0x15e8, 0x15c8, 0x0dc9, 0x0da9, 0x05a9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x054a, 0x052b, 0x052b, 0x050b, 0x04eb, 0x04aa, 0x45b1, 0xffff, 0xffff, 0xffbb, 0xee01, 0xe5e0, 0xde01, 0xd601, 0xce01, 0xc601, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa603, 0x9e03, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x7604, 0x6e04, 0x65e5, 0x5e05, 0x5605, 0x4e06, 0x4606, 0x3de6, 0x3607, 0x3607, 0x2e07, 0x2607, 0x25e8, 0x1de8, 0x15c8, 0x15c8, 0x0dc9, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x054a, 0x052a, 0x052b, 0x050b, 0x050b, 0x04eb, 0x048a, 0x9697, 0xffff, 0xffff, 0xffff, 0xf6ce, 0xdde0, 0xde01, 0xd5e1, 0xcde1, 0xc5e1, 0xbde2, 0xb5e2, 0xae02, 0xa602, 0x9de3, 0x9603, 0x8e03, 0x8604, 0x7de4, 0x7de5, 0x6e04, 0x6605, 0x5e05, 0x5605, 0x5606, 0x4606, 0x4606, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x25e7, 0x1de8, 0x15e8, 0x15c8, 0x0dc8, 0x0da9, 0x05a9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x054b, 0x052b, 0x052b, 0x050b, 0x04eb, 0x04ab, 0x254f, 0xf7de, 0xffff, 0xffff, 0xffff, 0xffde, 0xe688, 0xd5c0, 0xcde1, 0xc601, 0xc602, 0xbe02, 0xb602, 0xae02, 0xa603, 0x9de3, 0x9603, 0x8e03, 0x8604, 0x7e04, 0x75e4, 0x6e04, 0x6605, 0x5de5, 0x55e5, 0x4de6, 0x4606, 0x3e06, 0x3606, 0x2de7, 0x2de7, 0x2608, 0x1de8, 0x1de8, 0x15c8, 0x0dc8, 0x0da9, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x054a, 0x052b, 0x052b, 0x050b, 0x04eb, 0x048a, 0x1d0e, 0xd77c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffde, 0xe6ee, 0xce02, 0xc5e0, 0xb5c0, 0xade0, 0xade0, 0xa5e1, 0x9de1, 0x8de1, 0x85e2, 0x7de2, 0x75e2, 0x6dc2, 0x65e3, 0x5de4, 0x5e05, 0x5605, 0x4e06, 0x4605, 0x3e06, 0x3e06, 0x3607, 0x2de7, 0x2de7, 0x1e07, 0x1de8, 0x15c8, 0x0da8, 0x0587, 0x0588, 0x0568, 0x0568, 0x0548, 0x0549, 0x0529, 0x0509, 0x0509, 0x0509, 0x04ea, 0x04ca, 0x04eb, 0x5dd2, 0xdf9d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbc, 0xef55, 0xe711, 0xdf12, 0xdf12, 0xd712, 0xd712, 0xcf12, 0xc712, 0xc712, 0xc713, 0xc713, 0xbf13, 0xa6cf, 0x55e5, 0x5605, 0x4de6, 0x4606, 0x3e06, 0x3606, 0x2e07, 0x2607, 0x25e7, 0x1e08, 0x15e8, 0x0dc8, 0x4e4e, 0x8ef5, 0x8ef5, 0x8ed5, 0x86d5, 0x86d5, 0x86d5, 0x86d5, 0x86b5, 0x8eb6, 0x86b6, 0x8696, 0xa6d8, 0xd77c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf9a, 0x55e5, 0x4e05, 0x45e6, 0x3de6, 0x3606, 0x3607, 0x2de7, 0x2607, 0x1de8, 0x1de8, 0x15c8, 0x0587, 0x8ef4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x4de5, 0x4de6, 0x4606, 0x3e06, 0x35e7, 0x2de7, 0x2607, 0x25e7, 0x1de8, 0x15e8, 0x15c8, 0x0587, 0x7ed4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd799, 0x45e5, 0x4606, 0x3de6, 0x3606, 0x3607, 0x2e07, 0x25e7, 0x1e07, 0x1de8, 0x15c8, 0x0dc9, 0x0588, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x45e5, 0x3e06, 0x3de6, 0x3607, 0x2e07, 0x2607, 0x25e8, 0x1de8, 0x15e8, 0x15c8, 0x0da9, 0x0588, 0x7ed4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x3de5, 0x3e06, 0x35e6, 0x2e07, 0x2e07, 0x2607, 0x1de8, 0x1dc8, 0x15c8, 0x0dc8, 0x0da9, 0x0568, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x3de6, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x1de7, 0x1de8, 0x15c8, 0x0dc8, 0x0da9, 0x0da9, 0x0568, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x35e6, 0x3606, 0x2e07, 0x2607, 0x2608, 0x1de8, 0x15c8, 0x15c8, 0x0dc9, 0x0da9, 0x05a9, 0x0568, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x35e6, 0x3607, 0x2e07, 0x25e7, 0x1de8, 0x1de8, 0x15c8, 0x0dc9, 0x0da9, 0x0589, 0x0589, 0x0548, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x2de6, 0x2e07, 0x2607, 0x25e7, 0x1de8, 0x15c8, 0x15c8, 0x0dc9, 0x05a9, 0x0589, 0x0589, 0x0548, 0x7e94, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x2de6, 0x2e07, 0x25e7, 0x1de8, 0x15e8, 0x15c9, 0x0da9, 0x05a9, 0x0589, 0x0589, 0x056a, 0x0528, 0x7eb5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x25e6, 0x25e7, 0x1de8, 0x1de8, 0x15c8, 0x15c8, 0x0da9, 0x05a9, 0x0589, 0x056a, 0x056a, 0x0529, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf99, 0x25e6, 0x1e07, 0x1de8, 0x15e8, 0x15c8, 0x0da9, 0x05a9, 0x0589, 0x0589, 0x056a, 0x056a, 0x0529, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf99, 0x25e7, 0x1de7, 0x1de8, 0x15c8, 0x0dc9, 0x0da9, 0x05a9, 0x0589, 0x056a, 0x056a, 0x056a, 0x0509, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf7a, 0x1de7, 0x1de8, 0x15c8, 0x0dc8, 0x0da9, 0x05a9, 0x0589, 0x0569, 0x056a, 0x056a, 0x054a, 0x0509, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf7a, 0x15e7, 0x15e8, 0x15c8, 0x0da8, 0x0da9, 0x05a9, 0x0589, 0x056a, 0x056a, 0x054a, 0x054a, 0x04e9, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf7a, 0x15e7, 0x15c8, 0x0dc8, 0x0da8, 0x0589, 0x0589, 0x056a, 0x056a, 0x056a, 0x054a, 0x052b, 0x04ea, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc779, 0x15c7, 0x0dc8, 0x0da9, 0x05a9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x04ca, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0dc8, 0x0da9, 0x0da9, 0x05a9, 0x0589, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04ca, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0da8, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x056a, 0x054b, 0x052b, 0x050b, 0x050b, 0x04aa, 0x7e55, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x05a8, 0x05a9, 0x0589, 0x056a, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x048a, 0x7e56, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0588, 0x05a9, 0x0589, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x048a, 0x7e55, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0588, 0x0589, 0x056a, 0x056a, 0x054a, 0x054a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x046b, 0x7e36, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0589, 0x0589, 0x056a, 0x054a, 0x054a, 0x052a, 0x050b, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x044b, 0x7e36, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0569, 0x0569, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04ac, 0x04ac, 0x044b, 0x7e36, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x0569, 0x056a, 0x054a, 0x054a, 0x052b, 0x050b, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x042b, 0x7e16, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x0569, 0x054a, 0x054a, 0x052a, 0x050b, 0x050b, 0x04ec, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x040c, 0x7e16, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x0549, 0x054a, 0x052a, 0x052a, 0x050b, 0x04eb, 0x04cc, 0x04cc, 0x048c, 0x048c, 0x046d, 0x040c, 0x7df6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x054a, 0x054a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044d, 0x03ec, 0x7df6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x052a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x03cc, 0x7df6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x052a, 0x052a, 0x050b, 0x04eb, 0x04eb, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ac, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x050a, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040e, 0x038d, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x050a, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x036d, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x04ea, 0x04eb, 0x04cb, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x040e, 0x03ee, 0x03ce, 0x036d, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x034e, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x04cb, 0x04ac, 0x04ac, 0x048c, 0x046d, 0x044d, 0x040d, 0x040d, 0x03ee, 0x03ae, 0x038e, 0x032e, 0x7d97, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73a, 0x04ab, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ae, 0x038f, 0x036f, 0x02ee, 0x7d97, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73a, 0x04ab, 0x048c, 0x046c, 0x046d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x02ee, 0x7d77, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73a, 0x048b, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x034f, 0x02ce, 0x7d77, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x046c, 0x046d, 0x044d, 0x042d, 0x040e, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x02af, 0x7d57, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x028f, 0x7d58, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x042c, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x026f, 0x7d38, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x0250, 0x7d38, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x040d, 0x03ed, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b0, 0x0230, 0x7d18, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x03ed, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x034f, 0x030f, 0x02f0, 0x02d0, 0x02b1, 0x0291, 0x0210, 0x7d18, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x03cd, 0x03ce, 0x03ae, 0x036f, 0x034f, 0x032f, 0x0310, 0x02d0, 0x02d0, 0x0291, 0x0271, 0x01f0, 0x7cf8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x03ad, 0x03ae, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02b0, 0x0290, 0x0271, 0x0251, 0x01d1, 0x7cf9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x038e, 0x038f, 0x036f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x0291, 0x0271, 0x0251, 0x0231, 0x01b1, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x036e, 0x036f, 0x034f, 0x030f, 0x02f0, 0x02d0, 0x02b0, 0x0271, 0x0251, 0x0232, 0x0212, 0x0171, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6db, 0x034e, 0x034f, 0x032f, 0x02f0, 0x02d0, 0x02b0, 0x0291, 0x0251, 0x0231, 0x0212, 0x01f2, 0x0171, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6db, 0x032f, 0x032f, 0x0310, 0x02f0, 0x02b0, 0x0291, 0x0271, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x0132, 0x7cb9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6dc, 0x030f, 0x030f, 0x02f0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0112, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6db, 0x02ef, 0x02f0, 0x02d0, 0x0291, 0x0271, 0x0232, 0x0231, 0x0212, 0x01d2, 0x01b2, 0x0193, 0x0112, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6dc, 0x02cf, 0x02d1, 0x0291, 0x0271, 0x0251, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x00d3, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbedc, 0x0290, 0x0290, 0x0291, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01b2, 0x01b3, 0x0173, 0x0153, 0x00b3, 0x7c7a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf3d, 0x02b1, 0x0271, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0134, 0x00b3, 0x9d5b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x3bd4, 0x0210, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x0193, 0x0173, 0x0153, 0x0134, 0x00f3, 0x0934, 0xe73e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0211, 0x01f2, 0x0212, 0x01d2, 0x0192, 0x0193, 0x0153, 0x0133, 0x0114, 0x0093, 0x849a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9dba, 0x01d1, 0x0171, 0x0192, 0x0173, 0x0173, 0x0133, 0x00f3, 0x0073, 0x63b8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5c, 0x3af6, 0x0173, 0x0113, 0x00d3, 0x00f3, 0x21d5, 0x94fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd6dd, 0xb5fc, 0xb5dc, 0xce9d, 0xf7df, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0005_11.h ================================================ // extern const uint16_t ColorT_0005_11[3650]; const uint16_t ColorT_0005_11[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7dd, 0xcf56, 0xb713, 0xb713, 0xaf13, 0xaf13, 0xa714, 0xa714, 0xa714, 0xa714, 0x9f14, 0x9f14, 0x9715, 0x9715, 0x96f5, 0x8ef5, 0x8ef5, 0x8ef5, 0x8ef5, 0x8ed5, 0x8ed5, 0x8ed6, 0x8eb6, 0x8eb6, 0x8eb6, 0x8eb6, 0x8e96, 0x8e96, 0x8e96, 0x8e76, 0x8e77, 0x8e77, 0x8e57, 0x8e57, 0x8e37, 0x8e37, 0x8e17, 0x8e17, 0xa679, 0xdf5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf12, 0x7e06, 0x65e3, 0x55c3, 0x4dc3, 0x45e4, 0x3de4, 0x35e4, 0x2de5, 0x25e5, 0x1de5, 0x1de6, 0x15c6, 0x0dc6, 0x05a7, 0x05a7, 0x0587, 0x0567, 0x0568, 0x0548, 0x0548, 0x0548, 0x0529, 0x0509, 0x0509, 0x04ea, 0x04ca, 0x04ca, 0x04aa, 0x048a, 0x046b, 0x044b, 0x042b, 0x042b, 0x040c, 0x03ec, 0x03cc, 0x03ac, 0x036d, 0x036d, 0x038f, 0x5cf5, 0xdf7d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb6cf, 0x6dc2, 0x6de4, 0x6604, 0x5e05, 0x5605, 0x4e05, 0x4606, 0x3e06, 0x3606, 0x3607, 0x2e07, 0x2607, 0x1de8, 0x1de8, 0x15c8, 0x0dc9, 0x0da9, 0x05a9, 0x05aa, 0x058a, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ce, 0x038f, 0x036e, 0x030e, 0x1bb1, 0xcf1d, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf34, 0x75e2, 0x7604, 0x6de5, 0x6605, 0x5605, 0x5606, 0x4e06, 0x4606, 0x3de6, 0x3607, 0x2e07, 0x2607, 0x1e07, 0x1de8, 0x15c8, 0x15c8, 0x0da9, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04cb, 0x04ac, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x040d, 0x03ee, 0x03ce, 0x038e, 0x038f, 0x036f, 0x034f, 0x02ce, 0x23d2, 0xefbe, 0xffff, 0xffff, 0xf7dd, 0x8e26, 0x75e4, 0x6e04, 0x65e4, 0x5e05, 0x5605, 0x4e06, 0x4606, 0x3e06, 0x35e6, 0x2de7, 0x2de7, 0x25e7, 0x1de8, 0x1de8, 0x15c8, 0x0dc9, 0x0da9, 0x05a9, 0x0589, 0x056a, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04cc, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044d, 0x044d, 0x042d, 0x040e, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x034f, 0x032f, 0x030f, 0x028f, 0x8db9, 0xffff, 0xffff, 0xd756, 0x75e2, 0x7604, 0x6e04, 0x6605, 0x55e5, 0x5606, 0x4de6, 0x4606, 0x3e06, 0x35e7, 0x2e07, 0x2607, 0x25e7, 0x1de8, 0x15e8, 0x15c8, 0x0da9, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x052b, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x03ae, 0x038f, 0x036f, 0x032f, 0x0330, 0x030f, 0x02af, 0x4414, 0xffff, 0xffff, 0xc713, 0x75e2, 0x7604, 0x6605, 0x5de5, 0x5605, 0x55e6, 0x45e6, 0x3de6, 0x3606, 0x3607, 0x2e07, 0x25e7, 0x1de8, 0x15e8, 0x15c9, 0x0da9, 0x0da9, 0x05a9, 0x0589, 0x0589, 0x056a, 0x054a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04ac, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x042d, 0x03ee, 0x03ee, 0x03ce, 0x038e, 0x038f, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x028f, 0x33b4, 0xffff, 0xffff, 0xcf55, 0x6de3, 0x6de4, 0x6605, 0x5de5, 0x5605, 0x4e06, 0x45e6, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x25e7, 0x1de8, 0x15e8, 0x0dc8, 0x0da8, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x0330, 0x02f0, 0x02d0, 0x0270, 0x4415, 0xffff, 0xffff, 0xefbc, 0x7605, 0x6604, 0x5e05, 0x55e5, 0x4e06, 0x4606, 0x3de6, 0x3de6, 0x3607, 0x2e07, 0x25e7, 0x1de8, 0x15e8, 0x15c8, 0x0dc8, 0x0da9, 0x0d89, 0x0589, 0x056a, 0x056a, 0x056a, 0x054a, 0x052b, 0x050b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ee, 0x03ae, 0x038e, 0x036f, 0x036f, 0x034f, 0x032f, 0x02f0, 0x02d0, 0x02d0, 0x0230, 0x9599, 0xffff, 0xffff, 0xffff, 0xaef0, 0x55c3, 0x5de5, 0x5606, 0x4de6, 0x4606, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x25e7, 0x1de8, 0x15c8, 0x15c8, 0x0da9, 0x0da9, 0x0589, 0x0589, 0x0569, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x034f, 0x0310, 0x0310, 0x02f0, 0x02d0, 0x026f, 0x2b73, 0xf7bf, 0xffff, 0xffff, 0xffff, 0xffde, 0x8e8c, 0x4de3, 0x4de5, 0x4606, 0x4606, 0x3e06, 0x3607, 0x2e07, 0x2607, 0x1de8, 0x15e8, 0x15c8, 0x0dc9, 0x0da9, 0x0589, 0x0589, 0x056a, 0x056a, 0x054a, 0x052a, 0x054a, 0x050b, 0x050b, 0x04eb, 0x04cc, 0x04cc, 0x048c, 0x046c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x024f, 0x2332, 0xd6fd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xa6d0, 0x5606, 0x35e5, 0x35e5, 0x25e5, 0x25e5, 0x1de6, 0x15c6, 0x0dc6, 0x0da7, 0x05a7, 0x0587, 0x0567, 0x0568, 0x0569, 0x0589, 0x056a, 0x052a, 0x054b, 0x052b, 0x050b, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x048d, 0x042c, 0x03ec, 0x03ec, 0x03ac, 0x038d, 0x036d, 0x034d, 0x032e, 0x030e, 0x02ee, 0x02cf, 0x02af, 0x02af, 0x02b0, 0x5475, 0xe75d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xefdd, 0xbf57, 0xa714, 0x9f14, 0x9f14, 0x9714, 0x9714, 0x96f4, 0x96f5, 0x8ef5, 0x8ef5, 0x8ef5, 0x86d5, 0x6e73, 0x0549, 0x054a, 0x052a, 0x052b, 0x050b, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044c, 0x4531, 0x8637, 0x8637, 0x8617, 0x8e17, 0x8df7, 0x8df7, 0x8dd7, 0x8dd8, 0x85d8, 0x8db8, 0x85b8, 0x9e1a, 0xd71d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf9b, 0x052a, 0x054a, 0x052b, 0x050a, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x04ac, 0x048c, 0x046c, 0x03ec, 0x8617, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x054a, 0x052a, 0x052b, 0x052b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x048c, 0x046d, 0x040c, 0x7df6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x052a, 0x052a, 0x050b, 0x050b, 0x04eb, 0x04cb, 0x04ac, 0x04ac, 0x046c, 0x046d, 0x042d, 0x03ec, 0x7df6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x03cc, 0x7df6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x052a, 0x050b, 0x050b, 0x04eb, 0x04cb, 0x04ac, 0x048c, 0x048c, 0x046d, 0x042d, 0x042d, 0x03cc, 0x7df6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x050a, 0x050b, 0x04eb, 0x04cc, 0x04ac, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x040e, 0x03ad, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x050a, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x044d, 0x040d, 0x03ee, 0x038d, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x04ea, 0x04eb, 0x04eb, 0x04ac, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x036d, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x04ea, 0x04cb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x036d, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x040e, 0x03ce, 0x03ae, 0x034d, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x04cb, 0x04ac, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x032d, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf3a, 0x04ab, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x030e, 0x7d97, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73a, 0x04ab, 0x048c, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x030e, 0x7d97, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73a, 0x048b, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x02ee, 0x7d77, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x048b, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x034f, 0x02ce, 0x7d77, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x046c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x02af, 0x7d77, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x044c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x034f, 0x032f, 0x030f, 0x028f, 0x7d57, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x044c, 0x044d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x032f, 0x032f, 0x0310, 0x028f, 0x7d58, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x042c, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x038e, 0x036f, 0x034f, 0x032f, 0x030f, 0x02f0, 0x026f, 0x7d38, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1b, 0x040c, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x036f, 0x034f, 0x034f, 0x030f, 0x02f0, 0x02d0, 0x024f, 0x7d38, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1b, 0x040c, 0x03ee, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x02f0, 0x02d0, 0x02b0, 0x0230, 0x7d38, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x03ed, 0x03ee, 0x03ce, 0x038f, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x0290, 0x0210, 0x7d18, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x03cd, 0x03ce, 0x03ae, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b1, 0x0291, 0x01f0, 0x7d18, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x03cd, 0x03ae, 0x038e, 0x036f, 0x034f, 0x0310, 0x02f0, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x01f1, 0x7cf8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x01d1, 0x7cf8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02b0, 0x02b1, 0x0271, 0x0251, 0x0231, 0x01b1, 0x7cd8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x036e, 0x036f, 0x034f, 0x030f, 0x02f0, 0x02d0, 0x02b1, 0x0291, 0x0271, 0x0251, 0x0211, 0x0191, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbefb, 0x034e, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0232, 0x0212, 0x0171, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbefb, 0x034e, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b1, 0x0271, 0x0251, 0x0231, 0x0212, 0x01f2, 0x0151, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbedb, 0x032f, 0x030f, 0x02f0, 0x02d0, 0x02b1, 0x0291, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x0152, 0x7cb9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbedb, 0x030f, 0x0310, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0132, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6db, 0x02ef, 0x02f0, 0x02d0, 0x0290, 0x0271, 0x0251, 0x0231, 0x01f2, 0x01f2, 0x01b2, 0x0193, 0x0112, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6dc, 0x02cf, 0x02d0, 0x02b1, 0x0291, 0x0251, 0x0232, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x00f2, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6bc, 0x02b0, 0x02b0, 0x0291, 0x0271, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x00d3, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6bc, 0x0290, 0x0290, 0x0271, 0x0251, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x00d3, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6bc, 0x0270, 0x0271, 0x0251, 0x0231, 0x0212, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0154, 0x0133, 0x0093, 0x7c7a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbebc, 0x0270, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x0193, 0x0193, 0x0153, 0x0134, 0x0133, 0x0093, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0230, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0114, 0x0114, 0x0073, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x0053, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0211, 0x0212, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x0053, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x01f1, 0x01f2, 0x01b2, 0x01b2, 0x0173, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x0034, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x01d1, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0133, 0x0114, 0x00f4, 0x00f4, 0x00d4, 0x00b5, 0x0014, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x01b2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x0095, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0192, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x00b5, 0x0095, 0x0014, 0x841a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe7c, 0x0172, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b5, 0x0095, 0x0075, 0x0014, 0x841a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0152, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x0094, 0x0095, 0x0075, 0x0075, 0x0015, 0x7bfa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0133, 0x0133, 0x0114, 0x00f4, 0x00f4, 0x00d4, 0x00b4, 0x0095, 0x0075, 0x0075, 0x0055, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65c, 0x0113, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x0095, 0x0095, 0x0075, 0x0055, 0x0055, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65c, 0x00f3, 0x0113, 0x00f4, 0x00d4, 0x00b5, 0x0095, 0x0095, 0x0075, 0x0055, 0x0055, 0x0835, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65d, 0x00f3, 0x00f4, 0x00d4, 0x00b5, 0x00b5, 0x0095, 0x0075, 0x0055, 0x0055, 0x0036, 0x0836, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65d, 0x00d3, 0x00d4, 0x00b5, 0x0094, 0x0095, 0x0075, 0x0075, 0x0855, 0x0035, 0x0836, 0x0816, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x00b3, 0x00d4, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0035, 0x0036, 0x0816, 0x0816, 0x0015, 0x7bfb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5d, 0x0094, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0856, 0x0035, 0x0035, 0x0815, 0x0816, 0x0816, 0x0015, 0x7bdb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe3d, 0x0074, 0x0095, 0x0075, 0x0075, 0x0055, 0x0035, 0x0836, 0x0816, 0x0816, 0x0016, 0x0816, 0x0016, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdefe, 0x00b5, 0x0055, 0x0075, 0x0055, 0x0055, 0x0035, 0x0815, 0x0836, 0x0816, 0x0816, 0x0816, 0x0015, 0xa4fc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x4258, 0x0014, 0x0055, 0x0055, 0x0036, 0x0035, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x1056, 0xe71e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0835, 0x0015, 0x0836, 0x0836, 0x0816, 0x0016, 0x0816, 0x0816, 0x0815, 0x0016, 0x8c3b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9cfb, 0x0015, 0x0015, 0x0015, 0x0816, 0x0816, 0x0816, 0x0015, 0x0015, 0x6b3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbddd, 0x39f8, 0x0016, 0x0015, 0x0015, 0x0015, 0x2937, 0x949b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd69e, 0xb59c, 0xb57d, 0xce5d, 0xf7bf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0006_10.h ================================================ // extern const uint16_t ColorT_0006_10[3650]; const uint16_t ColorT_0006_10[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xefdd, 0xaf38, 0x8ed6, 0x8ed5, 0x8ed6, 0x8eb6, 0x8eb6, 0x8eb6, 0x8e96, 0x8e96, 0x8e96, 0x8e76, 0x8e77, 0x8e57, 0x8e57, 0x8e37, 0x8e37, 0x8e37, 0x8e17, 0x8e17, 0x8df7, 0x8df8, 0x8dd8, 0x8dd8, 0x8dd8, 0x8db8, 0x8d98, 0x8d98, 0x8d79, 0x8d79, 0x8d59, 0x8d59, 0x8d59, 0x8d39, 0x8d39, 0x8d19, 0x8d19, 0x8cfa, 0xa59b, 0xd6fd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8ef5, 0x15ca, 0x0568, 0x0549, 0x0528, 0x0528, 0x0509, 0x0509, 0x04ea, 0x04ca, 0x04aa, 0x048a, 0x046b, 0x044b, 0x042b, 0x040c, 0x03ec, 0x03cc, 0x03ad, 0x038d, 0x036d, 0x034d, 0x032d, 0x030e, 0x02ee, 0x02cf, 0x028f, 0x028f, 0x024f, 0x022f, 0x0210, 0x01f0, 0x01d0, 0x01b1, 0x0191, 0x0171, 0x0152, 0x0132, 0x0132, 0x0112, 0x0153, 0x5b57, 0xe73e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6e92, 0x0587, 0x0589, 0x058a, 0x0569, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04cb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b1, 0x0271, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x01b3, 0x0193, 0x0173, 0x0153, 0x0133, 0x00b3, 0x21b5, 0xcebd, 0xffff, 0xffff, 0xffff, 0xffff, 0x9f16, 0x0587, 0x05a9, 0x0589, 0x0589, 0x056a, 0x054a, 0x054a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x042d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0232, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0134, 0x0114, 0x0093, 0x21d6, 0xef9e, 0xffff, 0xffff, 0xefbd, 0x1dea, 0x0588, 0x0589, 0x058a, 0x056a, 0x056a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04ac, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x034f, 0x032f, 0x0310, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00f4, 0x0053, 0x8cba, 0xffff, 0xffff, 0xaf38, 0x0588, 0x05a9, 0x0589, 0x056a, 0x056a, 0x054a, 0x054b, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b1, 0x0271, 0x0271, 0x0251, 0x0212, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x0054, 0x4297, 0xffff, 0xffff, 0x96f5, 0x0587, 0x0da9, 0x0589, 0x056a, 0x054a, 0x054a, 0x052a, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x034f, 0x032f, 0x030f, 0x02f0, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0133, 0x0114, 0x0114, 0x00d4, 0x00d4, 0x0074, 0x3216, 0xffff, 0xffff, 0xa717, 0x0588, 0x0589, 0x056a, 0x056a, 0x056a, 0x054a, 0x052b, 0x050b, 0x050b, 0x04ec, 0x04cc, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x0290, 0x0271, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x0114, 0x00f4, 0x00d4, 0x00b5, 0x0034, 0x4a98, 0xffff, 0xffff, 0xdfbc, 0x0daa, 0x0589, 0x056a, 0x056a, 0x054a, 0x054a, 0x052b, 0x050b, 0x04eb, 0x04cb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040e, 0x03ce, 0x03ce, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0231, 0x0211, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x00b4, 0x0014, 0x94bb, 0xffff, 0xffff, 0xffff, 0x7693, 0x0548, 0x058a, 0x054a, 0x054a, 0x054a, 0x050b, 0x04eb, 0x04cb, 0x04cc, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02b0, 0x02b0, 0x0271, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b5, 0x0034, 0x29d7, 0xf79f, 0xffff, 0xffff, 0xffff, 0xf7df, 0x460f, 0x0528, 0x052a, 0x052b, 0x052b, 0x050b, 0x04eb, 0x04eb, 0x04ac, 0x04ac, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b0, 0x0271, 0x0272, 0x0251, 0x0231, 0x01f2, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0113, 0x00f4, 0x00f4, 0x00d4, 0x0094, 0x0034, 0x2156, 0xd6be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7ff, 0x6e73, 0x0d6b, 0x0509, 0x04ea, 0x04ca, 0x04ca, 0x048a, 0x046b, 0x044b, 0x042b, 0x040c, 0x040c, 0x03cc, 0x03cd, 0x03ad, 0x03ae, 0x038f, 0x036f, 0x034f, 0x032f, 0x0310, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0232, 0x01f1, 0x0191, 0x0171, 0x0152, 0x0132, 0x0112, 0x00f2, 0x00d3, 0x00b3, 0x0093, 0x0073, 0x0073, 0x0054, 0x08b5, 0x52f8, 0xe71e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdfbd, 0xaef8, 0x86b6, 0x8696, 0x8696, 0x8676, 0x8676, 0x8656, 0x8e57, 0x8e37, 0x8e37, 0x8e17, 0x8617, 0x6d75, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b1, 0x0271, 0x0271, 0x0251, 0x01f1, 0x4376, 0x8539, 0x8519, 0x8d1a, 0x84fa, 0x84fa, 0x84da, 0x8cda, 0x84ba, 0x8cba, 0x8cba, 0x849a, 0xa53b, 0xd6bd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf1c, 0x034e, 0x034f, 0x034f, 0x0310, 0x02f0, 0x02d0, 0x02b1, 0x0291, 0x0271, 0x0251, 0x0232, 0x0190, 0x8519, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6db, 0x034e, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x0290, 0x0271, 0x0251, 0x0231, 0x0212, 0x0171, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbedb, 0x032e, 0x032f, 0x0330, 0x02f0, 0x02d0, 0x02b1, 0x0291, 0x0272, 0x0251, 0x0232, 0x0212, 0x0191, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbedb, 0x032f, 0x0330, 0x02f0, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0232, 0x0212, 0x01f2, 0x0152, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbedb, 0x030f, 0x0310, 0x02f0, 0x02b0, 0x02b1, 0x0271, 0x0251, 0x0231, 0x0212, 0x0212, 0x01d2, 0x0152, 0x7cb9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6db, 0x02ef, 0x02f0, 0x02d0, 0x02b1, 0x0291, 0x0271, 0x0251, 0x0231, 0x01f2, 0x01f2, 0x01b2, 0x0132, 0x7cb9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6dc, 0x02ef, 0x02f0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0112, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6dc, 0x02cf, 0x02d0, 0x02b1, 0x0291, 0x0271, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0112, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbebc, 0x02b0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0232, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x00f2, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6bc, 0x0290, 0x0290, 0x0271, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x00d2, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbebc, 0x0290, 0x0290, 0x0271, 0x0251, 0x0232, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x00d2, 0x7c7a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbebc, 0x0270, 0x0271, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x00b3, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbebc, 0x0270, 0x0271, 0x0251, 0x0231, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x00b3, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6bc, 0x0250, 0x0251, 0x0232, 0x0212, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0173, 0x0133, 0x0133, 0x0093, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0231, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x0073, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0211, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x0114, 0x0073, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x01f1, 0x0212, 0x01f2, 0x01d2, 0x0193, 0x0193, 0x0173, 0x0133, 0x0114, 0x00f4, 0x00f4, 0x0053, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x01f1, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00f4, 0x0053, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x01d1, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x0054, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe9c, 0x01d1, 0x01d2, 0x01b3, 0x0173, 0x0153, 0x0133, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b5, 0x0014, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe9c, 0x01b2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b5, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0192, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00f4, 0x00d4, 0x00b4, 0x0095, 0x0014, 0x841a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe7c, 0x0172, 0x0173, 0x0173, 0x0133, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x0095, 0x0095, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe7c, 0x0172, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x0094, 0x0095, 0x0075, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe7c, 0x0153, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b4, 0x0095, 0x0075, 0x0075, 0x0015, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0133, 0x0133, 0x0114, 0x0114, 0x00d4, 0x00d4, 0x00b4, 0x0095, 0x0095, 0x0075, 0x0055, 0x0015, 0x7bfa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65c, 0x0113, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x0094, 0x0095, 0x0075, 0x0055, 0x0055, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5d, 0x0113, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0835, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5d, 0x00f3, 0x00f4, 0x00f4, 0x00d4, 0x00b4, 0x0095, 0x0095, 0x0075, 0x0055, 0x0055, 0x0835, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5d, 0x00d3, 0x00f4, 0x00d4, 0x00b5, 0x0094, 0x0095, 0x0075, 0x0075, 0x0055, 0x0835, 0x0836, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5d, 0x00d4, 0x00d4, 0x00d4, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0835, 0x0836, 0x0836, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5d, 0x00b4, 0x00d4, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0055, 0x0036, 0x0816, 0x0816, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0094, 0x00b4, 0x0095, 0x0095, 0x0075, 0x0055, 0x0055, 0x0835, 0x0836, 0x0816, 0x0816, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0094, 0x0094, 0x0095, 0x0075, 0x0055, 0x0055, 0x0835, 0x0836, 0x0816, 0x0816, 0x0815, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0074, 0x0095, 0x0075, 0x0075, 0x0055, 0x0835, 0x0835, 0x0836, 0x0816, 0x0816, 0x0816, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0054, 0x0075, 0x0075, 0x0055, 0x0056, 0x0835, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0054, 0x0075, 0x0055, 0x0055, 0x0835, 0x0036, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83da, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0035, 0x0055, 0x0055, 0x0835, 0x0836, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83da, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0035, 0x0055, 0x0035, 0x0836, 0x0816, 0x0816, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0035, 0x0836, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0036, 0x0836, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0016, 0x0015, 0x7bfa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0015, 0x841a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0016, 0x0816, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0036, 0x0015, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0816, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0815, 0x0816, 0x0835, 0x0055, 0x0015, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0014, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0075, 0x0014, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0075, 0x0075, 0x0034, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0075, 0x0095, 0x0094, 0x0053, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0035, 0x0055, 0x0095, 0x00b5, 0x00d4, 0x0073, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0835, 0x0055, 0x0055, 0x0075, 0x0094, 0x00d4, 0x00d4, 0x00b3, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0836, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x0114, 0x00d3, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc5fd, 0x0015, 0x0016, 0x0836, 0x0036, 0x0855, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0134, 0x00f3, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0836, 0x0036, 0x0855, 0x0075, 0x0075, 0x00b5, 0x00d4, 0x00f4, 0x0114, 0x0153, 0x0112, 0x7cb9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0114, 0x0133, 0x0173, 0x0152, 0x7cd8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdede, 0x0856, 0x0035, 0x0055, 0x0075, 0x0094, 0x00d5, 0x00f4, 0x0113, 0x0153, 0x0173, 0x01b3, 0x0171, 0x9dbb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x4218, 0x0014, 0x0075, 0x0094, 0x00d4, 0x00f4, 0x0114, 0x0134, 0x0173, 0x0193, 0x0191, 0x0a33, 0xe75e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0055, 0x0074, 0x00b5, 0x00f4, 0x0114, 0x0134, 0x0173, 0x0193, 0x01b2, 0x0191, 0x8539, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9cfb, 0x0074, 0x0093, 0x00f4, 0x0133, 0x0173, 0x0173, 0x0192, 0x0191, 0x6477, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe1d, 0x3a76, 0x0113, 0x0112, 0x0152, 0x0193, 0x22b4, 0x957a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd6dd, 0xb5fb, 0xb5fb, 0xcebd, 0xf7df, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0007_9.h ================================================ // extern const uint16_t ColorT_0007_9[3650]; const uint16_t ColorT_0007_9[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe7be, 0xaef9, 0x8e77, 0x8e57, 0x8e37, 0x8e37, 0x8e37, 0x8e17, 0x8e18, 0x8df8, 0x8dd8, 0x8dd8, 0x8dd8, 0x8db8, 0x8db8, 0x8d98, 0x8d78, 0x8d78, 0x8d59, 0x8559, 0x8539, 0x8d39, 0x8d39, 0x8d19, 0x8d19, 0x8cfa, 0x8cfa, 0x8cfa, 0x8cda, 0x8cda, 0x8cba, 0x8cba, 0x8c9a, 0x8c9a, 0x8c9a, 0x8c9a, 0x8c7b, 0x8c7a, 0xa53c, 0xdede, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8696, 0x14cd, 0x046b, 0x042b, 0x040c, 0x03ec, 0x03cc, 0x03ad, 0x038d, 0x036d, 0x032d, 0x030e, 0x02ee, 0x02ce, 0x02af, 0x028f, 0x026f, 0x0230, 0x0210, 0x01f0, 0x01d1, 0x01b1, 0x0191, 0x0171, 0x0152, 0x0132, 0x0112, 0x00f2, 0x00d3, 0x00b3, 0x0093, 0x0073, 0x0074, 0x0053, 0x0034, 0x0014, 0x0014, 0x0014, 0x0015, 0x0015, 0x0856, 0x5ad9, 0xe71e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6613, 0x048b, 0x048c, 0x048c, 0x046c, 0x044d, 0x042d, 0x040e, 0x03ee, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b1, 0x0271, 0x0251, 0x0231, 0x0232, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0075, 0x0075, 0x0055, 0x0015, 0x0015, 0x2116, 0xd69e, 0xffff, 0xffff, 0xffff, 0xffff, 0x9697, 0x048b, 0x04ab, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x034f, 0x0310, 0x02f0, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0232, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x0114, 0x00f4, 0x00d4, 0x00b5, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0055, 0x0835, 0x0835, 0x0035, 0x0015, 0x2937, 0xef9f, 0xffff, 0xffff, 0xefbe, 0x150d, 0x04ab, 0x048c, 0x048c, 0x046d, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ae, 0x038e, 0x036f, 0x034f, 0x032f, 0x030f, 0x02f0, 0x02d0, 0x02b1, 0x0291, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0055, 0x0836, 0x0835, 0x0036, 0x0816, 0x0816, 0x0015, 0x947b, 0xffff, 0xffff, 0xa718, 0x04ab, 0x04ac, 0x048c, 0x046c, 0x044d, 0x044d, 0x040d, 0x03ee, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x032f, 0x030f, 0x02f0, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0251, 0x0231, 0x0212, 0x01d2, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0153, 0x0133, 0x0113, 0x00f4, 0x00f4, 0x00d4, 0x00b5, 0x0094, 0x0095, 0x0075, 0x0075, 0x0055, 0x0055, 0x0035, 0x0836, 0x0836, 0x0015, 0x0016, 0x0015, 0x4a18, 0xffff, 0xffff, 0x8e96, 0x04ab, 0x04ac, 0x048c, 0x046c, 0x044d, 0x042d, 0x040d, 0x03ee, 0x03ae, 0x038f, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x02b1, 0x0291, 0x0271, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00f4, 0x00d4, 0x00b5, 0x0094, 0x0095, 0x0095, 0x0075, 0x0055, 0x0055, 0x0835, 0x0835, 0x0836, 0x0016, 0x0816, 0x0815, 0x0015, 0x3997, 0xffff, 0xffff, 0xa6d8, 0x048b, 0x048c, 0x046c, 0x044c, 0x042d, 0x042d, 0x03ee, 0x03ce, 0x03ae, 0x038e, 0x036f, 0x034f, 0x0310, 0x0310, 0x02d0, 0x02b0, 0x0291, 0x0271, 0x0252, 0x0232, 0x01f2, 0x01f2, 0x01b2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00f4, 0x00d4, 0x00b4, 0x0095, 0x0095, 0x0075, 0x0055, 0x0055, 0x0055, 0x0836, 0x0016, 0x0836, 0x0816, 0x0815, 0x0816, 0x0016, 0x4a39, 0xffff, 0xffff, 0xdf9d, 0x04cc, 0x046c, 0x046c, 0x044d, 0x040d, 0x040e, 0x03ee, 0x03ce, 0x038e, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x0291, 0x0291, 0x0251, 0x0232, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x01b3, 0x0173, 0x0153, 0x0134, 0x0133, 0x00f4, 0x00d4, 0x00d4, 0x00b4, 0x0095, 0x0095, 0x0075, 0x0075, 0x0055, 0x0035, 0x0036, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x949b, 0xffff, 0xffff, 0xffff, 0x6e14, 0x042b, 0x044c, 0x044d, 0x040d, 0x040d, 0x03ce, 0x03ae, 0x038f, 0x036f, 0x034f, 0x0330, 0x0310, 0x02d0, 0x02b1, 0x0291, 0x0271, 0x0251, 0x0211, 0x0212, 0x01f2, 0x01b2, 0x01b3, 0x0173, 0x0173, 0x0154, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x00b4, 0x0095, 0x0075, 0x0075, 0x0055, 0x0055, 0x0835, 0x0835, 0x0035, 0x0836, 0x0016, 0x0816, 0x0816, 0x0015, 0x2957, 0xf79f, 0xffff, 0xffff, 0xffff, 0xf7df, 0x4571, 0x040c, 0x040d, 0x040e, 0x03ee, 0x03ce, 0x03ae, 0x036f, 0x034f, 0x032f, 0x0310, 0x02f0, 0x02d0, 0x0291, 0x0271, 0x0251, 0x0232, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x0114, 0x00d4, 0x00d4, 0x00b5, 0x0094, 0x0095, 0x0075, 0x0055, 0x0055, 0x0035, 0x0036, 0x0816, 0x0836, 0x0816, 0x0815, 0x0016, 0x0015, 0x20f7, 0xd69e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0x6df5, 0x144e, 0x03cd, 0x03ad, 0x036d, 0x034d, 0x032e, 0x02ee, 0x02ce, 0x02af, 0x026f, 0x026f, 0x0230, 0x0211, 0x01f0, 0x0231, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0154, 0x0114, 0x0114, 0x00f4, 0x00d4, 0x0094, 0x0034, 0x0014, 0x0014, 0x0014, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0836, 0x5ab9, 0xe6fe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe77d, 0xae99, 0x8e17, 0x85f7, 0x85d7, 0x85d8, 0x85b8, 0x85b8, 0x8598, 0x8598, 0x8579, 0x8578, 0x8559, 0x6497, 0x01f1, 0x01f2, 0x01d2, 0x0192, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00d4, 0x0094, 0x4297, 0x8c9b, 0x8c7a, 0x8c7b, 0x8c7a, 0x8c7a, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c3b, 0xa4fc, 0xd6be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcedd, 0x01b1, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x0114, 0x00f4, 0x00d4, 0x0034, 0x847a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x01d2, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x0035, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67d, 0x01b2, 0x01b3, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b5, 0x0014, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe7c, 0x0192, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00f4, 0x00d4, 0x00b5, 0x00b5, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe7c, 0x0192, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00f4, 0x00b4, 0x00b5, 0x0095, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe7c, 0x0172, 0x0173, 0x0153, 0x0134, 0x0133, 0x00f4, 0x00f4, 0x00d4, 0x00b5, 0x0095, 0x0095, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe7c, 0x0153, 0x0173, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x00b5, 0x0095, 0x0075, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0153, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00f4, 0x00d4, 0x00b4, 0x0095, 0x0095, 0x0075, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0133, 0x0133, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b5, 0x0094, 0x0095, 0x0075, 0x0075, 0x0015, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0113, 0x0113, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0015, 0x7bfa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65c, 0x0113, 0x0114, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x0095, 0x0075, 0x0075, 0x0055, 0x0055, 0x0015, 0x7bfa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65c, 0x00f3, 0x0114, 0x00f4, 0x00d4, 0x00b5, 0x0095, 0x0095, 0x0075, 0x0075, 0x0055, 0x0835, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65d, 0x00f3, 0x00f4, 0x00f4, 0x00d4, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0035, 0x0835, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65d, 0x00d3, 0x00f4, 0x00d4, 0x00b4, 0x0094, 0x0095, 0x0075, 0x0075, 0x0055, 0x0835, 0x0836, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5d, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x0095, 0x0075, 0x0075, 0x0055, 0x0056, 0x0836, 0x0836, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5d, 0x00b4, 0x00d4, 0x00b4, 0x0094, 0x0095, 0x0075, 0x0055, 0x0035, 0x0835, 0x0836, 0x0015, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x00b4, 0x00b4, 0x00b5, 0x0095, 0x0075, 0x0055, 0x0055, 0x0035, 0x0036, 0x0816, 0x0816, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0094, 0x0094, 0x0095, 0x0075, 0x0075, 0x0055, 0x0035, 0x0836, 0x0836, 0x0816, 0x0816, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0094, 0x0095, 0x0095, 0x0075, 0x0055, 0x0055, 0x0835, 0x0836, 0x0816, 0x0816, 0x0815, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0074, 0x0095, 0x0075, 0x0055, 0x0055, 0x0835, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0055, 0x0075, 0x0075, 0x0055, 0x0035, 0x0036, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0055, 0x0075, 0x0055, 0x0035, 0x0035, 0x0015, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83da, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0035, 0x0055, 0x0055, 0x0835, 0x0036, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83fb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0035, 0x0055, 0x0056, 0x0835, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0035, 0x0035, 0x0835, 0x0836, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0035, 0x0836, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x83fa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0036, 0x0836, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x7bfa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0015, 0x7bfa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0835, 0x0015, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0035, 0x0015, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0075, 0x0014, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0835, 0x0855, 0x0055, 0x0075, 0x0014, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0055, 0x0055, 0x0075, 0x0095, 0x0034, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0075, 0x0095, 0x00b5, 0x0054, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0836, 0x0036, 0x0035, 0x0075, 0x0075, 0x0094, 0x00b4, 0x0073, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0835, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x0093, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0836, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x00b3, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0836, 0x0836, 0x0055, 0x0075, 0x0095, 0x00b5, 0x00d4, 0x00f4, 0x0114, 0x00d3, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0016, 0x0835, 0x0055, 0x0075, 0x0075, 0x0095, 0x00b4, 0x00f4, 0x0114, 0x0133, 0x00f2, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0035, 0x0835, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0133, 0x0153, 0x0112, 0x7cb9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x0114, 0x0133, 0x0153, 0x0193, 0x0152, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0035, 0x0075, 0x0095, 0x00b5, 0x00d4, 0x00f4, 0x0114, 0x0153, 0x0173, 0x01b3, 0x0171, 0x7cf9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0055, 0x0075, 0x00b5, 0x00d4, 0x00f4, 0x0114, 0x0153, 0x0173, 0x0193, 0x01d2, 0x0191, 0x7cf8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0035, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x0114, 0x0133, 0x0173, 0x0193, 0x01b2, 0x01f2, 0x01b0, 0x7d18, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0035, 0x0095, 0x00b5, 0x00d4, 0x0114, 0x0133, 0x0153, 0x0193, 0x01b2, 0x01f2, 0x0212, 0x01f0, 0x7d38, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0054, 0x00b5, 0x00d4, 0x00f4, 0x0133, 0x0153, 0x0173, 0x01b2, 0x01d2, 0x0212, 0x0231, 0x0210, 0x7d38, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0074, 0x00d4, 0x00f4, 0x0114, 0x0153, 0x0173, 0x01b2, 0x01d2, 0x0212, 0x0231, 0x0271, 0x0250, 0x7d58, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0094, 0x00f4, 0x0114, 0x0133, 0x0173, 0x0193, 0x01d2, 0x01f2, 0x0231, 0x0251, 0x0291, 0x026f, 0x7d57, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x00b4, 0x0114, 0x0133, 0x0173, 0x0193, 0x01d2, 0x01f2, 0x0232, 0x0251, 0x0291, 0x02d0, 0x02af, 0x7d97, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63c, 0x00d3, 0x0114, 0x0153, 0x0193, 0x01b3, 0x01f2, 0x0231, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x02cf, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65d, 0x00f3, 0x0153, 0x0193, 0x01b3, 0x01f2, 0x0212, 0x0251, 0x0271, 0x02b1, 0x02f0, 0x0310, 0x030e, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5c, 0x0113, 0x0173, 0x01b3, 0x01f2, 0x0212, 0x0251, 0x0271, 0x02b0, 0x02f0, 0x0310, 0x034f, 0x034d, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5d, 0x0153, 0x0193, 0x01d2, 0x0212, 0x0231, 0x0271, 0x02b0, 0x02f0, 0x0310, 0x034f, 0x038e, 0x036d, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf1d, 0x01b3, 0x01b2, 0x01f2, 0x0252, 0x0271, 0x02b1, 0x02f0, 0x0310, 0x034f, 0x038e, 0x038e, 0x03ad, 0x9e79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x3b35, 0x01b1, 0x0231, 0x0251, 0x02b0, 0x02d0, 0x030f, 0x034f, 0x036f, 0x03ae, 0x03ae, 0x0c2e, 0xe79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe9c, 0x01f1, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x032f, 0x036f, 0x03ae, 0x03ce, 0x03ac, 0x8637, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x95da, 0x0270, 0x028f, 0x02ef, 0x032f, 0x036f, 0x038e, 0x03ad, 0x03ac, 0x65b4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe9b, 0x3bf3, 0x032f, 0x032e, 0x036d, 0x03ae, 0x2470, 0x9678, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd73c, 0xb69a, 0xae9a, 0xcf1c, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0008_8.h ================================================ // extern const uint16_t ColorT_0008_8[3650]; const uint16_t ColorT_0008_8[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe77e, 0xae1a, 0x8d59, 0x8d39, 0x8d39, 0x8d19, 0x8d19, 0x8cfa, 0x8cfa, 0x8cfa, 0x8cda, 0x8cda, 0x8cba, 0x8cba, 0x8c9a, 0x8c9a, 0x8c9a, 0x8c9b, 0x8c7b, 0x8c7b, 0x8c7b, 0x8c7b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c7b, 0x8c7b, 0x8c9a, 0xa53c, 0xdefd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8d58, 0x12b2, 0x0211, 0x01d1, 0x01b1, 0x0191, 0x0171, 0x0132, 0x0112, 0x00f2, 0x00d3, 0x00b3, 0x0093, 0x0073, 0x0053, 0x0033, 0x0014, 0x0014, 0x0014, 0x0015, 0x0014, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0014, 0x0015, 0x0034, 0x0895, 0x5b38, 0xdf3e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x64d6, 0x0230, 0x0250, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0035, 0x0035, 0x0036, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0016, 0x0036, 0x0835, 0x0056, 0x0055, 0x0075, 0x0095, 0x0095, 0x00b4, 0x0073, 0x1995, 0xd6be, 0xffff, 0xffff, 0xffff, 0xffff, 0x95b9, 0x0250, 0x0271, 0x0271, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0153, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b5, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0055, 0x0835, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0835, 0x0055, 0x0075, 0x0095, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x00b3, 0x2215, 0xf79f, 0xffff, 0xffff, 0xef9e, 0x1311, 0x0271, 0x0271, 0x0252, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b4, 0x0095, 0x0075, 0x0075, 0x0055, 0x0035, 0x0835, 0x0836, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b5, 0x00d4, 0x00d4, 0x0113, 0x0133, 0x00d3, 0x8d1a, 0xffff, 0xffff, 0xae3a, 0x0270, 0x0291, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0133, 0x0133, 0x00f4, 0x00f4, 0x00d4, 0x00b5, 0x00b5, 0x0095, 0x0075, 0x0075, 0x0055, 0x0035, 0x0835, 0x0036, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0815, 0x0836, 0x0035, 0x0055, 0x0075, 0x0075, 0x0095, 0x00d5, 0x00b4, 0x00f5, 0x0114, 0x0153, 0x0112, 0x4336, 0xffff, 0xffff, 0x8d99, 0x0230, 0x0271, 0x0251, 0x0232, 0x01f2, 0x01f2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00f4, 0x00d4, 0x00b4, 0x0094, 0x0075, 0x0075, 0x0055, 0x0055, 0x0835, 0x0836, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x0836, 0x0835, 0x0055, 0x0075, 0x0075, 0x0094, 0x00b4, 0x00d4, 0x00f4, 0x0114, 0x0134, 0x0153, 0x0132, 0x32f5, 0xffff, 0xffff, 0xa61a, 0x0230, 0x0251, 0x0231, 0x0212, 0x01f2, 0x01d3, 0x0193, 0x0193, 0x0153, 0x0133, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b5, 0x00b5, 0x0095, 0x0075, 0x0055, 0x0055, 0x0835, 0x0836, 0x0836, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0055, 0x0075, 0x0095, 0x0095, 0x00d4, 0x00f4, 0x00f4, 0x0114, 0x0153, 0x0173, 0x0132, 0x4376, 0xffff, 0xffff, 0xdf5d, 0x0291, 0x0231, 0x0212, 0x01f2, 0x01d2, 0x01b2, 0x0193, 0x0173, 0x0153, 0x0134, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b4, 0x0095, 0x0075, 0x0875, 0x0055, 0x0055, 0x0035, 0x0836, 0x0815, 0x0816, 0x0816, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0815, 0x0815, 0x0835, 0x0835, 0x0055, 0x0075, 0x0095, 0x0094, 0x00d4, 0x00d4, 0x00f4, 0x0113, 0x0153, 0x0153, 0x0193, 0x0132, 0x955a, 0xffff, 0xffff, 0xffff, 0x6cd7, 0x01d0, 0x0212, 0x01f2, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0133, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00b4, 0x0095, 0x0094, 0x0075, 0x0055, 0x0055, 0x0836, 0x0036, 0x0836, 0x0816, 0x0816, 0x0815, 0x0816, 0x0815, 0x0816, 0x0816, 0x0816, 0x0836, 0x0836, 0x0835, 0x0055, 0x0055, 0x0075, 0x0094, 0x00b4, 0x00d4, 0x0114, 0x0114, 0x0134, 0x0153, 0x0173, 0x0152, 0x2ab4, 0xf7bf, 0xffff, 0xffff, 0xffff, 0xf7bf, 0x4395, 0x0191, 0x01d2, 0x01b3, 0x0193, 0x0173, 0x0153, 0x0133, 0x0114, 0x00f4, 0x00d4, 0x00d4, 0x00b5, 0x0095, 0x0095, 0x0075, 0x0055, 0x0055, 0x0835, 0x0016, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0815, 0x0036, 0x0836, 0x0055, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00b4, 0x00f4, 0x00f4, 0x0133, 0x0154, 0x0153, 0x0112, 0x1a74, 0xd6dd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0x6c98, 0x0a12, 0x0152, 0x0132, 0x00f2, 0x00d3, 0x00b3, 0x0093, 0x0073, 0x0074, 0x0054, 0x0034, 0x0014, 0x0014, 0x0015, 0x0055, 0x0835, 0x0835, 0x0816, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0014, 0x0014, 0x0034, 0x0054, 0x0054, 0x0093, 0x00d3, 0x00d3, 0x0112, 0x0193, 0x53d6, 0xdf3e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe75e, 0xa5bb, 0x8cf9, 0x84da, 0x84da, 0x84ba, 0x8cba, 0x84ba, 0x8c9a, 0x8c9a, 0x8c9b, 0x8c7a, 0x8c7b, 0x6b7a, 0x0035, 0x0036, 0x0836, 0x0815, 0x0815, 0x0816, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x4238, 0x8c5b, 0x8c7a, 0x8c7b, 0x8c7b, 0x8c9b, 0x8c9a, 0x8c9a, 0x84ba, 0x8cba, 0x8cda, 0x84d9, 0xa59a, 0xd6fd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xce7d, 0x0015, 0x0835, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0015, 0x845b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0016, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0016, 0x0816, 0x0815, 0x0015, 0x7bfb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0015, 0x0816, 0x0815, 0x0816, 0x0816, 0x0815, 0x0816, 0x0816, 0x0816, 0x0836, 0x0015, 0x841a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0035, 0x0015, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0015, 0x0815, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0015, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0014, 0x7c1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0075, 0x0014, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0055, 0x0075, 0x0014, 0x7c3a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0016, 0x0835, 0x0035, 0x0055, 0x0075, 0x0095, 0x0034, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0036, 0x0835, 0x0055, 0x0055, 0x0075, 0x0094, 0x0054, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc5fd, 0x0016, 0x0816, 0x0816, 0x0816, 0x0836, 0x0035, 0x0836, 0x0055, 0x0075, 0x0095, 0x00b4, 0x0074, 0x7c5a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0016, 0x0816, 0x0816, 0x0816, 0x0836, 0x0035, 0x0055, 0x0075, 0x0095, 0x0094, 0x00b4, 0x0073, 0x7c59, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0816, 0x0816, 0x0836, 0x0035, 0x0055, 0x0055, 0x0095, 0x0095, 0x00b4, 0x00d4, 0x0093, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0816, 0x0816, 0x0836, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b5, 0x00d4, 0x00f4, 0x00b3, 0x7c79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0815, 0x0836, 0x0835, 0x0055, 0x0075, 0x0095, 0x0094, 0x00b4, 0x00f4, 0x0114, 0x00d3, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0016, 0x0836, 0x0055, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0134, 0x00f2, 0x7c99, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0015, 0x0056, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0114, 0x0153, 0x0112, 0x7cb9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0036, 0x0055, 0x0055, 0x0075, 0x0094, 0x00b4, 0x00f4, 0x0114, 0x0133, 0x0153, 0x0112, 0x7cb9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b5, 0x00d4, 0x00f4, 0x0134, 0x0153, 0x0173, 0x0132, 0x7cd9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0055, 0x0075, 0x0095, 0x00b5, 0x00d4, 0x00f4, 0x0114, 0x0134, 0x0173, 0x0193, 0x0152, 0x7cd8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0055, 0x0095, 0x0094, 0x00b4, 0x00f4, 0x0114, 0x0133, 0x0153, 0x0192, 0x01b3, 0x0171, 0x7cf8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0015, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0133, 0x0153, 0x0173, 0x01b2, 0x01d2, 0x01b1, 0x7cf8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0035, 0x0075, 0x00b5, 0x00d4, 0x00f4, 0x0114, 0x0133, 0x0153, 0x0193, 0x01d2, 0x01f2, 0x01d1, 0x7d18, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc61d, 0x0055, 0x0094, 0x00b5, 0x00f4, 0x0114, 0x0133, 0x0153, 0x0193, 0x01b2, 0x01d2, 0x0212, 0x01f0, 0x7d18, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0055, 0x00b4, 0x00d4, 0x0114, 0x0134, 0x0153, 0x0193, 0x01b3, 0x01d2, 0x0212, 0x0231, 0x0210, 0x7d38, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0074, 0x00b4, 0x00f4, 0x0114, 0x0133, 0x0173, 0x01b3, 0x01d2, 0x01f2, 0x0232, 0x0271, 0x0230, 0x7d58, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0094, 0x00d4, 0x0114, 0x0133, 0x0153, 0x0193, 0x01b2, 0x01f2, 0x0212, 0x0251, 0x0271, 0x0270, 0x7d58, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0094, 0x00f4, 0x0134, 0x0153, 0x0173, 0x01b2, 0x01d2, 0x0212, 0x0231, 0x0271, 0x0291, 0x028f, 0x7d77, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x00b4, 0x0113, 0x0153, 0x0173, 0x0193, 0x01d2, 0x01f2, 0x0231, 0x0251, 0x0291, 0x02d0, 0x02af, 0x7d97, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x00d4, 0x0133, 0x0173, 0x0193, 0x01b2, 0x01f2, 0x0212, 0x0251, 0x0271, 0x02b0, 0x02f0, 0x02ce, 0x7d97, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5c, 0x00f3, 0x0153, 0x0193, 0x01b3, 0x01d2, 0x0212, 0x0231, 0x0271, 0x02b0, 0x02d0, 0x030f, 0x02ee, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65d, 0x0113, 0x0173, 0x0193, 0x01d2, 0x01f2, 0x0231, 0x0271, 0x0290, 0x02d0, 0x02f0, 0x032f, 0x032e, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5c, 0x0133, 0x0193, 0x01d2, 0x01f2, 0x0232, 0x0251, 0x0291, 0x02d0, 0x0310, 0x032f, 0x034f, 0x034d, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5c, 0x0152, 0x01b3, 0x01f2, 0x0212, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x032f, 0x034f, 0x038f, 0x036d, 0x7dd6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0172, 0x01d2, 0x0211, 0x0231, 0x0271, 0x02b1, 0x02d0, 0x030f, 0x034f, 0x036f, 0x03ae, 0x038d, 0x7df6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0192, 0x01f2, 0x0231, 0x0271, 0x0291, 0x02d0, 0x02f0, 0x032f, 0x036f, 0x038e, 0x03ce, 0x03cc, 0x7e16, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe7c, 0x01d1, 0x0231, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x032f, 0x034f, 0x038e, 0x03ae, 0x03ee, 0x03ec, 0x7e16, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x01f1, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x0310, 0x034f, 0x038f, 0x03ae, 0x03ee, 0x040d, 0x040c, 0x7e36, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0211, 0x0271, 0x02b1, 0x02f0, 0x0310, 0x034f, 0x036f, 0x03ae, 0x03ce, 0x040e, 0x042d, 0x042b, 0x7e35, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0230, 0x0291, 0x02d0, 0x0310, 0x032f, 0x036f, 0x03ae, 0x03ce, 0x040d, 0x042d, 0x044d, 0x044b, 0x7e55, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0270, 0x02b0, 0x02f0, 0x032f, 0x036f, 0x038f, 0x03ce, 0x040e, 0x042d, 0x044d, 0x048c, 0x046b, 0x7e55, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6bc, 0x0290, 0x02d0, 0x0310, 0x034f, 0x038f, 0x03ae, 0x03ed, 0x042d, 0x044d, 0x046c, 0x04ac, 0x048a, 0x7e55, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbebc, 0x02b0, 0x0310, 0x034f, 0x036f, 0x03ae, 0x03ee, 0x040d, 0x044d, 0x046d, 0x048c, 0x04ac, 0x04ca, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6bb, 0x02cf, 0x032f, 0x036f, 0x03ae, 0x03ce, 0x040d, 0x042d, 0x046c, 0x048c, 0x04ab, 0x04cb, 0x04ca, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6db, 0x030f, 0x036f, 0x03ae, 0x03ce, 0x040e, 0x042d, 0x046c, 0x048c, 0x04ac, 0x04eb, 0x04eb, 0x04e9, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6db, 0x032e, 0x038e, 0x03ce, 0x03ee, 0x042d, 0x044d, 0x048c, 0x04ac, 0x04cb, 0x050b, 0x050b, 0x0509, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbedb, 0x034e, 0x03ae, 0x03ee, 0x040d, 0x044d, 0x046c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052a, 0x0529, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fc, 0x038e, 0x03ce, 0x040d, 0x044d, 0x046c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052a, 0x054a, 0x0549, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbefb, 0x03ad, 0x040d, 0x044d, 0x046c, 0x048c, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x0548, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x03cd, 0x042d, 0x046d, 0x048c, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x0589, 0x0568, 0x7ed4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x040d, 0x044d, 0x048c, 0x04ac, 0x04ec, 0x050b, 0x052b, 0x054a, 0x056a, 0x0569, 0x0589, 0x0568, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x042c, 0x048c, 0x04ac, 0x04cb, 0x050b, 0x050b, 0x054a, 0x054a, 0x056a, 0x058a, 0x0589, 0x0587, 0x86d3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1b, 0x046c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052a, 0x056a, 0x0569, 0x058a, 0x05a9, 0x0da9, 0x05a7, 0x8ef4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf9d, 0x048c, 0x04ab, 0x04eb, 0x050b, 0x054a, 0x054a, 0x0569, 0x058a, 0x05a9, 0x05a9, 0x0dc8, 0x05a7, 0xa736, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x3d90, 0x04aa, 0x050b, 0x052b, 0x054a, 0x054a, 0x056a, 0x0589, 0x0da8, 0x0dc9, 0x0dc8, 0x25e9, 0xe7dd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73a, 0x04eb, 0x052a, 0x054a, 0x056a, 0x0589, 0x0589, 0x05a9, 0x0dc8, 0x15c8, 0x05c6, 0x96f4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9ed7, 0x052a, 0x0548, 0x0569, 0x0589, 0x05a9, 0x0dc8, 0x0da7, 0x0da6, 0x76b1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf59, 0x3e0e, 0x0589, 0x0588, 0x05a7, 0x0da7, 0x362b, 0x9f35, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd79c, 0xb758, 0xb758, 0xcf9a, 0xfffe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0009_7.h ================================================ // extern const uint16_t ColorT_0009_7[3650]; const uint16_t ColorT_0009_7[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe75e, 0xad9c, 0x947b, 0x8c7b, 0x8c7b, 0x8c7b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c7b, 0x8c7b, 0x8c7b, 0x8c7b, 0x8c9a, 0x8c9a, 0x8cba, 0x8cba, 0x8cda, 0x8cda, 0x8cf9, 0x8cfa, 0x8519, 0x8539, 0x8539, 0x8d59, 0x8d59, 0x8d79, 0x8d78, 0x8598, 0x8db8, 0x8dd8, 0xa63a, 0xd75d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x847a, 0x10f6, 0x0014, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0014, 0x0014, 0x0014, 0x0034, 0x0053, 0x0073, 0x0093, 0x00b3, 0x00d2, 0x0112, 0x0132, 0x0151, 0x0191, 0x01b1, 0x01d0, 0x0210, 0x0230, 0x026f, 0x028f, 0x02ce, 0x02ee, 0x032e, 0x038e, 0x5534, 0xe77e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6399, 0x0014, 0x0035, 0x0055, 0x0055, 0x0836, 0x0036, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0075, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0114, 0x0133, 0x0173, 0x0193, 0x01b2, 0x01d2, 0x01f2, 0x0232, 0x0251, 0x0291, 0x02b0, 0x02d0, 0x0310, 0x032f, 0x034f, 0x038f, 0x03ae, 0x038d, 0x1c4f, 0xcf5c, 0xffff, 0xffff, 0xffff, 0xffff, 0x94db, 0x0034, 0x0075, 0x0075, 0x0056, 0x0055, 0x0836, 0x0836, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0836, 0x0055, 0x0055, 0x0075, 0x0095, 0x0094, 0x00d4, 0x00f4, 0x0114, 0x0133, 0x0153, 0x0173, 0x0193, 0x01d2, 0x01f2, 0x0212, 0x0251, 0x0271, 0x0291, 0x02d0, 0x02f0, 0x0310, 0x034f, 0x036f, 0x038f, 0x03ae, 0x03ee, 0x03cc, 0x24d0, 0xefde, 0xffff, 0xffff, 0xef5e, 0x1156, 0x0054, 0x0075, 0x0055, 0x0056, 0x0835, 0x0836, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0855, 0x0075, 0x0095, 0x0095, 0x00b5, 0x00d4, 0x00f4, 0x0133, 0x0153, 0x0173, 0x0193, 0x01b2, 0x01f2, 0x0212, 0x0231, 0x0271, 0x0291, 0x02b0, 0x02f0, 0x030f, 0x032f, 0x036f, 0x038e, 0x03ae, 0x03ee, 0x040e, 0x042d, 0x040b, 0x8e57, 0xffff, 0xffff, 0xa59c, 0x0034, 0x0075, 0x0075, 0x0055, 0x0835, 0x0835, 0x0036, 0x0836, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0035, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b5, 0x00d4, 0x00f4, 0x0114, 0x0133, 0x0153, 0x0173, 0x01b3, 0x01d2, 0x0212, 0x0231, 0x0251, 0x0271, 0x02b1, 0x02d0, 0x02f0, 0x0310, 0x034f, 0x036f, 0x03ae, 0x03ce, 0x03ed, 0x040d, 0x044d, 0x044c, 0x4571, 0xffff, 0xffff, 0x8c9a, 0x0014, 0x0075, 0x0055, 0x0055, 0x0035, 0x0035, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0835, 0x0055, 0x0075, 0x0095, 0x0094, 0x00b5, 0x00d4, 0x00f4, 0x0134, 0x0153, 0x0173, 0x0193, 0x01d2, 0x01f2, 0x0212, 0x0231, 0x0271, 0x0291, 0x02b0, 0x02f0, 0x030f, 0x034f, 0x036f, 0x038e, 0x03ce, 0x03ee, 0x040d, 0x042d, 0x044d, 0x044c, 0x3550, 0xffff, 0xffff, 0xa55c, 0x0014, 0x0075, 0x0855, 0x0055, 0x0835, 0x0836, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0836, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b5, 0x00d4, 0x00f4, 0x0114, 0x0133, 0x0153, 0x0193, 0x01b2, 0x01d2, 0x0212, 0x0232, 0x0251, 0x0291, 0x02b1, 0x02f0, 0x0310, 0x032f, 0x036f, 0x038f, 0x03ae, 0x03ee, 0x03ed, 0x042d, 0x044d, 0x046c, 0x046b, 0x4591, 0xffff, 0xffff, 0xdefe, 0x08b5, 0x0055, 0x0855, 0x0035, 0x0835, 0x0016, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0815, 0x0816, 0x0836, 0x0835, 0x0055, 0x0075, 0x0095, 0x0094, 0x00d4, 0x00d4, 0x0114, 0x0133, 0x0153, 0x0173, 0x01b3, 0x01d2, 0x01f2, 0x0212, 0x0251, 0x0271, 0x02b1, 0x02d0, 0x02f0, 0x0330, 0x034f, 0x036f, 0x03ae, 0x03ce, 0x03ee, 0x040d, 0x044d, 0x046d, 0x048c, 0x046b, 0x9697, 0xffff, 0xffff, 0xffff, 0x73b9, 0x0014, 0x0855, 0x0035, 0x0036, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0836, 0x0836, 0x0835, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0114, 0x0153, 0x0153, 0x0193, 0x01b2, 0x01f2, 0x0211, 0x0231, 0x0271, 0x0291, 0x02b0, 0x02f0, 0x0310, 0x034f, 0x036f, 0x038e, 0x03ae, 0x03ee, 0x040d, 0x042d, 0x046d, 0x048c, 0x046b, 0x2d4f, 0xf7de, 0xffff, 0xffff, 0xffff, 0xf79f, 0x4258, 0x0014, 0x0015, 0x0015, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0035, 0x0055, 0x0075, 0x0095, 0x00b5, 0x00b4, 0x00d4, 0x0114, 0x0133, 0x0153, 0x0173, 0x01b3, 0x01d2, 0x01f2, 0x0232, 0x0251, 0x0271, 0x02b1, 0x02f0, 0x0310, 0x032f, 0x036f, 0x038e, 0x03ae, 0x03ce, 0x040d, 0x042d, 0x044d, 0x046c, 0x044b, 0x250e, 0xd77c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0x739a, 0x1096, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0014, 0x0014, 0x0094, 0x0094, 0x00d4, 0x00f4, 0x0113, 0x0153, 0x0173, 0x0193, 0x01b2, 0x01f2, 0x0212, 0x0232, 0x0250, 0x0250, 0x026f, 0x02af, 0x02ce, 0x030e, 0x032e, 0x036d, 0x038d, 0x03ad, 0x03cc, 0x040c, 0x042c, 0x048c, 0x5dd2, 0xdf9d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe71e, 0xad3c, 0x8c3b, 0x8c3b, 0x8c3b, 0x8c3b, 0x8c3b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c5b, 0x8c7b, 0x6b79, 0x0094, 0x00b5, 0x00f4, 0x0113, 0x0133, 0x0153, 0x0193, 0x01b2, 0x01d2, 0x0212, 0x0232, 0x0231, 0x43f4, 0x8598, 0x8d98, 0x85b8, 0x85d8, 0x8dd8, 0x85f7, 0x85f7, 0x8617, 0x8e37, 0x8637, 0x8e57, 0xa6b8, 0xd77c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xce9d, 0x0074, 0x00d4, 0x00f4, 0x0133, 0x0153, 0x0173, 0x0192, 0x01d2, 0x01f2, 0x0231, 0x0251, 0x0210, 0x8578, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x0094, 0x00f4, 0x0113, 0x0134, 0x0173, 0x0193, 0x01b2, 0x01d2, 0x0212, 0x0231, 0x0271, 0x0230, 0x7d38, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x00b4, 0x00f4, 0x0134, 0x0153, 0x0193, 0x01b3, 0x01d2, 0x01f2, 0x0231, 0x0251, 0x0291, 0x024f, 0x7d58, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x00b4, 0x0113, 0x0134, 0x0173, 0x0193, 0x01b2, 0x01f2, 0x0211, 0x0251, 0x0271, 0x0290, 0x028f, 0x7d78, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc63d, 0x00d4, 0x0133, 0x0153, 0x0173, 0x01b3, 0x01d2, 0x01f2, 0x0231, 0x0271, 0x0291, 0x02b0, 0x028f, 0x7d77, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5d, 0x00f3, 0x0133, 0x0173, 0x0193, 0x01d2, 0x01f2, 0x0232, 0x0251, 0x0271, 0x02b1, 0x02d0, 0x02cf, 0x7d97, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe5c, 0x00f3, 0x0153, 0x0193, 0x01b2, 0x01d2, 0x0212, 0x0231, 0x0271, 0x0291, 0x02d0, 0x02f0, 0x02ce, 0x7d97, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65d, 0x0113, 0x0173, 0x01b3, 0x01d2, 0x01f2, 0x0231, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x030f, 0x02ee, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65c, 0x0133, 0x0193, 0x01b2, 0x01f2, 0x0212, 0x0251, 0x0271, 0x02b1, 0x02d0, 0x02f0, 0x032f, 0x030e, 0x7db7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc65c, 0x0152, 0x01b3, 0x01d2, 0x01f2, 0x0231, 0x0271, 0x0291, 0x02d0, 0x02f0, 0x032f, 0x034f, 0x034d, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0152, 0x01b3, 0x01f2, 0x0212, 0x0251, 0x0271, 0x02b0, 0x02f0, 0x030f, 0x032f, 0x036f, 0x034d, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0192, 0x01d2, 0x0212, 0x0231, 0x0271, 0x0290, 0x02d0, 0x0310, 0x032f, 0x036f, 0x038e, 0x036d, 0x7dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x0192, 0x01f2, 0x0232, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x032f, 0x034f, 0x038f, 0x03ae, 0x038d, 0x7df6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x01b2, 0x0211, 0x0251, 0x0271, 0x02b0, 0x02f0, 0x030f, 0x034f, 0x036f, 0x03ae, 0x03ce, 0x03ac, 0x7e16, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc67c, 0x01d1, 0x0231, 0x0271, 0x0290, 0x02d0, 0x0310, 0x032f, 0x036f, 0x038f, 0x03ae, 0x03ee, 0x03cc, 0x7e16, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe9c, 0x01f1, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x0310, 0x034f, 0x036f, 0x03ae, 0x03ce, 0x040d, 0x03ec, 0x7e16, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0211, 0x0271, 0x02b1, 0x02d0, 0x0310, 0x032f, 0x036f, 0x038f, 0x03ce, 0x03ee, 0x042d, 0x040c, 0x7e36, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbe9c, 0x0231, 0x0291, 0x02d0, 0x02f0, 0x032f, 0x034f, 0x038e, 0x03ae, 0x03ee, 0x040d, 0x044d, 0x042b, 0x7e36, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0251, 0x02b1, 0x02f0, 0x030f, 0x034f, 0x036f, 0x038e, 0x03ce, 0x040d, 0x042d, 0x044d, 0x044b, 0x7e56, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc69c, 0x0270, 0x02d0, 0x02f0, 0x032f, 0x036f, 0x038e, 0x03ce, 0x03ee, 0x042d, 0x044d, 0x048c, 0x046b, 0x7e55, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbebc, 0x0290, 0x02f0, 0x032f, 0x034f, 0x038f, 0x03ae, 0x03ee, 0x040e, 0x044d, 0x046c, 0x048c, 0x048b, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbebc, 0x02b0, 0x0310, 0x034f, 0x036f, 0x03ae, 0x03ce, 0x040e, 0x042d, 0x046d, 0x048c, 0x04ac, 0x04aa, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbebc, 0x02cf, 0x032f, 0x036f, 0x038e, 0x03ce, 0x03ed, 0x042d, 0x044d, 0x048c, 0x04ac, 0x04cc, 0x04aa, 0x7e75, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbedb, 0x02ef, 0x034f, 0x038f, 0x03ae, 0x03ee, 0x040d, 0x044d, 0x046c, 0x04ac, 0x04ac, 0x04eb, 0x04ca, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6db, 0x032f, 0x036f, 0x03ae, 0x03ce, 0x040d, 0x042d, 0x046d, 0x048c, 0x04ac, 0x04cb, 0x050b, 0x04ea, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbedb, 0x034e, 0x038e, 0x03ce, 0x03ee, 0x042d, 0x044d, 0x048c, 0x04ac, 0x04cb, 0x04eb, 0x050a, 0x0509, 0x7e95, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbedb, 0x036e, 0x03ae, 0x03ee, 0x040d, 0x044d, 0x046d, 0x048c, 0x04cb, 0x04eb, 0x050b, 0x052b, 0x0509, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x038e, 0x03ce, 0x040d, 0x042d, 0x046d, 0x048c, 0x04ac, 0x04eb, 0x050b, 0x052b, 0x054a, 0x0528, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x03ae, 0x03ee, 0x042d, 0x044d, 0x048c, 0x04ac, 0x04cb, 0x04eb, 0x050b, 0x052b, 0x054a, 0x0548, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x03cd, 0x040d, 0x044d, 0x046c, 0x04ac, 0x04cb, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x0548, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x03ed, 0x042d, 0x046c, 0x048c, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x056a, 0x0568, 0x7ed4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x040d, 0x044d, 0x048c, 0x04ac, 0x04cc, 0x04eb, 0x052b, 0x052a, 0x054a, 0x056a, 0x0589, 0x0568, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1b, 0x042c, 0x046c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x0589, 0x0589, 0x0587, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1b, 0x044c, 0x048c, 0x04ac, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x056a, 0x0589, 0x05a9, 0x0587, 0x86d3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1b, 0x046c, 0x04ac, 0x04cb, 0x050b, 0x052b, 0x054a, 0x054a, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0587, 0x86f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x048b, 0x04cb, 0x04eb, 0x050b, 0x054a, 0x056a, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0dc8, 0x05a7, 0x86f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x04ab, 0x04eb, 0x050b, 0x052a, 0x054a, 0x056a, 0x058a, 0x0589, 0x0da9, 0x0da8, 0x15c8, 0x0da7, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x04cb, 0x050b, 0x052b, 0x054a, 0x056a, 0x056a, 0x0589, 0x0da9, 0x0da9, 0x15c8, 0x15c8, 0x0dc6, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x04ea, 0x052b, 0x054a, 0x056a, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0dc8, 0x15c8, 0x1de8, 0x15c6, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf3a, 0x050a, 0x052a, 0x054a, 0x056a, 0x0589, 0x0589, 0x0da9, 0x0dc9, 0x15c8, 0x1de8, 0x1de8, 0x15e6, 0x9713, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x050a, 0x054a, 0x056a, 0x058a, 0x0589, 0x0da9, 0x0da8, 0x15c8, 0x1de8, 0x1de8, 0x2607, 0x1de5, 0x96f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x052a, 0x054a, 0x0589, 0x0589, 0x0da9, 0x0dc9, 0x15c8, 0x15c8, 0x1de7, 0x25e8, 0x2e07, 0x25e5, 0x96f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x0549, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0dc8, 0x15e8, 0x1de8, 0x25e7, 0x2607, 0x2e07, 0x2de5, 0x9ef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x0569, 0x0589, 0x05a9, 0x05a9, 0x0da9, 0x15c8, 0x1de8, 0x1e07, 0x2607, 0x2e07, 0x3606, 0x2de5, 0x9ef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x0569, 0x0589, 0x05a9, 0x0dc9, 0x15c8, 0x1de8, 0x1de8, 0x2607, 0x2e07, 0x35e7, 0x3e06, 0x35e5, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0589, 0x05a9, 0x0da9, 0x15c8, 0x1de8, 0x1de8, 0x25e7, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x3de4, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0588, 0x0da9, 0x15c8, 0x15c8, 0x1de8, 0x2607, 0x2e07, 0x2e07, 0x3606, 0x4606, 0x4606, 0x45e4, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0588, 0x0dc8, 0x15c8, 0x1de8, 0x25e7, 0x2607, 0x2e07, 0x3606, 0x3e06, 0x45e6, 0x4e06, 0x4dc4, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x05a8, 0x15c8, 0x1de8, 0x25e7, 0x2607, 0x2e07, 0x3606, 0x3e06, 0x4606, 0x4e06, 0x55e5, 0x55e3, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0da8, 0x15e8, 0x1de8, 0x2607, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5de5, 0x5de3, 0xb712, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0dc8, 0x1de7, 0x2607, 0x2e07, 0x3607, 0x3de7, 0x4606, 0x4e06, 0x5605, 0x5de5, 0x6605, 0x65e3, 0xb6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x15e7, 0x25e7, 0x2e07, 0x3607, 0x3606, 0x45e6, 0x4606, 0x4e06, 0x5de5, 0x6605, 0x6de4, 0x6de2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf7a, 0x1de6, 0x2de7, 0x2e07, 0x35e7, 0x4606, 0x4e06, 0x4de5, 0x5605, 0x6605, 0x6604, 0x7605, 0x75e2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc779, 0x25e6, 0x2de7, 0x3606, 0x3de6, 0x4de6, 0x4de5, 0x55e5, 0x5e05, 0x65e4, 0x6e04, 0x7de4, 0x7dc2, 0xc6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe7bc, 0x2e07, 0x3607, 0x3e06, 0x45e6, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x75e4, 0x7604, 0x7e04, 0x85e2, 0xd754, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x666c, 0x35c5, 0x45e6, 0x4e05, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7de4, 0x7e04, 0x85e3, 0x9605, 0xf7dc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x3e05, 0x45e5, 0x55e5, 0x5605, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8603, 0x8dc1, 0xcf12, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf35, 0x4de5, 0x55c4, 0x65e5, 0x6e04, 0x7604, 0x7de4, 0x85e3, 0x8dc1, 0xbece, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x866a, 0x6e04, 0x6de3, 0x75e3, 0x85e3, 0x9e47, 0xd733, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe7bb, 0xd757, 0xd757, 0xe79a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0010_6.h ================================================ // extern const uint16_t ColorT_0010_6[3650]; const uint16_t ColorT_0010_6[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe75f, 0xad7c, 0x8c9a, 0x8c9a, 0x8c9a, 0x8cba, 0x8cda, 0x8cda, 0x8cda, 0x8cf9, 0x8d19, 0x8d19, 0x8d39, 0x8d59, 0x8d59, 0x8d79, 0x8d99, 0x8db8, 0x8db8, 0x8dd8, 0x8dd8, 0x8df8, 0x8e18, 0x8e37, 0x8e37, 0x8e37, 0x8e57, 0x8e77, 0x8e76, 0x8e96, 0x8e96, 0x8eb6, 0x8eb6, 0x8eb6, 0x8eb5, 0x8ed5, 0x8ed5, 0x8ef5, 0xa717, 0xdf9c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8c5b, 0x10d5, 0x0014, 0x0014, 0x0034, 0x0054, 0x0073, 0x00b3, 0x00d3, 0x00f2, 0x0112, 0x0152, 0x0171, 0x01b1, 0x01f1, 0x0210, 0x0250, 0x026f, 0x02af, 0x02ce, 0x030e, 0x032d, 0x036d, 0x038d, 0x03cc, 0x03ec, 0x040c, 0x042b, 0x046b, 0x048a, 0x04aa, 0x04ca, 0x04e9, 0x0509, 0x0529, 0x0528, 0x0548, 0x0548, 0x0567, 0x0588, 0x0da9, 0x5e90, 0xe7bd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6b59, 0x0015, 0x0035, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0133, 0x0153, 0x0173, 0x01b3, 0x01d2, 0x01f2, 0x0232, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x0310, 0x032f, 0x036f, 0x038e, 0x03ce, 0x03ee, 0x040d, 0x044d, 0x046d, 0x048c, 0x04ac, 0x04cb, 0x04eb, 0x050b, 0x052a, 0x052a, 0x054a, 0x056a, 0x0589, 0x0589, 0x05a9, 0x05c9, 0x0da8, 0x05a7, 0x2e0a, 0xd7bb, 0xffff, 0xffff, 0xffff, 0xffff, 0x9cbb, 0x0015, 0x0035, 0x0075, 0x0095, 0x00b5, 0x00d4, 0x00f4, 0x0114, 0x0153, 0x0173, 0x0193, 0x01b2, 0x01f2, 0x0212, 0x0231, 0x0271, 0x0291, 0x02d0, 0x02f0, 0x032f, 0x034f, 0x038f, 0x03ae, 0x03ce, 0x040d, 0x042d, 0x044d, 0x046c, 0x048c, 0x04cc, 0x04eb, 0x050b, 0x050b, 0x052a, 0x054a, 0x056a, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0da8, 0x15c8, 0x15c8, 0x15c7, 0x3e2b, 0xf7de, 0xffff, 0xffff, 0xef5e, 0x18d6, 0x0015, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0133, 0x0153, 0x0173, 0x01b2, 0x01d2, 0x0212, 0x0231, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x0310, 0x034f, 0x036f, 0x038f, 0x03ce, 0x03ee, 0x042d, 0x044d, 0x046c, 0x048c, 0x04ac, 0x04eb, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x056a, 0x0589, 0x0589, 0x0da9, 0x0da9, 0x0dc8, 0x15c8, 0x1de8, 0x1de8, 0x15e6, 0x9f14, 0xffff, 0xffff, 0xad5c, 0x0015, 0x0055, 0x0075, 0x0095, 0x00b4, 0x00d4, 0x00f4, 0x0114, 0x0133, 0x0153, 0x0193, 0x01b3, 0x01f2, 0x0212, 0x0251, 0x0271, 0x0291, 0x02d0, 0x02f0, 0x032f, 0x034f, 0x038e, 0x03ae, 0x03ee, 0x040d, 0x042d, 0x046d, 0x048c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x052a, 0x056a, 0x056a, 0x056a, 0x0589, 0x0da9, 0x05a8, 0x0dc9, 0x15c9, 0x15c8, 0x1de8, 0x25e8, 0x1de6, 0x668e, 0xffff, 0xffff, 0x8c7b, 0x0015, 0x0055, 0x0095, 0x0095, 0x00b5, 0x00d4, 0x00f4, 0x0114, 0x0153, 0x0173, 0x01b3, 0x01d2, 0x01f2, 0x0232, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x0310, 0x034f, 0x036f, 0x03ae, 0x03ce, 0x03ee, 0x042d, 0x044d, 0x046c, 0x048c, 0x04ac, 0x04cb, 0x050b, 0x050b, 0x052b, 0x054a, 0x056a, 0x0569, 0x0589, 0x05a9, 0x0da9, 0x0da9, 0x15c8, 0x15c8, 0x1de8, 0x1de8, 0x2608, 0x25e6, 0x5e4c, 0xffff, 0xffff, 0xa53c, 0x0015, 0x0075, 0x0075, 0x00b4, 0x00b4, 0x00f4, 0x0113, 0x0134, 0x0173, 0x0193, 0x01b2, 0x01f2, 0x0212, 0x0251, 0x0271, 0x02b0, 0x02d0, 0x0310, 0x032f, 0x034f, 0x038f, 0x03ce, 0x03ee, 0x040d, 0x044d, 0x046c, 0x048c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x052a, 0x056a, 0x0569, 0x0589, 0x0589, 0x05a9, 0x0da9, 0x0dc8, 0x15c8, 0x1dc8, 0x1de7, 0x2607, 0x2607, 0x25e5, 0x6e8e, 0xffff, 0xffff, 0xdf1e, 0x0895, 0x0055, 0x0095, 0x0094, 0x00f4, 0x00f4, 0x0113, 0x0153, 0x0173, 0x0193, 0x01d2, 0x01f2, 0x0232, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x032f, 0x034f, 0x036f, 0x03ae, 0x03ce, 0x03ee, 0x042d, 0x044d, 0x046d, 0x048c, 0x04cc, 0x04eb, 0x04eb, 0x052b, 0x052b, 0x054a, 0x056a, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0dc9, 0x15c8, 0x15e8, 0x1de8, 0x25e8, 0x2607, 0x2de7, 0x25e5, 0xaf35, 0xffff, 0xffff, 0xffff, 0x6b99, 0x0014, 0x0094, 0x00d4, 0x00d4, 0x0114, 0x0133, 0x0153, 0x0193, 0x01b2, 0x01f2, 0x0212, 0x0251, 0x0271, 0x02b1, 0x02d0, 0x0310, 0x032f, 0x034f, 0x038f, 0x03ce, 0x03ee, 0x040d, 0x044d, 0x046d, 0x048c, 0x04ac, 0x04eb, 0x050b, 0x050b, 0x052a, 0x054a, 0x056a, 0x056a, 0x0589, 0x0589, 0x0da9, 0x0da9, 0x15c8, 0x15e8, 0x1de8, 0x1de7, 0x2608, 0x2607, 0x25e6, 0x564b, 0xf7de, 0xffff, 0xffff, 0xffff, 0xf7bf, 0x4278, 0x0014, 0x00b4, 0x00f4, 0x0133, 0x0153, 0x0173, 0x01b3, 0x01d2, 0x01f2, 0x0231, 0x0251, 0x0291, 0x02b0, 0x02f0, 0x0330, 0x034f, 0x038f, 0x03af, 0x03ce, 0x040d, 0x042d, 0x044d, 0x048d, 0x04ac, 0x04cb, 0x04eb, 0x050b, 0x052a, 0x052a, 0x054a, 0x056a, 0x0589, 0x0589, 0x05a9, 0x0da9, 0x0dc9, 0x15c8, 0x15e8, 0x1de8, 0x25e7, 0x25e7, 0x1de5, 0x4e29, 0xdfbb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7bf, 0x73d9, 0x0915, 0x00b3, 0x00d3, 0x00f2, 0x0132, 0x0152, 0x0191, 0x01d1, 0x01f0, 0x0230, 0x0250, 0x028f, 0x02cf, 0x030e, 0x036f, 0x038e, 0x03ce, 0x03ee, 0x042d, 0x044d, 0x046d, 0x048c, 0x04cc, 0x04cb, 0x04eb, 0x052b, 0x050a, 0x0529, 0x0549, 0x0548, 0x0568, 0x0568, 0x0587, 0x0587, 0x05a7, 0x0da7, 0x0dc7, 0x15e6, 0x1de6, 0x2de7, 0x76af, 0xe7bc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe73e, 0xa59b, 0x8cda, 0x84fa, 0x84fa, 0x8519, 0x8539, 0x8539, 0x8559, 0x8579, 0x8598, 0x85b8, 0x85b8, 0x6d36, 0x036f, 0x03ae, 0x03ee, 0x040d, 0x042d, 0x044d, 0x048c, 0x04ac, 0x04eb, 0x04eb, 0x050b, 0x052a, 0x45f0, 0x86d5, 0x8ed5, 0x8ed5, 0x8ed5, 0x8ef5, 0x8ef5, 0x8ef5, 0x96f5, 0x9715, 0x9714, 0x9714, 0xaf56, 0xdfbb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf1c, 0x036e, 0x03ce, 0x03ee, 0x042d, 0x044d, 0x046c, 0x048c, 0x04cb, 0x04eb, 0x050b, 0x052b, 0x0509, 0x86d5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x038e, 0x03ee, 0x040d, 0x042d, 0x044c, 0x048c, 0x04ac, 0x04cb, 0x04eb, 0x050b, 0x052a, 0x0529, 0x7e94, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbefb, 0x03ad, 0x03ed, 0x042d, 0x044d, 0x048c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x054a, 0x0529, 0x7eb5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x03cd, 0x040d, 0x044d, 0x046c, 0x048c, 0x04ac, 0x04eb, 0x050b, 0x052b, 0x052a, 0x054a, 0x0548, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc6fb, 0x03ed, 0x042d, 0x044d, 0x046c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x0548, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x03ed, 0x044d, 0x046c, 0x048c, 0x04cc, 0x04ec, 0x050b, 0x052b, 0x054b, 0x054a, 0x056a, 0x0568, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x040d, 0x044c, 0x048c, 0x04ac, 0x04cb, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x056a, 0x0568, 0x7eb4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x042c, 0x046c, 0x04ac, 0x04ac, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x056a, 0x0589, 0x0568, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1b, 0x044c, 0x048c, 0x04ac, 0x04cc, 0x050b, 0x050b, 0x052a, 0x054a, 0x056a, 0x0589, 0x0589, 0x0588, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1b, 0x046c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x058a, 0x0589, 0x05a9, 0x0587, 0x86d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x046c, 0x04ac, 0x04eb, 0x050b, 0x052b, 0x054a, 0x054a, 0x056a, 0x0589, 0x0589, 0x0da9, 0x0587, 0x86d3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71b, 0x048b, 0x04cb, 0x04eb, 0x052b, 0x052a, 0x054a, 0x056a, 0x056a, 0x0589, 0x0da9, 0x0da9, 0x05a7, 0x86f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x04ab, 0x04eb, 0x050b, 0x052a, 0x054a, 0x056a, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0dc9, 0x05a7, 0x86f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73b, 0x04ab, 0x050b, 0x052b, 0x054a, 0x054a, 0x056a, 0x0589, 0x0589, 0x0da9, 0x0da8, 0x15c8, 0x05a7, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc73a, 0x04cb, 0x050b, 0x052a, 0x054a, 0x056a, 0x056a, 0x0589, 0x0da9, 0x0da9, 0x15c8, 0x15c8, 0x0dc6, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x04ea, 0x052b, 0x054a, 0x056a, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0dc9, 0x15c8, 0x1de8, 0x15c6, 0x8ef3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x050a, 0x052a, 0x054a, 0x056a, 0x058a, 0x05a9, 0x0da9, 0x0dc9, 0x15c8, 0x15c8, 0x1de8, 0x15c6, 0x9713, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x050a, 0x054a, 0x056a, 0x0569, 0x0589, 0x05a9, 0x0da9, 0x0dc8, 0x15e8, 0x1de8, 0x25e7, 0x1dc6, 0x96f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x052a, 0x054a, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0da9, 0x15c8, 0x15e8, 0x1de8, 0x2607, 0x1de6, 0x9713, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x054a, 0x056a, 0x0589, 0x0589, 0x0da9, 0x0dc9, 0x15c8, 0x15c8, 0x1de8, 0x25e7, 0x2de7, 0x25e5, 0x96f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x0549, 0x0569, 0x0589, 0x05a9, 0x0da9, 0x0dc8, 0x15e8, 0x1de8, 0x1de8, 0x2607, 0x2e07, 0x25e5, 0x9ef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc75a, 0x0549, 0x0589, 0x0589, 0x0da9, 0x0dc8, 0x15c8, 0x15e8, 0x1de8, 0x25e7, 0x2e07, 0x3607, 0x2de5, 0x9ef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf5a, 0x0569, 0x0589, 0x05a9, 0x0da8, 0x15c8, 0x15c8, 0x1de7, 0x25e7, 0x2de7, 0x2e07, 0x3606, 0x35e5, 0x9ef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0569, 0x05a9, 0x0da9, 0x15c8, 0x15e8, 0x1de8, 0x1e07, 0x2607, 0x2e07, 0x3607, 0x3e06, 0x35e4, 0xa712, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0588, 0x0da9, 0x0dc9, 0x15c8, 0x1de8, 0x1de8, 0x2607, 0x2e07, 0x2de7, 0x35e6, 0x3de6, 0x3de4, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0588, 0x0da8, 0x15c8, 0x15c8, 0x1de8, 0x2607, 0x2e07, 0x2e07, 0x35e6, 0x3e06, 0x4606, 0x45e4, 0xa6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x05a8, 0x0dc8, 0x15c8, 0x1de8, 0x1e07, 0x2607, 0x2e07, 0x3606, 0x3de6, 0x4606, 0x4e06, 0x45e4, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x05a8, 0x15e8, 0x1dc8, 0x1de8, 0x2607, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x4606, 0x4e06, 0x4de3, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0da8, 0x15e8, 0x1de8, 0x2607, 0x2e07, 0x2de7, 0x35e6, 0x3de6, 0x4606, 0x4e06, 0x5605, 0x55e3, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0dc8, 0x1de8, 0x25e8, 0x2607, 0x2e07, 0x3606, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x5de3, 0xb6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x15c7, 0x1de7, 0x2608, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x5de3, 0xb6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x15e7, 0x2607, 0x2e07, 0x2e07, 0x3e07, 0x3de6, 0x4606, 0x4e06, 0x5605, 0x6605, 0x6605, 0x65e3, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc779, 0x1de7, 0x2607, 0x2e07, 0x3606, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x65e5, 0x6de4, 0x6de2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf7a, 0x1de7, 0x2de7, 0x3607, 0x3e06, 0x45e6, 0x4e06, 0x55e5, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x75e2, 0xbf11, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x25e6, 0x2de7, 0x3606, 0x3de6, 0x4e06, 0x5606, 0x5de5, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x7de2, 0xc6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf9a, 0x2de6, 0x3606, 0x3de6, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x7de2, 0xc6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x2de6, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x65e5, 0x6de4, 0x7604, 0x7e04, 0x85e4, 0x85e2, 0xcef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x35e6, 0x4606, 0x4e06, 0x55e5, 0x5de5, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x8de1, 0xcef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x3de5, 0x4606, 0x4e06, 0x5e05, 0x6605, 0x6604, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x9603, 0x95e1, 0xcef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x3de5, 0x4de5, 0x5605, 0x5de5, 0x6605, 0x6e04, 0x7604, 0x8604, 0x8e03, 0x95e3, 0x9e03, 0x9de1, 0xd6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x45e5, 0x55e5, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x9de3, 0x9e03, 0xa5e1, 0xd6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x4de5, 0x5de5, 0x6605, 0x6de4, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xa602, 0xade0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x55e4, 0x5e05, 0x6e05, 0x7604, 0x7e04, 0x8604, 0x8de3, 0x9603, 0x9e03, 0xa5e3, 0xae02, 0xb5e0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x5de4, 0x6604, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x95e3, 0x9e03, 0xa603, 0xae02, 0xb5e2, 0xb5e0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x5de4, 0x6e04, 0x7604, 0x7e04, 0x8603, 0x9603, 0x9603, 0xa5e3, 0xae02, 0xb602, 0xbe02, 0xbde0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x65e4, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xade2, 0xb602, 0xbe02, 0xc602, 0xc5e0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x6de3, 0x7e04, 0x85e3, 0x8e03, 0x9603, 0x9e03, 0xa602, 0xae02, 0xb602, 0xbe02, 0xc601, 0xcde0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf99, 0x75e3, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xa602, 0xae02, 0xb5e2, 0xc602, 0xc602, 0xcde1, 0xd5e0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf99, 0x7de3, 0x85e3, 0x9603, 0x9e03, 0xa5e3, 0xade2, 0xb602, 0xbe02, 0xc5e1, 0xce01, 0xd5e1, 0xd5e0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe779, 0x85e3, 0x9603, 0x9e03, 0xa603, 0xade2, 0xb602, 0xbe02, 0xc601, 0xce01, 0xd601, 0xd601, 0xdde0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe779, 0x8de3, 0x9603, 0x9e02, 0xade2, 0xae02, 0xbe02, 0xc5e2, 0xc601, 0xd601, 0xd601, 0xde01, 0xe5e0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe798, 0x95e2, 0x9e03, 0xa603, 0xae02, 0xbde2, 0xc5e2, 0xc601, 0xce01, 0xd601, 0xde01, 0xe600, 0xede0, 0xf710, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x9de2, 0xa603, 0xb5e2, 0xbe02, 0xbde2, 0xc602, 0xce01, 0xd5e1, 0xde01, 0xe600, 0xee00, 0xede0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef79, 0xa5e2, 0xae02, 0xb602, 0xbe02, 0xc601, 0xcde1, 0xd601, 0xde01, 0xe5e0, 0xede0, 0xee01, 0xf5c0, 0xff0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7bb, 0xae03, 0xb602, 0xc602, 0xc5e1, 0xce01, 0xd5e1, 0xdde1, 0xe601, 0xede0, 0xee00, 0xf600, 0xf5c0, 0xff53, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc669, 0xbde0, 0xc601, 0xce01, 0xd5e1, 0xde01, 0xde01, 0xe600, 0xee00, 0xf600, 0xf5e0, 0xfe01, 0xffdc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef99, 0xc601, 0xcde1, 0xd602, 0xdde1, 0xde01, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xfdc0, 0xff10, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef33, 0xd5e0, 0xd5e0, 0xde00, 0xe600, 0xee00, 0xf600, 0xf5e0, 0xfdc0, 0xfecc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf777, 0xe667, 0xe600, 0xede0, 0xf5e0, 0xfde0, 0xfe24, 0xff32, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffba, 0xff56, 0xff55, 0xff99, 0xfffe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0011_5.h ================================================ // extern const uint16_t ColorT_0011_5[3650]; const uint16_t ColorT_0011_5[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe79e, 0xae7a, 0x8dd8, 0x8df8, 0x8df7, 0x8e17, 0x8e37, 0x8e37, 0x8e37, 0x8e57, 0x8e76, 0x8e76, 0x8e96, 0x8eb6, 0x8eb5, 0x8eb6, 0x86d5, 0x8ed5, 0x8ed5, 0x8ef5, 0x8ef5, 0x8ef5, 0x96f5, 0x96f5, 0x96f4, 0x9715, 0x9f14, 0x9f14, 0xa714, 0xa714, 0xa714, 0xa714, 0xaf13, 0xaf13, 0xb713, 0xb713, 0xb713, 0xbf13, 0xcf55, 0xefbc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8598, 0x1331, 0x02ee, 0x030e, 0x034d, 0x036d, 0x038d, 0x03cc, 0x03ec, 0x042b, 0x044b, 0x046b, 0x04aa, 0x04ca, 0x04ea, 0x04e9, 0x0529, 0x0529, 0x0548, 0x0568, 0x0588, 0x0587, 0x0587, 0x05a7, 0x0da6, 0x0dc6, 0x15e6, 0x15e6, 0x1de5, 0x25e5, 0x2de5, 0x35e5, 0x3de4, 0x3de4, 0x45e4, 0x4de3, 0x55e3, 0x5dc3, 0x65c3, 0x6de3, 0x7de4, 0xaead, 0xf7dc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6cd7, 0x026f, 0x02ef, 0x032f, 0x036f, 0x03af, 0x03ce, 0x03ee, 0x042d, 0x044d, 0x046c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x052a, 0x056a, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0da9, 0x15c8, 0x15c8, 0x1de8, 0x25e8, 0x2607, 0x2e07, 0x2de7, 0x3606, 0x3de6, 0x4606, 0x4e06, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6de5, 0x7604, 0x7604, 0x7de3, 0x7de1, 0x9626, 0xef9a, 0xffff, 0xffff, 0xffff, 0xffff, 0x95b9, 0x024f, 0x02f0, 0x0330, 0x036f, 0x036f, 0x03ae, 0x03ce, 0x040d, 0x042d, 0x046c, 0x048c, 0x04ac, 0x04cb, 0x04eb, 0x050b, 0x052a, 0x054a, 0x056a, 0x0589, 0x0589, 0x05a9, 0x0da9, 0x0dc9, 0x15c8, 0x15e8, 0x1de8, 0x25e8, 0x2de7, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x4606, 0x4de6, 0x5605, 0x5e05, 0x6605, 0x6de4, 0x7604, 0x75e4, 0x7de4, 0x8604, 0x8603, 0x8de2, 0xa647, 0xffde, 0xffff, 0xffff, 0xef7e, 0x12f2, 0x02b0, 0x0310, 0x032f, 0x036f, 0x038f, 0x03ce, 0x03ed, 0x042d, 0x044d, 0x046c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x056a, 0x0589, 0x0589, 0x0da9, 0x0dc9, 0x15c8, 0x15c8, 0x1de8, 0x25e7, 0x2607, 0x2e07, 0x3607, 0x3606, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x75e4, 0x7e04, 0x7e04, 0x8604, 0x8de3, 0x95e3, 0x95e1, 0xd713, 0xffff, 0xffff, 0xa63a, 0x0270, 0x02f0, 0x030f, 0x034f, 0x036f, 0x03ae, 0x03ce, 0x040d, 0x044d, 0x046d, 0x048c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052a, 0x054a, 0x056a, 0x056a, 0x058a, 0x05a9, 0x0da9, 0x0dc8, 0x15c8, 0x1de8, 0x1de8, 0x2607, 0x2e07, 0x2e07, 0x3607, 0x3de6, 0x45e6, 0x4e06, 0x4de5, 0x55e5, 0x5e05, 0x6605, 0x6de5, 0x7604, 0x7e04, 0x7e04, 0x8604, 0x8de4, 0x9603, 0x9de3, 0x9de1, 0xbe8a, 0xffff, 0xffff, 0x8d99, 0x026f, 0x02f0, 0x032f, 0x036f, 0x038f, 0x03ce, 0x03ee, 0x040d, 0x044d, 0x046c, 0x048c, 0x04cb, 0x04eb, 0x050b, 0x052b, 0x054b, 0x056a, 0x056a, 0x0589, 0x0589, 0x0da9, 0x0dc9, 0x15c8, 0x15c8, 0x1de8, 0x25e7, 0x2607, 0x2e07, 0x3607, 0x3e07, 0x3de6, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6604, 0x6e04, 0x75e4, 0x7e04, 0x8603, 0x8e03, 0x9603, 0x95e3, 0x9e02, 0xa5e2, 0xbe68, 0xffff, 0xffff, 0xa61a, 0x028f, 0x0310, 0x034f, 0x036f, 0x03ae, 0x03ce, 0x040d, 0x042d, 0x046c, 0x048c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052a, 0x054a, 0x056a, 0x0589, 0x0589, 0x05a9, 0x0da9, 0x15c8, 0x15c8, 0x1de8, 0x1de8, 0x25e7, 0x2e07, 0x2e07, 0x3606, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5605, 0x5de5, 0x6605, 0x6e05, 0x75e4, 0x7e03, 0x7de4, 0x8604, 0x8e03, 0x95e3, 0x9e03, 0xa603, 0xa5e1, 0xc68a, 0xffff, 0xffff, 0xdf5e, 0x0310, 0x030f, 0x036f, 0x038e, 0x03ae, 0x03ce, 0x042d, 0x044d, 0x046c, 0x048c, 0x04cc, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x0569, 0x058a, 0x05a9, 0x0da9, 0x0da9, 0x15c8, 0x15e8, 0x1de7, 0x2608, 0x2607, 0x2e07, 0x35e7, 0x3e06, 0x4606, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7de4, 0x7de4, 0x8603, 0x8e03, 0x95e3, 0x9e03, 0x9e02, 0xa603, 0xadc0, 0xdf33, 0xffff, 0xffff, 0xffff, 0x6d37, 0x02ce, 0x036f, 0x038e, 0x03ce, 0x040d, 0x042d, 0x044d, 0x048c, 0x04ac, 0x04cc, 0x04eb, 0x050b, 0x052a, 0x054a, 0x054a, 0x0589, 0x0589, 0x0da9, 0x0da9, 0x0dc9, 0x15c8, 0x1de8, 0x25e8, 0x25e7, 0x2e07, 0x35e7, 0x3606, 0x3de6, 0x45e6, 0x4e06, 0x55e5, 0x5e05, 0x6605, 0x6605, 0x6de5, 0x75e4, 0x7de4, 0x8604, 0x8de3, 0x9603, 0x95e3, 0x9e03, 0xa602, 0xa5c1, 0xbe47, 0xfffe, 0xffff, 0xffff, 0xffff, 0xf7bf, 0x4493, 0x032d, 0x038e, 0x03ee, 0x040d, 0x044d, 0x046c, 0x048c, 0x04cb, 0x04eb, 0x050b, 0x052b, 0x054a, 0x056a, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x0dc9, 0x15c8, 0x15e8, 0x1de8, 0x25e8, 0x2e07, 0x2e07, 0x3606, 0x3e06, 0x45e6, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x7e04, 0x8603, 0x8e03, 0x95e3, 0x9e03, 0xa5e2, 0xa5c1, 0xb645, 0xf79a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0x6d76, 0x0bef, 0x03cc, 0x040c, 0x042b, 0x044b, 0x046b, 0x04aa, 0x04ca, 0x04e9, 0x0509, 0x0529, 0x0528, 0x0568, 0x0568, 0x0da9, 0x0dc9, 0x15c8, 0x15c8, 0x1de8, 0x25e8, 0x2607, 0x2de7, 0x3607, 0x3606, 0x3e06, 0x4606, 0x4de5, 0x4de4, 0x4de4, 0x5de3, 0x65e3, 0x65e3, 0x75c2, 0x7dc2, 0x7de2, 0x8de2, 0x8de1, 0x95e1, 0x9de1, 0xa603, 0xceac, 0xffbc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe79e, 0xae99, 0x8e37, 0x8657, 0x8e76, 0x8676, 0x8696, 0x8e96, 0x86b6, 0x86b5, 0x86d5, 0x86f5, 0x86d5, 0x6e92, 0x05a9, 0x0dc9, 0x15c8, 0x15e8, 0x1de8, 0x25e7, 0x2e07, 0x35e7, 0x35e7, 0x3e06, 0x45e6, 0x45e5, 0x7e8c, 0xaf13, 0xb713, 0xb713, 0xbf13, 0xbf13, 0xc713, 0xc712, 0xc712, 0xcf12, 0xcf12, 0xcf12, 0xdf55, 0xefba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf9b, 0x05a8, 0x15c8, 0x15e8, 0x1dc8, 0x1e07, 0x2607, 0x2e07, 0x3607, 0x3606, 0x45e6, 0x4605, 0x45c4, 0xaf13, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0da8, 0x15c8, 0x1de8, 0x1de8, 0x25e7, 0x2de7, 0x3607, 0x35e6, 0x3e06, 0x45e6, 0x4e05, 0x4de3, 0xaef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0dc8, 0x15c8, 0x1de8, 0x25e7, 0x2607, 0x2e07, 0x3606, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x4de4, 0xa712, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x0dc7, 0x15e8, 0x25e8, 0x25e7, 0x2e07, 0x3607, 0x35e6, 0x3de6, 0x4606, 0x4e05, 0x5605, 0x55e3, 0xaf12, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x15c7, 0x1de8, 0x25e7, 0x2de7, 0x3607, 0x3607, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5de5, 0x55e3, 0xb6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x15c7, 0x1de7, 0x2607, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x5de3, 0xb6f2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc77a, 0x15e7, 0x25e7, 0x2e07, 0x2e07, 0x35e6, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x65e3, 0xb6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc779, 0x1de7, 0x2607, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x4606, 0x4e06, 0x5e05, 0x5e05, 0x6605, 0x65e3, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf7a, 0x1de7, 0x2e07, 0x3607, 0x3606, 0x3de6, 0x4606, 0x4e05, 0x5605, 0x5de5, 0x6605, 0x6de4, 0x6de2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf7a, 0x25e6, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x65e5, 0x6de4, 0x7604, 0x75e2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x25e6, 0x3607, 0x3e06, 0x4606, 0x4de6, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x75e2, 0xbf11, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x2de6, 0x35e6, 0x3e06, 0x45e6, 0x4e06, 0x5605, 0x5e05, 0x65e5, 0x6e04, 0x7604, 0x7de4, 0x7dc2, 0xbef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x2de6, 0x3e06, 0x4606, 0x4de6, 0x5606, 0x5e05, 0x6605, 0x6de5, 0x7604, 0x7e04, 0x7e04, 0x85c2, 0xc6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x35e6, 0x3de6, 0x4606, 0x4de5, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x85e2, 0xc6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf79, 0x35e6, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x8dc1, 0xcef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x3de5, 0x4606, 0x4e06, 0x5e05, 0x5e05, 0x6605, 0x7604, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x95e1, 0xcf11, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x45e5, 0x4e05, 0x5605, 0x5e05, 0x6605, 0x6de4, 0x7604, 0x7e04, 0x85e3, 0x8e03, 0x9603, 0x95c1, 0xcef1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd799, 0x45e5, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7de4, 0x8604, 0x8e03, 0x95e3, 0x9de3, 0x9de1, 0xd6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd799, 0x4de5, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7de4, 0x8603, 0x8e03, 0x9603, 0x9e03, 0xa5e1, 0xd6f1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x4de5, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x9603, 0x9de3, 0xa602, 0xa5e0, 0xd6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x55e5, 0x6605, 0x6e05, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xa603, 0xae02, 0xade0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x55e4, 0x6605, 0x6e04, 0x7604, 0x7de4, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xa602, 0xae02, 0xb5e0, 0xdef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd779, 0x5de4, 0x6e04, 0x7604, 0x7de4, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xa603, 0xae02, 0xb602, 0xbde0, 0xdf10, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd799, 0x65e4, 0x75e4, 0x7e04, 0x8604, 0x8de3, 0x9603, 0x9e03, 0xa603, 0xae02, 0xb602, 0xbe02, 0xbde0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x6de4, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x9603, 0xa5e3, 0xae03, 0xade2, 0xb5e2, 0xc602, 0xc5e0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf99, 0x75e3, 0x7de4, 0x85e3, 0x8e03, 0x9603, 0x9e03, 0xa602, 0xae02, 0xb5e2, 0xbe02, 0xc601, 0xc5e0, 0xe6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x75e3, 0x8604, 0x8e03, 0x9603, 0x9de3, 0xa603, 0xade2, 0xb602, 0xbde2, 0xc602, 0xce01, 0xcde0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x7de3, 0x8603, 0x9603, 0x9de3, 0xa603, 0xae02, 0xb602, 0xbe02, 0xc602, 0xc601, 0xce01, 0xd5c0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe779, 0x7de3, 0x8e03, 0x9603, 0x9e03, 0xa603, 0xae02, 0xb602, 0xbe02, 0xc601, 0xce01, 0xd601, 0xd5e0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe779, 0x85e3, 0x9603, 0x9e03, 0xa602, 0xae02, 0xb602, 0xbe02, 0xc5e1, 0xce02, 0xd601, 0xd601, 0xdde0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe779, 0x8de2, 0x9603, 0xa5e3, 0xae02, 0xb602, 0xbde2, 0xc602, 0xcde1, 0xce01, 0xd601, 0xdde1, 0xe5e0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x95e2, 0x9e03, 0xa602, 0xade2, 0xb602, 0xbe02, 0xc601, 0xcde1, 0xd601, 0xde01, 0xe601, 0xe5e0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x9de2, 0xa603, 0xae02, 0xb5e2, 0xbe02, 0xc601, 0xce01, 0xd601, 0xde01, 0xde01, 0xe600, 0xede0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0xa5e2, 0xae02, 0xb602, 0xbe02, 0xc602, 0xcde1, 0xd601, 0xd601, 0xde01, 0xe600, 0xee00, 0xf5c0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xa5e1, 0xb602, 0xbe02, 0xc602, 0xc601, 0xce01, 0xd5e1, 0xde01, 0xe5e0, 0xee00, 0xee00, 0xf5e0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xade1, 0xb602, 0xc602, 0xc5e1, 0xce01, 0xd601, 0xdde1, 0xe5e1, 0xe600, 0xee00, 0xf600, 0xf5e0, 0xff0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xb5e1, 0xbe02, 0xc601, 0xce01, 0xd601, 0xd601, 0xde01, 0xe5e1, 0xee00, 0xf600, 0xf600, 0xfde0, 0xff0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xb5e1, 0xc602, 0xce01, 0xd601, 0xdde1, 0xde01, 0xe601, 0xee00, 0xf600, 0xf5e0, 0xfe00, 0xfde0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xbde1, 0xc5e1, 0xce01, 0xd601, 0xdde1, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xc5e0, 0xce01, 0xd601, 0xde01, 0xe601, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xcde0, 0xd5e1, 0xde01, 0xde01, 0xe600, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xd5e0, 0xd601, 0xde01, 0xe600, 0xede0, 0xf5e0, 0xf600, 0xfe00, 0xfde0, 0xfde0, 0xfde0, 0xfda0, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf798, 0xd5e0, 0xde01, 0xe600, 0xee00, 0xf600, 0xf600, 0xf600, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xdde0, 0xe600, 0xee01, 0xee00, 0xf5e0, 0xfe00, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfd80, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xdde0, 0xe600, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd60, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd40, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd40, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd20, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xf600, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd00, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd40, 0xfce0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff98, 0xfde0, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfcc0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff97, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfd80, 0xfd80, 0xfd40, 0xfd40, 0xfd20, 0xfd00, 0xfca0, 0xfe4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfc80, 0xfe2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff97, 0xfdc0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfc60, 0xfe2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffba, 0xfde0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc40, 0xfe93, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe47, 0xfd80, 0xfda0, 0xfd60, 0xfd60, 0xfd40, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc60, 0xfc81, 0xff9c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfd80, 0xfd60, 0xfd40, 0xfd40, 0xfd20, 0xfce0, 0xfcc0, 0xfca0, 0xfc60, 0xfc00, 0xfe30, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef2, 0xfd40, 0xfd00, 0xfd00, 0xfce0, 0xfce0, 0xfca0, 0xfc60, 0xfc20, 0xfdac, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfda7, 0xfce0, 0xfca0, 0xfc80, 0xfc80, 0xfcc4, 0xfe72, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff7a, 0xfef6, 0xfef5, 0xff39, 0xffde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0012_4.h ================================================ // extern const uint16_t ColorT_0012_4[3650]; const uint16_t ColorT_0012_4[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xefdd, 0xaf38, 0x8ef5, 0x8ef5, 0x8ef5, 0x96f5, 0x96f4, 0x96f4, 0x9f14, 0x9f14, 0x9f14, 0xa714, 0xa714, 0xa714, 0xaf13, 0xaf13, 0xaf13, 0xb713, 0xbf13, 0xbf13, 0xbf13, 0xc713, 0xc713, 0xcf13, 0xcf12, 0xcf12, 0xd712, 0xd712, 0xdf12, 0xdf12, 0xdf11, 0xe712, 0xe711, 0xe711, 0xef11, 0xef11, 0xf711, 0xf711, 0xff54, 0xffbb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x86d5, 0x15aa, 0x0568, 0x0567, 0x0587, 0x0587, 0x05a7, 0x0dc6, 0x15c6, 0x15e6, 0x1de5, 0x25e5, 0x2de5, 0x35e5, 0x35e4, 0x3de4, 0x45e4, 0x4de3, 0x55e3, 0x5de3, 0x6dc3, 0x6de2, 0x75c2, 0x7de2, 0x85e2, 0x8de1, 0x95e1, 0x9de1, 0xa5c0, 0xade0, 0xb5c0, 0xbde0, 0xc5c0, 0xc5e0, 0xcde0, 0xd5c0, 0xdde0, 0xddc0, 0xe5e0, 0xede0, 0xf5e1, 0xf6aa, 0xffdc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6652, 0x0528, 0x0569, 0x0589, 0x05a9, 0x0da8, 0x15c8, 0x15e8, 0x1de8, 0x25e7, 0x2de7, 0x2e07, 0x35e7, 0x3e06, 0x4606, 0x4e06, 0x4e05, 0x5605, 0x5e05, 0x6605, 0x6de4, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x95e3, 0x9de3, 0x9e03, 0xa602, 0xae02, 0xb5e2, 0xbe02, 0xc601, 0xcde1, 0xce01, 0xd601, 0xdde1, 0xde00, 0xe600, 0xe601, 0xede0, 0xf5e0, 0xf5c0, 0xfe23, 0xff9a, 0xffff, 0xffff, 0xffff, 0xffff, 0x96d7, 0x0529, 0x0589, 0x058a, 0x05a9, 0x0da9, 0x0dc8, 0x15c8, 0x1de8, 0x1de8, 0x25e8, 0x2e07, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6e05, 0x75e4, 0x7604, 0x7e04, 0x8603, 0x8e03, 0x9603, 0x9e03, 0xa603, 0xade2, 0xb602, 0xbde2, 0xc602, 0xc602, 0xcde1, 0xd601, 0xd601, 0xde01, 0xe600, 0xede0, 0xee00, 0xf600, 0xf600, 0xf600, 0xfde0, 0xfe44, 0xffdd, 0xffff, 0xffff, 0xefde, 0x158c, 0x0549, 0x056a, 0x0589, 0x05a9, 0x0da9, 0x15c8, 0x15c8, 0x1de8, 0x25e7, 0x2607, 0x2e07, 0x3606, 0x3de6, 0x45e6, 0x4e06, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7de4, 0x8604, 0x8e04, 0x9603, 0x9e03, 0xa603, 0xa602, 0xae02, 0xb602, 0xbe02, 0xc601, 0xcde1, 0xce01, 0xd601, 0xde01, 0xe601, 0xe600, 0xede1, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfe00, 0xfdc0, 0xff11, 0xffff, 0xffff, 0xa719, 0x0529, 0x056a, 0x0589, 0x05aa, 0x0da8, 0x0dc9, 0x15c8, 0x1de8, 0x1de8, 0x2607, 0x2de7, 0x3607, 0x3606, 0x3de6, 0x4606, 0x4e05, 0x5605, 0x5de5, 0x65e5, 0x6de5, 0x7604, 0x7de4, 0x7e04, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xa603, 0xae02, 0xb602, 0xbe02, 0xc602, 0xc601, 0xce01, 0xd601, 0xd601, 0xde00, 0xe600, 0xee00, 0xf600, 0xf5e0, 0xf5e0, 0xfe00, 0xfe00, 0xfe00, 0xfde0, 0xfe68, 0xffff, 0xffff, 0x8ed5, 0x0529, 0x0569, 0x0589, 0x0da9, 0x0dc9, 0x15c8, 0x15e8, 0x1de8, 0x25e7, 0x2de7, 0x2de7, 0x3607, 0x3e06, 0x4606, 0x4606, 0x4e06, 0x5605, 0x5de5, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8de3, 0x9603, 0x9e03, 0xa603, 0xae02, 0xb602, 0xbe02, 0xbe02, 0xc5e2, 0xce02, 0xd601, 0xdde1, 0xde01, 0xe600, 0xee01, 0xede0, 0xf600, 0xf600, 0xf5e0, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfe46, 0xffff, 0xffff, 0xa718, 0x0528, 0x0589, 0x0589, 0x0da9, 0x0dc9, 0x15c8, 0x1de8, 0x1de8, 0x2607, 0x2e07, 0x2e07, 0x3606, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5de5, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x9603, 0x9603, 0x9e03, 0xa602, 0xae02, 0xb602, 0xbe02, 0xc601, 0xc601, 0xce01, 0xd601, 0xde01, 0xde01, 0xe600, 0xee00, 0xf600, 0xf600, 0xf600, 0xfe00, 0xfde0, 0xfe00, 0xfde0, 0xfda0, 0xfe68, 0xffff, 0xffff, 0xdfbc, 0x0d8a, 0x0589, 0x0da9, 0x0da9, 0x15c8, 0x15e8, 0x1de8, 0x25e8, 0x2607, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5605, 0x5e05, 0x65e4, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xa603, 0xade2, 0xb5e2, 0xbe02, 0xbe02, 0xc601, 0xce01, 0xd601, 0xde01, 0xde01, 0xe601, 0xee00, 0xede0, 0xf600, 0xf5e0, 0xfe00, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfda0, 0xff12, 0xffff, 0xffff, 0xffff, 0x6e93, 0x0568, 0x05a9, 0x0dc9, 0x15c8, 0x15e8, 0x1de8, 0x2607, 0x2e07, 0x2e07, 0x3606, 0x3e06, 0x4606, 0x4de6, 0x55e5, 0x5e05, 0x65e5, 0x6de5, 0x7605, 0x7e04, 0x85e4, 0x8e03, 0x95e3, 0x9e03, 0xa603, 0xa602, 0xae02, 0xb5e2, 0xbe01, 0xc602, 0xce01, 0xce01, 0xd601, 0xde01, 0xe601, 0xe600, 0xee00, 0xee00, 0xf5e0, 0xfde0, 0xfe00, 0xfde0, 0xfde0, 0xfde0, 0xfda0, 0xfe25, 0xffde, 0xffff, 0xffff, 0xffff, 0xf7ff, 0x462f, 0x0587, 0x0da8, 0x15c8, 0x1de8, 0x1de8, 0x2608, 0x2e07, 0x3607, 0x3e06, 0x4606, 0x4e06, 0x5605, 0x5605, 0x5de5, 0x6604, 0x7604, 0x7604, 0x7e04, 0x85e4, 0x8de3, 0x95e3, 0x9de3, 0xa603, 0xae02, 0xb602, 0xbe02, 0xc602, 0xcde1, 0xce01, 0xd601, 0xde01, 0xdde1, 0xe600, 0xede0, 0xf600, 0xf5e0, 0xf600, 0xfde0, 0xfde0, 0xfde0, 0xfde0, 0xfda0, 0xfe03, 0xff9a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7ff, 0x76b2, 0x1de9, 0x0dc7, 0x0dc6, 0x15c6, 0x1de6, 0x25e5, 0x2de5, 0x35e5, 0x3de4, 0x45e4, 0x4de4, 0x4de4, 0x5de3, 0x65e3, 0x7604, 0x7de4, 0x8604, 0x8e03, 0x95e3, 0x9de3, 0xa603, 0xae02, 0xb5e2, 0xb5e2, 0xbe02, 0xc5e1, 0xcde1, 0xd5e0, 0xd5e0, 0xdde0, 0xe5e0, 0xe5e0, 0xede0, 0xf5c0, 0xf5c0, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfde0, 0xfe8a, 0xffbc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe7bc, 0xaf57, 0x9714, 0x9714, 0x9f14, 0x9f14, 0xa714, 0xa714, 0xaf13, 0xaf13, 0xaf13, 0xb713, 0xbf13, 0xaecf, 0x7de4, 0x7e04, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xa602, 0xae02, 0xb602, 0xbe02, 0xc602, 0xc5e0, 0xde69, 0xef11, 0xef11, 0xf711, 0xf711, 0xf711, 0xf711, 0xff10, 0xff11, 0xff11, 0xff10, 0xff11, 0xff34, 0xffba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe79a, 0x7de3, 0x8603, 0x8de3, 0x9603, 0x9de3, 0xa603, 0xae02, 0xb602, 0xbe02, 0xc5e2, 0xc5e1, 0xcde0, 0xef11, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x7de3, 0x8603, 0x9603, 0x95e3, 0xa603, 0xa602, 0xae02, 0xbe02, 0xbe02, 0xc5e1, 0xce02, 0xcdc0, 0xef0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf99, 0x7de3, 0x8e03, 0x95e3, 0x9e03, 0xa602, 0xae02, 0xb602, 0xbde2, 0xc601, 0xc601, 0xce01, 0xd5e0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf79, 0x85e3, 0x9603, 0x9603, 0xa5e3, 0xade2, 0xb602, 0xbe02, 0xbe02, 0xc602, 0xcde1, 0xd601, 0xd5e0, 0xeef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe799, 0x85e3, 0x9603, 0x9e03, 0xa603, 0xae02, 0xb602, 0xbe02, 0xc602, 0xce02, 0xd5e1, 0xd601, 0xdde0, 0xeeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe779, 0x8de3, 0x9e03, 0xa603, 0xae02, 0xb602, 0xbe02, 0xc602, 0xc602, 0xce01, 0xd5e1, 0xde01, 0xdde0, 0xf6f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x95e2, 0x9e03, 0xa602, 0xae02, 0xb602, 0xbe02, 0xc601, 0xce01, 0xd601, 0xdde1, 0xde01, 0xe5e0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x95e2, 0xa603, 0xae02, 0xb602, 0xbe02, 0xc602, 0xc601, 0xce01, 0xd601, 0xde01, 0xe601, 0xe5e0, 0xf70f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe778, 0x9de2, 0xa602, 0xade2, 0xb602, 0xbe02, 0xc5e1, 0xce01, 0xd601, 0xde01, 0xde01, 0xe601, 0xede0, 0xf6ef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xa5e2, 0xae02, 0xb5e2, 0xbe02, 0xc602, 0xce01, 0xd601, 0xdde1, 0xde01, 0xe600, 0xede1, 0xede0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xa5e2, 0xae02, 0xbde2, 0xc602, 0xc601, 0xce01, 0xd601, 0xde01, 0xdde1, 0xe600, 0xede0, 0xf5e0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef98, 0xade1, 0xb5e2, 0xbe01, 0xc601, 0xce01, 0xd601, 0xde01, 0xde01, 0xe600, 0xee00, 0xf600, 0xf5c0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef98, 0xb5e1, 0xbe02, 0xc602, 0xce01, 0xce01, 0xd601, 0xdde1, 0xe600, 0xe5e0, 0xee00, 0xf600, 0xf5e0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xb5e1, 0xbe02, 0xc601, 0xce01, 0xd5e1, 0xde01, 0xe5e1, 0xe600, 0xee00, 0xf600, 0xf600, 0xf5e0, 0xff0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef98, 0xbde1, 0xc601, 0xce01, 0xd601, 0xdde1, 0xde01, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfde0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef78, 0xbde1, 0xc601, 0xce01, 0xd601, 0xde01, 0xe600, 0xe5e0, 0xee00, 0xf5e0, 0xf600, 0xfe00, 0xfde0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xc5e1, 0xce01, 0xd601, 0xde01, 0xde01, 0xe600, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xcde0, 0xd601, 0xde01, 0xde01, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xcde0, 0xd601, 0xde01, 0xe601, 0xe5e0, 0xee00, 0xf600, 0xf5e0, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xd5e0, 0xdde1, 0xde01, 0xe600, 0xee00, 0xf600, 0xf600, 0xfde0, 0xfde0, 0xfde0, 0xfde0, 0xfda0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xd5e0, 0xdde1, 0xe600, 0xee00, 0xede0, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfd80, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xdde0, 0xde00, 0xe600, 0xee00, 0xf5e0, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfd80, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xdde0, 0xe600, 0xee00, 0xf600, 0xf600, 0xfde0, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfd80, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xe5e0, 0xee00, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd60, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xe5e0, 0xee00, 0xf5e0, 0xf5e0, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd60, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xf600, 0xf5e0, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd40, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xf600, 0xfde0, 0xfde0, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd80, 0xfd40, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfd80, 0xfd80, 0xfd60, 0xfd20, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xf600, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd00, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfce0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfcc0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff98, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfca0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd20, 0xfd00, 0xfce0, 0xfca0, 0xfe4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd40, 0xfd00, 0xfd00, 0xfce0, 0xfc80, 0xfe4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfc60, 0xfe2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc40, 0xfe2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd00, 0xfce0, 0xfce0, 0xfca0, 0xfc80, 0xfc20, 0xfe0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfda0, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfce0, 0xfce0, 0xfca0, 0xfc80, 0xfc60, 0xfc00, 0xfe0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc60, 0xfc40, 0xfbe0, 0xfdef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc40, 0xfc20, 0xfbc0, 0xfdef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfd60, 0xfd40, 0xfd40, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc00, 0xfba0, 0xfdcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd40, 0xfd20, 0xfd20, 0xfd00, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfbe0, 0xfb80, 0xfdcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd20, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbc0, 0xfb60, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfd00, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc40, 0xfc20, 0xfc00, 0xfbc0, 0xfba0, 0xfb40, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb20, 0xfd8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfae0, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfcc0, 0xfcc0, 0xfc80, 0xfc60, 0xfc40, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfac0, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfca0, 0xfca0, 0xfc60, 0xfc40, 0xfc20, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb20, 0xfaa0, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfc80, 0xfc80, 0xfc40, 0xfc20, 0xfc00, 0xfbc0, 0xfba0, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfa60, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfa40, 0xfd2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa20, 0xfd0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa00, 0xfd0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff17, 0xfc00, 0xfc00, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xf9e0, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfbe0, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa20, 0xf9a0, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff7b, 0xfbe0, 0xfba0, 0xfb80, 0xfb40, 0xfb20, 0xfae0, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xfa20, 0xf980, 0xfdb3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfcc7, 0xfb40, 0xfb40, 0xfb20, 0xfae0, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xfa20, 0xf9c0, 0xfa01, 0xff5c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfb40, 0xfb00, 0xfb00, 0xfac0, 0xfaa0, 0xfa80, 0xfa40, 0xfa20, 0xfa00, 0xf940, 0xfd10, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe13, 0xfae0, 0xfaa0, 0xfaa0, 0xfa80, 0xfa40, 0xfa20, 0xf9c0, 0xf960, 0xfc2c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe97, 0xfbc7, 0xfa60, 0xfa00, 0xf9e0, 0xf9c0, 0xfa84, 0xfd52, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfefa, 0xfe36, 0xfe16, 0xfeb9, 0xffde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0013_3.h ================================================ // extern const uint16_t ColorT_0013_3[3650]; const uint16_t ColorT_0013_3[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xefbd, 0xbf57, 0xa734, 0xa714, 0xaf13, 0xaf13, 0xb713, 0xb713, 0xbf13, 0xbf13, 0xc713, 0xc712, 0xcf13, 0xcf12, 0xcf12, 0xd712, 0xd712, 0xd712, 0xdf12, 0xdf12, 0xe712, 0xe712, 0xef11, 0xef11, 0xef11, 0xf711, 0xf711, 0xf711, 0xf711, 0xff11, 0xff11, 0xff11, 0xff11, 0xff11, 0xfef1, 0xfef1, 0xfef1, 0xfef1, 0xff14, 0xff9a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9f14, 0x3e28, 0x2de5, 0x35c4, 0x3de4, 0x3de4, 0x4de4, 0x4de3, 0x5dc3, 0x65e3, 0x6de2, 0x75e2, 0x7de2, 0x85e2, 0x8de1, 0x95e1, 0x9de1, 0xa5e1, 0xade0, 0xb5e0, 0xbde0, 0xc5e0, 0xc5e0, 0xcde0, 0xd5e0, 0xdde0, 0xdde0, 0xe5e0, 0xedc0, 0xede0, 0xf5e0, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfda0, 0xfd80, 0xfd80, 0xfd81, 0xfe4a, 0xffbc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x7ed1, 0x1dc5, 0x2de6, 0x3e07, 0x4606, 0x4e06, 0x5606, 0x5e05, 0x6605, 0x6de5, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8de3, 0x9603, 0x9e03, 0xa602, 0xade2, 0xb602, 0xbe02, 0xc601, 0xc601, 0xce01, 0xd601, 0xde01, 0xde01, 0xe601, 0xede1, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd20, 0xfd83, 0xff79, 0xffff, 0xffff, 0xffff, 0xffff, 0xa735, 0x1de6, 0x2e07, 0x3e07, 0x3e06, 0x4606, 0x4e06, 0x55e5, 0x5de5, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8de3, 0x95e3, 0x9de3, 0xa603, 0xae02, 0xb602, 0xbe02, 0xbde2, 0xc601, 0xce01, 0xd601, 0xd601, 0xde01, 0xe600, 0xe600, 0xee00, 0xf600, 0xf5e0, 0xfde0, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd00, 0xfd84, 0xffdd, 0xffff, 0xffff, 0xefdd, 0x3629, 0x25e6, 0x3606, 0x35e7, 0x3de6, 0x4606, 0x4e06, 0x5de5, 0x6605, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x9603, 0x95e3, 0x9de3, 0xa602, 0xae02, 0xb602, 0xbe02, 0xc601, 0xc601, 0xce01, 0xd601, 0xde01, 0xe601, 0xe600, 0xede0, 0xf600, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfcc0, 0xfeb1, 0xffff, 0xffff, 0xb757, 0x1dc6, 0x2de7, 0x3606, 0x3de6, 0x4606, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8de3, 0x9603, 0x9de3, 0xa602, 0xade2, 0xb602, 0xbe02, 0xbde2, 0xc5e1, 0xce01, 0xd601, 0xde01, 0xde01, 0xe601, 0xee00, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfcc0, 0xfda8, 0xffff, 0xffff, 0x9f14, 0x1de6, 0x3607, 0x35e6, 0x4606, 0x4606, 0x4e06, 0x5605, 0x5de5, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8603, 0x8e03, 0x95e3, 0x9de3, 0xa5e3, 0xae02, 0xb602, 0xbe02, 0xc602, 0xce02, 0xce01, 0xd5e1, 0xdde1, 0xe600, 0xe5e0, 0xee00, 0xf600, 0xf5e0, 0xfe00, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd40, 0xfd20, 0xfd00, 0xfcc0, 0xfd66, 0xffff, 0xffff, 0xb756, 0x25e5, 0x35e7, 0x3e06, 0x45e6, 0x4e06, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x95e3, 0x9de3, 0xa603, 0xae02, 0xb602, 0xbe02, 0xbe02, 0xc601, 0xce01, 0xd601, 0xdde1, 0xde01, 0xe600, 0xee00, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfca0, 0xfda8, 0xffff, 0xffff, 0xe7bc, 0x3607, 0x35e6, 0x3e06, 0x4605, 0x4de6, 0x55e5, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xa602, 0xae02, 0xb602, 0xbde2, 0xc602, 0xcde1, 0xd601, 0xd601, 0xde01, 0xe601, 0xee00, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfda0, 0xfd80, 0xfd40, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfce0, 0xfc80, 0xfe92, 0xffff, 0xffff, 0xffff, 0x8ef2, 0x2dc4, 0x45e6, 0x4de6, 0x5605, 0x5e05, 0x6605, 0x6e04, 0x7604, 0x7e04, 0x8604, 0x8e04, 0x95e3, 0x9de3, 0xa602, 0xae03, 0xae02, 0xb601, 0xc602, 0xc601, 0xce01, 0xd5e1, 0xde01, 0xde01, 0xe601, 0xede0, 0xf600, 0xf5e0, 0xf600, 0xfe00, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd40, 0xfd20, 0xfce0, 0xfce0, 0xfc80, 0xfd25, 0xffde, 0xffff, 0xffff, 0xffff, 0xf7de, 0x6e8d, 0x35e4, 0x4de5, 0x55e5, 0x5e05, 0x6605, 0x6e05, 0x7604, 0x7de4, 0x8604, 0x8e03, 0x9603, 0x9e03, 0xa602, 0xade2, 0xb602, 0xbe02, 0xc601, 0xcde1, 0xd601, 0xd601, 0xde01, 0xe601, 0xee00, 0xee00, 0xf600, 0xf5e0, 0xfe00, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd40, 0xfd00, 0xfce0, 0xfca0, 0xfd03, 0xff79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0x96d1, 0x5607, 0x55e4, 0x55e3, 0x65e3, 0x65e3, 0x75e2, 0x7de2, 0x85e2, 0x8de1, 0x95e1, 0x9de1, 0xa5e0, 0xade1, 0xb5e0, 0xc5e2, 0xc602, 0xce01, 0xd5e1, 0xde01, 0xe601, 0xe600, 0xede0, 0xf600, 0xf600, 0xfe00, 0xfde0, 0xfe00, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfce0, 0xfdca, 0xff9c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xefdc, 0xc736, 0xbf13, 0xbf13, 0xbf13, 0xc712, 0xc712, 0xcf12, 0xcf12, 0xd712, 0xd712, 0xdf11, 0xdf12, 0xdecd, 0xc601, 0xce01, 0xd601, 0xdde1, 0xde01, 0xe600, 0xee00, 0xede0, 0xf600, 0xf600, 0xfe00, 0xfde0, 0xfe68, 0xfef1, 0xfef1, 0xfef1, 0xfef1, 0xfef1, 0xfed1, 0xfed1, 0xfeb1, 0xfeb0, 0xfeb0, 0xfe91, 0xfed4, 0xff7a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79a, 0xc5e0, 0xcde1, 0xd601, 0xdde1, 0xe601, 0xe5e0, 0xee01, 0xf600, 0xf600, 0xf600, 0xfe00, 0xfdc0, 0xfef0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xcde1, 0xd601, 0xde01, 0xdde1, 0xe5e1, 0xede0, 0xf600, 0xf600, 0xfde0, 0xfe00, 0xfe00, 0xfdc0, 0xfeef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf798, 0xcde0, 0xdde1, 0xde01, 0xe601, 0xe600, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfed0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xd5e0, 0xde01, 0xde01, 0xe600, 0xee00, 0xf600, 0xf5e0, 0xfde0, 0xfe00, 0xfe00, 0xfde0, 0xfda0, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xd5e0, 0xdde1, 0xe600, 0xee00, 0xee00, 0xf5e0, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfda0, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xd5e0, 0xdde1, 0xe600, 0xee00, 0xf5e0, 0xf5e0, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xdde0, 0xe600, 0xee00, 0xf600, 0xf5e0, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfd80, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf778, 0xe5e0, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfd80, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff98, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xf600, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd60, 0xfecf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xee00, 0xf600, 0xf600, 0xfde0, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd60, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd40, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xede0, 0xf600, 0xfde0, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd40, 0xfeaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd20, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd80, 0xfd60, 0xfd20, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xf5e0, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd00, 0xfe8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfce0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfce0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff98, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfcc0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff97, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfce0, 0xfca0, 0xfe4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfdc0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfc80, 0xfe4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfdc0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfc80, 0xfe2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd00, 0xfd00, 0xfce0, 0xfcc0, 0xfc60, 0xfe2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfda0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc40, 0xfe2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd20, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc20, 0xfe0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc00, 0xfe0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc60, 0xfc40, 0xfbe0, 0xfe0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff78, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc20, 0xfbc0, 0xfdef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfd60, 0xfd40, 0xfd40, 0xfd20, 0xfce0, 0xfce0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfbc0, 0xfdcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff77, 0xfd40, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfba0, 0xfdcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd20, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfb80, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc00, 0xfbe0, 0xfbc0, 0xfb40, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd00, 0xfd00, 0xfce0, 0xfcc0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfbe0, 0xfbc0, 0xfba0, 0xfb40, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfce0, 0xfce0, 0xfcc0, 0xfca0, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb00, 0xfd8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfae0, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc00, 0xfc00, 0xfbc0, 0xfb80, 0xfb80, 0xfb40, 0xfac0, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfca0, 0xfca0, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbc0, 0xfba0, 0xfb80, 0xfb40, 0xfb20, 0xfaa0, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfc80, 0xfc80, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfa80, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff37, 0xfc60, 0xfc40, 0xfc40, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfa60, 0xfd2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff37, 0xfc40, 0xfc40, 0xfc20, 0xfbe0, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfb20, 0xfae0, 0xfac0, 0xfa40, 0xfd2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfc20, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa20, 0xfd0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa00, 0xfd0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfbe0, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfaa0, 0xfa60, 0xf9c0, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfbe0, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa80, 0xfa40, 0xf9c0, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfba0, 0xfba0, 0xfb80, 0xfb40, 0xfb20, 0xfae0, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xfa20, 0xf980, 0xfccf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef7, 0xfb80, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa40, 0xfa20, 0xfa00, 0xf960, 0xfcaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfb60, 0xfb60, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf940, 0xfcaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfb40, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa40, 0xfa00, 0xf9e0, 0xf9c0, 0xf920, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed8, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xfa20, 0xf9e0, 0xf9c0, 0xf9a0, 0xf900, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed8, 0xfb00, 0xfb00, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xfa20, 0xf9e0, 0xf9c0, 0xf9a0, 0xf960, 0xf8e0, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed8, 0xfae0, 0xfac0, 0xfaa0, 0xfa80, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9a0, 0xf980, 0xf940, 0xf8c0, 0xfc6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfac0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf9a0, 0xf980, 0xf960, 0xf920, 0xf8a0, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed8, 0xfa80, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9c0, 0xf9c0, 0xf980, 0xf960, 0xf940, 0xf900, 0xf880, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfa60, 0xfa60, 0xfa40, 0xfa00, 0xf9e0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf860, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfa40, 0xfa40, 0xfa00, 0xf9e0, 0xf9c0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf8e0, 0xf8e0, 0xf840, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff3b, 0xfa60, 0xfa00, 0xfa00, 0xf9c0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf820, 0xfd34, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfb87, 0xf9a0, 0xf9c0, 0xf9a0, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf860, 0xf8e1, 0xff3c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf9c0, 0xf980, 0xf980, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf800, 0xfc70, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfd73, 0xf960, 0xf900, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf860, 0xf800, 0xfb6c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe57, 0xfaa7, 0xf900, 0xf8a0, 0xf860, 0xf860, 0xf984, 0xfcd2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeda, 0xfdd6, 0xfdb5, 0xfe79, 0xffbe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0014_2.h ================================================ // extern const uint16_t ColorT_0014_2[3650]; const uint16_t ColorT_0014_2[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7dc, 0xef56, 0xe712, 0xe711, 0xe712, 0xef11, 0xef11, 0xf711, 0xf711, 0xf711, 0xff11, 0xf711, 0xff11, 0xff10, 0xff11, 0xff11, 0xfef1, 0xfef1, 0xfef1, 0xfef1, 0xfed0, 0xfed1, 0xfed0, 0xfeb1, 0xfeb1, 0xfe91, 0xfe91, 0xfe91, 0xfe71, 0xfe71, 0xfe51, 0xfe51, 0xfe51, 0xfe31, 0xfe11, 0xfe11, 0xfdf1, 0xfdf1, 0xfe54, 0xff5b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd711, 0xb604, 0xb5e0, 0xbde0, 0xc5c0, 0xcde0, 0xd5e0, 0xdde0, 0xdde0, 0xe5e0, 0xede0, 0xede0, 0xf5c0, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfcc0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb60, 0xfb20, 0xfb00, 0xfb21, 0xfcaa, 0xff7c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcece, 0xa5e0, 0xb5e1, 0xc602, 0xc5e1, 0xce01, 0xd601, 0xd601, 0xde01, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfaa0, 0xfb63, 0xff1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf13, 0xa5e1, 0xae02, 0xbe02, 0xbe01, 0xc602, 0xce01, 0xd601, 0xde01, 0xe601, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfa80, 0xfb64, 0xffbd, 0xffff, 0xffff, 0xf7dd, 0xae25, 0xade1, 0xb602, 0xbe02, 0xc601, 0xcde1, 0xce01, 0xd601, 0xde01, 0xe600, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb60, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfac0, 0xfa20, 0xfd91, 0xffff, 0xffff, 0xe756, 0xa5e1, 0xae02, 0xb602, 0xbe02, 0xc5e1, 0xce01, 0xd5e1, 0xde01, 0xe601, 0xe5e0, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfce0, 0xfca0, 0xfca0, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb20, 0xfb00, 0xfac0, 0xfac0, 0xfa80, 0xfa20, 0xfbc8, 0xffff, 0xffff, 0xd712, 0xa5e1, 0xb602, 0xbde2, 0xc602, 0xc601, 0xcde1, 0xd601, 0xde01, 0xe600, 0xee00, 0xee00, 0xf600, 0xf600, 0xfde0, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfbe0, 0xfbe0, 0xfba0, 0xfba0, 0xfb60, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa80, 0xfa20, 0xfb66, 0xffff, 0xffff, 0xdf55, 0xade0, 0xb5e2, 0xbde2, 0xc601, 0xce01, 0xd601, 0xde01, 0xe601, 0xe600, 0xee00, 0xf600, 0xf600, 0xfde0, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc80, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb20, 0xfae0, 0xfac0, 0xfaa0, 0xfa80, 0xfa60, 0xfa00, 0xfbc8, 0xffff, 0xffff, 0xf7bc, 0xb603, 0xbde1, 0xc5e2, 0xcde2, 0xd601, 0xd601, 0xde01, 0xe600, 0xee00, 0xf600, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfce0, 0xfce0, 0xfcc0, 0xfca0, 0xfc60, 0xfc40, 0xfc20, 0xfc20, 0xfbe0, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfb00, 0xfae0, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xf9c0, 0xfd72, 0xffff, 0xffff, 0xffff, 0xd6ee, 0xb5c0, 0xc5e2, 0xce01, 0xd601, 0xde01, 0xdde1, 0xe600, 0xee00, 0xf600, 0xf600, 0xfe00, 0xfe00, 0xfe00, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfce0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa60, 0xf9e0, 0xfb05, 0xffbe, 0xffff, 0xffff, 0xffff, 0xffde, 0xd689, 0xc5e0, 0xcde0, 0xd601, 0xde00, 0xe600, 0xee00, 0xee00, 0xf5e0, 0xf5e0, 0xfe00, 0xfde0, 0xfde0, 0xfde0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd20, 0xfd20, 0xfce0, 0xfce0, 0xfca0, 0xfc80, 0xfc80, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfaa0, 0xfa80, 0xfa60, 0xf9e0, 0xfaa4, 0xfefa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xe6ce, 0xd602, 0xd5e0, 0xdde0, 0xe5c0, 0xede0, 0xede0, 0xf5c0, 0xfde0, 0xfde0, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc00, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfb20, 0xfb00, 0xfac0, 0xfaa0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xfa40, 0xfc0a, 0xff5c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdc, 0xf755, 0xf711, 0xf711, 0xf711, 0xff10, 0xff11, 0xff10, 0xff10, 0xff10, 0xfef0, 0xfef1, 0xfef0, 0xfeac, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfd20, 0xfce0, 0xfce0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc00, 0xfd08, 0xfe10, 0xfe10, 0xfdf1, 0xfdf1, 0xfdd0, 0xfdd1, 0xfdb1, 0xfd91, 0xfd91, 0xfd71, 0xfd71, 0xfdd4, 0xff1a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff79, 0xfd40, 0xfd40, 0xfd20, 0xfd20, 0xfce0, 0xfce0, 0xfcc0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfbc0, 0xfe10, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd60, 0xfd40, 0xfd40, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfbc0, 0xfdcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd40, 0xfd20, 0xfd20, 0xfce0, 0xfce0, 0xfca0, 0xfc80, 0xfc80, 0xfc40, 0xfc20, 0xfc00, 0xfba0, 0xfdcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfbe0, 0xfb80, 0xfdcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd20, 0xfd20, 0xfce0, 0xfcc0, 0xfcc0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfb60, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd00, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc40, 0xfc40, 0xfc00, 0xfbe0, 0xfbc0, 0xfb40, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfd00, 0xfd00, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfbe0, 0xfbe0, 0xfba0, 0xfb40, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff58, 0xfce0, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb20, 0xfd8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb00, 0xfd8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfcc0, 0xfca0, 0xfca0, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbc0, 0xfba0, 0xfb80, 0xfb60, 0xfae0, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfca0, 0xfca0, 0xfc80, 0xfc60, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfac0, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff37, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfbe0, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfaa0, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff38, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb20, 0xfaa0, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff37, 0xfc60, 0xfc60, 0xfc40, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfb20, 0xfb00, 0xfa80, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff37, 0xfc40, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb20, 0xfb00, 0xfae0, 0xfa60, 0xfd2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff37, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfb00, 0xfac0, 0xfa40, 0xfd2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa20, 0xfd2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff18, 0xfc00, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa20, 0xfd0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff17, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfb20, 0xfae0, 0xfac0, 0xfaa0, 0xfa60, 0xfa00, 0xfd0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff17, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb60, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xf9c0, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfbc0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa40, 0xf9c0, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb20, 0xfae0, 0xfac0, 0xfaa0, 0xfa80, 0xfa40, 0xfa20, 0xf980, 0xfccf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfb80, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf980, 0xfccf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfb60, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xf9e0, 0xf960, 0xfcaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfb40, 0xfb40, 0xfb20, 0xfb00, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf940, 0xfcaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa40, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf920, 0xfcaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed8, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xf9e0, 0xf9c0, 0xf9a0, 0xf900, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfae0, 0xfae0, 0xfac0, 0xfaa0, 0xfa80, 0xfa40, 0xfa20, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf8e0, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfae0, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf9a0, 0xf980, 0xf960, 0xf8c0, 0xfc6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfac0, 0xfac0, 0xfa80, 0xfa60, 0xfa40, 0xfa00, 0xf9e0, 0xf9c0, 0xf980, 0xf960, 0xf940, 0xf8c0, 0xfc6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfaa0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf8a0, 0xfc6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfa80, 0xfa80, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf880, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb7, 0xfa60, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf860, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfa40, 0xfa40, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf840, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xfa20, 0xfa20, 0xfa00, 0xf9e0, 0xf9a0, 0xf980, 0xf960, 0xf920, 0xf900, 0xf8e0, 0xf8e0, 0xf840, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe97, 0xfa00, 0xfa00, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf820, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe97, 0xf9e0, 0xf9e0, 0xf9c0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf800, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xf9c0, 0xf9c0, 0xf9a0, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xf9a0, 0xf9a0, 0xf980, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf860, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xf980, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8c0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf960, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf940, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf840, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf900, 0xf900, 0xf900, 0xf8c0, 0xf8c0, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf8e0, 0xf900, 0xf8e0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe57, 0xf8e0, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf8c0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf880, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf860, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf860, 0xf860, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf840, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf820, 0xf840, 0xf840, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf800, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfedb, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf800, 0xfd13, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfa07, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf881, 0xff3c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf800, 0xfc50, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfcd2, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfb4c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfdd7, 0xf9e7, 0xf800, 0xf800, 0xf800, 0xf800, 0xf944, 0xfcd2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe9a, 0xfd96, 0xfd75, 0xfe79, 0xffbe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0015_1.h ================================================ // extern const uint16_t ColorT_0015_1[3650]; const uint16_t ColorT_0015_1[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdc, 0xff55, 0xfef1, 0xfef1, 0xfed1, 0xfeb1, 0xfeb1, 0xfeb1, 0xfe90, 0xfe91, 0xfe71, 0xfe71, 0xfe51, 0xfe51, 0xfe31, 0xfe31, 0xfe31, 0xfe11, 0xfdf1, 0xfdf1, 0xfdd1, 0xfdb1, 0xfdb1, 0xfdb1, 0xfd91, 0xfd71, 0xfd71, 0xfd51, 0xfd51, 0xfd31, 0xfd31, 0xfd31, 0xfd11, 0xfd10, 0xfcf1, 0xfcd1, 0xfcd0, 0xfcd1, 0xfd54, 0xfefb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef0, 0xfde1, 0xfd80, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc40, 0xfc40, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf960, 0xf960, 0xf940, 0xf900, 0xf900, 0xf8c0, 0xf8c0, 0xf880, 0xf880, 0xf8c0, 0xfb2a, 0xff1b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfecc, 0xfda0, 0xfda0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfc80, 0xfc80, 0xfc60, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb60, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfaa0, 0xfa80, 0xfa40, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf900, 0xf8c0, 0xf8a0, 0xf840, 0xf943, 0xfeba, 0xffff, 0xffff, 0xffff, 0xffff, 0xff32, 0xfda0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfce0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfb20, 0xfae0, 0xfac0, 0xfaa0, 0xfa80, 0xfa60, 0xfa40, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf820, 0xf984, 0xff9e, 0xffff, 0xffff, 0xffdd, 0xfe02, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf800, 0xfc91, 0xffff, 0xffff, 0xff55, 0xfdc0, 0xfdc0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd60, 0xfd40, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb20, 0xfae0, 0xfac0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf9e0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf900, 0xf8c0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf800, 0xfa48, 0xffff, 0xffff, 0xff11, 0xfdc0, 0xfdc0, 0xfda0, 0xfda0, 0xfd80, 0xfd40, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc60, 0xfc40, 0xfc40, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9c0, 0xf980, 0xf960, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf800, 0xf9c6, 0xffff, 0xffff, 0xff54, 0xfda0, 0xfdc0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfd00, 0xfce0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf800, 0xfa48, 0xffff, 0xffff, 0xffbb, 0xfdc1, 0xfda0, 0xfda0, 0xfd80, 0xfd60, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc40, 0xfc20, 0xfc20, 0xfbe0, 0xfbc0, 0xfba0, 0xfb60, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa20, 0xfa00, 0xf9c0, 0xf9a0, 0xf9a0, 0xf960, 0xf940, 0xf920, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf800, 0xfcb2, 0xffff, 0xffff, 0xffff, 0xfead, 0xfd80, 0xfd80, 0xfd80, 0xfd40, 0xfd40, 0xfd00, 0xfd00, 0xfcc0, 0xfca0, 0xfc80, 0xfc60, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf920, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8c0, 0xf880, 0xf880, 0xf880, 0xf860, 0xf840, 0xf800, 0xf965, 0xff9e, 0xffff, 0xffff, 0xffff, 0xfffe, 0xfe48, 0xfd40, 0xfd40, 0xfd40, 0xfd20, 0xfd00, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfba0, 0xfb60, 0xfb40, 0xfb20, 0xfae0, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa20, 0xf9e0, 0xf9e0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf800, 0xf904, 0xfe9a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xfe8e, 0xfd81, 0xfd20, 0xfce0, 0xfcc0, 0xfca0, 0xfc80, 0xfc40, 0xfc40, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa80, 0xfa40, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf960, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf840, 0xfaca, 0xff1b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbc, 0xff14, 0xfe91, 0xfe90, 0xfe70, 0xfe70, 0xfe50, 0xfe51, 0xfe51, 0xfe31, 0xfe10, 0xfe10, 0xfdf0, 0xfd2d, 0xfb20, 0xfb00, 0xfae0, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa20, 0xf9c0, 0xf9c0, 0xf960, 0xfb28, 0xfcf1, 0xfcd0, 0xfcd0, 0xfcb0, 0xfcb1, 0xfcb1, 0xfc90, 0xfc91, 0xfc90, 0xfc71, 0xfc70, 0xfd13, 0xfeba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff19, 0xfb00, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9a0, 0xf900, 0xfcf0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed8, 0xfb00, 0xfae0, 0xfac0, 0xfaa0, 0xfa80, 0xfa40, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf980, 0xf920, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfae0, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf900, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfac0, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9c0, 0xf980, 0xf960, 0xf8e0, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfed7, 0xfac0, 0xfaa0, 0xfa80, 0xfa60, 0xfa40, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf8c0, 0xfc6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfaa0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf8a0, 0xfc6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfa80, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf8a0, 0xfc6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb7, 0xfa60, 0xfa60, 0xfa40, 0xfa20, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf920, 0xf920, 0xf880, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb7, 0xfa40, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf880, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfa40, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf960, 0xf960, 0xf920, 0xf900, 0xf900, 0xf860, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb8, 0xfa20, 0xfa00, 0xfa00, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf840, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe97, 0xfa00, 0xfa00, 0xf9e0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf840, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe97, 0xf9e0, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf900, 0xf900, 0xf8e0, 0xf8c0, 0xf820, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xf9c0, 0xf9e0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf820, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xf9c0, 0xf9c0, 0xf9a0, 0xf960, 0xf960, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xf9a0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf900, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xf980, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf960, 0xf960, 0xf960, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe77, 0xf960, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe77, 0xf940, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe77, 0xf920, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf900, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf820, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf900, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe57, 0xf8e0, 0xf8e0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf8c0, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf8c0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf8a0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe57, 0xf880, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe37, 0xf860, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe37, 0xf860, 0xf880, 0xf860, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe37, 0xf840, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf840, 0xf840, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf820, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf820, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf820, 0xf820, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe17, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf800, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf840, 0xf860, 0xf820, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf840, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf840, 0xfc6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfdf8, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf880, 0xfc6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf860, 0xf880, 0xf880, 0xf8c0, 0xf8e0, 0xf8a0, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf8a0, 0xf8a0, 0xf8e0, 0xf900, 0xf8e0, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8c0, 0xf8e0, 0xf900, 0xf940, 0xf900, 0xfcaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8e0, 0xf900, 0xf920, 0xf960, 0xf920, 0xfccf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf960, 0xfccf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xf980, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf840, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xf9c0, 0xfd0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe17, 0xf820, 0xf860, 0xf880, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf960, 0xf9c0, 0xf9e0, 0xfa20, 0xf9e0, 0xfd2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf840, 0xf880, 0xf8c0, 0xf8e0, 0xf900, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa00, 0xfa40, 0xfa20, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe17, 0xf840, 0xf8a0, 0xf8e0, 0xf900, 0xf940, 0xf960, 0xf9a0, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfa60, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfefb, 0xf8c0, 0xf8c0, 0xf900, 0xf940, 0xf960, 0xf9a0, 0xf9c0, 0xfa00, 0xfa40, 0xfa80, 0xfaa0, 0xfaa0, 0xfe34, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfa87, 0xf8a0, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfac0, 0xfac0, 0xfb41, 0xff7c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe57, 0xf900, 0xf920, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa60, 0xfa80, 0xfac0, 0xfaa0, 0xfdd0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfd53, 0xf960, 0xf960, 0xf9e0, 0xfa20, 0xfa60, 0xfa80, 0xfaa0, 0xfac0, 0xfd0c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe56, 0xfb27, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfba4, 0xfdf2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfefa, 0xfe56, 0xfe56, 0xfef9, 0xffde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img/ColorT_0016_0.h ================================================ // extern const uint16_t ColorT_0016_0[3650]; const uint16_t ColorT_0016_0[3650] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbc, 0xfed5, 0xfe31, 0xfe31, 0xfe11, 0xfdf1, 0xfdf1, 0xfdd1, 0xfdd1, 0xfdb1, 0xfd91, 0xfd91, 0xfd91, 0xfd71, 0xfd51, 0xfd51, 0xfd31, 0xfd31, 0xfd11, 0xfd11, 0xfcf1, 0xfcf1, 0xfcd1, 0xfcd1, 0xfcd1, 0xfcb1, 0xfcb1, 0xfc91, 0xfc91, 0xfc91, 0xfc71, 0xfc71, 0xfc71, 0xfc71, 0xfc71, 0xfc51, 0xfc51, 0xfc51, 0xfd14, 0xfebb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe51, 0xfc82, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfac0, 0xfaa0, 0xfa80, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xfacb, 0xff1b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfdec, 0xfc20, 0xfc20, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf980, 0xf960, 0xf960, 0xf920, 0xf900, 0xf8e0, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf8e3, 0xfe7a, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe92, 0xfc40, 0xfc60, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb20, 0xfb00, 0xfac0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf940, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf944, 0xff7e, 0xffff, 0xffff, 0xffbd, 0xfcc2, 0xfc60, 0xfc60, 0xfc00, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfaa0, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfc71, 0xffff, 0xffff, 0xfed4, 0xfc40, 0xfc60, 0xfc40, 0xfc00, 0xfc00, 0xfbc0, 0xfba0, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa40, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf920, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf800, 0xfa28, 0xffff, 0xffff, 0xfe71, 0xfc40, 0xfc40, 0xfc20, 0xfc00, 0xfbe0, 0xfba0, 0xfb80, 0xfb60, 0xfb20, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf9c6, 0xffff, 0xffff, 0xfeb4, 0xfc40, 0xfc40, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb80, 0xfb60, 0xfb20, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf940, 0xf920, 0xf900, 0xf900, 0xf8c0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf800, 0xfa68, 0xffff, 0xffff, 0xff9c, 0xfc60, 0xfc20, 0xfc00, 0xfbe0, 0xfbc0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8c0, 0xf880, 0xf880, 0xf860, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf800, 0xfcb2, 0xffff, 0xffff, 0xffff, 0xfdcd, 0xfbc0, 0xfbe0, 0xfbc0, 0xfba0, 0xfb80, 0xfb40, 0xfb20, 0xfb00, 0xfac0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9e0, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf900, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf800, 0xf985, 0xff9e, 0xffff, 0xffff, 0xffff, 0xffde, 0xfd08, 0xfb80, 0xfba0, 0xfb80, 0xfb60, 0xfb40, 0xfb00, 0xfae0, 0xfac0, 0xfa80, 0xfa60, 0xfa40, 0xfa20, 0xfa00, 0xf9c0, 0xf9c0, 0xf980, 0xf960, 0xf940, 0xf920, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf924, 0xfeba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffde, 0xfd8d, 0xfbc1, 0xfb40, 0xfb00, 0xfae0, 0xfaa0, 0xfa80, 0xfa60, 0xfa20, 0xfa00, 0xf9c0, 0xf9a0, 0xf980, 0xf960, 0xf940, 0xf960, 0xf940, 0xf920, 0xf920, 0xf8e0, 0xf8c0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf860, 0xf860, 0xf840, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf840, 0xfaca, 0xff1b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff7c, 0xfe55, 0xfdd0, 0xfdb0, 0xfdb0, 0xfd90, 0xfd71, 0xfd70, 0xfd51, 0xfd31, 0xfd31, 0xfd11, 0xfd10, 0xfc0d, 0xf940, 0xf940, 0xf900, 0xf900, 0xf8c0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf860, 0xf820, 0xfa28, 0xfc51, 0xfc50, 0xfc50, 0xfc51, 0xfc31, 0xfc31, 0xfc30, 0xfc30, 0xfc30, 0xfc31, 0xfc50, 0xfd13, 0xfeba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb9, 0xf900, 0xf920, 0xf900, 0xf900, 0xf8e0, 0xf8a0, 0xf8a0, 0xf8a0, 0xf860, 0xf860, 0xf840, 0xf800, 0xfc30, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf900, 0xf900, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf840, 0xf800, 0xfbf0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe57, 0xf900, 0xf900, 0xf8e0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe57, 0xf8e0, 0xf8e0, 0xf8e0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe57, 0xf8c0, 0xf8e0, 0xf8c0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe57, 0xf8c0, 0xf8c0, 0xf8c0, 0xf8a0, 0xf880, 0xf860, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf8a0, 0xf8c0, 0xf8a0, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf8a0, 0xf8a0, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe37, 0xf880, 0xf8a0, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf860, 0xf880, 0xf880, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf860, 0xf880, 0xf860, 0xf860, 0xf840, 0xf840, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe37, 0xf840, 0xf860, 0xf860, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe37, 0xf840, 0xf860, 0xf860, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf840, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf820, 0xf840, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe17, 0xf820, 0xf840, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf820, 0xf820, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf820, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfbef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf820, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf800, 0xfc0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf800, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf860, 0xf800, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf840, 0xf860, 0xf820, 0xfc2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf840, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf840, 0xfc4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf860, 0xf8a0, 0xf8c0, 0xf880, 0xfc6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8c0, 0xf8e0, 0xf880, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf820, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf900, 0xf8a0, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf900, 0xf8e0, 0xfc8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf800, 0xf820, 0xf840, 0xf840, 0xf860, 0xf880, 0xf8c0, 0xf8e0, 0xf900, 0xf920, 0xf900, 0xfcaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf820, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8e0, 0xf900, 0xf920, 0xf960, 0xf920, 0xfcaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf820, 0xf840, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf960, 0xfccf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf820, 0xf840, 0xf880, 0xf8a0, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf960, 0xf9a0, 0xf980, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf840, 0xf860, 0xf8a0, 0xf8a0, 0xf8e0, 0xf900, 0xf940, 0xf960, 0xf9a0, 0xf9e0, 0xf9a0, 0xfcef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf800, 0xf860, 0xf880, 0xf8a0, 0xf8c0, 0xf900, 0xf920, 0xf960, 0xf980, 0xf9c0, 0xfa00, 0xf9c0, 0xfd0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe18, 0xf820, 0xf860, 0xf8a0, 0xf8c0, 0xf900, 0xf920, 0xf940, 0xf980, 0xf9a0, 0xf9e0, 0xfa20, 0xfa00, 0xfd2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf840, 0xf880, 0xf8c0, 0xf8e0, 0xf920, 0xf940, 0xf960, 0xf9a0, 0xf9e0, 0xfa00, 0xfa40, 0xfa20, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf840, 0xf8a0, 0xf8e0, 0xf900, 0xf940, 0xf960, 0xf9a0, 0xf9c0, 0xfa00, 0xfa40, 0xfa60, 0xfa60, 0xfd4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf860, 0xf8c0, 0xf900, 0xf920, 0xf960, 0xf9a0, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfa80, 0xfd6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe37, 0xf880, 0xf8e0, 0xf920, 0xf940, 0xf980, 0xf9c0, 0xf9e0, 0xfa20, 0xfa60, 0xfa80, 0xfac0, 0xfac0, 0xfd8f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf8a0, 0xf900, 0xf940, 0xf960, 0xf9c0, 0xf9e0, 0xfa20, 0xfa40, 0xfa80, 0xfac0, 0xfae0, 0xfae0, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe38, 0xf8c0, 0xf940, 0xf960, 0xf9a0, 0xf9e0, 0xfa00, 0xfa40, 0xfa80, 0xfac0, 0xfb00, 0xfb20, 0xfb20, 0xfdaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf8e0, 0xf960, 0xf980, 0xf9c0, 0xfa00, 0xfa40, 0xfa60, 0xfaa0, 0xfae0, 0xfb20, 0xfb40, 0xfb40, 0xfdcf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf920, 0xf980, 0xf9c0, 0xfa00, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfb20, 0xfb60, 0xfb80, 0xfb80, 0xfdef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe58, 0xf940, 0xf9a0, 0xf9e0, 0xfa20, 0xfa60, 0xfaa0, 0xfae0, 0xfb00, 0xfb40, 0xfb80, 0xfba0, 0xfbc0, 0xfe0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf980, 0xf9c0, 0xfa20, 0xfa40, 0xfa80, 0xfac0, 0xfb00, 0xfb40, 0xfb60, 0xfba0, 0xfbe0, 0xfbe0, 0xfe0f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf9a0, 0xfa00, 0xfa40, 0xfa80, 0xfac0, 0xfb00, 0xfb40, 0xfb60, 0xfba0, 0xfbe0, 0xfc00, 0xfc20, 0xfe2f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe78, 0xf9e0, 0xfa20, 0xfa80, 0xfac0, 0xfb00, 0xfb20, 0xfb60, 0xfba0, 0xfbe0, 0xfc00, 0xfc40, 0xfc40, 0xfe4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xfa00, 0xfa60, 0xfaa0, 0xfae0, 0xfb20, 0xfb40, 0xfb80, 0xfbc0, 0xfc00, 0xfc40, 0xfc60, 0xfc60, 0xfe4f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe98, 0xfa20, 0xfa80, 0xfac0, 0xfb00, 0xfb60, 0xfb80, 0xfbc0, 0xfc00, 0xfc20, 0xfc60, 0xfca0, 0xfca0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe97, 0xfa60, 0xfac0, 0xfb00, 0xfb40, 0xfb80, 0xfbc0, 0xfbe0, 0xfc00, 0xfc60, 0xfca0, 0xfcc0, 0xfcc0, 0xfe6f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeb7, 0xfaa0, 0xfae0, 0xfb40, 0xfb80, 0xfba0, 0xfbe0, 0xfc20, 0xfc60, 0xfc80, 0xfca0, 0xfd00, 0xfd00, 0xfeb0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff5b, 0xfb00, 0xfb20, 0xfb60, 0xfba0, 0xfbe0, 0xfc20, 0xfc40, 0xfc80, 0xfcc0, 0xfd00, 0xfd20, 0xfd20, 0xff14, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfc47, 0xfb20, 0xfb80, 0xfbe0, 0xfc20, 0xfc60, 0xfc80, 0xfca0, 0xfce0, 0xfd20, 0xfd40, 0xfd81, 0xffbc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef8, 0xfb80, 0xfbc0, 0xfc00, 0xfc40, 0xfc80, 0xfca0, 0xfce0, 0xfd20, 0xfd40, 0xfd20, 0xfed0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfe53, 0xfbe0, 0xfc20, 0xfc60, 0xfca0, 0xfce0, 0xfd00, 0xfd20, 0xfd40, 0xfe8c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfef7, 0xfd27, 0xfca0, 0xfcc0, 0xfce0, 0xfd20, 0xfda4, 0xfef2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff7a, 0xff16, 0xff35, 0xff79, 0xfffe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, }; ================================================ FILE: arduino_workspace/libraries/Lepton/img_table.h ================================================ #ifndef img_table_h #define img_table_h #if 0 const uint16_t colormap_golden[] = { 0x0004, 0x0004, 0x0004, 0x0004, 0x0005, 0x0005, 0x0825, 0x0825, 0x0825, 0x0826, 0x0826, 0x0826, 0x1027, 0x1027, 0x1027, 0x1027, 0x1828, 0x1828, 0x1848, 0x1849, 0x2049, 0x2049, 0x204A, 0x204A, 0x284A, 0x284B, 0x284B, 0x284B, 0x306C, 0x306C, 0x306C, 0x386D, 0x386D, 0x386D, 0x408E, 0x408E, 0x408E, 0x408F, 0x488F, 0x488F, 0x4890, 0x5090, 0x50B0, 0x50B0, 0x58B1, 0x58B1, 0x58B1, 0x58B1, 0x60D2, 0x60D2, 0x60D2, 0x68D2, 0x68D2, 0x68D2, 0x68F3, 0x70F3, 0x70F3, 0x70F3, 0x78F3, 0x7913, 0x7913, 0x7913, 0x8113, 0x8133, 0x8133, 0x8133, 0x8933, 0x8932, 0x8952, 0x9152, 0x9152, 0x9152, 0x9151, 0x9971, 0x9971, 0x9971, 0x9970, 0xA190, 0xA190, 0xA18F, 0xA98F, 0xA9AF, 0xA9AE, 0xA9AE, 0xB1AD, 0xB1CD, 0xB1CD, 0xB9CC, 0xB9EC, 0xB9EB, 0xB9EB, 0xC1EB, 0xC20A, 0xC20A, 0xCA09, 0xCA29, 0xCA29, 0xCA28, 0xCA28, 0xD247, 0xD247, 0xD247, 0xDA66, 0xDA66, 0xDA65, 0xDA85, 0xDA85, 0xE284, 0xE2A4, 0xE2A4, 0xE2A3, 0xEAC3, 0xEAC3, 0xEAE2, 0xEAE2, 0xEAE2, 0xF2E2, 0xF301, 0xF301, 0xF321, 0xF321, 0xF321, 0xF340, 0xFB40, 0xFB40, 0xFB60, 0xFB60, 0xFB80, 0xFB80, 0xFB80, 0xFBA0, 0xFBA0, 0xFBC0, 0xFBC0, 0xFBE0, 0xFBE0, 0xFBE0, 0xFC00, 0xFC00, 0xFC20, 0xFC20, 0xFC40, 0xFC40, 0xFC60, 0xFC60, 0xFC80, 0xFC80, 0xFC80, 0xFCA0, 0xFCA0, 0xFCC0, 0xFCE0, 0xFCE0, 0xFD00, 0xFD00, 0xFD20, 0xFD20, 0xFD40, 0xFD40, 0xFD40, 0xFD60, 0xFD60, 0xFD80, 0xFDA0, 0xFDA0, 0xFDC0, 0xFDC0, 0xFDC1, 0xFDE1, 0xFDE1, 0xFE01, 0xFE01, 0xFE21, 0xFE21, 0xFE41, 0xFE42, 0xFE62, 0xFE62, 0xFE62, 0xFE82, 0xFE82, 0xFE83, 0xFEA3, 0xFEA3, 0xFEC3, 0xFEC3, 0xFEC3, 0xFEE3, 0xFEE4, 0xFEE4, 0xFF04, 0xFF04, 0xFF04, 0xFF25, 0xFF25, 0xFF25, 0xFF45, 0xFF46, 0xFF46, 0xFF46, 0xFF67, 0xFF67, 0xFF67, 0xFF68, 0xFF68, 0xFF89, 0xFF89, 0xFF89, 0xFF8A, 0xFF8A, 0xFFAB, 0xFFAB, 0xFFAC, 0xFFAC, 0xFFAD, 0xFFAD, 0xFFAE, 0xFFCE, 0xFFCE, 0xFFCF, 0xFFD0, 0xFFD0, 0xFFD1, 0xFFD1, 0xFFD2, 0xFFD2, 0xFFD3, 0xFFD3, 0xFFD4, 0xFFD4, 0xFFD5, 0xFFF5, 0xFFF6, 0xFFF6, 0xFFF7, 0xFFF7, 0xFFF8, 0xFFF8, 0xFFF9, 0xFFF9, 0xFFF9, 0xFFFA, 0xFFFA, 0xFFFB, 0xFFFB, 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFF, 0xFFFF}; const uint16_t colormap_rainbow[] = { 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x000A, 0x002A, 0x002B, 0x004B, 0x006B, 0x008C, 0x00AC, 0x00CC, 0x00ED, 0x010D, 0x010E, 0x012E, 0x014E, 0x014F, 0x0170, 0x0190, 0x0190, 0x0191, 0x01B1, 0x01B1, 0x01B1, 0x01B2, 0x01D2, 0x01D2, 0x01F3, 0x01F3, 0x0213, 0x0214, 0x0234, 0x0234, 0x0235, 0x0255, 0x0256, 0x0276, 0x0277, 0x0277, 0x0297, 0x0297, 0x02B8, 0x02B8, 0x02D9, 0x02D9, 0x02F9, 0x02F9, 0x02FA, 0x02FA, 0x031A, 0x031A, 0x031A, 0x033B, 0x033B, 0x035B, 0x035B, 0x035B, 0x037B, 0x037B, 0x039B, 0x039B, 0x03BB, 0x03BB, 0x03DB, 0x03DB, 0x03FB, 0x03FA, 0x041A, 0x0419, 0x0439, 0x0439, 0x0438, 0x0458, 0x0457, 0x0476, 0x0C75, 0x0C94, 0x0C94, 0x0C93, 0x0C93, 0x0C92, 0x0CB1, 0x14B0, 0x14CF, 0x1CCE, 0x1CED, 0x24EC, 0x2D0B, 0x2D0A, 0x3529, 0x3D28, 0x4547, 0x4D66, 0x4D66, 0x5585, 0x5D84, 0x5DA4, 0x65A3, 0x6DC3, 0x6DC2, 0x75E2, 0x75E2, 0x7DE2, 0x8601, 0x8601, 0x8E21, 0x8E21, 0x9620, 0x9640, 0x9E40, 0xA640, 0xA660, 0xAE60, 0xAE60, 0xAE60, 0xB660, 0xBE80, 0xBE80, 0xC680, 0xC6A0, 0xC6A0, 0xCEA0, 0xCEA0, 0xD6A0, 0xD6A0, 0xDEA0, 0xDEA0, 0xDEA0, 0xE6A0, 0xE6A0, 0xE6A0, 0xE680, 0xEE80, 0xEE80, 0xEE80, 0xEE80, 0xEE80, 0xEE80, 0xEE81, 0xEE61, 0xF661, 0xF641, 0xF641, 0xF641, 0xF641, 0xF621, 0xF621, 0xF621, 0xFE01, 0xFDE1, 0xFDE1, 0xFDC1, 0xFDC2, 0xFDA2, 0xFD82, 0xFD62, 0xFD42, 0xFD42, 0xFD22, 0xFD22, 0xFD02, 0xFD02, 0xFCE2, 0xFCE2, 0xFCC3, 0xFCA3, 0xFC63, 0xFC43, 0xFC23, 0xFC03, 0xFBE4, 0xFBA4, 0xFB64, 0xFB44, 0xFB24, 0xFB04, 0xFAE5, 0xFAC5, 0xFA85, 0xFA65, 0xFA25, 0xF9E6, 0xF9C6, 0xF9A6, 0xF986, 0xF966, 0xF927, 0xF907, 0xF907, 0xF8E7, 0xF8E7, 0xF8E7, 0xF8E7, 0xF8C7, 0xF8C8, 0xF8C8, 0xF8C8, 0xF8C8, 0xF8C9, 0xF0C9, 0xF0C9, 0xF0C9, 0xF0CA, 0xF10A, 0xF10A, 0xF12A, 0xF14B, 0xF16B, 0xF18B, 0xF9AB, 0xF9CC, 0xFA0C, 0xFA4C, 0xFA8D, 0xFAAD, 0xFAED, 0xFAED, 0xFB0D, 0xFB2D, 0xFB2E, 0xFB2E, 0xFB6E, 0xFBAF, 0xFBCF, 0xFBEF, 0xFC10, 0xFC30, 0xFC50, 0xFC91, 0xFCB1, 0xFCF2, 0xFD12, 0xFD52, 0xFD73, 0xFD93, 0xFD93, 0xFDD4, 0xFDF4, 0xFE15, 0xFE35, 0xFE55, 0xFE76, 0xFE96, 0xFED7, 0xFED7, 0xFEF8, 0xFEF9, 0xFF19, 0xFF19, 0xFF39, 0xFF5A, }; const uint16_t colormap_grayscale[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0841, 0x0841, 0x0841, 0x0841, 0x0861, 0x0861, 0x0861, 0x0861, 0x1082, 0x1082, 0x1082, 0x1082, 0x10A2, 0x10A2, 0x10A2, 0x10A2, 0x18C3, 0x18C3, 0x18C3, 0x18C3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2104, 0x2104, 0x2104, 0x2124, 0x2124, 0x2124, 0x2124, 0x2945, 0x2945, 0x2945, 0x2945, 0x2965, 0x2965, 0x2965, 0x2965, 0x3186, 0x3186, 0x3186, 0x3186, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x39C7, 0x39C7, 0x39C7, 0x39C7, 0x39E7, 0x39E7, 0x39E7, 0x39E7, 0x4208, 0x4208, 0x4208, 0x4208, 0x4228, 0x4228, 0x4228, 0x4228, 0x4A49, 0x4A49, 0x4A49, 0x4A49, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x528A, 0x528A, 0x528A, 0x528A, 0x52AA, 0x52AA, 0x52AA, 0x52AA, 0x5ACB, 0x5ACB, 0x5ACB, 0x5ACB, 0x5AEB, 0x5AEB, 0x5AEB, 0x5AEB, 0x630C, 0x630C, 0x630C, 0x630C, 0x632C, 0x632C, 0x632C, 0x632C, 0x6B4D, 0x6B4D, 0x6B4D, 0x6B4D, 0x6B6D, 0x6B6D, 0x6B6D, 0x6B6D, 0x738E, 0x738E, 0x738E, 0x738E, 0x73AE, 0x73AE, 0x73AE, 0x73AE, 0x7BCF, 0x7BCF, 0x7BCF, 0x7BCF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x8410, 0x8410, 0x8410, 0x8410, 0x8430, 0x8430, 0x8430, 0x8430, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C71, 0x8C71, 0x8C71, 0x8C71, 0x9492, 0x9492, 0x9492, 0x9492, 0x94B2, 0x94B2, 0x94B2, 0x94B2, 0x9CD3, 0x9CD3, 0x9CD3, 0x9CD3, 0x9CF3, 0x9CF3, 0x9CF3, 0x9CF3, 0xA514, 0xA514, 0xA514, 0xA514, 0xA534, 0xA534, 0xA534, 0xA534, 0xAD55, 0xAD55, 0xAD55, 0xAD55, 0xAD75, 0xAD75, 0xAD75, 0xAD75, 0xB596, 0xB596, 0xB596, 0xB596, 0xB5B6, 0xB5B6, 0xB5B6, 0xB5B6, 0xBDD7, 0xBDD7, 0xBDD7, 0xBDD7, 0xBDF7, 0xBDF7, 0xBDF7, 0xBDF7, 0xC618, 0xC618, 0xC618, 0xC618, 0xC638, 0xC638, 0xC638, 0xC638, 0xCE59, 0xCE59, 0xCE59, 0xCE59, 0xCE79, 0xCE79, 0xCE79, 0xCE79, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD6BA, 0xD6BA, 0xD6BA, 0xD6BA, 0xDEDB, 0xDEDB, 0xDEDB, 0xDEDB, 0xDEFB, 0xDEFB, 0xDEFB, 0xDEFB, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xE73C, 0xE73C, 0xE73C, 0xEF5D, 0xEF5D, 0xEF5D, 0xEF5D, 0xEF7D, 0xEF7D, 0xEF7D, 0xEF7D, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF7BE, 0xF7BE, 0xF7BE, 0xF7BE, 0xFFDF, 0xFFDF, 0xFFDF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, }; const uint16_t colormap_ironblack[] = { 0xFFFF, 0xFFFF, 0xFFDF, 0xFFDF, 0xF7BE, 0xF7BE, 0xF79E, 0xF79E, 0xEF7D, 0xEF7D, 0xEF5D, 0xEF5D, 0xE73C, 0xE73C, 0xE71C, 0xE71C, 0xDEFB, 0xDEFB, 0xDEDB, 0xDEDB, 0xD6BA, 0xD6BA, 0xD69A, 0xD69A, 0xCE79, 0xCE79, 0xCE59, 0xCE59, 0xC638, 0xC638, 0xC618, 0xC618, 0xBDF7, 0xBDF7, 0xBDD7, 0xBDD7, 0xB5B6, 0xB5B6, 0xB596, 0xB596, 0xAD75, 0xAD75, 0xAD55, 0xAD55, 0xA534, 0xA534, 0xA514, 0xA514, 0x9CF3, 0x9CF3, 0x9CD3, 0x9CD3, 0x94B2, 0x94B2, 0x9492, 0x9492, 0x8C71, 0x8C71, 0x8C51, 0x8C51, 0x8430, 0x8430, 0x8410, 0x8410, 0x7BEF, 0x7BEF, 0x7BCF, 0x7BCF, 0x73AE, 0x73AE, 0x738E, 0x738E, 0x6B6D, 0x6B6D, 0x6B4D, 0x6B4D, 0x632C, 0x632C, 0x630C, 0x630C, 0x5AEB, 0x5AEB, 0x5ACB, 0x5ACB, 0x52AA, 0x52AA, 0x528A, 0x528A, 0x4A69, 0x4A69, 0x4A49, 0x4A49, 0x4228, 0x4228, 0x4208, 0x4208, 0x39E7, 0x39E7, 0x39C7, 0x39C7, 0x31A6, 0x31A6, 0x3186, 0x3186, 0x2965, 0x2965, 0x2945, 0x2945, 0x2124, 0x2124, 0x2104, 0x2104, 0x18E3, 0x18E3, 0x18C3, 0x18C3, 0x10A2, 0x10A2, 0x1082, 0x1082, 0x0861, 0x0861, 0x0841, 0x0841, 0x0020, 0x0020, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0003, 0x0804, 0x0805, 0x0806, 0x0807, 0x1008, 0x1009, 0x100A, 0x100B, 0x180C, 0x180C, 0x180D, 0x180E, 0x200F, 0x280F, 0x280F, 0x300F, 0x380F, 0x380F, 0x400F, 0x400F, 0x4810, 0x5010, 0x5010, 0x5810, 0x6010, 0x6010, 0x6810, 0x6810, 0x7011, 0x7811, 0x7811, 0x8011, 0x8011, 0x8811, 0x9011, 0x9031, 0x9831, 0x9831, 0xA031, 0xA031, 0xA831, 0xB031, 0xB031, 0xB831, 0xB851, 0xB870, 0xC08F, 0xC08F, 0xC0AE, 0xC8CD, 0xC8ED, 0xC8EC, 0xC90B, 0xD12B, 0xD14A, 0xD14A, 0xD969, 0xD988, 0xD9A8, 0xD9A7, 0xE1C6, 0xE1E5, 0xE205, 0xE205, 0xE224, 0xE244, 0xE264, 0xE284, 0xE2A3, 0xEAC3, 0xEAE3, 0xEAE2, 0xEB02, 0xEB22, 0xEB41, 0xEB61, 0xEB81, 0xF3A1, 0xF3A1, 0xF3C1, 0xF3E1, 0xF401, 0xF421, 0xF441, 0xF461, 0xF481, 0xF4A1, 0xF4C1, 0xF4E1, 0xF501, 0xF501, 0xF521, 0xF541, 0xFD61, 0xFD81, 0xFDA2, 0xFDC2, 0xFDE2, 0xFE02, 0xFE22, 0xFE22, 0xFE42, 0xFE63, 0xFE83, 0xFEA3, 0xFEC3, 0xFEE3, 0xFF03, 0xFF04, 0xFF26, 0xFF28, 0xFF4A, 0xFF4B, 0xFF6D, 0xFF6F, 0xFF91, 0xFF92, 0xFFB4, 0xFFB6, 0xFFD8, 0xFFD9, 0xFFDB, 0xFFFD, 0xFFE3, }; #endif const uint16_t colormap_cam[] = {0x480F, 0x400F, 0x400F, 0x400F, 0x4010, 0x3810, 0x3810, 0x3810, 0x3810, 0x3010, 0x3010, 0x3010, 0x2810, 0x2810, 0x2810, 0x2810, 0x2010, 0x2010, 0x2010, 0x1810, 0x1810, 0x1811, 0x1811, 0x1011, 0x1011, 0x1011, 0x0811, 0x0811, 0x0811, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0031, 0x0031, 0x0051, 0x0072, 0x0072, 0x0092, 0x00B2, 0x00B2, 0x00D2, 0x00F2, 0x00F2, 0x0112, 0x0132, 0x0152, 0x0152, 0x0172, 0x0192, 0x0192, 0x01B2, 0x01D2, 0x01F3, 0x01F3, 0x0213, 0x0233, 0x0253, 0x0253, 0x0273, 0x0293, 0x02B3, 0x02D3, 0x02D3, 0x02F3, 0x0313, 0x0333, 0x0333, 0x0353, 0x0373, 0x0394, 0x03B4, 0x03D4, 0x03D4, 0x03F4, 0x0414, 0x0434, 0x0454, 0x0474, 0x0474, 0x0494, 0x04B4, 0x04D4, 0x04F4, 0x0514, 0x0534, 0x0534, 0x0554, 0x0554, 0x0574, 0x0574, 0x0573, 0x0573, 0x0573, 0x0572, 0x0572, 0x0572, 0x0571, 0x0591, 0x0591, 0x0590, 0x0590, 0x058F, 0x058F, 0x058F, 0x058E, 0x05AE, 0x05AE, 0x05AD, 0x05AD, 0x05AD, 0x05AC, 0x05AC, 0x05AB, 0x05CB, 0x05CB, 0x05CA, 0x05CA, 0x05CA, 0x05C9, 0x05C9, 0x05C8, 0x05E8, 0x05E8, 0x05E7, 0x05E7, 0x05E6, 0x05E6, 0x05E6, 0x05E5, 0x05E5, 0x0604, 0x0604, 0x0604, 0x0603, 0x0603, 0x0602, 0x0602, 0x0601, 0x0621, 0x0621, 0x0620, 0x0620, 0x0620, 0x0620, 0x0E20, 0x0E20, 0x0E40, 0x1640, 0x1640, 0x1E40, 0x1E40, 0x2640, 0x2640, 0x2E40, 0x2E60, 0x3660, 0x3660, 0x3E60, 0x3E60, 0x3E60, 0x4660, 0x4660, 0x4E60, 0x4E80, 0x5680, 0x5680, 0x5E80, 0x5E80, 0x6680, 0x6680, 0x6E80, 0x6EA0, 0x76A0, 0x76A0, 0x7EA0, 0x7EA0, 0x86A0, 0x86A0, 0x8EA0, 0x8EC0, 0x96C0, 0x96C0, 0x9EC0, 0x9EC0, 0xA6C0, 0xAEC0, 0xAEC0, 0xB6E0, 0xB6E0, 0xBEE0, 0xBEE0, 0xC6E0, 0xC6E0, 0xCEE0, 0xCEE0, 0xD6E0, 0xD700, 0xDF00, 0xDEE0, 0xDEC0, 0xDEA0, 0xDE80, 0xDE80, 0xE660, 0xE640, 0xE620, 0xE600, 0xE5E0, 0xE5C0, 0xE5A0, 0xE580, 0xE560, 0xE540, 0xE520, 0xE500, 0xE4E0, 0xE4C0, 0xE4A0, 0xE480, 0xE460, 0xEC40, 0xEC20, 0xEC00, 0xEBE0, 0xEBC0, 0xEBA0, 0xEB80, 0xEB60, 0xEB40, 0xEB20, 0xEB00, 0xEAE0, 0xEAC0, 0xEAA0, 0xEA80, 0xEA60, 0xEA40, 0xF220, 0xF200, 0xF1E0, 0xF1C0, 0xF1A0, 0xF180, 0xF160, 0xF140, 0xF100, 0xF0E0, 0xF0C0, 0xF0A0, 0xF080, 0xF060, 0xF040, 0xF020, 0xF800, }; /* const uint16_t colormap_gray[] = {0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0841, 0x0841, 0x0841, 0x0841, 0x0861, 0x0861, 0x0861, 0x0861, 0x1082, 0x1082, 0x1082, 0x1082, 0x10A2, 0x10A2, 0x10A2, 0x10A2, 0x18C3, 0x18C3, 0x18C3, 0x18C3, 0x18E3, 0x18E3, 0x18E3, 0x18E3, 0x2104, 0x2104, 0x2104, 0x2104, 0x2124, 0x2124, 0x2124, 0x2124, 0x2945, 0x2945, 0x2945, 0x2945, 0x2965, 0x2965, 0x2965, 0x2965, 0x3186, 0x3186, 0x3186, 0x3186, 0x31A6, 0x31A6, 0x31A6, 0x31A6, 0x39C7, 0x39C7, 0x39C7, 0x39C7, 0x39E7, 0x39E7, 0x39E7, 0x39E7, 0x4208, 0x4208, 0x4208, 0x4208, 0x4228, 0x4228, 0x4228, 0x4228, 0x4A49, 0x4A49, 0x4A49, 0x4A49, 0x4A69, 0x4A69, 0x4A69, 0x4A69, 0x528A, 0x528A, 0x528A, 0x528A, 0x52AA, 0x52AA, 0x52AA, 0x52AA, 0x5ACB, 0x5ACB, 0x5ACB, 0x5ACB, 0x5AEB, 0x5AEB, 0x5AEB, 0x5AEB, 0x630C, 0x630C, 0x630C, 0x630C, 0x632C, 0x632C, 0x632C, 0x632C, 0x6B4D, 0x6B4D, 0x6B4D, 0x6B4D, 0x6B6D, 0x6B6D, 0x6B6D, 0x6B6D, 0x738E, 0x738E, 0x738E, 0x738E, 0x73AE, 0x73AE, 0x73AE, 0x73AE, 0x7BCF, 0x7BCF, 0x7BCF, 0x7BCF, 0x7BEF, 0x7BEF, 0x7BEF, 0x7BEF, 0x8410, 0x8410, 0x8410, 0x8410, 0x8430, 0x8430, 0x8430, 0x8430, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C71, 0x8C71, 0x8C71, 0x8C71, 0x9492, 0x9492, 0x9492, 0x9492, 0x94B2, 0x94B2, 0x94B2, 0x94B2, 0x9CD3, 0x9CD3, 0x9CD3, 0x9CD3, 0x9CF3, 0x9CF3, 0x9CF3, 0x9CF3, 0xA514, 0xA514, 0xA514, 0xA514, 0xA534, 0xA534, 0xA534, 0xA534, 0xAD55, 0xAD55, 0xAD55, 0xAD55, 0xAD75, 0xAD75, 0xAD75, 0xAD75, 0xB596, 0xB596, 0xB596, 0xB596, 0xB5B6, 0xB5B6, 0xB5B6, 0xB5B6, 0xBDD7, 0xBDD7, 0xBDD7, 0xBDD7, 0xBDF7, 0xBDF7, 0xBDF7, 0xBDF7, 0xC618, 0xC618, 0xC618, 0xC618, 0xC638, 0xC638, 0xC638, 0xC638, 0xCE59, 0xCE59, 0xCE59, 0xCE59, 0xCE79, 0xCE79, 0xCE79, 0xCE79, 0xD69A, 0xD69A, 0xD69A, 0xD69A, 0xD6BA, 0xD6BA, 0xD6BA, 0xD6BA, 0xDEDB, 0xDEDB, 0xDEDB, 0xDEDB, 0xDEFB, 0xDEFB, 0xDEFB, 0xDEFB, 0xE71C, 0xE71C, 0xE71C, 0xE71C, 0xE73C, 0xE73C, 0xE73C, 0xE73C, 0xEF5D, 0xEF5D, 0xEF5D, 0xEF5D, 0xEF7D, 0xEF7D, 0xEF7D, 0xEF7D, 0xF79E, 0xF79E, 0xF79E, 0xF79E, 0xF7BE, 0xF7BE, 0xF7BE, 0xF7BE, 0xFFDF, 0xFFDF, 0xFFDF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, };*/ // extern const uint16_t img_logo[32400]; #endif ================================================ FILE: arduino_workspace/libraries/Lepton/lepton.cpp ================================================ #include "Arduino.h" #include "Lepton.h" #include "Wire.h" #include "SPI.h" #define LEPTON_WAIT_TIMEOUT 1000 #define rotationHorizont 0 #define rotationVert 0 static byte leptonFrame[164]; unsigned short smallBuffer[160*120]; uint16_t raw_max = 0, raw_min = 0xFFFF; //uint16_t frame_buffer[4][60][164]; uint16_t aux_temp = 0, fpa_temp = 0, max_x, max_y, min_x, min_y; static SPIClass* lepton_spi = new SPIClass(HSPI); static void ESP_DelayUS(uint64_t us) { uint64_t m = ESP_GetUS(); uint64_t e = (m + us); if (us) { //todo: this sucks if ref tick is 100Hz if (us > (3000 * portTICK_PERIOD_MS)) { vTaskDelay((us - (2000 * portTICK_PERIOD_MS)) / (portTICK_PERIOD_MS * 1000)); m = ESP_GetUS(); } if (m > e) { //overflow while (ESP_GetUS() > e) { } } while (ESP_GetUS() < e) { } } } static volatile bool vsync_triggered = 0; static volatile uint64_t vsync_time = 0; static void IRAM_ATTR onVsyncISR() { vsync_triggered = 1; //vsync_time = (uint64_t)esp_timer_get_time(); } Lepton::Lepton(int sdaPin, int sclPin, int ssPin, int syncPin) : _sdaPin(sdaPin), _sclPin(sclPin), _ssPin(ssPin), _syncPin(syncPin) { } bool Lepton::begin() { // reset pin toggling now done in main app //pinMode(LEPTON_RESET_PIN, OUTPUT); //digitalWrite(LEPTON_RESET_PIN, HIGH); //delay(100); //digitalWrite(LEPTON_RESET_PIN, LOW); //delay(300); //digitalWrite(LEPTON_RESET_PIN, HIGH); //delay(50); pinMode(_syncPin, INPUT); //vsync attachInterrupt(_syncPin, onVsyncISR, RISING); pinMode(_ssPin, OUTPUT); digitalWrite(_ssPin, HIGH); lepton_spi->begin(2, 25, 34, 35); // do a quick I2C bus check, the error will show up with _i2cAvail waitIdle(); return i2cAvail(); //return true; } uint16_t Lepton::readRegister(uint16_t reg) { setRegister(reg); Wire1.requestFrom(DEVICE_ID, (uint8_t)2); return readWord(); } void Lepton::writeRegister(uint16_t reg, uint16_t value) { startTransmission(reg); transmitWord(value); endTransmission(); } uint16_t Lepton::doGetCommand(uint16_t commandIdBase, uint16_t *data) { writeRegister(REG_COMMAND_ID, commandIdBase | TYPE_GET); waitIdle(); return readData(data); } void Lepton::doSetCommand(uint16_t commandIdBase, uint16_t *data, uint16_t dataLen) { writeData(data, dataLen); writeRegister(REG_COMMAND_ID, commandIdBase | TYPE_SET); waitIdle(); } uint16_t Lepton::doRunCommand(uint16_t commandIdBase, uint16_t *data, uint16_t dataLen) { writeData(data, dataLen); writeRegister(REG_COMMAND_ID, commandIdBase | TYPE_RUN); waitIdle(); return readData(data); } /* Get one line package from the Lepton */ int Lepton::getPackage(byte line, byte seg) { lepton_spi->transferBytes(NULL,leptonFrame,164); if((leptonFrame[0] & 0x0F) == 0x0F) return 1; //Check if the line number matches the expected line if (leptonFrame[1] != line) return 2; //For the Lepton3.x, check if the segment number matches if (line == 20) { byte segment = (leptonFrame[0] >> 4); if (segment == 0) return 3; if (segment != seg) return 4; } return 0; } /* Store one package of 80 columns into RAM */ bool Lepton::savePackage(byte line, byte segment) { uint16_t x_base = (line & 0x01) ? 80 : 0; uint16_t y_base = ((segment - 1) * 30) + (line >> 1); uint16_t addr_base = y_base * 160 + x_base; //Go through the video pixels for one video line for (int column = 0; column < 80; column++) { //Make a 16-bit rawvalue from the lepton frame uint16_t result = (uint16_t)(leptonFrame[(column << 1) + 4] << 8 | leptonFrame[(column << 1) + 5]); if (result > raw_max) { raw_max = result; max_x = x_base + column; max_y = y_base; } if (result < raw_min) { raw_min = result; min_x = x_base + column; min_y = y_base; } //Invalid value, return if (result == 0) { return 0; } else { smallBuffer[addr_base + column] = result; } } //Everything worked return 1; } bool WaitForVsync() { uint32_t t = millis(); vsync_triggered = 0; while (vsync_triggered == 0 && (millis() - t) < LEPTON_WAIT_TIMEOUT) { yield(); } return vsync_triggered != 0; } /* Get one frame of raw values from the lepton */ void Lepton::getRawValues() { byte line, error, segment; raw_max = 0; raw_min = 0xFFFF; max_x = 0; max_y = 0; min_x = 0; min_y = 0; syncFrame(); //Go through the segments for (segment = 1; segment <= 4; segment++) { if (WaitForVsync()) { error = 0; //Reset error counter for each segment do //Go through one segment, equals 60 lines of 80 values { for (line = 0; line < 60; line++) { if (error >= 255) //Maximum error count { segment = 1; //Reset segment error = 0; //Reset error reset(); //Reset Lepton lepton_spi break; //Restart at line 0 } int retVal = getPackage(line, segment); //Get a package from the lepton //If everythin worked, continue if (retVal == 0) { if (savePackage(line, segment)) continue; } //Raise lepton error error++; ESP_DelayUS(900); /* unsigned long T = micros(); //Stabilize framerate uint32_t time = micros(); while ((micros() - time) < 800) __asm__ volatile ("nop"); printf("T = %ld\n", micros() - T); */ break; } } while (line != 60); } else { Serial.println("Lepton Vsync Failed"); //Raise lepton error error++; if (error >= 3) //Maximum error count { segment = 1; //Reset segment error = 0; //Reset error reset(); //Reset Lepton lepton_spi break; } } } doGetCommand(CMD_SYS_FPA_TEMPERATURE_KELVIN, &fpa_temp); doGetCommand(CMD_SYS_AUX_TEMPERATURE_KELVIN, &aux_temp); //End lepton_spi Transmission end(); } void Lepton::reset() { end(); delay(186); syncFrame(); } void Lepton::syncFrame() { lepton_spi->beginTransaction(SPISettings(20000000, MSBFIRST, SPI_MODE3)); digitalWrite(_ssPin, LOW); ESP_DelayUS(20); } void Lepton::end() { digitalWrite(_ssPin, HIGH); lepton_spi->endTransaction(); } int Lepton::readFrame(uint16_t* data) { for (byte segment = 1; segment <= 4; segment++){ uint16_t row = 0; uint16_t id = waitNextFrame(); while ((id & 0xfff) == row) { uint16_t crc = readFrameWord(); for (int col = 0; col < 80; col++) { data[(segment - 1) * 4800 + row * 80 + col] = readFrameWord(); } if ((row == 20)){ //byte seg = (id >> 12); //if (seg == 0) // return 1; ///if (segment != seg) // return 2; } //Serial.printf("row = %d, segment = %d, id = %d,id_row = %d\n", row, segment, id >> 12, id & 0xfff); row++; if (row < 60) { id = readFrameWord(); } else { //return 1; break; } //Serial.printf("................readFrame ended with row %4x != id %4x\n", row, id); } } return 0; } int Lepton::read_160x120_Frame(uint16_t* data) { uint16_t row = 0; uint16_t id = waitNextFrame(); while ((id & 0xfff) == row) { uint16_t crc = readFrameWord(); for (int col = 0; col < 80; col++) { data[row * 80 + col] = readFrameWord(); } // Serial.printf(" %d %d %d\n", (id & 0x7000)>>12 ,(id & 0xfff) , row); row++; if (row < 60) { id = readFrameWord(); } else { return 1; } //Serial.printf("................readFrame ended with row %4x != id %4x\n", row, id); } //Serial.printf("readFrame ended with row %4x != id %4x\n", row, id); return 0; } void Lepton::readFrameRaw(uint16_t* data) { data[0] = waitNextFrame(); for (int i = 1; i < 82 * 60; i++) { data[i] = readFrameWord(); } } void Lepton::startTransmission(uint16_t reg) { Wire1.beginTransmission(DEVICE_ID); transmitWord(reg); } void Lepton::transmitWord(uint16_t value) { Wire1.write((value >> 8) & 0xff); Wire1.write(value & 0xff); } void Lepton::endTransmission() { uint8_t error = Wire1.endTransmission(); if (error != 0) { _i2cAvail = false; } } uint16_t Lepton::readWord() { uint16_t value = Wire1.read() << 8; value |= Wire1.read(); return value; } void Lepton::setRegister(uint16_t reg) { startTransmission(reg); endTransmission(); } bool Lepton::waitIdle() { uint32_t t = millis(); uint16_t r; while (((r = readRegister(REG_STATUS)) & STATUS_BIT_BUSY) != 0 && (millis() - t) < LEPTON_WAIT_TIMEOUT) { yield(); } return (r & STATUS_BIT_BUSY) == 0; } uint16_t Lepton::readData(uint16_t* data) { uint16_t dataLen = readRegister(REG_DATA_LEN) / 2; // The data sheet says the data length register is in 16-bit words, but it actually seems to be in bytes setRegister(REG_DATA_BASE); Wire1.requestFrom(DEVICE_ID, (uint8_t)(dataLen * 2)); for (int i = 0; i < dataLen; i++) { data[i] = readWord(); } // TODO Check CRC return dataLen; } void Lepton::writeData(uint16_t* data, uint16_t dataLen) { startTransmission(REG_DATA_LEN); transmitWord(dataLen); for (int i = 0; i < dataLen; i++) { transmitWord(data[i]); } endTransmission(); } uint16_t Lepton::readFrameWord() { uint16_t data = lepton_spi->transfer(0x00) << 8; data |= lepton_spi->transfer(0x00); return data; } uint16_t Lepton::waitNextFrame() { uint16_t id = readFrameWord(); while ((id & 0x0f00) == 0x0f00) { for (int i = 0; i < 81; i++) { readFrameWord(); } id = readFrameWord(); } return id; } uint16_t Lepton::wait_160X120_NextFrame() { uint16_t seg = 0; for(int i = 0; i < 82 * 60; i++) { seg = readFrameWord(); //Serial.printf("seg = %d ", (seg & 0x7000)>>12);Serial.printf("id = %d\n", seg & 0x0fff); } return 0; } void Lepton::dumpHex(uint16_t *data, int dataLen) { for (int i = 0; i < dataLen; i++) { Serial.printf("%4x ", data[i]); } Serial.println(); } ================================================ FILE: arduino_workspace/libraries/M5DisplayExt/M5DisplayExt.cpp ================================================ #include "M5DisplayExt.h" // These read 16- and 32-bit types from the SD card file. // BMP data is stored little-endian, Arduino is little-endian too. // May need to reverse subscript order if porting elsewhere. uint16_t read16(fs::File &f) { uint16_t result; ((uint8_t *)&result)[0] = f.read(); // LSB ((uint8_t *)&result)[1] = f.read(); // MSB return result; } uint32_t read32(fs::File &f) { uint32_t result; ((uint8_t *)&result)[0] = f.read(); // LSB ((uint8_t *)&result)[1] = f.read(); ((uint8_t *)&result)[2] = f.read(); ((uint8_t *)&result)[3] = f.read(); // MSB return result; } #ifdef ENABLE_BUILD_BMP void M5DisplayExt::drawBmpFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y) { drawBmpFileSprite(this, fs, path, x, y); } // Bodmers BMP image rendering function void M5DisplayExt::drawBmpFileSprite(TFT_eSPI* sprite, fs::FS &fs, const char *path, uint16_t x, uint16_t y) { need_boost(); if ((x >= width()) || (y >= height())) return; // Open requested file on SD card File bmpFS = fs.open(path, "r"); if (!bmpFS) { log_e("File not found"); return; } uint32_t seekOffset; uint16_t w, h, row, col; uint8_t r, g, b; uint32_t startTime = millis(); if (read16(bmpFS) == 0x4D42) { read32(bmpFS); read32(bmpFS); seekOffset = read32(bmpFS); read32(bmpFS); w = read32(bmpFS); h = read32(bmpFS); if ((read16(bmpFS) == 1) && (read16(bmpFS) == 24) && (read32(bmpFS) == 0)) { y += h - 1; sprite->setSwapBytes(true); bmpFS.seek(seekOffset); uint16_t padding = (4 - ((w * 3) & 3)) & 3; uint8_t lineBuffer[w * 3 + padding]; for (row = 0; row < h; row++) { bmpFS.read(lineBuffer, sizeof(lineBuffer)); uint8_t* bptr = lineBuffer; uint16_t* tptr = (uint16_t*)lineBuffer; // Convert 24 to 16 bit colours for (col = 0; col < w; col++) { b = *bptr++; g = *bptr++; r = *bptr++; *tptr++ = ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); } // Push the pixel row to screen, pushImage will crop the line if needed // y is decremented as the BMP image is drawn bottom up sprite->pushImage(x, y--, w, 1, (uint16_t*)lineBuffer); } //Serial.print("Loaded in "); Serial.print(millis() - startTime); //Serial.println(" ms"); } else { log_e("BMP format not recognized."); } } bmpFS.close(); } #endif #define jpgColor(c) \ (((uint16_t)(((uint8_t *)(c))[0] & 0xF8) << 8) | \ ((uint16_t)(((uint8_t *)(c))[1] & 0xFC) << 3) | \ ((((uint8_t *)(c))[2] & 0xF8) >> 3)) #ifdef ENABLE_BUILD_JPG /*************************************************** This library is written to be compatible with Adafruit's ILI9341 library and automatically detects the display type on ESP_WROVER_KITs Earlier WROVERs had ILI9341, while newer releases have ST7789V MIT license, all text above must be included in any redistribution ****************************************************/ /* * JPEG */ #include "rom/tjpgd.h" #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_ERROR const char *jd_errors[] = {"Succeeded", "Interrupted by output function", "Device error or wrong termination of input stream", "Insufficient memory pool for the image", "Insufficient stream input buffer", "Parameter error", "Data format error", "Right format but not supported", "Not supported JPEG standard"}; #endif typedef struct { uint16_t x; uint16_t y; uint16_t maxWidth; uint16_t maxHeight; uint16_t offX; uint16_t offY; jpeg_div_t scale; const void *src; size_t len; size_t index; M5DisplayExt *tft; uint16_t outWidth; uint16_t outHeight; } jpg_file_decoder_t; static uint32_t jpgReadFile(JDEC *decoder, uint8_t *buf, uint32_t len) { jpg_file_decoder_t *jpeg = (jpg_file_decoder_t *)decoder->device; File *file = (File *)jpeg->src; if (buf) { return file->read(buf, len); } else { file->seek(len, SeekCur); } return len; } static uint32_t jpgRead(JDEC *decoder, uint8_t *buf, uint32_t len) { jpg_file_decoder_t *jpeg = (jpg_file_decoder_t *)decoder->device; if (buf) { memcpy(buf, (const uint8_t *)jpeg->src + jpeg->index, len); } jpeg->index += len; return len; } static uint32_t jpgWrite(JDEC *decoder, void *bitmap, JRECT *rect) { jpg_file_decoder_t *jpeg = (jpg_file_decoder_t *)decoder->device; uint16_t x = rect->left; uint16_t y = rect->top; uint16_t w = rect->right + 1 - x; uint16_t h = rect->bottom + 1 - y; uint16_t oL = 0, oR = 0; uint8_t *data = (uint8_t *)bitmap; if (rect->right < jpeg->offX) { return 1; } if (rect->left >= (jpeg->offX + jpeg->outWidth)) { return 1; } if (rect->bottom < jpeg->offY) { return 1; } if (rect->top >= (jpeg->offY + jpeg->outHeight)) { return 1; } if (rect->top < jpeg->offY) { uint16_t linesToSkip = jpeg->offY - rect->top; data += linesToSkip * w * 3; h -= linesToSkip; y += linesToSkip; } if (rect->bottom >= (jpeg->offY + jpeg->outHeight)) { uint16_t linesToSkip = (rect->bottom + 1) - (jpeg->offY + jpeg->outHeight); h -= linesToSkip; } if (rect->left < jpeg->offX) { oL = jpeg->offX - rect->left; } if (rect->right >= (jpeg->offX + jpeg->outWidth)) { oR = (rect->right + 1) - (jpeg->offX + jpeg->outWidth); } uint16_t pixBuf[32]; uint8_t pixIndex = 0; uint16_t line; jpeg->tft->startWrite(); // jpeg->tft->setAddrWindow(x - jpeg->offX + jpeg->x + oL, y - jpeg->offY + // jpeg->y, w - (oL + oR), h); jpeg->tft->setWindow(x - jpeg->offX + jpeg->x + oL, y - jpeg->offY + jpeg->y, x - jpeg->offX + jpeg->x + oL + w - (oL + oR) - 1, y - jpeg->offY + jpeg->y + h - 1); while (h--) { data += 3 * oL; line = w - (oL + oR); while (line--) { pixBuf[pixIndex++] = jpgColor(data); data += 3; if (pixIndex == 32) { jpeg->tft->writePixels(pixBuf, 32); // SPI.writePixels((uint8_t *)pixBuf, 64); pixIndex = 0; } } data += 3 * oR; } if (pixIndex) { jpeg->tft->writePixels(pixBuf, pixIndex); // SPI.writePixels((uint8_t *)pixBuf, pixIndex * 2); } jpeg->tft->endWrite(); return 1; } static bool jpgDecode(jpg_file_decoder_t *jpeg, uint32_t (*reader)(JDEC *, uint8_t *, uint32_t)) { static uint8_t work[3100]; JDEC decoder; JRESULT jres = jd_prepare(&decoder, reader, work, 3100, jpeg); if (jres != JDR_OK) { log_e("jd_prepare failed! %s", jd_errors[jres]); return false; } uint16_t jpgWidth = decoder.width / (1 << (uint8_t)(jpeg->scale)); uint16_t jpgHeight = decoder.height / (1 << (uint8_t)(jpeg->scale)); if (jpeg->offX >= jpgWidth || jpeg->offY >= jpgHeight) { log_e("Offset Outside of JPEG size"); return false; } size_t jpgMaxWidth = jpgWidth - jpeg->offX; size_t jpgMaxHeight = jpgHeight - jpeg->offY; jpeg->outWidth = (jpgMaxWidth > jpeg->maxWidth) ? jpeg->maxWidth : jpgMaxWidth; jpeg->outHeight = (jpgMaxHeight > jpeg->maxHeight) ? jpeg->maxHeight : jpgMaxHeight; jres = jd_decomp(&decoder, jpgWrite, (uint8_t)jpeg->scale); if (jres != JDR_OK) { log_e("jd_decomp failed! %s", jd_errors[jres]); return false; } return true; } void M5DisplayExt::drawJpgFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y, uint16_t maxWidth, uint16_t maxHeight, uint16_t offX, uint16_t offY, jpeg_div_t scale) { need_boost(); if ((x + maxWidth) > width() || (y + maxHeight) > height()) { log_e("Bad dimensions given"); return; } File file = fs.open(path); if (!file) { log_e("Failed to open file for reading"); return; } jpg_file_decoder_t jpeg; if (!maxWidth) { maxWidth = width() - x; } if (!maxHeight) { maxHeight = height() - y; } jpeg.src = &file; jpeg.len = file.size(); jpeg.index = 0; jpeg.x = x; jpeg.y = y; jpeg.maxWidth = maxWidth; jpeg.maxHeight = maxHeight; jpeg.offX = offX; jpeg.offY = offY; jpeg.scale = scale; jpeg.tft = this; jpgDecode(&jpeg, jpgReadFile); file.close(); } #endif /* * PNG */ #include "utility/pngle.h" typedef struct _png_draw_params { uint16_t x; uint16_t y; uint16_t maxWidth; uint16_t maxHeight; uint16_t offX; uint16_t offY; double scale; uint8_t alphaThreshold; TFT_eSPI *tft; } png_file_decoder_t; static void pngle_draw_callback(pngle_t *pngle, uint32_t x, uint32_t y, uint32_t w, uint32_t h, uint8_t rgba[4]) { png_file_decoder_t *p = (png_file_decoder_t *)pngle_get_user_data(pngle); uint16_t color = jpgColor(rgba); // XXX: It's PNG ;) if (x < p->offX || y < p->offY) return ; x -= p->offX; y -= p->offY; // An interlaced file with alpha channel causes disaster, so use 1 here for simplicity w = 1; h = 1; if (p->scale != 1.0) { x = (uint32_t)ceil(x * p->scale); y = (uint32_t)ceil(y * p->scale); w = (uint32_t)ceil(w * p->scale); h = (uint32_t)ceil(h * p->scale); } if (x >= p->maxWidth || y >= p->maxHeight) return ; if (x + w >= p->maxWidth) w = p->maxWidth - x; if (y + h >= p->maxHeight) h = p->maxHeight - y; x += p->x; y += p->y; if (rgba[3] >= p->alphaThreshold) { p->tft->fillRect(x, y, w, h, color); } } void M5DisplayExt::drawPngFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y, uint16_t maxWidth, uint16_t maxHeight, uint16_t offX, uint16_t offY, double scale, uint8_t alphaThreshold) { drawPngFileSprite(this, fs, path, x, y, maxWidth, maxHeight, offX, offY, scale, alphaThreshold); } void M5DisplayExt::drawPngFileSprite(TFT_eSPI* sprite, fs::FS &fs, const char *path, uint16_t x, uint16_t y, uint16_t maxWidth, uint16_t maxHeight, uint16_t offX, uint16_t offY, double scale, uint8_t alphaThreshold) { need_boost(); File file = fs.open(path); if (!file) { log_e("Failed to open file for reading"); return ; } pngle_t *pngle = pngle_new(); png_file_decoder_t png; if (!maxWidth) { maxWidth = width() - x; } if (!maxHeight) { maxHeight = height() - y; } png.x = x; png.y = y; png.maxWidth = maxWidth; png.maxHeight = maxHeight; png.offX = offX; png.offY = offY; png.scale = scale; png.alphaThreshold = alphaThreshold; png.tft = sprite; pngle_set_user_data(pngle, &png); pngle_set_draw_callback(pngle, pngle_draw_callback); // Feed data to pngle uint8_t buf[1024]; int remain = 0; int len; while ((len = file.read(buf + remain, sizeof(buf) - remain)) > 0) { int fed = pngle_feed(pngle, buf, remain + len); if (fed < 0) { log_e("[pngle error] %s", pngle_error(pngle)); break; } remain = remain + len - fed; if (remain > 0) memmove(buf, buf + fed, remain); } pngle_destroy(pngle); file.close(); } M5DisplayExt M5Lcd; ================================================ FILE: arduino_workspace/libraries/M5DisplayExt/M5DisplayExt.h ================================================ #ifndef _M5DISPLAYEXT_H_ #define _M5DISPLAYEXT_H_ #include #include #include #include #include class M5DisplayExt : public M5Display { public: #ifdef ENABLE_BUILD_BMP void drawBmpFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y); void drawBmpFileSprite(TFT_eSPI* sprite, fs::FS &fs, const char *path, uint16_t x, uint16_t y); #endif #ifdef ENABLE_BUILD_JPG void drawJpgFile(fs::FS &fs, const char *path, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, jpeg_div_t scale = JPEG_DIV_NONE); //void drawJpgFileSprite(TFT_eSPI* sprite, fs::FS &fs, const char *path, uint16_t x = 0, uint16_t y = 0, // uint16_t maxWidth = 0, uint16_t maxHeight = 0, // uint16_t offX = 0, uint16_t offY = 0, // jpeg_div_t scale = JPEG_DIV_NONE); #endif void drawPngFile(fs::FS &fs, const char *path, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, double scale = 1.0, uint8_t alphaThreshold = 127); void drawPngFileSprite(TFT_eSPI* sprite, fs::FS &fs, const char *path, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, double scale = 1.0, uint8_t alphaThreshold = 127); inline void writePixel(uint16_t color) { SPI.write16(color); } inline void writePixels(uint16_t * colors, uint32_t len) { SPI.writePixels((uint8_t*)colors , len * 2); } void (*cb_needboost)(void) = NULL; private: void need_boost(void) { if (cb_needboost != NULL) { cb_needboost(); } }; }; extern M5DisplayExt M5Lcd; #endif ================================================ FILE: arduino_workspace/libraries/M5DisplayExt/SpriteMgr.cpp ================================================ #include "SpriteMgr.h" #include #include static uint16_t fletcher16_str(const uint8_t* data); SpriteMgr::SpriteMgr(M5DisplayExt* tft) { this->tft = tft; this->head_node = NULL; this->holder_flag = 0; } bool SpriteMgr::load(const char* fp, int16_t width, int16_t height) { need_boost(); if (get(fp) != NULL) { return true; } #ifdef SPMGR_DEBUG_MEMORY if (this->head_node == NULL) { Serial.printf("SpMgr free heap before head %u\r\n", ESP.getFreeHeap()); } #endif sprmgr_item_t* node = (sprmgr_item_t*)malloc(sizeof(sprmgr_item_t)); if (node == NULL) { Serial.printf("SpMgr malloc null\r\n"); return false; } TFT_eSprite* sprite = new TFT_eSprite(this->tft); if (sprite == NULL) { Serial.printf("SpMgr sprite null\r\n"); free(node); return false; } if (this->head_node == NULL) { // first ever sprite this->head_node = node; node->prev_node = NULL; } else { // add to end of list sprmgr_item_t* last_node = last(); last_node->next_node = (void*)node; node->prev_node = (void*)last_node; } sprite->createSprite(width, height); this->tft->drawPngFileSprite(sprite, SPIFFS, fp, 0, 0); node->sprite = sprite; node->uid = fletcher16_str((const uint8_t*)fp); node->next_node = NULL; //Serial.printf("SpMgr free heap after %u\r\n", ESP.getFreeHeap()); return true; } void SpriteMgr::draw(const char* fp, int16_t x, int16_t y, int16_t width, int16_t height) { need_boost(); TFT_eSprite* sprite = get(fp); if (sprite == NULL) { // does not exist, create new if possible if (width > 0 && height > 0) { if (load(fp, width, height)) { sprite = get(fp); if (sprite == NULL) { return; } } else { // failed, maybe ran out of memory, so draw directly this->tft->drawPngFile(SPIFFS, fp, x, y); } } else { return; } } // draw to screen sprite->pushSprite(x, y); } TFT_eSprite* SpriteMgr::get(const char* fp) { uint16_t uid = fletcher16_str((const uint8_t*)fp); sprmgr_item_t* cur_node = this->head_node; while (cur_node != NULL) { if (cur_node->uid == uid) { return cur_node->sprite; } cur_node = (sprmgr_item_t*)(cur_node->next_node); } return NULL; } sprmgr_item_t* SpriteMgr::last(void) { if (this->head_node == NULL) { return NULL; } sprmgr_item_t* cur_node = this->head_node; sprmgr_item_t* next_node; while (true) { // iterate through all nodes, loop until the current node has no more next node next_node = (sprmgr_item_t*)(cur_node->next_node); if (next_node == NULL) { return cur_node; } cur_node = next_node; } return NULL; } void SpriteMgr::unload_all(void) { need_boost(); sprmgr_item_t* node = last(); sprmgr_item_t* prev_node; while (node != NULL) { TFT_eSprite* s = node->sprite; if (s != NULL) { s->deleteSprite(); delete s; } prev_node = (sprmgr_item_t*)(node->prev_node); free(node); node = prev_node; } this->head_node = NULL; #ifdef SPMGR_DEBUG_MEMORY Serial.printf("SpMgr free heap after unload %u\r\n", ESP.getFreeHeap()); #endif } static uint16_t fletcher16_str(const uint8_t* data) { // https://en.wikipedia.org/wiki/Fletcher%27s_checksum uint16_t sum1 = 0; uint16_t sum2 = 0; int index; for ( index = 0; ; ++index ) { uint8_t x = data[index]; if (x == 0) { // string is null terminated break; } sum1 = (sum1 + x ) % 255; sum2 = (sum2 + sum1) % 255; } return (sum2 << 8) | sum1; } ================================================ FILE: arduino_workspace/libraries/M5DisplayExt/SpriteMgr.h ================================================ #ifndef _SPRITEMGR_H_ #define _SPRITEMGR_H_ #include #include #include #include #include "M5DisplayExt.h" #include "M5Display.h" // this includes "Sprite.h" for us typedef struct { uint16_t uid; TFT_eSprite* sprite; void* next_node; void* prev_node; } sprmgr_item_t; class SpriteMgr { public: SpriteMgr(M5DisplayExt* tft); bool load(const char* fp, int16_t width, int16_t height); void draw(const char* fp, int16_t x, int16_t y, int16_t width = 0, int16_t height = 0); TFT_eSprite* get(const char* fp); void unload_all(void); uint8_t holder_flag; void (*cb_needboost)(void) = NULL; private: M5DisplayExt* tft; sprmgr_item_t* head_node; sprmgr_item_t* last(void); void need_boost(void) { if (cb_needboost != NULL) { cb_needboost(); } }; }; #endif ================================================ FILE: arduino_workspace/libraries/M5DisplayExt/utility/pngle.c ================================================ /*- * MIT License * * Copyright (c) 2019 kikuchan * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #include #include #include #include #include #include #include "pngle.h" #ifndef MIN #define MIN(a, b) ((a) < (b) ? (a) : (b)) #endif #ifdef PNGLE_DEBUG #define debug_printf(...) fprintf(stderr, __VA_ARGS__) #else #define debug_printf(...) ((void)0) #endif #define PNGLE_ERROR(s) (pngle->error = (s), pngle->state = PNGLE_STATE_ERROR, -1) #define PNGLE_CALLOC(a, b, name) (debug_printf("[pngle] Allocating %zu bytes for %s\n", (size_t)(a) * (size_t)(b), (name)), calloc((size_t)(a), (size_t)(b))) #define PNGLE_UNUSED(x) (void)(x) typedef enum { PNGLE_STATE_ERROR = -2, PNGLE_STATE_EOF = -1, PNGLE_STATE_INITIAL = 0, PNGLE_STATE_FIND_CHUNK_HEADER, PNGLE_STATE_HANDLE_CHUNK, PNGLE_STATE_CRC, } pngle_state_t; typedef enum { // Supported chunks // Filter chunk names by following command to (re)generate hex constants; // % perl -ne 'chomp; s/.*\s*\/\/\s*//; print "\tPNGLE_CHUNK_$_ = 0x" . unpack("H*") . "UL, // $_\n";' PNGLE_CHUNK_IHDR = 0x49484452UL, // IHDR PNGLE_CHUNK_PLTE = 0x504c5445UL, // PLTE PNGLE_CHUNK_IDAT = 0x49444154UL, // IDAT PNGLE_CHUNK_IEND = 0x49454e44UL, // IEND PNGLE_CHUNK_tRNS = 0x74524e53UL, // tRNS PNGLE_CHUNK_gAMA = 0x67414d41UL, // gAMA } pngle_chunk_t; // typedef struct _pngle_t pngle_t; // declared in pngle.h struct _pngle_t { pngle_ihdr_t hdr; uint_fast8_t channels; // 0 indicates IHDR hasn't been processed yet // PLTE chunk size_t n_palettes; uint8_t *palette; // tRNS chunk size_t n_trans_palettes; uint8_t *trans_palette; // parser state (reset on every chunk header) pngle_state_t state; uint32_t chunk_type; uint32_t chunk_remain; mz_ulong crc32; // decompression state (reset on IHDR) tinfl_decompressor inflator; // 11000 bytes uint8_t lz_buf[TINFL_LZ_DICT_SIZE]; // 32768 bytes uint8_t *next_out; // NULL indicates IDAT hasn't been processed yet size_t avail_out; // scanline decoder (reset on every set_interlace_pass() call) uint8_t *scanline_ringbuf; size_t scanline_ringbuf_size; size_t scanline_ringbuf_cidx; int_fast8_t scanline_remain_bytes_to_render; int_fast8_t filter_type; uint32_t drawing_x; uint32_t drawing_y; // interlace uint_fast8_t interlace_pass; const char *error; #ifndef PNGLE_NO_GAMMA_CORRECTION uint8_t *gamma_table; double display_gamma; #endif pngle_init_callback_t init_callback; pngle_draw_callback_t draw_callback; pngle_done_callback_t done_callback; void *user_data; }; // magic static const uint8_t png_sig[] = { 137, 80, 78, 71, 13, 10, 26, 10 }; static uint32_t interlace_off_x[8] = { 0, 0, 4, 0, 2, 0, 1, 0 }; static uint32_t interlace_off_y[8] = { 0, 0, 0, 4, 0, 2, 0, 1 }; static uint32_t interlace_div_x[8] = { 1, 8, 8, 4, 4, 2, 2, 1 }; static uint32_t interlace_div_y[8] = { 1, 8, 8, 8, 4, 4, 2, 2 }; static inline uint8_t read_uint8(const uint8_t *p) { return *p; } static inline uint32_t read_uint32(const uint8_t *p) { return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0) ; } static inline uint32_t U32_CLAMP_ADD(uint32_t a, uint32_t b, uint32_t top) { uint32_t v = a + b; if (v < a) return top; // uint32 overflow if (v > top) return top; // clamp return v; } void pngle_reset(pngle_t *pngle) { if (!pngle) return ; pngle->state = PNGLE_STATE_INITIAL; pngle->error = "No error"; if (pngle->scanline_ringbuf) free(pngle->scanline_ringbuf); if (pngle->palette) free(pngle->palette); if (pngle->trans_palette) free(pngle->trans_palette); #ifndef PNGLE_NO_GAMMA_CORRECTION if (pngle->gamma_table) free(pngle->gamma_table); #endif pngle->scanline_ringbuf = NULL; pngle->palette = NULL; pngle->trans_palette = NULL; #ifndef PNGLE_NO_GAMMA_CORRECTION pngle->gamma_table = NULL; #endif pngle->channels = 0; // indicates IHDR hasn't been processed yet pngle->next_out = NULL; // indicates IDAT hasn't been processed yet // clear them just in case... memset(&pngle->hdr, 0, sizeof(pngle->hdr)); pngle->n_palettes = 0; pngle->n_trans_palettes = 0; tinfl_init(&pngle->inflator); } pngle_t *pngle_new() { pngle_t *pngle = (pngle_t *)PNGLE_CALLOC(1, sizeof(pngle_t), "pngle_t"); if (!pngle) return NULL; pngle_reset(pngle); return pngle; } void pngle_destroy(pngle_t *pngle) { if (pngle) { pngle_reset(pngle); free(pngle); } } const char *pngle_error(pngle_t *pngle) { if (!pngle) return "Uninitialized"; return pngle->error; } uint32_t pngle_get_width(pngle_t *pngle) { if (!pngle) return 0; return pngle->hdr.width; } uint32_t pngle_get_height(pngle_t *pngle) { if (!pngle) return 0; return pngle->hdr.height; } pngle_ihdr_t *pngle_get_ihdr(pngle_t *pngle) { if (!pngle) return NULL; if (pngle->channels == 0) return NULL; return &pngle->hdr; } static int is_trans_color(pngle_t *pngle, uint16_t *value, size_t n) { if (pngle->n_trans_palettes != 1) return 0; // false (none or indexed) for (size_t i = 0; i < n; i++) { if (value[i] != (pngle->trans_palette[i * 2 + 0] * 0x100 + pngle->trans_palette[i * 2 + 1])) return 0; // false } return 1; // true } static inline void scanline_ringbuf_push(pngle_t *pngle, uint8_t value) { pngle->scanline_ringbuf[pngle->scanline_ringbuf_cidx] = value; pngle->scanline_ringbuf_cidx = (pngle->scanline_ringbuf_cidx + 1) % pngle->scanline_ringbuf_size; } static inline uint16_t get_value(pngle_t *pngle, size_t *ridx, int *bitcount, int depth) { uint16_t v; switch (depth) { case 1: case 2: case 4: if (*bitcount >= 8) { *bitcount = 0; *ridx = (*ridx + 1) % pngle->scanline_ringbuf_size; } *bitcount += depth; uint8_t mask = ((1UL << depth) - 1); uint8_t shift = (8 - *bitcount); return (pngle->scanline_ringbuf[*ridx] >> shift) & mask; case 8: v = pngle->scanline_ringbuf[*ridx]; *ridx = (*ridx + 1) % pngle->scanline_ringbuf_size; return v; case 16: v = pngle->scanline_ringbuf[*ridx]; *ridx = (*ridx + 1) % pngle->scanline_ringbuf_size; v = v * 0x100 + pngle->scanline_ringbuf[*ridx]; *ridx = (*ridx + 1) % pngle->scanline_ringbuf_size; return v; } return 0; } static int pngle_draw_pixels(pngle_t *pngle, size_t scanline_ringbuf_xidx) { uint16_t v[4]; // MAX_CHANNELS int bitcount = 0; uint8_t pixel_depth = (pngle->hdr.color_type & 1) ? 8 : pngle->hdr.depth; uint16_t maxval = (1UL << pixel_depth) - 1; int n_pixels = pngle->hdr.depth == 16 ? 1 : (8 / pngle->hdr.depth); for (; n_pixels-- > 0 && pngle->drawing_x < pngle->hdr.width; pngle->drawing_x = U32_CLAMP_ADD(pngle->drawing_x, interlace_div_x[pngle->interlace_pass], pngle->hdr.width)) { for (uint_fast8_t c = 0; c < pngle->channels; c++) { v[c] = get_value(pngle, &scanline_ringbuf_xidx, &bitcount, pngle->hdr.depth); } // color type: 0000 0111 // ^-- indexed color (palette) // ^--- Color // ^---- Alpha channel if (pngle->hdr.color_type & 2) { // color if (pngle->hdr.color_type & 1) { // indexed color: type 3 // lookup palette info uint16_t pidx = v[0]; if (pidx >= pngle->n_palettes) return PNGLE_ERROR("Color index is out of range"); v[0] = pngle->palette[pidx * 3 + 0]; v[1] = pngle->palette[pidx * 3 + 1]; v[2] = pngle->palette[pidx * 3 + 2]; // tRNS as an indexed alpha value table (for color type 3) v[3] = pidx < pngle->n_trans_palettes ? pngle->trans_palette[pidx] : maxval; } else { // true color: 2, and 6 v[3] = (pngle->hdr.color_type & 4) ? v[3] : is_trans_color(pngle, v, 3) ? 0 : maxval; } } else { // alpha, tRNS, or opaque v[3] = (pngle->hdr.color_type & 4) ? v[1] : is_trans_color(pngle, v, 1) ? 0 : maxval; // monochrome v[1] = v[2] = v[0]; } if (pngle->draw_callback) { uint8_t rgba[4] = { (v[0] * 255 + maxval / 2) / maxval, (v[1] * 255 + maxval / 2) / maxval, (v[2] * 255 + maxval / 2) / maxval, (v[3] * 255 + maxval / 2) / maxval }; #ifndef PNGLE_NO_GAMMA_CORRECTION if (pngle->gamma_table) { for (int i = 0; i < 3; i++) { rgba[i] = pngle->gamma_table[v[i]]; } } #endif pngle->draw_callback(pngle, pngle->drawing_x, pngle->drawing_y , MIN(interlace_div_x[pngle->interlace_pass] - interlace_off_x[pngle->interlace_pass], pngle->hdr.width - pngle->drawing_x) , MIN(interlace_div_y[pngle->interlace_pass] - interlace_off_y[pngle->interlace_pass], pngle->hdr.height - pngle->drawing_y) , rgba ); } } return 0; } static inline int paeth(int a, int b, int c) { int p = a + b - c; int pa = abs(p - a); int pb = abs(p - b); int pc = abs(p - c); if (pa <= pb && pa <= pc) return a; if (pb <= pc) return b; return c; } static int set_interlace_pass(pngle_t *pngle, uint_fast8_t pass) { pngle->interlace_pass = pass; uint_fast8_t bytes_per_pixel = (pngle->channels * pngle->hdr.depth + 7) / 8; // 1 if depth <= 8 size_t scanline_pixels = (pngle->hdr.width - interlace_off_x[pngle->interlace_pass] + interlace_div_x[pngle->interlace_pass] - 1) / interlace_div_x[pngle->interlace_pass]; size_t scanline_stride = (scanline_pixels * pngle->channels * pngle->hdr.depth + 7) / 8; pngle->scanline_ringbuf_size = scanline_stride + bytes_per_pixel * 2; // 2 rooms for c/x and a if (pngle->scanline_ringbuf) free(pngle->scanline_ringbuf); if ((pngle->scanline_ringbuf = PNGLE_CALLOC(pngle->scanline_ringbuf_size, 1, "scanline ringbuf")) == NULL) return PNGLE_ERROR("Insufficient memory"); pngle->drawing_x = interlace_off_x[pngle->interlace_pass]; pngle->drawing_y = interlace_off_y[pngle->interlace_pass]; pngle->filter_type = -1; pngle->scanline_ringbuf_cidx = 0; pngle->scanline_remain_bytes_to_render = -1; return 0; } static int setup_gamma_table(pngle_t *pngle, uint32_t png_gamma) { #ifndef PNGLE_NO_GAMMA_CORRECTION if (pngle->gamma_table) free(pngle->gamma_table); if (pngle->display_gamma <= 0) return 0; // disable gamma correction if (png_gamma == 0) return 0; uint8_t pixel_depth = (pngle->hdr.color_type & 1) ? 8 : pngle->hdr.depth; uint16_t maxval = (1UL << pixel_depth) - 1; pngle->gamma_table = PNGLE_CALLOC(1, maxval + 1, "gamma table"); if (!pngle->gamma_table) return PNGLE_ERROR("Insufficient memory"); for (int i = 0; i < maxval + 1; i++) { pngle->gamma_table[i] = (uint8_t)floor(pow(i / (double)maxval, 100000.0 / png_gamma / pngle->display_gamma) * 255.0 + 0.5); } debug_printf("[pngle] gamma value = %d\n", png_gamma); #else PNGLE_UNUSED(pngle); PNGLE_UNUSED(png_gamma); #endif return 0; } static int pngle_on_data(pngle_t *pngle, const uint8_t *p, int len) { const uint8_t *ep = p + len; uint_fast8_t bytes_per_pixel = (pngle->channels * pngle->hdr.depth + 7) / 8; // 1 if depth <= 8 while (p < ep) { if (pngle->drawing_x >= pngle->hdr.width) { // New row pngle->drawing_x = interlace_off_x[pngle->interlace_pass]; pngle->drawing_y = U32_CLAMP_ADD(pngle->drawing_y, interlace_div_y[pngle->interlace_pass], pngle->hdr.height); pngle->filter_type = -1; // Indicate new line } if (pngle->drawing_x >= pngle->hdr.width || pngle->drawing_y >= pngle->hdr.height) { if (pngle->interlace_pass == 0 || pngle->interlace_pass >= 7) return len; // Do nothing further // Interlace: Next pass if (set_interlace_pass(pngle, pngle->interlace_pass + 1) < 0) return -1; debug_printf("[pngle] interlace pass changed to: %d\n", pngle->interlace_pass); continue; // This is required because "No filter type bytes are present in an empty pass". } if (pngle->filter_type < 0) { if (*p > 4) { debug_printf("[pngle] Invalid filter type is found; 0x%02x\n", *p); return PNGLE_ERROR("Invalid filter type is found"); } pngle->filter_type = (int_fast8_t)*p++; // 0 - 4 // push sentinel bytes for new line for (uint_fast8_t i = 0; i < bytes_per_pixel; i++) { scanline_ringbuf_push(pngle, 0); } continue; } size_t cidx = pngle->scanline_ringbuf_cidx; size_t bidx = (pngle->scanline_ringbuf_cidx + bytes_per_pixel) % pngle->scanline_ringbuf_size; size_t aidx = (pngle->scanline_ringbuf_cidx + pngle->scanline_ringbuf_size - bytes_per_pixel) % pngle->scanline_ringbuf_size; // debug_printf("[pngle] cidx = %zd, bidx = %zd, aidx = %zd\n", cidx, bidx, aidx); uint8_t c = pngle->scanline_ringbuf[cidx]; // left-up uint8_t b = pngle->scanline_ringbuf[bidx]; // up uint8_t a = pngle->scanline_ringbuf[aidx]; // left uint8_t x = *p++; // target // debug_printf("[pngle] c = 0x%02x, b = 0x%02x, a = 0x%02x, x = 0x%02x\n", c, b, a, x); // Reverse the filter switch (pngle->filter_type) { case 0: break; // None case 1: x += a; break; // Sub case 2: x += b; break; // Up case 3: x += (a + b) / 2; break; // Average case 4: x += paeth(a, b, c); break; // Paeth } scanline_ringbuf_push(pngle, x); // updates scanline_ringbuf_cidx if (pngle->scanline_remain_bytes_to_render < 0) pngle->scanline_remain_bytes_to_render = bytes_per_pixel; if (--pngle->scanline_remain_bytes_to_render == 0) { size_t xidx = (pngle->scanline_ringbuf_cidx + pngle->scanline_ringbuf_size - bytes_per_pixel) % pngle->scanline_ringbuf_size; if (pngle_draw_pixels(pngle, xidx) < 0) return -1; pngle->scanline_remain_bytes_to_render = -1; // reset } } return len; } static int pngle_handle_chunk(pngle_t *pngle, const uint8_t *buf, size_t len) { size_t consume = 0; switch (pngle->chunk_type) { case PNGLE_CHUNK_IHDR: // parse IHDR consume = 13; if (len < consume) return 0; debug_printf("[pngle] Parse IHDR\n"); pngle->hdr.width = read_uint32(buf + 0); pngle->hdr.height = read_uint32(buf + 4); pngle->hdr.depth = read_uint8 (buf + 8); pngle->hdr.color_type = read_uint8 (buf + 9); pngle->hdr.compression = read_uint8 (buf + 10); pngle->hdr.filter = read_uint8 (buf + 11); pngle->hdr.interlace = read_uint8 (buf + 12); debug_printf("[pngle] width : %d\n", pngle->hdr.width ); debug_printf("[pngle] height : %d\n", pngle->hdr.height ); debug_printf("[pngle] depth : %d\n", pngle->hdr.depth ); debug_printf("[pngle] color_type : %d\n", pngle->hdr.color_type ); debug_printf("[pngle] compression: %d\n", pngle->hdr.compression); debug_printf("[pngle] filter : %d\n", pngle->hdr.filter ); debug_printf("[pngle] interlace : %d\n", pngle->hdr.interlace ); /* Color Allowed Interpretation channels Type Bit Depths 0 1,2,4,8,16 Each pixel is a grayscale sample. 1 channels (Brightness) 2 8,16 Each pixel is an R,G,B triple. 3 channels (R, G, B) 3 1,2,4,8 Each pixel is a palette index; 1 channels (palette info) a PLTE chunk must appear. 4 8,16 Each pixel is a grayscale sample, 2 channels (Brightness, Alpha) followed by an alpha sample. 6 8,16 Each pixel is an R,G,B triple, 4 channels (R, G, B, Alpha) followed by an alpha sample. */ // 111 // ^-- indexed color (palette) // ^--- Color // ^---- Alpha channel switch (pngle->hdr.color_type) { case 0: pngle->channels = 1; if (pngle->hdr.depth != 1 && pngle->hdr.depth != 2 && pngle->hdr.depth != 4 && pngle->hdr.depth != 8 && pngle->hdr.depth != 16) return PNGLE_ERROR("Invalid bit depth"); break; // grayscale case 2: pngle->channels = 3; if ( pngle->hdr.depth != 8 && pngle->hdr.depth != 16) return PNGLE_ERROR("Invalid bit depth"); break; // truecolor case 3: pngle->channels = 1; if (pngle->hdr.depth != 1 && pngle->hdr.depth != 2 && pngle->hdr.depth != 4 && pngle->hdr.depth != 8 ) return PNGLE_ERROR("Invalid bit depth"); break; // indexed color case 4: pngle->channels = 2; if ( pngle->hdr.depth != 8 && pngle->hdr.depth != 16) return PNGLE_ERROR("Invalid bit depth"); break; // grayscale + alpha case 6: pngle->channels = 4; if ( pngle->hdr.depth != 8 && pngle->hdr.depth != 16) return PNGLE_ERROR("Invalid bit depth"); break; // truecolor + alpha default: return PNGLE_ERROR("Incorrect IHDR info"); } if (pngle->hdr.compression != 0) return PNGLE_ERROR("Unsupported compression type in IHDR"); if (pngle->hdr.filter != 0) return PNGLE_ERROR("Unsupported filter type in IHDR"); // interlace if (set_interlace_pass(pngle, pngle->hdr.interlace ? 1 : 0) < 0) return -1; // callback if (pngle->init_callback) pngle->init_callback(pngle, pngle->hdr.width, pngle->hdr.height); break; case PNGLE_CHUNK_IDAT: // parse & decode IDAT chunk if (len < 1) return 0; debug_printf("[pngle] Reading IDAT (len %zd / chunk remain %u)\n", len, pngle->chunk_remain); size_t in_bytes = len; size_t out_bytes = pngle->avail_out; //debug_printf("[pngle] in_bytes %zd, out_bytes %zd, next_out %p\n", in_bytes, out_bytes, pngle->next_out); // XXX: tinfl_decompress always requires (next_out - lz_buf + avail_out) == TINFL_LZ_DICT_SIZE tinfl_status status = tinfl_decompress(&pngle->inflator, (const mz_uint8 *)buf, &in_bytes, pngle->lz_buf, (mz_uint8 *)pngle->next_out, &out_bytes, TINFL_FLAG_HAS_MORE_INPUT | TINFL_FLAG_PARSE_ZLIB_HEADER); //debug_printf("[pngle] tinfl_decompress\n"); //debug_printf("[pngle] => in_bytes %zd, out_bytes %zd, next_out %p, status %d\n", in_bytes, out_bytes, pngle->next_out, status); if (status < TINFL_STATUS_DONE) { // Decompression failed. debug_printf("[pngle] tinfl_decompress() failed with status %d!\n", status); return PNGLE_ERROR("Failed to decompress the IDAT stream"); } pngle->next_out += out_bytes; pngle->avail_out -= out_bytes; // debug_printf("[pngle] => avail_out %zd, next_out %p\n", pngle->avail_out, pngle->next_out); if (status == TINFL_STATUS_DONE || pngle->avail_out == 0) { // Output buffer is full, or decompression is done, so write buffer to output file. // XXX: This is the only chance to process the buffer. uint8_t *read_ptr = pngle->lz_buf; size_t n = TINFL_LZ_DICT_SIZE - (size_t)pngle->avail_out; // pngle_on_data() usually returns n, otherwise -1 on error if (pngle_on_data(pngle, read_ptr, n) < 0) return -1; // XXX: tinfl_decompress always requires (next_out - lz_buf + avail_out) == TINFL_LZ_DICT_SIZE pngle->next_out = pngle->lz_buf; pngle->avail_out = TINFL_LZ_DICT_SIZE; } consume = in_bytes; break; case PNGLE_CHUNK_PLTE: consume = 3; if (len < consume) return 0; memcpy(pngle->palette + pngle->n_palettes * 3, buf, 3); debug_printf("[pngle] PLTE[%zd]: (%d, %d, %d)\n" , pngle->n_palettes , pngle->palette[pngle->n_palettes * 3 + 0] , pngle->palette[pngle->n_palettes * 3 + 1] , pngle->palette[pngle->n_palettes * 3 + 2] ); pngle->n_palettes++; break; case PNGLE_CHUNK_IEND: consume = 0; break; case PNGLE_CHUNK_tRNS: switch (pngle->hdr.color_type) { case 3: consume = 1; break; case 0: consume = 2 * 1; break; case 2: consume = 2 * 3; break; default: return PNGLE_ERROR("tRNS chunk is prohibited on the color type"); } if (len < consume) return 0; memcpy(pngle->trans_palette + pngle->n_trans_palettes, buf, consume); pngle->n_trans_palettes++; break; case PNGLE_CHUNK_gAMA: consume = 4; if (len < consume) return 0; if (setup_gamma_table(pngle, read_uint32(buf)) < 0) return -1; break; default: // unknown chunk consume = len; debug_printf("[pngle] Unknown chunk; %zd bytes discarded\n", consume); break; } return consume; } static int pngle_feed_internal(pngle_t *pngle, const uint8_t *buf, size_t len) { if (!pngle) return -1; switch (pngle->state) { case PNGLE_STATE_ERROR: return -1; case PNGLE_STATE_EOF: return len; case PNGLE_STATE_INITIAL: // find PNG header if (len < sizeof(png_sig)) return 0; if (memcmp(png_sig, buf, sizeof(png_sig))) return PNGLE_ERROR("Incorrect PNG signature"); debug_printf("[pngle] PNG signature found\n"); pngle->state = PNGLE_STATE_FIND_CHUNK_HEADER; return sizeof(png_sig); case PNGLE_STATE_FIND_CHUNK_HEADER: if (len < 8) return 0; pngle->chunk_remain = read_uint32(buf); pngle->chunk_type = read_uint32(buf + 4); pngle->crc32 = mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)(buf + 4), 4); debug_printf("[pngle] Chunk '%.4s' len %u\n", buf + 4, pngle->chunk_remain); pngle->state = PNGLE_STATE_HANDLE_CHUNK; // initialize & sanity check switch (pngle->chunk_type) { case PNGLE_CHUNK_IHDR: if (pngle->chunk_remain != 13) return PNGLE_ERROR("Invalid IHDR chunk size"); if (pngle->channels != 0) return PNGLE_ERROR("Multiple IHDR chunks are not allowed"); break; case PNGLE_CHUNK_IDAT: if (pngle->chunk_remain <= 0) return PNGLE_ERROR("Invalid IDAT chunk size"); if (pngle->channels == 0) return PNGLE_ERROR("No IHDR chunk is found"); if (pngle->hdr.color_type == 3 && pngle->palette == NULL) return PNGLE_ERROR("No PLTE chunk is found"); if (pngle->next_out == NULL) { // Very first IDAT pngle->next_out = pngle->lz_buf; pngle->avail_out = TINFL_LZ_DICT_SIZE; } break; case PNGLE_CHUNK_PLTE: if (pngle->chunk_remain <= 0) return PNGLE_ERROR("Invalid PLTE chunk size"); if (pngle->channels == 0) return PNGLE_ERROR("No IHDR chunk is found"); if (pngle->palette) return PNGLE_ERROR("Too many PLTE chunk"); switch (pngle->hdr.color_type) { case 3: // indexed color break; case 2: // truecolor case 6: // truecolor + alpha // suggested palettes break; default: return PNGLE_ERROR("PLTE chunk is prohibited on the color type"); } if (pngle->chunk_remain % 3) return PNGLE_ERROR("Invalid PLTE chunk size"); if (pngle->chunk_remain / 3 > MIN(256, (1UL << pngle->hdr.depth))) return PNGLE_ERROR("Too many palettes in PLTE"); if ((pngle->palette = PNGLE_CALLOC(pngle->chunk_remain / 3, 3, "palette")) == NULL) return PNGLE_ERROR("Insufficient memory"); pngle->n_palettes = 0; break; case PNGLE_CHUNK_IEND: if (pngle->next_out == NULL) return PNGLE_ERROR("No IDAT chunk is found"); if (pngle->chunk_remain > 0) return PNGLE_ERROR("Invalid IEND chunk size"); break; case PNGLE_CHUNK_tRNS: if (pngle->chunk_remain <= 0) return PNGLE_ERROR("Invalid tRNS chunk size"); if (pngle->channels == 0) return PNGLE_ERROR("No IHDR chunk is found"); if (pngle->trans_palette) return PNGLE_ERROR("Too many tRNS chunk"); switch (pngle->hdr.color_type) { case 3: // indexed color if (pngle->chunk_remain > (1UL << pngle->hdr.depth)) return PNGLE_ERROR("Too many palettes in tRNS"); break; case 0: // grayscale if (pngle->chunk_remain != 2) return PNGLE_ERROR("Invalid tRNS chunk size"); break; case 2: // truecolor if (pngle->chunk_remain != 6) return PNGLE_ERROR("Invalid tRNS chunk size"); break; default: return PNGLE_ERROR("tRNS chunk is prohibited on the color type"); } if ((pngle->trans_palette = PNGLE_CALLOC(pngle->chunk_remain, 1, "trans palette")) == NULL) return PNGLE_ERROR("Insufficient memory"); pngle->n_trans_palettes = 0; break; default: break; } return 8; case PNGLE_STATE_HANDLE_CHUNK: len = MIN(len, pngle->chunk_remain); int consumed = pngle_handle_chunk(pngle, buf, len); if (consumed > 0) { if (pngle->chunk_remain < (uint32_t)consumed) return PNGLE_ERROR("Chunk data has been consumed too much"); pngle->chunk_remain -= consumed; pngle->crc32 = mz_crc32(pngle->crc32, (const mz_uint8 *)buf, consumed); } if (pngle->chunk_remain <= 0) pngle->state = PNGLE_STATE_CRC; return consumed; case PNGLE_STATE_CRC: if (len < 4) return 0; uint32_t crc32 = read_uint32(buf); if (crc32 != pngle->crc32) { debug_printf("[pngle] CRC: %08x vs %08x => NG\n", crc32, (uint32_t)pngle->crc32); return PNGLE_ERROR("CRC mismatch"); } debug_printf("[pngle] CRC: %08x vs %08x => OK\n", crc32, (uint32_t)pngle->crc32); pngle->state = PNGLE_STATE_FIND_CHUNK_HEADER; // XXX: if (pngle->chunk_type == PNGLE_CHUNK_IEND) { pngle->state = PNGLE_STATE_EOF; if (pngle->done_callback) pngle->done_callback(pngle); debug_printf("[pngle] DONE\n"); } return 4; default: break; } return PNGLE_ERROR("Invalid state"); } int pngle_feed(pngle_t *pngle, const void *buf, size_t len) { if (pngle == NULL || buf == NULL) return -1; size_t pos = 0; pngle_state_t last_state = pngle->state; while (pos < len) { int r = pngle_feed_internal(pngle, (const uint8_t *)buf + pos, len - pos); if (r < 0) return r; // error if (r == 0 && last_state == pngle->state) break; last_state = pngle->state; pos += r; } return pos; } void pngle_set_display_gamma(pngle_t *pngle, double display_gamma) { if (!pngle) return ; #ifndef PNGLE_NO_GAMMA_CORRECTION pngle->display_gamma = display_gamma; #else PNGLE_UNUSED(display_gamma); #endif } void pngle_set_init_callback(pngle_t *pngle, pngle_init_callback_t callback) { if (!pngle) return ; pngle->init_callback = callback; } void pngle_set_draw_callback(pngle_t *pngle, pngle_draw_callback_t callback) { if (!pngle) return ; pngle->draw_callback = callback; } void pngle_set_done_callback(pngle_t *pngle, pngle_done_callback_t callback) { if (!pngle) return ; pngle->done_callback = callback; } void pngle_set_user_data(pngle_t *pngle, void *user_data) { if (!pngle) return ; pngle->user_data = user_data; } void *pngle_get_user_data(pngle_t *pngle) { if (!pngle) return NULL; return pngle->user_data; } /* vim: set ts=4 sw=4 noexpandtab: */ ================================================ FILE: arduino_workspace/libraries/M5DisplayExt/utility/pngle.h ================================================ /*- * MIT License * * Copyright (c) 2019 kikuchan * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #ifndef __PNGLE_H__ #define __PNGLE_H__ #include #ifdef __cplusplus extern "C" { #endif // Main Pngle object typedef struct _pngle_t pngle_t; // Callback signatures typedef void (*pngle_init_callback_t)(pngle_t *pngle, uint32_t w, uint32_t h); typedef void (*pngle_draw_callback_t)(pngle_t *pngle, uint32_t x, uint32_t y, uint32_t w, uint32_t h, uint8_t rgba[4]); typedef void (*pngle_done_callback_t)(pngle_t *pngle); // ---------------- // Basic interfaces // ---------------- pngle_t *pngle_new(); void pngle_destroy(pngle_t *pngle); void pngle_reset(pngle_t *pngle); // clear its internal state (not applied to pngle_set_* functions) const char *pngle_error(pngle_t *pngle); int pngle_feed(pngle_t *pngle, const void *buf, size_t len); // returns -1: On error, 0: Need more data, n: n bytes eaten uint32_t pngle_get_width(pngle_t *pngle); uint32_t pngle_get_height(pngle_t *pngle); void pngle_set_init_callback(pngle_t *png, pngle_init_callback_t callback); void pngle_set_draw_callback(pngle_t *png, pngle_draw_callback_t callback); void pngle_set_done_callback(pngle_t *png, pngle_done_callback_t callback); void pngle_set_display_gamma(pngle_t *pngle, double display_gamma); // enables gamma correction by specifying display gamma, typically 2.2. No effect when gAMA chunk is missing void pngle_set_user_data(pngle_t *pngle, void *user_data); void *pngle_get_user_data(pngle_t *pngle); // ---------------- // Debug interfaces // ---------------- typedef struct _pngle_ihdr_t { uint32_t width; uint32_t height; uint8_t depth; uint8_t color_type; uint8_t compression; uint8_t filter; uint8_t interlace; } pngle_ihdr_t; // Get IHDR information pngle_ihdr_t *pngle_get_ihdr(pngle_t *pngle); #ifdef __cplusplus } #endif #endif /* __PNGLE_H__ */ ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/LICENSE ================================================ MIT License Copyright (c) 2020 M5Stack Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/README.md ================================================ https://github.com/m5stack/M5StickC-Plus 4677f3432bafe011b0116c6443c36547ade3fd34 - Do not update this library beyond this commit, the author of this library has made code-breaking changes after this particular commit # M5StickC-Plus Library English | [中文](README_cn.md) M5StickC_01 * **For the Detailed documentation of M5StickC Plus, please [Click here](https://docs.m5stack.com/#/en/core/m5stickc_plus)** * **In order to buy M5StickC Plus,please [Click here](https://shop.m5stack.com/collections/m5-controllers/products/m5stickc-plus-esp32-pico-mini-iot-development-kit)** ## Description **M5StickC PLUS** is powered by **ESP32-PICO-D4** with **Bluetooth 4.2** and **WiFi**.It's an upgrade big screen product of M5StickC.It is a portable, easy-to-use, open source, IoT development board. What it can do? This tiny block is able to realize your idea, enlighten your creativity, and help with your IoT prototying in a very short time. It will take away a lot of pains from the development process. M5stickC Plus is one of the core devices in M5Stack product series. The compact body is integrated with rich hardware resources, such as infrared, **RTC**, **Microphone**, **LED**, **IMU**, **Buttons**, **PMU**,etc. Compared with StickC, a buzzer is added and the big screen is upgraded to a 1.14-inch, **135 * 240** resolution LCD Screen.Compared with the previous display area, the display area is increased by 18.7%, and the battery capacity is **120mAh**.It also supports HAT and Unit family products. **Power switch operation:** * Power on :Long press power button for 2 seconds * Power off :Short press power button for 6 seconds **Notice:** * Baud rate supported by M5StickC Plus: 1200 ~115200, 250K, 500K, 750K, 1500K * G36/G25 share the same port, when one of the pins is used, the other pin should be set as a floating input * For example, to use the G36 pin as the ADC input, Configuration the G25 pin as FLOATING ## More Information **UIFlow Quick Start**: [Click Here](https://docs.m5stack.com/en/quick_start/m5stickc_plus/uiflow) **MicroPython API**: [Click Here](https://docs.m5stack.com/en/mpy/display/m5stack_lvgl) **Arduino IDE Development**: [Click Here](https://docs.m5stack.com/en/quick_start/m5stickc_plus/arduino) **M5StickC Arduino API**: [Click Here](https://docs.m5stack.com/en/api/stickc/system_m5stickc) **PinMap**: [Click Here](https://docs.m5stack.com/en/core/m5stickc_plus) ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/library.json ================================================ { "name": "M5StickCPlus", "description": "An ESP32 Arduino board", "keywords": "M5StickCPlus", "authors": { "name": "M5Stack", "url": "http://www.m5stack.com" }, "repository": { "type": "git", "url": "https://github.com/m5stack/M5StickC-Plus.git" }, "version": "0.0.8", "frameworks": "arduino", "platforms": "espressif32", "headers": "M5StickCPlus.h" } ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/library.properties ================================================ name=M5StickCPlus version=0.0.8 author=M5Stack maintainer=M5Stack sentence=Library for M5StickC Plus development kit paragraph=See more on http://M5Stack.com category=Device Control url=https://github.com/m5stack/M5StickC-Plus.git architectures=esp32 includes=M5StickCPlus.h depends=M5Family ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/AXP192.cpp ================================================ #include "AXP192.h" AXP192::AXP192() { } void AXP192::begin(void) { Wire1.begin(21, 22); Wire1.setClock(400000); // Set LDO2 & LDO3(TFT_LED & TFT) 3.0V Write1Byte(0x28, 0xcc); // Set ADC to All Enable Write1Byte(0x82, 0xff); // Bat charge voltage to 4.2, Current 100MA Write1Byte(0x33, 0xc0); // Enable Bat,ACIN,VBUS,APS adc Write1Byte(0x82, 0xff); // Enable Ext, LDO2, LDO3, DCDC1 Write1Byte(0x12, Read8bit(0x12) | 0x4D); // 128ms power on, 4s power off Write1Byte(0x36, 0x0C); // Set RTC voltage to 3.3V Write1Byte(0x91, 0xF0); // Set GPIO0 to LDO Write1Byte(0x90, 0x02); // Disable vbus hold limit Write1Byte(0x30, 0x80); // Set temperature protection Write1Byte(0x39, 0xfc); // Enable RTC BAT charge Write1Byte(0x35, 0xa2); // Enable bat detection Write1Byte(0x32, 0x46); ScreenBreath(11); } void AXP192::Write1Byte(uint8_t Addr, uint8_t Data) { Wire1.beginTransmission(0x34); Wire1.write(Addr); Wire1.write(Data); Wire1.endTransmission(); } uint8_t AXP192::Read8bit(uint8_t Addr) { Wire1.beginTransmission(0x34); Wire1.write(Addr); Wire1.endTransmission(); Wire1.requestFrom(0x34, 1); return Wire1.read(); } uint16_t AXP192::Read12Bit(uint8_t Addr) { uint16_t Data = 0; uint8_t buf[2]; ReadBuff(Addr, 2, buf); Data = ((buf[0] << 4) + buf[1]); // return Data; } uint16_t AXP192::Read13Bit(uint8_t Addr) { uint16_t Data = 0; uint8_t buf[2]; ReadBuff(Addr, 2, buf); Data = ((buf[0] << 5) + buf[1]); // return Data; } uint16_t AXP192::Read16bit(uint8_t Addr) { uint16_t ReData = 0; Wire1.beginTransmission(0x34); Wire1.write(Addr); Wire1.endTransmission(); Wire1.requestFrom(0x34, 2); for (int i = 0; i < 2; i++) { ReData <<= 8; ReData |= Wire1.read(); } return ReData; } uint32_t AXP192::Read24bit(uint8_t Addr) { uint32_t ReData = 0; Wire1.beginTransmission(0x34); Wire1.write(Addr); Wire1.endTransmission(); Wire1.requestFrom(0x34, 3); for (int i = 0; i < 3; i++) { ReData <<= 8; ReData |= Wire1.read(); } return ReData; } uint32_t AXP192::Read32bit(uint8_t Addr) { uint32_t ReData = 0; Wire1.beginTransmission(0x34); Wire1.write(Addr); Wire1.endTransmission(); Wire1.requestFrom(0x34, 4); for (int i = 0; i < 4; i++) { ReData <<= 8; ReData |= Wire1.read(); } return ReData; } void AXP192::ReadBuff(uint8_t Addr, uint8_t Size, uint8_t *Buff) { Wire1.beginTransmission(0x34); Wire1.write(Addr); Wire1.endTransmission(); Wire1.requestFrom(0x34, (int)Size); for (int i = 0; i < Size; i++) { *(Buff + i) = Wire1.read(); } } void AXP192::ScreenBreath(uint8_t brightness) { if (brightness > 12) { brightness = 12; } else if (brightness < 7) { brightness = 7; } uint8_t buf = Read8bit(0x28); Write1Byte(0x28, ((buf & 0x0f) | (brightness << 4))); } void AXP192::ScreenSwitch(bool state) { uint8_t brightness; if (state == false) { brightness = 0; } else if (state == true) { brightness = 12; } uint8_t buf = Read8bit(0x28); Write1Byte(0x28, ((buf & 0x0f) | (brightness << 4))); } bool AXP192::GetBatState() { if (Read8bit(0x01) | 0x20) return true; else return false; } //---------coulombcounter_from_here--------- // enable: void EnableCoulombcounter(void); // disable: void DisableCOulombcounter(void); // stop: void StopCoulombcounter(void); // clear: void ClearCoulombcounter(void); // get charge data: uint32_t GetCoulombchargeData(void); // get discharge data: uint32_t GetCoulombdischargeData(void); // get coulomb val affter calculation: float GetCoulombData(void); //------------------------------------------ void AXP192::EnableCoulombcounter(void) { Write1Byte(0xB8, 0x80); } void AXP192::DisableCoulombcounter(void) { Write1Byte(0xB8, 0x00); } void AXP192::StopCoulombcounter(void) { Write1Byte(0xB8, 0xC0); } void AXP192::ClearCoulombcounter(void) { Write1Byte(0xB8, 0xA0); } uint32_t AXP192::GetCoulombchargeData(void) { return Read32bit(0xB0); } uint32_t AXP192::GetCoulombdischargeData(void) { return Read32bit(0xB4); } float AXP192::GetCoulombData(void) { uint32_t coin = 0; uint32_t coout = 0; coin = GetCoulombchargeData(); coout = GetCoulombdischargeData(); // c = 65536 * current_LSB * (coin - coout) / 3600 / ADC rate // Adc rate can be read from 84H ,change this variable if you change the ADC // reate float ccc = 65536 * 0.5 * (int32_t)(coin - coout) / 3600.0 / 25.0; return ccc; } //----------coulomb_end_at_here---------- uint16_t AXP192::GetVbatData(void) { uint16_t vbat = 0; uint8_t buf[2]; ReadBuff(0x78, 2, buf); vbat = ((buf[0] << 4) + buf[1]); // V return vbat; } uint16_t AXP192::GetVinData(void) { uint16_t vin = 0; uint8_t buf[2]; ReadBuff(0x56, 2, buf); vin = ((buf[0] << 4) + buf[1]); // V return vin; } uint16_t AXP192::GetIinData(void) { uint16_t iin = 0; uint8_t buf[2]; ReadBuff(0x58, 2, buf); iin = ((buf[0] << 4) + buf[1]); return iin; } uint16_t AXP192::GetVusbinData(void) { uint16_t vin = 0; uint8_t buf[2]; ReadBuff(0x5a, 2, buf); vin = ((buf[0] << 4) + buf[1]); // V return vin; } uint16_t AXP192::GetIusbinData(void) { uint16_t iin = 0; uint8_t buf[2]; ReadBuff(0x5C, 2, buf); iin = ((buf[0] << 4) + buf[1]); return iin; } uint16_t AXP192::GetIchargeData(void) { uint16_t icharge = 0; uint8_t buf[2]; ReadBuff(0x7A, 2, buf); icharge = (buf[0] << 5) + buf[1]; return icharge; } uint16_t AXP192::GetIdischargeData(void) { uint16_t idischarge = 0; uint8_t buf[2]; ReadBuff(0x7C, 2, buf); idischarge = (buf[0] << 5) + buf[1]; return idischarge; } uint16_t AXP192::GetTempData(void) { uint16_t temp = 0; uint8_t buf[2]; ReadBuff(0x5e, 2, buf); temp = ((buf[0] << 4) + buf[1]); return temp; } uint32_t AXP192::GetPowerbatData(void) { uint32_t power = 0; uint8_t buf[3]; ReadBuff(0x70, 2, buf); power = (buf[0] << 16) + (buf[1] << 8) + buf[2]; return power; } uint16_t AXP192::GetVapsData(void) { uint16_t vaps = 0; uint8_t buf[2]; ReadBuff(0x7e, 2, buf); vaps = ((buf[0] << 4) + buf[1]); return vaps; } void AXP192::SetSleep(void) { uint8_t buf = Read8bit(0x31); buf = (1 << 3) | buf; Write1Byte(0x31, buf); Write1Byte(0x90, 0x00); Write1Byte(0x12, 0x09); // Write1Byte(0x12, 0x00); Write1Byte(0x12, Read8bit(0x12) & 0xA1); // Disable all outputs but DCDC1 } uint8_t AXP192::GetWarningLeve(void) { Wire1.beginTransmission(0x34); Wire1.write(0x47); Wire1.endTransmission(); Wire1.requestFrom(0x34, 1); uint8_t buf = Wire1.read(); return (buf & 0x01); } // -- sleep void AXP192::DeepSleep(uint64_t time_in_us) { SetSleep(); if (time_in_us > 0) { esp_sleep_enable_timer_wakeup(time_in_us); } else { esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_TIMER); } (time_in_us == 0) ? esp_deep_sleep_start() : esp_deep_sleep(time_in_us); } void AXP192::LightSleep(uint64_t time_in_us) { SetSleep(); if (time_in_us > 0) { esp_sleep_enable_timer_wakeup(time_in_us); } else { esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_TIMER); } esp_light_sleep_start(); } // 0 not press, 0x01 long press, 0x02 press uint8_t AXP192::GetBtnPress() { uint8_t state = Read8bit(0x46); if (state) { Write1Byte(0x46, 0x03); } return state; } uint8_t AXP192::GetWarningLevel(void) { return Read8bit(0x47) & 0x01; } float AXP192::GetBatVoltage() { float ADCLSB = 1.1 / 1000.0; uint16_t ReData = Read12Bit(0x78); return ReData * ADCLSB; } float AXP192::GetBatCurrent() { float ADCLSB = 0.5; uint16_t CurrentIn = Read13Bit(0x7A); uint16_t CurrentOut = Read13Bit(0x7C); return (CurrentIn - CurrentOut) * ADCLSB; } float AXP192::GetVinVoltage() { float ADCLSB = 1.7 / 1000.0; uint16_t ReData = Read12Bit(0x56); return ReData * ADCLSB; } float AXP192::GetVinCurrent() { float ADCLSB = 0.625; uint16_t ReData = Read12Bit(0x58); return ReData * ADCLSB; } float AXP192::GetVBusVoltage() { float ADCLSB = 1.7 / 1000.0; uint16_t ReData = Read12Bit(0x5A); return ReData * ADCLSB; } float AXP192::GetVBusCurrent() { float ADCLSB = 0.375; uint16_t ReData = Read12Bit(0x5C); return ReData * ADCLSB; } float AXP192::GetTempInAXP192() { float ADCLSB = 0.1; const float OFFSET_DEG_C = -144.7; uint16_t ReData = Read12Bit(0x5E); return OFFSET_DEG_C + ReData * ADCLSB; } float AXP192::GetBatPower() { float VoltageLSB = 1.1; float CurrentLCS = 0.5; uint32_t ReData = Read24bit(0x70); return VoltageLSB * CurrentLCS * ReData / 1000.0; } float AXP192::GetBatChargeCurrent() { float ADCLSB = 0.5; uint16_t ReData = Read12Bit(0x7A); return ReData * ADCLSB; } float AXP192::GetAPSVoltage() { float ADCLSB = 1.4 / 1000.0; uint16_t ReData = Read12Bit(0x7E); return ReData * ADCLSB; } float AXP192::GetBatCoulombInput() { uint32_t ReData = Read32bit(0xB0); return ReData * 65536 * 0.5 / 3600 / 25.0; } float AXP192::GetBatCoulombOut() { uint32_t ReData = Read32bit(0xB4); return ReData * 65536 * 0.5 / 3600 / 25.0; } void AXP192::SetCoulombClear() { Write1Byte(0xB8, 0x20); } void AXP192::SetLDO2(bool State) { uint8_t buf = Read8bit(0x12); if (State == true) buf = (1 << 2) | buf; else buf = ~(1 << 2) & buf; Write1Byte(0x12, buf); } // Cut all power, except for LDO1 (RTC) void AXP192::PowerOff() { Write1Byte(0x32, Read8bit(0x32) | 0x80); // MSB for Power Off } ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/AXP192.h ================================================ #ifndef __AXP192_H__ #define __AXP192_H__ #include #include #define SLEEP_MSEC(us) (((uint64_t)us) * 1000L) #define SLEEP_SEC(us) (((uint64_t)us) * 1000000L) #define SLEEP_MIN(us) (((uint64_t)us) * 60L * 1000000L) #define SLEEP_HR(us) (((uint64_t)us) * 60L * 60L * 1000000L) class AXP192 { public: AXP192(); void begin(void); void ScreenBreath(uint8_t brightness); void ScreenSwitch(bool state); bool GetBatState(); void EnableCoulombcounter(void); void DisableCoulombcounter(void); void StopCoulombcounter(void); void ClearCoulombcounter(void); uint32_t GetCoulombchargeData(void); uint32_t GetCoulombdischargeData(void); float GetCoulombData(void); uint16_t GetVbatData(void) __attribute__((deprecated)); uint16_t GetIchargeData(void) __attribute__((deprecated)); uint16_t GetIdischargeData(void) __attribute__((deprecated)); uint16_t GetTempData(void) __attribute__((deprecated)); uint32_t GetPowerbatData(void) __attribute__((deprecated)); uint16_t GetVinData(void) __attribute__((deprecated)); uint16_t GetIinData(void) __attribute__((deprecated)); uint16_t GetVusbinData(void) __attribute__((deprecated)); uint16_t GetIusbinData(void) __attribute__((deprecated)); uint16_t GetVapsData(void) __attribute__((deprecated)); uint8_t GetBtnPress(void); // -- sleep void SetSleep(void); void DeepSleep(uint64_t time_in_us = 0); void LightSleep(uint64_t time_in_us = 0); uint8_t GetWarningLeve(void); public: // void SetChargeVoltage( uint8_t ); // void SetChargeCurrent( uint8_t ); float GetBatVoltage(); float GetBatCurrent(); float GetVinVoltage(); float GetVinCurrent(); float GetVBusVoltage(); float GetVBusCurrent(); float GetTempInAXP192(); float GetBatPower(); float GetBatChargeCurrent(); float GetAPSVoltage(); float GetBatCoulombInput(); float GetBatCoulombOut(); uint8_t GetWarningLevel(void); void SetCoulombClear(); void SetLDO2(bool State); // -- Power Off void PowerOff(); public: void Write1Byte(uint8_t Addr, uint8_t Data); uint8_t Read8bit(uint8_t Addr); uint16_t Read12Bit(uint8_t Addr); uint16_t Read13Bit(uint8_t Addr); uint16_t Read16bit(uint8_t Addr); uint32_t Read24bit(uint8_t Addr); uint32_t Read32bit(uint8_t Addr); void ReadBuff(uint8_t Addr, uint8_t Size, uint8_t *Buff); }; #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/ASC16.h ================================================ /************************** * * ASC16 * **************************/ #ifndef _ASC16_ #define _ASC16_ const uint8_t ASC16[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81, 0x81, 0xBD, 0x99, 0x81, 0x81, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFF, 0xDB, 0xFF, 0xFF, 0xC3, 0xE7, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0xE7, 0xE7, 0xE7, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x7E, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x1E, 0x0E, 0x1A, 0x32, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x30, 0x30, 0x70, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x67, 0xE7, 0xE6, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0xDB, 0x3C, 0xE7, 0x3C, 0xDB, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFE, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0E, 0x1E, 0x3E, 0xFE, 0x3E, 0x1E, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x60, 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6C, 0xFE, 0x6C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7C, 0x7C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x7C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7C, 0xC6, 0xC2, 0xC0, 0x7C, 0x06, 0x06, 0x86, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6, 0x0C, 0x18, 0x30, 0x60, 0xC6, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xD6, 0xD6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x3C, 0x06, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xFC, 0x06, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x60, 0xC0, 0xC0, 0xFC, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC6, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x06, 0x06, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x0C, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xDE, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x66, 0x66, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xDE, 0xC6, 0xC6, 0x66, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0x66, 0x66, 0x6C, 0x78, 0x78, 0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xDE, 0x7C, 0x0C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x60, 0x38, 0x0C, 0x06, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x5A, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0xD6, 0xFE, 0xEE, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x6C, 0x7C, 0x38, 0x38, 0x7C, 0x6C, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC6, 0x86, 0x0C, 0x18, 0x30, 0x60, 0xC2, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x78, 0x6C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x3C, 0x6C, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x6C, 0x76, 0x66, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x66, 0x6C, 0x78, 0x78, 0x6C, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xD6, 0xD6, 0xD6, 0xD6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x76, 0x66, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x60, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x38, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xCC, 0x18, 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x0C, 0x06, 0x7C, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x38, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0x60, 0x66, 0x3C, 0x0C, 0x06, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x38, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0xFE, 0x66, 0x60, 0x7C, 0x60, 0x60, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x76, 0x36, 0x7E, 0xD8, 0xD8, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x6C, 0xCC, 0xCC, 0xFE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x78, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0x78, 0x00, 0x00, 0xC6, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60, 0x60, 0x60, 0x60, 0xE6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xF8, 0xC4, 0xCC, 0xDE, 0xCC, 0xCC, 0xCC, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1B, 0x18, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, 0xC0, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0xCC, 0x18, 0x30, 0x60, 0xDC, 0x86, 0x0C, 0x18, 0x3E, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xCE, 0x9E, 0x3E, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6C, 0xD8, 0x6C, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x6C, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0xD8, 0xD8, 0xD8, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xD8, 0xCC, 0xC6, 0xC6, 0xC6, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC6, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC6, 0x60, 0x30, 0x18, 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x6C, 0x6C, 0x6C, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x30, 0x18, 0x0C, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0xDB, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 0x7E, 0xDB, 0xDB, 0xF3, 0x7E, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x30, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x6C, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xD8, 0x30, 0x60, 0xC8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Custom/Orbitron_Light_24.h ================================================ // Created by http://oleddisplay.squix.ch/ Consider a donation // In case of problems make sure that you are using the font file with the // correct version! const uint8_t Orbitron_Light_24Bitmaps[] PROGMEM = { // Bitmap Data: 0x00, // ' ' 0xFF, 0xFF, 0xFF, 0x03, 0xC0, // '!' 0xCF, 0x3C, 0xC0, // '"' 0x01, 0x81, 0x80, 0xC0, 0xC0, 0x30, 0x30, 0x0C, 0x0C, 0x7F, 0xFF, 0xDF, 0xFF, 0xF0, 0x60, 0x60, 0x30, 0x30, 0x0C, 0x0C, 0x03, 0x03, 0x01, 0x81, 0x83, 0xFF, 0xFE, 0xFF, 0xFF, 0x8C, 0x04, 0x03, 0x03, 0x00, 0xC0, 0xC0, 0x20, 0x30, 0x00, // '#' 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x01, 0xFF, 0xFE, 0xFF, 0xFF, 0xF0, 0x30, 0x3C, 0x0C, 0x03, 0x03, 0x00, 0xC0, 0xC0, 0x30, 0x30, 0x0F, 0xFF, 0xF9, 0xFF, 0xFF, 0x00, 0xC0, 0xC0, 0x30, 0x30, 0x0C, 0x0C, 0x03, 0x03, 0xC0, 0xC0, 0xF0, 0x30, 0x3F, 0xFF, 0xFD, 0xFF, 0xFE, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, // '$' 0x00, 0x00, 0x03, 0xF0, 0x00, 0xBF, 0xC0, 0x0D, 0x86, 0x00, 0xEC, 0x30, 0x1E, 0x61, 0x81, 0xE3, 0x0C, 0x1C, 0x1F, 0xE1, 0xC0, 0x7E, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0xFC, 0x03, 0x8F, 0xF0, 0x38, 0x60, 0x87, 0x83, 0x04, 0x78, 0x18, 0x23, 0x80, 0xC1, 0x10, 0x07, 0xF8, 0x00, 0x1F, 0x80, // '%' 0x3F, 0xFF, 0x03, 0xFF, 0xFC, 0x18, 0x00, 0x60, 0xC0, 0x03, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x80, 0x00, 0xCE, 0x00, 0x06, 0x1C, 0x0C, 0x30, 0x38, 0x61, 0x80, 0x73, 0x0C, 0x00, 0xF8, 0x60, 0x01, 0xE3, 0x00, 0x07, 0xDF, 0xFF, 0xF7, 0x7F, 0xFF, 0x08, // '&' 0xFC, // ''' 0x7F, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCF, 0x70, // '(' 0xEF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0xE0, // ')' 0x06, 0x00, 0x60, 0x06, 0x07, 0x6E, 0x7F, 0xE0, 0xF0, 0x0F, 0x01, 0x98, 0x39, 0xC1, 0x08, // '*' 0x0C, 0x06, 0x03, 0x1F, 0xFF, 0xF8, 0x60, 0x30, 0x18, 0x0C, 0x00, // '+' 0xFF, 0x80, // ',' 0xFF, 0xFF, 0xC0, // '-' 0xF0, // '.' 0x00, 0x00, 0x01, 0x00, 0x30, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x38, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x03, 0x00, 0x60, 0x0C, 0x00, 0x80, 0x00, 0x00, // '/' 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0xF8, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0xEF, 0x01, 0xC7, 0x81, 0xC3, 0xC1, 0xC1, 0xE1, 0xC0, 0xF1, 0xC0, 0x7B, 0x80, 0x3F, 0x80, 0x1F, 0x80, 0x0F, 0x80, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // '0' 0x07, 0x0F, 0x1F, 0x3B, 0x73, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, // '1' 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x7F, 0xFF, 0xFF, 0xFF, 0xB0, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, // '2' 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x3F, 0xFF, 0x1F, 0xFF, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // '3' 0x00, 0x1C, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x1F, 0x80, 0x1C, 0xC0, 0x1C, 0x60, 0x1C, 0x30, 0x1C, 0x18, 0x3C, 0x0C, 0x38, 0x06, 0x38, 0x03, 0x1F, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, // '4' 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0xFF, 0xFE, 0xFF, 0xFF, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // '5' 0x7F, 0xFC, 0x7F, 0xFE, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0xFF, 0xFE, 0xFF, 0xFF, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // '6' 0xFF, 0xFD, 0xFF, 0xFC, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, // '7' 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // '8' 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xFF, 0xFF, 0xBF, 0xFF, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // '9' 0xF0, 0x00, 0x00, 0xF0, // ':' 0xF0, 0x00, 0x00, 0xFF, 0x80, // ';' 0x00, 0x40, 0x70, 0x78, 0x3C, 0x3C, 0x3C, 0x0E, 0x03, 0x80, 0x78, 0x07, 0x00, 0xF0, 0x0F, 0x00, 0xC0, 0x10, // '<' 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, // '=' 0x80, 0x30, 0x0F, 0x00, 0xF0, 0x1E, 0x01, 0xE0, 0x1C, 0x07, 0x07, 0x87, 0x87, 0x83, 0xC0, 0xC0, 0x00, 0x00, // '>' 0xFF, 0xFD, 0xFF, 0xFC, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x0F, 0xFE, 0x3F, 0xF8, 0x60, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x18, 0x00, // '?' 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x3E, 0x1E, 0x3F, 0x8F, 0x30, 0x67, 0x98, 0x33, 0xCC, 0x19, 0xE6, 0x0C, 0xF3, 0x06, 0x79, 0xFF, 0xFC, 0x7F, 0xFE, 0x00, 0x03, 0x00, 0x01, 0xFF, 0xFF, 0x7F, 0xFF, 0x80, // '@' 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0x80, // 'A' 0xFF, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, // 'B' 0x7F, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0xFF, 0xFF, 0x7F, 0xFF, 0x80, // 'C' 0xFF, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, // 'D' 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xFF, 0xF8, 0xFF, 0xF8, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, // 'E' 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xFF, 0xF8, 0xFF, 0xF8, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, // 'F' 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // 'G' 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xC0, // 'H' 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, // 'I' 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // 'J' 0xC0, 0x03, 0x60, 0x03, 0x30, 0x03, 0x18, 0x03, 0x0C, 0x03, 0x06, 0x03, 0x83, 0x03, 0x81, 0xFF, 0x80, 0xFF, 0xC0, 0x60, 0x60, 0x30, 0x18, 0x18, 0x06, 0x0C, 0x03, 0x86, 0x00, 0xE3, 0x00, 0x31, 0x80, 0x0C, 0xC0, 0x03, 0x00, // 'K' 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, // 'L' 0xE0, 0x00, 0x7F, 0x00, 0x0F, 0xF8, 0x01, 0xFD, 0xC0, 0x3B, 0xCE, 0x07, 0x3C, 0x60, 0xE3, 0xC3, 0x0C, 0x3C, 0x19, 0x83, 0xC1, 0xF8, 0x3C, 0x0F, 0x03, 0xC0, 0x60, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x30, // 'M' 0xE0, 0x01, 0xF8, 0x00, 0xFE, 0x00, 0x7B, 0x80, 0x3C, 0xC0, 0x1E, 0x30, 0x0F, 0x0C, 0x07, 0x87, 0x03, 0xC1, 0xC1, 0xE0, 0x70, 0xF0, 0x18, 0x78, 0x06, 0x3C, 0x01, 0x9E, 0x00, 0xEF, 0x00, 0x3F, 0x80, 0x0F, 0xC0, 0x03, 0x80, // 'N' 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // 'O' 0xFF, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x00, // 'P' 0x7F, 0xFF, 0x0F, 0xFF, 0xF8, 0xC0, 0x01, 0x8C, 0x00, 0x18, 0xC0, 0x01, 0x8C, 0x00, 0x18, 0xC0, 0x01, 0x8C, 0x00, 0x18, 0xC0, 0x01, 0x8C, 0x00, 0x18, 0xC0, 0x01, 0x8C, 0x00, 0x18, 0xC0, 0x01, 0x8C, 0x00, 0x18, 0xC0, 0x01, 0x8F, 0xFF, 0xFF, 0x7F, 0xFF, 0xF0, // 'Q' 0xFF, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x06, 0x0C, 0x03, 0x86, 0x00, 0xE3, 0x00, 0x39, 0x80, 0x0E, 0xC0, 0x03, 0x00, // 'R' 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, 0x00, 0x78, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0xFF, 0xFE, 0x7F, 0xFF, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // 'S' 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, // 'T' 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, // 'U' 0x60, 0x00, 0x0E, 0x30, 0x00, 0x0C, 0x38, 0x00, 0x1C, 0x18, 0x00, 0x18, 0x1C, 0x00, 0x30, 0x0C, 0x00, 0x30, 0x06, 0x00, 0x60, 0x07, 0x00, 0xE0, 0x03, 0x00, 0xC0, 0x03, 0x81, 0xC0, 0x01, 0x81, 0x80, 0x00, 0xC3, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x66, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x18, 0x00, // 'V' 0x60, 0x07, 0x00, 0x66, 0x00, 0xF0, 0x06, 0x30, 0x0F, 0x00, 0xE3, 0x00, 0xD8, 0x0C, 0x18, 0x19, 0x80, 0xC1, 0x81, 0x98, 0x1C, 0x18, 0x18, 0xC1, 0x80, 0xC3, 0x0C, 0x18, 0x0C, 0x30, 0xE3, 0x00, 0xC7, 0x06, 0x30, 0x06, 0x60, 0x63, 0x00, 0x66, 0x03, 0x60, 0x07, 0xE0, 0x36, 0x00, 0x3C, 0x03, 0xE0, 0x03, 0xC0, 0x1C, 0x00, 0x18, 0x01, 0xC0, 0x01, 0x80, 0x18, 0x00, // 'W' 0x60, 0x03, 0x9C, 0x01, 0xC3, 0x80, 0xE0, 0x70, 0x30, 0x0C, 0x18, 0x01, 0x8C, 0x00, 0x37, 0x00, 0x07, 0x80, 0x01, 0xC0, 0x00, 0xF8, 0x00, 0x37, 0x00, 0x18, 0xC0, 0x0C, 0x18, 0x07, 0x03, 0x03, 0x80, 0xE1, 0xC0, 0x1C, 0x60, 0x03, 0x80, // 'X' 0xE0, 0x01, 0xD8, 0x00, 0xE3, 0x00, 0x30, 0x60, 0x18, 0x1C, 0x0E, 0x03, 0x87, 0x00, 0x73, 0x80, 0x0C, 0xC0, 0x03, 0xF0, 0x00, 0x78, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, // 'Y' 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, // 'Z' 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCF, 0xF0, // '[' 0x00, 0x08, 0x00, 0xC0, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x10, 0x00, // '\' 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0xF0, // ']' 0x00, // '^' 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, // '_' 0x66, 0x60, // '`' 0xFF, 0xFB, 0xFF, 0xF0, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xFF, 0xFD, 0xFF, 0xF0, // 'a' 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0xFF, 0xEF, 0xFF, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0xFF, 0xFF, 0xFF, 0x80, // 'b' 0x7F, 0xFF, 0xFF, 0xFC, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xFF, 0xFD, 0xFF, 0xF0, // 'c' 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0D, 0xFF, 0xFF, 0xFF, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0xFF, 0xF7, 0xFF, 0xC0, // 'd' 0x7F, 0xFB, 0xFF, 0xFC, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xFF, 0xFD, 0xFF, 0xF0, // 'e' 0x7F, 0xFF, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, // 'f' 0x7F, 0xFB, 0xFF, 0xFC, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xFF, 0xFD, 0xFF, 0xF0, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x31, 0xFF, 0xC7, 0xFE, // 'g' 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0xFF, 0xEF, 0xFF, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xC0, // 'h' 0xF0, 0x3F, 0xFF, 0xFF, 0xFC, // 'i' 0x01, 0x80, 0xC0, 0x00, 0x00, 0x00, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x07, 0xFF, 0xFF, 0x00, // 'j' 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x6C, 0x03, 0xB0, 0x1C, 0xC0, 0xE3, 0x07, 0x0C, 0x38, 0x3F, 0xC0, 0xFF, 0x03, 0x0E, 0x0C, 0x1C, 0x30, 0x38, 0xC0, 0x73, 0x00, 0xEC, 0x01, 0x80, // 'k' 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0xF7, 0xC0, // 'l' 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFC, 0x03, 0x00, 0xF0, 0x0C, 0x03, 0xC0, 0x30, 0x0F, 0x00, 0xC0, 0x3C, 0x03, 0x00, 0xF0, 0x0C, 0x03, 0xC0, 0x30, 0x0F, 0x00, 0xC0, 0x3C, 0x03, 0x00, 0xF0, 0x0C, 0x03, 0xC0, 0x30, 0x0F, 0x00, 0xC0, 0x30, // 'm' 0xFF, 0xFB, 0xFF, 0xFC, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x30, // 'n' 0x7F, 0xFB, 0xFF, 0xFC, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xFF, 0xFD, 0xFF, 0xE0, // 'o' 0xFF, 0xFB, 0xFF, 0xFC, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xFF, 0xFF, 0xFF, 0xEC, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, // 'p' 0x7F, 0xFF, 0xFF, 0xFC, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xFF, 0xFD, 0xFF, 0xF0, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, // 'q' 0x7F, 0xFF, 0xFF, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x00, // 'r' 0x7F, 0xFB, 0xFF, 0xFC, 0x00, 0xF0, 0x00, 0xC0, 0x03, 0x00, 0x0F, 0xFF, 0x9F, 0xFF, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xF0, 0x03, 0xFF, 0xFD, 0xFF, 0xE0, // 's' 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0x7F, // 't' 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xFF, 0xFD, 0xFF, 0xE0, // 'u' 0x60, 0x00, 0xCE, 0x00, 0x30, 0xC0, 0x0E, 0x1C, 0x01, 0x81, 0x80, 0x70, 0x18, 0x0C, 0x03, 0x03, 0x80, 0x30, 0x60, 0x06, 0x1C, 0x00, 0x63, 0x00, 0x0C, 0xC0, 0x00, 0xD8, 0x00, 0x1E, 0x00, 0x01, 0xC0, 0x00, // 'v' 0x60, 0x1C, 0x01, 0x9C, 0x07, 0x80, 0xE3, 0x01, 0xE0, 0x30, 0xC0, 0xFC, 0x0C, 0x18, 0x33, 0x06, 0x06, 0x1C, 0xE1, 0x81, 0xC6, 0x18, 0xE0, 0x33, 0x87, 0x30, 0x0C, 0xC0, 0xCC, 0x01, 0xB0, 0x3F, 0x00, 0x7C, 0x07, 0x80, 0x1E, 0x01, 0xE0, 0x03, 0x80, 0x70, 0x00, 0xC0, 0x0C, 0x00, // 'w' 0x60, 0x1C, 0xE0, 0x70, 0xE0, 0xC0, 0xE3, 0x00, 0xEE, 0x00, 0xF8, 0x00, 0xE0, 0x03, 0xC0, 0x07, 0xC0, 0x19, 0xC0, 0x71, 0x81, 0xC1, 0x87, 0x01, 0x8C, 0x03, 0x80, // 'x' 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xFF, 0xFD, 0xFF, 0xF0, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x31, 0xFF, 0xC7, 0xFE, // 'y' 0xFF, 0xFF, 0xFF, 0xF0, 0x01, 0xC0, 0x0E, 0x00, 0x70, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x00, 0xFF, 0xFF, 0xFF, 0xF0, // 'z' 0x3B, 0xD8, 0xC6, 0x31, 0x98, 0x86, 0x18, 0xC6, 0x31, 0x8F, 0x38, // '{' 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, // '|' 0xE7, 0x8C, 0x63, 0x18, 0xC3, 0x08, 0xCC, 0x63, 0x18, 0xDE, 0xE0 // '}' }; const GFXglyph Orbitron_Light_24Glyphs[] PROGMEM = { // bitmapOffset, width, height, xAdvance, xOffset, yOffset {0, 1, 1, 8, 0, 0}, // ' ' {1, 2, 17, 6, 1, -17}, // '!' {6, 6, 3, 10, 1, -17}, // '"' {9, 18, 17, 21, 1, -17}, // '#' {48, 18, 23, 21, 1, -20}, // '$' {100, 21, 18, 24, 1, -18}, // '%' {148, 21, 17, 23, 1, -17}, // '&' {193, 2, 3, 6, 1, -17}, // ''' {194, 4, 17, 7, 1, -17}, // '(' {203, 4, 17, 8, 1, -17}, // ')' {212, 12, 10, 13, 0, -17}, // '*' {227, 9, 9, 12, 1, -11}, // '+' {238, 2, 6, 5, 1, -2}, // ',' {240, 9, 2, 13, 1, -8}, // '-' {243, 2, 2, 6, 1, -2}, // '.' {244, 12, 18, 15, 1, -18}, // '/' {271, 17, 17, 20, 1, -17}, // '0' {308, 8, 17, 10, -1, -17}, // '1' {325, 17, 17, 20, 1, -17}, // '2' {362, 17, 17, 20, 1, -17}, // '3' {399, 17, 17, 20, 1, -17}, // '4' {436, 17, 17, 20, 1, -17}, // '5' {473, 17, 17, 20, 1, -17}, // '6' {510, 15, 17, 17, 0, -17}, // '7' {542, 17, 17, 20, 1, -17}, // '8' {579, 17, 17, 20, 1, -17}, // '9' {616, 2, 14, 6, 1, -14}, // ':' {620, 2, 18, 5, 1, -14}, // ';' {625, 10, 14, 13, 1, -14}, // '<' {643, 12, 7, 15, 1, -11}, // '=' {654, 10, 14, 12, 1, -14}, // '>' {672, 15, 17, 18, 1, -17}, // '?' {704, 17, 17, 20, 1, -17}, // '@' {741, 17, 17, 20, 1, -17}, // 'A' {778, 17, 17, 20, 1, -17}, // 'B' {815, 17, 17, 20, 1, -17}, // 'C' {852, 17, 17, 20, 1, -17}, // 'D' {889, 16, 17, 19, 1, -17}, // 'E' {923, 16, 17, 19, 1, -17}, // 'F' {957, 17, 17, 20, 1, -17}, // 'G' {994, 18, 17, 21, 1, -17}, // 'H' {1033, 2, 17, 6, 1, -17}, // 'I' {1038, 17, 17, 20, 1, -17}, // 'J' {1075, 17, 17, 20, 1, -17}, // 'K' {1112, 18, 17, 20, 1, -17}, // 'L' {1151, 20, 17, 23, 1, -17}, // 'M' {1194, 17, 17, 20, 1, -17}, // 'N' {1231, 17, 17, 20, 1, -17}, // 'O' {1268, 17, 17, 20, 1, -17}, // 'P' {1305, 20, 17, 22, 1, -17}, // 'Q' {1348, 17, 17, 20, 1, -17}, // 'R' {1385, 17, 17, 20, 1, -17}, // 'S' {1422, 17, 17, 20, 1, -17}, // 'T' {1459, 17, 17, 20, 1, -17}, // 'U' {1496, 24, 17, 25, 0, -17}, // 'V' {1547, 28, 17, 29, 0, -17}, // 'W' {1607, 18, 17, 20, 1, -17}, // 'X' {1646, 18, 17, 20, 0, -17}, // 'Y' {1685, 17, 17, 20, 1, -17}, // 'Z' {1722, 4, 17, 7, 1, -17}, // '[' {1731, 12, 18, 15, 1, -18}, // '\' {1758, 4, 17, 8, 1, -17}, // ']' {1767, 1, 1, 1, 0, 0}, // '^' {1768, 17, 2, 20, 1, 0}, // '_' {1773, 4, 3, 6, 0, -24}, // '`' {1775, 14, 14, 17, 1, -14}, // 'a' {1800, 14, 19, 17, 1, -19}, // 'b' {1834, 14, 14, 17, 1, -14}, // 'c' {1859, 14, 19, 17, 1, -19}, // 'd' {1893, 14, 14, 17, 1, -14}, // 'e' {1918, 8, 19, 11, 1, -19}, // 'f' {1937, 14, 20, 17, 1, -14}, // 'g' {1972, 14, 19, 17, 1, -19}, // 'h' {2006, 2, 19, 6, 1, -19}, // 'i' {2011, 9, 25, 7, -4, -19}, // 'j' {2040, 14, 19, 16, 1, -19}, // 'k' {2074, 6, 19, 8, 1, -19}, // 'l' {2089, 22, 14, 25, 1, -14}, // 'm' {2128, 14, 14, 17, 1, -14}, // 'n' {2153, 14, 14, 17, 1, -14}, // 'o' {2178, 14, 20, 17, 1, -14}, // 'p' {2213, 14, 20, 17, 1, -14}, // 'q' {2248, 11, 14, 13, 1, -14}, // 'r' {2268, 14, 14, 17, 1, -14}, // 's' {2293, 8, 19, 11, 1, -19}, // 't' {2312, 14, 14, 17, 1, -14}, // 'u' {2337, 19, 14, 20, 0, -14}, // 'v' {2371, 26, 14, 27, 0, -14}, // 'w' {2417, 15, 14, 18, 1, -14}, // 'x' {2444, 14, 20, 17, 1, -14}, // 'y' {2479, 14, 14, 17, 1, -14}, // 'z' {2504, 5, 17, 8, 1, -17}, // '{' {2515, 2, 23, 6, 1, -20}, // '|' {2521, 5, 17, 8, 1, -17} // '}' }; const GFXfont Orbitron_Light_24 PROGMEM = {(uint8_t *)Orbitron_Light_24Bitmaps, (GFXglyph *)Orbitron_Light_24Glyphs, 0x20, 0x7D, 24}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Custom/Orbitron_Light_32.h ================================================ // Created by http://oleddisplay.squix.ch/ Consider a donation // In case of problems make sure that you are using the font file with the // correct version! const uint8_t Orbitron_Light_32Bitmaps[] PROGMEM = { // Bitmap Data: 0x00, // ' ' 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x3F, // '!' 0xE7, 0xE7, 0xE7, 0xE7, // '"' 0x00, 0x70, 0x0E, 0x00, 0x60, 0x0C, 0x00, 0xE0, 0x1C, 0x00, 0xE0, 0x1C, 0x00, 0xC0, 0x18, 0x01, 0xC0, 0x38, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x03, 0x80, 0x70, 0x03, 0x80, 0x70, 0x03, 0x00, 0x60, 0x07, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0x06, 0x00, 0xE0, 0x06, 0x00, 0xC0, 0x0E, 0x01, 0xC0, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0x1C, 0x03, 0x80, 0x18, 0x03, 0x80, 0x38, 0x03, 0x00, 0x38, 0x07, 0x00, 0x38, 0x07, 0x00, 0x30, 0x06, 0x00, // '#' 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x01, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xDC, 0x07, 0x01, 0xF8, 0x0E, 0x03, 0xF0, 0x1C, 0x07, 0xE0, 0x38, 0x01, 0xC0, 0x70, 0x03, 0x80, 0xE0, 0x07, 0x01, 0xC0, 0x0E, 0x03, 0x80, 0x1C, 0x07, 0x00, 0x1F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFE, 0x00, 0x38, 0x0E, 0x00, 0x70, 0x1C, 0x00, 0xE0, 0x38, 0x01, 0xC0, 0x70, 0x03, 0x80, 0xE0, 0x07, 0x01, 0xF8, 0x0E, 0x03, 0xF0, 0x1C, 0x07, 0xE0, 0x38, 0x0E, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xE0, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, // '$' 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x04, 0x7F, 0xC0, 0x00, 0xCC, 0x06, 0x00, 0x1C, 0xC0, 0x60, 0x03, 0xCC, 0x06, 0x00, 0x78, 0xC0, 0x60, 0x0F, 0x0C, 0x06, 0x03, 0xC0, 0xC0, 0x60, 0x78, 0x0C, 0x06, 0x0F, 0x00, 0x7F, 0xC1, 0xE0, 0x03, 0xF8, 0x3C, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x07, 0xC3, 0xFE, 0x00, 0xF0, 0x60, 0x30, 0x1E, 0x06, 0x03, 0x03, 0xC0, 0x60, 0x30, 0x78, 0x06, 0x03, 0x0F, 0x00, 0x60, 0x31, 0xE0, 0x06, 0x03, 0x1C, 0x00, 0x60, 0x31, 0x80, 0x03, 0xFE, 0x00, 0x00, 0x1F, 0xC0, // '%' 0x1F, 0xFF, 0xF0, 0x03, 0xFF, 0xFF, 0x80, 0x70, 0x00, 0x1C, 0x07, 0x00, 0x01, 0xC0, 0x70, 0x00, 0x1C, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x78, 0x00, 0x00, 0xE3, 0xE0, 0x00, 0x0E, 0x0F, 0x80, 0xE0, 0xE0, 0x3C, 0x0E, 0x0E, 0x00, 0xF0, 0xE0, 0xE0, 0x07, 0xCE, 0x0E, 0x00, 0x1E, 0xE0, 0xE0, 0x00, 0x7E, 0x0E, 0x00, 0x01, 0xF0, 0xE0, 0x00, 0x0F, 0x8E, 0x00, 0x00, 0xFE, 0x7F, 0xFF, 0xFC, 0x73, 0xFF, 0xFF, 0x81, // '&' 0xFF, 0xF0, // ''' 0x3B, 0xF9, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x71, 0xE7, // '(' 0xE7, 0x8E, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9F, 0xDC, // ')' 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x27, 0x39, 0xCF, 0xFF, 0x8F, 0xFE, 0x03, 0xE0, 0x0F, 0xE0, 0x1D, 0xC0, 0x79, 0xC1, 0xE3, 0xC1, 0x83, 0x00, 0x00, 0x00, // '*' 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, // '+' 0xFF, 0xFF, 0xA0, // ',' 0xFF, 0xFF, 0xFF, // '-' 0xFC, // '.' 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x30, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x03, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x30, 0x00, 0x70, 0x00, 0xE0, 0x00, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, // '/' 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x7F, 0x00, 0x01, 0xFE, 0x00, 0x07, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x7B, 0xF0, 0x01, 0xE7, 0xE0, 0x07, 0x8F, 0xC0, 0x1E, 0x1F, 0x80, 0x78, 0x3F, 0x01, 0xE0, 0x7E, 0x07, 0x80, 0xFC, 0x1E, 0x01, 0xF8, 0x78, 0x03, 0xF1, 0xE0, 0x07, 0xE7, 0x80, 0x0F, 0xDE, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xE0, 0x00, 0x7F, 0x80, 0x00, 0xFE, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // '0' 0x03, 0xC1, 0xF0, 0xFC, 0x7F, 0x3D, 0xCE, 0x77, 0x1C, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x07, // '1' 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x73, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // '2' 0x3F, 0xFF, 0xF0, 0xFF, 0xFF, 0xF3, 0x80, 0x00, 0x77, 0x00, 0x00, 0xEE, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x3F, 0xFF, 0xE0, 0x7F, 0xFF, 0xC0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // '3' 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x7E, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0xFB, 0x80, 0x07, 0xCE, 0x00, 0x3E, 0x38, 0x01, 0xF0, 0xE0, 0x0F, 0x83, 0x80, 0x78, 0x0E, 0x03, 0xC0, 0x38, 0x1E, 0x00, 0xE0, 0xF0, 0x03, 0x87, 0x80, 0x0E, 0x3C, 0x00, 0x38, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x38, // '4' 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xC0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // '5' 0x3F, 0xFF, 0xE0, 0xFF, 0xFF, 0xC3, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xDC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // '6' 0xFF, 0xFF, 0xCF, 0xFF, 0xFE, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, // '7' 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3B, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xDC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // '8' 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x77, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // '9' 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, // ':' 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xA0, // ';' 0x00, 0x08, 0x00, 0xC0, 0x1E, 0x03, 0xF0, 0x7E, 0x07, 0xC0, 0xF8, 0x1F, 0x80, 0xF0, 0x07, 0x00, 0x3E, 0x00, 0xF8, 0x01, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0x00, 0x38, 0x00, 0xC0, 0x00, // '<' 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, // '=' 0x80, 0x06, 0x00, 0x3C, 0x01, 0xF8, 0x03, 0xE0, 0x07, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x78, 0x01, 0xC0, 0x3E, 0x03, 0xE0, 0x7C, 0x0F, 0xC0, 0xF8, 0x1F, 0x00, 0xF0, 0x06, 0x00, 0x00, 0x00, // '>' 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x3F, 0xFF, 0x03, 0xFF, 0xF0, 0x38, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x01, 0xC0, 0x00, // '?' 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x7F, 0x07, 0xE1, 0xFF, 0x0F, 0xC6, 0x03, 0x1F, 0x8C, 0x06, 0x3F, 0x18, 0x0C, 0x7E, 0x30, 0x18, 0xFC, 0x60, 0x31, 0xF8, 0xC0, 0x63, 0xF1, 0x80, 0xC7, 0xE1, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, // '@' 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, // 'A' 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xF3, 0x80, 0x00, 0x77, 0x00, 0x00, 0xEE, 0x00, 0x01, 0xDC, 0x00, 0x03, 0xB8, 0x00, 0x07, 0x70, 0x00, 0x0E, 0xE0, 0x00, 0x1D, 0xC0, 0x00, 0x3B, 0x80, 0x00, 0x77, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xDC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFC, // 'B' 0x3F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, // 'C' 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFC, // 'D' 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x01, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0x70, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 'E' 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x01, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0x70, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, // 'F' 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x1F, 0xFC, 0x00, 0x3F, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // 'G' 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, // 'H' 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 'I' 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // 'J' 0xE0, 0x00, 0x1D, 0xC0, 0x00, 0x73, 0x80, 0x01, 0xC7, 0x00, 0x07, 0x8E, 0x00, 0x1E, 0x1C, 0x00, 0x38, 0x38, 0x00, 0xE0, 0x70, 0x03, 0x80, 0xE0, 0x0F, 0x01, 0xC0, 0x1C, 0x03, 0x80, 0x70, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x1C, 0x03, 0x80, 0x38, 0x03, 0x80, 0x70, 0x07, 0x00, 0xE0, 0x07, 0x01, 0xC0, 0x07, 0x03, 0x80, 0x07, 0x07, 0x00, 0x0F, 0x0E, 0x00, 0x0F, 0x1C, 0x00, 0x0E, 0x38, 0x00, 0x0E, 0x70, 0x00, 0x0E, // 'K' 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 'L' 0xF0, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0xFF, 0xF8, 0x00, 0x7F, 0xEE, 0x00, 0x1D, 0xF9, 0xC0, 0x0E, 0x7E, 0x38, 0x07, 0x1F, 0x8F, 0x03, 0xC7, 0xE1, 0xC0, 0xE1, 0xF8, 0x38, 0x70, 0x7E, 0x07, 0x38, 0x1F, 0x81, 0xFE, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x07, 0x80, 0x7E, 0x00, 0xC0, 0x1F, 0x80, 0x20, 0x07, 0xE0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xE0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, // 'M' 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xF0, 0x00, 0x7E, 0xE0, 0x00, 0xFC, 0xE0, 0x01, 0xF8, 0xE0, 0x03, 0xF1, 0xE0, 0x07, 0xE1, 0xC0, 0x0F, 0xC1, 0xC0, 0x1F, 0x81, 0xC0, 0x3F, 0x03, 0xC0, 0x7E, 0x03, 0xC0, 0xFC, 0x03, 0x81, 0xF8, 0x03, 0x83, 0xF0, 0x03, 0x87, 0xE0, 0x07, 0x8F, 0xC0, 0x07, 0x1F, 0x80, 0x07, 0x3F, 0x00, 0x07, 0x7E, 0x00, 0x0F, 0xFC, 0x00, 0x0F, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x0F, // 'N' 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // 'O' 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFE, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, // 'P' 0x3F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0x0E, 0x00, 0x00, 0xE3, 0x80, 0x00, 0x38, 0xE0, 0x00, 0x0E, 0x38, 0x00, 0x03, 0x8E, 0x00, 0x00, 0xE3, 0x80, 0x00, 0x38, 0xE0, 0x00, 0x0E, 0x38, 0x00, 0x03, 0x8E, 0x00, 0x00, 0xE3, 0x80, 0x00, 0x38, 0xE0, 0x00, 0x0E, 0x38, 0x00, 0x03, 0x8E, 0x00, 0x00, 0xE3, 0x80, 0x00, 0x38, 0xE0, 0x00, 0x0E, 0x38, 0x00, 0x03, 0x8E, 0x00, 0x00, 0xE3, 0x80, 0x00, 0x38, 0xE0, 0x00, 0x0E, 0x38, 0x00, 0x03, 0x87, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, // 'Q' 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFE, 0x70, 0x03, 0x80, 0xE0, 0x07, 0x81, 0xC0, 0x07, 0x83, 0x80, 0x07, 0x07, 0x00, 0x07, 0x0E, 0x00, 0x0F, 0x1C, 0x00, 0x0F, 0x38, 0x00, 0x0F, 0x70, 0x00, 0x0E, // 'R' 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFB, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x03, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // 'S' 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, // 'T' 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, // 'U' 0xE0, 0x00, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0xE3, 0x80, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xE0, 0x70, 0x00, 0x03, 0x80, 0xE0, 0x00, 0x1C, 0x03, 0x80, 0x00, 0x70, 0x07, 0x00, 0x03, 0x80, 0x1C, 0x00, 0x1E, 0x00, 0x38, 0x00, 0x70, 0x00, 0x70, 0x03, 0x80, 0x01, 0xC0, 0x0E, 0x00, 0x03, 0x80, 0x70, 0x00, 0x0E, 0x01, 0xC0, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x70, 0x38, 0x00, 0x00, 0xE1, 0xC0, 0x00, 0x03, 0x87, 0x00, 0x00, 0x07, 0x38, 0x00, 0x00, 0x0D, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xE0, 0x00, // 'V' 0xE0, 0x00, 0xF0, 0x00, 0x76, 0x00, 0x0F, 0x00, 0x0E, 0x70, 0x01, 0xF0, 0x00, 0xE7, 0x00, 0x1F, 0x80, 0x0E, 0x30, 0x01, 0xF8, 0x01, 0xC3, 0x80, 0x39, 0x80, 0x1C, 0x38, 0x03, 0x9C, 0x01, 0x81, 0x80, 0x39, 0xC0, 0x38, 0x1C, 0x07, 0x0C, 0x03, 0x81, 0xC0, 0x70, 0xE0, 0x30, 0x0E, 0x06, 0x0E, 0x07, 0x00, 0xE0, 0xE0, 0x70, 0x70, 0x0E, 0x0E, 0x07, 0x06, 0x00, 0x70, 0xC0, 0x70, 0xE0, 0x07, 0x1C, 0x03, 0x8E, 0x00, 0x31, 0xC0, 0x38, 0xC0, 0x03, 0x98, 0x03, 0x9C, 0x00, 0x3B, 0x80, 0x1D, 0xC0, 0x01, 0xB8, 0x01, 0xF8, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x07, 0x00, // 'W' 0x70, 0x00, 0x1E, 0x38, 0x00, 0x1C, 0x3C, 0x00, 0x38, 0x1E, 0x00, 0x70, 0x0E, 0x00, 0xF0, 0x07, 0x01, 0xE0, 0x03, 0x81, 0xC0, 0x01, 0xC3, 0x80, 0x01, 0xE7, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0x00, 0x01, 0xE7, 0x00, 0x01, 0xC3, 0x80, 0x03, 0x81, 0xC0, 0x07, 0x01, 0xE0, 0x0E, 0x00, 0xF0, 0x1E, 0x00, 0x70, 0x3C, 0x00, 0x38, 0x38, 0x00, 0x1C, 0x70, 0x00, 0x1E, // 'X' 0x70, 0x00, 0x07, 0x3C, 0x00, 0x07, 0x8E, 0x00, 0x03, 0x83, 0x80, 0x03, 0x80, 0xE0, 0x03, 0x80, 0x78, 0x03, 0xC0, 0x1C, 0x01, 0xC0, 0x07, 0x01, 0xC0, 0x03, 0xC1, 0xE0, 0x00, 0xF1, 0xE0, 0x00, 0x3D, 0xE0, 0x00, 0x0E, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x38, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x80, 0x00, 0x01, 0xC0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x38, 0x00, // 'Y' 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x38, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x1C, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 'Z' 0xFF, 0xF9, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0xFF, // '[' 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0xE0, 0x00, 0x60, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, // '\' 0xFF, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9F, 0xFF, // ']' 0x00, // '^' 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, // '_' 0xEE, 0x67, // '`' 0xFF, 0xFF, 0x9F, 0xFF, 0xF8, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xEF, 0xFF, 0xFC, 0xFF, 0xFF, 0x80, // 'a' 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x3F, 0xFF, 0xE7, 0xFF, 0xFE, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0xFF, 0xFE, 0xFF, 0xFF, 0x80, // 'b' 0x3F, 0xFF, 0xEF, 0xFF, 0xFF, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0xFF, 0xFC, 0xFF, 0xFF, 0x80, // 'c' 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xCF, 0xFF, 0xFB, 0xFF, 0xFF, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3B, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, // 'd' 0x3F, 0xFF, 0x8F, 0xFF, 0xFB, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0xFF, 0xFC, 0xFF, 0xFF, 0x80, // 'e' 0x3F, 0xEF, 0xFF, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x3F, 0xFF, 0xFF, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x00, // 'f' 0x3F, 0xFF, 0x8F, 0xFF, 0xFB, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xEF, 0xFF, 0xFC, 0xFF, 0xFF, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE1, 0xFF, 0xF8, 0x3F, 0xFE, 0x00, // 'g' 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x3F, 0xFF, 0xE7, 0xFF, 0xFE, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xE0, // 'h' 0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, // 'i' 0x00, 0x70, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x7F, 0xFE, 0xFF, 0xC0, // 'j' 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x77, 0x00, 0x1C, 0xE0, 0x07, 0x9C, 0x01, 0xE3, 0x80, 0x78, 0x70, 0x1E, 0x0E, 0x07, 0x81, 0xC0, 0xE0, 0x3F, 0xF8, 0x07, 0xFF, 0x00, 0xE0, 0x70, 0x1C, 0x0F, 0x03, 0x80, 0xE0, 0x70, 0x0E, 0x0E, 0x00, 0xE1, 0xC0, 0x0E, 0x38, 0x01, 0xE7, 0x00, 0x1E, 0xE0, 0x01, 0xC0, // 'k' 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x3F, 0x3E, // 'l' 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xB8, 0x01, 0xC0, 0x0F, 0xC0, 0x0E, 0x00, 0x7E, 0x00, 0x70, 0x03, 0xF0, 0x03, 0x80, 0x1F, 0x80, 0x1C, 0x00, 0xFC, 0x00, 0xE0, 0x07, 0xE0, 0x07, 0x00, 0x3F, 0x00, 0x38, 0x01, 0xF8, 0x01, 0xC0, 0x0F, 0xC0, 0x0E, 0x00, 0x7E, 0x00, 0x70, 0x03, 0xF0, 0x03, 0x80, 0x1F, 0x80, 0x1C, 0x00, 0xFC, 0x00, 0xE0, 0x07, 0xE0, 0x07, 0x00, 0x3F, 0x00, 0x38, 0x01, 0xF8, 0x01, 0xC0, 0x0E, // 'm' 0xFF, 0xFF, 0x9F, 0xFF, 0xFB, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0x80, // 'n' 0x3F, 0xFF, 0x8F, 0xFF, 0xFB, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xEF, 0xFF, 0xF8, 0xFF, 0xFE, 0x00, // 'o' 0xFF, 0xFF, 0x9F, 0xFF, 0xFB, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFF, 0xFF, 0xFB, 0xFF, 0xFE, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x00, // 'p' 0x3F, 0xFF, 0xEF, 0xFF, 0xFF, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xEF, 0xFF, 0xFC, 0xFF, 0xFF, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, // 'q' 0x3F, 0xFE, 0xFF, 0xFF, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x00, // 'r' 0x3F, 0xFF, 0x8F, 0xFF, 0xFB, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x7F, 0xFF, 0x87, 0xFF, 0xF8, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xEF, 0xFF, 0xF8, 0xFF, 0xFE, 0x00, // 's' 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x3F, 0xFF, 0xFF, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x03, 0xFF, 0x3F, 0xE0, // 't' 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xEF, 0xFF, 0xF8, 0xFF, 0xFE, 0x00, // 'u' 0x70, 0x00, 0x07, 0x3C, 0x00, 0x07, 0x0E, 0x00, 0x03, 0x83, 0x80, 0x03, 0x81, 0xC0, 0x01, 0xC0, 0x70, 0x01, 0xC0, 0x38, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x07, 0x00, 0x70, 0x01, 0xC0, 0x70, 0x00, 0xE0, 0x38, 0x00, 0x38, 0x38, 0x00, 0x1C, 0x38, 0x00, 0x07, 0x1C, 0x00, 0x03, 0x9C, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0x00, 0x00, // 'v' 0xE0, 0x03, 0xC0, 0x07, 0x38, 0x01, 0xF0, 0x03, 0x9C, 0x01, 0xF8, 0x01, 0xCE, 0x00, 0xFE, 0x01, 0xC3, 0x80, 0x77, 0x00, 0xE1, 0xC0, 0x73, 0x80, 0x60, 0x70, 0x38, 0xE0, 0x70, 0x38, 0x3C, 0x70, 0x38, 0x1C, 0x1C, 0x1C, 0x38, 0x07, 0x0E, 0x0E, 0x1C, 0x03, 0x8E, 0x07, 0x8E, 0x00, 0xE7, 0x01, 0xCE, 0x00, 0x77, 0x00, 0xF7, 0x00, 0x3B, 0x80, 0x3B, 0x80, 0x0F, 0xC0, 0x1F, 0x80, 0x07, 0xC0, 0x07, 0xC0, 0x03, 0xE0, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x70, 0x00, // 'w' 0x70, 0x00, 0xE3, 0x80, 0x1C, 0x1C, 0x03, 0x81, 0xE0, 0x78, 0x0F, 0x0F, 0x00, 0x79, 0xE0, 0x03, 0x9C, 0x00, 0x1F, 0x80, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x01, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0x9C, 0x00, 0x70, 0xE0, 0x0F, 0x0F, 0x01, 0xE0, 0x78, 0x3C, 0x03, 0x83, 0x80, 0x1C, 0x70, 0x00, 0xE0, // 'x' 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xEF, 0xFF, 0xFC, 0xFF, 0xFF, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE1, 0xFF, 0xF8, 0x3F, 0xFE, 0x00, // 'y' 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x03, 0x80, 0x01, 0xF0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x07, 0xC0, 0x00, 0xE0, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, // 'z' 0x0E, 0x3C, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x73, 0xC7, 0x0E, 0x1E, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x07, 0x87, // '{' 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, // '|' 0xE3, 0xC3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE1, 0xC3, 0x0C, 0x73, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xEF, 0x38 // '}' }; const GFXglyph Orbitron_Light_32Glyphs[] PROGMEM = { // bitmapOffset, width, height, xAdvance, xOffset, yOffset {0, 1, 1, 10, 0, 0}, // ' ' {1, 3, 24, 9, 2, -24}, // '!' {10, 8, 4, 13, 2, -24}, // '"' {14, 24, 24, 27, 1, -24}, // '#' {86, 23, 31, 26, 1, -27}, // '$' {176, 28, 25, 32, 2, -25}, // '%' {264, 28, 24, 31, 2, -24}, // '&' {348, 3, 4, 9, 2, -24}, // ''' {350, 5, 24, 10, 2, -24}, // '(' {365, 5, 24, 10, 2, -24}, // ')' {380, 15, 14, 17, 0, -24}, // '*' {407, 12, 13, 15, 1, -16}, // '+' {427, 3, 7, 8, 2, -3}, // ',' {430, 12, 2, 17, 2, -10}, // '-' {433, 3, 2, 8, 2, -2}, // '.' {434, 16, 24, 19, 1, -24}, // '/' {482, 23, 24, 28, 2, -24}, // '0' {551, 10, 24, 14, 0, -24}, // '1' {581, 23, 24, 27, 2, -24}, // '2' {650, 23, 24, 27, 2, -24}, // '3' {719, 22, 24, 25, 1, -24}, // '4' {785, 23, 24, 27, 2, -24}, // '5' {854, 23, 24, 27, 2, -24}, // '6' {923, 20, 24, 23, 0, -24}, // '7' {983, 23, 24, 28, 2, -24}, // '8' {1052, 23, 24, 28, 2, -24}, // '9' {1121, 3, 19, 8, 2, -19}, // ':' {1129, 3, 23, 8, 2, -19}, // ';' {1138, 13, 19, 17, 1, -19}, // '<' {1169, 17, 9, 22, 2, -14}, // '=' {1189, 13, 19, 17, 2, -19}, // '>' {1220, 21, 24, 24, 1, -24}, // '?' {1283, 23, 24, 28, 2, -24}, // '@' {1352, 23, 24, 28, 2, -24}, // 'A' {1421, 23, 24, 28, 2, -24}, // 'B' {1490, 23, 24, 28, 2, -24}, // 'C' {1559, 23, 24, 28, 2, -24}, // 'D' {1628, 21, 24, 26, 2, -24}, // 'E' {1691, 21, 24, 25, 2, -24}, // 'F' {1754, 23, 24, 28, 2, -24}, // 'G' {1823, 24, 24, 29, 2, -24}, // 'H' {1895, 3, 24, 9, 2, -24}, // 'I' {1904, 23, 24, 27, 1, -24}, // 'J' {1973, 23, 24, 27, 2, -24}, // 'K' {2042, 23, 24, 27, 2, -24}, // 'L' {2111, 26, 24, 31, 2, -24}, // 'M' {2189, 23, 24, 28, 2, -24}, // 'N' {2258, 23, 24, 28, 2, -24}, // 'O' {2327, 23, 24, 27, 2, -24}, // 'P' {2396, 26, 24, 30, 2, -24}, // 'Q' {2474, 23, 24, 28, 2, -24}, // 'R' {2543, 23, 24, 28, 2, -24}, // 'S' {2612, 23, 24, 26, 1, -24}, // 'T' {2681, 23, 24, 28, 2, -24}, // 'U' {2750, 30, 24, 33, 1, -24}, // 'V' {2840, 36, 24, 39, 1, -24}, // 'W' {2948, 24, 24, 27, 1, -24}, // 'X' {3020, 25, 24, 27, 0, -24}, // 'Y' {3095, 23, 24, 28, 2, -24}, // 'Z' {3164, 5, 24, 10, 2, -24}, // '[' {3179, 16, 24, 19, 1, -24}, // '\' {3227, 5, 24, 10, 2, -24}, // ']' {3242, 1, 1, 1, 0, 0}, // '^' {3243, 23, 2, 27, 2, 1}, // '_' {3249, 4, 4, 8, 1, -33}, // '`' {3251, 19, 19, 24, 2, -19}, // 'a' {3297, 19, 25, 23, 2, -25}, // 'b' {3357, 19, 19, 24, 2, -19}, // 'c' {3403, 19, 25, 23, 1, -25}, // 'd' {3463, 19, 19, 24, 2, -19}, // 'e' {3509, 11, 25, 14, 2, -25}, // 'f' {3544, 19, 27, 23, 1, -19}, // 'g' {3609, 19, 25, 23, 2, -25}, // 'h' {3669, 3, 25, 8, 2, -25}, // 'i' {3679, 12, 33, 9, -6, -25}, // 'j' {3729, 19, 25, 22, 2, -25}, // 'k' {3789, 7, 25, 11, 2, -25}, // 'l' {3811, 29, 19, 33, 2, -19}, // 'm' {3880, 19, 19, 24, 2, -19}, // 'n' {3926, 19, 19, 24, 2, -19}, // 'o' {3972, 19, 27, 23, 2, -19}, // 'p' {4037, 19, 27, 23, 1, -19}, // 'q' {4102, 15, 19, 18, 2, -19}, // 'r' {4138, 19, 19, 24, 2, -19}, // 's' {4184, 11, 25, 14, 2, -25}, // 't' {4219, 19, 19, 24, 2, -19}, // 'u' {4265, 25, 19, 26, 0, -19}, // 'v' {4325, 33, 19, 35, 1, -19}, // 'w' {4404, 20, 19, 23, 1, -19}, // 'x' {4452, 19, 27, 23, 1, -19}, // 'y' {4517, 19, 19, 24, 2, -19}, // 'z' {4563, 7, 24, 10, 0, -24}, // '{' {4584, 3, 31, 8, 2, -27}, // '|' {4596, 6, 24, 10, 2, -24} // '}' }; const GFXfont Orbitron_Light_32 PROGMEM = {(uint8_t *)Orbitron_Light_32Bitmaps, (GFXglyph *)Orbitron_Light_32Glyphs, 0x20, 0x7D, 32}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Custom/Roboto_Thin_24.h ================================================ // Created by http://oleddisplay.squix.ch/ Consider a donation // In case of problems make sure that you are using the font file with the // correct version! const uint8_t Roboto_Thin_24Bitmaps[] PROGMEM = { // Bitmap Data: 0x00, // ' ' 0x49, 0x24, 0x92, 0x49, 0x20, 0x00, 0x40, // '!' 0xB6, 0xDA, // '"' 0x02, 0x10, 0x10, 0x80, 0x42, 0x01, 0x08, 0x04, 0x21, 0xFF, 0xF0, 0x44, 0x02, 0x10, 0x08, 0x40, 0x21, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x80, 0x42, 0x01, 0x08, 0x04, 0x20, 0x10, 0x80, // '#' 0x04, 0x01, 0x00, 0x40, 0xFC, 0x61, 0xB0, 0x38, 0x06, 0x01, 0x80, 0x10, 0x02, 0x00, 0x60, 0x07, 0x00, 0x20, 0x06, 0x01, 0x80, 0x70, 0x36, 0x18, 0x7C, 0x04, 0x01, 0x00, 0x40, // '$' 0x38, 0x01, 0x8C, 0x02, 0x08, 0x44, 0x11, 0x08, 0x22, 0x18, 0xC8, 0x0F, 0x10, 0x00, 0x40, 0x01, 0x00, 0x02, 0x78, 0x09, 0x90, 0x22, 0x10, 0x44, 0x21, 0x08, 0x42, 0x10, 0x80, 0x32, 0x00, 0x3C, // '%' 0x1E, 0x01, 0x08, 0x10, 0x20, 0x81, 0x04, 0x08, 0x20, 0x80, 0x88, 0x03, 0x80, 0x18, 0x01, 0x20, 0x10, 0x85, 0x02, 0x28, 0x0A, 0x40, 0x33, 0x01, 0x8C, 0x14, 0x3F, 0x10, // '&' 0xF8, // ''' 0x00, 0x21, 0x04, 0x21, 0x04, 0x10, 0x42, 0x08, 0x20, 0x82, 0x08, 0x20, 0x82, 0x04, 0x10, 0x40, 0x82, 0x04, 0x08, 0x00, // '(' 0x01, 0x02, 0x08, 0x10, 0x40, 0x82, 0x08, 0x10, 0x41, 0x04, 0x10, 0x41, 0x04, 0x10, 0x82, 0x08, 0x41, 0x08, 0x40, 0x00, // ')' 0x04, 0x00, 0x80, 0x10, 0x22, 0x23, 0xF8, 0x08, 0x02, 0x80, 0x88, 0x20, 0x80, 0x00, // '*' 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x3F, 0xFC, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, // '+' 0x55, 0x80, // ',' 0x7C, // '-' 0x40, // '.' 0x01, 0x00, 0x80, 0x80, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x80, 0x80, 0x40, 0x20, 0x20, 0x00, // '/' 0x1E, 0x08, 0x44, 0x0B, 0x02, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x70, 0x34, 0x08, 0x84, 0x1E, 0x00, // '0' 0x0D, 0xD8, 0x41, 0x04, 0x10, 0x41, 0x04, 0x10, 0x41, 0x04, 0x10, 0x41, 0x04, // '1' 0x1F, 0x0C, 0x31, 0x03, 0x40, 0x28, 0x04, 0x00, 0x80, 0x20, 0x04, 0x01, 0x00, 0x40, 0x10, 0x02, 0x00, 0x80, 0x20, 0x08, 0x02, 0x00, 0x7F, 0xE0, // '2' 0x1F, 0x0C, 0x31, 0x03, 0x40, 0x28, 0x04, 0x00, 0x80, 0x20, 0x0C, 0x1E, 0x00, 0x30, 0x01, 0x00, 0x18, 0x03, 0x00, 0x50, 0x1B, 0x06, 0x1F, 0x00, // '3' 0x00, 0xC0, 0x0A, 0x00, 0x50, 0x04, 0x80, 0x44, 0x02, 0x20, 0x21, 0x02, 0x08, 0x20, 0x41, 0x02, 0x10, 0x11, 0xFF, 0xF0, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, // '4' 0x3F, 0xE4, 0x00, 0x80, 0x20, 0x04, 0x00, 0x80, 0x13, 0xC3, 0x86, 0x00, 0x40, 0x04, 0x00, 0x80, 0x10, 0x02, 0x80, 0x50, 0x11, 0x06, 0x1F, 0x00, // '5' 0x07, 0x83, 0x00, 0x80, 0x20, 0x04, 0x01, 0x1E, 0x2C, 0x36, 0x02, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x80, 0xD0, 0x11, 0x84, 0x1F, 0x00, // '6' 0xFF, 0xE0, 0x04, 0x01, 0x00, 0x20, 0x08, 0x01, 0x00, 0x40, 0x08, 0x02, 0x00, 0x40, 0x08, 0x02, 0x00, 0x40, 0x10, 0x02, 0x00, 0x80, 0x10, 0x00, // '7' 0x1F, 0x0C, 0x1B, 0x01, 0xC0, 0x18, 0x03, 0x00, 0xD8, 0x30, 0xF8, 0x31, 0x88, 0x0A, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x50, 0x13, 0x06, 0x1F, 0x00, // '8' 0x1F, 0x04, 0x11, 0x01, 0x60, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x40, 0x6C, 0x14, 0x7C, 0x80, 0x10, 0x04, 0x00, 0x80, 0x20, 0x18, 0x1C, 0x00, // '9' 0xC0, 0x00, 0x00, 0xC0, // ':' 0xC0, 0x00, 0x05, 0x58, // ';' 0x00, 0x00, 0x70, 0x60, 0x60, 0x60, 0x30, 0x03, 0x00, 0x30, 0x03, 0x80, 0x10, // '<' 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, // '=' 0x00, 0x38, 0x01, 0x80, 0x18, 0x01, 0x80, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, // '>' 0x3C, 0x42, 0x81, 0x81, 0x81, 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x18, // '?' 0x01, 0xF8, 0x00, 0xC0, 0xC0, 0x60, 0x04, 0x18, 0x00, 0x42, 0x00, 0x04, 0x81, 0xE0, 0x90, 0x42, 0x0C, 0x10, 0x41, 0x84, 0x08, 0x30, 0x81, 0x06, 0x10, 0x20, 0xC2, 0x04, 0x18, 0x41, 0x03, 0x08, 0x20, 0x61, 0x04, 0x12, 0x11, 0x46, 0x43, 0xC7, 0x0C, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00, 0xC0, 0x80, 0x07, 0xE0, 0x00, // '@' 0x01, 0x00, 0x0C, 0x00, 0x30, 0x01, 0x20, 0x04, 0x80, 0x21, 0x00, 0x84, 0x02, 0x10, 0x10, 0x20, 0x40, 0x82, 0x02, 0x0F, 0xFC, 0x20, 0x11, 0x00, 0x24, 0x00, 0x90, 0x02, 0x80, 0x04, // 'A' 0xFE, 0x10, 0x32, 0x03, 0x40, 0x28, 0x05, 0x00, 0xA0, 0x34, 0x0C, 0xFF, 0x10, 0x1A, 0x01, 0x40, 0x18, 0x03, 0x00, 0x60, 0x1C, 0x06, 0xFF, 0x00, // 'B' 0x0F, 0x81, 0x83, 0x18, 0x04, 0x80, 0x28, 0x01, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x01, 0x20, 0x09, 0x80, 0x46, 0x0C, 0x0F, 0x80, // 'C' 0xFF, 0x08, 0x18, 0x80, 0x48, 0x02, 0x80, 0x28, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x28, 0x02, 0x80, 0x48, 0x18, 0xFF, 0x00, // 'D' 0xFF, 0xF0, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0xFF, 0xD0, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0xFF, 0xE0, // 'E' 0xFF, 0xF0, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0xFF, 0xD0, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0x80, 0x00, // 'F' 0x0F, 0xC1, 0x83, 0x18, 0x04, 0x80, 0x18, 0x00, 0xC0, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x0F, 0xE0, 0x03, 0x00, 0x1C, 0x00, 0xA0, 0x05, 0x80, 0x26, 0x06, 0x0F, 0xC0, // 'G' 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0xFF, 0xF8, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x10, // 'H' 0xFF, 0xFF, 0x80, // 'I' 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x80, 0x60, 0x1C, 0x09, 0x86, 0x3E, 0x00, // 'J' 0x80, 0x24, 0x02, 0x20, 0x21, 0x02, 0x08, 0x20, 0x42, 0x02, 0x20, 0x12, 0x00, 0xA8, 0x06, 0x20, 0x20, 0x81, 0x02, 0x08, 0x10, 0x40, 0x42, 0x01, 0x10, 0x04, 0x80, 0x10, // 'K' 0x80, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x08, 0x02, 0x00, 0xFF, 0xC0, // 'L' 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x05, 0xA0, 0x05, 0xA0, 0x05, 0x90, 0x09, 0x90, 0x09, 0x90, 0x11, 0x88, 0x11, 0x88, 0x21, 0x84, 0x21, 0x84, 0x21, 0x84, 0x41, 0x82, 0x41, 0x82, 0x81, 0x81, 0x81, 0x81, 0x01, // 'M' 0x80, 0x1C, 0x01, 0xA0, 0x1A, 0x01, 0x90, 0x19, 0x01, 0x88, 0x18, 0x41, 0x84, 0x18, 0x21, 0x81, 0x18, 0x11, 0x80, 0x98, 0x09, 0x80, 0x58, 0x03, 0x80, 0x10, // 'N' 0x0F, 0x81, 0x83, 0x18, 0x0C, 0x80, 0x28, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0xA0, 0x09, 0x80, 0xC6, 0x0C, 0x0F, 0x80, // 'O' 0xFF, 0x10, 0x1A, 0x01, 0x40, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x03, 0x80, 0xDF, 0xE2, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0x80, 0x00, // 'P' 0x0F, 0x81, 0x83, 0x18, 0x0C, 0x80, 0x28, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x01, 0x20, 0x09, 0x80, 0x86, 0x08, 0x0F, 0xC0, 0x01, 0x00, 0x08, 0x00, 0x20, // 'Q' 0xFF, 0x08, 0x0C, 0x80, 0x48, 0x02, 0x80, 0x28, 0x02, 0x80, 0x28, 0x04, 0x80, 0xCF, 0xF0, 0x81, 0x08, 0x10, 0x80, 0x88, 0x04, 0x80, 0x48, 0x02, 0x80, 0x10, // 'R' 0x1F, 0x86, 0x0C, 0xC0, 0x28, 0x01, 0x80, 0x18, 0x00, 0x40, 0x03, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x20, 0x01, 0x80, 0x18, 0x01, 0x40, 0x36, 0x06, 0x1F, 0x80, // 'S' 0x7F, 0xFC, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, // 'T' 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x03, 0x40, 0x23, 0x0C, 0x1F, 0x80, // 'U' 0x80, 0x05, 0x00, 0x24, 0x00, 0x90, 0x02, 0x20, 0x10, 0x80, 0x41, 0x01, 0x04, 0x08, 0x10, 0x20, 0x21, 0x00, 0x84, 0x02, 0x10, 0x04, 0x80, 0x12, 0x00, 0x28, 0x00, 0xC0, 0x01, 0x00, // 'V' 0x40, 0x20, 0x09, 0x00, 0xC0, 0x24, 0x05, 0x01, 0x10, 0x14, 0x04, 0x20, 0x48, 0x10, 0x81, 0x20, 0x42, 0x08, 0x82, 0x08, 0x21, 0x08, 0x10, 0x84, 0x20, 0x44, 0x11, 0x01, 0x10, 0x44, 0x02, 0x40, 0x90, 0x0A, 0x02, 0x40, 0x28, 0x0A, 0x00, 0xA0, 0x18, 0x01, 0x80, 0x60, 0x04, 0x00, 0x80, // 'W' 0x40, 0x08, 0x80, 0x42, 0x01, 0x04, 0x08, 0x08, 0x40, 0x11, 0x00, 0x48, 0x00, 0xC0, 0x01, 0x00, 0x0C, 0x00, 0x48, 0x02, 0x10, 0x08, 0x40, 0x40, 0x82, 0x01, 0x10, 0x02, 0x40, 0x08, // 'X' 0x40, 0x04, 0x80, 0x08, 0x80, 0x20, 0x80, 0x81, 0x01, 0x01, 0x04, 0x02, 0x10, 0x02, 0x20, 0x02, 0x80, 0x05, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, // 'Y' 0xFF, 0xF0, 0x01, 0x00, 0x08, 0x00, 0x80, 0x08, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x20, 0x02, 0x00, 0x20, 0x02, 0x00, 0x10, 0x01, 0x00, 0x10, 0x00, 0xFF, 0xF0, // 'Z' 0xF8, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF0, // '[' 0x40, 0x20, 0x10, 0x04, 0x02, 0x01, 0x00, 0x40, 0x20, 0x08, 0x04, 0x02, 0x00, 0x80, 0x40, 0x10, 0x08, 0x04, 0x01, 0x00, 0x80, 0x00, // '\' 0xF1, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0xF0, // ']' 0x10, 0x18, 0x28, 0x24, 0x44, 0x44, 0x42, 0x82, 0x81, // '^' 0x7F, 0xE0, // '_' 0x42, 0x20, // '`' 0x3F, 0x0C, 0x12, 0x01, 0x00, 0x20, 0x04, 0x3F, 0x98, 0x16, 0x02, 0x80, 0x50, 0x0A, 0x03, 0x20, 0xA3, 0xE4, // 'a' 0x80, 0x20, 0x08, 0x02, 0x00, 0x80, 0x27, 0x8A, 0x1B, 0x02, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x07, 0x02, 0xA1, 0xA7, 0x80, // 'b' 0x1F, 0x08, 0x64, 0x0F, 0x01, 0x80, 0x60, 0x08, 0x02, 0x00, 0x80, 0x20, 0x14, 0x04, 0x86, 0x1F, 0x00, // 'c' 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x47, 0x96, 0x15, 0x03, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x05, 0x03, 0x61, 0x47, 0x90, // 'd' 0x1E, 0x08, 0x64, 0x0A, 0x01, 0x80, 0x7F, 0xF8, 0x02, 0x00, 0x80, 0x30, 0x04, 0x00, 0xC2, 0x1F, 0x00, // 'e' 0x07, 0x04, 0x04, 0x02, 0x01, 0x00, 0x81, 0xF8, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x00, // 'f' 0x1E, 0x58, 0x54, 0x0E, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x14, 0x0D, 0x85, 0x1E, 0x40, 0x10, 0x05, 0x02, 0x21, 0x87, 0x80, // 'g' 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xF2, 0x85, 0x81, 0xC0, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x40, // 'h' 0x40, 0x04, 0x92, 0x49, 0x24, 0x92, 0x40, // 'i' 0x08, 0x00, 0x00, 0x08, 0x20, 0x82, 0x08, 0x20, 0x82, 0x08, 0x20, 0x82, 0x08, 0x20, 0x82, 0x13, 0x80, // 'j' 0x80, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x28, 0x12, 0x08, 0x8C, 0x24, 0x0A, 0x03, 0x40, 0x88, 0x21, 0x08, 0x22, 0x08, 0x81, 0x20, 0x20, // 'k' 0xFF, 0xFF, 0xC0, // 'l' 0x9E, 0x1E, 0x50, 0x90, 0xB0, 0x30, 0x38, 0x10, 0x18, 0x08, 0x0C, 0x04, 0x06, 0x02, 0x03, 0x01, 0x01, 0x80, 0x80, 0xC0, 0x40, 0x60, 0x20, 0x30, 0x10, 0x18, 0x08, 0x08, // 'm' 0x9E, 0x50, 0xB0, 0x38, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x08, // 'n' 0x1F, 0x06, 0x31, 0x01, 0x60, 0x38, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x38, 0x0D, 0x01, 0x10, 0x41, 0xF0, // 'o' 0x9E, 0x28, 0x6C, 0x0A, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x3C, 0x0A, 0x86, 0x9E, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x00, // 'p' 0x1E, 0x58, 0x54, 0x0E, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x14, 0x0D, 0x85, 0x1E, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, // 'q' 0x9D, 0x43, 0x04, 0x08, 0x10, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, 0x00, // 'r' 0x3E, 0x21, 0xA0, 0x30, 0x18, 0x02, 0x00, 0xF0, 0x06, 0x00, 0xC0, 0x60, 0x28, 0x23, 0xE0, // 's' 0x10, 0x10, 0x10, 0x10, 0x7E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x18, 0x0E, // 't' 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x68, 0x53, 0xC8, // 'u' 0x80, 0x28, 0x09, 0x01, 0x10, 0x22, 0x08, 0x41, 0x04, 0x20, 0x88, 0x11, 0x01, 0x40, 0x28, 0x03, 0x00, 0x40, // 'v' 0x40, 0x40, 0x90, 0x30, 0x24, 0x0C, 0x10, 0x85, 0x04, 0x21, 0x21, 0x08, 0x48, 0x41, 0x22, 0x20, 0x48, 0x48, 0x12, 0x12, 0x05, 0x05, 0x00, 0xC0, 0xC0, 0x30, 0x30, 0x08, 0x04, 0x00, // 'w' 0x40, 0x44, 0x08, 0x82, 0x08, 0x80, 0xA0, 0x0C, 0x01, 0x00, 0x50, 0x09, 0x02, 0x20, 0x82, 0x10, 0x24, 0x04, // 'x' 0x80, 0x24, 0x02, 0x40, 0x42, 0x04, 0x20, 0x82, 0x08, 0x10, 0x81, 0x10, 0x09, 0x00, 0xA0, 0x0A, 0x00, 0x60, 0x04, 0x00, 0x40, 0x04, 0x00, 0x80, 0x08, 0x07, 0x00, // 'y' 0xFF, 0x80, 0x20, 0x10, 0x08, 0x04, 0x01, 0x00, 0x80, 0x40, 0x20, 0x08, 0x04, 0x02, 0x00, 0xFF, 0xC0, // 'z' 0x00, 0x06, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0xC0, 0x60, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x04, 0x02, // '{' 0xFF, 0xFF, 0xF0, // '|' 0x00, 0x60, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x03, 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x20, 0x40 // '}' }; const GFXglyph Roboto_Thin_24Glyphs[] PROGMEM = { // bitmapOffset, width, height, xAdvance, xOffset, yOffset {0, 1, 1, 7, 0, 0}, // ' ' {1, 3, 17, 6, 1, -17}, // '!' {8, 3, 5, 7, 2, -18}, // '"' {10, 14, 17, 14, 0, -17}, // '#' {40, 10, 23, 14, 1, -20}, // '$' {69, 15, 17, 18, 1, -17}, // '%' {101, 13, 17, 15, 1, -17}, // '&' {129, 1, 5, 6, 2, -18}, // ''' {130, 6, 26, 9, 2, -20}, // '(' {150, 6, 26, 9, 0, -20}, // ')' {170, 11, 10, 12, 0, -17}, // '*' {184, 13, 12, 15, 0, -14}, // '+' {204, 2, 5, 6, 1, -2}, // ',' {206, 7, 1, 8, 0, -8}, // '-' {207, 3, 1, 6, 1, -1}, // '.' {208, 9, 19, 10, 0, -17}, // '/' {230, 10, 17, 13, 1, -17}, // '0' {252, 6, 17, 14, 2, -17}, // '1' {265, 11, 17, 14, 1, -17}, // '2' {289, 11, 17, 14, 1, -17}, // '3' {313, 13, 17, 14, 0, -17}, // '4' {341, 11, 17, 14, 1, -17}, // '5' {365, 11, 17, 15, 2, -17}, // '6' {389, 11, 17, 14, 1, -17}, // '7' {413, 11, 17, 14, 1, -17}, // '8' {437, 11, 17, 15, 1, -17}, // '9' {461, 2, 13, 5, 1, -13}, // ':' {465, 2, 16, 6, 1, -13}, // ';' {469, 10, 10, 14, 1, -13}, // '<' {482, 11, 6, 14, 1, -11}, // '=' {491, 10, 10, 13, 1, -13}, // '>' {504, 8, 17, 11, 1, -17}, // '?' {521, 19, 22, 23, 2, -17}, // '@' {574, 14, 17, 15, 0, -17}, // 'A' {604, 11, 17, 15, 2, -17}, // 'B' {628, 13, 17, 17, 2, -17}, // 'C' {656, 12, 17, 17, 2, -17}, // 'D' {682, 11, 17, 15, 2, -17}, // 'E' {706, 11, 17, 15, 2, -17}, // 'F' {730, 13, 17, 18, 2, -17}, // 'G' {758, 12, 17, 17, 2, -17}, // 'H' {784, 1, 17, 8, 3, -17}, // 'I' {787, 10, 17, 14, 1, -17}, // 'J' {809, 13, 17, 16, 2, -17}, // 'K' {837, 10, 17, 13, 2, -17}, // 'L' {859, 16, 17, 21, 2, -17}, // 'M' {893, 12, 17, 17, 2, -17}, // 'N' {919, 13, 17, 18, 2, -17}, // 'O' {947, 11, 17, 15, 2, -17}, // 'P' {971, 13, 20, 18, 2, -17}, // 'Q' {1004, 12, 17, 17, 2, -17}, // 'R' {1030, 12, 17, 15, 1, -17}, // 'S' {1056, 15, 17, 16, 0, -17}, // 'T' {1088, 12, 17, 17, 2, -17}, // 'U' {1114, 14, 17, 15, 0, -17}, // 'V' {1144, 22, 17, 23, 0, -17}, // 'W' {1191, 14, 17, 15, 0, -17}, // 'X' {1221, 15, 17, 16, 0, -17}, // 'Y' {1253, 13, 17, 15, 1, -17}, // 'Z' {1281, 4, 23, 6, 2, -19}, // '[' {1293, 9, 19, 10, 0, -17}, // '\' {1315, 4, 23, 7, 0, -19}, // ']' {1327, 8, 9, 11, 1, -17}, // '^' {1336, 11, 1, 11, -1, 0}, // '_' {1338, 4, 3, 7, 1, -18}, // '`' {1340, 11, 13, 14, 1, -13}, // 'a' {1358, 10, 18, 14, 2, -18}, // 'b' {1381, 10, 13, 13, 1, -13}, // 'c' {1398, 10, 18, 14, 1, -18}, // 'd' {1421, 10, 13, 13, 1, -13}, // 'e' {1438, 9, 19, 9, 0, -19}, // 'f' {1460, 10, 18, 14, 1, -13}, // 'g' {1483, 9, 18, 14, 2, -18}, // 'h' {1504, 3, 17, 6, 1, -17}, // 'i' {1511, 6, 22, 6, -2, -17}, // 'j' {1528, 10, 18, 13, 2, -18}, // 'k' {1551, 1, 18, 6, 2, -18}, // 'l' {1554, 17, 13, 22, 2, -13}, // 'm' {1582, 9, 13, 14, 2, -13}, // 'n' {1597, 11, 13, 14, 1, -13}, // 'o' {1615, 10, 18, 14, 2, -13}, // 'p' {1638, 10, 18, 14, 1, -13}, // 'q' {1661, 7, 13, 9, 2, -13}, // 'r' {1673, 9, 13, 12, 1, -13}, // 's' {1688, 8, 17, 9, 0, -17}, // 't' {1705, 9, 13, 14, 2, -13}, // 'u' {1720, 11, 13, 12, 0, -13}, // 'v' {1738, 18, 13, 19, 0, -13}, // 'w' {1768, 11, 13, 12, 0, -13}, // 'x' {1786, 12, 18, 12, 0, -13}, // 'y' {1813, 10, 13, 12, 1, -13}, // 'z' {1830, 8, 25, 9, 1, -19}, // '{' {1855, 1, 20, 6, 2, -17}, // '|' {1858, 8, 25, 9, -1, -19} // '}' }; const GFXfont Roboto_Thin_24 PROGMEM = {(uint8_t *)Roboto_Thin_24Bitmaps, (GFXglyph *)Roboto_Thin_24Glyphs, 0x20, 0x7D, 29}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Custom/Satisfy_24.h ================================================ // Created by http://oleddisplay.squix.ch/ Consider a donation // In case of problems make sure that you are using the font file with the // correct version! const uint8_t Satisfy_24Bitmaps[] PROGMEM = { // Bitmap Data: 0x00, // ' ' 0x06, 0x06, 0x0E, 0x0E, 0x0C, 0x0C, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x00, 0x00, 0x70, 0x60, // '!' 0x00, 0x33, 0x36, 0x36, 0x26, 0x66, 0x6C, 0x6C, 0x00, // '"' 0x00, 0x00, 0x66, 0x06, 0x40, 0x4C, 0x3F, 0xF0, 0x88, 0x09, 0x81, 0x90, 0x7F, 0xE1, 0x30, 0x33, 0x03, 0x60, 0x00, 0x00, // '#' 0x02, 0x01, 0x03, 0xC3, 0x31, 0x19, 0x8C, 0xC4, 0x30, 0x18, 0x04, 0x03, 0x00, 0x8C, 0x66, 0x31, 0x30, 0xF0, 0x30, 0x10, 0x00, // '$' 0x00, 0x00, 0x0E, 0x06, 0x1A, 0x0C, 0x3B, 0x18, 0x33, 0x10, 0x33, 0x30, 0x32, 0x60, 0x36, 0x40, 0x1C, 0xC0, 0x01, 0x80, 0x01, 0x00, 0x03, 0x78, 0x06, 0xCC, 0x0C, 0xCC, 0x0D, 0x8C, 0x19, 0x8C, 0x31, 0x98, 0x31, 0x98, 0x60, 0xE0, // '%' 0x00, 0x70, 0x04, 0x80, 0x44, 0x06, 0x60, 0x36, 0x01, 0xE0, 0x0F, 0x00, 0x70, 0x07, 0x00, 0x78, 0x07, 0xC0, 0x36, 0x03, 0x30, 0x39, 0xC1, 0x8E, 0x0C, 0x32, 0x61, 0xE3, 0x8E, 0x0F, 0xF0, 0x00, 0x40, // '&' 0x01, 0x8C, 0x62, 0x31, 0x8C, 0x00, // ''' 0x00, 0x02, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30, 0x20, 0x60, 0x60, 0x60, 0x60, 0x40, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x40, 0x40, 0x40, 0x00, // '(' 0x00, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x06, 0x06, 0x06, 0x04, 0x0C, 0x0C, 0x08, 0x18, 0x10, 0x30, 0x60, 0x40, 0x80, // ')' 0x00, 0x0C, 0x4C, 0x6B, 0x3F, 0x18, 0x7C, 0x66, 0x24, // '*' 0x06, 0x01, 0x80, 0x60, 0x10, 0x7F, 0x83, 0x00, 0xC0, 0x20, 0x00, 0x00, // '+' 0x6E, 0x64, 0xC0, // ',' 0x7F, 0x80, 0x00, // '-' 0x0E, 0xE0, // '.' 0x00, 0x00, 0x01, 0x80, 0x18, 0x00, 0xC0, 0x0C, 0x00, 0x60, 0x06, 0x00, 0x20, 0x03, 0x00, 0x10, 0x01, 0x80, 0x18, 0x00, 0xC0, 0x0C, 0x00, 0x60, 0x06, 0x00, 0x30, 0x03, 0x00, 0x18, 0x00, // '/' 0x07, 0x01, 0xB0, 0x62, 0x08, 0x63, 0x0C, 0x41, 0x98, 0x33, 0x06, 0x60, 0xD8, 0x1B, 0x07, 0x60, 0xCC, 0x19, 0x83, 0x30, 0xC6, 0x18, 0x46, 0x0D, 0x80, 0xE0, 0x00, // '0' 0x0C, 0x38, 0x70, 0x60, 0xC3, 0x06, 0x0C, 0x18, 0x20, 0xC1, 0x83, 0x04, 0x18, 0x30, 0x60, 0xC0, 0x00, // '1' 0x03, 0xC0, 0x8C, 0x31, 0x8C, 0x31, 0x86, 0x30, 0xC0, 0x30, 0x06, 0x01, 0x80, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xFF, 0x8F, 0xF1, 0x02, 0x00, // '2' 0x07, 0x83, 0x98, 0x61, 0x98, 0x33, 0x06, 0x71, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x7C, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x66, 0x18, 0xC3, 0x1C, 0xC0, 0xF0, 0x00, // '3' 0x00, 0x00, 0x38, 0x0F, 0x01, 0x40, 0x68, 0x1B, 0x06, 0x61, 0x8C, 0x31, 0x0C, 0x21, 0xFE, 0x3F, 0xC0, 0x30, 0x04, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x00, // '4' 0x00, 0x00, 0xFF, 0x0F, 0xF0, 0x80, 0x08, 0x01, 0x80, 0x10, 0x01, 0x38, 0x3F, 0xC3, 0x8C, 0x38, 0xC0, 0x0C, 0x00, 0x80, 0x08, 0x21, 0x86, 0x10, 0x73, 0x07, 0xE0, 0x38, 0x00, // '5' 0x03, 0x83, 0x60, 0x98, 0x66, 0x31, 0x8C, 0x06, 0x01, 0xBC, 0x79, 0x3C, 0x6F, 0x1B, 0x06, 0xC1, 0xB0, 0xEC, 0x33, 0x0C, 0x46, 0x19, 0x03, 0x80, // '6' 0x3F, 0xDC, 0x34, 0x0C, 0x06, 0x03, 0x80, 0xC0, 0x60, 0x38, 0x0C, 0x07, 0x01, 0x80, 0xE0, 0x30, 0x1C, 0x06, 0x01, 0x80, 0x60, 0x18, 0x00, 0x00, // '7' 0x03, 0xC0, 0x8C, 0x21, 0x8C, 0x31, 0x8E, 0x31, 0x87, 0x70, 0xFC, 0x0F, 0x03, 0xE0, 0xDC, 0x39, 0xC6, 0x19, 0x83, 0x30, 0x66, 0x0C, 0xC3, 0x08, 0xC0, 0xF0, 0x00, // '8' 0x07, 0x03, 0x61, 0x8C, 0xC3, 0x30, 0xD8, 0x36, 0x1D, 0x87, 0x61, 0xD8, 0xE6, 0x29, 0xD6, 0x39, 0x80, 0xC0, 0x32, 0x18, 0xCE, 0x3F, 0x07, 0x00, // '9' 0x01, 0xCC, 0x00, 0x03, 0x9C, // ':' 0x01, 0x9C, 0x00, 0x03, 0x9C, 0x62, 0x00, // ';' 0x03, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0xC0, 0x60, 0x18, 0x0C, 0x00, // '<' 0x3F, 0xC8, 0x00, 0x01, 0xFE, 0x00, 0x00, // '=' 0x18, 0x0C, 0x0C, 0x06, 0x07, 0x07, 0x0E, 0x18, 0x30, 0x60, // '>' 0x07, 0xC0, 0xE3, 0x06, 0x0C, 0x70, 0x61, 0x83, 0x00, 0x38, 0x01, 0x80, 0x1C, 0x01, 0xC0, 0x7C, 0x07, 0x80, 0x30, 0x01, 0x80, 0x1C, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x03, 0x80, 0x1C, 0x00, // '?' 0x00, 0xF8, 0x03, 0x87, 0x03, 0x00, 0xC3, 0x0F, 0x61, 0x1B, 0x99, 0x99, 0xCD, 0x98, 0xE6, 0xCC, 0x23, 0x6C, 0x11, 0xB6, 0x18, 0xDB, 0x08, 0xCD, 0x8C, 0x66, 0x7E, 0x61, 0x83, 0x70, 0x61, 0xE0, 0x1E, 0x00, 0x00, 0x00, 0x00, // '@' 0x00, 0x1C, 0x00, 0x4C, 0x01, 0x18, 0x06, 0x30, 0x18, 0x60, 0x31, 0x80, 0xC3, 0x01, 0x86, 0x03, 0x0C, 0x0C, 0x38, 0x18, 0x60, 0x30, 0xC0, 0xFF, 0xA7, 0xFF, 0x9F, 0x06, 0x0C, 0x18, 0x18, 0x30, 0x70, 0x60, 0xE0, 0xC1, 0x81, 0x87, 0x03, 0x0C, 0x07, 0x00, 0x0E, 0x00, 0x00, // 'A' 0x00, 0x00, 0x03, 0xF0, 0x0F, 0x0C, 0x1F, 0x0E, 0x1F, 0x0E, 0x06, 0x0E, 0x06, 0x0E, 0x06, 0x0C, 0x0C, 0x1C, 0x0C, 0x18, 0x0C, 0x30, 0x0F, 0xE0, 0x1F, 0xB0, 0x18, 0x18, 0x18, 0x18, 0x38, 0x18, 0x30, 0x1C, 0x30, 0x18, 0x30, 0x38, 0x70, 0x30, 0x70, 0x70, 0x61, 0xC0, 0x3F, 0x00, // 'B' 0x00, 0xF0, 0x0C, 0x60, 0x61, 0x83, 0x06, 0x18, 0x1C, 0x40, 0xE3, 0x03, 0x8C, 0x1C, 0x60, 0x01, 0x80, 0x06, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x01, 0x06, 0x08, 0x18, 0x60, 0x7F, 0x00, 0x70, 0x00, // 'C' 0x07, 0xC0, 0x3F, 0xE0, 0x60, 0xE0, 0x80, 0xC0, 0x60, 0xC1, 0xC1, 0x83, 0x03, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x1C, 0x70, 0x30, 0xC0, 0x61, 0x80, 0xC3, 0x03, 0x8E, 0x06, 0x18, 0x1C, 0x30, 0x30, 0x60, 0xC1, 0x83, 0x83, 0x0E, 0x0E, 0x30, 0x0F, 0x80, 0x00, // 'D' 0x00, 0xF8, 0x0E, 0x30, 0x60, 0xC3, 0x03, 0x1C, 0x1C, 0x60, 0x61, 0x83, 0x86, 0x00, 0x1C, 0x00, 0x30, 0x00, 0x7C, 0x07, 0xE0, 0x38, 0x01, 0xC0, 0x06, 0x00, 0x38, 0x04, 0xE0, 0x13, 0x80, 0x8E, 0x06, 0x1C, 0x30, 0x3F, 0x80, 0x7C, 0x00, // 'E' 0x07, 0xF0, 0xE0, 0x66, 0x01, 0xD8, 0x06, 0x7C, 0x19, 0xE0, 0x40, 0x03, 0x00, 0x0C, 0x00, 0x60, 0x01, 0x83, 0xFF, 0x88, 0x30, 0x01, 0x80, 0x06, 0x00, 0x30, 0x00, 0xC0, 0x07, 0x00, 0x18, 0x00, 0x60, 0x03, 0x80, 0x0E, 0x00, 0x38, 0x00, 0x00, 0x00, // 'F' 0x00, 0xF0, 0x0C, 0x40, 0x61, 0x83, 0x06, 0x18, 0x18, 0x60, 0xE3, 0x07, 0x0C, 0x1C, 0x70, 0x01, 0x80, 0x06, 0x00, 0x38, 0xFE, 0xC7, 0xFB, 0x00, 0xCC, 0x03, 0x30, 0x18, 0xC0, 0x63, 0x03, 0x04, 0x0C, 0x18, 0x60, 0x23, 0x00, 0x78, 0x00, // 'G' 0x00, 0x00, 0x03, 0x00, 0x01, 0x80, 0xC1, 0xC0, 0xE0, 0xC0, 0x60, 0x60, 0x30, 0x30, 0x38, 0x18, 0x18, 0x18, 0x0C, 0x0C, 0x0E, 0x06, 0x06, 0x03, 0xFF, 0xC7, 0xF1, 0xC1, 0x9D, 0x80, 0xC6, 0xC0, 0x61, 0xE0, 0x70, 0x70, 0x38, 0x30, 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x06, 0x07, 0x03, 0x03, 0x83, 0x80, // 'H' 0x00, 0x1C, 0x00, 0xF8, 0x03, 0xB0, 0x06, 0x60, 0x1C, 0xC0, 0x33, 0x80, 0x67, 0x00, 0xCC, 0x01, 0x98, 0x03, 0x70, 0x02, 0xE0, 0x05, 0x80, 0x03, 0x01, 0xFF, 0xCF, 0x98, 0x38, 0x30, 0xC0, 0x61, 0x81, 0x83, 0x03, 0x03, 0x0C, 0x07, 0x30, 0x03, 0xC0, 0x00, // 'I' 0x01, 0xFF, 0x00, 0x8C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x70, 0x00, 0x38, 0x00, 0x18, 0x03, 0x8C, 0x03, 0xC6, 0x03, 0x87, 0x01, 0x83, 0x01, 0xC1, 0x80, 0xC1, 0xC0, 0x60, 0xC0, 0x30, 0x60, 0x18, 0x60, 0x06, 0x60, 0x01, 0xE0, 0x00, // 'J' 0x00, 0x00, 0x06, 0x08, 0x0C, 0x38, 0x38, 0x60, 0x60, 0xC0, 0xC3, 0x83, 0x86, 0x06, 0x1C, 0x0C, 0x30, 0x18, 0xC0, 0x63, 0x00, 0xCC, 0x01, 0xF0, 0x07, 0xF8, 0x0E, 0x38, 0x18, 0x30, 0x30, 0x60, 0x60, 0xC0, 0xC3, 0x03, 0x86, 0x07, 0x18, 0x0E, 0x30, 0x18, 0x60, 0x00, 0x60, 0x00, 0x78, // 'K' 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x3B, 0x00, 0x33, 0x00, 0x76, 0x00, 0x6E, 0x00, 0x7C, 0x00, 0x70, 0x0F, 0xE0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x3E, 0x00, 0x6F, 0x04, 0x7F, 0x8C, 0x79, 0xFC, 0x00, 0x78, // 'L' 0x00, 0x30, 0x30, 0x07, 0x83, 0x80, 0x3C, 0x3C, 0x01, 0xE1, 0xE0, 0x1B, 0x0B, 0x00, 0xD8, 0xD0, 0x06, 0xC5, 0x80, 0x76, 0x6C, 0x03, 0x72, 0x60, 0x1B, 0x33, 0x00, 0xD9, 0x30, 0x0E, 0xD9, 0x83, 0x66, 0xCC, 0x13, 0x34, 0x61, 0x99, 0xE7, 0x09, 0xCE, 0x30, 0xCC, 0x71, 0x86, 0x63, 0x8C, 0x33, 0x0C, 0x61, 0xB8, 0x07, 0x07, 0x80, 0x1C, 0x1C, 0x00, 0xF0, // 'M' 0x00, 0x00, 0x0C, 0x06, 0x0C, 0x0D, 0x0E, 0x19, 0x1E, 0x1B, 0x16, 0x1B, 0x16, 0x36, 0x16, 0x7C, 0x16, 0x30, 0x26, 0x20, 0x26, 0x20, 0x26, 0x20, 0x26, 0x60, 0x66, 0x60, 0x46, 0x60, 0x46, 0x40, 0x46, 0x40, 0xC7, 0xC0, 0xC7, 0xC0, 0xC3, 0x80, 0xC3, 0x80, 0xC3, 0x80, 0xC1, 0x00, // 'N' 0x01, 0xE0, 0x1F, 0x81, 0xCC, 0x1C, 0x30, 0xC1, 0x8C, 0x0C, 0x60, 0x67, 0x03, 0x30, 0x19, 0x80, 0xDC, 0x06, 0xC0, 0x36, 0x03, 0x30, 0x19, 0x80, 0xCC, 0x06, 0x60, 0x63, 0x03, 0x18, 0x30, 0x43, 0x03, 0x30, 0x0F, 0x00, // 'O' 0x01, 0xF8, 0x07, 0x0C, 0x1F, 0x06, 0x1B, 0x06, 0x02, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0E, 0x04, 0x0C, 0x0C, 0x1C, 0x0C, 0x38, 0x0C, 0x70, 0x0F, 0xC0, 0x1F, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x70, 0x00, 0x60, 0x00, // 'P' 0x01, 0xE0, 0x31, 0x83, 0x0C, 0x38, 0x31, 0x81, 0x9C, 0x0C, 0xC0, 0x6E, 0x03, 0x70, 0x1B, 0x00, 0xD8, 0x0E, 0xC0, 0x66, 0x03, 0x30, 0x39, 0x81, 0x8E, 0x0C, 0x38, 0xC0, 0x06, 0x0F, 0xE0, 0xE7, 0x06, 0x7C, 0x3E, 0x38, // 'Q' 0x01, 0xF8, 0x07, 0x0C, 0x1F, 0x06, 0x1B, 0x06, 0x02, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0E, 0x06, 0x0C, 0x0C, 0x1C, 0x0C, 0x38, 0x1F, 0x70, 0x1D, 0xC0, 0x1F, 0x80, 0x18, 0xC0, 0x18, 0xC0, 0x18, 0xC0, 0x38, 0xC0, 0x38, 0xE0, 0x30, 0xE0, 0x70, 0x60, 0x60, 0x60, 0x00, 0x78, 0x00, 0x30, // 'R' 0x00, 0x00, 0x07, 0xC0, 0x71, 0x81, 0x82, 0x0C, 0x18, 0x30, 0x61, 0xC1, 0x83, 0x0E, 0x0C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0x80, 0x07, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x61, 0x81, 0xCE, 0x03, 0xF0, 0x02, 0x00, // 'S' 0x00, 0x03, 0xFF, 0xDC, 0xC0, 0x06, 0x00, 0x70, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x0E, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x01, 0xC0, 0x0E, 0x00, 0x60, 0x03, 0x00, 0x18, 0x01, 0xC0, 0x00, // 'T' 0x00, 0x00, 0x18, 0x18, 0x70, 0x70, 0xE0, 0xE1, 0x81, 0x87, 0x07, 0x0E, 0x0E, 0x18, 0x18, 0x30, 0x30, 0xE0, 0xE1, 0x81, 0x83, 0x03, 0x06, 0x06, 0x1C, 0x0C, 0x30, 0x30, 0x60, 0x60, 0xC0, 0xC1, 0x83, 0x83, 0x07, 0x06, 0x1E, 0x06, 0x6C, 0x0F, 0x18, 0x00, // 'U' 0x00, 0x01, 0x81, 0x9C, 0x0C, 0xC0, 0xE6, 0x06, 0x30, 0x71, 0x83, 0x18, 0x18, 0xC1, 0xC6, 0x0C, 0x30, 0x61, 0x87, 0x0C, 0x30, 0x61, 0x83, 0x0C, 0x18, 0xC0, 0xC6, 0x06, 0x20, 0x33, 0x00, 0x98, 0x07, 0x80, 0x3C, 0x00, 0xC0, 0x00, // 'V' 0x06, 0x00, 0x60, 0xC1, 0x06, 0x0C, 0x30, 0x61, 0x83, 0x06, 0x18, 0x70, 0x63, 0x87, 0x06, 0x30, 0x70, 0x63, 0x07, 0x06, 0x30, 0x60, 0x66, 0x06, 0x0C, 0x60, 0x60, 0xC6, 0x0E, 0x0C, 0x60, 0xE0, 0xC6, 0x0E, 0x18, 0x61, 0xE1, 0x86, 0x1E, 0x18, 0x61, 0x61, 0x06, 0x36, 0x30, 0x62, 0x62, 0x06, 0x67, 0x40, 0x3C, 0x3C, 0x01, 0x83, 0x80, // 'W' 0x06, 0x00, 0xC1, 0x60, 0x78, 0x66, 0x0C, 0x08, 0xC3, 0x01, 0x98, 0xE0, 0x3F, 0x18, 0x03, 0xA6, 0x00, 0x05, 0xC0, 0x00, 0xF0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x60, 0x00, 0x1C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x36, 0x00, 0x06, 0x40, 0x01, 0x8C, 0x00, 0x71, 0x80, 0x0C, 0x30, 0x83, 0x83, 0x20, 0xE0, 0x78, 0x00, 0x00, 0x00, // 'X' 0x00, 0x0C, 0x70, 0x71, 0xC1, 0x86, 0x06, 0x18, 0x18, 0xE0, 0xE3, 0x03, 0x0C, 0x0C, 0x30, 0x31, 0xC1, 0xC6, 0x06, 0x18, 0x38, 0x60, 0xE1, 0x87, 0x87, 0x34, 0x0F, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x18, 0x10, 0x60, 0x63, 0x03, 0xF8, 0x07, 0xC0, 0x00, // 'Y' 0x07, 0xFC, 0x3F, 0xF0, 0xC0, 0xC0, 0x07, 0x00, 0x18, 0x00, 0xE0, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x07, 0x00, 0x38, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x01, 0xC0, 0x0E, 0x00, 0x30, 0x01, 0x80, 0x06, 0x00, 0x37, 0xF8, 0xFF, 0xE1, 0x01, 0x00, // 'Z' 0x03, 0x80, 0x80, 0x60, 0x18, 0x04, 0x01, 0x00, 0xC0, 0x30, 0x08, 0x02, 0x01, 0x80, 0x60, 0x10, 0x04, 0x03, 0x00, 0xC0, 0x30, 0x08, 0x02, 0x01, 0x80, 0x60, 0x18, 0x07, 0x00, // '[' 0x01, 0x86, 0x18, 0x60, 0x82, 0x08, 0x30, 0xC3, 0x0C, 0x10, 0x41, 0x86, 0x18, 0x61, 0xC0, // '\' 0x03, 0x80, 0xC0, 0x60, 0x30, 0x10, 0x18, 0x0C, 0x06, 0x02, 0x01, 0x01, 0x80, 0xC0, 0x60, 0x20, 0x30, 0x18, 0x0C, 0x04, 0x06, 0x03, 0x01, 0x01, 0x81, 0xC0, // ']' 0x06, 0x07, 0x83, 0xC3, 0x61, 0x31, 0x99, 0x8C, 0xC6, 0xC3, 0x00, 0x00, // '^' 0x7F, 0xF7, 0xFF, 0x80, 0x00, // '_' 0x47, 0x0C, 0x00, // '`' 0x00, 0x00, 0x3C, 0x01, 0xB0, 0x0C, 0x40, 0x31, 0x01, 0x8C, 0x26, 0x31, 0x38, 0xCC, 0xEE, 0x61, 0xEF, 0x07, 0x18, 0x00, // 'a' 0x00, 0x00, 0xC0, 0x06, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x01, 0xE0, 0x0E, 0x00, 0x70, 0x03, 0x30, 0x39, 0x8D, 0xCF, 0x8C, 0x20, 0x63, 0x03, 0x18, 0x19, 0x80, 0xC8, 0x03, 0x80, 0x00, // 'b' 0x1C, 0x03, 0x20, 0x66, 0x06, 0x60, 0xC0, 0x0C, 0x02, 0xC0, 0x4C, 0x0C, 0xC1, 0x86, 0x30, 0x3C, 0x00, // 'c' 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0x03, 0x30, 0x33, 0xC1, 0x8F, 0x06, 0x38, 0x38, 0x60, 0xC3, 0x07, 0x0C, 0x2C, 0x31, 0xB1, 0xCC, 0xCB, 0x61, 0xCE, 0x00, // 'd' 0x07, 0x01, 0xB0, 0x13, 0x03, 0x20, 0x66, 0x06, 0xC1, 0x70, 0x26, 0x06, 0x60, 0xC3, 0x10, 0x1E, 0x00, // 'e' 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x3C, 0x1E, 0x01, 0x80, 0x1C, 0x00, 0x60, 0x03, 0x80, 0x36, 0x01, 0xB0, 0x08, 0xC0, 0x46, 0x06, 0x30, 0x31, 0x81, 0x9C, 0x08, 0xC0, 0xCE, 0x06, 0xE0, 0x3E, 0x01, 0xE0, 0x06, 0x00, 0x00, // 'f' 0x1C, 0x00, 0xCE, 0x06, 0x38, 0x18, 0xE0, 0xC3, 0x03, 0x04, 0x0C, 0x30, 0xB0, 0xC4, 0xC7, 0x23, 0x1F, 0x07, 0xB8, 0x01, 0x80, 0x0E, 0x00, 0x58, 0x03, 0x40, 0x1B, 0x00, 0xCC, 0x03, 0x30, 0x0C, 0xC0, 0x32, 0x00, 0xD8, 0x01, 0xE0, 0x03, 0x00, 0x00, // 'g' 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x60, 0x01, 0x80, 0x06, 0xE0, 0x17, 0x80, 0xF7, 0x03, 0x98, 0x0C, 0x60, 0x31, 0x8C, 0x8C, 0x66, 0x33, 0x18, 0xD8, 0x63, 0xC1, 0x86, 0x00, // 'h' 0x00, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x60, 0x60, 0xE0, 0xC1, 0xC3, 0xC6, 0xCC, 0xD8, 0x70, // 'i' 0x00, 0x40, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x80, 0x0E, 0x00, 0x30, 0x40, 0xC2, 0x03, 0x18, 0x1C, 0xC0, 0x66, 0x01, 0xA0, 0x07, 0x00, 0x38, 0x01, 0xE0, 0x0D, 0x00, 0x7C, 0x01, 0xB0, 0x0C, 0xC0, 0x32, 0x00, 0xD8, 0x03, 0x40, 0x07, 0x00, 0x00, // 'j' 0x00, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x20, 0x01, 0x80, 0x06, 0x00, 0x19, 0x80, 0x5E, 0x03, 0xD8, 0x0E, 0x60, 0x31, 0x00, 0xB8, 0x02, 0xF0, 0x98, 0xC4, 0x63, 0x31, 0x0D, 0x84, 0x38, 0x00, // 'k' 0x0C, 0x18, 0x30, 0x61, 0xC3, 0x06, 0x0C, 0x18, 0x60, 0xC1, 0x83, 0x0C, 0x18, 0x30, 0x60, 0xC0, // 'l' 0x03, 0x9C, 0x03, 0x7B, 0xC0, 0x39, 0xEC, 0x07, 0x1C, 0xC0, 0x71, 0x8C, 0x26, 0x11, 0xC2, 0x63, 0x18, 0x46, 0x31, 0x88, 0xC3, 0x19, 0x0C, 0x61, 0xE0, 0x00, 0x00, 0x00, // 'm' 0x33, 0x00, 0xDE, 0x03, 0x98, 0x0C, 0x60, 0x61, 0x89, 0x8C, 0x26, 0x31, 0x18, 0xCC, 0xC3, 0x63, 0x0E, 0x00, // 'n' 0x1C, 0x01, 0xF0, 0x18, 0x80, 0xC4, 0x2E, 0x36, 0x79, 0xE3, 0x7C, 0x18, 0xC0, 0xC6, 0x06, 0x60, 0x1E, 0x00, // 'o' 0x00, 0x00, 0x06, 0x60, 0x07, 0xF0, 0x07, 0x30, 0x0E, 0x30, 0x0C, 0x31, 0x0C, 0x72, 0x08, 0x66, 0x1E, 0xC4, 0x1F, 0xD8, 0x1F, 0xF0, 0x18, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, // 'p' 0x1C, 0xC1, 0x9C, 0x18, 0xE0, 0xC7, 0x0C, 0x18, 0x61, 0x83, 0x0C, 0x18, 0x62, 0xC7, 0x26, 0x33, 0x1E, 0xB0, 0x0F, 0x00, 0x70, 0x03, 0x00, 0x30, 0x01, 0x80, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x00, 0xC0, 0x00, // 'q' 0x06, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x7C, 0x00, 0xCC, 0x03, 0x18, 0x04, 0x71, 0x18, 0xC2, 0x23, 0x08, 0xC6, 0x21, 0x0C, 0x80, 0x0E, 0x00, // 'r' 0x00, 0x38, 0xE1, 0xC3, 0x8F, 0x13, 0x46, 0x06, 0xC9, 0x91, 0xC0, // 's' 0x00, 0x00, 0x18, 0x00, 0xC0, 0x0E, 0x07, 0xFF, 0x03, 0x00, 0x38, 0x01, 0xC0, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x30, 0x01, 0x82, 0x0C, 0x10, 0x41, 0x02, 0x10, 0x19, 0x00, 0x70, 0x00, // 't' 0x00, 0x80, 0x63, 0x01, 0xC6, 0x03, 0x1C, 0x06, 0x38, 0x4C, 0x60, 0x90, 0xC2, 0x21, 0x88, 0x67, 0x20, 0x73, 0x80, // 'u' 0x01, 0x83, 0x1C, 0x30, 0xC1, 0x86, 0x2C, 0x33, 0x63, 0xE3, 0x10, 0x19, 0x80, 0xD8, 0x03, 0x80, 0x18, 0x00, // 'v' 0x03, 0x08, 0x00, 0xC6, 0x06, 0x31, 0x81, 0x88, 0xE0, 0xE2, 0x11, 0xB9, 0x8F, 0x8C, 0x43, 0x03, 0x18, 0x80, 0xC6, 0x60, 0x32, 0x90, 0x07, 0x18, 0x00, // 'w' 0x18, 0x40, 0xC6, 0x02, 0x70, 0x1F, 0x00, 0xF0, 0x07, 0x00, 0x30, 0x03, 0xC2, 0x36, 0x23, 0x1E, 0x18, 0xE0, 0x00, 0x00, // 'x' 0x00, 0x1C, 0x66, 0x19, 0x86, 0x63, 0x30, 0xCC, 0x73, 0x18, 0xCE, 0x3F, 0x82, 0x60, 0x18, 0x04, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x06, 0x01, 0x80, 0x60, 0x00, 0x00, // 'y' 0x0F, 0xC0, 0xFE, 0x00, 0x20, 0x03, 0x00, 0x18, 0x01, 0x84, 0x18, 0x61, 0xF6, 0x0C, 0xE0, 0x4C, 0x01, 0xE0, 0x1B, 0x01, 0x90, 0x19, 0x81, 0x8C, 0x08, 0xC0, 0xC6, 0x06, 0x60, 0x33, 0x01, 0xF0, 0x07, 0x00, 0x00, // 'z' 0x00, 0x00, 0xE0, 0x78, 0x38, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x01, 0x80, 0xC0, 0x30, 0x06, 0x01, 0x80, 0x60, 0x30, 0x1C, 0x06, 0x01, 0x00, 0xE0, 0x1C, 0x07, 0x00, 0xC0, // '{' 0x00, 0x06, 0x06, 0x04, 0x0C, 0x0C, 0x08, 0x08, 0x18, 0x18, 0x18, 0x10, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, // '|' 0x03, 0x00, 0xC0, 0x38, 0x06, 0x01, 0x80, 0x60, 0x30, 0x0C, 0x06, 0x01, 0x80, 0x60, 0x0C, 0x03, 0x01, 0x80, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x1C, 0x1E, 0x07, 0x00, 0x00 // '}' }; const GFXglyph Satisfy_24Glyphs[] PROGMEM = { // bitmapOffset, width, height, xAdvance, xOffset, yOffset {0, 1, 1, 8, 0, 0}, // ' ' {1, 8, 19, 7, -1, -18}, // '!' {20, 8, 9, 7, 0, -19}, // '"' {29, 12, 13, 11, -1, -16}, // '#' {49, 9, 18, 8, -1, -17}, // '$' {70, 16, 19, 15, -1, -18}, // '%' {108, 13, 20, 12, -2, -18}, // '&' {141, 5, 9, 4, 0, -19}, // ''' {147, 8, 24, 7, 0, -21}, // '(' {171, 8, 24, 6, -3, -21}, // ')' {195, 8, 9, 9, 1, -18}, // '*' {204, 10, 9, 9, -1, -14}, // '+' {216, 4, 5, 6, -1, -2}, // ',' {219, 10, 2, 9, -1, -8}, // '-' {222, 4, 3, 6, -1, -2}, // '.' {224, 13, 19, 7, -3, -18}, // '/' {255, 11, 19, 13, 1, -18}, // '0' {282, 7, 19, 8, 0, -17}, // '1' {299, 11, 19, 12, -1, -18}, // '2' {326, 11, 19, 13, 0, -18}, // '3' {353, 11, 19, 12, 0, -18}, // '4' {380, 12, 19, 12, -1, -18}, // '5' {409, 10, 19, 13, 1, -18}, // '6' {433, 10, 19, 11, 1, -17}, // '7' {457, 11, 19, 13, 0, -18}, // '8' {484, 10, 19, 13, 1, -18}, // '9' {508, 5, 8, 6, -1, -7}, // ':' {513, 5, 11, 6, -1, -7}, // ';' {520, 9, 10, 8, -1, -13}, // '<' {532, 10, 5, 10, -1, -11}, // '=' {539, 8, 10, 7, -2, -13}, // '>' {549, 13, 19, 11, -1, -18}, // '?' {580, 17, 17, 18, -1, -16}, // '@' {617, 15, 24, 14, -3, -18}, // 'A' {662, 16, 23, 16, -1, -19}, // 'B' {708, 14, 22, 15, 0, -18}, // 'C' {747, 15, 22, 16, 0, -18}, // 'D' {789, 14, 22, 14, -1, -18}, // 'E' {828, 14, 23, 15, 0, -18}, // 'F' {869, 14, 22, 16, 1, -18}, // 'G' {908, 17, 23, 17, 0, -19}, // 'H' {957, 15, 22, 14, -2, -18}, // 'I' {999, 17, 22, 13, -2, -18}, // 'J' {1046, 15, 25, 13, -2, -19}, // 'K' {1093, 16, 22, 13, -3, -18}, // 'L' {1137, 21, 22, 18, -3, -18}, // 'M' {1195, 16, 23, 14, -1, -19}, // 'N' {1241, 13, 22, 15, 0, -18}, // 'O' {1277, 16, 22, 14, -2, -18}, // 'P' {1321, 13, 22, 15, 0, -18}, // 'Q' {1357, 16, 24, 14, -2, -18}, // 'R' {1405, 14, 24, 12, -2, -19}, // 'S' {1447, 13, 23, 11, 0, -19}, // 'T' {1485, 15, 22, 15, 1, -18}, // 'U' {1527, 13, 23, 13, 1, -19}, // 'V' {1565, 20, 22, 21, 0, -18}, // 'W' {1620, 19, 23, 15, -2, -18}, // 'X' {1675, 14, 23, 14, 0, -19}, // 'Y' {1716, 14, 22, 12, -2, -17}, // 'Z' {1755, 10, 23, 6, -2, -21}, // '[' {1784, 6, 19, 8, 0, -18}, // '\' {1799, 9, 23, 6, -3, -21}, // ']' {1825, 9, 10, 8, -1, -18}, // '^' {1837, 13, 3, 12, -3, -2}, // '_' {1842, 5, 4, 15, 6, -17}, // '`' {1845, 14, 11, 11, -1, -10}, // 'a' {1865, 13, 18, 12, 1, -17}, // 'b' {1895, 12, 11, 10, 0, -10}, // 'c' {1912, 14, 18, 13, 0, -17}, // 'd' {1944, 12, 11, 10, -1, -10}, // 'e' {1961, 13, 29, 9, -2, -17}, // 'f' {2009, 14, 23, 12, 0, -10}, // 'g' {2050, 14, 18, 12, -1, -17}, // 'h' {2082, 8, 17, 8, 1, -16}, // 'i' {2099, 14, 27, 7, -5, -16}, // 'j' {2147, 14, 19, 12, -1, -18}, // 'k' {2181, 7, 18, 6, -1, -17}, // 'l' {2197, 20, 11, 18, 0, -9}, // 'm' {2225, 14, 10, 12, -1, -9}, // 'n' {2243, 13, 11, 11, 0, -10}, // 'o' {2261, 16, 21, 12, -3, -10}, // 'p' {2303, 13, 21, 12, 0, -10}, // 'q' {2338, 15, 12, 11, -3, -11}, // 'r' {2361, 7, 12, 9, 0, -11}, // 's' {2372, 13, 18, 8, -2, -17}, // 't' {2402, 15, 10, 13, 0, -9}, // 'u' {2421, 13, 11, 12, 1, -10}, // 'v' {2439, 18, 11, 17, 1, -10}, // 'w' {2464, 13, 12, 11, -2, -10}, // 'x' {2484, 10, 21, 11, 0, -10}, // 'y' {2511, 13, 21, 11, -1, -10}, // 'z' {2546, 10, 24, 7, -1, -21}, // '{' {2576, 8, 19, 7, -1, -18}, // '|' {2595, 10, 24, 7, -3, -21} // '}' }; const GFXfont Satisfy_24 PROGMEM = { (uint8_t *)Satisfy_24Bitmaps, (GFXglyph *)Satisfy_24Glyphs, 0x20, 0x7D, 36}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Custom/Yellowtail_32.h ================================================ // Created by http://oleddisplay.squix.ch/ Consider a donation // In case of problems make sure that you are using the font file with the // correct version! const uint8_t Yellowtail_32Bitmaps[] PROGMEM = { // Bitmap Data: 0x00, // ' ' 0x00, 0x01, 0x80, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x0F, 0x00, 0x03, 0x80, 0x00, // '!' 0x19, 0x8E, 0x63, 0x39, 0xCC, 0x67, 0x19, 0x8C, 0xE2, 0x30, // '"' 0x00, 0x20, 0x00, 0x08, 0xC0, 0x06, 0x30, 0x01, 0x9C, 0x00, 0xCE, 0x03, 0xFF, 0xE1, 0xFF, 0xF8, 0x0C, 0xE0, 0x07, 0x30, 0x01, 0x9C, 0x00, 0xE7, 0xC1, 0xFF, 0xF8, 0xFF, 0xC0, 0x0E, 0x70, 0x03, 0x18, 0x01, 0xC6, 0x00, 0x60, 0x80, 0x08, 0x00, 0x00, // '#' 0x00, 0x18, 0x00, 0xE0, 0x03, 0x00, 0x1C, 0x00, 0x60, 0x03, 0xE0, 0x3F, 0xC3, 0xFE, 0x1F, 0xB0, 0xEE, 0x06, 0x70, 0x1D, 0x80, 0x7F, 0x80, 0xFF, 0x01, 0xFE, 0x06, 0x38, 0x79, 0xE3, 0xFF, 0x0F, 0xF8, 0x1F, 0x00, 0x70, 0x01, 0x80, 0x0E, 0x00, 0x30, 0x00, // '$' 0x03, 0x80, 0x41, 0xF0, 0x20, 0xEC, 0x18, 0x73, 0x0C, 0x39, 0x86, 0x1C, 0x63, 0x86, 0x39, 0xC3, 0x8C, 0xE0, 0xC6, 0x73, 0xB3, 0xB9, 0xFF, 0xDC, 0xED, 0xCE, 0x73, 0x07, 0x39, 0xC3, 0x9C, 0x60, 0xE6, 0x38, 0x73, 0x8C, 0x38, 0xC7, 0x1C, 0x33, 0x86, 0x0F, 0xC1, 0x81, 0xC0, // '%' 0x00, 0x0C, 0x00, 0x38, 0x00, 0x60, 0x01, 0xC0, 0x03, 0x00, 0x7F, 0x83, 0xFF, 0x0F, 0xFC, 0x3D, 0xF0, 0x63, 0x80, 0xFF, 0x00, 0xFE, 0x03, 0xF0, 0x0E, 0xC3, 0x3B, 0x9E, 0x76, 0xF8, 0xFF, 0xE1, 0xFF, 0x01, 0xF8, 0x01, 0xC0, 0x03, 0x00, 0x0E, 0x00, 0x18, 0x00, 0x00, // '&' 0x0C, 0x73, 0x8E, 0x71, 0xCE, 0x30, // ''' 0x00, 0x00, 0xE0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x01, 0xE0, 0x00, 0x38, 0x00, 0x0F, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x00, 0xC0, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, // '(' 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x1C, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x1C, 0x00, 0x06, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x1F, 0x80, 0x0F, 0xC0, 0x01, 0xC0, 0x00, // ')' 0x03, 0x0C, 0xC3, 0xE4, 0x7F, 0x3F, 0xBF, 0x8D, 0xF0, 0xCC, 0x33, 0x00, // '*' 0x01, 0x80, 0x18, 0x03, 0x80, 0x30, 0x06, 0x07, 0xFF, 0xFF, 0xE0, 0xC0, 0x0C, 0x01, 0x80, 0x08, 0x00, 0x00, // '+' 0x00, 0xF3, 0xCF, 0x79, 0x80, // ',' 0x7F, 0x7F, 0xBF, 0x00, 0x00, // '-' 0x7F, 0xE0, // '.' 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x00, 0x00, // '/' 0x00, 0x0E, 0x00, 0x3F, 0x00, 0x73, 0x00, 0xE3, 0x01, 0xC7, 0x03, 0x86, 0x07, 0x0E, 0x0E, 0x1E, 0x0E, 0x7C, 0x1C, 0x7C, 0x38, 0x18, 0x38, 0x38, 0x70, 0x30, 0x70, 0x60, 0xE0, 0xE0, 0xE1, 0xC0, 0xE7, 0x80, 0xFF, 0x00, 0xFC, 0x00, 0x78, 0x00, // '0' 0x00, 0x10, 0x03, 0xC0, 0x3C, 0x03, 0xE0, 0x3E, 0x00, 0xF0, 0x07, 0x00, 0x30, 0x03, 0x80, 0x38, 0x01, 0x80, 0x1C, 0x01, 0xC0, 0x0E, 0x00, 0xE0, 0x07, 0x00, 0x70, 0x03, 0x00, 0x38, 0x00, 0x80, 0x00, // '1' 0x00, 0x1E, 0x00, 0x7F, 0x00, 0xF3, 0x01, 0xE7, 0x03, 0x86, 0x07, 0x0E, 0x07, 0x1C, 0x0E, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x79, 0xC0, 0xFF, 0xE0, 0xFF, 0xE0, 0xFE, 0x00, // '2' 0x00, 0x3C, 0x01, 0xFC, 0x07, 0x98, 0x3C, 0x70, 0xF1, 0xC1, 0x87, 0x07, 0x1C, 0x04, 0xF0, 0x03, 0x80, 0x0F, 0xC0, 0x1F, 0xC0, 0x03, 0x80, 0x03, 0x00, 0x0E, 0x00, 0x38, 0x63, 0xE0, 0xFF, 0x81, 0xFE, 0x01, 0xE0, 0x00, // '3' 0x00, 0x06, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0xFC, 0x01, 0xDC, 0x03, 0xB8, 0x07, 0x30, 0x0E, 0x70, 0x3C, 0xE0, 0x78, 0xE0, 0x71, 0xFC, 0xFF, 0xF8, 0xFF, 0xF0, 0x7F, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x30, 0x00, // '4' 0x00, 0x00, 0x00, 0x3F, 0xC0, 0x3F, 0xE0, 0x1F, 0xC0, 0x18, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x07, 0xE0, 0x07, 0xF8, 0x03, 0xFC, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x80, 0x81, 0x80, 0xC3, 0xC0, 0x7F, 0x80, 0x3F, 0x80, 0x0F, 0x00, 0x00, // '5' 0x00, 0x00, 0x00, 0x03, 0xC0, 0x07, 0xE0, 0x0F, 0xC0, 0x0F, 0x80, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x07, 0x70, 0x07, 0xFC, 0x07, 0xC6, 0x03, 0x83, 0x03, 0x83, 0x01, 0x81, 0x80, 0xC1, 0x80, 0xC1, 0xC0, 0x61, 0xC0, 0x33, 0xC0, 0x1F, 0xC0, 0x07, 0x80, 0x00, // '6' 0x03, 0xFE, 0x0F, 0xFC, 0x3F, 0xF8, 0x00, 0xE0, 0x03, 0x80, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x0E, 0x00, 0x38, 0x00, 0xE0, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xE0, 0x01, 0x80, 0x03, 0x00, 0x00, // '7' 0x00, 0x3C, 0x00, 0x07, 0xE7, 0x00, 0xFE, 0xE0, 0x1C, 0x7C, 0x03, 0x87, 0x80, 0x30, 0xE0, 0x03, 0x1C, 0x00, 0x37, 0x80, 0x03, 0xF0, 0x00, 0x3C, 0x00, 0x07, 0xE0, 0x00, 0xEF, 0x00, 0x1C, 0x70, 0x03, 0x03, 0x00, 0x70, 0x30, 0x06, 0x06, 0x00, 0x61, 0xE0, 0x07, 0xFC, 0x00, 0x7F, 0x80, 0x03, 0xE0, 0x00, // '8' 0x00, 0x0F, 0x00, 0x1F, 0xC0, 0x1C, 0x60, 0x1C, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x0C, 0x0C, 0x0C, 0x1E, 0x06, 0x3E, 0x03, 0xFE, 0x01, 0xFF, 0x00, 0x77, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x06, 0x00, 0x00, // '9' 0x07, 0x0F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xF0, 0xE0, // ':' 0x00, 0xE0, 0x3C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x07, 0x80, 0xF0, 0x1C, 0x07, 0x00, 0x00, 0x00, // ';' 0x00, 0x00, 0xC0, 0xE1, 0xE1, 0xE3, 0xC3, 0x81, 0x80, 0x40, 0x30, 0x18, 0x0C, 0x06, 0x01, 0x00, 0x80, // '<' 0x0F, 0xFC, 0x3F, 0xF8, 0x70, 0x00, 0x00, 0x01, 0xFE, 0x0F, 0xFE, 0x1F, 0xE0, 0x00, // '=' 0x00, 0x01, 0x01, 0x80, 0xC0, 0x70, 0x18, 0x0C, 0x07, 0x03, 0x87, 0xC7, 0x8F, 0x0F, 0x06, 0x02, 0x00, // '>' 0x00, 0xFE, 0x00, 0xFF, 0xC0, 0xFF, 0xF8, 0x7E, 0x0F, 0x1E, 0x01, 0xCF, 0x00, 0x73, 0x80, 0x1C, 0xF0, 0x0E, 0x00, 0x07, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x03, 0xE0, 0x01, 0xF0, 0x01, 0xF0, 0x00, 0xF0, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, // '?' 0x00, 0x00, 0xF8, 0x00, 0x07, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x7E, 0x0F, 0x00, 0xF8, 0x07, 0x03, 0xE0, 0x07, 0x07, 0xC0, 0x07, 0x0F, 0x8E, 0xC7, 0x1F, 0x3F, 0xCE, 0x1E, 0x7B, 0x8E, 0x3C, 0xF3, 0x8E, 0x39, 0xE7, 0x1C, 0x79, 0xCF, 0x3C, 0x73, 0x9E, 0x38, 0xF3, 0x1E, 0x70, 0xE3, 0x3E, 0xF0, 0xE3, 0xF7, 0xE0, 0xE1, 0xC3, 0x80, 0xE0, 0x00, 0x00, 0xE0, 0x02, 0x00, 0x70, 0x06, 0x00, 0x78, 0x3E, 0x00, 0x3F, 0xF8, 0x00, 0x0F, 0xE0, 0x00, // '@' 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x01, 0xEE, 0x00, 0x03, 0xDC, 0x00, 0x07, 0x9C, 0x00, 0x0F, 0x38, 0x00, 0x1E, 0x38, 0x00, 0x1C, 0x78, 0x00, 0x38, 0x70, 0x00, 0x70, 0x70, 0x00, 0xE0, 0xE0, 0x01, 0xE0, 0xE0, 0x03, 0xC1, 0xC0, 0x7F, 0xFF, 0xC0, 0x7F, 0xFF, 0x80, 0x0E, 0x03, 0x80, 0x1C, 0x07, 0x00, 0x38, 0x07, 0x00, 0x78, 0x0F, 0x00, 0x70, 0x0E, 0x00, 0xE0, 0x1E, 0x00, 0xE0, 0x1C, 0x00, 0xC0, 0x38, 0x00, // 'A' 0x00, 0x1F, 0xE0, 0x01, 0xFF, 0xF0, 0x0F, 0xFF, 0xF0, 0x3F, 0x80, 0xF0, 0xF9, 0xC0, 0xE3, 0xC7, 0x01, 0xC7, 0x1E, 0x07, 0x8E, 0x38, 0x1E, 0x00, 0xE0, 0xF8, 0x03, 0xC3, 0xE0, 0x07, 0x3F, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xF8, 0x00, 0xFF, 0xFC, 0x03, 0xC0, 0x7C, 0x07, 0x00, 0x38, 0x1C, 0x00, 0x70, 0x78, 0x01, 0xE0, 0xFC, 0x07, 0x83, 0xF8, 0x3E, 0x07, 0xFF, 0xF8, 0x0E, 0xFF, 0xC0, 0x18, 0xFE, 0x00, 0x00, // 'B' 0x00, 0x01, 0xF0, 0x00, 0x7F, 0xC0, 0x0F, 0x8E, 0x00, 0xF0, 0x70, 0x0F, 0x07, 0x00, 0xE0, 0x78, 0x0E, 0x07, 0x80, 0xE0, 0x78, 0x0E, 0x0F, 0x80, 0xE0, 0x70, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x04, 0x1C, 0x00, 0x60, 0xC0, 0x06, 0x06, 0x00, 0xF0, 0x30, 0x0F, 0x01, 0x81, 0xF0, 0x06, 0x3F, 0x00, 0x3F, 0xE0, 0x00, 0x7C, 0x00, 0x00, // 'C' 0x00, 0x7F, 0xC0, 0x03, 0xFF, 0xF0, 0x0F, 0xC0, 0x7C, 0x1E, 0x1C, 0x1E, 0x3C, 0x38, 0x0E, 0x3C, 0x78, 0x07, 0x30, 0x70, 0x07, 0x00, 0xE0, 0x07, 0x01, 0xE0, 0x07, 0x01, 0xC0, 0x07, 0x03, 0x80, 0x0E, 0x07, 0x80, 0x1E, 0x07, 0x00, 0x1E, 0x0E, 0x00, 0x3C, 0x1E, 0x00, 0x78, 0x1C, 0x00, 0xF0, 0x3C, 0x03, 0xE0, 0x38, 0x07, 0xC0, 0x70, 0x1F, 0x80, 0x70, 0xFF, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xF0, 0x00, 0x7F, 0x00, 0x00, // 'D' 0x00, 0x0F, 0xE0, 0x07, 0xFE, 0x01, 0xFF, 0xE0, 0x7E, 0x3C, 0x0F, 0x80, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x1F, 0xFE, 0x00, 0xFF, 0xE0, 0x07, 0xFE, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xE0, 0x0C, 0x3C, 0x00, 0xC7, 0x80, 0x1C, 0x70, 0x03, 0x8F, 0x00, 0x70, 0xE0, 0x1E, 0x0E, 0x03, 0xC0, 0xE1, 0xF8, 0x07, 0xFE, 0x00, 0x1F, 0x00, 0x00, // 'E' 0x30, 0x00, 0x1E, 0xC0, 0x00, 0xFD, 0xFF, 0xFF, 0xF0, 0xFF, 0xFE, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x01, 0xC0, 0x01, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x00, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, // 'F' 0x00, 0x00, 0x3F, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xF8, 0x60, 0x03, 0xE0, 0x30, 0x03, 0xC0, 0x30, 0x07, 0xC0, 0x70, 0x07, 0x84, 0xF0, 0x07, 0x87, 0xF0, 0x07, 0x81, 0xF0, 0x07, 0x80, 0x1C, 0x07, 0x80, 0x3C, 0x03, 0x80, 0x3C, 0x03, 0x80, 0x3C, 0x03, 0x80, 0x3C, 0x01, 0x80, 0x7E, 0x00, 0xC0, 0x7E, 0x00, 0xC0, 0x7E, 0x00, 0x60, 0xF6, 0xC0, 0x31, 0xF6, 0xC0, 0x1F, 0xE7, 0xC0, 0x07, 0xE7, 0xC0, 0x01, 0x87, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x03, 0x80, 0x00, 0x00, // 'G' 0x00, 0x03, 0x00, 0x70, 0x00, 0x78, 0x03, 0x81, 0x0F, 0xC0, 0x38, 0x1F, 0xFC, 0x03, 0xC0, 0xFF, 0xC0, 0x1C, 0x03, 0xCE, 0x01, 0xE0, 0x00, 0xE0, 0x0E, 0x00, 0x0E, 0x00, 0xE0, 0x00, 0xF0, 0x0F, 0x00, 0x07, 0x00, 0x70, 0x00, 0x70, 0x07, 0x80, 0x7F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFC, 0x00, 0x1C, 0x01, 0xC0, 0x01, 0xC0, 0x1E, 0x00, 0x1E, 0x00, 0xE0, 0x00, 0xE0, 0x0E, 0x00, 0x0E, 0x00, 0xF0, 0x00, 0xF0, 0x07, 0x00, 0x07, 0x00, 0x78, 0x00, 0x78, 0x03, 0x80, 0x03, 0x80, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, // 'H' 0x00, 0x03, 0x80, 0x01, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x03, 0x80, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x38, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x0E, 0x00, 0x00, // 'I' 0x00, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x7F, 0x8E, 0x00, 0x0F, 0xC1, 0xC0, 0x03, 0xE0, 0x38, 0x00, 0x7C, 0x03, 0x80, 0x1F, 0x00, 0x70, 0x03, 0xE0, 0x0E, 0x00, 0x78, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0xE0, 0x03, 0x80, 0x1E, 0x00, 0x70, 0x01, 0xC0, 0x06, 0x00, 0x1C, 0x00, 0xE0, 0x01, 0xE2, 0x1C, 0x00, 0x0F, 0xE1, 0x80, 0x00, 0x7C, 0x3F, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xE0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x3B, 0x80, 0x00, 0x0F, 0x70, 0x00, 0x01, 0xCE, 0x00, 0x00, 0x39, 0xE0, 0x00, 0x07, 0x3C, 0x00, 0x00, 0xE7, 0x80, 0x00, 0x0C, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, // 'J' 0x00, 0x03, 0x00, 0x30, 0x00, 0x7C, 0x07, 0xC0, 0x27, 0xC0, 0x7C, 0x03, 0xFE, 0x0F, 0xC0, 0x1F, 0xE0, 0xF8, 0x00, 0xEE, 0x1F, 0x80, 0x00, 0x71, 0xF0, 0x00, 0x07, 0x3F, 0x00, 0x00, 0x77, 0xE0, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1D, 0xF0, 0x00, 0x01, 0xE3, 0xE0, 0x00, 0x0E, 0x0F, 0x80, 0x00, 0xF0, 0x3F, 0x00, 0x0F, 0x00, 0x7C, 0x00, 0x70, 0x01, 0xF8, 0x07, 0x80, 0x07, 0xF0, 0x78, 0x00, 0x0F, 0x83, 0x80, 0x00, 0x38, 0x00, // 'K' 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xE7, 0x00, 0x00, 0x0F, 0x38, 0x00, 0x00, 0x79, 0xE0, 0x00, 0x03, 0xCF, 0x00, 0x00, 0x1E, 0xF8, 0x00, 0x00, 0x73, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0xE1, 0xFF, 0xF0, 0x03, 0xFF, 0xFF, 0xFF, 0x8F, 0xFC, 0x3F, 0xFC, 0x1F, 0x80, 0x0F, 0xE0, // 'L' 0x00, 0x00, 0x1E, 0x03, 0xE0, 0x00, 0x0F, 0xC0, 0xF8, 0x00, 0x03, 0xF0, 0x3F, 0x00, 0x00, 0x7E, 0x0F, 0xC0, 0x00, 0x1F, 0x83, 0xF0, 0x00, 0x07, 0xF0, 0xFC, 0x00, 0x01, 0xFC, 0x3B, 0x80, 0x00, 0x7F, 0x0F, 0xE0, 0x00, 0x1E, 0xE3, 0xF8, 0x00, 0x03, 0xB8, 0xF7, 0x00, 0x00, 0xE7, 0x3D, 0xC0, 0x00, 0x3D, 0xCF, 0x70, 0x00, 0x0F, 0x3B, 0xCE, 0x00, 0x01, 0xCE, 0xF3, 0x80, 0x00, 0x71, 0xDC, 0xE0, 0x00, 0x1E, 0x77, 0x1C, 0x00, 0x03, 0x8F, 0xC7, 0x10, 0x00, 0xE3, 0xF1, 0xC6, 0x00, 0x3C, 0x7C, 0x39, 0xC0, 0x0F, 0x1F, 0x0E, 0x70, 0x01, 0xC3, 0xC1, 0xFC, 0x00, 0x78, 0x70, 0x3F, 0x00, 0x0E, 0x0C, 0x07, 0xC0, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, // 'M' 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x03, 0xC0, 0x01, 0xF0, 0x1E, 0x00, 0x0F, 0x81, 0xE0, 0x00, 0xF8, 0x0F, 0x00, 0x0F, 0xC0, 0xF0, 0x00, 0xFE, 0x07, 0x00, 0x07, 0x70, 0x78, 0x00, 0x73, 0x87, 0x80, 0x07, 0xB8, 0x38, 0x00, 0x39, 0xC3, 0xC0, 0x03, 0x8E, 0x3C, 0x00, 0x3C, 0x73, 0xC0, 0x01, 0xC3, 0x9E, 0x00, 0x1E, 0x39, 0xE0, 0x00, 0xE1, 0xDE, 0x00, 0x0E, 0x0F, 0xE0, 0x00, 0xF0, 0x7F, 0x00, 0x07, 0x03, 0xF0, 0x00, 0x78, 0x3F, 0x00, 0x03, 0x81, 0xF0, 0x00, 0x38, 0x0F, 0x80, 0x01, 0xC0, 0x78, 0x00, 0x1E, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x00, 0x00, // 'N' 0x00, 0x01, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0xA0, 0x03, 0xF3, 0xF0, 0x0F, 0x9F, 0xE0, 0x3E, 0x7F, 0xC0, 0xF1, 0xE7, 0x83, 0xC3, 0x8E, 0x0F, 0x06, 0x3C, 0x3C, 0x04, 0x70, 0x70, 0x01, 0xE1, 0xE0, 0x07, 0x87, 0x80, 0x0F, 0x0E, 0x00, 0x3C, 0x1C, 0x00, 0xF0, 0x70, 0x03, 0xC0, 0xE0, 0x0F, 0x01, 0xC0, 0x7C, 0x03, 0x81, 0xF0, 0x07, 0x8F, 0xC0, 0x07, 0xFF, 0x00, 0x0F, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x00, // 'O' 0x00, 0x1F, 0xE0, 0x01, 0xFF, 0xFC, 0x07, 0xF6, 0x3E, 0x1F, 0x8C, 0x1F, 0x3E, 0x1C, 0x0F, 0x7C, 0x38, 0x0F, 0x78, 0x78, 0x0F, 0x7C, 0x70, 0x1E, 0x38, 0xE0, 0x3E, 0x01, 0xE0, 0x7C, 0x01, 0xC0, 0xF8, 0x03, 0xC3, 0xF0, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0x80, 0x0F, 0xBE, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, // 'P' 0x00, 0x00, 0x7E, 0x00, 0x01, 0xFF, 0x80, 0x03, 0xE0, 0xE0, 0x03, 0xC0, 0x70, 0x07, 0x80, 0x38, 0x07, 0x80, 0x3C, 0x07, 0x80, 0x1E, 0x07, 0x80, 0x0E, 0x07, 0x80, 0x0F, 0x07, 0x80, 0x0F, 0x83, 0x80, 0x07, 0x83, 0x80, 0x07, 0xC3, 0x80, 0x07, 0xC1, 0xC0, 0x03, 0xC1, 0xC0, 0x03, 0xE0, 0xE0, 0x03, 0xE0, 0xE0, 0x63, 0xE0, 0x70, 0x73, 0xE0, 0x38, 0x7B, 0xE0, 0x1C, 0xFB, 0xE0, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xC0, 0x00, 0xFF, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xC0, 0x00, // 'Q' 0x00, 0x3F, 0xE0, 0x03, 0xFF, 0xF0, 0x3F, 0xB0, 0xF1, 0xF8, 0xE0, 0x77, 0xC1, 0xC0, 0xEE, 0x07, 0x03, 0xFE, 0x1E, 0x0F, 0xB8, 0x38, 0x3E, 0x00, 0xE0, 0xF8, 0x03, 0x87, 0xE0, 0x0F, 0x7F, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0x80, 0x01, 0xFC, 0x00, 0x03, 0xBC, 0x00, 0x0F, 0x3C, 0x00, 0x3C, 0x3C, 0x00, 0x70, 0x3C, 0x01, 0xE0, 0x78, 0x03, 0x80, 0x78, 0x0F, 0x00, 0x78, 0x1C, 0x00, 0x7E, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, // 'R' 0x00, 0x00, 0xFE, 0x00, 0x03, 0xFF, 0x80, 0x0F, 0xFF, 0xC0, 0x0F, 0xE7, 0xE0, 0x1F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x70, 0x00, 0x00, 0xF8, 0x08, 0x00, 0xF8, 0x06, 0x03, 0xF8, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xE0, 0x00, 0x7F, 0x80, 0x00, // 'S' 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF8, 0xC0, 0x0F, 0xF1, 0xFF, 0xFF, 0x83, 0xFF, 0xF8, 0x03, 0xFC, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x70, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x70, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0E, 0x00, 0x00, 0xB8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x70, 0x00, 0x00, // 'T' 0x00, 0x0C, 0x00, 0x00, 0x07, 0xC0, 0x78, 0x01, 0xF0, 0x1F, 0x02, 0xFC, 0x07, 0xC0, 0xFF, 0x00, 0xF0, 0x1F, 0xC0, 0x3E, 0x01, 0xF8, 0x0F, 0x80, 0x0E, 0x03, 0xE0, 0x03, 0x80, 0xFC, 0x00, 0xF0, 0x3F, 0x00, 0x1C, 0x0F, 0xC0, 0x07, 0x03, 0xF0, 0x01, 0xC0, 0xEE, 0x00, 0x38, 0x3F, 0x80, 0x0E, 0x0F, 0xE1, 0x01, 0xC3, 0xDC, 0x60, 0x70, 0xF7, 0x1C, 0x0E, 0x3D, 0xE7, 0x83, 0x8F, 0x39, 0xE0, 0x77, 0xCF, 0xF8, 0x0F, 0xF1, 0xFC, 0x01, 0xF8, 0x3F, 0x00, 0x1C, 0x07, 0x80, 0x00, // 'U' 0x00, 0x0E, 0x07, 0xC0, 0x07, 0x80, 0xF0, 0x07, 0xE0, 0x3C, 0x03, 0xF0, 0x1E, 0x09, 0xF8, 0x0F, 0x83, 0xFC, 0x03, 0xC0, 0xFF, 0x01, 0xE0, 0x3B, 0x80, 0xF8, 0x01, 0xC0, 0x7C, 0x00, 0xF0, 0x1E, 0x00, 0x78, 0x0F, 0x00, 0x3C, 0x07, 0x80, 0x0F, 0x03, 0xE0, 0x07, 0x81, 0xF0, 0x03, 0xC0, 0xF8, 0x00, 0xF0, 0x7C, 0x00, 0x78, 0x3C, 0x00, 0x1E, 0x1E, 0x00, 0x0F, 0x1F, 0x00, 0x03, 0xCF, 0x80, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x00, // 'V' 0x00, 0x0E, 0x00, 0x07, 0x80, 0x0F, 0x80, 0x00, 0xF0, 0x0F, 0xE0, 0xF0, 0x3C, 0x0F, 0xF0, 0x78, 0x1E, 0x03, 0xB8, 0x1E, 0x07, 0x80, 0xDE, 0x0F, 0x03, 0xC0, 0x0F, 0x07, 0x81, 0xF0, 0x07, 0x83, 0xC0, 0x78, 0x03, 0xC1, 0xF0, 0x3C, 0x01, 0xF0, 0xF8, 0x1F, 0x00, 0x78, 0x7E, 0x0F, 0x80, 0x3C, 0x3F, 0x07, 0xC0, 0x1F, 0x1F, 0xC3, 0xE0, 0x07, 0x8F, 0xE0, 0xF0, 0x03, 0xC7, 0xF8, 0x78, 0x00, 0xF3, 0xDC, 0x3C, 0x00, 0x79, 0xEF, 0x1E, 0x00, 0x1E, 0xF3, 0x8F, 0x00, 0x0F, 0x79, 0xEF, 0x80, 0x03, 0xFC, 0x7F, 0xC0, 0x00, 0xFE, 0x1F, 0xC0, 0x00, 0x3F, 0x07, 0xE0, 0x00, 0x07, 0x00, 0xE0, 0x00, 0x00, // 'W' 0x00, 0x01, 0x80, 0x00, 0x00, 0x1F, 0x00, 0xF0, 0x01, 0xFC, 0x0F, 0x80, 0x0F, 0xF0, 0x78, 0x00, 0x79, 0xC7, 0xC0, 0x01, 0xC6, 0x3E, 0x00, 0x06, 0x39, 0xE0, 0x00, 0x10, 0xFF, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x7B, 0x82, 0x00, 0x03, 0xDC, 0x38, 0x00, 0x3E, 0x71, 0xE0, 0x01, 0xF1, 0xCF, 0x00, 0x0F, 0x87, 0x7C, 0x00, 0x7C, 0x1F, 0xC0, 0x01, 0xC0, 0x7E, 0x00, 0x06, 0x00, 0xE0, 0x00, 0x00, // 'X' 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x40, 0x07, 0xC0, 0x78, 0x03, 0xE0, 0x3C, 0x0B, 0xF8, 0x1F, 0x03, 0xFC, 0x07, 0x80, 0xEE, 0x03, 0xE0, 0x07, 0x81, 0xF0, 0x03, 0xC0, 0xF8, 0x00, 0xF0, 0x7E, 0x00, 0x78, 0x3F, 0x00, 0x3C, 0x1F, 0xC0, 0x0F, 0x0E, 0xE0, 0x07, 0x87, 0x70, 0x03, 0xC3, 0xBC, 0x00, 0xF1, 0xCE, 0x00, 0x78, 0xE7, 0x80, 0x1E, 0x73, 0xC0, 0x0F, 0x38, 0xE0, 0x03, 0xFC, 0x78, 0x00, 0xFE, 0x1C, 0x00, 0x3E, 0x0F, 0x00, 0x07, 0x07, 0x80, 0x00, 0x01, 0xC0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x38, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xA0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // 'Y' 0x00, 0xC0, 0x01, 0xC0, 0x70, 0x00, 0xF0, 0x1F, 0xFF, 0xF8, 0x07, 0xFF, 0xFC, 0x00, 0xFF, 0x3E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3C, 0x7F, 0xE0, 0x1F, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0x00, 0xFE, 0x00, 0x40, // 'Z' 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x03, 0xFC, 0x00, 0x1C, 0x00, 0x00, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0x7F, 0x80, 0x03, 0xF8, 0x00, 0x0F, 0x00, 0x00, // '[' 0x03, 0x18, 0xE7, 0x18, 0xC7, 0x39, 0xCE, 0x71, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x08, // '\' 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x80, 0x01, 0xFC, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x3F, 0xC0, 0x03, 0xFC, 0x00, 0x1F, 0xE0, 0x00, // ']' 0x00, 0x40, 0x1C, 0x0F, 0x83, 0xF0, 0xF6, 0x3C, 0xDF, 0x3F, 0x87, 0xE0, 0xE8, 0x1C, // '^' 0x3F, 0xFC, 0xFF, 0xF9, 0x80, 0x00, // '_' 0x07, 0x38, 0xE3, 0x18, 0x60, // '`' 0x01, 0xFC, 0x07, 0xFC, 0x0F, 0x38, 0x1C, 0x78, 0x38, 0xF0, 0x70, 0xF0, 0x61, 0xE0, 0xE3, 0xE0, 0xC7, 0xC2, 0xDF, 0xC6, 0xFE, 0xCE, 0xFC, 0xFC, 0x70, 0x70, // 'a' 0x00, 0x1C, 0x00, 0xE0, 0x03, 0x00, 0x1C, 0x00, 0xE0, 0x03, 0x00, 0x1C, 0x00, 0xE0, 0x03, 0x00, 0x1C, 0x00, 0x7F, 0x03, 0xFE, 0x1F, 0x38, 0x60, 0xE3, 0x83, 0x8C, 0x1C, 0x70, 0x71, 0x83, 0x86, 0x1C, 0x30, 0xF0, 0xC7, 0x83, 0x3C, 0x0F, 0xC0, 0x1C, 0x00, // 'b' 0x01, 0xE0, 0x3F, 0x83, 0xCC, 0x38, 0xE3, 0x86, 0x38, 0x01, 0x80, 0x1C, 0x00, 0xC0, 0x06, 0x00, 0xF0, 0x0D, 0xC3, 0xE7, 0xFC, 0x1F, 0x00, // 'c' 0x00, 0x00, 0x18, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x78, 0x00, 0x3B, 0x80, 0x07, 0xFC, 0x00, 0x7F, 0xC0, 0x07, 0x1E, 0x00, 0x71, 0xE0, 0x07, 0x1E, 0x00, 0x71, 0xF0, 0x03, 0x1F, 0x00, 0x39, 0xF8, 0x81, 0x9F, 0xCC, 0x0D, 0xEC, 0x60, 0x7E, 0x6E, 0x01, 0xC3, 0xE0, 0x00, 0x0E, 0x00, // 'd' 0x01, 0xE0, 0x7E, 0x0E, 0xC1, 0xC0, 0x30, 0x03, 0xF0, 0x3E, 0x03, 0xC0, 0x70, 0x2E, 0x06, 0xC0, 0xEC, 0x3C, 0xFF, 0x83, 0xE0, // 'e' 0x00, 0x00, 0x30, 0x00, 0x03, 0x80, 0x00, 0x18, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x00, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x06, 0x00, 0x00, 0x70, 0x00, 0x03, 0x00, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x18, 0x00, 0x01, 0xC0, 0x00, 0x0C, 0xE0, 0x03, 0xFF, 0x80, 0x3F, 0xC0, 0x01, 0xE7, 0x00, 0x07, 0x18, 0x00, 0x70, 0xC0, 0x03, 0x86, 0x00, 0x38, 0x60, 0x01, 0x86, 0x00, 0x1C, 0x30, 0x00, 0xC3, 0x00, 0x0E, 0x30, 0x00, 0x63, 0x00, 0x07, 0x38, 0x00, 0x33, 0x80, 0x01, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x00, 0x00, // 'f' 0x00, 0x76, 0x01, 0xFE, 0x07, 0xDC, 0x0F, 0x3C, 0x1C, 0x78, 0x38, 0xF0, 0x70, 0xF0, 0x61, 0xE0, 0xE7, 0xC2, 0xCF, 0xCF, 0xDF, 0x9E, 0xF9, 0xFC, 0x73, 0xF0, 0x07, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x7C, 0x00, 0xF8, 0x00, 0xF0, 0x00, 0xE0, 0x00, 0xE0, 0x00, // 'g' 0x00, 0x06, 0x00, 0x07, 0x00, 0x07, 0x00, 0x03, 0x80, 0x03, 0x80, 0x01, 0x80, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xE0, 0x00, 0x63, 0x80, 0x77, 0xC0, 0x37, 0xE0, 0x37, 0x60, 0x3F, 0x70, 0x1B, 0x70, 0x1F, 0x38, 0x0F, 0x38, 0x0F, 0x9C, 0x07, 0x9E, 0x27, 0x8E, 0x33, 0x87, 0x39, 0x83, 0xF8, 0xC0, 0xF0, // 'h' 0x00, 0x60, 0x1C, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x03, 0x80, 0xF0, 0x1E, 0x03, 0x80, 0x70, 0x1C, 0x03, 0x80, 0xE0, 0x1C, 0x47, 0x18, 0xE7, 0x1F, 0xC1, 0xE0, 0x00, // 'i' 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0F, 0x00, 0x01, 0xF0, 0x00, 0x1E, 0x00, 0x00, 0xC0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x07, 0x18, 0x00, 0x63, 0x80, 0x0E, 0xF0, 0x00, 0xDC, 0x00, 0x1F, 0x80, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x00, 0xF0, 0x00, 0x0E, 0x00, 0x00, // 'j' 0x00, 0x0C, 0x00, 0x38, 0x00, 0x60, 0x01, 0xC0, 0x07, 0x00, 0x0E, 0x00, 0x38, 0x00, 0x70, 0x01, 0xC0, 0x03, 0x80, 0x0E, 0x30, 0x1C, 0x60, 0x71, 0xC0, 0xE7, 0x03, 0x9C, 0x06, 0x78, 0x1F, 0xC0, 0x3F, 0x00, 0xFC, 0x01, 0xF8, 0x17, 0x38, 0x6E, 0x71, 0xB8, 0x7E, 0x30, 0x78, // 'k' 0x00, 0x18, 0x01, 0xF0, 0x0E, 0xC0, 0x73, 0x01, 0x98, 0x0E, 0xE0, 0x73, 0x01, 0x98, 0x0C, 0xE0, 0x77, 0x01, 0x98, 0x0C, 0xC0, 0x37, 0x00, 0xF8, 0x06, 0xC0, 0x1E, 0x00, 0x70, 0x03, 0xC0, 0x0E, 0x00, 0x30, 0x20, 0xC1, 0x83, 0x1E, 0x0F, 0xF0, 0x1F, 0x00, // 'l' 0x01, 0x8C, 0x1C, 0x07, 0x7C, 0xF8, 0x0D, 0xFB, 0xF0, 0x3F, 0x6E, 0xC0, 0xF9, 0xFB, 0x81, 0xE3, 0xE6, 0x07, 0x8F, 0x98, 0x0F, 0x1E, 0x60, 0x3C, 0x78, 0xC2, 0x70, 0xE3, 0x0D, 0xC3, 0x86, 0x7B, 0x8E, 0x0F, 0xE6, 0x1C, 0x1F, 0x80, 0x00, 0x1E, 0x00, // 'm' 0x00, 0xC7, 0x00, 0xEF, 0x80, 0xEF, 0xC0, 0x7F, 0xC0, 0x7E, 0xE0, 0x3C, 0xE0, 0x3C, 0x60, 0x3E, 0x70, 0x1E, 0x30, 0x1E, 0x38, 0xCE, 0x18, 0xEE, 0x0C, 0xE6, 0x07, 0xE0, 0x01, 0xC0, // 'n' 0x01, 0xC0, 0x3F, 0x83, 0xDE, 0x3C, 0x63, 0x83, 0x38, 0x39, 0xC3, 0x8C, 0x18, 0xC1, 0x86, 0x1C, 0x33, 0xC1, 0xF8, 0x07, 0x80, 0x00, // 'o' 0x00, 0x01, 0x80, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x60, 0x00, 0x0E, 0x00, 0x00, 0xDF, 0x00, 0x1B, 0xF0, 0x03, 0xF7, 0x00, 0x3E, 0x60, 0x07, 0xC6, 0x00, 0xF8, 0xC0, 0x0F, 0x1C, 0x01, 0xE3, 0x80, 0x3C, 0x70, 0x03, 0x8E, 0x00, 0x7F, 0xC0, 0x06, 0xF0, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x01, 0x80, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x00, 0xC0, 0x00, 0x0C, 0x00, 0x00, // 'p' 0x00, 0x76, 0x01, 0xFE, 0x03, 0xCE, 0x0F, 0x1C, 0x1E, 0x3C, 0x3C, 0x38, 0x38, 0x78, 0x70, 0xF0, 0x71, 0xE0, 0xE3, 0xE0, 0xEF, 0xC0, 0xFF, 0xC0, 0xFD, 0x80, 0x73, 0x80, 0x03, 0x00, 0x07, 0x00, 0x06, 0x80, 0x0F, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x18, 0x00, // 'q' 0x00, 0xCE, 0x01, 0xDE, 0x03, 0xFE, 0x03, 0xEE, 0x07, 0xCC, 0x0F, 0x88, 0x0F, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x38, 0x00, 0x70, 0x00, 0x60, 0x00, // 'r' 0x00, 0xF0, 0x3F, 0xC3, 0xFC, 0x7C, 0xE3, 0x80, 0x30, 0x01, 0xC0, 0x0F, 0xE0, 0x3F, 0xC0, 0x1E, 0x00, 0x71, 0x8F, 0x0F, 0xF0, 0x3E, 0x00, // 's' 0x00, 0x30, 0x01, 0xC0, 0x0E, 0x00, 0x3C, 0x3F, 0xFD, 0xFF, 0xE0, 0x70, 0x01, 0xC0, 0x0E, 0x00, 0x30, 0x01, 0xC0, 0x0E, 0x00, 0x38, 0x01, 0xC0, 0x06, 0x00, 0x18, 0x00, 0xC1, 0x03, 0x0C, 0x0C, 0xF0, 0x3F, 0x00, 0x78, 0x00, // 't' 0x02, 0x0E, 0x07, 0x0C, 0x0E, 0x1C, 0x0E, 0x18, 0x1C, 0x38, 0x1C, 0x70, 0x38, 0xF0, 0x39, 0xE0, 0x73, 0xE0, 0x77, 0xC2, 0x6E, 0xC6, 0x7C, 0xCE, 0x78, 0xFC, 0x70, 0x70, // 'u' 0x00, 0x00, 0x61, 0xC7, 0x0E, 0x78, 0x77, 0x87, 0x3C, 0x38, 0xE3, 0x86, 0x1C, 0x71, 0xC3, 0x1C, 0x39, 0xC1, 0x9C, 0x0D, 0xC0, 0x7C, 0x01, 0x80, 0x00, // 'v' 0x00, 0x00, 0x00, 0xE0, 0x0C, 0x3C, 0x61, 0x8F, 0x1C, 0x73, 0xE7, 0x0C, 0x38, 0xE3, 0x87, 0x3C, 0x61, 0xCF, 0x1C, 0x3B, 0xE7, 0x06, 0xF9, 0xC1, 0xFB, 0x70, 0x3E, 0x7C, 0x07, 0xCF, 0x00, 0xF1, 0xC0, 0x18, 0x00, 0x00, // 'w' 0x00, 0x06, 0x03, 0x1E, 0x07, 0x3C, 0x0F, 0x78, 0x0F, 0xF0, 0x03, 0xE0, 0x03, 0xC0, 0x03, 0x80, 0x0F, 0x00, 0x1F, 0x00, 0x3F, 0x08, 0x7B, 0x18, 0x73, 0x38, 0xE3, 0xF0, 0xC1, 0xC0, // 'x' 0x06, 0x0C, 0x0C, 0x38, 0x38, 0x60, 0x61, 0xC1, 0xC7, 0x07, 0x1E, 0x0E, 0x78, 0x39, 0xF1, 0x77, 0xC7, 0xDF, 0x1F, 0xF6, 0x77, 0xD9, 0x87, 0x76, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x01, 0xE0, 0x07, 0xC0, 0x0F, 0x00, 0x0C, 0x00, 0x00, // 'y' 0x1F, 0xF8, 0xFF, 0xE0, 0x0F, 0x00, 0x78, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x38, 0x19, 0xC7, 0xEF, 0xFF, 0xBF, 0xF0, 0xF8, 0x00, // 'z' 0x00, 0x03, 0xE0, 0x00, 0x7F, 0x80, 0x07, 0xFC, 0x00, 0x38, 0x20, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x18, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x1F, 0xE0, 0x00, 0xFC, 0x00, 0x01, 0xF0, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x7F, 0x80, 0x03, 0xF8, 0x00, 0x0F, 0x00, 0x00, // '{' 0x00, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x18, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x1C, 0x00, 0x06, 0x00, 0x03, 0x80, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x03, 0x80, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x18, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x00, // '|' 0x00, 0x01, 0xF0, 0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x30, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x31, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xC0, 0x00 // '}' }; const GFXglyph Yellowtail_32Glyphs[] PROGMEM = { // bitmapOffset, width, height, xAdvance, xOffset, yOffset {0, 1, 1, 8, 0, 0}, // ' ' {1, 18, 24, 12, 2, -23}, // '!' {55, 10, 8, 12, 7, -22}, // '"' {65, 18, 18, 18, 2, -19}, // '#' {106, 14, 24, 14, 2, -22}, // '$' {148, 18, 20, 23, 4, -20}, // '%' {193, 15, 23, 15, 3, -23}, // '&' {237, 6, 8, 7, 7, -22}, // ''' {243, 19, 32, 13, 3, -26}, // '(' {319, 18, 32, 12, -3, -26}, // ')' {391, 10, 9, 13, 7, -22}, // '*' {403, 12, 12, 14, 3, -16}, // '+' {421, 6, 6, 9, 0, -3}, // ',' {426, 9, 4, 11, 2, -9}, // '-' {431, 4, 3, 9, 2, -2}, // '.' {433, 24, 30, 14, -2, -26}, // '/' {523, 16, 20, 14, 1, -20}, // '0' {563, 13, 20, 9, 0, -20}, // '1' {596, 16, 20, 14, 1, -20}, // '2' {636, 15, 19, 14, 1, -19}, // '3' {672, 16, 21, 15, 2, -20}, // '4' {714, 17, 20, 14, 1, -19}, // '5' {757, 17, 21, 14, 1, -20}, // '6' {802, 15, 20, 12, 2, -19}, // '7' {840, 20, 20, 14, 0, -19}, // '8' {890, 17, 21, 15, 1, -20}, // '9' {935, 8, 12, 12, 3, -11}, // ':' {947, 11, 14, 13, 1, -11}, // ';' {967, 9, 15, 12, 5, -17}, // '<' {984, 15, 7, 15, 2, -13}, // '=' {998, 9, 15, 13, 2, -18}, // '>' {1015, 18, 24, 18, 4, -23}, // '?' {1069, 24, 24, 24, 3, -23}, // '@' {1141, 24, 24, 20, 1, -23}, // 'A' {1213, 23, 23, 23, 3, -23}, // 'B' {1280, 21, 23, 20, 3, -23}, // 'C' {1341, 24, 23, 26, 4, -23}, // 'D' {1410, 20, 23, 20, 3, -23}, // 'E' {1468, 23, 23, 20, 5, -23}, // 'F' {1535, 25, 31, 22, 2, -23}, // 'G' {1632, 29, 24, 25, 3, -23}, // 'H' {1719, 18, 23, 10, 0, -23}, // 'I' {1771, 28, 33, 22, 0, -23}, // 'J' {1887, 29, 23, 25, 1, -23}, // 'K' {1971, 30, 24, 24, -2, -23}, // 'L' {2061, 35, 27, 26, -3, -23}, // 'M' {2180, 29, 25, 23, 0, -24}, // 'N' {2271, 23, 23, 22, 3, -23}, // 'O' {2338, 24, 24, 24, 5, -23}, // 'P' {2410, 25, 28, 24, 2, -23}, // 'Q' {2498, 23, 24, 25, 5, -23}, // 'R' {2567, 25, 24, 23, 2, -23}, // 'S' {2642, 23, 24, 19, 5, -23}, // 'T' {2711, 27, 23, 25, 3, -23}, // 'U' {2789, 26, 23, 22, 3, -23}, // 'V' {2864, 34, 23, 30, 2, -23}, // 'W' {2962, 30, 23, 21, -1, -23}, // 'X' {3049, 26, 33, 23, 3, -23}, // 'Y' {3157, 26, 24, 20, 0, -23}, // 'Z' {3235, 21, 32, 13, 0, -27}, // '[' {3319, 5, 30, 13, 6, -26}, // '\' {3338, 21, 32, 14, -2, -27}, // ']' {3422, 11, 10, 17, 7, -23}, // '^' {3436, 15, 3, 13, -3, 2}, // '_' {3442, 5, 7, 14, 8, -21}, // '`' {3447, 16, 13, 15, 1, -12}, // 'a' {3473, 14, 24, 14, 1, -23}, // 'b' {3515, 13, 14, 13, 1, -13}, // 'c' {3538, 21, 24, 15, 1, -23}, // 'd' {3601, 12, 14, 12, 1, -13}, // 'e' {3622, 21, 33, 12, -5, -23}, // 'f' {3709, 16, 23, 14, 0, -13}, // 'g' {3755, 17, 24, 14, -1, -23}, // 'h' {3806, 11, 19, 8, 1, -18}, // 'i' {3833, 20, 28, 8, -8, -18}, // 'j' {3903, 15, 24, 13, -1, -23}, // 'k' {3948, 14, 24, 10, 2, -23}, // 'l' {3990, 23, 14, 21, -1, -13}, // 'm' {4031, 17, 14, 14, -2, -13}, // 'n' {4061, 13, 13, 13, 1, -13}, // 'o' {4083, 20, 26, 14, -6, -16}, // 'p' {4148, 16, 23, 14, 0, -13}, // 'q' {4194, 16, 13, 12, -2, -13}, // 'r' {4220, 13, 14, 13, 1, -13}, // 's' {4243, 14, 21, 8, 1, -20}, // 't' {4280, 16, 14, 15, 0, -13}, // 'u' {4308, 13, 15, 13, 1, -14}, // 'v' {4333, 19, 15, 18, 0, -14}, // 'w' {4369, 16, 15, 13, -1, -14}, // 'x' {4399, 15, 22, 14, 0, -12}, // 'y' {4441, 14, 13, 13, 0, -13}, // 'z' {4464, 21, 32, 15, 3, -27}, // '{' {4548, 18, 31, 13, 1, -27}, // '|' {4618, 21, 32, 16, -3, -27} // '}' }; const GFXfont Yellowtail_32 PROGMEM = {(uint8_t *)Yellowtail_32Bitmaps, (GFXglyph *)Yellowtail_32Glyphs, 0x20, 0x7D, 45}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Font16.c ================================================ // Font 2 #include // Width has been increased by 1 pixel so pixel lengths are calculated correctly // for the displayed string PROGMEM const unsigned char widtbl_f16[96] = // character width table { 6, 3, 4, 9, 8, 9, 9, 3, // char 32 - 39 7, 7, 8, 6, 3, 6, 5, 7, // char 40 - 47 8, 8, 8, 8, 8, 8, 8, 8, // char 48 - 55 8, 8, 3, 3, 6, 6, 6, 8, // char 56 - 63 9, 8, 8, 8, 8, 8, 8, 8, // char 64 - 71 8, 4, 8, 8, 7, 10, 8, 8, // char 72 - 79 8, 8, 8, 8, 8, 8, 8, 10, // char 80 - 87 8, 8, 8, 4, 7, 4, 7, 9, // char 88 - 95 4, 7, 7, 7, 7, 7, 6, 7, // char 96 - 103 7, 4, 5, 6, 4, 8, 7, 8, // char 104 - 111 7, 8, 6, 6, 5, 7, 8, 8, // char 112 - 119 6, 7, 7, 5, 3, 5, 8, 6 // char 120 - 127 }; // Row format, MSB left PROGMEM const unsigned char chr_f16_20[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_21[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11 0x00, 0x40, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_22[16] = // 1 unsigned char per row { 0x00, 0x00, 0xA0, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_23[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x24, 0x24, 0x24, 0xFF, 0x24, 0x24, 0xFF, 0x24, // row 1 - 11 0x24, 0x24, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_24[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x3C, 0x42, 0x40, 0x40, 0x70, 0x40, 0x70, 0x40, // row 1 - 11 0x40, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_25[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x61, 0x91, 0x92, 0x64, 0x08, 0x10, 0x26, 0x49, // row 1 - 11 0x89, 0x86, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_26[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x20, 0x50, 0x88, 0x88, 0x50, 0x20, 0x52, 0x8C, // row 1 - 11 0x8C, 0x73, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_27[16] = // 1 unsigned char per row { 0x00, 0x00, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_28[16] = // 1 unsigned char per row { 0x00, 0x0C, 0x10, 0x20, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11 0x40, 0x40, 0x20, 0x10, 0x0C // row 12 - 16 }; PROGMEM const unsigned char chr_f16_29[16] = // 1 unsigned char per row { 0x00, 0xC0, 0x20, 0x10, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, // row 1 - 11 0x08, 0x08, 0x10, 0x20, 0xC0 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_2A[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x10, 0x92, 0x54, 0x38, 0x54, 0x92, 0x10, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_2B[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_2C[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 0xC0, 0xC0, 0x40, 0x80, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_2D[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_2E[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 0xC0, 0xC0, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_2F[16] = // 1 unsigned char per row { 0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, // row 1 - 11 0x40, 0x80, 0x80, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_30[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x82, 0x82, 0x82, 0x82, 0x44, // row 1 - 11 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_31[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x10, 0x30, 0x50, 0x10, 0x10, 0x10, 0x10, 0x10, // row 1 - 11 0x10, 0x7C, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_32[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x02, 0x04, 0x18, 0x20, 0x40, // row 1 - 11 0x80, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_33[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x78, 0x84, 0x02, 0x04, 0x38, 0x04, 0x02, 0x02, // row 1 - 11 0x84, 0x78, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_34[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x04, 0x0C, 0x14, 0x24, 0x44, 0x84, 0xFE, 0x04, // row 1 - 11 0x04, 0x04, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_35[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xFC, 0x80, 0x80, 0x80, 0xF8, 0x04, 0x02, 0x02, // row 1 - 11 0x84, 0x78, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_36[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x3C, 0x40, 0x80, 0x80, 0xB8, 0xC4, 0x82, 0x82, // row 1 - 11 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_37[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, // row 1 - 11 0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_38[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x44, 0x38, 0x44, 0x82, 0x82, // row 1 - 11 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_39[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x46, 0x3A, 0x02, 0x02, // row 1 - 11 0x04, 0x78, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_3A[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_3B[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, // row 1 - 11 0x40, 0x80, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_3C[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, // row 1 - 11 0x10, 0x08, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_3D[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0xF8, 0x00, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_3E[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x10, 0x20, // row 1 - 11 0x40, 0x80, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_3F[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x02, 0x04, 0x08, 0x10, 0x10, // row 1 - 11 0x00, 0x10, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_40[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x3C, 0x42, 0x99, 0xA5, 0xA5, 0xA5, 0xA5, 0x9E, // row 1 - 11 0x40, 0x3E, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_41[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x10, 0x10, 0x28, 0x28, 0x44, 0x44, 0x7C, 0x82, // row 1 - 11 0x82, 0x82, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_42[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x84, 0xF8, 0x84, 0x82, 0x82, // row 1 - 11 0x84, 0xF8, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_43[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x3C, 0x42, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11 0x42, 0x3C, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_44[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11 0x84, 0xF8, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_45[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xFE, 0x80, 0x80, 0x80, 0xFC, 0x80, 0x80, 0x80, // row 1 - 11 0x80, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_46[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xFE, 0x80, 0x80, 0x80, 0xF8, 0x80, 0x80, 0x80, // row 1 - 11 0x80, 0x80, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_47[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x3C, 0x42, 0x80, 0x80, 0x80, 0x9C, 0x82, 0x82, // row 1 - 11 0x42, 0x3C, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_48[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0xFC, 0x84, 0x84, 0x84, // row 1 - 11 0x84, 0x84, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_49[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11 0x40, 0xE0, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_4A[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, // row 1 - 11 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_4B[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x84, 0x88, 0x90, 0xA0, 0xC0, 0xA0, 0x90, 0x88, // row 1 - 11 0x84, 0x82, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_4C[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11 0x80, 0xFC, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_4D[32] = // 2 unsigned chars per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x80, 0xC1, 0x80, 0xA2, 0x80, // row 1 - 6 0xA2, 0x80, 0x94, 0x80, 0x94, 0x80, 0x88, 0x80, 0x88, 0x80, 0x80, 0x80, // row 7 - 12 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 13 - 16 }; PROGMEM const unsigned char chr_f16_4E[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xC2, 0xC2, 0xA2, 0xA2, 0x92, 0x92, 0x8A, 0x8A, // row 1 - 11 0x86, 0x86, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_4F[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_50[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x82, 0x82, 0x84, 0xF8, 0x80, // row 1 - 11 0x80, 0x80, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_51[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11 0x44, 0x38, 0x08, 0x06, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_52[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x82, 0x84, 0xF8, 0x90, 0x88, // row 1 - 11 0x84, 0x82, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_53[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x80, 0x60, 0x1C, 0x02, 0x82, // row 1 - 11 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_54[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // row 1 - 11 0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_55[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_56[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x44, 0x44, 0x28, 0x28, // row 1 - 11 0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_57[32] = // 2 unsigned chars per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 6 0x88, 0x80, 0x88, 0x80, 0x49, 0x00, 0x55, 0x00, 0x55, 0x00, 0x22, 0x00, // row 7 - 12 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 13 - 16 }; PROGMEM const unsigned char chr_f16_58[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x28, 0x44, // row 1 - 11 0x82, 0x82, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_59[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, // row 1 - 11 0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_5A[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xFE, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x40, // row 1 - 11 0x80, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_5B[16] = // 1 unsigned char per row { 0x00, 0x00, 0xE0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11 0x80, 0x80, 0xE0, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_5C[16] = // 1 unsigned char per row { 0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, // row 1 - 11 0x40, 0x80, 0x80, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_5D[16] = // 1 unsigned char per row { 0x00, 0x00, 0xE0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // row 1 - 11 0x20, 0x20, 0xE0, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_5E[32] = // 1 unsigned chars per row { 0x00, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_5F[32] = // 1 unsigned chars per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 0x00, 0x00, 0x00, 0xFF, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_60[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_61[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x08, 0x04, 0x74, 0x8C, // row 1 - 11 0x8C, 0x74, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_62[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11 0xC8, 0xB0, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_63[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x80, 0x80, 0x80, // row 1 - 11 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_64[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x34, 0x4C, 0x84, 0x84, 0x84, // row 1 - 11 0x4C, 0x34, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_65[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x84, 0xF8, 0x80, // row 1 - 11 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_66[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x30, 0x48, 0x40, 0x40, 0x40, 0xE0, 0x40, 0x40, // row 1 - 11 0x40, 0x40, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_67[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4C, 0x84, 0x84, 0x84, // row 1 - 11 0x4C, 0x34, 0x04, 0x08, 0x70 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_68[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11 0x84, 0x84, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_69[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11 0x40, 0x40, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_6A[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x30, 0x10, 0x10, 0x10, 0x10, // row 1 - 11 0x10, 0x10, 0x10, 0x90, 0x60 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_6B[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x88, 0x90, 0xA0, 0xC0, 0xA0, // row 1 - 11 0x90, 0x88, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_6C[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0xC0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11 0x40, 0x40, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_6D[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xD2, 0x92, 0x92, 0x92, // row 1 - 11 0x92, 0x92, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_6E[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11 0x84, 0x84, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_6F[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, // row 1 - 11 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_70[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11 0xC8, 0xB0, 0x80, 0x80, 0x80 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_71[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x4C, 0x84, 0x84, 0x84, // row 1 - 11 0x4C, 0x34, 0x04, 0x04, 0x06 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_72[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xC8, 0x80, 0x80, 0x80, // row 1 - 11 0x80, 0x80, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_73[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x88, 0x80, 0x70, 0x08, // row 1 - 11 0x88, 0x70, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_74[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x40, // row 1 - 11 0x40, 0x30, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_75[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0x84, // row 1 - 11 0x4C, 0x34, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_76[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x44, // row 1 - 11 0x28, 0x10, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_77[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x92, 0x92, // row 1 - 11 0xAA, 0x44, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_78[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x50, 0x20, 0x50, // row 1 - 11 0x88, 0x88, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_79[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0x84, // row 1 - 11 0x4C, 0x34, 0x04, 0x08, 0x70 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_7A[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x04, 0x08, 0x30, 0x40, // row 1 - 11 0x80, 0xFC, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_7B[16] = // 1 unsigned char per row { 0x00, 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x20, 0x20, // row 1 - 11 0x20, 0x20, 0x20, 0x20, 0x10 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_7C[16] = // 1 unsigned char per row { 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11 0x40, 0x40, 0x40, 0x40, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_7D[16] = // 1 unsigned char per row { 0x00, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10, 0x20, 0x20, // row 1 - 11 0x20, 0x20, 0x20, 0x20, 0x40 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_7E[16] = // 1 unsigned char per row { 0x00, 0x00, 0x00, 0x32, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char chr_f16_7F[16] = // 1 unsigned char per row { 0x00, 0x00, 0x30, 0x48, 0x48, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16 }; PROGMEM const unsigned char* const chrtbl_f16[96] = // character pointer table {chr_f16_20, chr_f16_21, chr_f16_22, chr_f16_23, chr_f16_24, chr_f16_25, chr_f16_26, chr_f16_27, chr_f16_28, chr_f16_29, chr_f16_2A, chr_f16_2B, chr_f16_2C, chr_f16_2D, chr_f16_2E, chr_f16_2F, chr_f16_30, chr_f16_31, chr_f16_32, chr_f16_33, chr_f16_34, chr_f16_35, chr_f16_36, chr_f16_37, chr_f16_38, chr_f16_39, chr_f16_3A, chr_f16_3B, chr_f16_3C, chr_f16_3D, chr_f16_3E, chr_f16_3F, chr_f16_40, chr_f16_41, chr_f16_42, chr_f16_43, chr_f16_44, chr_f16_45, chr_f16_46, chr_f16_47, chr_f16_48, chr_f16_49, chr_f16_4A, chr_f16_4B, chr_f16_4C, chr_f16_4D, chr_f16_4E, chr_f16_4F, chr_f16_50, chr_f16_51, chr_f16_52, chr_f16_53, chr_f16_54, chr_f16_55, chr_f16_56, chr_f16_57, chr_f16_58, chr_f16_59, chr_f16_5A, chr_f16_5B, chr_f16_5C, chr_f16_5D, chr_f16_5E, chr_f16_5F, chr_f16_60, chr_f16_61, chr_f16_62, chr_f16_63, chr_f16_64, chr_f16_65, chr_f16_66, chr_f16_67, chr_f16_68, chr_f16_69, chr_f16_6A, chr_f16_6B, chr_f16_6C, chr_f16_6D, chr_f16_6E, chr_f16_6F, chr_f16_70, chr_f16_71, chr_f16_72, chr_f16_73, chr_f16_74, chr_f16_75, chr_f16_76, chr_f16_77, chr_f16_78, chr_f16_79, chr_f16_7A, chr_f16_7B, chr_f16_7C, chr_f16_7D, chr_f16_7E, chr_f16_7F}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Font16.h ================================================ #include #define nr_chrs_f16 96 #define chr_hgt_f16 16 #define baseline_f16 13 #define data_size_f16 8 #define firstchr_f16 32 extern const unsigned char widtbl_f16[96]; extern const unsigned char* const chrtbl_f16[96]; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Font32rle.c ================================================ // Font 4 // // This font has been 8 bit Run Length Encoded to save FLASH space // // This font contains 96 ASCII characters #include PROGMEM const unsigned char widtbl_f32[96] = // character width table { 5, 8, 8, 19, 14, 21, 17, 6, // char 32 - 39 8, 8, 12, 10, 7, 8, 7, 8, // char 40 - 47 14, 14, 14, 14, 14, 14, 14, 14, // char 48 - 55 14, 14, 7, 7, 14, 9, 14, 13, // char 56 - 63 25, 16, 17, 18, 18, 16, 15, 19, // char 64 - 71 18, 6, 13, 17, 13, 21, 18, 19, // char 72 - 79 16, 19, 17, 16, 14, 18, 15, 23, // char 80 - 87 15, 16, 16, 9, 13, 9, 12, 13, // char 88 - 95 9, 14, 15, 13, 15, 14, 8, 15, // char 96 - 103 15, 6, 6, 12, 6, 22, 15, 15, // char 104 - 111 15, 15, 8, 12, 7, 14, 12, 18, // char 112 - 119 13, 13, 12, 13, 13, 13, 15, 1 // char 120 - 127 }; // Row format, MSB left PROGMEM const unsigned char chr_f32_20[] = {0x7F, 0x1}; PROGMEM const unsigned char chr_f32_21[] = { 0x0A, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x15, 0x81, 0x05, 0x81, 0x05, 0x81, 0x3A}; PROGMEM const unsigned char chr_f32_22[] = { 0x09, 0x80, 0x01, 0x80, 0x03, 0x80, 0x01, 0x80, 0x03, 0x80, 0x01, 0x80, 0x03, 0x80, 0x01, 0x80, 0x03, 0x80, 0x01, 0x80, 0x03, 0x80, 0x01, 0x80, 0x03, 0x80, 0x01, 0x80, 0x7F, 0x11}; PROGMEM const unsigned char chr_f32_23[] = { 0x2E, 0x81, 0x01, 0x81, 0x0C, 0x80, 0x02, 0x80, 0x0D, 0x80, 0x02, 0x80, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x80, 0x02, 0x80, 0x0D, 0x80, 0x02, 0x80, 0x08, 0x8D, 0x08, 0x80, 0x02, 0x80, 0x0D, 0x80, 0x02, 0x80, 0x0D, 0x80, 0x02, 0x80, 0x08, 0x8D, 0x08, 0x80, 0x02, 0x80, 0x0D, 0x80, 0x02, 0x80, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x80, 0x02, 0x80, 0x0D, 0x80, 0x02, 0x80, 0x0C, 0x81, 0x01, 0x81, 0x7F, 0xD}; PROGMEM const unsigned char chr_f32_24[] = { 0x1F, 0x85, 0x05, 0x89, 0x03, 0x82, 0x03, 0x82, 0x02, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x0B, 0x82, 0x0B, 0x81, 0x0A, 0x87, 0x07, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0A, 0x81, 0x0B, 0x86, 0x02, 0x80, 0x01, 0x8B, 0x01, 0x81, 0x04, 0x83, 0x63}; PROGMEM const unsigned char chr_f32_25[] = { 0x2D, 0x82, 0x07, 0x81, 0x05, 0x86, 0x05, 0x80, 0x06, 0x81, 0x02, 0x81, 0x04, 0x81, 0x05, 0x81, 0x04, 0x81, 0x02, 0x81, 0x06, 0x81, 0x04, 0x81, 0x02, 0x80, 0x07, 0x81, 0x04, 0x81, 0x01, 0x81, 0x08, 0x81, 0x02, 0x81, 0x02, 0x80, 0x09, 0x86, 0x01, 0x80, 0x0C, 0x82, 0x02, 0x81, 0x02, 0x82, 0x0C, 0x80, 0x01, 0x86, 0x09, 0x80, 0x02, 0x81, 0x02, 0x81, 0x08, 0x81, 0x01, 0x81, 0x04, 0x81, 0x07, 0x80, 0x02, 0x81, 0x04, 0x81, 0x06, 0x81, 0x02, 0x81, 0x04, 0x81, 0x05, 0x81, 0x04, 0x81, 0x02, 0x81, 0x06, 0x80, 0x05, 0x86, 0x05, 0x81, 0x07, 0x82, 0x07, 0x80, 0x7F, 0xC}; PROGMEM const unsigned char chr_f32_26[] = { 0x15, 0x84, 0x0A, 0x86, 0x08, 0x82, 0x02, 0x82, 0x07, 0x81, 0x04, 0x81, 0x07, 0x81, 0x04, 0x81, 0x07, 0x81, 0x03, 0x82, 0x08, 0x81, 0x01, 0x82, 0x0A, 0x84, 0x0A, 0x83, 0x0B, 0x85, 0x03, 0x81, 0x03, 0x82, 0x01, 0x82, 0x02, 0x81, 0x02, 0x82, 0x03, 0x82, 0x01, 0x81, 0x02, 0x81, 0x05, 0x84, 0x03, 0x81, 0x06, 0x83, 0x03, 0x81, 0x07, 0x81, 0x04, 0x82, 0x04, 0x85, 0x03, 0x88, 0x01, 0x82, 0x03, 0x85, 0x04, 0x82, 0x76}; PROGMEM const unsigned char chr_f32_27[] = {0x06, 0x82, 0x02, 0x82, 0x02, 0x82, 0x04, 0x80, 0x03, 0x81, 0x02, 0x81, 0x74}; PROGMEM const unsigned char chr_f32_28[] = { 0x0D, 0x81, 0x05, 0x80, 0x05, 0x81, 0x05, 0x80, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x04, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x06, 0x81, 0x05, 0x81, 0x05, 0x81, 0x06, 0x80, 0x06, 0x81, 0x06, 0x80, 0x06, 0x81, 0x7}; PROGMEM const unsigned char chr_f32_29[] = { 0x07, 0x81, 0x06, 0x80, 0x06, 0x81, 0x06, 0x80, 0x06, 0x81, 0x05, 0x81, 0x05, 0x81, 0x06, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x04, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x80, 0x05, 0x81, 0x05, 0x80, 0x05, 0x81, 0xD}; PROGMEM const unsigned char chr_f32_2A[] = { 0x10, 0x81, 0x09, 0x81, 0x09, 0x81, 0x06, 0x80, 0x01, 0x81, 0x01, 0x80, 0x02, 0x89, 0x03, 0x85, 0x06, 0x83, 0x06, 0x81, 0x01, 0x81, 0x04, 0x82, 0x01, 0x82, 0x04, 0x80, 0x03, 0x80, 0x7F, 0x36}; PROGMEM const unsigned char chr_f32_2B[] = {0x53, 0x81, 0x07, 0x81, 0x07, 0x81, 0x04, 0x87, 0x01, 0x87, 0x04, 0x81, 0x07, 0x81, 0x07, 0x81, 0x67}; PROGMEM const unsigned char chr_f32_2C[] = {0x71, 0x82, 0x03, 0x82, 0x03, 0x82, 0x05, 0x80, 0x04, 0x81, 0x04, 0x80, 0x04, 0x81, 0x17}; PROGMEM const unsigned char chr_f32_2D[] = {0x58, 0x85, 0x01, 0x85, 0x68}; PROGMEM const unsigned char chr_f32_2E[] = {0x71, 0x82, 0x03, 0x82, 0x03, 0x82, 0x32}; PROGMEM const unsigned char chr_f32_2F[] = { 0x0D, 0x81, 0x05, 0x81, 0x05, 0x80, 0x05, 0x81, 0x05, 0x81, 0x05, 0x80, 0x05, 0x81, 0x05, 0x81, 0x05, 0x80, 0x05, 0x81, 0x05, 0x81, 0x05, 0x80, 0x05, 0x81, 0x05, 0x81, 0x05, 0x80, 0x05, 0x81, 0x05, 0x81, 0x05, 0x80, 0x05, 0x81, 0x05, 0x81, 0x2D}; PROGMEM const unsigned char chr_f32_30[] = { 0x20, 0x83, 0x07, 0x87, 0x04, 0x83, 0x01, 0x83, 0x03, 0x81, 0x05, 0x81, 0x02, 0x82, 0x05, 0x82, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x82, 0x05, 0x82, 0x02, 0x81, 0x05, 0x81, 0x03, 0x83, 0x01, 0x83, 0x04, 0x87, 0x07, 0x83, 0x66}; PROGMEM const unsigned char chr_f32_31[] = { 0x22, 0x81, 0x0B, 0x81, 0x0A, 0x82, 0x07, 0x85, 0x07, 0x85, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x66}; PROGMEM const unsigned char chr_f32_32[] = { 0x1F, 0x85, 0x05, 0x89, 0x03, 0x82, 0x03, 0x82, 0x02, 0x82, 0x06, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x0B, 0x81, 0x0A, 0x82, 0x08, 0x83, 0x07, 0x84, 0x06, 0x84, 0x07, 0x83, 0x08, 0x82, 0x09, 0x82, 0x0A, 0x81, 0x0B, 0x8B, 0x01, 0x8B, 0x62}; PROGMEM const unsigned char chr_f32_33[] = { 0x1F, 0x85, 0x06, 0x87, 0x04, 0x82, 0x03, 0x82, 0x03, 0x81, 0x05, 0x81, 0x02, 0x82, 0x05, 0x81, 0x0B, 0x81, 0x0A, 0x82, 0x07, 0x84, 0x08, 0x85, 0x0B, 0x82, 0x0B, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x82, 0x05, 0x82, 0x02, 0x82, 0x03, 0x82, 0x03, 0x89, 0x05, 0x85, 0x65}; PROGMEM const unsigned char chr_f32_34[] = { 0x24, 0x81, 0x0A, 0x82, 0x09, 0x83, 0x09, 0x83, 0x08, 0x81, 0x00, 0x81, 0x07, 0x81, 0x01, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x81, 0x05, 0x81, 0x03, 0x81, 0x04, 0x81, 0x04, 0x81, 0x03, 0x81, 0x05, 0x81, 0x03, 0x8B, 0x01, 0x8B, 0x09, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x64}; PROGMEM const unsigned char chr_f32_35[] = { 0x1D, 0x89, 0x03, 0x89, 0x03, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x00, 0x84, 0x05, 0x89, 0x02, 0x83, 0x03, 0x82, 0x02, 0x81, 0x06, 0x82, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x82, 0x05, 0x82, 0x02, 0x82, 0x03, 0x82, 0x03, 0x89, 0x05, 0x85, 0x65}; PROGMEM const unsigned char chr_f32_36[] = { 0x20, 0x84, 0x06, 0x88, 0x03, 0x82, 0x04, 0x81, 0x03, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x01, 0x81, 0x0B, 0x81, 0x01, 0x84, 0x04, 0x8A, 0x02, 0x83, 0x03, 0x82, 0x02, 0x82, 0x05, 0x82, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x02, 0x81, 0x05, 0x82, 0x02, 0x82, 0x03, 0x82, 0x04, 0x88, 0x05, 0x85, 0x65}; PROGMEM const unsigned char chr_f32_37[] = { 0x1C, 0x8B, 0x01, 0x8B, 0x0A, 0x81, 0x0A, 0x82, 0x09, 0x82, 0x0A, 0x81, 0x0A, 0x82, 0x0A, 0x81, 0x0A, 0x81, 0x0B, 0x81, 0x0A, 0x82, 0x0A, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0A, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x69}; PROGMEM const unsigned char chr_f32_38[] = { 0x20, 0x83, 0x07, 0x87, 0x05, 0x81, 0x03, 0x81, 0x04, 0x81, 0x05, 0x81, 0x03, 0x81, 0x05, 0x81, 0x03, 0x81, 0x05, 0x81, 0x04, 0x81, 0x03, 0x81, 0x06, 0x85, 0x06, 0x87, 0x04, 0x82, 0x03, 0x82, 0x02, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x02, 0x82, 0x03, 0x82, 0x03, 0x89, 0x05, 0x85, 0x65}; PROGMEM const unsigned char chr_f32_39[] = { 0x1F, 0x85, 0x05, 0x88, 0x04, 0x82, 0x03, 0x82, 0x02, 0x82, 0x05, 0x81, 0x02, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x81, 0x07, 0x81, 0x01, 0x82, 0x05, 0x82, 0x02, 0x82, 0x03, 0x83, 0x02, 0x8A, 0x04, 0x84, 0x01, 0x81, 0x0B, 0x81, 0x01, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x03, 0x81, 0x04, 0x82, 0x03, 0x88, 0x05, 0x86, 0x65}; PROGMEM const unsigned char chr_f32_3A[] = {0x2B, 0x82, 0x03, 0x82, 0x03, 0x82, 0x34, 0x82, 0x03, 0x82, 0x03, 0x82, 0x32}; PROGMEM const unsigned char chr_f32_3B[] = { 0x2B, 0x82, 0x03, 0x82, 0x03, 0x82, 0x34, 0x82, 0x03, 0x82, 0x03, 0x82, 0x05, 0x80, 0x04, 0x81, 0x04, 0x80, 0x04, 0x81, 0x17}; PROGMEM const unsigned char chr_f32_3C[] = { 0x6B, 0x82, 0x08, 0x82, 0x07, 0x83, 0x07, 0x82, 0x08, 0x81, 0x0D, 0x82, 0x0D, 0x82, 0x0C, 0x82, 0x0C, 0x82, 0x7F, 0xC}; PROGMEM const unsigned char chr_f32_3D[] = {0x51, 0x86, 0x01, 0x86, 0x13, 0x86, 0x01, 0x86, 0x63}; PROGMEM const unsigned char chr_f32_3E[] = { 0x62, 0x82, 0x0C, 0x82, 0x0C, 0x83, 0x0C, 0x82, 0x0D, 0x81, 0x08, 0x82, 0x07, 0x83, 0x07, 0x82, 0x08, 0x82, 0x7F, 0x15}; PROGMEM const unsigned char chr_f32_3F[] = { 0x10, 0x85, 0x04, 0x88, 0x03, 0x82, 0x03, 0x82, 0x01, 0x82, 0x05, 0x81, 0x01, 0x81, 0x06, 0x81, 0x01, 0x81, 0x06, 0x81, 0x09, 0x82, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x09, 0x81, 0x09, 0x82, 0x09, 0x82, 0x23, 0x82, 0x09, 0x82, 0x09, 0x82, 0x5F}; PROGMEM const unsigned char chr_f32_40[] = { 0x21, 0x88, 0x0D, 0x82, 0x06, 0x82, 0x09, 0x82, 0x0A, 0x81, 0x07, 0x81, 0x0D, 0x81, 0x05, 0x81, 0x0F, 0x81, 0x04, 0x80, 0x06, 0x83, 0x01, 0x80, 0x03, 0x81, 0x02, 0x81, 0x04, 0x81, 0x02, 0x83, 0x03, 0x81, 0x02, 0x81, 0x03, 0x81, 0x04, 0x81, 0x04, 0x81, 0x01, 0x81, 0x04, 0x81, 0x04, 0x81, 0x04, 0x81, 0x01, 0x81, 0x03, 0x81, 0x05, 0x81, 0x04, 0x81, 0x01, 0x81, 0x03, 0x81, 0x05, 0x81, 0x04, 0x81, 0x01, 0x81, 0x03, 0x81, 0x04, 0x81, 0x04, 0x81, 0x02, 0x81, 0x03, 0x81, 0x04, 0x81, 0x04, 0x81, 0x02, 0x81, 0x03, 0x81, 0x04, 0x81, 0x03, 0x81, 0x04, 0x81, 0x03, 0x81, 0x02, 0x82, 0x02, 0x81, 0x05, 0x81, 0x04, 0x83, 0x01, 0x84, 0x07, 0x81, 0x17, 0x81, 0x17, 0x81, 0x0B, 0x81, 0x09, 0x82, 0x05, 0x83, 0x0D, 0x87, 0x6C}; PROGMEM const unsigned char chr_f32_41[] = { 0x15, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x0A, 0x81, 0x01, 0x81, 0x09, 0x81, 0x01, 0x81, 0x09, 0x81, 0x01, 0x81, 0x08, 0x81, 0x03, 0x81, 0x07, 0x81, 0x03, 0x81, 0x07, 0x81, 0x03, 0x81, 0x06, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x89, 0x04, 0x8B, 0x03, 0x81, 0x07, 0x81, 0x03, 0x81, 0x07, 0x81, 0x02, 0x81, 0x09, 0x81, 0x01, 0x81, 0x09, 0x81, 0x00, 0x82, 0x09, 0x82, 0x6F}; PROGMEM const unsigned char chr_f32_42[] = { 0x12, 0x8A, 0x05, 0x8C, 0x03, 0x81, 0x07, 0x82, 0x03, 0x81, 0x08, 0x81, 0x03, 0x81, 0x08, 0x81, 0x03, 0x81, 0x08, 0x81, 0x03, 0x81, 0x08, 0x81, 0x03, 0x81, 0x07, 0x82, 0x03, 0x8A, 0x05, 0x8C, 0x03, 0x81, 0x07, 0x82, 0x03, 0x81, 0x09, 0x81, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x07, 0x82, 0x03, 0x8C, 0x03, 0x8A, 0x7A}; PROGMEM const unsigned char chr_f32_43[] = { 0x17, 0x86, 0x08, 0x8A, 0x05, 0x83, 0x04, 0x83, 0x03, 0x82, 0x08, 0x81, 0x03, 0x81, 0x0A, 0x81, 0x01, 0x82, 0x0A, 0x81, 0x01, 0x81, 0x0F, 0x81, 0x0F, 0x81, 0x0F, 0x81, 0x0F, 0x81, 0x0F, 0x81, 0x0B, 0x81, 0x01, 0x82, 0x0A, 0x81, 0x02, 0x81, 0x09, 0x82, 0x02, 0x82, 0x08, 0x81, 0x04, 0x83, 0x04, 0x83, 0x05, 0x8A, 0x08, 0x86, 0x7F, 0x2}; PROGMEM const unsigned char chr_f32_44[] = { 0x13, 0x89, 0x07, 0x8B, 0x05, 0x81, 0x06, 0x83, 0x04, 0x81, 0x08, 0x82, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x82, 0x02, 0x81, 0x0A, 0x81, 0x02, 0x81, 0x0A, 0x81, 0x02, 0x81, 0x0A, 0x81, 0x02, 0x81, 0x0A, 0x81, 0x02, 0x81, 0x0A, 0x81, 0x02, 0x81, 0x0A, 0x81, 0x02, 0x81, 0x09, 0x82, 0x02, 0x81, 0x09, 0x81, 0x03, 0x81, 0x08, 0x82, 0x03, 0x81, 0x06, 0x83, 0x04, 0x8B, 0x05, 0x89, 0x7F, 0x3}; PROGMEM const unsigned char chr_f32_45[] = { 0x11, 0x8C, 0x02, 0x8C, 0x02, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x8B, 0x03, 0x8B, 0x03, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x8C, 0x02, 0x8C, 0x70}; PROGMEM const unsigned char chr_f32_46[] = { 0x10, 0x8B, 0x02, 0x8B, 0x02, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x8A, 0x03, 0x8A, 0x03, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x73}; PROGMEM const unsigned char chr_f32_47[] = { 0x18, 0x86, 0x09, 0x8A, 0x06, 0x82, 0x05, 0x83, 0x04, 0x82, 0x08, 0x81, 0x04, 0x81, 0x09, 0x82, 0x02, 0x82, 0x0F, 0x81, 0x10, 0x81, 0x10, 0x81, 0x05, 0x87, 0x02, 0x81, 0x05, 0x87, 0x02, 0x81, 0x0B, 0x81, 0x02, 0x81, 0x0B, 0x81, 0x02, 0x82, 0x0A, 0x81, 0x03, 0x81, 0x09, 0x82, 0x03, 0x82, 0x07, 0x83, 0x04, 0x83, 0x04, 0x84, 0x05, 0x89, 0x00, 0x81, 0x07, 0x85, 0x03, 0x80, 0x7F, 0x6}; PROGMEM const unsigned char chr_f32_48[] = { 0x13, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x8D, 0x03, 0x8D, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x7F}; PROGMEM const unsigned char chr_f32_49[] = { 0x07, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x2B}; PROGMEM const unsigned char chr_f32_4A[] = { 0x15, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x01, 0x81, 0x06, 0x81, 0x01, 0x81, 0x06, 0x81, 0x01, 0x81, 0x06, 0x81, 0x01, 0x82, 0x04, 0x82, 0x02, 0x88, 0x04, 0x86, 0x5E}; PROGMEM const unsigned char chr_f32_4B[] = { 0x12, 0x81, 0x08, 0x82, 0x02, 0x81, 0x07, 0x82, 0x03, 0x81, 0x06, 0x82, 0x04, 0x81, 0x05, 0x82, 0x05, 0x81, 0x04, 0x82, 0x06, 0x81, 0x03, 0x82, 0x07, 0x81, 0x02, 0x82, 0x08, 0x81, 0x01, 0x82, 0x09, 0x81, 0x00, 0x83, 0x09, 0x87, 0x08, 0x83, 0x01, 0x82, 0x07, 0x82, 0x03, 0x82, 0x06, 0x81, 0x05, 0x81, 0x06, 0x81, 0x05, 0x82, 0x05, 0x81, 0x06, 0x82, 0x04, 0x81, 0x07, 0x82, 0x03, 0x81, 0x08, 0x82, 0x02, 0x81, 0x09, 0x82, 0x76}; PROGMEM const unsigned char chr_f32_4C[] = { 0x0E, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x8A, 0x01, 0x8A, 0x5A}; PROGMEM const unsigned char chr_f32_4D[] = { 0x16, 0x82, 0x0A, 0x82, 0x03, 0x83, 0x08, 0x83, 0x03, 0x83, 0x08, 0x83, 0x03, 0x83, 0x08, 0x83, 0x03, 0x81, 0x00, 0x81, 0x06, 0x81, 0x00, 0x81, 0x03, 0x81, 0x00, 0x81, 0x06, 0x81, 0x00, 0x81, 0x03, 0x81, 0x00, 0x81, 0x06, 0x81, 0x00, 0x81, 0x03, 0x81, 0x01, 0x81, 0x04, 0x81, 0x01, 0x81, 0x03, 0x81, 0x01, 0x81, 0x04, 0x81, 0x01, 0x81, 0x03, 0x81, 0x01, 0x81, 0x04, 0x81, 0x01, 0x81, 0x03, 0x81, 0x02, 0x81, 0x02, 0x81, 0x02, 0x81, 0x03, 0x81, 0x02, 0x81, 0x02, 0x81, 0x02, 0x81, 0x03, 0x81, 0x02, 0x81, 0x02, 0x81, 0x02, 0x81, 0x03, 0x81, 0x03, 0x81, 0x00, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x00, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x84, 0x03, 0x81, 0x03, 0x81, 0x04, 0x82, 0x04, 0x81, 0x03, 0x81, 0x04, 0x82, 0x04, 0x81, 0x7F, 0x14}; PROGMEM const unsigned char chr_f32_4E[] = { 0x13, 0x82, 0x08, 0x81, 0x03, 0x82, 0x08, 0x81, 0x03, 0x83, 0x07, 0x81, 0x03, 0x84, 0x06, 0x81, 0x03, 0x81, 0x00, 0x81, 0x06, 0x81, 0x03, 0x81, 0x00, 0x82, 0x05, 0x81, 0x03, 0x81, 0x01, 0x82, 0x04, 0x81, 0x03, 0x81, 0x02, 0x81, 0x04, 0x81, 0x03, 0x81, 0x02, 0x82, 0x03, 0x81, 0x03, 0x81, 0x03, 0x82, 0x02, 0x81, 0x03, 0x81, 0x04, 0x81, 0x02, 0x81, 0x03, 0x81, 0x04, 0x82, 0x01, 0x81, 0x03, 0x81, 0x05, 0x82, 0x00, 0x81, 0x03, 0x81, 0x06, 0x81, 0x00, 0x81, 0x03, 0x81, 0x06, 0x84, 0x03, 0x81, 0x07, 0x83, 0x03, 0x81, 0x08, 0x82, 0x03, 0x81, 0x08, 0x82, 0x7F}; PROGMEM const unsigned char chr_f32_4F[] = { 0x18, 0x86, 0x09, 0x8A, 0x06, 0x83, 0x04, 0x83, 0x04, 0x82, 0x08, 0x82, 0x03, 0x81, 0x0A, 0x81, 0x02, 0x82, 0x0A, 0x82, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x82, 0x0A, 0x82, 0x02, 0x81, 0x0A, 0x81, 0x03, 0x82, 0x08, 0x82, 0x04, 0x83, 0x04, 0x83, 0x06, 0x8A, 0x09, 0x86, 0x7F, 0xA}; PROGMEM const unsigned char chr_f32_50[] = { 0x11, 0x8A, 0x04, 0x8B, 0x03, 0x81, 0x07, 0x82, 0x02, 0x81, 0x08, 0x81, 0x02, 0x81, 0x08, 0x81, 0x02, 0x81, 0x08, 0x81, 0x02, 0x81, 0x08, 0x81, 0x02, 0x81, 0x07, 0x82, 0x02, 0x8B, 0x03, 0x8A, 0x04, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x7B}; PROGMEM const unsigned char chr_f32_51[] = { 0x18, 0x86, 0x09, 0x8A, 0x06, 0x83, 0x04, 0x83, 0x04, 0x82, 0x08, 0x82, 0x03, 0x81, 0x0A, 0x81, 0x02, 0x82, 0x0A, 0x82, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x81, 0x0C, 0x81, 0x01, 0x82, 0x06, 0x80, 0x02, 0x82, 0x02, 0x81, 0x05, 0x82, 0x01, 0x81, 0x03, 0x82, 0x05, 0x85, 0x04, 0x83, 0x04, 0x83, 0x06, 0x8C, 0x07, 0x86, 0x01, 0x82, 0x10, 0x80, 0x73}; PROGMEM const unsigned char chr_f32_52[] = { 0x12, 0x8B, 0x04, 0x8C, 0x03, 0x81, 0x08, 0x82, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x08, 0x81, 0x03, 0x8C, 0x03, 0x8B, 0x04, 0x81, 0x07, 0x82, 0x03, 0x81, 0x08, 0x81, 0x03, 0x81, 0x08, 0x82, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x09, 0x81, 0x02, 0x81, 0x09, 0x81, 0x77}; PROGMEM const unsigned char chr_f32_53[] = { 0x14, 0x85, 0x07, 0x89, 0x04, 0x82, 0x05, 0x82, 0x03, 0x81, 0x07, 0x81, 0x03, 0x81, 0x07, 0x81, 0x03, 0x81, 0x07, 0x82, 0x02, 0x82, 0x0D, 0x84, 0x0B, 0x86, 0x0B, 0x85, 0x0C, 0x83, 0x0D, 0x82, 0x01, 0x82, 0x08, 0x81, 0x02, 0x81, 0x08, 0x81, 0x02, 0x81, 0x08, 0x81, 0x02, 0x83, 0x05, 0x82, 0x03, 0x8A, 0x06, 0x86, 0x73}; PROGMEM const unsigned char chr_f32_54[] = { 0x0D, 0x9B, 0x05, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x0B, 0x81, 0x67}; PROGMEM const unsigned char chr_f32_55[] = { 0x13, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x81, 0x09, 0x81, 0x03, 0x82, 0x07, 0x82, 0x04, 0x82, 0x05, 0x82, 0x06, 0x89, 0x08, 0x87, 0x7F, 0x2}; PROGMEM const unsigned char chr_f32_56[] = { 0x0E, 0x82, 0x08, 0x82, 0x00, 0x81, 0x08, 0x81, 0x01, 0x81, 0x08, 0x81, 0x01, 0x81, 0x08, 0x81, 0x02, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x04, 0x81, 0x04, 0x81, 0x05, 0x81, 0x04, 0x81, 0x05, 0x81, 0x04, 0x81, 0x06, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x08, 0x81, 0x00, 0x81, 0x09, 0x81, 0x00, 0x81, 0x09, 0x84, 0x0A, 0x82, 0x0B, 0x82, 0x6E}; PROGMEM const unsigned char chr_f32_57[] = { 0x16, 0x82, 0x06, 0x82, 0x06, 0x82, 0x00, 0x81, 0x06, 0x82, 0x06, 0x81, 0x01, 0x81, 0x06, 0x82, 0x06, 0x81, 0x01, 0x82, 0x04, 0x81, 0x00, 0x81, 0x04, 0x82, 0x02, 0x81, 0x04, 0x81, 0x00, 0x81, 0x04, 0x81, 0x03, 0x81, 0x04, 0x81, 0x00, 0x81, 0x04, 0x81, 0x03, 0x81, 0x04, 0x81, 0x00, 0x81, 0x04, 0x81, 0x03, 0x82, 0x02, 0x81, 0x02, 0x81, 0x02, 0x82, 0x04, 0x81, 0x02, 0x81, 0x02, 0x81, 0x02, 0x81, 0x05, 0x81, 0x02, 0x81, 0x02, 0x81, 0x02, 0x81, 0x05, 0x81, 0x02, 0x81, 0x02, 0x81, 0x02, 0x81, 0x05, 0x82, 0x00, 0x81, 0x04, 0x81, 0x00, 0x82, 0x06, 0x81, 0x00, 0x81, 0x04, 0x81, 0x00, 0x81, 0x07, 0x81, 0x00, 0x81, 0x04, 0x81, 0x00, 0x81, 0x07, 0x81, 0x00, 0x81, 0x04, 0x81, 0x00, 0x81, 0x07, 0x83, 0x06, 0x83, 0x08, 0x82, 0x06, 0x82, 0x09, 0x82, 0x06, 0x82, 0x7F, 0x25}; PROGMEM const unsigned char chr_f32_58[] = { 0x0F, 0x81, 0x08, 0x81, 0x01, 0x82, 0x06, 0x82, 0x02, 0x81, 0x06, 0x81, 0x04, 0x81, 0x04, 0x81, 0x05, 0x82, 0x02, 0x82, 0x06, 0x81, 0x02, 0x81, 0x08, 0x81, 0x00, 0x81, 0x09, 0x84, 0x0A, 0x82, 0x0B, 0x82, 0x0A, 0x81, 0x00, 0x81, 0x08, 0x82, 0x00, 0x82, 0x07, 0x81, 0x02, 0x81, 0x06, 0x81, 0x04, 0x81, 0x04, 0x82, 0x04, 0x82, 0x03, 0x81, 0x06, 0x81, 0x02, 0x82, 0x06, 0x82, 0x00, 0x82, 0x08, 0x82, 0x68}; PROGMEM const unsigned char chr_f32_59[] = { 0x0F, 0x82, 0x09, 0x82, 0x00, 0x82, 0x07, 0x82, 0x02, 0x81, 0x07, 0x81, 0x03, 0x82, 0x05, 0x82, 0x04, 0x81, 0x05, 0x81, 0x06, 0x81, 0x03, 0x81, 0x07, 0x82, 0x01, 0x82, 0x08, 0x81, 0x01, 0x81, 0x0A, 0x83, 0x0B, 0x83, 0x0C, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x0D, 0x81, 0x76}; PROGMEM const unsigned char chr_f32_5A[] = { 0x11, 0x8C, 0x02, 0x8C, 0x0C, 0x82, 0x0B, 0x82, 0x0B, 0x82, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x82, 0x0B, 0x82, 0x0B, 0x82, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x82, 0x0B, 0x82, 0x0B, 0x82, 0x0B, 0x82, 0x0C, 0x8D, 0x01, 0x8D, 0x70}; PROGMEM const unsigned char chr_f32_5B[] = { 0x0B, 0x84, 0x03, 0x84, 0x03, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x84, 0x03, 0x84, 0x12}; PROGMEM const unsigned char chr_f32_5C[] = { 0x01, 0x80, 0x0B, 0x80, 0x0B, 0x81, 0x0B, 0x80, 0x0B, 0x80, 0x0B, 0x81, 0x0B, 0x80, 0x0B, 0x80, 0x0B, 0x81, 0x0B, 0x80, 0x0B, 0x80, 0x0B, 0x81, 0x0B, 0x80, 0x0B, 0x80, 0x0B, 0x81, 0x0B, 0x80, 0x0B, 0x80, 0x0B, 0x81, 0x0B, 0x80, 0x0B, 0x80, 0x0B, 0x81, 0x0B, 0x80, 0x0B, 0x80, 0x0B, 0x81, 0x0B, 0x80, 0xE}; PROGMEM const unsigned char chr_f32_5D[] = { 0x09, 0x84, 0x03, 0x84, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x06, 0x81, 0x03, 0x84, 0x03, 0x84, 0x14}; PROGMEM const unsigned char chr_f32_5E[] = { 0x10, 0x82, 0x07, 0x81, 0x00, 0x81, 0x05, 0x81, 0x02, 0x81, 0x03, 0x81, 0x04, 0x81, 0x01, 0x81, 0x06, 0x81, 0x7F, 0x6F}; PROGMEM const unsigned char chr_f32_5F[] = {0x7F, 0x7F, 0x1D, 0x8C, 0x26}; PROGMEM const unsigned char chr_f32_60[] = { 0x0B, 0x83, 0x03, 0x85, 0x01, 0x82, 0x01, 0x82, 0x00, 0x81, 0x03, 0x81, 0x00, 0x81, 0x03, 0x81, 0x00, 0x82, 0x01, 0x82, 0x01, 0x85, 0x03, 0x83, 0x7F, 0x1A}; PROGMEM const unsigned char chr_f32_61[] = { 0x57, 0x85, 0x05, 0x88, 0x04, 0x81, 0x04, 0x82, 0x03, 0x81, 0x05, 0x81, 0x0B, 0x81, 0x05, 0x87, 0x03, 0x89, 0x02, 0x82, 0x05, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x82, 0x03, 0x83, 0x03, 0x86, 0x00, 0x83, 0x02, 0x84, 0x02, 0x82, 0x61}; PROGMEM const unsigned char chr_f32_62[] = { 0x10, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x01, 0x83, 0x06, 0x81, 0x00, 0x86, 0x04, 0x84, 0x01, 0x83, 0x03, 0x82, 0x05, 0x81, 0x03, 0x81, 0x06, 0x82, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x06, 0x82, 0x02, 0x82, 0x05, 0x81, 0x03, 0x84, 0x01, 0x83, 0x03, 0x81, 0x00, 0x86, 0x04, 0x81, 0x01, 0x83, 0x6D}; PROGMEM const unsigned char chr_f32_63[] = { 0x52, 0x83, 0x06, 0x87, 0x03, 0x83, 0x01, 0x82, 0x03, 0x81, 0x05, 0x81, 0x01, 0x82, 0x09, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x82, 0x05, 0x81, 0x02, 0x81, 0x05, 0x81, 0x02, 0x83, 0x01, 0x82, 0x04, 0x87, 0x06, 0x83, 0x5E}; PROGMEM const unsigned char chr_f32_64[] = { 0x19, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x06, 0x83, 0x01, 0x81, 0x04, 0x86, 0x00, 0x81, 0x03, 0x83, 0x01, 0x84, 0x03, 0x81, 0x05, 0x82, 0x02, 0x82, 0x06, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x82, 0x06, 0x81, 0x03, 0x81, 0x05, 0x82, 0x03, 0x83, 0x01, 0x84, 0x04, 0x86, 0x00, 0x81, 0x06, 0x83, 0x01, 0x81, 0x6A}; PROGMEM const unsigned char chr_f32_65[] = { 0x58, 0x83, 0x07, 0x87, 0x04, 0x83, 0x01, 0x83, 0x03, 0x81, 0x05, 0x81, 0x02, 0x82, 0x06, 0x81, 0x01, 0x8B, 0x01, 0x8B, 0x01, 0x81, 0x0B, 0x82, 0x0B, 0x81, 0x05, 0x82, 0x02, 0x83, 0x01, 0x83, 0x04, 0x87, 0x07, 0x83, 0x66}; PROGMEM const unsigned char chr_f32_66[] = { 0x0A, 0x83, 0x02, 0x84, 0x02, 0x81, 0x05, 0x81, 0x05, 0x81, 0x03, 0x86, 0x00, 0x86, 0x02, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x3B}; PROGMEM const unsigned char chr_f32_67[] = { 0x5E, 0x83, 0x01, 0x81, 0x04, 0x86, 0x00, 0x81, 0x03, 0x83, 0x01, 0x84, 0x03, 0x81, 0x05, 0x82, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x82, 0x06, 0x81, 0x03, 0x81, 0x05, 0x82, 0x03, 0x83, 0x01, 0x84, 0x04, 0x86, 0x00, 0x81, 0x06, 0x83, 0x01, 0x81, 0x0C, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x06, 0x82, 0x03, 0x82, 0x03, 0x82, 0x04, 0x89, 0x06, 0x85, 0x13}; PROGMEM const unsigned char chr_f32_68[] = { 0x10, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x01, 0x84, 0x05, 0x81, 0x00, 0x86, 0x04, 0x83, 0x03, 0x82, 0x03, 0x82, 0x05, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x6A}; PROGMEM const unsigned char chr_f32_69[] = { 0x07, 0x81, 0x03, 0x81, 0x03, 0x81, 0x0F, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x2B}; PROGMEM const unsigned char chr_f32_6A[] = { 0x07, 0x81, 0x03, 0x81, 0x03, 0x81, 0x0F, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x01, 0x83, 0x01, 0x82, 0x8}; PROGMEM const unsigned char chr_f32_6B[] = { 0x19, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x04, 0x82, 0x01, 0x81, 0x03, 0x82, 0x02, 0x81, 0x02, 0x82, 0x03, 0x81, 0x01, 0x82, 0x04, 0x81, 0x00, 0x82, 0x05, 0x85, 0x05, 0x86, 0x04, 0x82, 0x01, 0x81, 0x04, 0x81, 0x02, 0x82, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x82, 0x02, 0x81, 0x04, 0x81, 0x02, 0x81, 0x04, 0x82, 0x53}; PROGMEM const unsigned char chr_f32_6C[] = { 0x07, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x03, 0x81, 0x2B}; PROGMEM const unsigned char chr_f32_6D[] = { 0x7F, 0x05, 0x81, 0x01, 0x83, 0x03, 0x83, 0x05, 0x81, 0x00, 0x85, 0x00, 0x86, 0x04, 0x83, 0x02, 0x84, 0x02, 0x82, 0x03, 0x82, 0x04, 0x82, 0x04, 0x81, 0x03, 0x81, 0x05, 0x81, 0x05, 0x81, 0x03, 0x81, 0x05, 0x81, 0x05, 0x81, 0x03, 0x81, 0x05, 0x81, 0x05, 0x81, 0x03, 0x81, 0x05, 0x81, 0x05, 0x81, 0x03, 0x81, 0x05, 0x81, 0x05, 0x81, 0x03, 0x81, 0x05, 0x81, 0x05, 0x81, 0x03, 0x81, 0x05, 0x81, 0x05, 0x81, 0x03, 0x81, 0x05, 0x81, 0x05, 0x81, 0x03, 0x81, 0x05, 0x81, 0x05, 0x81, 0x7F, 0x1B}; PROGMEM const unsigned char chr_f32_6E[] = { 0x5B, 0x81, 0x01, 0x84, 0x05, 0x81, 0x00, 0x86, 0x04, 0x83, 0x03, 0x82, 0x03, 0x82, 0x05, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x03, 0x81, 0x06, 0x81, 0x6A}; PROGMEM const unsigned char chr_f32_6F[] = { 0x5E, 0x84, 0x07, 0x88, 0x04, 0x83, 0x02, 0x83, 0x03, 0x81, 0x06, 0x81, 0x02, 0x82, 0x06, 0x82, 0x01, 0x81, 0x08, 0x81, 0x01, 0x81, 0x08, 0x81, 0x01, 0x81, 0x08, 0x81, 0x01, 0x82, 0x06, 0x82, 0x02, 0x81, 0x06, 0x81, 0x03, 0x83, 0x02, 0x83, 0x04, 0x88, 0x07, 0x84, 0x6D}; PROGMEM const unsigned char chr_f32_70[] = { 0x5B, 0x81, 0x01, 0x83, 0x06, 0x81, 0x00, 0x86, 0x04, 0x84, 0x01, 0x83, 0x03, 0x82, 0x05, 0x81, 0x03, 0x81, 0x06, 0x82, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x06, 0x82, 0x02, 0x82, 0x05, 0x81, 0x03, 0x84, 0x01, 0x83, 0x03, 0x81, 0x00, 0x86, 0x04, 0x81, 0x01, 0x83, 0x06, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x28}; PROGMEM const unsigned char chr_f32_71[] = { 0x5E, 0x83, 0x01, 0x81, 0x04, 0x86, 0x00, 0x81, 0x03, 0x83, 0x01, 0x84, 0x03, 0x81, 0x05, 0x82, 0x02, 0x82, 0x06, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x81, 0x07, 0x81, 0x02, 0x82, 0x06, 0x81, 0x03, 0x81, 0x05, 0x82, 0x03, 0x83, 0x01, 0x84, 0x04, 0x86, 0x00, 0x81, 0x06, 0x83, 0x01, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x0C, 0x81, 0x1F}; PROGMEM const unsigned char chr_f32_72[] = { 0x31, 0x81, 0x00, 0x82, 0x01, 0x85, 0x01, 0x82, 0x04, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x05, 0x81, 0x3B}; PROGMEM const unsigned char chr_f32_73[] = { 0x4A, 0x84, 0x05, 0x87, 0x02, 0x82, 0x03, 0x81, 0x02, 0x81, 0x05, 0x81, 0x01, 0x81, 0x0A, 0x84, 0x07, 0x86, 0x07, 0x84, 0x09, 0x81, 0x01, 0x81, 0x05, 0x81, 0x01, 0x82, 0x03, 0x82, 0x02, 0x87, 0x04, 0x85, 0x56}; PROGMEM const unsigned char chr_f32_74[] = { 0x0F, 0x81, 0x04, 0x81, 0x04, 0x81, 0x04, 0x81, 0x02, 0x85, 0x00, 0x85, 0x02, 0x81, 0x04, 0x81, 0x04, 0x81, 0x04, 0x81, 0x04, 0x81, 0x04, 0x81, 0x04, 0x81, 0x04, 0x81, 0x04, 0x81, 0x04, 0x83, 0x03, 0x82, 0x31}; PROGMEM const unsigned char chr_f32_75[] = { 0x55, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x81, 0x06, 0x81, 0x02, 0x81, 0x05, 0x82, 0x02, 0x82, 0x03, 0x83, 0x03, 0x86, 0x00, 0x81, 0x04, 0x84, 0x01, 0x81, 0x62}; PROGMEM const unsigned char chr_f32_76[] = { 0x47, 0x81, 0x06, 0x81, 0x00, 0x81, 0x06, 0x81, 0x01, 0x81, 0x04, 0x81, 0x02, 0x81, 0x04, 0x81, 0x02, 0x81, 0x04, 0x81, 0x03, 0x81, 0x02, 0x81, 0x04, 0x81, 0x02, 0x81, 0x04, 0x81, 0x02, 0x81, 0x05, 0x81, 0x00, 0x81, 0x06, 0x81, 0x00, 0x81, 0x06, 0x84, 0x07, 0x82, 0x08, 0x82, 0x58}; PROGMEM const unsigned char chr_f32_77[] = { 0x6B, 0x81, 0x04, 0x82, 0x04, 0x81, 0x00, 0x81, 0x04, 0x82, 0x04, 0x81, 0x00, 0x81, 0x04, 0x80, 0x00, 0x80, 0x04, 0x81, 0x01, 0x81, 0x02, 0x81, 0x00, 0x81, 0x02, 0x81, 0x02, 0x81, 0x02, 0x81, 0x00, 0x81, 0x02, 0x81, 0x02, 0x81, 0x02, 0x81, 0x00, 0x81, 0x02, 0x81, 0x02, 0x81, 0x02, 0x80, 0x02, 0x80, 0x02, 0x81, 0x03, 0x81, 0x00, 0x81, 0x02, 0x81, 0x00, 0x81, 0x04, 0x81, 0x00, 0x81, 0x02, 0x81, 0x00, 0x81, 0x04, 0x81, 0x00, 0x81, 0x02, 0x81, 0x00, 0x81, 0x05, 0x82, 0x04, 0x82, 0x06, 0x82, 0x04, 0x82, 0x06, 0x82, 0x04, 0x82, 0x7F, 0x1}; PROGMEM const unsigned char chr_f32_78[] = { 0x4E, 0x81, 0x06, 0x81, 0x01, 0x82, 0x04, 0x82, 0x02, 0x81, 0x04, 0x81, 0x04, 0x81, 0x02, 0x81, 0x05, 0x82, 0x00, 0x82, 0x06, 0x84, 0x08, 0x82, 0x08, 0x84, 0x06, 0x82, 0x00, 0x82, 0x05, 0x81, 0x02, 0x81, 0x04, 0x81, 0x04, 0x81, 0x02, 0x82, 0x04, 0x82, 0x01, 0x81, 0x06, 0x81, 0x5B}; PROGMEM const unsigned char chr_f32_79[] = { 0x4D, 0x82, 0x06, 0x82, 0x00, 0x81, 0x06, 0x81, 0x01, 0x81, 0x06, 0x81, 0x02, 0x81, 0x04, 0x81, 0x03, 0x81, 0x04, 0x81, 0x03, 0x81, 0x04, 0x81, 0x04, 0x81, 0x02, 0x81, 0x05, 0x81, 0x02, 0x81, 0x05, 0x81, 0x02, 0x81, 0x06, 0x81, 0x00, 0x81, 0x07, 0x81, 0x00, 0x81, 0x07, 0x81, 0x00, 0x81, 0x08, 0x82, 0x09, 0x82, 0x09, 0x82, 0x09, 0x81, 0x09, 0x82, 0x06, 0x84, 0x07, 0x83, 0x14}; PROGMEM const unsigned char chr_f32_7A[] = { 0x48, 0x89, 0x01, 0x89, 0x08, 0x82, 0x07, 0x82, 0x07, 0x82, 0x07, 0x82, 0x08, 0x81, 0x08, 0x82, 0x07, 0x82, 0x07, 0x82, 0x07, 0x82, 0x08, 0x89, 0x01, 0x89, 0x54}; PROGMEM const unsigned char chr_f32_7B[] = { 0x06, 0x83, 0x07, 0x82, 0x09, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x09, 0x81, 0x08, 0x82, 0x0B, 0x81, 0x0B, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x82, 0x0A, 0x83, 0xE}; PROGMEM const unsigned char chr_f32_7C[] = { 0x04, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x12}; PROGMEM const unsigned char chr_f32_7D[] = { 0x01, 0x83, 0x0A, 0x82, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0B, 0x81, 0x0B, 0x82, 0x08, 0x81, 0x09, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x0A, 0x81, 0x09, 0x82, 0x07, 0x83, 0x13}; PROGMEM const unsigned char chr_f32_7E[] = { 0x11, 0x83, 0x09, 0x81, 0x01, 0x81, 0x07, 0x81, 0x03, 0x82, 0x03, 0x80, 0x00, 0x80, 0x06, 0x81, 0x01, 0x81, 0x00, 0x80, 0x07, 0x83, 0x7F, 0x7F, 0x2C}; PROGMEM const unsigned char chr_f32_7F[] = {0x19}; PROGMEM const unsigned char* const chrtbl_f32[96] = // character pointer table {chr_f32_20, chr_f32_21, chr_f32_22, chr_f32_23, chr_f32_24, chr_f32_25, chr_f32_26, chr_f32_27, chr_f32_28, chr_f32_29, chr_f32_2A, chr_f32_2B, chr_f32_2C, chr_f32_2D, chr_f32_2E, chr_f32_2F, chr_f32_30, chr_f32_31, chr_f32_32, chr_f32_33, chr_f32_34, chr_f32_35, chr_f32_36, chr_f32_37, chr_f32_38, chr_f32_39, chr_f32_3A, chr_f32_3B, chr_f32_3C, chr_f32_3D, chr_f32_3E, chr_f32_3F, chr_f32_40, chr_f32_41, chr_f32_42, chr_f32_43, chr_f32_44, chr_f32_45, chr_f32_46, chr_f32_47, chr_f32_48, chr_f32_49, chr_f32_4A, chr_f32_4B, chr_f32_4C, chr_f32_4D, chr_f32_4E, chr_f32_4F, chr_f32_50, chr_f32_51, chr_f32_52, chr_f32_53, chr_f32_54, chr_f32_55, chr_f32_56, chr_f32_57, chr_f32_58, chr_f32_59, chr_f32_5A, chr_f32_5B, chr_f32_5C, chr_f32_5D, chr_f32_5E, chr_f32_5F, chr_f32_60, chr_f32_61, chr_f32_62, chr_f32_63, chr_f32_64, chr_f32_65, chr_f32_66, chr_f32_67, chr_f32_68, chr_f32_69, chr_f32_6A, chr_f32_6B, chr_f32_6C, chr_f32_6D, chr_f32_6E, chr_f32_6F, chr_f32_70, chr_f32_71, chr_f32_72, chr_f32_73, chr_f32_74, chr_f32_75, chr_f32_76, chr_f32_77, chr_f32_78, chr_f32_79, chr_f32_7A, chr_f32_7B, chr_f32_7C, chr_f32_7D, chr_f32_7E, chr_f32_7F}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Font32rle.h ================================================ #include #define nr_chrs_f32 96 #define chr_hgt_f32 26 #define baseline_f32 19 #define data_size_f32 8 #define firstchr_f32 32 extern const unsigned char widtbl_f32[96]; extern const unsigned char* const chrtbl_f32[96]; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Font64rle.c ================================================ // Font 6 is intended to display numbers and time // // This font has been 8 bit Run Length Encoded to save FLASH space // // This font only contains characters [space] 0 1 2 3 4 5 6 7 8 9 : - . a p m // The Pipe character | is a narrow space to aid formatting // All other characters print as a space #include PROGMEM const unsigned char widtbl_f64[96] = // character width table { 12, 12, 12, 12, 12, 12, 12, 12, // char 32 - 39 12, 12, 12, 12, 12, 17, 15, 12, // char 40 - 47 27, 27, 27, 27, 27, 27, 27, 27, // char 48 - 55 27, 27, 15, 12, 12, 12, 12, 12, // char 56 - 63 12, 12, 12, 12, 12, 12, 12, 12, // char 64 - 71 12, 12, 12, 12, 12, 12, 12, 12, // char 72 - 79 12, 12, 12, 12, 12, 12, 12, 12, // char 80 - 87 12, 12, 12, 12, 12, 12, 12, 12, // char 88 - 95 12, 27, 12, 12, 12, 12, 12, 12, // char 96 - 103 12, 12, 12, 12, 12, 42, 12, 12, // char 104 - 111 29, 12, 12, 12, 12, 12, 12, 12, // char 112 - 119 12, 12, 12, 12, 7, 12, 12, 12 // char 120 - 127 }; PROGMEM const unsigned char chr_f64_20[] = {0x7F, 0x7F, 0x7F, 0x7F, 0x3F}; PROGMEM const unsigned char chr_f64_2D[] = {0x7F, 0x7F, 0x45, 0x8A, 0x05, 0x8A, 0x05, 0x8A, 0x05, 0x8A, 0x7F, 0x7F, 0x7F, 0x2B}; PROGMEM const unsigned char chr_f64_2E[] = {0x7F, 0x7F, 0x7F, 0x55, 0x84, 0x09, 0x84, 0x09, 0x84, 0x09, 0x84, 0x09, 0x84, 0x7F, 0x38}; PROGMEM const unsigned char chr_f64_30[] = { 0x23, 0x87, 0x0F, 0x8D, 0x0B, 0x8F, 0x09, 0x91, 0x07, 0x86, 0x05, 0x86, 0x06, 0x84, 0x09, 0x84, 0x06, 0x83, 0x0B, 0x83, 0x05, 0x84, 0x0B, 0x84, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x03, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x03, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x84, 0x0B, 0x84, 0x05, 0x83, 0x0B, 0x83, 0x06, 0x84, 0x09, 0x84, 0x06, 0x86, 0x05, 0x86, 0x07, 0x91, 0x09, 0x8F, 0x0B, 0x8D, 0x0F, 0x87, 0x7F, 0x7F, 0x32}; PROGMEM const unsigned char chr_f64_31[] = { 0x29, 0x82, 0x17, 0x82, 0x16, 0x83, 0x16, 0x83, 0x15, 0x84, 0x14, 0x85, 0x12, 0x87, 0x0D, 0x8C, 0x0D, 0x8C, 0x0D, 0x87, 0x00, 0x83, 0x0D, 0x84, 0x03, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x7F, 0x7F, 0x4C}; PROGMEM const unsigned char chr_f64_32[] = { 0x24, 0x87, 0x10, 0x8C, 0x0B, 0x8F, 0x09, 0x91, 0x08, 0x85, 0x05, 0x86, 0x06, 0x84, 0x09, 0x84, 0x06, 0x84, 0x0A, 0x83, 0x06, 0x83, 0x0B, 0x84, 0x04, 0x84, 0x0C, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x16, 0x83, 0x15, 0x84, 0x15, 0x84, 0x14, 0x84, 0x14, 0x85, 0x13, 0x85, 0x12, 0x86, 0x11, 0x87, 0x10, 0x88, 0x10, 0x88, 0x0F, 0x88, 0x10, 0x87, 0x11, 0x86, 0x12, 0x85, 0x13, 0x85, 0x14, 0x84, 0x14, 0x84, 0x15, 0x83, 0x16, 0x83, 0x15, 0x96, 0x03, 0x96, 0x03, 0x96, 0x03, 0x96, 0x7F, 0x7F, 0x45}; PROGMEM const unsigned char chr_f64_33[] = { 0x23, 0x87, 0x0F, 0x8D, 0x0B, 0x90, 0x08, 0x91, 0x07, 0x86, 0x05, 0x86, 0x06, 0x84, 0x09, 0x84, 0x05, 0x84, 0x0B, 0x84, 0x04, 0x84, 0x0B, 0x84, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x15, 0x84, 0x15, 0x84, 0x14, 0x84, 0x14, 0x85, 0x0D, 0x8B, 0x0E, 0x89, 0x10, 0x8B, 0x0E, 0x8C, 0x14, 0x86, 0x15, 0x84, 0x16, 0x84, 0x15, 0x84, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x84, 0x0D, 0x84, 0x02, 0x84, 0x0C, 0x85, 0x03, 0x84, 0x0B, 0x84, 0x04, 0x85, 0x09, 0x85, 0x05, 0x86, 0x05, 0x86, 0x07, 0x91, 0x09, 0x8F, 0x0B, 0x8D, 0x0F, 0x87, 0x7F, 0x7F, 0x4D}; PROGMEM const unsigned char chr_f64_34[] = { 0x45, 0x83, 0x15, 0x84, 0x14, 0x85, 0x13, 0x86, 0x13, 0x86, 0x12, 0x87, 0x11, 0x83, 0x00, 0x83, 0x11, 0x83, 0x00, 0x83, 0x10, 0x83, 0x01, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0E, 0x84, 0x02, 0x83, 0x0E, 0x83, 0x03, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0C, 0x83, 0x05, 0x83, 0x0B, 0x84, 0x05, 0x83, 0x0B, 0x83, 0x06, 0x83, 0x0A, 0x83, 0x07, 0x83, 0x09, 0x84, 0x07, 0x83, 0x09, 0x83, 0x08, 0x83, 0x08, 0x83, 0x09, 0x83, 0x07, 0x83, 0x0A, 0x83, 0x07, 0x97, 0x02, 0x97, 0x02, 0x97, 0x02, 0x97, 0x11, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x7F, 0x7F, 0x4A}; PROGMEM const unsigned char chr_f64_35[] = { 0x3A, 0x91, 0x08, 0x91, 0x08, 0x91, 0x08, 0x91, 0x08, 0x82, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x82, 0x17, 0x82, 0x17, 0x82, 0x16, 0x83, 0x02, 0x87, 0x0B, 0x83, 0x00, 0x8B, 0x09, 0x91, 0x08, 0x92, 0x07, 0x86, 0x05, 0x86, 0x06, 0x84, 0x09, 0x85, 0x05, 0x83, 0x0B, 0x84, 0x16, 0x83, 0x16, 0x84, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x03, 0x83, 0x0E, 0x83, 0x03, 0x83, 0x0D, 0x84, 0x03, 0x83, 0x0D, 0x83, 0x04, 0x84, 0x0B, 0x84, 0x05, 0x84, 0x09, 0x85, 0x05, 0x86, 0x05, 0x86, 0x07, 0x91, 0x09, 0x8F, 0x0B, 0x8D, 0x0F, 0x87, 0x7F, 0x7F, 0x32}; PROGMEM const unsigned char chr_f64_36[] = { 0x24, 0x86, 0x11, 0x8B, 0x0C, 0x8E, 0x0A, 0x90, 0x08, 0x86, 0x05, 0x85, 0x06, 0x85, 0x09, 0x84, 0x05, 0x84, 0x0B, 0x83, 0x05, 0x83, 0x0C, 0x84, 0x03, 0x84, 0x0D, 0x83, 0x03, 0x83, 0x0E, 0x83, 0x03, 0x83, 0x16, 0x83, 0x15, 0x83, 0x16, 0x83, 0x04, 0x86, 0x0A, 0x83, 0x02, 0x8B, 0x07, 0x83, 0x00, 0x8E, 0x06, 0x94, 0x05, 0x88, 0x05, 0x86, 0x04, 0x86, 0x09, 0x84, 0x04, 0x85, 0x0B, 0x84, 0x03, 0x84, 0x0D, 0x83, 0x03, 0x84, 0x0D, 0x84, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x03, 0x83, 0x0D, 0x84, 0x03, 0x83, 0x0D, 0x83, 0x04, 0x84, 0x0B, 0x84, 0x05, 0x84, 0x09, 0x85, 0x05, 0x86, 0x05, 0x86, 0x07, 0x91, 0x09, 0x8F, 0x0C, 0x8C, 0x0F, 0x88, 0x7F, 0x7F, 0x31}; PROGMEM const unsigned char chr_f64_37[] = { 0x37, 0x96, 0x03, 0x96, 0x03, 0x96, 0x03, 0x96, 0x16, 0x83, 0x15, 0x83, 0x15, 0x83, 0x15, 0x83, 0x15, 0x84, 0x14, 0x84, 0x14, 0x84, 0x15, 0x83, 0x15, 0x84, 0x14, 0x84, 0x15, 0x84, 0x14, 0x84, 0x15, 0x83, 0x15, 0x84, 0x15, 0x83, 0x15, 0x84, 0x15, 0x84, 0x15, 0x83, 0x15, 0x84, 0x15, 0x83, 0x16, 0x83, 0x15, 0x84, 0x15, 0x83, 0x16, 0x83, 0x16, 0x83, 0x16, 0x83, 0x15, 0x84, 0x15, 0x83, 0x16, 0x83, 0x16, 0x83, 0x7F, 0x7F, 0x53}; PROGMEM const unsigned char chr_f64_38[] = { 0x24, 0x85, 0x11, 0x8B, 0x0C, 0x8F, 0x09, 0x91, 0x07, 0x86, 0x05, 0x86, 0x06, 0x84, 0x09, 0x84, 0x05, 0x84, 0x0B, 0x84, 0x04, 0x84, 0x0B, 0x84, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x84, 0x0B, 0x84, 0x05, 0x83, 0x0B, 0x83, 0x06, 0x84, 0x09, 0x84, 0x07, 0x85, 0x05, 0x85, 0x09, 0x8F, 0x0B, 0x8D, 0x0B, 0x8F, 0x09, 0x91, 0x07, 0x85, 0x07, 0x85, 0x05, 0x84, 0x0B, 0x84, 0x04, 0x83, 0x0D, 0x83, 0x03, 0x84, 0x0D, 0x84, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x84, 0x0D, 0x84, 0x02, 0x84, 0x0D, 0x84, 0x03, 0x84, 0x0B, 0x84, 0x04, 0x86, 0x07, 0x86, 0x05, 0x93, 0x07, 0x91, 0x09, 0x8F, 0x0D, 0x89, 0x7F, 0x7F, 0x31}; PROGMEM const unsigned char chr_f64_39[] = { 0x22, 0x88, 0x0F, 0x8C, 0x0C, 0x8F, 0x09, 0x91, 0x07, 0x86, 0x05, 0x86, 0x05, 0x85, 0x09, 0x84, 0x05, 0x84, 0x0B, 0x84, 0x04, 0x83, 0x0D, 0x83, 0x03, 0x84, 0x0D, 0x83, 0x03, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x83, 0x0F, 0x83, 0x02, 0x84, 0x0D, 0x84, 0x03, 0x83, 0x0D, 0x84, 0x03, 0x84, 0x0B, 0x85, 0x04, 0x84, 0x09, 0x86, 0x04, 0x86, 0x05, 0x88, 0x05, 0x94, 0x06, 0x8E, 0x00, 0x83, 0x07, 0x8B, 0x02, 0x83, 0x0A, 0x86, 0x04, 0x83, 0x16, 0x83, 0x15, 0x83, 0x16, 0x83, 0x03, 0x83, 0x0E, 0x83, 0x03, 0x83, 0x0D, 0x84, 0x03, 0x84, 0x0C, 0x83, 0x05, 0x83, 0x0B, 0x84, 0x05, 0x84, 0x09, 0x85, 0x06, 0x85, 0x05, 0x86, 0x08, 0x90, 0x0A, 0x8E, 0x0C, 0x8B, 0x11, 0x86, 0x7F, 0x7F, 0x33}; PROGMEM const unsigned char chr_f64_3A[] = { 0x7F, 0x1A, 0x84, 0x09, 0x84, 0x09, 0x84, 0x09, 0x84, 0x09, 0x84, 0x7F, 0x3D, 0x84, 0x09, 0x84, 0x09, 0x84, 0x09, 0x84, 0x09, 0x84, 0x7F, 0x74}; PROGMEM const unsigned char chr_f64_61[] = { 0x7F, 0x7B, 0x88, 0x0F, 0x8D, 0x0A, 0x90, 0x09, 0x91, 0x07, 0x85, 0x06, 0x85, 0x06, 0x84, 0x0A, 0x84, 0x05, 0x83, 0x0C, 0x83, 0x05, 0x83, 0x0C, 0x83, 0x05, 0x83, 0x0C, 0x83, 0x16, 0x83, 0x15, 0x84, 0x0E, 0x8B, 0x09, 0x90, 0x07, 0x92, 0x06, 0x8D, 0x01, 0x83, 0x05, 0x88, 0x07, 0x83, 0x05, 0x84, 0x0B, 0x83, 0x04, 0x84, 0x0C, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0D, 0x83, 0x04, 0x83, 0x0C, 0x84, 0x04, 0x83, 0x0B, 0x85, 0x04, 0x84, 0x09, 0x86, 0x05, 0x84, 0x06, 0x8A, 0x03, 0x8F, 0x01, 0x84, 0x04, 0x8D, 0x02, 0x84, 0x05, 0x8A, 0x05, 0x83, 0x07, 0x86, 0x7F, 0x7F, 0x35}; PROGMEM const unsigned char chr_f64_6D[] = { 0x7F, 0x7F, 0x7F, 0x05, 0x86, 0x07, 0x86, 0x0A, 0x83, 0x02, 0x89, 0x04, 0x8A, 0x08, 0x83, 0x00, 0x8C, 0x02, 0x8C, 0x07, 0x83, 0x00, 0x8D, 0x00, 0x8E, 0x06, 0x87, 0x05, 0x89, 0x05, 0x84, 0x06, 0x85, 0x08, 0x86, 0x08, 0x84, 0x05, 0x84, 0x0A, 0x84, 0x0A, 0x83, 0x05, 0x84, 0x0A, 0x84, 0x0A, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x05, 0x83, 0x0B, 0x83, 0x0B, 0x83, 0x7F, 0x7F, 0x7F, 0x7A}; PROGMEM const unsigned char chr_f64_70[] = { 0x7F, 0x7F, 0x10, 0x86, 0x0C, 0x83, 0x02, 0x8B, 0x09, 0x83, 0x01, 0x8D, 0x08, 0x83, 0x00, 0x8F, 0x07, 0x88, 0x05, 0x86, 0x06, 0x86, 0x09, 0x84, 0x06, 0x85, 0x0B, 0x84, 0x05, 0x84, 0x0D, 0x83, 0x05, 0x84, 0x0D, 0x83, 0x05, 0x84, 0x0D, 0x84, 0x04, 0x83, 0x0F, 0x83, 0x04, 0x83, 0x0F, 0x83, 0x04, 0x83, 0x0F, 0x83, 0x04, 0x83, 0x0F, 0x83, 0x04, 0x83, 0x0F, 0x83, 0x04, 0x83, 0x0F, 0x83, 0x04, 0x83, 0x0F, 0x83, 0x04, 0x83, 0x0F, 0x83, 0x04, 0x83, 0x0E, 0x84, 0x04, 0x84, 0x0D, 0x83, 0x05, 0x84, 0x0C, 0x84, 0x05, 0x85, 0x0B, 0x84, 0x05, 0x86, 0x09, 0x84, 0x06, 0x88, 0x05, 0x86, 0x06, 0x83, 0x00, 0x8F, 0x07, 0x83, 0x01, 0x8D, 0x08, 0x83, 0x02, 0x8B, 0x09, 0x83, 0x04, 0x86, 0x0C, 0x83, 0x18, 0x83, 0x18, 0x83, 0x18, 0x83, 0x18, 0x83, 0x18, 0x83, 0x18, 0x83, 0x18, 0x83, 0x18, 0x83, 0x18, 0x83, 0x32}; PROGMEM const unsigned char* const chrtbl_f64[96] = // character pointer table {chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_2D, chr_f64_2E, chr_f64_20, chr_f64_30, chr_f64_31, chr_f64_32, chr_f64_33, chr_f64_34, chr_f64_35, chr_f64_36, chr_f64_37, chr_f64_38, chr_f64_39, chr_f64_3A, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_61, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_6D, chr_f64_20, chr_f64_20, chr_f64_70, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Font64rle.h ================================================ #include #define nr_chrs_f64 96 #define chr_hgt_f64 48 #define baseline_f64 36 #define data_size_f64 8 #define firstchr_f64 32 extern const unsigned char widtbl_f64[96]; extern const unsigned char* const chrtbl_f64[96]; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Font72rle.c ================================================ // Font 8 // // This font has been 8 bit Run Length Encoded to save FLASH space // // It is a Arial 75 pixel height font intended to display large numbers // This font only contains characters [space] 0 1 2 3 4 5 6 7 8 9 0 : - . // All other characters print as a space #include PROGMEM const unsigned char widtbl_f72[96] = // character width table { 29, 29, 29, 29, 29, 29, 29, 29, // char 32 - 39 29, 29, 29, 29, 29, 29, 29, 29, // char 40 - 47 55, 55, 55, 55, 55, 55, 55, 55, // char 48 - 55 55, 55, 29, 29, 29, 29, 29, 29, // char 56 - 63 29, 29, 29, 29, 29, 29, 29, 29, // char 64 - 71 29, 29, 29, 29, 29, 29, 29, 29, // char 72 - 79 29, 29, 29, 29, 29, 29, 29, 29, // char 80 - 87 29, 29, 29, 29, 29, 29, 29, 29, // char 88 - 95 29, 29, 29, 29, 29, 29, 29, 29, // char 96 - 103 29, 29, 29, 29, 29, 29, 29, 29, // char 104 - 111 29, 29, 29, 29, 29, 29, 29, 29, // char 112 - 119 29, 29, 29, 29, 29, 29, 29, 29 // char 120 - 127 }; // Row format, MSB left PROGMEM const unsigned char chr_f72_20[] = {0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7E}; PROGMEM const unsigned char chr_f72_2D[] = { 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x36, 0x91, 0x0A, 0x91, 0x0A, 0x91, 0x0A, 0x91, 0x0A, 0x91, 0x0A, 0x91, 0x0A, 0x91, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x07}; PROGMEM const unsigned char chr_f72_2E[] = { 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x48, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x44}; PROGMEM const unsigned char chr_f72_30[] = { 0x7F, 0x70, 0x8A, 0x28, 0x90, 0x23, 0x94, 0x1F, 0x98, 0x1C, 0x9A, 0x1A, 0x9C, 0x18, 0x9E, 0x16, 0xA0, 0x15, 0x8C, 0x06, 0x8C, 0x14, 0x8B, 0x0A, 0x8B, 0x12, 0x8A, 0x0E, 0x89, 0x12, 0x89, 0x10, 0x89, 0x11, 0x88, 0x12, 0x88, 0x10, 0x89, 0x12, 0x89, 0x0F, 0x88, 0x14, 0x88, 0x0E, 0x89, 0x14, 0x88, 0x0E, 0x88, 0x16, 0x88, 0x0D, 0x88, 0x16, 0x88, 0x0D, 0x88, 0x16, 0x88, 0x0C, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0A, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x0A, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0C, 0x88, 0x16, 0x88, 0x0D, 0x88, 0x16, 0x88, 0x0D, 0x88, 0x16, 0x88, 0x0D, 0x89, 0x14, 0x89, 0x0E, 0x88, 0x14, 0x88, 0x0F, 0x89, 0x12, 0x89, 0x10, 0x88, 0x12, 0x88, 0x11, 0x89, 0x10, 0x89, 0x11, 0x8A, 0x0E, 0x8A, 0x12, 0x8B, 0x0A, 0x8B, 0x14, 0x8C, 0x06, 0x8C, 0x15, 0xA0, 0x16, 0x9E, 0x18, 0x9C, 0x1A, 0x9A, 0x1C, 0x98, 0x1F, 0x94, 0x23, 0x90, 0x28, 0x8A, 0x4D}; PROGMEM const unsigned char chr_f72_31[] = { 0x7F, 0x78, 0x85, 0x2F, 0x86, 0x2F, 0x86, 0x2E, 0x87, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x89, 0x2B, 0x8A, 0x2A, 0x8B, 0x29, 0x8C, 0x27, 0x8E, 0x26, 0x8F, 0x25, 0x90, 0x24, 0x91, 0x22, 0x93, 0x20, 0x95, 0x1E, 0x8D, 0x00, 0x88, 0x1D, 0x8C, 0x02, 0x88, 0x1D, 0x8B, 0x03, 0x88, 0x1D, 0x8A, 0x04, 0x88, 0x1D, 0x88, 0x06, 0x88, 0x1D, 0x87, 0x07, 0x88, 0x1D, 0x85, 0x09, 0x88, 0x1D, 0x83, 0x0B, 0x88, 0x1D, 0x81, 0x0D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x7F, 0x1}; PROGMEM const unsigned char chr_f72_32[] = { 0x7F, 0x6F, 0x8A, 0x27, 0x92, 0x21, 0x96, 0x1D, 0x9A, 0x1A, 0x9C, 0x18, 0x9E, 0x16, 0xA0, 0x14, 0xA2, 0x12, 0x8E, 0x07, 0x8D, 0x11, 0x8B, 0x0C, 0x8C, 0x0F, 0x8A, 0x10, 0x8A, 0x0F, 0x89, 0x12, 0x8A, 0x0D, 0x89, 0x14, 0x89, 0x0D, 0x89, 0x14, 0x89, 0x0D, 0x88, 0x16, 0x89, 0x0C, 0x88, 0x16, 0x89, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0F, 0x84, 0x18, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x89, 0x2C, 0x88, 0x2C, 0x89, 0x2C, 0x89, 0x2B, 0x89, 0x2C, 0x89, 0x2B, 0x89, 0x2B, 0x8A, 0x2A, 0x8A, 0x2A, 0x8B, 0x29, 0x8B, 0x29, 0x8B, 0x29, 0x8B, 0x29, 0x8B, 0x29, 0x8C, 0x28, 0x8C, 0x28, 0x8C, 0x28, 0x8C, 0x28, 0x8C, 0x27, 0x8C, 0x28, 0x8C, 0x28, 0x8C, 0x28, 0x8C, 0x28, 0x8C, 0x27, 0x8D, 0x27, 0x8D, 0x27, 0x8C, 0x28, 0x8C, 0x28, 0x8C, 0x29, 0x8B, 0x29, 0x8B, 0x29, 0x8A, 0x2A, 0x8A, 0x2B, 0x89, 0x2B, 0x8A, 0x2B, 0x89, 0x2B, 0x89, 0x2C, 0xAA, 0x0A, 0xAB, 0x0A, 0xAB, 0x0A, 0xAB, 0x09, 0xAC, 0x09, 0xAC, 0x09, 0xAC, 0x09, 0xAC, 0x09, 0xAC, 0x74}; PROGMEM const unsigned char chr_f72_33[] = { 0x7F, 0x6F, 0x89, 0x29, 0x90, 0x23, 0x94, 0x1F, 0x97, 0x1D, 0x9A, 0x1A, 0x9C, 0x18, 0x9E, 0x16, 0xA0, 0x15, 0x8C, 0x06, 0x8C, 0x14, 0x8B, 0x0A, 0x8B, 0x12, 0x8A, 0x0E, 0x89, 0x12, 0x89, 0x10, 0x89, 0x11, 0x88, 0x12, 0x88, 0x10, 0x89, 0x12, 0x89, 0x0F, 0x88, 0x14, 0x88, 0x0F, 0x88, 0x14, 0x88, 0x0E, 0x89, 0x14, 0x88, 0x0E, 0x88, 0x15, 0x88, 0x12, 0x84, 0x15, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2C, 0x89, 0x2B, 0x89, 0x2B, 0x89, 0x2A, 0x8B, 0x28, 0x8C, 0x23, 0x91, 0x24, 0x8F, 0x26, 0x8D, 0x28, 0x8F, 0x25, 0x92, 0x23, 0x94, 0x21, 0x95, 0x20, 0x81, 0x07, 0x8C, 0x2B, 0x8B, 0x2C, 0x8A, 0x2C, 0x89, 0x2D, 0x89, 0x2D, 0x89, 0x2C, 0x89, 0x2D, 0x88, 0x2D, 0x89, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x0D, 0x84, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x89, 0x18, 0x89, 0x09, 0x89, 0x18, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x89, 0x16, 0x89, 0x0B, 0x89, 0x15, 0x89, 0x0D, 0x89, 0x14, 0x89, 0x0D, 0x8A, 0x12, 0x89, 0x0F, 0x8A, 0x10, 0x8A, 0x0F, 0x8B, 0x0D, 0x8B, 0x11, 0x8D, 0x07, 0x8D, 0x13, 0xA2, 0x14, 0xA0, 0x16, 0x9D, 0x19, 0x9B, 0x1B, 0x99, 0x1E, 0x95, 0x22, 0x91, 0x28, 0x89, 0x4E}; PROGMEM const unsigned char chr_f72_34[] = { 0x7F, 0x7F, 0x34, 0x86, 0x2E, 0x87, 0x2D, 0x88, 0x2C, 0x89, 0x2C, 0x89, 0x2B, 0x8A, 0x2A, 0x8B, 0x29, 0x8C, 0x28, 0x8D, 0x28, 0x8D, 0x27, 0x8E, 0x26, 0x8F, 0x25, 0x90, 0x25, 0x90, 0x24, 0x91, 0x23, 0x92, 0x22, 0x93, 0x22, 0x93, 0x21, 0x8A, 0x00, 0x88, 0x20, 0x8A, 0x01, 0x88, 0x1F, 0x8A, 0x02, 0x88, 0x1E, 0x8B, 0x02, 0x88, 0x1E, 0x8A, 0x03, 0x88, 0x1D, 0x8A, 0x04, 0x88, 0x1C, 0x8A, 0x05, 0x88, 0x1B, 0x8A, 0x06, 0x88, 0x1B, 0x8A, 0x06, 0x88, 0x1A, 0x8A, 0x07, 0x88, 0x19, 0x8A, 0x08, 0x88, 0x18, 0x8A, 0x09, 0x88, 0x18, 0x8A, 0x09, 0x88, 0x17, 0x8A, 0x0A, 0x88, 0x16, 0x8A, 0x0B, 0x88, 0x15, 0x8A, 0x0C, 0x88, 0x15, 0x8A, 0x0C, 0x88, 0x14, 0x8A, 0x0D, 0x88, 0x13, 0x8A, 0x0E, 0x88, 0x12, 0x8A, 0x0F, 0x88, 0x11, 0x8B, 0x0F, 0x88, 0x11, 0x8A, 0x10, 0x88, 0x10, 0x8A, 0x11, 0x88, 0x0F, 0x8A, 0x12, 0x88, 0x0E, 0x8A, 0x13, 0x88, 0x0E, 0xAF, 0x06, 0xAF, 0x06, 0xAF, 0x06, 0xAF, 0x06, 0xAF, 0x06, 0xAF, 0x06, 0xAF, 0x06, 0xAF, 0x06, 0xAF, 0x25, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x7B}; PROGMEM const unsigned char chr_f72_35[] = { 0x7F, 0x7F, 0x1E, 0xA0, 0x15, 0xA0, 0x14, 0xA1, 0x14, 0xA1, 0x14, 0xA1, 0x14, 0xA1, 0x14, 0xA1, 0x13, 0xA2, 0x13, 0xA2, 0x13, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x89, 0x2C, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x89, 0x2C, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x89, 0x06, 0x88, 0x1C, 0x89, 0x03, 0x8E, 0x19, 0x88, 0x02, 0x92, 0x17, 0x88, 0x00, 0x96, 0x15, 0xA1, 0x13, 0xA3, 0x12, 0xA4, 0x11, 0xA5, 0x10, 0x8F, 0x07, 0x8E, 0x0F, 0x8C, 0x0D, 0x8C, 0x0D, 0x8B, 0x11, 0x8A, 0x0D, 0x8A, 0x13, 0x8A, 0x0C, 0x89, 0x15, 0x89, 0x10, 0x84, 0x17, 0x89, 0x2C, 0x89, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x89, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x0D, 0x84, 0x1A, 0x88, 0x09, 0x88, 0x19, 0x88, 0x0A, 0x89, 0x18, 0x88, 0x0A, 0x89, 0x18, 0x88, 0x0B, 0x88, 0x17, 0x89, 0x0B, 0x89, 0x16, 0x88, 0x0C, 0x89, 0x15, 0x89, 0x0D, 0x89, 0x13, 0x89, 0x0E, 0x8A, 0x11, 0x8A, 0x0E, 0x8B, 0x0F, 0x8A, 0x10, 0x8B, 0x0D, 0x8A, 0x12, 0x8D, 0x07, 0x8D, 0x12, 0xA2, 0x14, 0xA0, 0x16, 0x9E, 0x19, 0x9B, 0x1B, 0x98, 0x1F, 0x95, 0x22, 0x90, 0x28, 0x8A, 0x4E}; PROGMEM const unsigned char chr_f72_36[] = { 0x7F, 0x72, 0x89, 0x28, 0x90, 0x23, 0x95, 0x1E, 0x98, 0x1C, 0x9A, 0x1A, 0x9C, 0x18, 0x9E, 0x16, 0xA0, 0x14, 0x8D, 0x06, 0x8D, 0x12, 0x8B, 0x0B, 0x8B, 0x12, 0x8A, 0x0E, 0x8A, 0x10, 0x89, 0x11, 0x89, 0x0F, 0x8A, 0x12, 0x89, 0x0E, 0x89, 0x13, 0x89, 0x0E, 0x88, 0x15, 0x88, 0x0D, 0x89, 0x15, 0x89, 0x0C, 0x88, 0x16, 0x89, 0x0B, 0x89, 0x17, 0x88, 0x0B, 0x88, 0x18, 0x84, 0x0F, 0x88, 0x2D, 0x87, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x0A, 0x88, 0x19, 0x87, 0x08, 0x8E, 0x16, 0x87, 0x06, 0x92, 0x13, 0x88, 0x04, 0x96, 0x11, 0x88, 0x03, 0x98, 0x10, 0x88, 0x02, 0x9A, 0x0F, 0x88, 0x01, 0x9C, 0x0E, 0x88, 0x00, 0x9E, 0x0D, 0x92, 0x07, 0x8E, 0x0C, 0x90, 0x0C, 0x8C, 0x0B, 0x8E, 0x10, 0x8A, 0x0B, 0x8D, 0x12, 0x8A, 0x0A, 0x8C, 0x14, 0x89, 0x0A, 0x8B, 0x16, 0x89, 0x09, 0x8A, 0x17, 0x89, 0x09, 0x89, 0x19, 0x88, 0x09, 0x89, 0x19, 0x88, 0x09, 0x89, 0x19, 0x89, 0x08, 0x88, 0x1B, 0x88, 0x08, 0x88, 0x1B, 0x88, 0x08, 0x88, 0x1B, 0x88, 0x08, 0x88, 0x1B, 0x88, 0x09, 0x87, 0x1B, 0x88, 0x09, 0x87, 0x1B, 0x88, 0x09, 0x87, 0x1B, 0x88, 0x09, 0x87, 0x1B, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x0A, 0x87, 0x19, 0x89, 0x0A, 0x87, 0x19, 0x88, 0x0B, 0x88, 0x18, 0x88, 0x0B, 0x88, 0x17, 0x89, 0x0C, 0x88, 0x16, 0x88, 0x0D, 0x88, 0x15, 0x89, 0x0E, 0x88, 0x14, 0x89, 0x0E, 0x89, 0x12, 0x89, 0x10, 0x89, 0x10, 0x8A, 0x10, 0x8B, 0x0C, 0x8B, 0x12, 0x8C, 0x07, 0x8D, 0x14, 0xA1, 0x15, 0x9F, 0x17, 0x9D, 0x19, 0x9B, 0x1C, 0x97, 0x1F, 0x95, 0x23, 0x8F, 0x29, 0x89, 0x4D}; PROGMEM const unsigned char chr_f72_37[] = { 0x7F, 0x7F, 0x17, 0xAB, 0x0A, 0xAB, 0x0A, 0xAB, 0x0A, 0xAB, 0x0A, 0xAB, 0x0A, 0xAB, 0x0A, 0xAB, 0x0A, 0xAB, 0x0A, 0xAA, 0x2E, 0x86, 0x2E, 0x86, 0x2E, 0x87, 0x2D, 0x87, 0x2D, 0x87, 0x2D, 0x87, 0x2E, 0x87, 0x2D, 0x87, 0x2D, 0x87, 0x2E, 0x87, 0x2D, 0x87, 0x2D, 0x88, 0x2D, 0x87, 0x2D, 0x87, 0x2D, 0x88, 0x2D, 0x87, 0x2D, 0x88, 0x2D, 0x87, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2C, 0x89, 0x2C, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x7F, 0xC}; PROGMEM const unsigned char chr_f72_38[] = { 0x7F, 0x70, 0x89, 0x28, 0x91, 0x22, 0x95, 0x1E, 0x99, 0x1B, 0x9B, 0x19, 0x9D, 0x17, 0x9F, 0x15, 0xA1, 0x13, 0x8D, 0x07, 0x8C, 0x13, 0x8B, 0x0B, 0x8B, 0x11, 0x8A, 0x0F, 0x8A, 0x10, 0x89, 0x11, 0x89, 0x10, 0x88, 0x13, 0x88, 0x0F, 0x89, 0x13, 0x89, 0x0E, 0x88, 0x15, 0x88, 0x0E, 0x88, 0x15, 0x88, 0x0E, 0x88, 0x15, 0x88, 0x0E, 0x88, 0x15, 0x88, 0x0E, 0x88, 0x15, 0x88, 0x0E, 0x88, 0x15, 0x88, 0x0E, 0x88, 0x15, 0x88, 0x0F, 0x88, 0x13, 0x88, 0x10, 0x88, 0x13, 0x88, 0x10, 0x89, 0x11, 0x89, 0x11, 0x89, 0x0F, 0x89, 0x13, 0x89, 0x0D, 0x89, 0x15, 0x8B, 0x07, 0x8C, 0x16, 0x9D, 0x19, 0x9B, 0x1C, 0x97, 0x20, 0x93, 0x20, 0x96, 0x1D, 0x9A, 0x1A, 0x9D, 0x17, 0x9F, 0x15, 0x8C, 0x07, 0x8C, 0x13, 0x8A, 0x0C, 0x8B, 0x11, 0x8A, 0x0F, 0x8A, 0x0F, 0x8A, 0x11, 0x89, 0x0F, 0x89, 0x13, 0x89, 0x0D, 0x89, 0x15, 0x88, 0x0D, 0x89, 0x15, 0x89, 0x0C, 0x88, 0x17, 0x88, 0x0C, 0x88, 0x17, 0x88, 0x0B, 0x88, 0x19, 0x88, 0x0A, 0x88, 0x19, 0x88, 0x0A, 0x88, 0x19, 0x88, 0x0A, 0x88, 0x19, 0x88, 0x0A, 0x88, 0x19, 0x88, 0x0A, 0x88, 0x19, 0x88, 0x0A, 0x88, 0x19, 0x88, 0x0A, 0x88, 0x19, 0x88, 0x0A, 0x88, 0x19, 0x88, 0x0A, 0x89, 0x17, 0x89, 0x0B, 0x88, 0x17, 0x88, 0x0C, 0x89, 0x15, 0x89, 0x0C, 0x89, 0x15, 0x89, 0x0D, 0x89, 0x13, 0x89, 0x0E, 0x8A, 0x11, 0x8A, 0x0F, 0x8A, 0x0F, 0x8A, 0x10, 0x8C, 0x0C, 0x8B, 0x11, 0x8D, 0x07, 0x8D, 0x13, 0xA1, 0x15, 0x9F, 0x17, 0x9D, 0x19, 0x9B, 0x1B, 0x99, 0x1E, 0x95, 0x22, 0x91, 0x28, 0x89, 0x4E}; PROGMEM const unsigned char chr_f72_39[] = { 0x7F, 0x70, 0x88, 0x29, 0x90, 0x23, 0x94, 0x20, 0x97, 0x1C, 0x9A, 0x1A, 0x9C, 0x18, 0x9E, 0x16, 0xA0, 0x14, 0x8E, 0x07, 0x8B, 0x13, 0x8C, 0x0B, 0x8A, 0x11, 0x8B, 0x0F, 0x88, 0x11, 0x8A, 0x11, 0x88, 0x0F, 0x8A, 0x13, 0x88, 0x0E, 0x89, 0x14, 0x88, 0x0D, 0x89, 0x16, 0x87, 0x0D, 0x89, 0x17, 0x87, 0x0C, 0x88, 0x18, 0x87, 0x0C, 0x88, 0x18, 0x87, 0x0B, 0x89, 0x19, 0x87, 0x0A, 0x88, 0x1A, 0x87, 0x0A, 0x88, 0x1A, 0x87, 0x0A, 0x88, 0x1A, 0x87, 0x0A, 0x88, 0x1A, 0x87, 0x0A, 0x88, 0x1A, 0x87, 0x0A, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x88, 0x1A, 0x88, 0x09, 0x89, 0x18, 0x89, 0x0A, 0x88, 0x18, 0x89, 0x0A, 0x88, 0x18, 0x89, 0x0A, 0x89, 0x16, 0x8A, 0x0A, 0x89, 0x16, 0x8A, 0x0B, 0x89, 0x14, 0x8B, 0x0B, 0x8A, 0x12, 0x8C, 0x0C, 0x8A, 0x10, 0x8D, 0x0C, 0x8C, 0x0C, 0x8F, 0x0D, 0x8E, 0x07, 0x91, 0x0E, 0x9D, 0x00, 0x88, 0x0F, 0x9B, 0x01, 0x88, 0x10, 0x99, 0x02, 0x88, 0x11, 0x97, 0x03, 0x88, 0x12, 0x95, 0x04, 0x88, 0x13, 0x92, 0x06, 0x87, 0x16, 0x8E, 0x08, 0x87, 0x19, 0x88, 0x0A, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x88, 0x2D, 0x87, 0x2D, 0x88, 0x10, 0x84, 0x17, 0x88, 0x0C, 0x88, 0x17, 0x88, 0x0C, 0x89, 0x15, 0x88, 0x0D, 0x89, 0x15, 0x88, 0x0E, 0x88, 0x14, 0x89, 0x0E, 0x89, 0x13, 0x88, 0x0F, 0x89, 0x12, 0x89, 0x10, 0x89, 0x10, 0x89, 0x11, 0x8A, 0x0E, 0x8A, 0x11, 0x8B, 0x0B, 0x8B, 0x13, 0x8C, 0x07, 0x8C, 0x15, 0x9F, 0x16, 0x9E, 0x18, 0x9C, 0x1A, 0x9A, 0x1D, 0x97, 0x1F, 0x94, 0x23, 0x90, 0x28, 0x89, 0x50}; PROGMEM const unsigned char chr_f72_3A[] = { 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x23, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x33, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x13, 0x88, 0x44}; PROGMEM const unsigned char* const chrtbl_f72[96] = // character pointer table {chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_2D, chr_f72_2E, chr_f72_20, chr_f72_30, chr_f72_31, chr_f72_32, chr_f72_33, chr_f72_34, chr_f72_35, chr_f72_36, chr_f72_37, chr_f72_38, chr_f72_39, chr_f72_3A, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20, chr_f72_20}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Font72rle.h ================================================ #include #define nr_chrs_f72 96 #define chr_hgt_f72 75 #define baseline_f72 73 #define data_size_f72 8 #define firstchr_f72 32 extern const unsigned char widtbl_f72[96]; extern const unsigned char* const chrtbl_f72[96]; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Font7srle.c ================================================ // Font 7 // // This font has been 8 bit Run Length Encoded to save FLASH space // // This is a 7 segment font intended to display numbers and time // This font only contains characters [space] 0 1 2 3 4 5 6 7 8 9 : . - // All other characters print as a space #include PROGMEM const unsigned char widtbl_f7s[96] = // character width table { 12, 12, 12, 12, 12, 12, 12, 12, // char 32 - 39 12, 12, 12, 12, 12, 17, 12, 12, // char 40 - 47 32, 32, 32, 32, 32, 32, 32, 32, // char 48 - 55 32, 32, 12, 12, 12, 12, 12, 12, // char 56 - 63 12, 12, 12, 12, 12, 12, 12, 12, // char 64 - 71 12, 12, 12, 12, 12, 12, 12, 12, // char 72 - 79 12, 12, 12, 12, 12, 12, 12, 12, // char 80 - 87 12, 12, 12, 12, 12, 12, 12, 12, // char 88 - 95 12, 12, 12, 12, 12, 12, 12, 12, // char 96 - 103 12, 12, 12, 12, 12, 12, 12, 12, // char 104 - 111 12, 12, 12, 12, 12, 12, 12, 12, // char 112 - 119 12, 12, 12, 12, 12, 12, 12, 12 // char 120 - 127 }; // Row format, MSB left PROGMEM const unsigned char chr_f7s_20[] = {0x7F, 0x7F, 0x7F, 0x7F, 0x3F}; PROGMEM const unsigned char chr_f7s_2D[] = {0x7F, 0x7F, 0x45, 0x8A, 0x05, 0x8A, 0x05, 0x8A, 0x05, 0x8A, 0x7F, 0x7F, 0x7F, 0x2B}; PROGMEM const unsigned char chr_f7s_2E[] = {0x7F, 0x7F, 0x7F, 0x7B, 0x82, 0x07, 0x84, 0x06, 0x84, 0x06, 0x84, 0x07, 0x82, 0x10}; PROGMEM const unsigned char chr_f7s_30[] = { 0x27, 0x8E, 0x0F, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x01, 0x80, 0x08, 0x81, 0x01, 0x8E, 0x01, 0x82, 0x06, 0x83, 0x10, 0x84, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x84, 0x10, 0x84, 0x04, 0x82, 0x14, 0x82, 0x04, 0x80, 0x18, 0x80, 0x24, 0x80, 0x1E, 0x82, 0x15, 0x81, 0x04, 0x84, 0x11, 0x83, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x05, 0x83, 0x10, 0x83, 0x07, 0x81, 0x01, 0x8E, 0x01, 0x81, 0x0B, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x0F, 0x8E, 0x28}; PROGMEM const unsigned char chr_f7s_31[] = { 0x7F, 0x19, 0x80, 0x1D, 0x82, 0x1B, 0x84, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1B, 0x83, 0x1D, 0x81, 0x1E, 0x80, 0x5D, 0x81, 0x1B, 0x83, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1A, 0x83, 0x1C, 0x81, 0x7F, 0x24}; PROGMEM const unsigned char chr_f7s_32[] = { 0x27, 0x8E, 0x0F, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x01, 0x80, 0x0C, 0x8E, 0x01, 0x82, 0x1B, 0x84, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1A, 0x84, 0x0A, 0x8E, 0x02, 0x82, 0x08, 0x92, 0x02, 0x80, 0x06, 0x96, 0x06, 0x80, 0x01, 0x94, 0x07, 0x82, 0x01, 0x90, 0x09, 0x84, 0x1A, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1A, 0x83, 0x1C, 0x81, 0x01, 0x8E, 0x0F, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x0F, 0x8E, 0x28}; PROGMEM const unsigned char chr_f7s_33[] = { 0x27, 0x8E, 0x0F, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x01, 0x80, 0x0C, 0x8E, 0x01, 0x82, 0x1B, 0x84, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1A, 0x84, 0x0A, 0x8E, 0x02, 0x82, 0x08, 0x92, 0x02, 0x80, 0x06, 0x96, 0x09, 0x94, 0x0C, 0x90, 0x02, 0x81, 0x1B, 0x83, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1A, 0x83, 0x0B, 0x8E, 0x01, 0x81, 0x0B, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x0F, 0x8E, 0x28}; PROGMEM const unsigned char chr_f7s_34[] = { 0x7F, 0x19, 0x80, 0x08, 0x81, 0x12, 0x82, 0x06, 0x83, 0x10, 0x84, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x84, 0x10, 0x84, 0x04, 0x82, 0x02, 0x8E, 0x02, 0x82, 0x04, 0x80, 0x02, 0x92, 0x02, 0x80, 0x06, 0x96, 0x09, 0x94, 0x0C, 0x90, 0x02, 0x81, 0x1B, 0x83, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1A, 0x83, 0x1C, 0x81, 0x7F, 0x24}; PROGMEM const unsigned char chr_f7s_35[] = { 0x27, 0x8E, 0x0F, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x0B, 0x81, 0x01, 0x8E, 0x0B, 0x83, 0x1A, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x84, 0x1A, 0x82, 0x02, 0x8E, 0x0A, 0x80, 0x02, 0x92, 0x0A, 0x96, 0x09, 0x94, 0x0C, 0x90, 0x02, 0x81, 0x1B, 0x83, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1A, 0x83, 0x0B, 0x8E, 0x01, 0x81, 0x0B, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x0F, 0x8E, 0x28}; PROGMEM const unsigned char chr_f7s_36[] = { 0x27, 0x8E, 0x0F, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x0B, 0x81, 0x01, 0x8E, 0x0B, 0x83, 0x1A, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x84, 0x1A, 0x82, 0x02, 0x8E, 0x0A, 0x80, 0x02, 0x92, 0x0A, 0x96, 0x06, 0x80, 0x01, 0x94, 0x07, 0x82, 0x01, 0x90, 0x02, 0x81, 0x04, 0x84, 0x11, 0x83, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x05, 0x83, 0x10, 0x83, 0x07, 0x81, 0x01, 0x8E, 0x01, 0x81, 0x0B, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x0F, 0x8E, 0x28}; PROGMEM const unsigned char chr_f7s_37[] = { 0x27, 0x8E, 0x0F, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x01, 0x80, 0x0C, 0x8E, 0x01, 0x82, 0x1B, 0x84, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1A, 0x84, 0x1C, 0x82, 0x1E, 0x80, 0x5D, 0x81, 0x1B, 0x83, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1A, 0x83, 0x1C, 0x81, 0x7F, 0x24}; PROGMEM const unsigned char chr_f7s_38[] = { 0x27, 0x8E, 0x0F, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x01, 0x80, 0x08, 0x81, 0x01, 0x8E, 0x01, 0x82, 0x06, 0x83, 0x10, 0x84, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x84, 0x10, 0x84, 0x04, 0x82, 0x02, 0x8E, 0x02, 0x82, 0x04, 0x80, 0x02, 0x92, 0x02, 0x80, 0x06, 0x96, 0x06, 0x80, 0x01, 0x94, 0x07, 0x82, 0x01, 0x90, 0x02, 0x81, 0x04, 0x84, 0x11, 0x83, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x05, 0x83, 0x10, 0x83, 0x07, 0x81, 0x01, 0x8E, 0x01, 0x81, 0x0B, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x0F, 0x8E, 0x28}; PROGMEM const unsigned char chr_f7s_39[] = { 0x27, 0x8E, 0x0F, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x01, 0x80, 0x08, 0x81, 0x01, 0x8E, 0x01, 0x82, 0x06, 0x83, 0x10, 0x84, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x85, 0x0E, 0x85, 0x04, 0x84, 0x10, 0x84, 0x04, 0x82, 0x02, 0x8E, 0x02, 0x82, 0x04, 0x80, 0x02, 0x92, 0x02, 0x80, 0x06, 0x96, 0x09, 0x94, 0x0C, 0x90, 0x02, 0x81, 0x1B, 0x83, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x19, 0x85, 0x1A, 0x83, 0x0B, 0x8E, 0x01, 0x81, 0x0B, 0x90, 0x0D, 0x92, 0x0D, 0x90, 0x0F, 0x8E, 0x28}; PROGMEM const unsigned char chr_f7s_3A[] = { 0x7F, 0x1F, 0x82, 0x07, 0x84, 0x06, 0x84, 0x06, 0x84, 0x07, 0x82, 0x7F, 0x18, 0x82, 0x07, 0x84, 0x06, 0x84, 0x06, 0x84, 0x07, 0x82, 0x7F, 0x20}; PROGMEM const unsigned char* const chrtbl_f7s[96] = // character pointer table {chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_2D, chr_f7s_2E, chr_f7s_20, chr_f7s_30, chr_f7s_31, chr_f7s_32, chr_f7s_33, chr_f7s_34, chr_f7s_35, chr_f7s_36, chr_f7s_37, chr_f7s_38, chr_f7s_39, chr_f7s_3A, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/Font7srle.h ================================================ #include #define nr_chrs_f7s 96 #define chr_hgt_f7s 48 #define baseline_f7s 47 #define data_size_f7s 8 #define firstchr_f7s 32 extern const unsigned char widtbl_f7s[96]; extern const unsigned char* const chrtbl_f7s[96]; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMono12pt7b.h ================================================ const uint8_t FreeMono12pt7bBitmaps[] PROGMEM = { 0x49, 0x24, 0x92, 0x48, 0x01, 0xF8, 0xE7, 0xE7, 0x67, 0x42, 0x42, 0x42, 0x42, 0x09, 0x02, 0x41, 0x10, 0x44, 0x11, 0x1F, 0xF1, 0x10, 0x4C, 0x12, 0x3F, 0xE1, 0x20, 0x48, 0x12, 0x04, 0x81, 0x20, 0x48, 0x04, 0x07, 0xA2, 0x19, 0x02, 0x40, 0x10, 0x03, 0x00, 0x3C, 0x00, 0x80, 0x10, 0x06, 0x01, 0xE0, 0xA7, 0xC0, 0x40, 0x10, 0x04, 0x00, 0x3C, 0x19, 0x84, 0x21, 0x08, 0x66, 0x0F, 0x00, 0x0C, 0x1C, 0x78, 0x01, 0xE0, 0xCC, 0x21, 0x08, 0x43, 0x30, 0x78, 0x3E, 0x30, 0x10, 0x08, 0x02, 0x03, 0x03, 0x47, 0x14, 0x8A, 0x43, 0x11, 0x8F, 0x60, 0xFD, 0xA4, 0x90, 0x05, 0x25, 0x24, 0x92, 0x48, 0x92, 0x24, 0x11, 0x24, 0x89, 0x24, 0x92, 0x92, 0x90, 0x00, 0x04, 0x02, 0x11, 0x07, 0xF0, 0xC0, 0x50, 0x48, 0x42, 0x00, 0x08, 0x04, 0x02, 0x01, 0x00, 0x87, 0xFC, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3B, 0x9C, 0xCE, 0x62, 0x00, 0xFF, 0xE0, 0xFF, 0x80, 0x00, 0x80, 0xC0, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x00, 0x80, 0x80, 0x40, 0x00, 0x1C, 0x31, 0x90, 0x58, 0x38, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x30, 0x34, 0x13, 0x18, 0x70, 0x30, 0xE1, 0x44, 0x81, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x81, 0x1F, 0xC0, 0x1E, 0x10, 0x90, 0x68, 0x10, 0x08, 0x0C, 0x04, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06, 0x0E, 0x07, 0xFE, 0x3E, 0x10, 0x40, 0x08, 0x02, 0x00, 0x80, 0x40, 0xE0, 0x04, 0x00, 0x80, 0x10, 0x04, 0x01, 0x00, 0xD8, 0x63, 0xE0, 0x06, 0x0A, 0x0A, 0x12, 0x22, 0x22, 0x42, 0x42, 0x82, 0x82, 0xFF, 0x02, 0x02, 0x02, 0x0F, 0x7F, 0x20, 0x10, 0x08, 0x04, 0x02, 0xF1, 0x8C, 0x03, 0x00, 0x80, 0x40, 0x20, 0x18, 0x16, 0x18, 0xF0, 0x0F, 0x8C, 0x08, 0x08, 0x04, 0x04, 0x02, 0x79, 0x46, 0xC1, 0xE0, 0x60, 0x28, 0x14, 0x19, 0x08, 0x78, 0xFF, 0x81, 0x81, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x31, 0xB0, 0x70, 0x18, 0x0C, 0x05, 0x8C, 0x38, 0x63, 0x40, 0x60, 0x30, 0x18, 0x1B, 0x18, 0xF8, 0x3C, 0x31, 0x30, 0x50, 0x28, 0x0C, 0x0F, 0x06, 0x85, 0x3C, 0x80, 0x40, 0x40, 0x20, 0x20, 0x63, 0xE0, 0xFF, 0x80, 0x07, 0xFC, 0x39, 0xCE, 0x00, 0x00, 0x06, 0x33, 0x98, 0xC4, 0x00, 0x00, 0xC0, 0x60, 0x18, 0x0C, 0x06, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x30, 0x01, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xC0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x18, 0x01, 0x80, 0xC0, 0x30, 0x18, 0x0C, 0x02, 0x00, 0x00, 0x3E, 0x60, 0xA0, 0x20, 0x10, 0x08, 0x08, 0x18, 0x10, 0x08, 0x00, 0x00, 0x00, 0x01, 0xC0, 0xE0, 0x1C, 0x31, 0x10, 0x50, 0x28, 0x14, 0x3A, 0x25, 0x22, 0x91, 0x4C, 0xA3, 0xF0, 0x08, 0x02, 0x01, 0x80, 0x7C, 0x3F, 0x00, 0x0C, 0x00, 0x48, 0x01, 0x20, 0x04, 0x40, 0x21, 0x00, 0x84, 0x04, 0x08, 0x1F, 0xE0, 0x40, 0x82, 0x01, 0x08, 0x04, 0x20, 0x13, 0xE1, 0xF0, 0xFF, 0x08, 0x11, 0x01, 0x20, 0x24, 0x04, 0x81, 0x1F, 0xC2, 0x06, 0x40, 0x68, 0x05, 0x00, 0xA0, 0x14, 0x05, 0xFF, 0x00, 0x1E, 0x48, 0x74, 0x05, 0x01, 0x80, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x04, 0x01, 0x01, 0x30, 0x87, 0xC0, 0xFE, 0x10, 0x44, 0x09, 0x02, 0x40, 0x50, 0x14, 0x05, 0x01, 0x40, 0x50, 0x14, 0x0D, 0x02, 0x41, 0x3F, 0x80, 0xFF, 0xC8, 0x09, 0x01, 0x20, 0x04, 0x00, 0x88, 0x1F, 0x02, 0x20, 0x40, 0x08, 0x01, 0x00, 0xA0, 0x14, 0x03, 0xFF, 0xC0, 0xFF, 0xE8, 0x05, 0x00, 0xA0, 0x04, 0x00, 0x88, 0x1F, 0x02, 0x20, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x01, 0xF0, 0x00, 0x1F, 0x46, 0x19, 0x01, 0x60, 0x28, 0x01, 0x00, 0x20, 0x04, 0x00, 0x83, 0xF0, 0x0B, 0x01, 0x20, 0x23, 0x0C, 0x3E, 0x00, 0xE1, 0xD0, 0x24, 0x09, 0x02, 0x40, 0x90, 0x27, 0xF9, 0x02, 0x40, 0x90, 0x24, 0x09, 0x02, 0x40, 0xB8, 0x70, 0xFE, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x81, 0x1F, 0xC0, 0x0F, 0xE0, 0x10, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x80, 0x90, 0x12, 0x02, 0x40, 0xC6, 0x30, 0x7C, 0x00, 0xF1, 0xE4, 0x0C, 0x41, 0x04, 0x20, 0x44, 0x04, 0x80, 0x5C, 0x06, 0x60, 0x43, 0x04, 0x10, 0x40, 0x84, 0x08, 0x40, 0xCF, 0x07, 0xF8, 0x04, 0x00, 0x80, 0x10, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x04, 0x80, 0x90, 0x12, 0x03, 0xFF, 0xC0, 0xE0, 0x3B, 0x01, 0x94, 0x14, 0xA0, 0xA4, 0x89, 0x24, 0x49, 0x14, 0x48, 0xA2, 0x45, 0x12, 0x10, 0x90, 0x04, 0x80, 0x24, 0x01, 0x78, 0x3C, 0xE0, 0xF6, 0x02, 0x50, 0x25, 0x02, 0x48, 0x24, 0xC2, 0x44, 0x24, 0x22, 0x43, 0x24, 0x12, 0x40, 0xA4, 0x0A, 0x40, 0x6F, 0x06, 0x0F, 0x03, 0x0C, 0x60, 0x64, 0x02, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x40, 0x26, 0x06, 0x30, 0xC0, 0xF0, 0xFF, 0x10, 0x64, 0x05, 0x01, 0x40, 0x50, 0x34, 0x19, 0xFC, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x3E, 0x00, 0x0F, 0x03, 0x0C, 0x60, 0x64, 0x02, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x40, 0x26, 0x06, 0x30, 0xC1, 0xF0, 0x0C, 0x01, 0xF1, 0x30, 0xE0, 0xFF, 0x04, 0x18, 0x40, 0xC4, 0x04, 0x40, 0x44, 0x0C, 0x41, 0x87, 0xE0, 0x43, 0x04, 0x10, 0x40, 0x84, 0x04, 0x40, 0x4F, 0x03, 0x1F, 0x48, 0x34, 0x05, 0x01, 0x40, 0x08, 0x01, 0xC0, 0x0E, 0x00, 0x40, 0x18, 0x06, 0x01, 0xE1, 0xA7, 0xC0, 0xFF, 0xF0, 0x86, 0x10, 0x82, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0x80, 0x10, 0x02, 0x00, 0x40, 0x7F, 0x00, 0xF0, 0xF4, 0x02, 0x40, 0x24, 0x02, 0x40, 0x24, 0x02, 0x40, 0x24, 0x02, 0x40, 0x24, 0x02, 0x40, 0x22, 0x04, 0x30, 0xC0, 0xF0, 0xF8, 0x7C, 0x80, 0x22, 0x01, 0x04, 0x04, 0x10, 0x20, 0x40, 0x80, 0x82, 0x02, 0x10, 0x08, 0x40, 0x11, 0x00, 0x48, 0x01, 0xA0, 0x03, 0x00, 0x0C, 0x00, 0xF8, 0x7C, 0x80, 0x22, 0x00, 0x88, 0xC2, 0x23, 0x10, 0x8E, 0x42, 0x29, 0x09, 0x24, 0x24, 0x90, 0x91, 0x41, 0x85, 0x06, 0x14, 0x18, 0x70, 0x60, 0x80, 0xF0, 0xF2, 0x06, 0x30, 0x41, 0x08, 0x09, 0x80, 0x50, 0x06, 0x00, 0x60, 0x0D, 0x00, 0x88, 0x10, 0xC2, 0x04, 0x60, 0x2F, 0x0F, 0xF0, 0xF2, 0x02, 0x10, 0x41, 0x04, 0x08, 0x80, 0x50, 0x05, 0x00, 0x20, 0x02, 0x00, 0x20, 0x02, 0x00, 0x20, 0x02, 0x01, 0xFC, 0xFF, 0x40, 0xA0, 0x90, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x10, 0x50, 0x30, 0x18, 0x0F, 0xFC, 0xF2, 0x49, 0x24, 0x92, 0x49, 0x24, 0x9C, 0x80, 0x60, 0x10, 0x08, 0x02, 0x01, 0x00, 0x40, 0x20, 0x08, 0x04, 0x01, 0x00, 0x80, 0x20, 0x10, 0x04, 0x02, 0x00, 0x80, 0x40, 0xE4, 0x92, 0x49, 0x24, 0x92, 0x49, 0x3C, 0x08, 0x0C, 0x09, 0x0C, 0x4C, 0x14, 0x04, 0xFF, 0xFC, 0x84, 0x21, 0x3E, 0x00, 0x60, 0x08, 0x02, 0x3F, 0x98, 0x28, 0x0A, 0x02, 0xC3, 0x9F, 0x30, 0xE0, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x13, 0xE0, 0xA0, 0x86, 0x02, 0x20, 0x09, 0x00, 0x48, 0x02, 0x40, 0x13, 0x01, 0x14, 0x1B, 0x9F, 0x00, 0x1F, 0x4C, 0x19, 0x01, 0x40, 0x28, 0x01, 0x00, 0x20, 0x02, 0x00, 0x60, 0x43, 0xF0, 0x00, 0xC0, 0x08, 0x01, 0x00, 0x20, 0x04, 0x3C, 0x98, 0x52, 0x06, 0x80, 0x50, 0x0A, 0x01, 0x40, 0x24, 0x0C, 0xC2, 0x87, 0x98, 0x3F, 0x18, 0x68, 0x06, 0x01, 0xFF, 0xE0, 0x08, 0x03, 0x00, 0x60, 0xC7, 0xC0, 0x0F, 0x98, 0x08, 0x04, 0x02, 0x07, 0xF8, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x03, 0xF8, 0x1E, 0x6C, 0x39, 0x03, 0x40, 0x28, 0x05, 0x00, 0xA0, 0x12, 0x06, 0x61, 0x43, 0xC8, 0x01, 0x00, 0x20, 0x08, 0x3E, 0x00, 0xC0, 0x10, 0x04, 0x01, 0x00, 0x40, 0x13, 0x87, 0x11, 0x82, 0x40, 0x90, 0x24, 0x09, 0x02, 0x40, 0x90, 0x2E, 0x1C, 0x08, 0x04, 0x02, 0x00, 0x00, 0x03, 0xC0, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x80, 0x43, 0xFE, 0x04, 0x08, 0x10, 0x00, 0x1F, 0xC0, 0x81, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x81, 0x02, 0x0B, 0xE0, 0xE0, 0x02, 0x00, 0x20, 0x02, 0x00, 0x20, 0x02, 0x3C, 0x21, 0x02, 0x60, 0x2C, 0x03, 0x80, 0x24, 0x02, 0x20, 0x21, 0x02, 0x08, 0xE1, 0xF0, 0x78, 0x04, 0x02, 0x01, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x80, 0x43, 0xFE, 0xDC, 0xE3, 0x19, 0x90, 0x84, 0x84, 0x24, 0x21, 0x21, 0x09, 0x08, 0x48, 0x42, 0x42, 0x17, 0x18, 0xC0, 0x67, 0x83, 0x84, 0x20, 0x22, 0x02, 0x20, 0x22, 0x02, 0x20, 0x22, 0x02, 0x20, 0x2F, 0x07, 0x1F, 0x04, 0x11, 0x01, 0x40, 0x18, 0x03, 0x00, 0x60, 0x0A, 0x02, 0x20, 0x83, 0xE0, 0xCF, 0x85, 0x06, 0x60, 0x24, 0x01, 0x40, 0x14, 0x01, 0x40, 0x16, 0x02, 0x50, 0x44, 0xF8, 0x40, 0x04, 0x00, 0x40, 0x0F, 0x00, 0x1E, 0x6C, 0x3B, 0x03, 0x40, 0x28, 0x05, 0x00, 0xA0, 0x12, 0x06, 0x61, 0x43, 0xC8, 0x01, 0x00, 0x20, 0x04, 0x03, 0xC0, 0xE3, 0x8B, 0x13, 0x80, 0x80, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x3F, 0x80, 0x1F, 0x58, 0x34, 0x05, 0x80, 0x1E, 0x00, 0x60, 0x06, 0x01, 0xC0, 0xAF, 0xC0, 0x20, 0x04, 0x00, 0x80, 0x10, 0x0F, 0xF0, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0x80, 0x10, 0x03, 0x04, 0x3F, 0x00, 0xC1, 0xC8, 0x09, 0x01, 0x20, 0x24, 0x04, 0x80, 0x90, 0x12, 0x02, 0x61, 0xC7, 0xCC, 0xF8, 0xF9, 0x01, 0x08, 0x10, 0x60, 0x81, 0x08, 0x08, 0x40, 0x22, 0x01, 0x20, 0x05, 0x00, 0x30, 0x00, 0xF0, 0x7A, 0x01, 0x10, 0x08, 0x8C, 0x42, 0x62, 0x12, 0x90, 0xA5, 0x05, 0x18, 0x28, 0xC0, 0x86, 0x00, 0x78, 0xF3, 0x04, 0x18, 0x80, 0xD0, 0x06, 0x00, 0x70, 0x09, 0x81, 0x0C, 0x20, 0x6F, 0x8F, 0xF0, 0xF2, 0x02, 0x20, 0x41, 0x04, 0x10, 0x80, 0x88, 0x09, 0x00, 0x50, 0x06, 0x00, 0x20, 0x04, 0x00, 0x40, 0x08, 0x0F, 0xE0, 0xFF, 0x41, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0xBF, 0xC0, 0x19, 0x08, 0x42, 0x10, 0x84, 0x64, 0x18, 0x42, 0x10, 0x84, 0x20, 0xC0, 0xFF, 0xFF, 0xC0, 0xC1, 0x08, 0x42, 0x10, 0x84, 0x10, 0x4C, 0x42, 0x10, 0x84, 0x26, 0x00, 0x38, 0x13, 0x38, 0x38}; const GFXglyph FreeMono12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 14, 0, 1}, // 0x20 ' ' {0, 3, 15, 14, 6, -14}, // 0x21 '!' {6, 8, 7, 14, 3, -14}, // 0x22 '"' {13, 10, 16, 14, 2, -14}, // 0x23 '#' {33, 10, 17, 14, 2, -14}, // 0x24 '$' {55, 10, 15, 14, 2, -14}, // 0x25 '%' {74, 9, 12, 14, 3, -11}, // 0x26 '&' {88, 3, 7, 14, 5, -14}, // 0x27 ''' {91, 3, 18, 14, 7, -14}, // 0x28 '(' {98, 3, 18, 14, 4, -14}, // 0x29 ')' {105, 9, 9, 14, 3, -14}, // 0x2A '*' {116, 9, 11, 14, 3, -11}, // 0x2B '+' {129, 5, 7, 14, 3, -3}, // 0x2C ',' {134, 11, 1, 14, 2, -6}, // 0x2D '-' {136, 3, 3, 14, 5, -2}, // 0x2E '.' {138, 9, 18, 14, 3, -15}, // 0x2F '/' {159, 9, 15, 14, 3, -14}, // 0x30 '0' {176, 7, 14, 14, 4, -13}, // 0x31 '1' {189, 9, 15, 14, 2, -14}, // 0x32 '2' {206, 10, 15, 14, 2, -14}, // 0x33 '3' {225, 8, 15, 14, 3, -14}, // 0x34 '4' {240, 9, 15, 14, 3, -14}, // 0x35 '5' {257, 9, 15, 14, 3, -14}, // 0x36 '6' {274, 8, 15, 14, 3, -14}, // 0x37 '7' {289, 9, 15, 14, 3, -14}, // 0x38 '8' {306, 9, 15, 14, 3, -14}, // 0x39 '9' {323, 3, 10, 14, 5, -9}, // 0x3A ':' {327, 5, 13, 14, 3, -9}, // 0x3B ';' {336, 11, 11, 14, 2, -11}, // 0x3C '<' {352, 12, 4, 14, 1, -8}, // 0x3D '=' {358, 11, 11, 14, 2, -11}, // 0x3E '>' {374, 9, 14, 14, 3, -13}, // 0x3F '?' {390, 9, 16, 14, 3, -14}, // 0x40 '@' {408, 14, 14, 14, 0, -13}, // 0x41 'A' {433, 11, 14, 14, 2, -13}, // 0x42 'B' {453, 10, 14, 14, 2, -13}, // 0x43 'C' {471, 10, 14, 14, 2, -13}, // 0x44 'D' {489, 11, 14, 14, 2, -13}, // 0x45 'E' {509, 11, 14, 14, 2, -13}, // 0x46 'F' {529, 11, 14, 14, 2, -13}, // 0x47 'G' {549, 10, 14, 14, 2, -13}, // 0x48 'H' {567, 7, 14, 14, 4, -13}, // 0x49 'I' {580, 11, 14, 14, 2, -13}, // 0x4A 'J' {600, 12, 14, 14, 2, -13}, // 0x4B 'K' {621, 11, 14, 14, 2, -13}, // 0x4C 'L' {641, 13, 14, 14, 1, -13}, // 0x4D 'M' {664, 12, 14, 14, 1, -13}, // 0x4E 'N' {685, 12, 14, 14, 1, -13}, // 0x4F 'O' {706, 10, 14, 14, 2, -13}, // 0x50 'P' {724, 12, 17, 14, 1, -13}, // 0x51 'Q' {750, 12, 14, 14, 2, -13}, // 0x52 'R' {771, 10, 14, 14, 2, -13}, // 0x53 'S' {789, 11, 14, 14, 2, -13}, // 0x54 'T' {809, 12, 14, 14, 1, -13}, // 0x55 'U' {830, 14, 14, 14, 0, -13}, // 0x56 'V' {855, 14, 14, 14, 0, -13}, // 0x57 'W' {880, 12, 14, 14, 1, -13}, // 0x58 'X' {901, 12, 14, 14, 1, -13}, // 0x59 'Y' {922, 9, 14, 14, 3, -13}, // 0x5A 'Z' {938, 3, 18, 14, 7, -14}, // 0x5B '[' {945, 9, 18, 14, 3, -15}, // 0x5C '\' {966, 3, 18, 14, 5, -14}, // 0x5D ']' {973, 9, 6, 14, 3, -14}, // 0x5E '^' {980, 14, 1, 14, 0, 3}, // 0x5F '_' {982, 4, 4, 14, 4, -15}, // 0x60 '`' {984, 10, 10, 14, 2, -9}, // 0x61 'a' {997, 13, 15, 14, 0, -14}, // 0x62 'b' {1022, 11, 10, 14, 2, -9}, // 0x63 'c' {1036, 11, 15, 14, 2, -14}, // 0x64 'd' {1057, 10, 10, 14, 2, -9}, // 0x65 'e' {1070, 9, 15, 14, 4, -14}, // 0x66 'f' {1087, 11, 14, 14, 2, -9}, // 0x67 'g' {1107, 10, 15, 14, 2, -14}, // 0x68 'h' {1126, 9, 15, 14, 3, -14}, // 0x69 'i' {1143, 7, 19, 14, 3, -14}, // 0x6A 'j' {1160, 12, 15, 14, 1, -14}, // 0x6B 'k' {1183, 9, 15, 14, 3, -14}, // 0x6C 'l' {1200, 13, 10, 14, 1, -9}, // 0x6D 'm' {1217, 12, 10, 14, 1, -9}, // 0x6E 'n' {1232, 11, 10, 14, 2, -9}, // 0x6F 'o' {1246, 12, 14, 14, 1, -9}, // 0x70 'p' {1267, 11, 14, 14, 2, -9}, // 0x71 'q' {1287, 10, 10, 14, 3, -9}, // 0x72 'r' {1300, 10, 10, 14, 2, -9}, // 0x73 's' {1313, 11, 14, 14, 1, -13}, // 0x74 't' {1333, 11, 10, 14, 2, -9}, // 0x75 'u' {1347, 13, 10, 14, 1, -9}, // 0x76 'v' {1364, 13, 10, 14, 1, -9}, // 0x77 'w' {1381, 12, 10, 14, 1, -9}, // 0x78 'x' {1396, 12, 14, 14, 1, -9}, // 0x79 'y' {1417, 9, 10, 14, 3, -9}, // 0x7A 'z' {1429, 5, 18, 14, 5, -14}, // 0x7B '{' {1441, 1, 18, 14, 7, -14}, // 0x7C '|' {1444, 5, 18, 14, 5, -14}, // 0x7D '}' {1456, 10, 3, 14, 2, -7}}; // 0x7E '~' const GFXfont FreeMono12pt7b PROGMEM = {(uint8_t *)FreeMono12pt7bBitmaps, (GFXglyph *)FreeMono12pt7bGlyphs, 0x20, 0x7E, 24}; // Approx. 2132 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMono18pt7b.h ================================================ const uint8_t FreeMono18pt7bBitmaps[] PROGMEM = { 0x27, 0x77, 0x77, 0x77, 0x77, 0x22, 0x22, 0x20, 0x00, 0x6F, 0xF6, 0xF1, 0xFE, 0x3F, 0xC7, 0xF8, 0xFF, 0x1E, 0xC3, 0x98, 0x33, 0x06, 0x60, 0xCC, 0x18, 0x04, 0x20, 0x10, 0x80, 0x42, 0x01, 0x08, 0x04, 0x20, 0x10, 0x80, 0x42, 0x01, 0x10, 0x04, 0x41, 0xFF, 0xF0, 0x44, 0x02, 0x10, 0x08, 0x40, 0x21, 0x0F, 0xFF, 0xC2, 0x10, 0x08, 0x40, 0x21, 0x00, 0x84, 0x02, 0x10, 0x08, 0x40, 0x23, 0x00, 0x88, 0x02, 0x20, 0x02, 0x00, 0x10, 0x00, 0x80, 0x1F, 0xA3, 0x07, 0x10, 0x09, 0x00, 0x48, 0x00, 0x40, 0x03, 0x00, 0x0C, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x18, 0x00, 0x20, 0x01, 0x80, 0x0C, 0x00, 0x70, 0x05, 0xE0, 0xC9, 0xF8, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x1E, 0x00, 0x42, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x08, 0x40, 0x0F, 0x00, 0x00, 0x1E, 0x01, 0xF0, 0x1F, 0x01, 0xE0, 0x0E, 0x00, 0x00, 0x3C, 0x00, 0x86, 0x02, 0x06, 0x04, 0x04, 0x08, 0x08, 0x10, 0x30, 0x10, 0xC0, 0x1E, 0x00, 0x0F, 0xC1, 0x00, 0x20, 0x02, 0x00, 0x20, 0x02, 0x00, 0x10, 0x01, 0x00, 0x08, 0x03, 0xC0, 0x6C, 0x3C, 0x62, 0x82, 0x68, 0x34, 0x81, 0xCC, 0x08, 0x61, 0xC3, 0xE7, 0xFF, 0xFF, 0xF6, 0x66, 0x66, 0x08, 0xC4, 0x62, 0x31, 0x8C, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC3, 0x18, 0xC2, 0x18, 0xC3, 0x18, 0x86, 0x10, 0xC2, 0x18, 0xC6, 0x10, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0x8C, 0x62, 0x31, 0x98, 0x80, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x0C, 0x21, 0x9D, 0x70, 0x1C, 0x00, 0xA0, 0x0D, 0x80, 0xC6, 0x04, 0x10, 0x40, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x3E, 0x78, 0xF3, 0xC7, 0x8E, 0x18, 0x70, 0xC1, 0x80, 0xFF, 0xFE, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x08, 0x00, 0xC0, 0x04, 0x00, 0x60, 0x02, 0x00, 0x30, 0x01, 0x00, 0x18, 0x00, 0x80, 0x0C, 0x00, 0x40, 0x02, 0x00, 0x20, 0x01, 0x00, 0x10, 0x00, 0x80, 0x08, 0x00, 0x40, 0x04, 0x00, 0x20, 0x02, 0x00, 0x10, 0x01, 0x00, 0x08, 0x00, 0x80, 0x04, 0x00, 0x00, 0x0F, 0x81, 0x82, 0x08, 0x08, 0x80, 0x24, 0x01, 0x60, 0x0E, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x03, 0x40, 0x12, 0x00, 0x88, 0x08, 0x60, 0xC0, 0xF8, 0x00, 0x06, 0x00, 0x70, 0x06, 0x80, 0x64, 0x06, 0x20, 0x31, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x0F, 0xFF, 0x80, 0x0F, 0x80, 0xC3, 0x08, 0x04, 0x80, 0x24, 0x00, 0x80, 0x04, 0x00, 0x20, 0x02, 0x00, 0x10, 0x01, 0x00, 0x10, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x58, 0x03, 0x80, 0x1F, 0xFF, 0x80, 0x0F, 0xC0, 0xC0, 0x86, 0x01, 0x00, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x04, 0x00, 0x20, 0x0F, 0x00, 0x06, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x40, 0x01, 0x00, 0x04, 0x00, 0x2C, 0x01, 0x9C, 0x0C, 0x0F, 0xC0, 0x01, 0xC0, 0x14, 0x02, 0x40, 0x64, 0x04, 0x40, 0xC4, 0x08, 0x41, 0x84, 0x10, 0x42, 0x04, 0x20, 0x44, 0x04, 0x40, 0x48, 0x04, 0xFF, 0xF0, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x07, 0xF0, 0x3F, 0xF0, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x0B, 0xF0, 0x30, 0x30, 0x00, 0x60, 0x00, 0x80, 0x01, 0x00, 0x04, 0x00, 0x10, 0x00, 0x40, 0x01, 0x00, 0x0E, 0x00, 0x2C, 0x01, 0x0C, 0x18, 0x0F, 0xC0, 0x01, 0xF0, 0x60, 0x18, 0x03, 0x00, 0x20, 0x04, 0x00, 0x40, 0x0C, 0x00, 0x80, 0x08, 0xF8, 0x98, 0x4A, 0x02, 0xE0, 0x3C, 0x01, 0x80, 0x14, 0x01, 0x40, 0x14, 0x03, 0x20, 0x21, 0x0C, 0x0F, 0x80, 0xFF, 0xF8, 0x01, 0x80, 0x18, 0x03, 0x00, 0x20, 0x02, 0x00, 0x20, 0x04, 0x00, 0x40, 0x04, 0x00, 0xC0, 0x08, 0x00, 0x80, 0x18, 0x01, 0x00, 0x10, 0x01, 0x00, 0x30, 0x02, 0x00, 0x20, 0x02, 0x00, 0x0F, 0x81, 0x83, 0x10, 0x05, 0x80, 0x38, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x03, 0x40, 0x11, 0x83, 0x07, 0xF0, 0x60, 0xC4, 0x01, 0x60, 0x0E, 0x00, 0x30, 0x01, 0x80, 0x0E, 0x00, 0xD0, 0x04, 0x60, 0xC1, 0xFC, 0x00, 0x1F, 0x03, 0x08, 0x40, 0x4C, 0x02, 0x80, 0x28, 0x02, 0x80, 0x18, 0x03, 0xC0, 0x74, 0x05, 0x21, 0x91, 0xF1, 0x00, 0x10, 0x03, 0x00, 0x20, 0x02, 0x00, 0x40, 0x0C, 0x01, 0x80, 0x60, 0xF8, 0x00, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x00, 0x1D, 0xFF, 0xFD, 0xC0, 0x1C, 0x7C, 0xF9, 0xF1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xE3, 0x8F, 0x1C, 0x38, 0xE1, 0xC3, 0x06, 0x00, 0x00, 0x06, 0x00, 0x18, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x06, 0x00, 0x38, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x18, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFC, 0xC0, 0x00, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x0C, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x00, 0x60, 0x00, 0x3F, 0x8E, 0x0C, 0x80, 0x28, 0x01, 0x80, 0x10, 0x01, 0x00, 0x10, 0x02, 0x00, 0xC0, 0x38, 0x06, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x01, 0xF0, 0x1F, 0x00, 0xE0, 0x0F, 0x01, 0x86, 0x08, 0x08, 0x80, 0x24, 0x01, 0x40, 0x0A, 0x00, 0x50, 0x1E, 0x83, 0x14, 0x20, 0xA2, 0x05, 0x10, 0x28, 0x81, 0x46, 0x0A, 0x18, 0x50, 0x3F, 0x80, 0x04, 0x00, 0x10, 0x00, 0x80, 0x02, 0x00, 0x18, 0x18, 0x3F, 0x00, 0x1F, 0xF0, 0x00, 0x06, 0x80, 0x00, 0x34, 0x00, 0x01, 0x30, 0x00, 0x18, 0x80, 0x00, 0x86, 0x00, 0x04, 0x30, 0x00, 0x60, 0x80, 0x02, 0x06, 0x00, 0x10, 0x10, 0x01, 0x80, 0x80, 0x08, 0x06, 0x00, 0x7F, 0xF0, 0x06, 0x00, 0x80, 0x20, 0x06, 0x01, 0x00, 0x10, 0x18, 0x00, 0xC0, 0x80, 0x06, 0x04, 0x00, 0x11, 0xFC, 0x0F, 0xF0, 0xFF, 0xF8, 0x04, 0x01, 0x01, 0x00, 0x20, 0x40, 0x04, 0x10, 0x01, 0x04, 0x00, 0x41, 0x00, 0x10, 0x40, 0x08, 0x10, 0x0C, 0x07, 0xFF, 0x01, 0x00, 0x70, 0x40, 0x06, 0x10, 0x00, 0x84, 0x00, 0x11, 0x00, 0x04, 0x40, 0x01, 0x10, 0x00, 0x44, 0x00, 0x21, 0x00, 0x33, 0xFF, 0xF8, 0x03, 0xF1, 0x06, 0x0E, 0x8C, 0x01, 0xC4, 0x00, 0x64, 0x00, 0x12, 0x00, 0x0A, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x20, 0x01, 0x88, 0x01, 0x83, 0x03, 0x80, 0x7E, 0x00, 0xFF, 0xE0, 0x20, 0x18, 0x20, 0x0C, 0x20, 0x04, 0x20, 0x02, 0x20, 0x02, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x02, 0x20, 0x02, 0x20, 0x04, 0x20, 0x0C, 0x20, 0x18, 0xFF, 0xE0, 0xFF, 0xFF, 0x08, 0x00, 0x84, 0x00, 0x42, 0x00, 0x21, 0x00, 0x10, 0x80, 0x00, 0x40, 0x00, 0x20, 0x40, 0x10, 0x20, 0x0F, 0xF0, 0x04, 0x08, 0x02, 0x04, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x02, 0x20, 0x01, 0x10, 0x00, 0x88, 0x00, 0x44, 0x00, 0x3F, 0xFF, 0xF0, 0xFF, 0xFF, 0x88, 0x00, 0x44, 0x00, 0x22, 0x00, 0x11, 0x00, 0x08, 0x80, 0x00, 0x40, 0x00, 0x20, 0x40, 0x10, 0x20, 0x0F, 0xF0, 0x04, 0x08, 0x02, 0x04, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xF9, 0x06, 0x07, 0x84, 0x00, 0xC4, 0x00, 0x24, 0x00, 0x12, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x0F, 0xF8, 0x00, 0x14, 0x00, 0x09, 0x00, 0x04, 0x80, 0x02, 0x20, 0x01, 0x18, 0x00, 0x83, 0x01, 0xC0, 0x7F, 0x00, 0xFC, 0x3F, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x3F, 0xFC, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xFC, 0x3F, 0xFF, 0xF8, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x81, 0xFF, 0xF0, 0x03, 0xFF, 0x80, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x10, 0x01, 0x08, 0x00, 0x84, 0x00, 0x42, 0x00, 0x21, 0x00, 0x10, 0x80, 0x10, 0x20, 0x18, 0x0C, 0x18, 0x01, 0xF0, 0x00, 0xFF, 0x1F, 0x84, 0x01, 0x81, 0x00, 0xC0, 0x40, 0x60, 0x10, 0x30, 0x04, 0x18, 0x01, 0x0C, 0x00, 0x46, 0x00, 0x13, 0x00, 0x05, 0xF0, 0x01, 0xC6, 0x00, 0x60, 0xC0, 0x10, 0x18, 0x04, 0x06, 0x01, 0x00, 0xC0, 0x40, 0x30, 0x10, 0x04, 0x04, 0x01, 0x81, 0x00, 0x23, 0xFC, 0x0F, 0xFF, 0x80, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x42, 0x00, 0x84, 0x01, 0x08, 0x02, 0x10, 0x04, 0x20, 0x0F, 0xFF, 0xF0, 0xF0, 0x01, 0xE7, 0x00, 0x70, 0xA0, 0x0A, 0x16, 0x03, 0x42, 0x40, 0x48, 0x4C, 0x19, 0x08, 0x82, 0x21, 0x10, 0x44, 0x23, 0x18, 0x84, 0x22, 0x10, 0x86, 0xC2, 0x10, 0x50, 0x42, 0x0E, 0x08, 0x41, 0xC1, 0x08, 0x00, 0x21, 0x00, 0x04, 0x20, 0x00, 0x84, 0x00, 0x10, 0x80, 0x02, 0x7F, 0x03, 0xF0, 0xF8, 0x1F, 0xC6, 0x00, 0x41, 0xC0, 0x10, 0x50, 0x04, 0x12, 0x01, 0x04, 0xC0, 0x41, 0x10, 0x10, 0x46, 0x04, 0x10, 0x81, 0x04, 0x10, 0x41, 0x04, 0x10, 0x40, 0x84, 0x10, 0x31, 0x04, 0x04, 0x41, 0x01, 0x90, 0x40, 0x24, 0x10, 0x05, 0x04, 0x01, 0xC1, 0x00, 0x31, 0xFC, 0x0C, 0x03, 0xE0, 0x06, 0x0C, 0x04, 0x01, 0x04, 0x00, 0x46, 0x00, 0x32, 0x00, 0x0B, 0x00, 0x05, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0E, 0x00, 0x0D, 0x00, 0x04, 0xC0, 0x06, 0x20, 0x02, 0x08, 0x02, 0x03, 0x06, 0x00, 0x7C, 0x00, 0xFF, 0xF0, 0x10, 0x0C, 0x10, 0x02, 0x10, 0x03, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x03, 0x10, 0x06, 0x10, 0x0C, 0x1F, 0xF0, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xFF, 0xC0, 0x03, 0xE0, 0x06, 0x0C, 0x04, 0x01, 0x04, 0x00, 0x46, 0x00, 0x32, 0x00, 0x0B, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0E, 0x00, 0x0D, 0x00, 0x04, 0xC0, 0x06, 0x20, 0x02, 0x08, 0x02, 0x03, 0x06, 0x00, 0xFC, 0x00, 0x30, 0x00, 0x30, 0x00, 0x7F, 0xC6, 0x38, 0x1E, 0xFF, 0xF0, 0x02, 0x01, 0x80, 0x40, 0x08, 0x08, 0x01, 0x81, 0x00, 0x10, 0x20, 0x02, 0x04, 0x00, 0x40, 0x80, 0x18, 0x10, 0x06, 0x02, 0x03, 0x80, 0x7F, 0xC0, 0x08, 0x18, 0x01, 0x01, 0x80, 0x20, 0x18, 0x04, 0x01, 0x80, 0x80, 0x10, 0x10, 0x03, 0x02, 0x00, 0x20, 0x40, 0x06, 0x7F, 0x80, 0x70, 0x0F, 0xC8, 0x61, 0xE2, 0x01, 0x90, 0x02, 0x40, 0x09, 0x00, 0x04, 0x00, 0x08, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x0F, 0x00, 0x2B, 0x03, 0x23, 0xF0, 0xFF, 0xFF, 0x02, 0x06, 0x04, 0x0C, 0x08, 0x18, 0x10, 0x20, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x01, 0xFF, 0xC0, 0xFC, 0x1F, 0x90, 0x01, 0x08, 0x00, 0x84, 0x00, 0x42, 0x00, 0x21, 0x00, 0x10, 0x80, 0x08, 0x40, 0x04, 0x20, 0x02, 0x10, 0x01, 0x08, 0x00, 0x84, 0x00, 0x42, 0x00, 0x21, 0x00, 0x10, 0x80, 0x08, 0x40, 0x04, 0x10, 0x04, 0x0C, 0x06, 0x03, 0x06, 0x00, 0x7C, 0x00, 0xFE, 0x03, 0xF8, 0x80, 0x02, 0x04, 0x00, 0x10, 0x30, 0x01, 0x80, 0x80, 0x08, 0x06, 0x00, 0xC0, 0x30, 0x06, 0x00, 0x80, 0x20, 0x06, 0x03, 0x00, 0x30, 0x10, 0x00, 0x80, 0x80, 0x06, 0x0C, 0x00, 0x10, 0x40, 0x00, 0x86, 0x00, 0x06, 0x20, 0x00, 0x11, 0x00, 0x00, 0xD8, 0x00, 0x06, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0xFC, 0x0F, 0xE8, 0x00, 0x19, 0x00, 0x03, 0x10, 0x00, 0x62, 0x00, 0x08, 0x41, 0x81, 0x08, 0x28, 0x21, 0x05, 0x04, 0x21, 0xA0, 0x84, 0x36, 0x30, 0x84, 0x46, 0x08, 0x88, 0xC1, 0x31, 0x18, 0x24, 0x12, 0x04, 0x82, 0x40, 0xB0, 0x48, 0x14, 0x09, 0x02, 0x80, 0xA0, 0x30, 0x1C, 0x06, 0x03, 0x80, 0x7E, 0x0F, 0xC2, 0x00, 0x60, 0x60, 0x0C, 0x06, 0x03, 0x00, 0x60, 0xC0, 0x0C, 0x10, 0x00, 0xC6, 0x00, 0x0D, 0x80, 0x00, 0xA0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0xD8, 0x00, 0x11, 0x00, 0x06, 0x30, 0x01, 0x83, 0x00, 0x60, 0x30, 0x08, 0x06, 0x03, 0x00, 0x60, 0xC0, 0x06, 0x7F, 0x07, 0xF0, 0xFC, 0x1F, 0x98, 0x03, 0x04, 0x01, 0x03, 0x01, 0x80, 0xC1, 0x80, 0x20, 0x80, 0x18, 0xC0, 0x04, 0x40, 0x03, 0x60, 0x00, 0xE0, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x03, 0xFF, 0x80, 0xFF, 0xF4, 0x00, 0xA0, 0x09, 0x00, 0x48, 0x04, 0x40, 0x40, 0x02, 0x00, 0x20, 0x02, 0x00, 0x10, 0x01, 0x00, 0x10, 0x00, 0x80, 0x08, 0x04, 0x80, 0x24, 0x01, 0x40, 0x0C, 0x00, 0x60, 0x03, 0xFF, 0xF0, 0xFC, 0x21, 0x08, 0x42, 0x10, 0x84, 0x21, 0x08, 0x42, 0x10, 0x84, 0x21, 0x08, 0x42, 0x10, 0xF8, 0x80, 0x02, 0x00, 0x10, 0x00, 0xC0, 0x02, 0x00, 0x18, 0x00, 0x40, 0x03, 0x00, 0x08, 0x00, 0x40, 0x01, 0x00, 0x08, 0x00, 0x20, 0x01, 0x00, 0x04, 0x00, 0x20, 0x00, 0x80, 0x04, 0x00, 0x10, 0x00, 0x80, 0x02, 0x00, 0x10, 0x00, 0x40, 0x02, 0x00, 0x08, 0x00, 0x40, 0xF8, 0x42, 0x10, 0x84, 0x21, 0x08, 0x42, 0x10, 0x84, 0x21, 0x08, 0x42, 0x10, 0x84, 0x21, 0xF8, 0x02, 0x00, 0x38, 0x03, 0x60, 0x11, 0x01, 0x8C, 0x18, 0x31, 0x80, 0xD8, 0x03, 0x80, 0x08, 0xFF, 0xFF, 0xF8, 0xC1, 0x83, 0x06, 0x0C, 0x0F, 0xC0, 0x70, 0x30, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x0F, 0xF8, 0x30, 0x08, 0x40, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x38, 0x60, 0xE8, 0x3F, 0x8F, 0xF0, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x04, 0x00, 0x01, 0x0F, 0x80, 0x4C, 0x18, 0x14, 0x01, 0x06, 0x00, 0x21, 0x80, 0x08, 0x40, 0x01, 0x10, 0x00, 0x44, 0x00, 0x11, 0x00, 0x04, 0x40, 0x01, 0x18, 0x00, 0x86, 0x00, 0x21, 0xC0, 0x10, 0x5C, 0x18, 0xF1, 0xF8, 0x00, 0x07, 0xE4, 0x30, 0x78, 0x80, 0x32, 0x00, 0x24, 0x00, 0x50, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x12, 0x00, 0xC3, 0x07, 0x01, 0xF8, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x7C, 0x20, 0x60, 0xC8, 0x20, 0x0A, 0x10, 0x01, 0x84, 0x00, 0x62, 0x00, 0x08, 0x80, 0x02, 0x20, 0x00, 0x88, 0x00, 0x22, 0x00, 0x08, 0xC0, 0x06, 0x10, 0x01, 0x82, 0x00, 0xE0, 0x60, 0xE8, 0x0F, 0xE3, 0xC0, 0x07, 0xE0, 0x1C, 0x18, 0x30, 0x0C, 0x60, 0x06, 0x40, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0xFF, 0xFF, 0xC0, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x60, 0x00, 0x30, 0x03, 0x0C, 0x0E, 0x03, 0xF0, 0x03, 0xFC, 0x18, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x0F, 0xFF, 0x82, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0xFF, 0xF0, 0x0F, 0xC7, 0x9C, 0x3A, 0x18, 0x07, 0x08, 0x01, 0x8C, 0x00, 0xC4, 0x00, 0x22, 0x00, 0x11, 0x00, 0x08, 0x80, 0x04, 0x40, 0x02, 0x10, 0x03, 0x08, 0x01, 0x82, 0x01, 0x40, 0xC3, 0x20, 0x3F, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x7F, 0x00, 0xF0, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x47, 0xC0, 0x2C, 0x18, 0x1C, 0x04, 0x0C, 0x01, 0x04, 0x00, 0x82, 0x00, 0x41, 0x00, 0x20, 0x80, 0x10, 0x40, 0x08, 0x20, 0x04, 0x10, 0x02, 0x08, 0x01, 0x04, 0x00, 0x82, 0x00, 0x47, 0xC0, 0xF8, 0x06, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x03, 0xFF, 0xF0, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x08, 0x06, 0xFE, 0x00, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0xFE, 0x10, 0x30, 0x10, 0xE0, 0x11, 0xC0, 0x13, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x1B, 0x00, 0x11, 0x80, 0x10, 0xC0, 0x10, 0x60, 0x10, 0x30, 0x10, 0x18, 0x10, 0x1C, 0xF0, 0x3F, 0x7E, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0xFF, 0xFC, 0xEF, 0x9E, 0x07, 0x1E, 0x20, 0xC1, 0x82, 0x10, 0x20, 0x42, 0x04, 0x08, 0x40, 0x81, 0x08, 0x10, 0x21, 0x02, 0x04, 0x20, 0x40, 0x84, 0x08, 0x10, 0x81, 0x02, 0x10, 0x20, 0x42, 0x04, 0x08, 0x40, 0x81, 0x3E, 0x1C, 0x38, 0x71, 0xF0, 0x0B, 0x06, 0x07, 0x01, 0x03, 0x00, 0x41, 0x00, 0x20, 0x80, 0x10, 0x40, 0x08, 0x20, 0x04, 0x10, 0x02, 0x08, 0x01, 0x04, 0x00, 0x82, 0x00, 0x41, 0x00, 0x20, 0x80, 0x13, 0xF0, 0x3E, 0x07, 0xC0, 0x30, 0x60, 0x80, 0x22, 0x00, 0x24, 0x00, 0x50, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x05, 0x00, 0x12, 0x00, 0x22, 0x00, 0x83, 0x06, 0x01, 0xF0, 0x00, 0xF1, 0xFC, 0x05, 0xC1, 0x81, 0xC0, 0x10, 0x60, 0x02, 0x18, 0x00, 0xC4, 0x00, 0x11, 0x00, 0x04, 0x40, 0x01, 0x10, 0x00, 0x44, 0x00, 0x11, 0x80, 0x08, 0x60, 0x02, 0x14, 0x01, 0x04, 0xC1, 0x81, 0x0F, 0x80, 0x40, 0x00, 0x10, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xE3, 0xC6, 0x0E, 0x86, 0x00, 0xE1, 0x00, 0x18, 0xC0, 0x06, 0x20, 0x00, 0x88, 0x00, 0x22, 0x00, 0x08, 0x80, 0x02, 0x20, 0x00, 0x84, 0x00, 0x61, 0x00, 0x18, 0x20, 0x0A, 0x06, 0x0C, 0x80, 0x7C, 0x20, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x08, 0x00, 0x02, 0x00, 0x0F, 0xF0, 0xF8, 0x7C, 0x11, 0x8C, 0x2C, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xD1, 0x83, 0x98, 0x04, 0x80, 0x24, 0x00, 0x30, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0x30, 0x00, 0xE0, 0x03, 0x00, 0x1C, 0x01, 0xF0, 0x1A, 0x7F, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xFF, 0xFC, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x01, 0x06, 0x0F, 0x03, 0xF8, 0xF0, 0x3E, 0x08, 0x01, 0x04, 0x00, 0x82, 0x00, 0x41, 0x00, 0x20, 0x80, 0x10, 0x40, 0x08, 0x20, 0x04, 0x10, 0x02, 0x08, 0x01, 0x04, 0x00, 0x82, 0x00, 0x41, 0x00, 0xE0, 0x41, 0xD0, 0x1F, 0x8E, 0xFE, 0x0F, 0xE2, 0x00, 0x20, 0x60, 0x0C, 0x0C, 0x01, 0x80, 0x80, 0x20, 0x18, 0x0C, 0x01, 0x01, 0x00, 0x30, 0x60, 0x02, 0x08, 0x00, 0x41, 0x00, 0x0C, 0x60, 0x00, 0x88, 0x00, 0x19, 0x00, 0x01, 0x40, 0x00, 0x38, 0x00, 0xFC, 0x07, 0xE4, 0x00, 0x10, 0x80, 0x02, 0x18, 0x20, 0xC3, 0x0E, 0x18, 0x21, 0x42, 0x04, 0x28, 0x40, 0x8D, 0x88, 0x19, 0x93, 0x03, 0x22, 0x60, 0x2C, 0x68, 0x05, 0x85, 0x00, 0xA0, 0xA0, 0x1C, 0x1C, 0x01, 0x81, 0x80, 0x7C, 0x1F, 0x18, 0x03, 0x06, 0x03, 0x01, 0x83, 0x00, 0x63, 0x00, 0x1B, 0x00, 0x07, 0x00, 0x03, 0x80, 0x03, 0x60, 0x03, 0x18, 0x03, 0x06, 0x03, 0x01, 0x83, 0x00, 0x61, 0x00, 0x33, 0xF0, 0x7E, 0xFC, 0x1F, 0x90, 0x01, 0x8C, 0x00, 0x86, 0x00, 0xC1, 0x80, 0x40, 0xC0, 0x60, 0x20, 0x20, 0x18, 0x30, 0x04, 0x10, 0x03, 0x08, 0x00, 0x8C, 0x00, 0x64, 0x00, 0x16, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x20, 0x07, 0xFE, 0x00, 0xFF, 0xF4, 0x01, 0x20, 0x09, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0xC0, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x14, 0x00, 0xA0, 0x07, 0xFF, 0xE0, 0x07, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x30, 0xC0, 0x30, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0C, 0x07, 0xFF, 0xFF, 0xFF, 0x80, 0xE0, 0x30, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x07, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x30, 0xE0, 0x1C, 0x00, 0x44, 0x0D, 0x84, 0x36, 0x04, 0x40, 0x07, 0x00}; const GFXglyph FreeMono18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 21, 0, 1}, // 0x20 ' ' {0, 4, 22, 21, 8, -21}, // 0x21 '!' {11, 11, 10, 21, 5, -20}, // 0x22 '"' {25, 14, 24, 21, 3, -21}, // 0x23 '#' {67, 13, 26, 21, 4, -22}, // 0x24 '$' {110, 15, 21, 21, 3, -20}, // 0x25 '%' {150, 12, 18, 21, 4, -17}, // 0x26 '&' {177, 4, 10, 21, 8, -20}, // 0x27 ''' {182, 5, 25, 21, 10, -20}, // 0x28 '(' {198, 5, 25, 21, 6, -20}, // 0x29 ')' {214, 13, 12, 21, 4, -20}, // 0x2A '*' {234, 15, 17, 21, 3, -17}, // 0x2B '+' {266, 7, 10, 21, 5, -4}, // 0x2C ',' {275, 15, 1, 21, 3, -9}, // 0x2D '-' {277, 5, 5, 21, 8, -4}, // 0x2E '.' {281, 13, 26, 21, 4, -22}, // 0x2F '/' {324, 13, 21, 21, 4, -20}, // 0x30 '0' {359, 13, 21, 21, 4, -20}, // 0x31 '1' {394, 13, 21, 21, 3, -20}, // 0x32 '2' {429, 14, 21, 21, 3, -20}, // 0x33 '3' {466, 12, 21, 21, 4, -20}, // 0x34 '4' {498, 14, 21, 21, 3, -20}, // 0x35 '5' {535, 12, 21, 21, 5, -20}, // 0x36 '6' {567, 12, 21, 21, 4, -20}, // 0x37 '7' {599, 13, 21, 21, 4, -20}, // 0x38 '8' {634, 12, 21, 21, 5, -20}, // 0x39 '9' {666, 5, 15, 21, 8, -14}, // 0x3A ':' {676, 7, 20, 21, 5, -14}, // 0x3B ';' {694, 15, 16, 21, 3, -17}, // 0x3C '<' {724, 17, 6, 21, 2, -12}, // 0x3D '=' {737, 15, 16, 21, 3, -17}, // 0x3E '>' {767, 12, 20, 21, 5, -19}, // 0x3F '?' {797, 13, 23, 21, 4, -20}, // 0x40 '@' {835, 21, 20, 21, 0, -19}, // 0x41 'A' {888, 18, 20, 21, 1, -19}, // 0x42 'B' {933, 17, 20, 21, 2, -19}, // 0x43 'C' {976, 16, 20, 21, 2, -19}, // 0x44 'D' {1016, 17, 20, 21, 1, -19}, // 0x45 'E' {1059, 17, 20, 21, 1, -19}, // 0x46 'F' {1102, 17, 20, 21, 2, -19}, // 0x47 'G' {1145, 16, 20, 21, 2, -19}, // 0x48 'H' {1185, 13, 20, 21, 4, -19}, // 0x49 'I' {1218, 17, 20, 21, 3, -19}, // 0x4A 'J' {1261, 18, 20, 21, 1, -19}, // 0x4B 'K' {1306, 15, 20, 21, 3, -19}, // 0x4C 'L' {1344, 19, 20, 21, 1, -19}, // 0x4D 'M' {1392, 18, 20, 21, 1, -19}, // 0x4E 'N' {1437, 17, 20, 21, 2, -19}, // 0x4F 'O' {1480, 16, 20, 21, 1, -19}, // 0x50 'P' {1520, 17, 24, 21, 2, -19}, // 0x51 'Q' {1571, 19, 20, 21, 1, -19}, // 0x52 'R' {1619, 14, 20, 21, 3, -19}, // 0x53 'S' {1654, 15, 20, 21, 3, -19}, // 0x54 'T' {1692, 17, 20, 21, 2, -19}, // 0x55 'U' {1735, 21, 20, 21, 0, -19}, // 0x56 'V' {1788, 19, 20, 21, 1, -19}, // 0x57 'W' {1836, 19, 20, 21, 1, -19}, // 0x58 'X' {1884, 17, 20, 21, 2, -19}, // 0x59 'Y' {1927, 13, 20, 21, 4, -19}, // 0x5A 'Z' {1960, 5, 25, 21, 10, -20}, // 0x5B '[' {1976, 13, 26, 21, 4, -22}, // 0x5C '\' {2019, 5, 25, 21, 6, -20}, // 0x5D ']' {2035, 13, 9, 21, 4, -20}, // 0x5E '^' {2050, 21, 1, 21, 0, 4}, // 0x5F '_' {2053, 6, 5, 21, 5, -21}, // 0x60 '`' {2057, 16, 15, 21, 3, -14}, // 0x61 'a' {2087, 18, 21, 21, 1, -20}, // 0x62 'b' {2135, 15, 15, 21, 3, -14}, // 0x63 'c' {2164, 18, 21, 21, 2, -20}, // 0x64 'd' {2212, 16, 15, 21, 2, -14}, // 0x65 'e' {2242, 14, 21, 21, 4, -20}, // 0x66 'f' {2279, 17, 22, 21, 2, -14}, // 0x67 'g' {2326, 17, 21, 21, 1, -20}, // 0x68 'h' {2371, 14, 22, 21, 4, -21}, // 0x69 'i' {2410, 10, 29, 21, 5, -21}, // 0x6A 'j' {2447, 16, 21, 21, 2, -20}, // 0x6B 'k' {2489, 14, 21, 21, 4, -20}, // 0x6C 'l' {2526, 19, 15, 21, 1, -14}, // 0x6D 'm' {2562, 17, 15, 21, 1, -14}, // 0x6E 'n' {2594, 15, 15, 21, 3, -14}, // 0x6F 'o' {2623, 18, 22, 21, 1, -14}, // 0x70 'p' {2673, 18, 22, 21, 2, -14}, // 0x71 'q' {2723, 15, 15, 21, 3, -14}, // 0x72 'r' {2752, 13, 15, 21, 4, -14}, // 0x73 's' {2777, 16, 20, 21, 1, -19}, // 0x74 't' {2817, 17, 15, 21, 1, -14}, // 0x75 'u' {2849, 19, 15, 21, 1, -14}, // 0x76 'v' {2885, 19, 15, 21, 1, -14}, // 0x77 'w' {2921, 17, 15, 21, 2, -14}, // 0x78 'x' {2953, 17, 22, 21, 2, -14}, // 0x79 'y' {3000, 13, 15, 21, 4, -14}, // 0x7A 'z' {3025, 8, 25, 21, 6, -20}, // 0x7B '{' {3050, 1, 25, 21, 10, -20}, // 0x7C '|' {3054, 8, 25, 21, 7, -20}, // 0x7D '}' {3079, 15, 5, 21, 3, -11}}; // 0x7E '~' const GFXfont FreeMono18pt7b PROGMEM = {(uint8_t *)FreeMono18pt7bBitmaps, (GFXglyph *)FreeMono18pt7bGlyphs, 0x20, 0x7E, 35}; // Approx. 3761 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMono24pt7b.h ================================================ const uint8_t FreeMono24pt7bBitmaps[] PROGMEM = { 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x10, 0x84, 0x21, 0x08, 0x00, 0x00, 0x00, 0x03, 0xBF, 0xFF, 0xB8, 0xFE, 0x7F, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x3C, 0x3E, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x01, 0x86, 0x00, 0x30, 0xC0, 0x06, 0x18, 0x00, 0xC3, 0x00, 0x18, 0x60, 0x03, 0x0C, 0x00, 0x61, 0x80, 0x0C, 0x70, 0x01, 0x8C, 0x00, 0x61, 0x80, 0x0C, 0x30, 0x3F, 0xFF, 0xF7, 0xFF, 0xFE, 0x06, 0x18, 0x00, 0xC3, 0x00, 0x18, 0x60, 0x03, 0x0C, 0x00, 0x61, 0x80, 0x0C, 0x30, 0x7F, 0xFF, 0xEF, 0xFF, 0xFC, 0x06, 0x18, 0x00, 0xC7, 0x00, 0x38, 0xC0, 0x06, 0x18, 0x00, 0xC3, 0x00, 0x18, 0x60, 0x03, 0x0C, 0x00, 0x61, 0x80, 0x0C, 0x30, 0x01, 0x86, 0x00, 0x30, 0xC0, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x0F, 0xC0, 0x0F, 0xFD, 0x87, 0x03, 0xE3, 0x80, 0x39, 0xC0, 0x06, 0x60, 0x01, 0x98, 0x00, 0x06, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0xC0, 0x00, 0x7F, 0x80, 0x03, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0x60, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x80, 0x0E, 0xFC, 0x0F, 0x37, 0xFF, 0x80, 0x7F, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x07, 0x80, 0x01, 0xFE, 0x00, 0x38, 0x70, 0x03, 0x03, 0x00, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x30, 0x30, 0x03, 0x87, 0x00, 0x1F, 0xE0, 0x30, 0x78, 0x1F, 0x00, 0x1F, 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x00, 0xF8, 0x00, 0x0C, 0x01, 0xE0, 0x00, 0x7F, 0x80, 0x0E, 0x1C, 0x00, 0xC0, 0xC0, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x0C, 0x0E, 0x00, 0xE1, 0xC0, 0x07, 0xF8, 0x00, 0x1E, 0x00, 0x03, 0xEC, 0x01, 0xFF, 0x00, 0xE1, 0x00, 0x70, 0x00, 0x18, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x7C, 0x00, 0x3B, 0x83, 0xD8, 0x60, 0xFE, 0x0C, 0x33, 0x03, 0x98, 0xC0, 0x66, 0x30, 0x0D, 0x8C, 0x03, 0xC3, 0x00, 0x70, 0x60, 0x1C, 0x1C, 0x0F, 0x03, 0x87, 0x7C, 0x7F, 0x9F, 0x07, 0x80, 0x00, 0xFE, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x3E, 0x3C, 0x70, 0xE1, 0xC3, 0x87, 0x00, 0x06, 0x1C, 0x30, 0xE1, 0x87, 0x0E, 0x18, 0x70, 0xE1, 0xC3, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x0C, 0x1C, 0x38, 0x70, 0x60, 0xE1, 0xC1, 0x83, 0x83, 0x06, 0x06, 0x04, 0xC1, 0xC1, 0x83, 0x83, 0x07, 0x0E, 0x0C, 0x1C, 0x38, 0x70, 0xE0, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0x87, 0x0E, 0x1C, 0x30, 0x61, 0xC3, 0x0E, 0x18, 0x70, 0xC1, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x10, 0x30, 0x3F, 0x8C, 0x7C, 0xFF, 0xFC, 0x07, 0xF8, 0x00, 0x78, 0x00, 0x1F, 0x00, 0x0C, 0xC0, 0x06, 0x18, 0x03, 0x87, 0x00, 0xC0, 0xC0, 0x60, 0x18, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x1F, 0x8F, 0x87, 0xC7, 0xC3, 0xE1, 0xE1, 0xF0, 0xF0, 0x78, 0x38, 0x3C, 0x1C, 0x0E, 0x06, 0x00, 0x7F, 0xFF, 0xFD, 0xFF, 0xFF, 0xF0, 0x7D, 0xFF, 0xFF, 0xFF, 0xEF, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x18, 0x00, 0x06, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x18, 0x00, 0x06, 0x00, 0x03, 0x80, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x18, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x03, 0xF0, 0x03, 0xFF, 0x01, 0xE1, 0xE0, 0xE0, 0x18, 0x30, 0x03, 0x1C, 0x00, 0xE6, 0x00, 0x19, 0x80, 0x06, 0xE0, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00, 0x76, 0x00, 0x19, 0x80, 0x06, 0x70, 0x03, 0x8C, 0x00, 0xC3, 0x80, 0x60, 0x78, 0x78, 0x0F, 0xFC, 0x00, 0xFC, 0x00, 0x03, 0x80, 0x07, 0x80, 0x0F, 0x80, 0x1D, 0x80, 0x39, 0x80, 0x71, 0x80, 0xE1, 0x80, 0xC1, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xF0, 0x03, 0xFF, 0x01, 0xC0, 0xE0, 0xC0, 0x1C, 0x60, 0x03, 0xB8, 0x00, 0x6C, 0x00, 0x0F, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x18, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0xD0, 0x00, 0x38, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF8, 0x01, 0xFF, 0xC0, 0x70, 0x3C, 0x18, 0x01, 0xC6, 0x00, 0x18, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x06, 0x00, 0x01, 0xC0, 0x00, 0x70, 0x01, 0xFC, 0x00, 0x3F, 0x00, 0x00, 0x78, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0xD8, 0x00, 0x3B, 0x80, 0x0E, 0x3E, 0x07, 0x81, 0xFF, 0xE0, 0x07, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x7C, 0x00, 0x6C, 0x00, 0xCC, 0x00, 0x8C, 0x01, 0x8C, 0x03, 0x0C, 0x03, 0x0C, 0x06, 0x0C, 0x04, 0x0C, 0x0C, 0x0C, 0x08, 0x0C, 0x10, 0x0C, 0x30, 0x0C, 0x20, 0x0C, 0x60, 0x0C, 0x40, 0x0C, 0x80, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0xFF, 0x00, 0xFF, 0x3F, 0xFF, 0x07, 0xFF, 0xE0, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC7, 0xE0, 0x1F, 0xFF, 0x03, 0x80, 0x70, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x06, 0xC0, 0x01, 0xDC, 0x00, 0x71, 0xF0, 0x3C, 0x0F, 0xFF, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x80, 0x3F, 0xF0, 0x3E, 0x00, 0x1E, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x18, 0x00, 0x06, 0x00, 0x03, 0x80, 0x00, 0xC1, 0xF8, 0x31, 0xFF, 0x0C, 0xF0, 0xF3, 0x70, 0x0C, 0xD8, 0x01, 0xBC, 0x00, 0x6E, 0x00, 0x0F, 0x80, 0x03, 0xC0, 0x00, 0xD8, 0x00, 0x36, 0x00, 0x0D, 0x80, 0x03, 0x30, 0x01, 0x8E, 0x00, 0x61, 0xC0, 0x30, 0x38, 0x38, 0x07, 0xFC, 0x00, 0x7C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x18, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x18, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x03, 0xF0, 0x03, 0xFF, 0x03, 0xC0, 0xF1, 0xC0, 0x0E, 0x60, 0x01, 0xB8, 0x00, 0x7C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x36, 0x00, 0x18, 0xC0, 0x0C, 0x1C, 0x0E, 0x03, 0xFF, 0x00, 0xFF, 0xC0, 0x70, 0x38, 0x30, 0x03, 0x18, 0x00, 0x66, 0x00, 0x1B, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0x60, 0x01, 0x98, 0x00, 0xE3, 0x00, 0x70, 0x70, 0x38, 0x0F, 0xFC, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x03, 0xFE, 0x01, 0xC1, 0xC0, 0xC0, 0x38, 0x60, 0x07, 0x18, 0x00, 0xCC, 0x00, 0x1B, 0x00, 0x06, 0xC0, 0x01, 0xB0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x07, 0x60, 0x03, 0xD8, 0x01, 0xB3, 0x00, 0xCC, 0xF0, 0xF3, 0x0F, 0xF8, 0xC1, 0xF8, 0x30, 0x00, 0x1C, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x07, 0x80, 0x07, 0xC0, 0xFF, 0xC0, 0x1F, 0xC0, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xEF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0xFF, 0xFF, 0xFF, 0xF7, 0xC0, 0x0F, 0x87, 0xF1, 0xFC, 0x7F, 0x1F, 0xC3, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF1, 0xF8, 0x7C, 0x3F, 0x0F, 0x83, 0xE0, 0xF0, 0x7C, 0x1E, 0x07, 0x81, 0xC0, 0xF0, 0x38, 0x04, 0x00, 0x00, 0x00, 0x18, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x20, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x0E, 0x00, 0x00, 0x60, 0x00, 0x00, 0x07, 0xF0, 0x1F, 0xFE, 0x3E, 0x07, 0x98, 0x00, 0xEC, 0x00, 0x36, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x01, 0xC0, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0xC0, 0x07, 0xC0, 0x07, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0x78, 0x00, 0x03, 0xF0, 0x03, 0xFF, 0x01, 0xE0, 0xE0, 0xE0, 0x1C, 0x30, 0x03, 0x1C, 0x00, 0x66, 0x00, 0x19, 0x80, 0x06, 0xC0, 0x01, 0xB0, 0x07, 0xEC, 0x07, 0xFB, 0x03, 0xC6, 0xC1, 0xC1, 0xB0, 0xE0, 0x6C, 0x30, 0x1B, 0x0C, 0x06, 0xC3, 0x01, 0xB0, 0xC0, 0x6C, 0x18, 0x1B, 0x07, 0x86, 0xC0, 0xFF, 0xF0, 0x0F, 0xFC, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x18, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x80, 0xC0, 0xFF, 0xF0, 0x0F, 0xE0, 0x07, 0xFF, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x01, 0x98, 0x00, 0x00, 0x11, 0x80, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x60, 0x60, 0x00, 0x06, 0x06, 0x00, 0x00, 0xC0, 0x30, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x80, 0x30, 0x00, 0x18, 0x01, 0x80, 0x01, 0x80, 0x18, 0x00, 0x3F, 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x00, 0x20, 0x00, 0xC0, 0x06, 0x00, 0x06, 0x00, 0x60, 0x00, 0x60, 0x0C, 0x00, 0x06, 0x00, 0xC0, 0x00, 0x30, 0x0C, 0x00, 0x03, 0x01, 0x80, 0x00, 0x18, 0x7F, 0xC0, 0x3F, 0xF7, 0xFC, 0x03, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x01, 0x80, 0x0E, 0x06, 0x00, 0x1C, 0x18, 0x00, 0x38, 0x60, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x06, 0x18, 0x00, 0x38, 0x60, 0x01, 0xC1, 0x80, 0x1E, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0xC0, 0x60, 0x03, 0xC1, 0x80, 0x03, 0x86, 0x00, 0x06, 0x18, 0x00, 0x1C, 0x60, 0x00, 0x31, 0x80, 0x00, 0xC6, 0x00, 0x03, 0x18, 0x00, 0x0C, 0x60, 0x00, 0x61, 0x80, 0x03, 0x86, 0x00, 0x1C, 0xFF, 0xFF, 0xE3, 0xFF, 0xFE, 0x00, 0x00, 0xFC, 0x00, 0x0F, 0xFE, 0x60, 0xF0, 0x3D, 0x87, 0x00, 0x3E, 0x38, 0x00, 0x38, 0xC0, 0x00, 0xE7, 0x00, 0x01, 0x98, 0x00, 0x06, 0x60, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0xC7, 0x00, 0x06, 0x0E, 0x00, 0x70, 0x1E, 0x07, 0x80, 0x3F, 0xFC, 0x00, 0x1F, 0x80, 0xFF, 0xFE, 0x03, 0xFF, 0xFE, 0x03, 0x00, 0x3C, 0x0C, 0x00, 0x38, 0x30, 0x00, 0x70, 0xC0, 0x00, 0xC3, 0x00, 0x03, 0x8C, 0x00, 0x06, 0x30, 0x00, 0x1C, 0xC0, 0x00, 0x33, 0x00, 0x00, 0xCC, 0x00, 0x03, 0x30, 0x00, 0x0C, 0xC0, 0x00, 0x33, 0x00, 0x00, 0xCC, 0x00, 0x03, 0x30, 0x00, 0x0C, 0xC0, 0x00, 0x33, 0x00, 0x01, 0x8C, 0x00, 0x06, 0x30, 0x00, 0x30, 0xC0, 0x01, 0xC3, 0x00, 0x0E, 0x0C, 0x00, 0xF0, 0xFF, 0xFF, 0x83, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xE1, 0x80, 0x01, 0x86, 0x00, 0x06, 0x18, 0x00, 0x18, 0x60, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x60, 0x30, 0x01, 0x80, 0xC0, 0x07, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0x60, 0x30, 0x01, 0x80, 0xC0, 0x06, 0x03, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0xC6, 0x00, 0x03, 0x18, 0x00, 0x0C, 0x60, 0x00, 0x31, 0x80, 0x00, 0xC6, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x80, 0x00, 0xC6, 0x00, 0x03, 0x18, 0x00, 0x0C, 0x60, 0x00, 0x31, 0x80, 0x00, 0xC6, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x60, 0x30, 0x01, 0x80, 0xC0, 0x07, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0x60, 0x30, 0x01, 0x80, 0xC0, 0x06, 0x03, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xF0, 0x03, 0xFF, 0xC0, 0x00, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0x98, 0x1E, 0x03, 0xF0, 0x70, 0x01, 0xE1, 0x80, 0x01, 0xC6, 0x00, 0x01, 0x9C, 0x00, 0x03, 0x30, 0x00, 0x00, 0x60, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x00, 0x1B, 0x00, 0x00, 0x37, 0x00, 0x00, 0x66, 0x00, 0x00, 0xCC, 0x00, 0x01, 0x8C, 0x00, 0x03, 0x1C, 0x00, 0x06, 0x1E, 0x00, 0x0C, 0x0F, 0x00, 0xF8, 0x0F, 0xFF, 0xC0, 0x03, 0xFC, 0x00, 0x7F, 0x01, 0xFC, 0xFE, 0x03, 0xF8, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30, 0x00, 0x60, 0x60, 0x00, 0xC0, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30, 0x00, 0x60, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0xFF, 0x01, 0xFF, 0xFE, 0x03, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFE, 0x01, 0xFF, 0xFC, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x60, 0x00, 0x60, 0xC0, 0x00, 0xC1, 0x80, 0x01, 0x83, 0x00, 0x03, 0x06, 0x00, 0x06, 0x0C, 0x00, 0x0C, 0x18, 0x00, 0x30, 0x38, 0x00, 0x60, 0x38, 0x01, 0x80, 0x3C, 0x0E, 0x00, 0x3F, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0x81, 0xFE, 0xFF, 0x81, 0xFE, 0x18, 0x00, 0x30, 0x18, 0x00, 0xE0, 0x18, 0x01, 0xC0, 0x18, 0x03, 0x80, 0x18, 0x07, 0x00, 0x18, 0x0E, 0x00, 0x18, 0x18, 0x00, 0x18, 0x70, 0x00, 0x18, 0xE0, 0x00, 0x19, 0xE0, 0x00, 0x1B, 0xF8, 0x00, 0x1F, 0x1C, 0x00, 0x1C, 0x06, 0x00, 0x18, 0x03, 0x00, 0x18, 0x03, 0x80, 0x18, 0x01, 0x80, 0x18, 0x00, 0xC0, 0x18, 0x00, 0xC0, 0x18, 0x00, 0x60, 0x18, 0x00, 0x60, 0x18, 0x00, 0x70, 0x18, 0x00, 0x30, 0xFF, 0x80, 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xF0, 0x07, 0xFF, 0x80, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x18, 0x30, 0x00, 0xC1, 0x80, 0x06, 0x0C, 0x00, 0x30, 0x60, 0x01, 0x83, 0x00, 0x0C, 0x18, 0x00, 0x60, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFC, 0x00, 0x0F, 0xFF, 0x00, 0x03, 0xF3, 0x60, 0x01, 0xB0, 0xD8, 0x00, 0x6C, 0x33, 0x00, 0x33, 0x0C, 0xC0, 0x0C, 0xC3, 0x38, 0x07, 0x30, 0xC6, 0x01, 0x8C, 0x31, 0xC0, 0xE3, 0x0C, 0x30, 0x30, 0xC3, 0x0C, 0x0C, 0x30, 0xC1, 0x86, 0x0C, 0x30, 0x61, 0x83, 0x0C, 0x0C, 0xC0, 0xC3, 0x03, 0x30, 0x30, 0xC0, 0x78, 0x0C, 0x30, 0x1E, 0x03, 0x0C, 0x03, 0x00, 0xC3, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x0C, 0x30, 0x00, 0x03, 0x0C, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x0C, 0xFF, 0x00, 0x3F, 0xFF, 0xC0, 0x0F, 0xF0, 0xFC, 0x00, 0xFF, 0xFC, 0x00, 0xFF, 0x1E, 0x00, 0x0C, 0x1F, 0x00, 0x0C, 0x1B, 0x00, 0x0C, 0x19, 0x80, 0x0C, 0x19, 0xC0, 0x0C, 0x18, 0xC0, 0x0C, 0x18, 0x60, 0x0C, 0x18, 0x60, 0x0C, 0x18, 0x30, 0x0C, 0x18, 0x38, 0x0C, 0x18, 0x18, 0x0C, 0x18, 0x0C, 0x0C, 0x18, 0x0E, 0x0C, 0x18, 0x06, 0x0C, 0x18, 0x03, 0x0C, 0x18, 0x03, 0x0C, 0x18, 0x01, 0x8C, 0x18, 0x01, 0xCC, 0x18, 0x00, 0xCC, 0x18, 0x00, 0x6C, 0x18, 0x00, 0x7C, 0x18, 0x00, 0x3C, 0x7F, 0x80, 0x1C, 0x7F, 0x80, 0x1C, 0x00, 0x7E, 0x00, 0x01, 0xFF, 0xC0, 0x07, 0x81, 0xE0, 0x0E, 0x00, 0x70, 0x1C, 0x00, 0x38, 0x38, 0x00, 0x1C, 0x30, 0x00, 0x0C, 0x70, 0x00, 0x0E, 0x60, 0x00, 0x06, 0x60, 0x00, 0x06, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0x60, 0x00, 0x06, 0x60, 0x00, 0x06, 0x70, 0x00, 0x0E, 0x30, 0x00, 0x0C, 0x38, 0x00, 0x1C, 0x1C, 0x00, 0x38, 0x0E, 0x00, 0x70, 0x07, 0x81, 0xE0, 0x03, 0xFF, 0xC0, 0x00, 0x7E, 0x00, 0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x06, 0x00, 0x78, 0x30, 0x00, 0xE1, 0x80, 0x03, 0x0C, 0x00, 0x0C, 0x60, 0x00, 0x63, 0x00, 0x03, 0x18, 0x00, 0x18, 0xC0, 0x01, 0xC6, 0x00, 0x0C, 0x30, 0x00, 0xC1, 0x80, 0x1E, 0x0F, 0xFF, 0xC0, 0x7F, 0xF8, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xF0, 0x07, 0xFF, 0x80, 0x00, 0x00, 0x7E, 0x00, 0x01, 0xFF, 0x80, 0x07, 0x81, 0xE0, 0x0E, 0x00, 0x70, 0x1C, 0x00, 0x38, 0x38, 0x00, 0x1C, 0x30, 0x00, 0x0C, 0x70, 0x00, 0x0E, 0x60, 0x00, 0x06, 0x60, 0x00, 0x06, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0x60, 0x00, 0x06, 0x60, 0x00, 0x06, 0x70, 0x00, 0x0E, 0x30, 0x00, 0x0C, 0x18, 0x00, 0x1C, 0x0C, 0x00, 0x38, 0x06, 0x00, 0x70, 0x03, 0x81, 0xE0, 0x00, 0xFF, 0xC0, 0x00, 0x7E, 0x00, 0x00, 0xE0, 0x00, 0x03, 0xFF, 0x87, 0x07, 0xFF, 0xFE, 0x07, 0x00, 0xF8, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x80, 0x18, 0x03, 0xC0, 0x18, 0x00, 0xE0, 0x18, 0x00, 0x60, 0x18, 0x00, 0x30, 0x18, 0x00, 0x30, 0x18, 0x00, 0x30, 0x18, 0x00, 0x30, 0x18, 0x00, 0x70, 0x18, 0x00, 0x60, 0x18, 0x01, 0xC0, 0x18, 0x07, 0x80, 0x1F, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0x18, 0x0E, 0x00, 0x18, 0x07, 0x00, 0x18, 0x03, 0x80, 0x18, 0x01, 0xC0, 0x18, 0x00, 0xE0, 0x18, 0x00, 0x60, 0x18, 0x00, 0x30, 0x18, 0x00, 0x30, 0x18, 0x00, 0x18, 0xFF, 0x80, 0x1F, 0xFF, 0x80, 0x0F, 0x03, 0xF8, 0x00, 0xFF, 0xE6, 0x1E, 0x07, 0xE3, 0x80, 0x1E, 0x30, 0x00, 0xE6, 0x00, 0x06, 0x60, 0x00, 0x66, 0x00, 0x06, 0x60, 0x00, 0x07, 0x00, 0x00, 0x30, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x30, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xE0, 0x00, 0x7E, 0x00, 0x06, 0xF8, 0x01, 0xED, 0xE0, 0x7C, 0xCF, 0xFF, 0x00, 0x3F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x03, 0x00, 0xF0, 0x0C, 0x03, 0xC0, 0x30, 0x0F, 0x00, 0xC0, 0x3C, 0x03, 0x00, 0xC0, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x0F, 0xFF, 0xC0, 0x3F, 0xFF, 0x00, 0xFF, 0x01, 0xFF, 0xFE, 0x03, 0xFC, 0xC0, 0x00, 0x61, 0x80, 0x00, 0xC3, 0x00, 0x01, 0x86, 0x00, 0x03, 0x0C, 0x00, 0x06, 0x18, 0x00, 0x0C, 0x30, 0x00, 0x18, 0x60, 0x00, 0x30, 0xC0, 0x00, 0x61, 0x80, 0x00, 0xC3, 0x00, 0x01, 0x86, 0x00, 0x03, 0x0C, 0x00, 0x06, 0x18, 0x00, 0x0C, 0x30, 0x00, 0x18, 0x60, 0x00, 0x30, 0xC0, 0x00, 0x61, 0x80, 0x00, 0xC3, 0x80, 0x03, 0x83, 0x00, 0x06, 0x07, 0x00, 0x1C, 0x07, 0x00, 0x70, 0x07, 0x83, 0xC0, 0x07, 0xFF, 0x00, 0x03, 0xF8, 0x00, 0x7F, 0xC0, 0x3F, 0xF7, 0xFC, 0x03, 0xFF, 0x18, 0x00, 0x01, 0x80, 0xC0, 0x00, 0x30, 0x0C, 0x00, 0x03, 0x00, 0x60, 0x00, 0x30, 0x06, 0x00, 0x06, 0x00, 0x60, 0x00, 0x60, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x80, 0x0C, 0x00, 0x18, 0x01, 0x80, 0x01, 0x80, 0x18, 0x00, 0x0C, 0x03, 0x00, 0x00, 0xC0, 0x30, 0x00, 0x0E, 0x03, 0x00, 0x00, 0x60, 0x60, 0x00, 0x06, 0x06, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x30, 0x80, 0x00, 0x01, 0x98, 0x00, 0x00, 0x19, 0x80, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xE0, 0x00, 0xFF, 0x80, 0x7F, 0xFF, 0xE0, 0x1F, 0xF3, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x0C, 0x30, 0x00, 0x03, 0x0C, 0x03, 0x80, 0xC3, 0x01, 0xE0, 0x30, 0x60, 0x78, 0x0C, 0x18, 0x1F, 0x02, 0x06, 0x04, 0xC0, 0x81, 0x83, 0x30, 0x60, 0x60, 0xCC, 0x18, 0x18, 0x31, 0x86, 0x06, 0x18, 0x61, 0x81, 0x86, 0x18, 0x60, 0x71, 0x87, 0x18, 0x0C, 0x40, 0xC6, 0x03, 0x30, 0x31, 0x00, 0xCC, 0x0C, 0xC0, 0x33, 0x01, 0xB0, 0x0D, 0x80, 0x6C, 0x03, 0x60, 0x1B, 0x00, 0xD8, 0x06, 0xC0, 0x34, 0x00, 0xF0, 0x07, 0x00, 0x3C, 0x01, 0xC0, 0x0E, 0x00, 0x7F, 0x00, 0xFF, 0x7F, 0x00, 0xFF, 0x18, 0x00, 0x18, 0x0C, 0x00, 0x38, 0x0E, 0x00, 0x70, 0x07, 0x00, 0x60, 0x03, 0x00, 0xC0, 0x01, 0x81, 0x80, 0x01, 0xC3, 0x80, 0x00, 0xE7, 0x00, 0x00, 0x76, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x66, 0x00, 0x00, 0xC3, 0x00, 0x01, 0x81, 0x80, 0x03, 0x81, 0xC0, 0x07, 0x00, 0xE0, 0x06, 0x00, 0x60, 0x0C, 0x00, 0x30, 0x18, 0x00, 0x18, 0x38, 0x00, 0x1C, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x18, 0x00, 0x18, 0x0C, 0x00, 0x30, 0x0E, 0x00, 0x70, 0x06, 0x00, 0x60, 0x03, 0x00, 0xC0, 0x03, 0x81, 0xC0, 0x01, 0x81, 0x80, 0x00, 0xC3, 0x00, 0x00, 0xE7, 0x00, 0x00, 0x66, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x07, 0xFF, 0xE0, 0x07, 0xFF, 0xE0, 0x7F, 0xFF, 0x9F, 0xFF, 0xE6, 0x00, 0x19, 0x80, 0x0C, 0x60, 0x07, 0x18, 0x03, 0x86, 0x00, 0xC1, 0x80, 0x70, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x03, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x06, 0x00, 0x03, 0x80, 0x31, 0xC0, 0x0C, 0x60, 0x03, 0x30, 0x00, 0xDC, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xFF, 0xFC, 0xC0, 0x00, 0x30, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x80, 0x00, 0x60, 0x00, 0x1C, 0x00, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x18, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x0C, 0xFF, 0xFC, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0xFF, 0xFC, 0x00, 0x40, 0x00, 0x30, 0x00, 0x1E, 0x00, 0x0E, 0xC0, 0x07, 0x38, 0x01, 0x87, 0x00, 0xC0, 0xC0, 0x60, 0x18, 0x38, 0x03, 0x1C, 0x00, 0xE6, 0x00, 0x1F, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xE0, 0x70, 0x3C, 0x0E, 0x07, 0x03, 0x01, 0xFC, 0x00, 0x7F, 0xFC, 0x01, 0xC0, 0x3C, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x0F, 0xF9, 0x81, 0xFF, 0xFE, 0x0F, 0x80, 0x38, 0x70, 0x00, 0x63, 0x80, 0x01, 0x8C, 0x00, 0x06, 0x30, 0x00, 0x18, 0xC0, 0x00, 0xE3, 0x00, 0x07, 0x86, 0x00, 0x76, 0x1E, 0x07, 0x9F, 0x3F, 0xF8, 0x7C, 0x3F, 0x80, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x1F, 0x80, 0x18, 0xFF, 0xC0, 0x33, 0x81, 0xC0, 0x6E, 0x01, 0xC0, 0xF0, 0x00, 0xC1, 0xE0, 0x01, 0xC3, 0x80, 0x01, 0x87, 0x00, 0x03, 0x8C, 0x00, 0x03, 0x18, 0x00, 0x06, 0x30, 0x00, 0x0C, 0x60, 0x00, 0x18, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x63, 0x80, 0x01, 0x87, 0x00, 0x03, 0x0F, 0x00, 0x0E, 0x1F, 0x00, 0x38, 0x37, 0x00, 0xE3, 0xE7, 0x03, 0x87, 0xC7, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x3F, 0xF9, 0x83, 0xC0, 0xFC, 0x38, 0x01, 0xE3, 0x00, 0x07, 0x38, 0x00, 0x19, 0x80, 0x00, 0xDC, 0x00, 0x06, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x70, 0x00, 0x01, 0x80, 0x00, 0xC7, 0x00, 0x1E, 0x1E, 0x03, 0xC0, 0x7F, 0xFC, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x01, 0xF8, 0x18, 0x07, 0xFE, 0x18, 0x0F, 0x07, 0x98, 0x1C, 0x01, 0xD8, 0x38, 0x00, 0xF8, 0x70, 0x00, 0x78, 0x60, 0x00, 0x38, 0xE0, 0x00, 0x38, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0x60, 0x00, 0x38, 0x60, 0x00, 0x38, 0x70, 0x00, 0x78, 0x38, 0x00, 0xD8, 0x1C, 0x01, 0xD8, 0x0F, 0x07, 0x9F, 0x07, 0xFE, 0x1F, 0x01, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x3F, 0xF8, 0x07, 0x80, 0xF0, 0x70, 0x01, 0xC3, 0x00, 0x07, 0x30, 0x00, 0x19, 0x80, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x01, 0xC0, 0x00, 0xC7, 0x00, 0x0E, 0x1E, 0x03, 0xE0, 0x3F, 0xFC, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0xC0, 0x3F, 0xFC, 0x0E, 0x00, 0x03, 0x80, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0xFF, 0xFF, 0x9F, 0xFF, 0xF0, 0x18, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x03, 0xFF, 0xFC, 0x7F, 0xFF, 0x80, 0x01, 0xF8, 0x00, 0x0F, 0xFC, 0x7C, 0x38, 0x1C, 0xF8, 0xE0, 0x0D, 0x83, 0x00, 0x0F, 0x0E, 0x00, 0x1E, 0x18, 0x00, 0x1C, 0x70, 0x00, 0x38, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x63, 0x00, 0x00, 0xC6, 0x00, 0x01, 0x8C, 0x00, 0x03, 0x18, 0x00, 0x06, 0x18, 0x00, 0x1C, 0x30, 0x00, 0x38, 0x30, 0x00, 0xF0, 0x70, 0x03, 0x60, 0x78, 0x1C, 0xC0, 0x3F, 0xF1, 0x80, 0x1F, 0x83, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x3F, 0xF8, 0x00, 0x7F, 0xC0, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x3F, 0x00, 0x18, 0xFF, 0x80, 0x37, 0x03, 0x80, 0x7C, 0x03, 0x80, 0xF0, 0x03, 0x81, 0xC0, 0x03, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30, 0x00, 0x60, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30, 0x00, 0x63, 0xFC, 0x07, 0xFF, 0xF8, 0x0F, 0xF0, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x03, 0xFC, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x70, 0x03, 0x80, 0x1C, 0xFF, 0xE3, 0xFF, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x1F, 0xE0, 0x60, 0x7F, 0x81, 0x80, 0x60, 0x06, 0x07, 0x00, 0x18, 0x38, 0x00, 0x61, 0xC0, 0x01, 0x8E, 0x00, 0x06, 0x70, 0x00, 0x1B, 0x80, 0x00, 0x7F, 0x00, 0x01, 0xCE, 0x00, 0x06, 0x1C, 0x00, 0x18, 0x38, 0x00, 0x60, 0x70, 0x01, 0x80, 0xE0, 0x06, 0x01, 0xC0, 0x18, 0x03, 0x80, 0x60, 0x07, 0x0F, 0x80, 0x7F, 0xFE, 0x01, 0xFF, 0x3F, 0xC0, 0x0F, 0xF0, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xF0, 0x3C, 0x0F, 0x9F, 0x87, 0xE0, 0xFB, 0x1C, 0xC7, 0x01, 0xE0, 0xD8, 0x38, 0x1C, 0x07, 0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x8F, 0xE0, 0x7C, 0x1F, 0xFE, 0x07, 0xC1, 0xF0, 0x00, 0x1F, 0x00, 0xF8, 0xFF, 0x81, 0xF3, 0x83, 0x80, 0x6C, 0x03, 0x80, 0xF0, 0x03, 0x81, 0xC0, 0x03, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30, 0x00, 0x60, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30, 0x00, 0x67, 0xFC, 0x03, 0xFF, 0xF8, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0xF0, 0x3C, 0x07, 0x00, 0x38, 0x38, 0x00, 0x71, 0xC0, 0x00, 0xE6, 0x00, 0x01, 0x98, 0x00, 0x06, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x36, 0x00, 0x01, 0x98, 0x00, 0x06, 0x70, 0x00, 0x38, 0xE0, 0x01, 0xC1, 0xC0, 0x0E, 0x03, 0xC0, 0xF0, 0x07, 0xFF, 0x80, 0x03, 0xF0, 0x00, 0x00, 0x3F, 0x01, 0xF1, 0xFF, 0x83, 0xE7, 0x03, 0x80, 0xD8, 0x01, 0x81, 0xE0, 0x01, 0x83, 0xC0, 0x03, 0x87, 0x00, 0x03, 0x0E, 0x00, 0x07, 0x18, 0x00, 0x06, 0x30, 0x00, 0x0C, 0x60, 0x00, 0x18, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x63, 0x00, 0x00, 0xC7, 0x00, 0x03, 0x0E, 0x00, 0x06, 0x1E, 0x00, 0x18, 0x36, 0x00, 0x70, 0x67, 0x03, 0xC0, 0xC7, 0xFE, 0x01, 0x83, 0xF0, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x0F, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xFF, 0x1F, 0x0F, 0x07, 0x9F, 0x1C, 0x01, 0xD8, 0x38, 0x00, 0x78, 0x70, 0x00, 0x78, 0x60, 0x00, 0x38, 0xE0, 0x00, 0x38, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0x60, 0x00, 0x38, 0x70, 0x00, 0x78, 0x30, 0x00, 0x78, 0x1C, 0x01, 0xD8, 0x0F, 0x07, 0x98, 0x07, 0xFF, 0x18, 0x01, 0xFC, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x03, 0xFF, 0x00, 0x03, 0xFF, 0x7E, 0x03, 0xC3, 0xF0, 0x7F, 0x81, 0x8F, 0x0E, 0x0C, 0xE0, 0x00, 0x7E, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x3F, 0xFF, 0xC1, 0xFF, 0xFE, 0x00, 0x07, 0xF0, 0x07, 0xFF, 0x63, 0xC0, 0xF9, 0xC0, 0x0E, 0x60, 0x01, 0x98, 0x00, 0x66, 0x00, 0x19, 0xC0, 0x00, 0x38, 0x00, 0x07, 0xC0, 0x00, 0x7F, 0xC0, 0x00, 0x7C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00, 0x7F, 0x00, 0x3B, 0xF0, 0x3C, 0xDF, 0xFE, 0x00, 0xFE, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x03, 0xFF, 0xFE, 0x1F, 0xFF, 0xF0, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x07, 0x07, 0x01, 0xF0, 0x1F, 0xFF, 0x00, 0x3F, 0x80, 0xF8, 0x03, 0xF1, 0xF0, 0x07, 0xE0, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30, 0x00, 0x60, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x38, 0x18, 0x00, 0xF0, 0x18, 0x03, 0x60, 0x38, 0x3C, 0xF8, 0x3F, 0xF1, 0xF0, 0x1F, 0x00, 0x00, 0x7F, 0xC0, 0xFF, 0xDF, 0xF0, 0x3F, 0xF0, 0xC0, 0x00, 0xC0, 0x30, 0x00, 0x30, 0x06, 0x00, 0x1C, 0x01, 0x80, 0x06, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x00, 0xC0, 0x03, 0x80, 0x30, 0x00, 0x60, 0x18, 0x00, 0x18, 0x06, 0x00, 0x03, 0x03, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x18, 0x30, 0x00, 0x06, 0x18, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x33, 0x00, 0x00, 0x0E, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x7F, 0x00, 0x3F, 0xDF, 0xC0, 0x0F, 0xF1, 0x80, 0x00, 0x20, 0x60, 0x00, 0x18, 0x18, 0x00, 0x06, 0x06, 0x03, 0x01, 0x80, 0x81, 0xE0, 0x60, 0x30, 0x78, 0x10, 0x0C, 0x1E, 0x0C, 0x03, 0x0C, 0xC3, 0x00, 0xC3, 0x30, 0xC0, 0x10, 0xCC, 0x30, 0x06, 0x61, 0x98, 0x01, 0x98, 0x66, 0x00, 0x66, 0x19, 0x80, 0x0B, 0x03, 0x60, 0x03, 0xC0, 0xD0, 0x00, 0xF0, 0x1C, 0x00, 0x38, 0x07, 0x00, 0x0E, 0x01, 0xC0, 0x3F, 0x81, 0xFE, 0x3F, 0x81, 0xFE, 0x0C, 0x00, 0x38, 0x06, 0x00, 0x70, 0x03, 0x00, 0xE0, 0x01, 0x81, 0xC0, 0x00, 0xC3, 0x80, 0x00, 0x67, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x67, 0x00, 0x00, 0xC3, 0x80, 0x01, 0x81, 0xC0, 0x03, 0x00, 0xE0, 0x06, 0x00, 0x70, 0x0C, 0x00, 0x38, 0x18, 0x00, 0x1C, 0x7F, 0x81, 0xFF, 0x7F, 0x81, 0xFF, 0x7F, 0x00, 0xFF, 0x7F, 0x00, 0xFF, 0x18, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x30, 0x06, 0x00, 0x30, 0x06, 0x00, 0x60, 0x03, 0x00, 0x60, 0x03, 0x00, 0xC0, 0x01, 0x80, 0xC0, 0x01, 0x81, 0x80, 0x00, 0xC1, 0x80, 0x00, 0xC3, 0x00, 0x00, 0x63, 0x00, 0x00, 0x66, 0x00, 0x00, 0x36, 0x00, 0x00, 0x34, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xFF, 0x7F, 0xFF, 0xB0, 0x01, 0x98, 0x01, 0xCC, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xE0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x03, 0x70, 0x01, 0xB0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xE0, 0x7C, 0x0C, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x03, 0x00, 0xE0, 0xF0, 0x1E, 0x00, 0x70, 0x06, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x18, 0x03, 0xE0, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xE0, 0x1F, 0x00, 0x60, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x01, 0x80, 0x38, 0x01, 0xE0, 0x3C, 0x1C, 0x03, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0xC0, 0xF8, 0x1C, 0x00, 0x0F, 0x00, 0x03, 0xFC, 0x03, 0x70, 0xE0, 0x76, 0x07, 0x8E, 0xC0, 0x1F, 0xC0, 0x00, 0xF0}; const GFXglyph FreeMono24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 28, 0, 1}, // 0x20 ' ' {0, 5, 30, 28, 11, -28}, // 0x21 '!' {19, 16, 14, 28, 6, -28}, // 0x22 '"' {47, 19, 32, 28, 4, -29}, // 0x23 '#' {123, 18, 33, 28, 5, -29}, // 0x24 '$' {198, 20, 29, 28, 4, -27}, // 0x25 '%' {271, 18, 25, 28, 5, -23}, // 0x26 '&' {328, 7, 14, 28, 11, -28}, // 0x27 ''' {341, 7, 34, 28, 14, -27}, // 0x28 '(' {371, 7, 34, 28, 8, -27}, // 0x29 ')' {401, 18, 16, 28, 5, -27}, // 0x2A '*' {437, 20, 22, 28, 4, -23}, // 0x2B '+' {492, 9, 14, 28, 6, -6}, // 0x2C ',' {508, 22, 2, 28, 3, -13}, // 0x2D '-' {514, 7, 6, 28, 11, -4}, // 0x2E '.' {520, 18, 35, 28, 5, -30}, // 0x2F '/' {599, 18, 30, 28, 5, -28}, // 0x30 '0' {667, 16, 29, 28, 6, -28}, // 0x31 '1' {725, 18, 29, 28, 5, -28}, // 0x32 '2' {791, 19, 30, 28, 5, -28}, // 0x33 '3' {863, 16, 28, 28, 6, -27}, // 0x34 '4' {919, 19, 29, 28, 5, -27}, // 0x35 '5' {988, 18, 30, 28, 6, -28}, // 0x36 '6' {1056, 18, 28, 28, 5, -27}, // 0x37 '7' {1119, 18, 30, 28, 5, -28}, // 0x38 '8' {1187, 18, 30, 28, 6, -28}, // 0x39 '9' {1255, 7, 21, 28, 11, -19}, // 0x3A ':' {1274, 10, 27, 28, 7, -19}, // 0x3B ';' {1308, 22, 22, 28, 3, -23}, // 0x3C '<' {1369, 24, 9, 28, 2, -17}, // 0x3D '=' {1396, 21, 22, 28, 4, -23}, // 0x3E '>' {1454, 17, 28, 28, 6, -26}, // 0x3F '?' {1514, 18, 32, 28, 5, -28}, // 0x40 '@' {1586, 28, 26, 28, 0, -25}, // 0x41 'A' {1677, 22, 26, 28, 3, -25}, // 0x42 'B' {1749, 22, 28, 28, 3, -26}, // 0x43 'C' {1826, 22, 26, 28, 3, -25}, // 0x44 'D' {1898, 22, 26, 28, 3, -25}, // 0x45 'E' {1970, 22, 26, 28, 3, -25}, // 0x46 'F' {2042, 23, 28, 28, 3, -26}, // 0x47 'G' {2123, 23, 26, 28, 3, -25}, // 0x48 'H' {2198, 16, 26, 28, 6, -25}, // 0x49 'I' {2250, 23, 27, 28, 4, -25}, // 0x4A 'J' {2328, 24, 26, 28, 3, -25}, // 0x4B 'K' {2406, 21, 26, 28, 4, -25}, // 0x4C 'L' {2475, 26, 26, 28, 1, -25}, // 0x4D 'M' {2560, 24, 26, 28, 2, -25}, // 0x4E 'N' {2638, 24, 28, 28, 2, -26}, // 0x4F 'O' {2722, 21, 26, 28, 3, -25}, // 0x50 'P' {2791, 24, 32, 28, 2, -26}, // 0x51 'Q' {2887, 24, 26, 28, 3, -25}, // 0x52 'R' {2965, 20, 28, 28, 4, -26}, // 0x53 'S' {3035, 22, 26, 28, 3, -25}, // 0x54 'T' {3107, 23, 27, 28, 3, -25}, // 0x55 'U' {3185, 28, 26, 28, 0, -25}, // 0x56 'V' {3276, 26, 26, 28, 1, -25}, // 0x57 'W' {3361, 24, 26, 28, 2, -25}, // 0x58 'X' {3439, 24, 26, 28, 2, -25}, // 0x59 'Y' {3517, 18, 26, 28, 5, -25}, // 0x5A 'Z' {3576, 7, 34, 28, 13, -27}, // 0x5B '[' {3606, 18, 35, 28, 5, -30}, // 0x5C '\' {3685, 7, 34, 28, 8, -27}, // 0x5D ']' {3715, 18, 12, 28, 5, -28}, // 0x5E '^' {3742, 28, 2, 28, 0, 5}, // 0x5F '_' {3749, 8, 7, 28, 7, -29}, // 0x60 '`' {3756, 22, 22, 28, 3, -20}, // 0x61 'a' {3817, 23, 29, 28, 2, -27}, // 0x62 'b' {3901, 21, 22, 28, 4, -20}, // 0x63 'c' {3959, 24, 29, 28, 3, -27}, // 0x64 'd' {4046, 21, 22, 28, 3, -20}, // 0x65 'e' {4104, 19, 28, 28, 6, -27}, // 0x66 'f' {4171, 23, 30, 28, 3, -20}, // 0x67 'g' {4258, 23, 28, 28, 3, -27}, // 0x68 'h' {4339, 18, 29, 28, 5, -28}, // 0x69 'i' {4405, 14, 38, 28, 6, -28}, // 0x6A 'j' {4472, 22, 28, 28, 4, -27}, // 0x6B 'k' {4549, 18, 28, 28, 5, -27}, // 0x6C 'l' {4612, 28, 21, 28, 0, -20}, // 0x6D 'm' {4686, 23, 21, 28, 2, -20}, // 0x6E 'n' {4747, 22, 22, 28, 3, -20}, // 0x6F 'o' {4808, 23, 30, 28, 2, -20}, // 0x70 'p' {4895, 24, 30, 28, 3, -20}, // 0x71 'q' {4985, 21, 20, 28, 5, -19}, // 0x72 'r' {5038, 18, 22, 28, 5, -20}, // 0x73 's' {5088, 21, 27, 28, 3, -25}, // 0x74 't' {5159, 23, 21, 28, 3, -19}, // 0x75 'u' {5220, 26, 20, 28, 1, -19}, // 0x76 'v' {5285, 26, 20, 28, 1, -19}, // 0x77 'w' {5350, 24, 20, 28, 2, -19}, // 0x78 'x' {5410, 24, 29, 28, 2, -19}, // 0x79 'y' {5497, 17, 20, 28, 6, -19}, // 0x7A 'z' {5540, 11, 34, 28, 8, -27}, // 0x7B '{' {5587, 2, 34, 28, 13, -27}, // 0x7C '|' {5596, 11, 34, 28, 9, -27}, // 0x7D '}' {5643, 20, 6, 28, 4, -15}}; // 0x7E '~' const GFXfont FreeMono24pt7b PROGMEM = {(uint8_t *)FreeMono24pt7bBitmaps, (GFXglyph *)FreeMono24pt7bGlyphs, 0x20, 0x7E, 47}; // Approx. 6330 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMono9pt7b.h ================================================ const uint8_t FreeMono9pt7bBitmaps[] PROGMEM = { 0xAA, 0xA8, 0x0C, 0xED, 0x24, 0x92, 0x48, 0x24, 0x48, 0x91, 0x2F, 0xE4, 0x89, 0x7F, 0x28, 0x51, 0x22, 0x40, 0x08, 0x3E, 0x62, 0x40, 0x30, 0x0E, 0x01, 0x81, 0xC3, 0xBE, 0x08, 0x08, 0x71, 0x12, 0x23, 0x80, 0x23, 0xB8, 0x0E, 0x22, 0x44, 0x70, 0x38, 0x81, 0x02, 0x06, 0x1A, 0x65, 0x46, 0xC8, 0xEC, 0xE9, 0x24, 0x5A, 0xAA, 0xA9, 0x40, 0xA9, 0x55, 0x5A, 0x80, 0x10, 0x22, 0x4B, 0xE3, 0x05, 0x11, 0x00, 0x10, 0x20, 0x47, 0xF1, 0x02, 0x04, 0x00, 0x6B, 0x48, 0xFF, 0x00, 0xF0, 0x02, 0x08, 0x10, 0x60, 0x81, 0x04, 0x08, 0x20, 0x41, 0x02, 0x08, 0x00, 0x38, 0x8A, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x82, 0x88, 0xE0, 0x27, 0x28, 0x42, 0x10, 0x84, 0x21, 0x3E, 0x38, 0x8A, 0x08, 0x10, 0x20, 0x82, 0x08, 0x61, 0x03, 0xF8, 0x7C, 0x06, 0x02, 0x02, 0x1C, 0x06, 0x01, 0x01, 0x01, 0x42, 0x3C, 0x18, 0xA2, 0x92, 0x8A, 0x28, 0xBF, 0x08, 0x21, 0xC0, 0x7C, 0x81, 0x03, 0xE4, 0x40, 0x40, 0x81, 0x03, 0x88, 0xE0, 0x1E, 0x41, 0x04, 0x0B, 0x98, 0xB0, 0xC1, 0xC2, 0x88, 0xE0, 0xFE, 0x04, 0x08, 0x20, 0x40, 0x82, 0x04, 0x08, 0x20, 0x40, 0x38, 0x8A, 0x0C, 0x14, 0x47, 0x11, 0x41, 0x83, 0x8C, 0xE0, 0x38, 0x8A, 0x1C, 0x18, 0x68, 0xCE, 0x81, 0x04, 0x13, 0xC0, 0xF0, 0x0F, 0x6C, 0x00, 0xD2, 0xD2, 0x00, 0x03, 0x04, 0x18, 0x60, 0x60, 0x18, 0x04, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0xF0, 0x40, 0x18, 0x03, 0x00, 0x60, 0x20, 0x60, 0xC0, 0x80, 0x3D, 0x84, 0x08, 0x30, 0xC2, 0x00, 0x00, 0x00, 0x30, 0x3C, 0x46, 0x82, 0x8E, 0xB2, 0xA2, 0xA2, 0x9F, 0x80, 0x80, 0x40, 0x3C, 0x3C, 0x01, 0x40, 0x28, 0x09, 0x01, 0x10, 0x42, 0x0F, 0xC1, 0x04, 0x40, 0x9E, 0x3C, 0xFE, 0x21, 0x90, 0x48, 0x67, 0xE2, 0x09, 0x02, 0x81, 0x41, 0xFF, 0x80, 0x3E, 0xB0, 0xF0, 0x30, 0x08, 0x04, 0x02, 0x00, 0x80, 0x60, 0x8F, 0x80, 0xFE, 0x21, 0x90, 0x68, 0x14, 0x0A, 0x05, 0x02, 0x83, 0x43, 0x7F, 0x00, 0xFF, 0x20, 0x90, 0x08, 0x87, 0xC2, 0x21, 0x00, 0x81, 0x40, 0xFF, 0xC0, 0xFF, 0xA0, 0x50, 0x08, 0x87, 0xC2, 0x21, 0x00, 0x80, 0x40, 0x78, 0x00, 0x1E, 0x98, 0x6C, 0x0A, 0x00, 0x80, 0x20, 0xF8, 0x0B, 0x02, 0x60, 0x87, 0xC0, 0xE3, 0xA0, 0x90, 0x48, 0x27, 0xF2, 0x09, 0x04, 0x82, 0x41, 0x71, 0xC0, 0xF9, 0x08, 0x42, 0x10, 0x84, 0x27, 0xC0, 0x1F, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, 0x82, 0xC6, 0x78, 0xE3, 0xA1, 0x11, 0x09, 0x05, 0x83, 0x21, 0x08, 0x84, 0x41, 0x70, 0xC0, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 0x41, 0x41, 0xFF, 0xE0, 0xEC, 0x19, 0x45, 0x28, 0xA4, 0xA4, 0x94, 0x91, 0x12, 0x02, 0x40, 0x5C, 0x1C, 0xC3, 0xB0, 0x94, 0x4A, 0x24, 0x92, 0x49, 0x14, 0x8A, 0x43, 0x70, 0x80, 0x1E, 0x31, 0x90, 0x50, 0x18, 0x0C, 0x06, 0x02, 0x82, 0x63, 0x0F, 0x00, 0xFE, 0x43, 0x41, 0x41, 0x42, 0x7C, 0x40, 0x40, 0x40, 0xF0, 0x1C, 0x31, 0x90, 0x50, 0x18, 0x0C, 0x06, 0x02, 0x82, 0x63, 0x1F, 0x04, 0x07, 0x92, 0x30, 0xFE, 0x21, 0x90, 0x48, 0x24, 0x23, 0xE1, 0x10, 0x84, 0x41, 0x70, 0xC0, 0x3A, 0xCD, 0x0A, 0x03, 0x01, 0x80, 0xC1, 0xC7, 0x78, 0xFF, 0xC4, 0x62, 0x21, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x1F, 0x00, 0xE3, 0xA0, 0x90, 0x48, 0x24, 0x12, 0x09, 0x04, 0x82, 0x22, 0x0E, 0x00, 0xF1, 0xE8, 0x10, 0x82, 0x10, 0x42, 0x10, 0x22, 0x04, 0x80, 0x50, 0x0C, 0x00, 0x80, 0xF1, 0xE8, 0x09, 0x11, 0x25, 0x44, 0xA8, 0x55, 0x0C, 0xA1, 0x8C, 0x31, 0x84, 0x30, 0xE3, 0xA0, 0x88, 0x82, 0x80, 0x80, 0xC0, 0x90, 0x44, 0x41, 0x71, 0xC0, 0xE3, 0xA0, 0x88, 0x82, 0x81, 0x40, 0x40, 0x20, 0x10, 0x08, 0x1F, 0x00, 0xFD, 0x0A, 0x20, 0x81, 0x04, 0x10, 0x21, 0x83, 0xFC, 0xEA, 0xAA, 0xAA, 0xC0, 0x80, 0x81, 0x03, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0xD5, 0x55, 0x55, 0xC0, 0x10, 0x51, 0x22, 0x28, 0x20, 0xFF, 0xE0, 0x88, 0x80, 0x7E, 0x00, 0x80, 0x47, 0xEC, 0x14, 0x0A, 0x0C, 0xFB, 0xC0, 0x20, 0x10, 0x0B, 0xC6, 0x12, 0x05, 0x02, 0x81, 0x40, 0xB0, 0xB7, 0x80, 0x3A, 0x8E, 0x0C, 0x08, 0x10, 0x10, 0x9E, 0x03, 0x00, 0x80, 0x47, 0xA4, 0x34, 0x0A, 0x05, 0x02, 0x81, 0x21, 0x8F, 0x60, 0x3C, 0x43, 0x81, 0xFF, 0x80, 0x80, 0x61, 0x3E, 0x3D, 0x04, 0x3E, 0x41, 0x04, 0x10, 0x41, 0x0F, 0x80, 0x3D, 0xA1, 0xA0, 0x50, 0x28, 0x14, 0x09, 0x0C, 0x7A, 0x01, 0x01, 0x87, 0x80, 0xC0, 0x20, 0x10, 0x0B, 0xC6, 0x32, 0x09, 0x04, 0x82, 0x41, 0x20, 0xB8, 0xE0, 0x10, 0x01, 0xC0, 0x81, 0x02, 0x04, 0x08, 0x11, 0xFC, 0x10, 0x3E, 0x10, 0x84, 0x21, 0x08, 0x42, 0x3F, 0x00, 0xC0, 0x40, 0x40, 0x4F, 0x44, 0x58, 0x70, 0x48, 0x44, 0x42, 0xC7, 0x70, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, 0x10, 0x23, 0xF8, 0xB7, 0x64, 0x62, 0x31, 0x18, 0x8C, 0x46, 0x23, 0x91, 0x5E, 0x31, 0x90, 0x48, 0x24, 0x12, 0x09, 0x05, 0xC7, 0x3E, 0x31, 0xA0, 0x30, 0x18, 0x0C, 0x05, 0x8C, 0x7C, 0xDE, 0x30, 0x90, 0x28, 0x14, 0x0A, 0x05, 0x84, 0xBC, 0x40, 0x20, 0x38, 0x00, 0x3D, 0xA1, 0xA0, 0x50, 0x28, 0x14, 0x09, 0x0C, 0x7A, 0x01, 0x00, 0x80, 0xE0, 0xCE, 0xA1, 0x82, 0x04, 0x08, 0x10, 0x7C, 0x3A, 0x8D, 0x0B, 0x80, 0xF0, 0x70, 0xDE, 0x40, 0x40, 0xFC, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 0x3E, 0xC3, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x3D, 0xE3, 0xA0, 0x90, 0x84, 0x42, 0x20, 0xA0, 0x50, 0x10, 0xE3, 0xC0, 0x92, 0x4B, 0x25, 0x92, 0xA9, 0x98, 0x44, 0xE3, 0x31, 0x05, 0x01, 0x01, 0x41, 0x11, 0x05, 0xC7, 0xE3, 0xA0, 0x90, 0x84, 0x42, 0x40, 0xA0, 0x60, 0x10, 0x10, 0x08, 0x3E, 0x00, 0xFD, 0x08, 0x20, 0x82, 0x08, 0x10, 0xBF, 0x29, 0x24, 0xA2, 0x49, 0x26, 0xFF, 0xF8, 0x89, 0x24, 0x8A, 0x49, 0x2C, 0x61, 0x24, 0x30}; const GFXglyph FreeMono9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 11, 0, 1}, // 0x20 ' ' {0, 2, 11, 11, 4, -10}, // 0x21 '!' {3, 6, 5, 11, 2, -10}, // 0x22 '"' {7, 7, 12, 11, 2, -10}, // 0x23 '#' {18, 8, 12, 11, 1, -10}, // 0x24 '$' {30, 7, 11, 11, 2, -10}, // 0x25 '%' {40, 7, 10, 11, 2, -9}, // 0x26 '&' {49, 3, 5, 11, 4, -10}, // 0x27 ''' {51, 2, 13, 11, 5, -10}, // 0x28 '(' {55, 2, 13, 11, 4, -10}, // 0x29 ')' {59, 7, 7, 11, 2, -10}, // 0x2A '*' {66, 7, 7, 11, 2, -8}, // 0x2B '+' {73, 3, 5, 11, 2, -1}, // 0x2C ',' {75, 9, 1, 11, 1, -5}, // 0x2D '-' {77, 2, 2, 11, 4, -1}, // 0x2E '.' {78, 7, 13, 11, 2, -11}, // 0x2F '/' {90, 7, 11, 11, 2, -10}, // 0x30 '0' {100, 5, 11, 11, 3, -10}, // 0x31 '1' {107, 7, 11, 11, 2, -10}, // 0x32 '2' {117, 8, 11, 11, 1, -10}, // 0x33 '3' {128, 6, 11, 11, 3, -10}, // 0x34 '4' {137, 7, 11, 11, 2, -10}, // 0x35 '5' {147, 7, 11, 11, 2, -10}, // 0x36 '6' {157, 7, 11, 11, 2, -10}, // 0x37 '7' {167, 7, 11, 11, 2, -10}, // 0x38 '8' {177, 7, 11, 11, 2, -10}, // 0x39 '9' {187, 2, 8, 11, 4, -7}, // 0x3A ':' {189, 3, 11, 11, 3, -7}, // 0x3B ';' {194, 8, 8, 11, 1, -8}, // 0x3C '<' {202, 9, 4, 11, 1, -6}, // 0x3D '=' {207, 9, 8, 11, 1, -8}, // 0x3E '>' {216, 7, 10, 11, 2, -9}, // 0x3F '?' {225, 8, 12, 11, 2, -10}, // 0x40 '@' {237, 11, 10, 11, 0, -9}, // 0x41 'A' {251, 9, 10, 11, 1, -9}, // 0x42 'B' {263, 9, 10, 11, 1, -9}, // 0x43 'C' {275, 9, 10, 11, 1, -9}, // 0x44 'D' {287, 9, 10, 11, 1, -9}, // 0x45 'E' {299, 9, 10, 11, 1, -9}, // 0x46 'F' {311, 10, 10, 11, 1, -9}, // 0x47 'G' {324, 9, 10, 11, 1, -9}, // 0x48 'H' {336, 5, 10, 11, 3, -9}, // 0x49 'I' {343, 8, 10, 11, 2, -9}, // 0x4A 'J' {353, 9, 10, 11, 1, -9}, // 0x4B 'K' {365, 8, 10, 11, 2, -9}, // 0x4C 'L' {375, 11, 10, 11, 0, -9}, // 0x4D 'M' {389, 9, 10, 11, 1, -9}, // 0x4E 'N' {401, 9, 10, 11, 1, -9}, // 0x4F 'O' {413, 8, 10, 11, 1, -9}, // 0x50 'P' {423, 9, 13, 11, 1, -9}, // 0x51 'Q' {438, 9, 10, 11, 1, -9}, // 0x52 'R' {450, 7, 10, 11, 2, -9}, // 0x53 'S' {459, 9, 10, 11, 1, -9}, // 0x54 'T' {471, 9, 10, 11, 1, -9}, // 0x55 'U' {483, 11, 10, 11, 0, -9}, // 0x56 'V' {497, 11, 10, 11, 0, -9}, // 0x57 'W' {511, 9, 10, 11, 1, -9}, // 0x58 'X' {523, 9, 10, 11, 1, -9}, // 0x59 'Y' {535, 7, 10, 11, 2, -9}, // 0x5A 'Z' {544, 2, 13, 11, 5, -10}, // 0x5B '[' {548, 7, 13, 11, 2, -11}, // 0x5C '\' {560, 2, 13, 11, 4, -10}, // 0x5D ']' {564, 7, 5, 11, 2, -10}, // 0x5E '^' {569, 11, 1, 11, 0, 2}, // 0x5F '_' {571, 3, 3, 11, 3, -11}, // 0x60 '`' {573, 9, 8, 11, 1, -7}, // 0x61 'a' {582, 9, 11, 11, 1, -10}, // 0x62 'b' {595, 7, 8, 11, 2, -7}, // 0x63 'c' {602, 9, 11, 11, 1, -10}, // 0x64 'd' {615, 8, 8, 11, 1, -7}, // 0x65 'e' {623, 6, 11, 11, 3, -10}, // 0x66 'f' {632, 9, 11, 11, 1, -7}, // 0x67 'g' {645, 9, 11, 11, 1, -10}, // 0x68 'h' {658, 7, 10, 11, 2, -9}, // 0x69 'i' {667, 5, 13, 11, 3, -9}, // 0x6A 'j' {676, 8, 11, 11, 2, -10}, // 0x6B 'k' {687, 7, 11, 11, 2, -10}, // 0x6C 'l' {697, 9, 8, 11, 1, -7}, // 0x6D 'm' {706, 9, 8, 11, 1, -7}, // 0x6E 'n' {715, 9, 8, 11, 1, -7}, // 0x6F 'o' {724, 9, 11, 11, 1, -7}, // 0x70 'p' {737, 9, 11, 11, 1, -7}, // 0x71 'q' {750, 7, 8, 11, 3, -7}, // 0x72 'r' {757, 7, 8, 11, 2, -7}, // 0x73 's' {764, 8, 10, 11, 2, -9}, // 0x74 't' {774, 8, 8, 11, 1, -7}, // 0x75 'u' {782, 9, 8, 11, 1, -7}, // 0x76 'v' {791, 9, 8, 11, 1, -7}, // 0x77 'w' {800, 9, 8, 11, 1, -7}, // 0x78 'x' {809, 9, 11, 11, 1, -7}, // 0x79 'y' {822, 7, 8, 11, 2, -7}, // 0x7A 'z' {829, 3, 13, 11, 4, -10}, // 0x7B '{' {834, 1, 13, 11, 5, -10}, // 0x7C '|' {836, 3, 13, 11, 4, -10}, // 0x7D '}' {841, 7, 3, 11, 2, -6}}; // 0x7E '~' const GFXfont FreeMono9pt7b PROGMEM = {(uint8_t *)FreeMono9pt7bBitmaps, (GFXglyph *)FreeMono9pt7bGlyphs, 0x20, 0x7E, 18}; // Approx. 1516 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoBold12pt7b.h ================================================ const uint8_t FreeMonoBold12pt7bBitmaps[] PROGMEM = { 0xFF, 0xFF, 0xFF, 0xF6, 0x66, 0x60, 0x6F, 0x60, 0xE7, 0xE7, 0x62, 0x42, 0x42, 0x42, 0x42, 0x11, 0x87, 0x30, 0xC6, 0x18, 0xC3, 0x31, 0xFF, 0xFF, 0xF9, 0x98, 0x33, 0x06, 0x60, 0xCC, 0x7F, 0xEF, 0xFC, 0x66, 0x0C, 0xC3, 0x98, 0x63, 0x04, 0x40, 0x0C, 0x03, 0x00, 0xC0, 0xFE, 0x7F, 0x9C, 0x66, 0x09, 0x80, 0x78, 0x0F, 0xE0, 0x7F, 0x03, 0xE0, 0xF8, 0x7F, 0xFB, 0xFC, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x38, 0x1F, 0x0C, 0x42, 0x10, 0xC4, 0x1F, 0x03, 0x9C, 0x3C, 0x7F, 0x33, 0xE0, 0x8C, 0x21, 0x08, 0xC3, 0xE0, 0x70, 0x3E, 0x1F, 0xC6, 0x61, 0x80, 0x70, 0x0C, 0x07, 0x83, 0xEE, 0xDF, 0xB3, 0xCC, 0x73, 0xFE, 0x7F, 0x80, 0xFD, 0x24, 0x90, 0x39, 0xDC, 0xE6, 0x73, 0x18, 0xC6, 0x31, 0x8C, 0x31, 0x8E, 0x31, 0xC4, 0xE7, 0x1C, 0xE3, 0x1C, 0x63, 0x18, 0xC6, 0x31, 0x98, 0xCE, 0x67, 0x10, 0x0C, 0x03, 0x00, 0xC3, 0xB7, 0xFF, 0xDF, 0xE1, 0xE0, 0xFC, 0x33, 0x0C, 0xC0, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x0F, 0xFF, 0xFF, 0xF0, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x3B, 0x9C, 0xCE, 0x62, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x40, 0x30, 0x1C, 0x07, 0x03, 0x80, 0xE0, 0x30, 0x1C, 0x06, 0x03, 0x80, 0xC0, 0x70, 0x18, 0x0E, 0x03, 0x01, 0xC0, 0x60, 0x38, 0x0E, 0x01, 0x00, 0x1E, 0x0F, 0xC6, 0x1B, 0x87, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x87, 0x61, 0x8F, 0xC1, 0xE0, 0x1C, 0x0F, 0x0F, 0xC3, 0xB0, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x3F, 0xFF, 0xFC, 0x1F, 0x1F, 0xEE, 0x1F, 0x83, 0xC0, 0xC0, 0x70, 0x38, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE3, 0xF0, 0xFF, 0xFF, 0xFC, 0x3F, 0x0F, 0xF1, 0x87, 0x00, 0x60, 0x0C, 0x03, 0x83, 0xE0, 0x7C, 0x01, 0xC0, 0x0C, 0x01, 0x80, 0x3C, 0x0F, 0xFF, 0x9F, 0xC0, 0x07, 0x07, 0x83, 0xC3, 0xE1, 0xB1, 0xD8, 0xCC, 0xC6, 0xE3, 0x7F, 0xFF, 0xE0, 0x61, 0xF8, 0xFC, 0x7F, 0x9F, 0xE6, 0x01, 0x80, 0x60, 0x1F, 0x87, 0xF9, 0x86, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0xC1, 0xBF, 0xE7, 0xE0, 0x07, 0xC7, 0xF3, 0xC1, 0xC0, 0x60, 0x38, 0x0E, 0xF3, 0xFE, 0xF1, 0xF8, 0x3E, 0x0F, 0x83, 0x71, 0xCF, 0xE1, 0xF0, 0xFF, 0xFF, 0xFC, 0x1F, 0x07, 0x01, 0x80, 0x60, 0x38, 0x0C, 0x03, 0x01, 0xC0, 0x60, 0x18, 0x0E, 0x03, 0x00, 0xC0, 0x1E, 0x1F, 0xEE, 0x1F, 0x03, 0xC0, 0xF0, 0x36, 0x19, 0xFE, 0x7F, 0xB8, 0x7C, 0x0F, 0x03, 0xE1, 0xDF, 0xE3, 0xF0, 0x3E, 0x1F, 0xCE, 0x3B, 0x07, 0xC1, 0xF0, 0x7E, 0x3D, 0xFF, 0x3D, 0xC0, 0x70, 0x18, 0x0E, 0x0F, 0x3F, 0x8F, 0x80, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0x77, 0x70, 0x00, 0x00, 0x76, 0x6C, 0xC8, 0x80, 0x00, 0x30, 0x0F, 0x03, 0xE0, 0xF8, 0x3E, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x60, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x0F, 0x00, 0x40, 0x00, 0x7C, 0x7F, 0xB0, 0xF8, 0x30, 0x18, 0x1C, 0x3C, 0x3C, 0x18, 0x08, 0x00, 0x07, 0x03, 0x81, 0xC0, 0x1E, 0x07, 0xF1, 0xC7, 0x30, 0x6C, 0x0D, 0x87, 0xB3, 0xF6, 0xE6, 0xD8, 0xDB, 0x1B, 0x73, 0x67, 0xFC, 0x7F, 0x80, 0x30, 0x03, 0x00, 0x71, 0xC7, 0xF8, 0x7C, 0x00, 0x3F, 0x80, 0x7F, 0x80, 0x1F, 0x00, 0x76, 0x00, 0xEE, 0x01, 0x8C, 0x07, 0x18, 0x0E, 0x38, 0x1F, 0xF0, 0x7F, 0xF0, 0xC0, 0x61, 0x80, 0xCF, 0xC7, 0xFF, 0x8F, 0xC0, 0xFF, 0xC7, 0xFF, 0x0C, 0x1C, 0x60, 0x63, 0x03, 0x18, 0x38, 0xFF, 0x87, 0xFE, 0x30, 0x39, 0x80, 0xCC, 0x06, 0x60, 0x7F, 0xFF, 0x7F, 0xF0, 0x0F, 0xF3, 0xFF, 0x70, 0x76, 0x03, 0xC0, 0x3C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0x60, 0x37, 0x07, 0x3F, 0xF0, 0xFC, 0xFF, 0x0F, 0xFC, 0x60, 0xE6, 0x06, 0x60, 0x36, 0x03, 0x60, 0x36, 0x03, 0x60, 0x36, 0x03, 0x60, 0x76, 0x0E, 0xFF, 0xCF, 0xF8, 0xFF, 0xF7, 0xFF, 0x8C, 0x0C, 0x60, 0x63, 0x1B, 0x18, 0xC0, 0xFE, 0x07, 0xF0, 0x31, 0x81, 0x8C, 0xCC, 0x06, 0x60, 0x3F, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xCC, 0x06, 0x60, 0x33, 0x19, 0x98, 0xC0, 0xFE, 0x07, 0xF0, 0x31, 0x81, 0x8C, 0x0C, 0x00, 0x60, 0x0F, 0xF0, 0x7F, 0x80, 0x0F, 0xF1, 0xFF, 0x9C, 0x1C, 0xC0, 0x6C, 0x03, 0x60, 0x03, 0x00, 0x18, 0x7F, 0xC3, 0xFE, 0x01, 0xB8, 0x0C, 0xE0, 0xE3, 0xFF, 0x07, 0xE0, 0x7C, 0xF9, 0xF3, 0xE3, 0x03, 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3, 0xFF, 0x0F, 0xFC, 0x30, 0x30, 0xC0, 0xC3, 0x03, 0x0C, 0x0C, 0xFC, 0xFF, 0xF3, 0xF0, 0xFF, 0xFF, 0xF0, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0xFF, 0xFF, 0xF0, 0x0F, 0xF8, 0x7F, 0xC0, 0x30, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x18, 0x18, 0xC0, 0xC6, 0x06, 0x30, 0x31, 0xC3, 0x0F, 0xF8, 0x1F, 0x00, 0xFC, 0xFB, 0xF3, 0xE3, 0x0E, 0x0C, 0x70, 0x33, 0x80, 0xFC, 0x03, 0xF0, 0x0F, 0xE0, 0x39, 0xC0, 0xC3, 0x03, 0x0E, 0x0C, 0x18, 0xFC, 0x7F, 0xF0, 0xF0, 0xFF, 0x0F, 0xF0, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x31, 0x83, 0x18, 0x31, 0x83, 0xFF, 0xFF, 0xFF, 0xF0, 0x3F, 0xC0, 0xF7, 0x87, 0x9E, 0x1E, 0x7C, 0xF9, 0xB3, 0xE6, 0xFD, 0x99, 0xF6, 0x67, 0x99, 0x8E, 0x66, 0x31, 0x98, 0x06, 0xFC, 0xFF, 0xF3, 0xF0, 0xF1, 0xFF, 0xCF, 0xCF, 0x0C, 0x78, 0x63, 0xE3, 0x1B, 0x18, 0xDC, 0xC6, 0x76, 0x31, 0xB1, 0x8F, 0x8C, 0x3C, 0x61, 0xE7, 0xE7, 0x3F, 0x18, 0x0F, 0x03, 0xFC, 0x70, 0xE6, 0x06, 0xE0, 0x7C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x07, 0x60, 0x67, 0x0E, 0x3F, 0xC0, 0xF0, 0xFF, 0x8F, 0xFE, 0x30, 0x73, 0x03, 0x30, 0x33, 0x03, 0x30, 0x73, 0xFE, 0x3F, 0x83, 0x00, 0x30, 0x03, 0x00, 0xFF, 0x0F, 0xF0, 0x0F, 0x03, 0xFC, 0x70, 0xE6, 0x06, 0xE0, 0x7C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x07, 0x60, 0x67, 0x0E, 0x3F, 0xC1, 0xF0, 0x18, 0x33, 0xFF, 0x3F, 0xE0, 0xFF, 0x83, 0xFF, 0x83, 0x07, 0x0C, 0x0C, 0x30, 0x30, 0xC1, 0xC3, 0xFE, 0x0F, 0xF0, 0x31, 0xE0, 0xC3, 0x83, 0x07, 0x0C, 0x0C, 0xFE, 0x3F, 0xF8, 0x70, 0x3F, 0xDF, 0xFE, 0x1F, 0x03, 0xC0, 0xF8, 0x07, 0xE0, 0x7E, 0x01, 0xF0, 0x3C, 0x0F, 0x87, 0xFF, 0xBF, 0xC0, 0xFF, 0xFF, 0xFF, 0xC6, 0x3C, 0x63, 0xC6, 0x3C, 0x63, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x3F, 0xC3, 0xFC, 0xFF, 0xFF, 0xFF, 0x60, 0x66, 0x06, 0x60, 0x66, 0x06, 0x60, 0x66, 0x06, 0x60, 0x66, 0x06, 0x60, 0x63, 0x9C, 0x1F, 0xC0, 0xF0, 0xFC, 0x3F, 0xFC, 0x3F, 0x30, 0x0C, 0x38, 0x1C, 0x18, 0x18, 0x1C, 0x38, 0x1C, 0x38, 0x0E, 0x70, 0x0E, 0x70, 0x0F, 0x60, 0x07, 0xE0, 0x07, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0xFC, 0xFF, 0xF3, 0xF6, 0x01, 0xDC, 0xC6, 0x77, 0x99, 0xDE, 0x67, 0x79, 0x8D, 0xFE, 0x3F, 0xF8, 0xF3, 0xE3, 0xCF, 0x8F, 0x3C, 0x38, 0x70, 0xE1, 0xC0, 0xF8, 0xFB, 0xE3, 0xE3, 0x86, 0x0F, 0x38, 0x1F, 0xC0, 0x3E, 0x00, 0x70, 0x03, 0xE0, 0x0F, 0x80, 0x77, 0x03, 0x8E, 0x1E, 0x1C, 0xFC, 0xFF, 0xF3, 0xF0, 0xF9, 0xFF, 0x9F, 0x30, 0xC3, 0x9C, 0x19, 0x81, 0xF8, 0x0F, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x3F, 0xC3, 0xFC, 0xFF, 0xBF, 0xEC, 0x3B, 0x0C, 0xC6, 0x33, 0x80, 0xC0, 0x60, 0x38, 0xCC, 0x36, 0x0F, 0x03, 0xFF, 0xFF, 0xF0, 0xFF, 0xF1, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC7, 0xFE, 0x40, 0x30, 0x0E, 0x01, 0x80, 0x70, 0x0C, 0x03, 0x80, 0x60, 0x1C, 0x03, 0x00, 0xE0, 0x18, 0x07, 0x00, 0xC0, 0x38, 0x0E, 0x01, 0xC0, 0x70, 0x0C, 0x01, 0xFF, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x1F, 0xFE, 0x04, 0x03, 0x01, 0xE0, 0xFC, 0x7B, 0x9C, 0x7E, 0x1F, 0x03, 0xFF, 0xFF, 0xFF, 0xF0, 0xCE, 0x73, 0x3F, 0x07, 0xF8, 0x00, 0xC0, 0x0C, 0x1F, 0xC7, 0xFC, 0x60, 0xCC, 0x0C, 0xC1, 0xCF, 0xFF, 0x3F, 0xF0, 0xF0, 0x07, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x7C, 0x1F, 0xF8, 0xF1, 0xC7, 0x07, 0x30, 0x19, 0x80, 0xCC, 0x06, 0x60, 0x73, 0xC7, 0x7F, 0xFB, 0xDF, 0x00, 0x1F, 0xB3, 0xFF, 0x70, 0xFE, 0x07, 0xC0, 0x3C, 0x00, 0xC0, 0x0C, 0x00, 0x70, 0x77, 0xFF, 0x1F, 0xC0, 0x01, 0xE0, 0x0F, 0x00, 0x18, 0x00, 0xC1, 0xF6, 0x3F, 0xF1, 0xC7, 0x9C, 0x1C, 0xC0, 0x66, 0x03, 0x30, 0x19, 0x81, 0xC7, 0x1E, 0x3F, 0xFC, 0x7D, 0xE0, 0x1F, 0x83, 0xFC, 0x70, 0xEE, 0x07, 0xFF, 0xFF, 0xFF, 0xE0, 0x0E, 0x00, 0x70, 0x73, 0xFF, 0x1F, 0xC0, 0x07, 0xC3, 0xFC, 0x60, 0x0C, 0x0F, 0xFD, 0xFF, 0x86, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x81, 0xFF, 0xBF, 0xF0, 0x1F, 0x79, 0xFF, 0xDC, 0x79, 0x81, 0xCC, 0x06, 0x60, 0x33, 0x01, 0x9C, 0x1C, 0x71, 0xE1, 0xFF, 0x07, 0xD8, 0x00, 0xC0, 0x06, 0x00, 0x70, 0x7F, 0x03, 0xF0, 0xF0, 0x03, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x37, 0xC0, 0xFF, 0x83, 0xC7, 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3, 0x03, 0x0C, 0x0C, 0x30, 0x33, 0xF3, 0xFF, 0xCF, 0xC0, 0x06, 0x00, 0xC0, 0x00, 0x3F, 0x07, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x0F, 0xFF, 0xFF, 0xC0, 0x06, 0x06, 0x00, 0xFF, 0xFF, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0xFE, 0xFC, 0xF0, 0x07, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x3F, 0x19, 0xF8, 0xDE, 0x07, 0xE0, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x6F, 0x03, 0x1C, 0x78, 0xFF, 0xC7, 0xE0, 0x7E, 0x0F, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x61, 0xFF, 0xFF, 0xF8, 0xFE, 0xF1, 0xFF, 0xF1, 0xCE, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x19, 0xF7, 0xBF, 0xEF, 0x78, 0x77, 0xC1, 0xFF, 0x83, 0xC7, 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3, 0x03, 0x0C, 0x0C, 0x30, 0x33, 0xF1, 0xFF, 0xC7, 0xC0, 0x1F, 0x83, 0xFC, 0x70, 0xEE, 0x07, 0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x07, 0x70, 0xE3, 0xFC, 0x1F, 0x80, 0xF7, 0xE3, 0xFF, 0xC3, 0xC3, 0x8E, 0x07, 0x30, 0x0C, 0xC0, 0x33, 0x00, 0xCE, 0x07, 0x3C, 0x38, 0xFF, 0xC3, 0x7E, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x0F, 0xE0, 0x3F, 0x80, 0x1F, 0xBC, 0xFF, 0xF7, 0x0F, 0x38, 0x1C, 0xC0, 0x33, 0x00, 0xCC, 0x03, 0x38, 0x1C, 0x70, 0xF0, 0xFF, 0xC1, 0xFB, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x1F, 0xC0, 0x7F, 0x79, 0xE7, 0xFF, 0x1F, 0x31, 0xC0, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x0F, 0xFC, 0xFF, 0xC0, 0x3F, 0x9F, 0xFE, 0x1F, 0x82, 0xFE, 0x1F, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0xFF, 0xF0, 0x30, 0x06, 0x00, 0xC0, 0x7F, 0xEF, 0xFC, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x71, 0xFE, 0x1F, 0x00, 0xF1, 0xF7, 0x8F, 0x8C, 0x0C, 0x60, 0x63, 0x03, 0x18, 0x18, 0xC0, 0xC6, 0x06, 0x38, 0xF0, 0xFF, 0xC3, 0xEE, 0xFC, 0xFF, 0xF3, 0xF3, 0x87, 0x0E, 0x1C, 0x1C, 0x60, 0x73, 0x80, 0xEC, 0x03, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x00, 0xF8, 0x7F, 0xE1, 0xF7, 0x39, 0x8C, 0xE6, 0x37, 0xB0, 0xFF, 0xC3, 0xFF, 0x07, 0xBC, 0x1C, 0xF0, 0x73, 0x81, 0x86, 0x00, 0x7C, 0xF9, 0xF3, 0xE3, 0xCF, 0x07, 0xF8, 0x0F, 0xC0, 0x1E, 0x00, 0xFC, 0x07, 0x38, 0x38, 0x73, 0xF3, 0xFF, 0xCF, 0xC0, 0xF9, 0xFF, 0x9F, 0x70, 0xE3, 0x0C, 0x39, 0xC1, 0x98, 0x19, 0x81, 0xF8, 0x0F, 0x00, 0xF0, 0x06, 0x00, 0x60, 0x0E, 0x00, 0xC0, 0xFF, 0x0F, 0xF0, 0x7F, 0xCF, 0xF9, 0x8E, 0x33, 0x80, 0x70, 0x1C, 0x07, 0x01, 0xC6, 0x70, 0xFF, 0xFF, 0xFF, 0x80, 0x0E, 0x3C, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x39, 0xE3, 0xC0, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x3C, 0x38, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xE1, 0xC0, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x3C, 0x79, 0x83, 0x06, 0x0C, 0x18, 0x31, 0xE3, 0x80, 0x3C, 0x37, 0xE7, 0x67, 0xE6, 0x1C}; const GFXglyph FreeMonoBold12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 14, 0, 1}, // 0x20 ' ' {0, 4, 15, 14, 5, -14}, // 0x21 '!' {8, 8, 7, 14, 3, -13}, // 0x22 '"' {15, 11, 18, 14, 2, -15}, // 0x23 '#' {40, 10, 20, 14, 2, -16}, // 0x24 '$' {65, 10, 15, 14, 2, -14}, // 0x25 '%' {84, 10, 13, 14, 2, -12}, // 0x26 '&' {101, 3, 7, 14, 5, -13}, // 0x27 ''' {104, 5, 19, 14, 6, -14}, // 0x28 '(' {116, 5, 19, 14, 3, -14}, // 0x29 ')' {128, 10, 10, 14, 2, -14}, // 0x2A '*' {141, 12, 13, 14, 1, -12}, // 0x2B '+' {161, 5, 7, 14, 4, -2}, // 0x2C ',' {166, 12, 2, 14, 1, -7}, // 0x2D '-' {169, 3, 3, 14, 5, -2}, // 0x2E '.' {171, 10, 20, 14, 2, -16}, // 0x2F '/' {196, 10, 15, 14, 2, -14}, // 0x30 '0' {215, 10, 15, 14, 2, -14}, // 0x31 '1' {234, 10, 15, 14, 2, -14}, // 0x32 '2' {253, 11, 15, 14, 1, -14}, // 0x33 '3' {274, 9, 14, 14, 2, -13}, // 0x34 '4' {290, 10, 15, 14, 2, -14}, // 0x35 '5' {309, 10, 15, 14, 2, -14}, // 0x36 '6' {328, 10, 15, 14, 2, -14}, // 0x37 '7' {347, 10, 15, 14, 2, -14}, // 0x38 '8' {366, 10, 15, 14, 3, -14}, // 0x39 '9' {385, 3, 11, 14, 5, -10}, // 0x3A ':' {390, 4, 15, 14, 4, -10}, // 0x3B ';' {398, 12, 11, 14, 1, -11}, // 0x3C '<' {415, 12, 7, 14, 1, -9}, // 0x3D '=' {426, 12, 11, 14, 1, -11}, // 0x3E '>' {443, 9, 14, 14, 3, -13}, // 0x3F '?' {459, 11, 19, 14, 2, -14}, // 0x40 '@' {486, 15, 14, 14, -1, -13}, // 0x41 'A' {513, 13, 14, 14, 0, -13}, // 0x42 'B' {536, 12, 14, 14, 1, -13}, // 0x43 'C' {557, 12, 14, 14, 1, -13}, // 0x44 'D' {578, 13, 14, 14, 0, -13}, // 0x45 'E' {601, 13, 14, 14, 0, -13}, // 0x46 'F' {624, 13, 14, 14, 1, -13}, // 0x47 'G' {647, 14, 14, 14, 0, -13}, // 0x48 'H' {672, 10, 14, 14, 2, -13}, // 0x49 'I' {690, 13, 14, 14, 1, -13}, // 0x4A 'J' {713, 14, 14, 14, 0, -13}, // 0x4B 'K' {738, 12, 14, 14, 1, -13}, // 0x4C 'L' {759, 14, 14, 14, 0, -13}, // 0x4D 'M' {784, 13, 14, 14, 0, -13}, // 0x4E 'N' {807, 12, 14, 14, 1, -13}, // 0x4F 'O' {828, 12, 14, 14, 0, -13}, // 0x50 'P' {849, 12, 17, 14, 1, -13}, // 0x51 'Q' {875, 14, 14, 14, 0, -13}, // 0x52 'R' {900, 10, 14, 14, 2, -13}, // 0x53 'S' {918, 12, 14, 14, 1, -13}, // 0x54 'T' {939, 12, 14, 14, 1, -13}, // 0x55 'U' {960, 16, 14, 14, -1, -13}, // 0x56 'V' {988, 14, 14, 14, 0, -13}, // 0x57 'W' {1013, 14, 14, 14, 0, -13}, // 0x58 'X' {1038, 12, 14, 14, 1, -13}, // 0x59 'Y' {1059, 10, 14, 14, 2, -13}, // 0x5A 'Z' {1077, 5, 19, 14, 6, -14}, // 0x5B '[' {1089, 10, 20, 14, 2, -16}, // 0x5C '\' {1114, 5, 19, 14, 3, -14}, // 0x5D ']' {1126, 10, 8, 14, 2, -15}, // 0x5E '^' {1136, 14, 2, 14, 0, 4}, // 0x5F '_' {1140, 4, 4, 14, 4, -15}, // 0x60 '`' {1142, 12, 11, 14, 1, -10}, // 0x61 'a' {1159, 13, 15, 14, 0, -14}, // 0x62 'b' {1184, 12, 11, 14, 1, -10}, // 0x63 'c' {1201, 13, 15, 14, 1, -14}, // 0x64 'd' {1226, 12, 11, 14, 1, -10}, // 0x65 'e' {1243, 11, 15, 14, 2, -14}, // 0x66 'f' {1264, 13, 16, 14, 1, -10}, // 0x67 'g' {1290, 14, 15, 14, 0, -14}, // 0x68 'h' {1317, 11, 14, 14, 1, -13}, // 0x69 'i' {1337, 8, 19, 15, 3, -13}, // 0x6A 'j' {1356, 13, 15, 14, 1, -14}, // 0x6B 'k' {1381, 11, 15, 14, 1, -14}, // 0x6C 'l' {1402, 15, 11, 14, 0, -10}, // 0x6D 'm' {1423, 14, 11, 14, 0, -10}, // 0x6E 'n' {1443, 12, 11, 14, 1, -10}, // 0x6F 'o' {1460, 14, 16, 14, 0, -10}, // 0x70 'p' {1488, 14, 16, 14, 0, -10}, // 0x71 'q' {1516, 12, 11, 14, 1, -10}, // 0x72 'r' {1533, 10, 11, 14, 2, -10}, // 0x73 's' {1547, 11, 14, 14, 1, -13}, // 0x74 't' {1567, 13, 11, 14, 0, -10}, // 0x75 'u' {1585, 14, 11, 14, 0, -10}, // 0x76 'v' {1605, 14, 11, 14, 0, -10}, // 0x77 'w' {1625, 14, 11, 14, 0, -10}, // 0x78 'x' {1645, 12, 16, 14, 1, -10}, // 0x79 'y' {1669, 11, 11, 14, 1, -10}, // 0x7A 'z' {1685, 7, 19, 14, 3, -14}, // 0x7B '{' {1702, 2, 19, 14, 6, -14}, // 0x7C '|' {1707, 7, 19, 14, 4, -14}, // 0x7D '}' {1724, 12, 4, 14, 1, -7}}; // 0x7E '~' const GFXfont FreeMonoBold12pt7b PROGMEM = { (uint8_t *)FreeMonoBold12pt7bBitmaps, (GFXglyph *)FreeMonoBold12pt7bGlyphs, 0x20, 0x7E, 24}; // Approx. 2402 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoBold18pt7b.h ================================================ const uint8_t FreeMonoBold18pt7bBitmaps[] PROGMEM = { 0x77, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x9C, 0xE7, 0x39, 0xC4, 0x03, 0xBF, 0xFF, 0xB8, 0xF1, 0xFE, 0x3F, 0xC7, 0xF8, 0xFF, 0x1E, 0xC1, 0x98, 0x33, 0x06, 0x60, 0xCC, 0x18, 0x0E, 0x1C, 0x0F, 0x3C, 0x1F, 0x3C, 0x1E, 0x3C, 0x1E, 0x3C, 0x1E, 0x78, 0x1E, 0x78, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1E, 0x78, 0x1E, 0x78, 0x1E, 0x78, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x03, 0x00, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x1F, 0xF1, 0xFF, 0xE7, 0xFF, 0xBE, 0x1E, 0xF0, 0x3B, 0xC0, 0xCF, 0xE0, 0x3F, 0xF8, 0x7F, 0xF0, 0x7F, 0xE0, 0x1F, 0xF0, 0x0F, 0xE0, 0x3F, 0x80, 0xFF, 0x87, 0xFF, 0xFE, 0xFF, 0xF3, 0x7F, 0x80, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x00, 0xC0, 0x1E, 0x00, 0xFF, 0x03, 0x86, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x38, 0x70, 0x3F, 0xC2, 0x1E, 0x3E, 0x03, 0xF8, 0x3F, 0x83, 0xF8, 0x0F, 0x8F, 0x18, 0x7F, 0x01, 0xC7, 0x03, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x1C, 0x70, 0x1F, 0xC0, 0x0F, 0x00, 0x03, 0xD0, 0x1F, 0xF0, 0x7F, 0xE1, 0xFF, 0xC3, 0xE6, 0x07, 0x80, 0x0F, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0xFE, 0x03, 0xFE, 0xFF, 0xBD, 0xFE, 0x3F, 0xFC, 0x3F, 0x7C, 0x7C, 0xFF, 0xFE, 0xFF, 0xFC, 0xFF, 0xF8, 0x7E, 0xF0, 0xFF, 0xFF, 0xF6, 0x66, 0x66, 0x07, 0x0F, 0x1F, 0x1E, 0x3E, 0x3C, 0x78, 0x78, 0x78, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x78, 0x78, 0x78, 0x3C, 0x3C, 0x1E, 0x1F, 0x0F, 0x07, 0xE0, 0xF0, 0xF8, 0x78, 0x7C, 0x3C, 0x3E, 0x1E, 0x1E, 0x1E, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0E, 0x1E, 0x1E, 0x1E, 0x3C, 0x3C, 0x78, 0xF8, 0xF0, 0xE0, 0x01, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x1F, 0xF8, 0x07, 0xE0, 0x0F, 0xF0, 0x1F, 0xF8, 0x1E, 0x78, 0x1C, 0x38, 0x18, 0x18, 0x01, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x3E, 0x78, 0xF3, 0xC7, 0x8E, 0x1C, 0x70, 0xE1, 0x80, 0x7F, 0xFF, 0xDF, 0xFF, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x0E, 0x00, 0x3C, 0x00, 0x78, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x1E, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x3C, 0x00, 0x78, 0x01, 0xE0, 0x03, 0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x78, 0x00, 0xF0, 0x03, 0xC0, 0x07, 0x80, 0x1E, 0x00, 0x3C, 0x00, 0x70, 0x01, 0xE0, 0x03, 0x80, 0x03, 0x00, 0x00, 0x07, 0xE0, 0x1F, 0xF8, 0x3F, 0xFC, 0x3F, 0xFC, 0x7C, 0x3E, 0x78, 0x1E, 0xF8, 0x1F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF8, 0x1F, 0x78, 0x1E, 0x7C, 0x3E, 0x3F, 0xFC, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0, 0x07, 0xC0, 0x1F, 0x80, 0xFF, 0x03, 0xFE, 0x0F, 0xBC, 0x0C, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x81, 0xFF, 0xFB, 0xFF, 0xF7, 0xFF, 0xE7, 0xFF, 0x80, 0x0F, 0xC0, 0x7F, 0xE1, 0xFF, 0xE3, 0xFF, 0xEF, 0x87, 0xDE, 0x07, 0xF8, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x78, 0x03, 0xE0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x0F, 0xC0, 0x7F, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC, 0x70, 0x3E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x3C, 0x03, 0xFC, 0x03, 0xF0, 0x03, 0xF0, 0x03, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0xE0, 0x3F, 0xFF, 0xFE, 0xFF, 0xFC, 0x7F, 0xF8, 0x1F, 0xE0, 0x00, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x1F, 0xC0, 0x77, 0x80, 0xEF, 0x03, 0x9E, 0x0F, 0x3C, 0x1C, 0x78, 0x70, 0xF1, 0xE1, 0xE3, 0x83, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x78, 0x07, 0xFC, 0x0F, 0xF8, 0x1F, 0xF0, 0x1F, 0xC0, 0x3F, 0xFC, 0x1F, 0xFE, 0x0F, 0xFF, 0x07, 0xFF, 0x83, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x7B, 0xE0, 0x3F, 0xFC, 0x1F, 0xFF, 0x0F, 0xFF, 0xC3, 0x83, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x0F, 0xB8, 0x0F, 0xBF, 0xFF, 0xCF, 0xFF, 0xC3, 0xFF, 0xC0, 0x7F, 0x80, 0x00, 0xFC, 0x07, 0xFC, 0x3F, 0xF8, 0xFF, 0xF1, 0xF8, 0x07, 0xC0, 0x1F, 0x00, 0x3C, 0x00, 0xF0, 0x01, 0xE7, 0xC3, 0xDF, 0xC7, 0x7F, 0xCF, 0xFF, 0xDF, 0x8F, 0xFC, 0x07, 0xF0, 0x0F, 0xF0, 0x1F, 0xE0, 0x3D, 0xE0, 0xFB, 0xFF, 0xE3, 0xFF, 0xC3, 0xFF, 0x01, 0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x01, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x38, 0x00, 0x70, 0x00, 0x07, 0xC0, 0x3F, 0xE0, 0xFF, 0xE3, 0xFF, 0xEF, 0x83, 0xFE, 0x03, 0xFC, 0x07, 0xF8, 0x0F, 0xF0, 0x1E, 0xF0, 0x78, 0xFF, 0xE0, 0xFF, 0x81, 0xFF, 0x0F, 0xFF, 0x9E, 0x0F, 0x78, 0x0F, 0xF0, 0x1F, 0xE0, 0x3F, 0xE0, 0xFB, 0xFF, 0xE7, 0xFF, 0xC7, 0xFF, 0x03, 0xF8, 0x00, 0x0F, 0xC0, 0x3F, 0xE0, 0xFF, 0xE3, 0xFF, 0xEF, 0xC3, 0xDF, 0x03, 0xBC, 0x07, 0xF8, 0x0F, 0xF0, 0x1F, 0xF0, 0x3D, 0xF1, 0xFB, 0xFF, 0xF3, 0xFE, 0xE3, 0xFB, 0xC3, 0xE7, 0x80, 0x1E, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xE7, 0xFF, 0x8F, 0xFE, 0x1F, 0xF0, 0x1F, 0x80, 0x00, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x00, 0x00, 0xEF, 0xFF, 0xEE, 0x1C, 0x7C, 0xF9, 0xF1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xC7, 0x8E, 0x3C, 0x70, 0xE1, 0x87, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7C, 0x00, 0x07, 0x7F, 0xFF, 0xDF, 0xFF, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xF7, 0xFF, 0xFE, 0x7F, 0xFF, 0xCF, 0xFF, 0xF8, 0x00, 0x00, 0x3C, 0x00, 0x0F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x3F, 0x80, 0x3F, 0x80, 0x3F, 0x80, 0x3F, 0x80, 0x3F, 0x80, 0x0F, 0x80, 0x03, 0x80, 0x00, 0x1F, 0xC0, 0xFF, 0xE3, 0xFF, 0xF7, 0xFF, 0xEF, 0x07, 0xFE, 0x03, 0xDC, 0x07, 0x80, 0x0F, 0x00, 0x7C, 0x03, 0xF8, 0x1F, 0xC0, 0x1E, 0x00, 0x30, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0x70, 0x00, 0x07, 0xE0, 0x1F, 0xE0, 0x7F, 0xE1, 0xE1, 0xC7, 0x83, 0xCE, 0x03, 0xBC, 0x07, 0x70, 0x0E, 0xE0, 0x7D, 0xC3, 0xFB, 0x8F, 0xF7, 0x3C, 0xEE, 0x71, 0xDC, 0xE3, 0xB9, 0xC7, 0x73, 0xCE, 0xE3, 0xFF, 0xC3, 0xFF, 0x83, 0xFF, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x1E, 0x02, 0x1E, 0x1E, 0x3F, 0xFC, 0x1F, 0xF0, 0x1F, 0x80, 0x0F, 0xF8, 0x00, 0x7F, 0xF0, 0x01, 0xFF, 0xC0, 0x03, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x1C, 0xF0, 0x00, 0xF3, 0xC0, 0x03, 0xCF, 0x00, 0x1E, 0x1E, 0x00, 0x78, 0x78, 0x03, 0xC0, 0xF0, 0x0F, 0xFF, 0xC0, 0x3F, 0xFF, 0x01, 0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x3C, 0x00, 0xF3, 0xFC, 0x1F, 0xEF, 0xF8, 0x7F, 0xFF, 0xE1, 0xFF, 0x7F, 0x03, 0xF8, 0x7F, 0xFC, 0x0F, 0xFF, 0xF0, 0xFF, 0xFF, 0x8F, 0xFF, 0xF8, 0x3C, 0x07, 0xC3, 0xC0, 0x3C, 0x3C, 0x03, 0xC3, 0xC0, 0x7C, 0x3F, 0xFF, 0x83, 0xFF, 0xF0, 0x3F, 0xFF, 0x83, 0xFF, 0xFE, 0x3C, 0x03, 0xE3, 0xC0, 0x1F, 0x3C, 0x00, 0xF3, 0xC0, 0x0F, 0x3C, 0x01, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xEF, 0xFF, 0xFC, 0x7F, 0xFF, 0x00, 0x01, 0xF8, 0xC1, 0xFF, 0xFC, 0x7F, 0xFF, 0x9F, 0xFF, 0xF7, 0xE0, 0x7E, 0xF8, 0x07, 0xFE, 0x00, 0x7F, 0x80, 0x0E, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x07, 0x7F, 0x03, 0xE7, 0xFF, 0xFC, 0x7F, 0xFF, 0x03, 0xFF, 0xC0, 0x1F, 0xE0, 0xFF, 0xF0, 0x3F, 0xFF, 0x0F, 0xFF, 0xE3, 0xFF, 0xFC, 0x78, 0x1F, 0x9E, 0x03, 0xE7, 0x80, 0x79, 0xE0, 0x0F, 0x78, 0x03, 0xDE, 0x00, 0xF7, 0x80, 0x3D, 0xE0, 0x0F, 0x78, 0x03, 0xDE, 0x00, 0xF7, 0x80, 0x7D, 0xE0, 0x1E, 0x78, 0x1F, 0xBF, 0xFF, 0xCF, 0xFF, 0xF3, 0xFF, 0xF0, 0x7F, 0xF0, 0x00, 0x7F, 0xFF, 0xDF, 0xFF, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xE3, 0xC0, 0x3C, 0x78, 0x07, 0x8F, 0x1C, 0xF1, 0xE3, 0xCC, 0x3F, 0xF8, 0x07, 0xFF, 0x00, 0xFF, 0xE0, 0x1F, 0xFC, 0x03, 0xC7, 0x80, 0x78, 0xF1, 0x8F, 0x0C, 0x79, 0xE0, 0x0F, 0x3C, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xC0, 0x1E, 0x78, 0x63, 0xCF, 0x1E, 0x79, 0xE3, 0xC6, 0x3F, 0xF8, 0x07, 0xFF, 0x00, 0xFF, 0xE0, 0x1F, 0xFC, 0x03, 0xC7, 0x80, 0x78, 0xE0, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x1F, 0xFC, 0x03, 0xFF, 0x80, 0x7F, 0xF0, 0x07, 0xFC, 0x00, 0x01, 0xFC, 0xE0, 0x7F, 0xFE, 0x1F, 0xFF, 0xE3, 0xFF, 0xFE, 0x7F, 0x03, 0xE7, 0xC0, 0x1E, 0xF8, 0x00, 0xEF, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x03, 0xFE, 0xF0, 0x3F, 0xFF, 0x03, 0xFF, 0xF8, 0x3F, 0xF7, 0x80, 0x1E, 0x7E, 0x01, 0xE3, 0xFF, 0xFE, 0x1F, 0xFF, 0xE0, 0xFF, 0xF8, 0x01, 0xFE, 0x00, 0x7F, 0x0F, 0xE3, 0xFC, 0x7F, 0x9F, 0xE3, 0xFC, 0x7F, 0x1F, 0xC1, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0xFF, 0xFE, 0x07, 0xFF, 0xF0, 0x3F, 0xFF, 0x81, 0xFF, 0xFC, 0x0F, 0x01, 0xE0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC3, 0xFC, 0x7F, 0xBF, 0xE3, 0xFF, 0xFF, 0x1F, 0xF7, 0xF0, 0x7F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x83, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF8, 0x01, 0xFF, 0xE0, 0x3F, 0xFC, 0x07, 0xFF, 0x80, 0xFF, 0xF0, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x38, 0x07, 0x8F, 0x00, 0xF1, 0xE0, 0x1E, 0x3C, 0x03, 0xC7, 0x80, 0xF8, 0xF8, 0x3F, 0x1F, 0xFF, 0xC3, 0xFF, 0xF0, 0x1F, 0xFC, 0x00, 0x7E, 0x00, 0xFF, 0x0F, 0xCF, 0xF9, 0xFE, 0xFF, 0x9F, 0xEF, 0xF8, 0xFC, 0x3C, 0x1F, 0x03, 0xC3, 0xE0, 0x3C, 0x7C, 0x03, 0xCF, 0x80, 0x3D, 0xF0, 0x03, 0xFE, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0x80, 0x3E, 0x7C, 0x03, 0xC3, 0xE0, 0x3C, 0x1E, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x0F, 0xF8, 0x7E, 0xFF, 0x87, 0xFF, 0xF8, 0x7F, 0x7F, 0x03, 0xE0, 0xFF, 0xC0, 0x3F, 0xF0, 0x0F, 0xFC, 0x03, 0xFF, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x01, 0x87, 0x80, 0xF1, 0xE0, 0x3C, 0x78, 0x0F, 0x1E, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xC0, 0x3E, 0x00, 0xF8, 0xFC, 0x01, 0xF9, 0xFC, 0x07, 0xF3, 0xF8, 0x0F, 0xE3, 0xF8, 0x3F, 0x87, 0xF0, 0x7F, 0x0F, 0xF1, 0xFE, 0x1F, 0xE3, 0xFC, 0x3D, 0xE7, 0x78, 0x7B, 0xDE, 0xF0, 0xF7, 0xBD, 0xE1, 0xE7, 0xF3, 0xC3, 0xCF, 0xE7, 0x87, 0x8F, 0x8F, 0x0F, 0x1F, 0x1E, 0x1E, 0x1E, 0x3C, 0x3C, 0x00, 0x79, 0xFF, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFC, 0x1F, 0xF7, 0xF0, 0x1F, 0xC0, 0xFC, 0x1F, 0xEF, 0xE1, 0xFF, 0xFE, 0x1F, 0xFF, 0xF1, 0xFF, 0x3F, 0x83, 0xC3, 0xF8, 0x3C, 0x3F, 0xC3, 0xC3, 0xFC, 0x3C, 0x3D, 0xE3, 0xC3, 0xDE, 0x3C, 0x3C, 0xF3, 0xC3, 0xC7, 0xBC, 0x3C, 0x7B, 0xC3, 0xC3, 0xFC, 0x3C, 0x3F, 0xC3, 0xC1, 0xFC, 0x3C, 0x1F, 0xCF, 0xF8, 0xFC, 0xFF, 0x87, 0xCF, 0xF8, 0x7C, 0x7F, 0x03, 0xC0, 0x01, 0xF8, 0x00, 0x7F, 0xE0, 0x0F, 0xFF, 0x81, 0xFF, 0xFC, 0x3F, 0x0F, 0xC7, 0xC0, 0x3E, 0x78, 0x01, 0xEF, 0x80, 0x1F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x1F, 0x78, 0x01, 0xE7, 0xC0, 0x3E, 0x3F, 0x0F, 0xC1, 0xFF, 0xF8, 0x1F, 0xFF, 0x00, 0x7F, 0xE0, 0x01, 0xF8, 0x00, 0x7F, 0xF8, 0x3F, 0xFF, 0x8F, 0xFF, 0xF3, 0xFF, 0xFE, 0x3C, 0x0F, 0xCF, 0x00, 0xF3, 0xC0, 0x3C, 0xF0, 0x0F, 0x3C, 0x03, 0xCF, 0x03, 0xF3, 0xFF, 0xF8, 0xFF, 0xFC, 0x3F, 0xFE, 0x0F, 0xFE, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x3F, 0xF8, 0x0F, 0xFE, 0x03, 0xFF, 0x80, 0x7F, 0xC0, 0x00, 0x01, 0xF8, 0x00, 0x7F, 0xE0, 0x0F, 0xFF, 0x01, 0xFF, 0xF8, 0x3F, 0x0F, 0xC7, 0xC0, 0x3E, 0x78, 0x01, 0xEF, 0x80, 0x1F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x1F, 0x78, 0x01, 0xE7, 0xC0, 0x3E, 0x3F, 0x0F, 0xC1, 0xFF, 0xF8, 0x0F, 0xFF, 0x00, 0x7F, 0xE0, 0x03, 0xF8, 0x00, 0x3F, 0x8E, 0x07, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xE0, 0x60, 0x78, 0x7F, 0xF8, 0x07, 0xFF, 0xF0, 0x3F, 0xFF, 0xE0, 0xFF, 0xFF, 0x01, 0xE0, 0x7C, 0x0F, 0x01, 0xE0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x0F, 0xC0, 0xFF, 0xFC, 0x07, 0xFF, 0xC0, 0x3F, 0xF8, 0x01, 0xFF, 0xE0, 0x0F, 0x0F, 0x80, 0x78, 0x3C, 0x03, 0xC0, 0xF0, 0x1E, 0x07, 0xC3, 0xFE, 0x1F, 0xBF, 0xF0, 0x7F, 0xFF, 0x83, 0xF7, 0xF8, 0x0F, 0x00, 0x07, 0xE7, 0x07, 0xFF, 0x8F, 0xFF, 0xC7, 0xFF, 0xE7, 0xC1, 0xF3, 0xC0, 0x79, 0xE0, 0x3C, 0xF8, 0x00, 0x7F, 0x80, 0x1F, 0xFC, 0x07, 0xFF, 0x81, 0xFF, 0xE0, 0x0F, 0xFB, 0x00, 0x7F, 0xC0, 0x1F, 0xE0, 0x0F, 0xFC, 0x1F, 0xFF, 0xFF, 0xBF, 0xFF, 0x8D, 0xFF, 0x80, 0x3F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x1F, 0xE1, 0xE3, 0xFC, 0x3C, 0x7F, 0x87, 0x8F, 0x60, 0xF0, 0xC0, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x01, 0xFF, 0xE0, 0x3F, 0xFC, 0x07, 0xFF, 0x80, 0x7F, 0xE0, 0xFF, 0x0F, 0xF7, 0xFC, 0x7F, 0xFF, 0xE3, 0xFE, 0xFF, 0x1F, 0xF3, 0xC0, 0x1E, 0x1E, 0x00, 0xF0, 0xF0, 0x07, 0x87, 0x80, 0x3C, 0x3C, 0x01, 0xE1, 0xE0, 0x0F, 0x0F, 0x00, 0x78, 0x78, 0x03, 0xC3, 0xC0, 0x1E, 0x1E, 0x00, 0xF0, 0xF0, 0x07, 0x87, 0xC0, 0x7C, 0x1F, 0x07, 0xC0, 0xFF, 0xFE, 0x03, 0xFF, 0xE0, 0x0F, 0xFE, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0x03, 0xFD, 0xFF, 0x07, 0xFF, 0xFE, 0x0F, 0xFB, 0xF8, 0x1F, 0xE1, 0xC0, 0x07, 0x03, 0xC0, 0x1E, 0x07, 0x80, 0x3C, 0x07, 0x80, 0xF0, 0x0F, 0x01, 0xE0, 0x0F, 0x03, 0x80, 0x1E, 0x0F, 0x00, 0x3E, 0x1E, 0x00, 0x3C, 0x78, 0x00, 0x78, 0xF0, 0x00, 0x7B, 0xC0, 0x00, 0xF7, 0x80, 0x01, 0xFF, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0xFF, 0x0F, 0xF7, 0xFC, 0x7F, 0xFF, 0xE3, 0xFF, 0xFE, 0x0F, 0xF7, 0x80, 0x0F, 0x3C, 0x38, 0x78, 0xE3, 0xE3, 0x87, 0x1F, 0x1C, 0x38, 0xF8, 0xE1, 0xEF, 0xE7, 0x0F, 0x7F, 0x78, 0x7B, 0xBB, 0xC3, 0xFD, 0xFE, 0x0F, 0xEF, 0xF0, 0x7E, 0x3F, 0x03, 0xF1, 0xF8, 0x1F, 0x8F, 0xC0, 0xFC, 0x3E, 0x07, 0xC1, 0xF0, 0x3E, 0x0F, 0x81, 0xF0, 0x7C, 0x00, 0x7E, 0x0F, 0xDF, 0xE3, 0xFF, 0xFC, 0x7F, 0xBF, 0x07, 0xE1, 0xE0, 0xF8, 0x3E, 0x3E, 0x03, 0xEF, 0x80, 0x3D, 0xE0, 0x03, 0xF8, 0x00, 0x3E, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00, 0x3F, 0x80, 0x0F, 0x78, 0x03, 0xC7, 0x80, 0xF8, 0x78, 0x3E, 0x0F, 0x8F, 0xE3, 0xFF, 0xFC, 0x7F, 0xFF, 0x8F, 0xF7, 0xE0, 0xFC, 0x7E, 0x07, 0xEF, 0xF0, 0xFF, 0xFF, 0x0F, 0xF7, 0xE0, 0x7E, 0x1E, 0x07, 0x81, 0xF0, 0xF8, 0x0F, 0x0F, 0x00, 0x79, 0xE0, 0x07, 0xFE, 0x00, 0x3F, 0xC0, 0x01, 0xF8, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0xFF, 0xE0, 0x0F, 0xFF, 0x00, 0xFF, 0xF0, 0x07, 0xFE, 0x00, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0xFC, 0xF0, 0x3C, 0xF0, 0x78, 0xF0, 0xF0, 0x70, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0F, 0x00, 0x1E, 0x0E, 0x1C, 0x0F, 0x38, 0x0F, 0x78, 0x0F, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFE, 0xFF, 0xFF, 0xFE, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0x80, 0x07, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x78, 0x00, 0x78, 0x00, 0xF0, 0x00, 0xF0, 0x01, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0x80, 0x07, 0x80, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x70, 0x7F, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x07, 0x00, 0x1F, 0x00, 0x7F, 0x00, 0xFE, 0x03, 0xDE, 0x0F, 0x1E, 0x3E, 0x3E, 0xF8, 0x3F, 0xE0, 0x3F, 0x80, 0x38, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xC3, 0x87, 0x0E, 0x1C, 0x30, 0x01, 0xFC, 0x01, 0xFF, 0xC0, 0x3F, 0xFC, 0x07, 0xFF, 0xC0, 0x00, 0x78, 0x0F, 0xFF, 0x07, 0xFF, 0xE1, 0xFF, 0xFC, 0x7F, 0xFF, 0x9F, 0x80, 0xF3, 0xC0, 0x1E, 0x78, 0x0F, 0xCF, 0xFF, 0xFE, 0xFF, 0xFF, 0xCF, 0xFF, 0xF8, 0x7F, 0x3E, 0x7C, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x3F, 0x01, 0xFF, 0xF8, 0x3F, 0xFF, 0x87, 0xFF, 0xF0, 0xFC, 0x1F, 0x1F, 0x01, 0xF3, 0xC0, 0x1E, 0x78, 0x03, 0xCF, 0x00, 0x79, 0xE0, 0x0F, 0x3E, 0x03, 0xE7, 0xE0, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xCF, 0xFF, 0xF0, 0xF9, 0xF8, 0x00, 0x03, 0xF3, 0x87, 0xFF, 0xCF, 0xFF, 0xEF, 0xFF, 0xF7, 0xE0, 0xFF, 0xC0, 0x3F, 0xC0, 0x0F, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x4F, 0x80, 0xF7, 0xFF, 0xF9, 0xFF, 0xF8, 0x7F, 0xF8, 0x0F, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x03, 0xF3, 0xC0, 0xFF, 0xBC, 0x1F, 0xFF, 0xC3, 0xFF, 0xFC, 0x7E, 0x0F, 0xC7, 0x80, 0x7C, 0xF0, 0x03, 0xCF, 0x00, 0x3C, 0xF0, 0x03, 0xCF, 0x00, 0x3C, 0xF8, 0x07, 0xC7, 0xE0, 0xFC, 0x7F, 0xFF, 0xF3, 0xFF, 0xFF, 0x0F, 0xFF, 0xF0, 0x3F, 0x3E, 0x03, 0xF0, 0x03, 0xFF, 0x01, 0xFF, 0xE0, 0xFF, 0xFC, 0x7E, 0x0F, 0x9E, 0x01, 0xEF, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xE0, 0x00, 0x7F, 0xFF, 0xCF, 0xFF, 0xF1, 0xFF, 0xF8, 0x0F, 0xF0, 0x03, 0xFC, 0x07, 0xFF, 0x0F, 0xFF, 0x1F, 0xFF, 0x1E, 0x00, 0x1E, 0x00, 0xFF, 0xF8, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0xF8, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0xFF, 0xF8, 0xFF, 0xF8, 0xFF, 0xF8, 0xFF, 0xF8, 0x07, 0xE7, 0xC3, 0xFF, 0xFC, 0xFF, 0xFF, 0xBF, 0xFF, 0xF7, 0xC1, 0xF9, 0xF0, 0x1F, 0x3C, 0x01, 0xE7, 0x80, 0x3C, 0xF0, 0x07, 0x9E, 0x00, 0xF3, 0xE0, 0x3E, 0x3E, 0x0F, 0xC7, 0xFF, 0xF8, 0x7F, 0xFF, 0x07, 0xFD, 0xE0, 0x3F, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x3E, 0x03, 0xFF, 0x80, 0x7F, 0xF0, 0x0F, 0xFC, 0x00, 0xFE, 0x00, 0x3E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0xF8, 0x03, 0xDF, 0xE0, 0x1F, 0xFF, 0x80, 0xFF, 0xFE, 0x07, 0xE1, 0xF0, 0x3E, 0x07, 0x81, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x1F, 0xC1, 0xFD, 0xFE, 0x0F, 0xFF, 0xF0, 0x7F, 0xBF, 0x01, 0xF8, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xC0, 0x3F, 0xC0, 0x3F, 0xC0, 0x3F, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x01, 0xFF, 0xFE, 0xFF, 0xEF, 0xFC, 0x7F, 0x00, 0x7C, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC7, 0xF0, 0xF3, 0xFC, 0x3C, 0xFF, 0x0F, 0x3F, 0x83, 0xDF, 0x00, 0xFF, 0x80, 0x3F, 0xC0, 0x0F, 0xE0, 0x03, 0xFC, 0x00, 0xF7, 0x80, 0x3C, 0xF0, 0x0F, 0x1F, 0x0F, 0xC3, 0xFB, 0xF1, 0xFF, 0xFC, 0x7F, 0xDF, 0x0F, 0xE0, 0x3F, 0xC0, 0x3F, 0xC0, 0x3F, 0xC0, 0x3F, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x3D, 0xE3, 0xC1, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x1F, 0xFF, 0xFE, 0x3E, 0x3C, 0x78, 0xF0, 0xF1, 0xE3, 0xC3, 0xC7, 0x8F, 0x0F, 0x1E, 0x3C, 0x3C, 0x78, 0xF0, 0xF1, 0xE3, 0xC3, 0xC7, 0x8F, 0x0F, 0x1E, 0xFE, 0x3E, 0x7F, 0xF8, 0xF9, 0xFF, 0xE3, 0xE7, 0xDF, 0x0F, 0x1E, 0x1E, 0x7C, 0x03, 0xEF, 0xF0, 0x3F, 0xFF, 0x83, 0xFF, 0xFC, 0x1F, 0x87, 0xC1, 0xE0, 0x3C, 0x1E, 0x03, 0xC1, 0xE0, 0x3C, 0x1E, 0x03, 0xC1, 0xE0, 0x3C, 0x1E, 0x03, 0xC1, 0xE0, 0x3C, 0x7F, 0x0F, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xF7, 0xE0, 0x7E, 0x03, 0xF8, 0x01, 0xFF, 0xC0, 0x7F, 0xFC, 0x1F, 0xFF, 0xC7, 0xE0, 0xFD, 0xF0, 0x07, 0xFC, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, 0x3F, 0xE0, 0x0F, 0xBF, 0x07, 0xE3, 0xFF, 0xF8, 0x3F, 0xFE, 0x03, 0xFF, 0x80, 0x1F, 0xC0, 0x3E, 0x7E, 0x03, 0xF7, 0xFC, 0x1F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC1, 0xF8, 0x3F, 0x0F, 0x80, 0x7C, 0x78, 0x01, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x78, 0xF0, 0x03, 0xC7, 0xC0, 0x3E, 0x3F, 0x07, 0xE1, 0xFF, 0xFE, 0x0F, 0xFF, 0xE0, 0x7B, 0xFE, 0x03, 0xCF, 0xC0, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x01, 0xFE, 0x00, 0x00, 0x03, 0xF3, 0xE0, 0x7F, 0xDF, 0x87, 0xFF, 0xFC, 0x7F, 0xFF, 0xE7, 0xE0, 0xFC, 0x7C, 0x03, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x78, 0xF0, 0x03, 0xC7, 0x80, 0x1E, 0x3E, 0x01, 0xF0, 0xFC, 0x1F, 0x83, 0xFF, 0xFC, 0x1F, 0xFF, 0xE0, 0x3F, 0xEF, 0x00, 0x7E, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x3F, 0xE0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x3F, 0xC0, 0x7E, 0x1E, 0x7F, 0x3F, 0xFF, 0xBF, 0xFF, 0xFF, 0xF1, 0xFE, 0x00, 0xFC, 0x00, 0x7C, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x0F, 0xFF, 0x87, 0xFF, 0xC3, 0xFF, 0xE1, 0xFF, 0xE0, 0x07, 0xE6, 0x1F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x78, 0x1E, 0x78, 0x0E, 0x7F, 0xE0, 0x3F, 0xFC, 0x03, 0xFE, 0x60, 0x1F, 0xE0, 0x0F, 0xF8, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFC, 0x07, 0xE0, 0x0C, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x07, 0xFF, 0xF3, 0xFF, 0xF9, 0xFF, 0xFC, 0xFF, 0xFC, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x07, 0x8F, 0xFF, 0xC3, 0xFF, 0xC1, 0xFF, 0xC0, 0x3F, 0x80, 0xFC, 0x1F, 0xBF, 0x0F, 0xEF, 0xC3, 0xFB, 0xF0, 0xFE, 0x3C, 0x07, 0x8F, 0x01, 0xE3, 0xC0, 0x78, 0xF0, 0x1E, 0x3C, 0x07, 0x8F, 0x01, 0xE3, 0xC0, 0x78, 0xF8, 0x7E, 0x3F, 0xFF, 0xC7, 0xFF, 0xF0, 0xFF, 0x7C, 0x0F, 0x9E, 0x7F, 0x07, 0xF7, 0xFC, 0x7F, 0xFF, 0xE3, 0xFE, 0xFE, 0x0F, 0xE1, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x3C, 0x1E, 0x01, 0xE0, 0xF0, 0x07, 0x8F, 0x00, 0x3E, 0x78, 0x00, 0xF7, 0x80, 0x07, 0xFC, 0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x7E, 0x03, 0xF7, 0xF8, 0x3F, 0xFF, 0xC1, 0xFE, 0xFC, 0x07, 0xF3, 0xC7, 0x0F, 0x1E, 0x7C, 0xF0, 0x73, 0xE7, 0x83, 0x9F, 0x7C, 0x1F, 0xFF, 0xC0, 0xFF, 0xFE, 0x03, 0xF7, 0xF0, 0x1F, 0xBF, 0x80, 0xFC, 0xF8, 0x07, 0xC7, 0xC0, 0x1E, 0x3E, 0x00, 0xE0, 0xE0, 0x7E, 0x0F, 0xDF, 0xE3, 0xFF, 0xFC, 0x7F, 0xBF, 0x07, 0xE1, 0xF1, 0xF0, 0x1F, 0xFC, 0x01, 0xFF, 0x00, 0x1F, 0xC0, 0x07, 0xF8, 0x01, 0xFF, 0xC0, 0x7E, 0xFC, 0x1F, 0x8F, 0xC7, 0xE0, 0xFD, 0xFE, 0x3F, 0xFF, 0xC7, 0xFF, 0xF0, 0x7F, 0x7E, 0x0F, 0xDF, 0xE3, 0xFF, 0xFC, 0x7F, 0xBF, 0x07, 0xE3, 0xC0, 0x78, 0x3C, 0x0E, 0x07, 0x83, 0xC0, 0x78, 0x70, 0x0F, 0x1E, 0x00, 0xE3, 0x80, 0x1E, 0xF0, 0x01, 0xDC, 0x00, 0x3F, 0x80, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0x00, 0x01, 0xE0, 0x00, 0x38, 0x00, 0x0F, 0x00, 0x3F, 0xF0, 0x0F, 0xFF, 0x01, 0xFF, 0xE0, 0x1F, 0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF9, 0xC7, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x78, 0x03, 0xC0, 0x1E, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x81, 0xF0, 0xFC, 0x7E, 0x1F, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0xF8, 0xFC, 0x3E, 0x0F, 0x83, 0xF0, 0x3E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xF0, 0x7E, 0x0F, 0xC3, 0xF0, 0x38, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x70, 0x3E, 0x0F, 0xC1, 0xF8, 0x3E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x7C, 0x0F, 0xC1, 0xF0, 0x7C, 0x3F, 0x1F, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x83, 0xE1, 0xF8, 0xFC, 0x3F, 0x07, 0x00, 0x1E, 0x00, 0x1F, 0xC0, 0x1F, 0xF0, 0xDF, 0xFC, 0xFF, 0x3F, 0xFB, 0x0F, 0xF8, 0x03, 0xF8, 0x00, 0x78}; const GFXglyph FreeMonoBold18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 21, 0, 1}, // 0x20 ' ' {0, 5, 22, 21, 8, -21}, // 0x21 '!' {14, 11, 10, 21, 5, -20}, // 0x22 '"' {28, 16, 25, 21, 3, -22}, // 0x23 '#' {78, 14, 28, 21, 4, -23}, // 0x24 '$' {127, 15, 21, 21, 3, -20}, // 0x25 '%' {167, 15, 20, 21, 3, -19}, // 0x26 '&' {205, 4, 10, 21, 8, -20}, // 0x27 ''' {210, 8, 27, 21, 9, -21}, // 0x28 '(' {237, 8, 27, 21, 4, -21}, // 0x29 ')' {264, 16, 15, 21, 3, -21}, // 0x2A '*' {294, 16, 19, 21, 3, -18}, // 0x2B '+' {332, 7, 10, 21, 5, -3}, // 0x2C ',' {341, 19, 4, 21, 1, -11}, // 0x2D '-' {351, 5, 5, 21, 8, -4}, // 0x2E '.' {355, 15, 28, 21, 3, -23}, // 0x2F '/' {408, 16, 23, 21, 3, -22}, // 0x30 '0' {454, 15, 22, 21, 3, -21}, // 0x31 '1' {496, 15, 23, 21, 3, -22}, // 0x32 '2' {540, 16, 23, 21, 3, -22}, // 0x33 '3' {586, 15, 21, 21, 3, -20}, // 0x34 '4' {626, 17, 22, 21, 2, -21}, // 0x35 '5' {673, 15, 23, 21, 4, -22}, // 0x36 '6' {717, 15, 22, 21, 3, -21}, // 0x37 '7' {759, 15, 23, 21, 3, -22}, // 0x38 '8' {803, 15, 23, 21, 4, -22}, // 0x39 '9' {847, 5, 16, 21, 8, -15}, // 0x3A ':' {857, 7, 22, 21, 5, -15}, // 0x3B ';' {877, 18, 16, 21, 1, -17}, // 0x3C '<' {913, 19, 10, 21, 1, -14}, // 0x3D '=' {937, 18, 16, 21, 2, -17}, // 0x3E '>' {973, 15, 21, 21, 4, -20}, // 0x3F '?' {1013, 15, 27, 21, 3, -21}, // 0x40 '@' {1064, 22, 21, 21, -1, -20}, // 0x41 'A' {1122, 20, 21, 21, 1, -20}, // 0x42 'B' {1175, 19, 21, 21, 1, -20}, // 0x43 'C' {1225, 18, 21, 21, 2, -20}, // 0x44 'D' {1273, 19, 21, 21, 1, -20}, // 0x45 'E' {1323, 19, 21, 21, 1, -20}, // 0x46 'F' {1373, 20, 21, 21, 1, -20}, // 0x47 'G' {1426, 21, 21, 21, 0, -20}, // 0x48 'H' {1482, 14, 21, 21, 4, -20}, // 0x49 'I' {1519, 19, 21, 21, 2, -20}, // 0x4A 'J' {1569, 20, 21, 21, 1, -20}, // 0x4B 'K' {1622, 18, 21, 21, 2, -20}, // 0x4C 'L' {1670, 23, 21, 21, -1, -20}, // 0x4D 'M' {1731, 20, 21, 21, 1, -20}, // 0x4E 'N' {1784, 20, 21, 21, 1, -20}, // 0x4F 'O' {1837, 18, 21, 21, 1, -20}, // 0x50 'P' {1885, 20, 26, 21, 1, -20}, // 0x51 'Q' {1950, 21, 21, 21, 0, -20}, // 0x52 'R' {2006, 17, 21, 21, 2, -20}, // 0x53 'S' {2051, 19, 21, 21, 1, -20}, // 0x54 'T' {2101, 21, 21, 21, 0, -20}, // 0x55 'U' {2157, 23, 21, 21, -1, -20}, // 0x56 'V' {2218, 21, 21, 21, 0, -20}, // 0x57 'W' {2274, 19, 21, 21, 1, -20}, // 0x58 'X' {2324, 20, 21, 21, 1, -20}, // 0x59 'Y' {2377, 16, 21, 21, 3, -20}, // 0x5A 'Z' {2419, 8, 27, 21, 9, -21}, // 0x5B '[' {2446, 15, 28, 21, 3, -23}, // 0x5C '\' {2499, 8, 27, 21, 4, -21}, // 0x5D ']' {2526, 15, 11, 21, 3, -21}, // 0x5E '^' {2547, 21, 4, 21, 0, 4}, // 0x5F '_' {2558, 6, 6, 21, 6, -22}, // 0x60 '`' {2563, 19, 16, 21, 1, -15}, // 0x61 'a' {2601, 19, 22, 21, 1, -21}, // 0x62 'b' {2654, 17, 16, 21, 2, -15}, // 0x63 'c' {2688, 20, 22, 21, 1, -21}, // 0x64 'd' {2743, 18, 16, 21, 1, -15}, // 0x65 'e' {2779, 16, 22, 21, 4, -21}, // 0x66 'f' {2823, 19, 23, 21, 1, -15}, // 0x67 'g' {2878, 21, 22, 21, 0, -21}, // 0x68 'h' {2936, 16, 22, 21, 3, -21}, // 0x69 'i' {2980, 12, 29, 21, 5, -21}, // 0x6A 'j' {3024, 18, 22, 21, 2, -21}, // 0x6B 'k' {3074, 16, 22, 21, 3, -21}, // 0x6C 'l' {3118, 22, 16, 21, -1, -15}, // 0x6D 'm' {3162, 20, 16, 21, 0, -15}, // 0x6E 'n' {3202, 19, 16, 21, 1, -15}, // 0x6F 'o' {3240, 21, 23, 21, 0, -15}, // 0x70 'p' {3301, 21, 23, 22, 1, -15}, // 0x71 'q' {3362, 17, 16, 21, 3, -15}, // 0x72 'r' {3396, 16, 16, 21, 3, -15}, // 0x73 's' {3428, 17, 21, 21, 1, -20}, // 0x74 't' {3473, 18, 16, 21, 1, -15}, // 0x75 'u' {3509, 21, 16, 21, 0, -15}, // 0x76 'v' {3551, 21, 16, 21, 0, -15}, // 0x77 'w' {3593, 19, 16, 21, 1, -15}, // 0x78 'x' {3631, 19, 23, 21, 1, -15}, // 0x79 'y' {3686, 14, 16, 21, 3, -15}, // 0x7A 'z' {3714, 10, 27, 21, 6, -21}, // 0x7B '{' {3748, 4, 27, 21, 9, -21}, // 0x7C '|' {3762, 10, 27, 21, 6, -21}, // 0x7D '}' {3796, 17, 8, 21, 2, -13}}; // 0x7E '~' const GFXfont FreeMonoBold18pt7b PROGMEM = { (uint8_t *)FreeMonoBold18pt7bBitmaps, (GFXglyph *)FreeMonoBold18pt7bGlyphs, 0x20, 0x7E, 35}; // Approx. 4485 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoBold24pt7b.h ================================================ const uint8_t FreeMonoBold24pt7bBitmaps[] PROGMEM = { 0x38, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xF3, 0xE7, 0xCF, 0x9F, 0x3E, 0x7C, 0xF9, 0xF3, 0xE3, 0x82, 0x00, 0x00, 0x00, 0x71, 0xF7, 0xFF, 0xEF, 0x9E, 0x00, 0xFC, 0x7E, 0xF8, 0x7D, 0xF0, 0xFB, 0xE1, 0xF7, 0xC3, 0xEF, 0x87, 0xDF, 0x0F, 0xBE, 0x1F, 0x38, 0x1C, 0x70, 0x38, 0xE0, 0x71, 0xC0, 0xE3, 0x81, 0xC7, 0x03, 0x80, 0x01, 0xC1, 0xC0, 0x0F, 0x8F, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x03, 0xE3, 0xE0, 0x0F, 0x8F, 0x80, 0x7E, 0x3E, 0x01, 0xF0, 0xF8, 0x07, 0xC7, 0xC0, 0x1F, 0x1F, 0x03, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFD, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x81, 0xF1, 0xF0, 0x07, 0xC7, 0xC0, 0x1F, 0x1F, 0x00, 0x7C, 0x7C, 0x1F, 0xFF, 0xFC, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFC, 0x0F, 0x8F, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x03, 0xE3, 0xE0, 0x0F, 0x8F, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x03, 0xE3, 0xE0, 0x0F, 0x8F, 0x80, 0x3C, 0x3C, 0x00, 0x00, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x1F, 0xFF, 0x07, 0xFF, 0xF1, 0xFF, 0xFE, 0x7F, 0xFF, 0xDF, 0xC1, 0xFB, 0xF0, 0x1F, 0x7C, 0x01, 0xEF, 0x80, 0x39, 0xF8, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0xFF, 0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0xC0, 0x07, 0xF8, 0x00, 0xFF, 0x80, 0x1F, 0xF8, 0x07, 0xFF, 0x81, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xCF, 0xFF, 0xF1, 0xDF, 0xFC, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0xF0, 0xE0, 0x0F, 0x07, 0x80, 0x70, 0x1C, 0x03, 0x80, 0xE0, 0x1C, 0x07, 0x00, 0xF0, 0x78, 0x03, 0xC3, 0x80, 0x1F, 0xFC, 0x00, 0x7F, 0xC1, 0xF0, 0xF8, 0x7F, 0x00, 0x3F, 0xF0, 0x0F, 0xFC, 0x03, 0xFF, 0x00, 0xFF, 0xC0, 0x07, 0xE0, 0xF8, 0x38, 0x1F, 0xE0, 0x01, 0xFF, 0x80, 0x0F, 0x1E, 0x00, 0xF0, 0x78, 0x07, 0x01, 0xC0, 0x38, 0x0E, 0x01, 0xC0, 0x70, 0x0F, 0x07, 0x80, 0x38, 0x78, 0x01, 0xFF, 0xC0, 0x07, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0xFC, 0x01, 0xFF, 0xE0, 0x1F, 0xFF, 0x00, 0xFF, 0xF8, 0x0F, 0xC7, 0x00, 0x7C, 0x10, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFE, 0x00, 0x0F, 0xF8, 0x00, 0xFF, 0xC7, 0xCF, 0xFF, 0x3F, 0x7E, 0xFF, 0xFF, 0xE7, 0xFF, 0xBE, 0x1F, 0xF9, 0xF0, 0x7F, 0x8F, 0x83, 0xFC, 0x7C, 0x0F, 0xE3, 0xF0, 0x7F, 0xCF, 0xFF, 0xFF, 0x7F, 0xFF, 0xF9, 0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x0F, 0xE0, 0x00, 0xFD, 0xF7, 0xDF, 0x7D, 0xF7, 0xDF, 0x38, 0xE3, 0x8E, 0x38, 0xE0, 0x01, 0x80, 0xF0, 0x7C, 0x3F, 0x0F, 0xC7, 0xE1, 0xF8, 0xFC, 0x3E, 0x0F, 0x87, 0xC1, 0xF0, 0x7C, 0x1F, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x81, 0xF0, 0x7C, 0x1F, 0x07, 0xC0, 0xF8, 0x3E, 0x0F, 0xC1, 0xF0, 0x7E, 0x0F, 0x83, 0xF0, 0x7C, 0x1F, 0x03, 0xC0, 0x60, 0x3C, 0x0F, 0x83, 0xF0, 0xFC, 0x1F, 0x83, 0xE0, 0xFC, 0x1F, 0x07, 0xC1, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1E, 0x0F, 0x83, 0xE0, 0xF8, 0x7C, 0x1F, 0x0F, 0xC3, 0xE1, 0xF8, 0x7C, 0x3F, 0x0F, 0x83, 0xE0, 0xF0, 0x00, 0x00, 0x70, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x10, 0x7C, 0x11, 0xF3, 0xE7, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0x87, 0xFF, 0xF0, 0x07, 0xFC, 0x00, 0x3F, 0xE0, 0x03, 0xFF, 0x80, 0x3F, 0x7E, 0x01, 0xFB, 0xF0, 0x1F, 0x8F, 0xC0, 0xF8, 0x3E, 0x03, 0x80, 0xE0, 0x00, 0x38, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x01, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x70, 0x00, 0x1F, 0x8F, 0x87, 0xC7, 0xC3, 0xE1, 0xE1, 0xF0, 0xF0, 0x78, 0x38, 0x3C, 0x1C, 0x0E, 0x06, 0x00, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0x7D, 0xFF, 0xFF, 0xFF, 0xEF, 0x80, 0x00, 0x00, 0x60, 0x00, 0x0F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x80, 0x01, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0xFF, 0x83, 0xFF, 0xFE, 0x1F, 0x83, 0xF1, 0xF8, 0x0F, 0xCF, 0x80, 0x3E, 0x7C, 0x01, 0xF7, 0xC0, 0x07, 0xFE, 0x00, 0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x03, 0xFF, 0x00, 0x1F, 0xF8, 0x00, 0xFF, 0xC0, 0x07, 0xFE, 0x00, 0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7D, 0xF0, 0x07, 0xCF, 0x80, 0x3E, 0x7E, 0x03, 0xF1, 0xF8, 0x3F, 0x0F, 0xFF, 0xF8, 0x3F, 0xFF, 0x80, 0xFF, 0xF8, 0x03, 0xFF, 0x80, 0x07, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x3F, 0x80, 0x0F, 0xF8, 0x01, 0xFF, 0x80, 0x7F, 0xF8, 0x0F, 0xEF, 0x80, 0xFC, 0xF8, 0x07, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x3F, 0xFF, 0xE7, 0xFF, 0xFF, 0x7F, 0xFF, 0xF7, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0xF8, 0x07, 0xFF, 0xF0, 0x7F, 0xFF, 0xC7, 0xFF, 0xFF, 0x3F, 0x03, 0xFB, 0xF0, 0x07, 0xFF, 0x00, 0x1F, 0xF8, 0x00, 0xFB, 0x80, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xE0, 0x0E, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x03, 0xF8, 0x00, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0xFF, 0xFF, 0x8F, 0xFF, 0xFE, 0x7E, 0x03, 0xF1, 0xC0, 0x0F, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x0F, 0xFC, 0x00, 0xFF, 0xC0, 0x07, 0xFC, 0x00, 0x3F, 0xF0, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x01, 0xFF, 0xC0, 0x3F, 0xBF, 0xFF, 0xFD, 0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x1F, 0xFF, 0xC0, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x7F, 0x80, 0x07, 0xF8, 0x00, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xEF, 0x80, 0x3E, 0xF8, 0x03, 0xCF, 0x80, 0x7C, 0xF8, 0x0F, 0x8F, 0x80, 0xF0, 0xF8, 0x1F, 0x0F, 0x81, 0xE0, 0xF8, 0x3E, 0x0F, 0x87, 0xC0, 0xF8, 0x78, 0x0F, 0x8F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x0F, 0x80, 0x07, 0xFE, 0x00, 0xFF, 0xF0, 0x0F, 0xFF, 0x00, 0xFF, 0xF0, 0x07, 0xFE, 0x3F, 0xFF, 0xC1, 0xFF, 0xFF, 0x0F, 0xFF, 0xF8, 0x7F, 0xFF, 0xC3, 0xFF, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0xBF, 0x00, 0x7F, 0xFF, 0x03, 0xFF, 0xFC, 0x1F, 0xFF, 0xF0, 0xFF, 0xFF, 0x83, 0xC0, 0xFE, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x3F, 0xF0, 0x03, 0xF7, 0xE0, 0x3F, 0xBF, 0xFF, 0xF9, 0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x1F, 0xFF, 0x80, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xC0, 0x0F, 0xFF, 0x01, 0xFF, 0xF0, 0x7F, 0xFF, 0x0F, 0xFF, 0xE1, 0xFF, 0x00, 0x1F, 0xC0, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x8F, 0xC0, 0xF9, 0xFF, 0x0F, 0xFF, 0xF8, 0xFF, 0xFF, 0xCF, 0xFF, 0xFC, 0xFF, 0x0F, 0xEF, 0xE0, 0x3E, 0xFC, 0x03, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xF7, 0xC0, 0x3F, 0x7E, 0x03, 0xF3, 0xF0, 0x7E, 0x3F, 0xFF, 0xE1, 0xFF, 0xFC, 0x0F, 0xFF, 0x80, 0x7F, 0xF0, 0x01, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0xF0, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x06, 0x00, 0x01, 0xF8, 0x00, 0xFF, 0xF0, 0x1F, 0xFF, 0x83, 0xFF, 0xFC, 0x7F, 0xFF, 0xE7, 0xE0, 0x7E, 0xFC, 0x03, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xF7, 0xC0, 0x3E, 0x7E, 0x07, 0xE3, 0xFF, 0xFC, 0x0F, 0xFF, 0x00, 0xFF, 0xF0, 0x1F, 0xFF, 0x83, 0xFF, 0xFC, 0x7F, 0x0F, 0xE7, 0xC0, 0x3E, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xFC, 0x03, 0xF7, 0xE0, 0x7E, 0x7F, 0xFF, 0xE3, 0xFF, 0xFC, 0x1F, 0xFF, 0x80, 0xFF, 0xF0, 0x03, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0xFF, 0xE0, 0x1F, 0xFF, 0x83, 0xFF, 0xF8, 0x7F, 0xFF, 0xC7, 0xE0, 0xFE, 0xFC, 0x03, 0xEF, 0x80, 0x3E, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x3F, 0xFC, 0x07, 0xF7, 0xE0, 0xFF, 0x7F, 0xFF, 0xF3, 0xFF, 0xFF, 0x1F, 0xFF, 0xF0, 0xFF, 0x9F, 0x03, 0xF1, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xE0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x0F, 0xF0, 0x7F, 0xFE, 0x0F, 0xFF, 0xC0, 0xFF, 0xF8, 0x0F, 0xFF, 0x00, 0x3F, 0x80, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xEF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xEF, 0x80, 0x0F, 0x87, 0xF1, 0xFC, 0x7F, 0x1F, 0xC3, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x1F, 0x87, 0xE1, 0xF0, 0xFC, 0x3E, 0x0F, 0x03, 0xC1, 0xE0, 0x78, 0x1C, 0x07, 0x01, 0x80, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFE, 0x00, 0x07, 0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x7F, 0xC0, 0x01, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x00, 0xFF, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xFE, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x7F, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1E, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xFC, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x7F, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xF0, 0x01, 0xFF, 0x00, 0x0F, 0xF8, 0x00, 0x7F, 0xC0, 0x03, 0xFE, 0x00, 0x1F, 0xF0, 0x00, 0xFF, 0x80, 0x03, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x01, 0xFF, 0xF0, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0xFF, 0xFF, 0xEF, 0xC0, 0x7E, 0xF8, 0x03, 0xFF, 0x80, 0x1F, 0x70, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x3F, 0xE0, 0x0F, 0xFC, 0x01, 0xFF, 0x00, 0x0F, 0xC0, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0xFF, 0x80, 0x3F, 0xF8, 0x0F, 0xFF, 0x83, 0xE0, 0xF8, 0x78, 0x07, 0x1E, 0x00, 0xF3, 0x80, 0x0E, 0x70, 0x01, 0xDE, 0x00, 0x3B, 0x80, 0x3F, 0x70, 0x1F, 0xEE, 0x07, 0xFD, 0xC1, 0xFF, 0xB8, 0x7E, 0x77, 0x0F, 0x0E, 0xE3, 0xC1, 0xDC, 0x70, 0x3B, 0x8E, 0x07, 0x71, 0xC0, 0xEE, 0x3C, 0x1D, 0xC3, 0xC3, 0xB8, 0x7F, 0xF7, 0x07, 0xFF, 0xE0, 0x7F, 0xFC, 0x03, 0xFB, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x61, 0xF0, 0x3E, 0x1F, 0xFF, 0xC3, 0xFF, 0xF0, 0x1F, 0xFC, 0x01, 0xFC, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x7F, 0xFE, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xF7, 0xC0, 0x00, 0x0F, 0xBE, 0x00, 0x00, 0x7D, 0xF8, 0x00, 0x07, 0xC7, 0xC0, 0x00, 0x3E, 0x3E, 0x00, 0x03, 0xE0, 0xF8, 0x00, 0x1F, 0x07, 0xC0, 0x00, 0xF0, 0x3F, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0x7F, 0xFF, 0xC0, 0x07, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0x00, 0xF8, 0x00, 0xF8, 0x0F, 0x80, 0x03, 0xE1, 0xFF, 0x80, 0xFF, 0xDF, 0xFE, 0x0F, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFF, 0x83, 0xFF, 0xDF, 0xF8, 0x0F, 0xFC, 0x7F, 0xFF, 0xC0, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFE, 0x07, 0xC0, 0x1F, 0xC1, 0xF0, 0x01, 0xF0, 0x7C, 0x00, 0x7C, 0x1F, 0x00, 0x1F, 0x07, 0xC0, 0x0F, 0xC1, 0xF0, 0x07, 0xE0, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFC, 0x1F, 0x00, 0x3F, 0x87, 0xC0, 0x03, 0xF1, 0xF0, 0x00, 0x7C, 0x7C, 0x00, 0x1F, 0x1F, 0x00, 0x07, 0xC7, 0xC0, 0x03, 0xF7, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0xE7, 0x01, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF1, 0xFE, 0x07, 0xF8, 0xFC, 0x01, 0xFC, 0xFC, 0x00, 0x7E, 0x7C, 0x00, 0x1F, 0x7E, 0x00, 0x0F, 0xBE, 0x00, 0x03, 0x9F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x39, 0xFC, 0x00, 0x7C, 0x7F, 0x80, 0xFF, 0x1F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7F, 0xFF, 0xF0, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC1, 0xF0, 0x0F, 0xF0, 0xF8, 0x01, 0xF8, 0x7C, 0x00, 0x7E, 0x3E, 0x00, 0x1F, 0x1F, 0x00, 0x0F, 0xCF, 0x80, 0x03, 0xE7, 0xC0, 0x01, 0xF3, 0xE0, 0x00, 0xF9, 0xF0, 0x00, 0x7C, 0xF8, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x3E, 0x00, 0x0F, 0x9F, 0x00, 0x07, 0xCF, 0x80, 0x07, 0xE7, 0xC0, 0x03, 0xE3, 0xE0, 0x03, 0xF1, 0xF0, 0x07, 0xF1, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xF0, 0xF8, 0x00, 0xF8, 0x7C, 0x00, 0x7C, 0x3E, 0x0E, 0x3E, 0x1F, 0x0F, 0x9F, 0x0F, 0x87, 0xC7, 0x07, 0xC3, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0x00, 0x1F, 0x0F, 0x80, 0x0F, 0x87, 0xC3, 0x87, 0xC1, 0xC3, 0xE3, 0xE0, 0x01, 0xF1, 0xF0, 0x00, 0xF8, 0xF8, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xF8, 0xF8, 0x00, 0x7C, 0x7C, 0x00, 0x3E, 0x3E, 0x00, 0x1F, 0x1F, 0x07, 0x0F, 0x8F, 0x87, 0xC3, 0x87, 0xC3, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0x00, 0x1F, 0x0F, 0x80, 0x0F, 0x87, 0xC0, 0x07, 0xC3, 0xE0, 0x03, 0xE0, 0xE0, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x8E, 0x00, 0xFF, 0xF7, 0x81, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF1, 0xFE, 0x03, 0xF8, 0xFC, 0x00, 0xFC, 0xFC, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x7E, 0x00, 0x07, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x0F, 0xFE, 0xF8, 0x0F, 0xFF, 0xFC, 0x07, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0x01, 0xF3, 0xF0, 0x00, 0xF9, 0xFC, 0x00, 0x7C, 0x7F, 0x80, 0xFE, 0x3F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0x00, 0x07, 0xFC, 0x00, 0x3F, 0xE1, 0xFF, 0x1F, 0xFC, 0xFF, 0xE7, 0xFF, 0x3F, 0xF9, 0xFF, 0xCF, 0xFE, 0x3F, 0xE1, 0xFF, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xF8, 0x1F, 0x00, 0x3E, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x07, 0xC0, 0x0F, 0x87, 0xFE, 0x1F, 0xFB, 0xFF, 0xCF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFC, 0xFF, 0xF7, 0xFE, 0x1F, 0xF8, 0x7F, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFC, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x1F, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xE0, 0x3F, 0xFF, 0xF0, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0xE0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8, 0x3E, 0x00, 0x7C, 0x1F, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0x07, 0xC0, 0x1F, 0x83, 0xF8, 0x3F, 0x81, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0xE0, 0xFF, 0x9F, 0xFE, 0x3F, 0xFB, 0xFF, 0xC7, 0xFF, 0x7F, 0xF8, 0xFF, 0xE7, 0xFE, 0x0F, 0xF8, 0x3E, 0x01, 0xF8, 0x07, 0xC0, 0xFE, 0x00, 0xF8, 0x3F, 0x80, 0x1F, 0x0F, 0xE0, 0x03, 0xE3, 0xF8, 0x00, 0x7D, 0xFC, 0x00, 0x0F, 0xFF, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0xFE, 0x7F, 0x00, 0x1F, 0x87, 0xF0, 0x03, 0xE0, 0x7E, 0x00, 0x7C, 0x07, 0xE0, 0x0F, 0x80, 0x7E, 0x01, 0xF0, 0x0F, 0xC0, 0x3E, 0x00, 0xF8, 0x1F, 0xF8, 0x1F, 0xF7, 0xFF, 0x81, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFE, 0x07, 0xFD, 0xFF, 0x80, 0x7F, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x0E, 0x07, 0xC0, 0x0F, 0x83, 0xE0, 0x07, 0xC1, 0xF0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8, 0x3E, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xE0, 0x3F, 0x80, 0x03, 0xF8, 0xFF, 0x80, 0x0F, 0xF9, 0xFF, 0x00, 0x1F, 0xF3, 0xFF, 0x00, 0x7F, 0xE3, 0xFE, 0x00, 0xFF, 0x83, 0xFE, 0x03, 0xFE, 0x07, 0xFC, 0x07, 0xFC, 0x0F, 0xFC, 0x1F, 0xF8, 0x1F, 0xF8, 0x3F, 0xF0, 0x3F, 0xF0, 0x7F, 0xE0, 0x7D, 0xF1, 0xF7, 0xC0, 0xFB, 0xE3, 0xEF, 0x81, 0xF7, 0xEF, 0xDF, 0x03, 0xE7, 0xDF, 0x3E, 0x07, 0xCF, 0xFE, 0x7C, 0x0F, 0x8F, 0xF8, 0xF8, 0x1F, 0x1F, 0xF1, 0xF0, 0x3E, 0x1F, 0xE3, 0xE0, 0x7C, 0x3F, 0x87, 0xC0, 0xF8, 0x3F, 0x0F, 0x81, 0xF0, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0x3E, 0x1F, 0xF8, 0x03, 0xFF, 0x7F, 0xF8, 0x0F, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFD, 0xFF, 0x80, 0x3F, 0xF0, 0x7F, 0x00, 0x7F, 0xEF, 0xF8, 0x0F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0x7F, 0xE0, 0x7F, 0xE1, 0xFF, 0x00, 0xF8, 0x1F, 0xF0, 0x0F, 0x81, 0xFF, 0x80, 0xF8, 0x1F, 0xFC, 0x0F, 0x81, 0xFF, 0xC0, 0xF8, 0x1F, 0x7E, 0x0F, 0x81, 0xF3, 0xF0, 0xF8, 0x1F, 0x3F, 0x0F, 0x81, 0xF1, 0xF8, 0xF8, 0x1F, 0x0F, 0xCF, 0x81, 0xF0, 0xFC, 0xF8, 0x1F, 0x07, 0xEF, 0x81, 0xF0, 0x3F, 0xF8, 0x1F, 0x03, 0xFF, 0x81, 0xF0, 0x1F, 0xF8, 0x1F, 0x00, 0xFF, 0x81, 0xF0, 0x0F, 0xF8, 0x7F, 0xE0, 0x7F, 0x8F, 0xFF, 0x03, 0xF8, 0xFF, 0xF0, 0x3F, 0x8F, 0xFF, 0x01, 0xF8, 0x7F, 0xE0, 0x0F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xE0, 0x3F, 0xC1, 0xFE, 0x0F, 0xE0, 0x0F, 0xE1, 0xF8, 0x00, 0xFC, 0x7E, 0x00, 0x0F, 0xCF, 0x80, 0x00, 0xFB, 0xF0, 0x00, 0x1F, 0xFC, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x1F, 0xBE, 0x00, 0x03, 0xE7, 0xE0, 0x00, 0xFC, 0x7E, 0x00, 0x3F, 0x0F, 0xE0, 0x0F, 0xE0, 0xFF, 0x07, 0xF8, 0x0F, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x00, 0xFF, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x7F, 0xFF, 0x80, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFE, 0x1F, 0x00, 0xFE, 0x1F, 0x00, 0x3F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x3F, 0x1F, 0x00, 0x7E, 0x1F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0, 0x1F, 0xFF, 0x80, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xE0, 0x3F, 0xC1, 0xFE, 0x0F, 0xE0, 0x0F, 0xE1, 0xF8, 0x00, 0xFC, 0x7E, 0x00, 0x0F, 0xCF, 0x80, 0x00, 0xFB, 0xF0, 0x00, 0x1F, 0xFC, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xFF, 0x80, 0x00, 0xFD, 0xF0, 0x00, 0x1F, 0x3F, 0x00, 0x07, 0xE7, 0xF0, 0x01, 0xF8, 0x7F, 0x00, 0x7F, 0x07, 0xF8, 0x3F, 0xC0, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x00, 0x7F, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xFF, 0x87, 0x80, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0x0F, 0x01, 0xF8, 0x00, 0x7F, 0xFF, 0x80, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFE, 0x00, 0xF8, 0x07, 0xE0, 0x0F, 0x80, 0x3F, 0x00, 0xF8, 0x01, 0xF0, 0x0F, 0x80, 0x1F, 0x00, 0xF8, 0x01, 0xF0, 0x0F, 0x80, 0x3F, 0x00, 0xF8, 0x0F, 0xE0, 0x0F, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x00, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0xF8, 0x3F, 0x80, 0x0F, 0x81, 0xFC, 0x00, 0xF8, 0x0F, 0xE0, 0x0F, 0x80, 0x7E, 0x00, 0xF8, 0x03, 0xF0, 0x7F, 0xF0, 0x1F, 0xEF, 0xFF, 0x81, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0x80, 0x7F, 0x7F, 0xF0, 0x07, 0xE0, 0x01, 0xFC, 0x70, 0x1F, 0xFD, 0xE0, 0xFF, 0xFF, 0x87, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8, 0xFC, 0x0F, 0xE7, 0xE0, 0x1F, 0x9F, 0x00, 0x3E, 0x7C, 0x00, 0xF9, 0xF0, 0x01, 0xC7, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xDC, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x01, 0xFF, 0xC0, 0x0F, 0xFF, 0xC0, 0xFE, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xCF, 0xFF, 0xFE, 0x1C, 0xFF, 0xF0, 0x00, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xF0, 0x7F, 0xE0, 0xF8, 0x3F, 0xF0, 0x7C, 0x1F, 0xF8, 0x3E, 0x0F, 0xFC, 0x1F, 0x07, 0xFE, 0x0F, 0x83, 0xEE, 0x07, 0xC0, 0xE0, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x07, 0xFF, 0xF0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xF8, 0x00, 0x7F, 0xE0, 0x7F, 0xEF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0xE0, 0x7F, 0xE1, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x80, 0x1F, 0x80, 0xF8, 0x01, 0xF0, 0x0F, 0xE0, 0x7F, 0x00, 0x7F, 0xFF, 0xE0, 0x03, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0xFF, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x7F, 0xE0, 0x1F, 0xFB, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0x7F, 0xE0, 0x1F, 0xF8, 0x7C, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0x7C, 0x03, 0xE0, 0x01, 0xF0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7E, 0x00, 0xF8, 0x00, 0xF8, 0x07, 0xC0, 0x03, 0xF0, 0x1F, 0x00, 0x07, 0xC0, 0xF8, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0x7E, 0x1F, 0x00, 0x00, 0xF8, 0x7C, 0x00, 0x03, 0xF3, 0xF0, 0x00, 0x07, 0xCF, 0x80, 0x00, 0x1F, 0xBE, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7F, 0xE0, 0x7F, 0xEF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0xE0, 0x7F, 0xE3, 0xE0, 0x00, 0x3C, 0x3E, 0x0F, 0x83, 0xC3, 0xE1, 0xF8, 0x3C, 0x3E, 0x1F, 0x87, 0xC3, 0xE1, 0xFC, 0x7C, 0x3E, 0x3F, 0xC7, 0xC1, 0xE3, 0xFC, 0x7C, 0x1F, 0x3F, 0xE7, 0xC1, 0xF7, 0xFE, 0x78, 0x1F, 0x7F, 0xE7, 0x81, 0xF7, 0x9F, 0xF8, 0x1F, 0xF9, 0xFF, 0x81, 0xFF, 0x9F, 0xF8, 0x0F, 0xF9, 0xFF, 0x80, 0xFF, 0x0F, 0xF8, 0x0F, 0xF0, 0xFF, 0x80, 0xFF, 0x0F, 0xF0, 0x0F, 0xE0, 0x7F, 0x00, 0xFE, 0x07, 0xF0, 0x0F, 0xE0, 0x7F, 0x00, 0xFC, 0x03, 0xF0, 0x07, 0xC0, 0x3F, 0x00, 0x7F, 0x80, 0xFF, 0x3F, 0xF0, 0x7F, 0xEF, 0xFC, 0x1F, 0xFB, 0xFF, 0x07, 0xFE, 0x7F, 0x80, 0xFF, 0x07, 0xE0, 0x3F, 0x00, 0xFC, 0x0F, 0x80, 0x1F, 0x87, 0xC0, 0x03, 0xF3, 0xE0, 0x00, 0xFF, 0xF8, 0x00, 0x1F, 0xFC, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0xFC, 0xF8, 0x00, 0x7E, 0x3F, 0x00, 0x3F, 0x07, 0xE0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x1F, 0x07, 0xFC, 0x0F, 0xFB, 0xFF, 0x87, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF8, 0x7F, 0xF7, 0xFC, 0x0F, 0xF8, 0x7F, 0x80, 0x7F, 0xBF, 0xF0, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x03, 0xFF, 0x7F, 0x80, 0x7F, 0x87, 0xE0, 0x1F, 0x80, 0xFC, 0x07, 0xC0, 0x1F, 0x03, 0xE0, 0x03, 0xE1, 0xF8, 0x00, 0xFC, 0x7C, 0x00, 0x1F, 0xBE, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x7F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0xFF, 0x00, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0x00, 0x7F, 0xFF, 0xF3, 0xFF, 0xFF, 0x9F, 0xFF, 0xFC, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x3E, 0x03, 0xF1, 0xF0, 0x1F, 0x8F, 0x81, 0xF8, 0x7C, 0x1F, 0x83, 0xE1, 0xF8, 0x0E, 0x1F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xE0, 0x70, 0x7E, 0x07, 0xC7, 0xE0, 0x3E, 0x7E, 0x01, 0xF7, 0xE0, 0x0F, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x60, 0x00, 0x0F, 0x00, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xC0, 0x00, 0x40, 0x00, 0x06, 0x00, 0x00, 0xF0, 0x00, 0x1F, 0x80, 0x03, 0xFC, 0x00, 0x7F, 0xE0, 0x0F, 0xFF, 0x00, 0xFF, 0xF8, 0x1F, 0x9F, 0x83, 0xF0, 0xFC, 0x7E, 0x07, 0xEF, 0xC0, 0x3F, 0xF8, 0x01, 0xFF, 0x80, 0x0F, 0x70, 0x00, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xE0, 0x78, 0x3E, 0x0F, 0xC3, 0xF0, 0x7C, 0x1E, 0x06, 0x01, 0xFF, 0x00, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x0F, 0xFF, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x7F, 0xFF, 0xF8, 0x7F, 0x00, 0xF8, 0xFC, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x03, 0xF8, 0xFC, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x1F, 0xFE, 0xFE, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x0F, 0xE0, 0x03, 0xEF, 0xFF, 0x00, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xF8, 0x3F, 0xE0, 0x7F, 0x07, 0xF0, 0x03, 0xF0, 0xFC, 0x00, 0x3E, 0x1F, 0x80, 0x07, 0xE3, 0xE0, 0x00, 0x7C, 0x7C, 0x00, 0x0F, 0x8F, 0x80, 0x01, 0xF1, 0xF0, 0x00, 0x3E, 0x3E, 0x00, 0x07, 0xC7, 0xE0, 0x01, 0xF8, 0xFC, 0x00, 0x3E, 0x1F, 0xC0, 0x0F, 0xCF, 0xFE, 0x07, 0xF3, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xE0, 0xFE, 0x7F, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFF, 0x18, 0x03, 0xFF, 0xFC, 0x0F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x3F, 0x81, 0xFC, 0x7E, 0x00, 0x7C, 0x7C, 0x00, 0x7C, 0xFC, 0x00, 0x3C, 0xF8, 0x00, 0x38, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7C, 0x00, 0x06, 0x7E, 0x00, 0x1F, 0x7F, 0x80, 0x7F, 0x3F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFC, 0x07, 0xFF, 0xF8, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0xFE, 0x3E, 0x00, 0xFF, 0xEF, 0x80, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFE, 0x1F, 0xE0, 0xFF, 0x87, 0xE0, 0x0F, 0xE1, 0xF0, 0x01, 0xF8, 0xFC, 0x00, 0x7E, 0x3E, 0x00, 0x0F, 0x8F, 0x80, 0x03, 0xE3, 0xE0, 0x00, 0xF8, 0xF8, 0x00, 0x3E, 0x3E, 0x00, 0x0F, 0x8F, 0xC0, 0x07, 0xE1, 0xF0, 0x01, 0xF8, 0x7E, 0x00, 0xFE, 0x0F, 0xE0, 0x7F, 0xE3, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xC0, 0xFF, 0xEF, 0xE0, 0x0F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x7F, 0x81, 0xFC, 0x7E, 0x00, 0x7E, 0xFC, 0x00, 0x3E, 0xF8, 0x00, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7F, 0x80, 0x7E, 0x3F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xE0, 0x03, 0xFF, 0xE0, 0x1F, 0xFF, 0xC0, 0xFF, 0xFF, 0x07, 0xFF, 0xF8, 0x1F, 0x80, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x01, 0xFF, 0xFF, 0x0F, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x01, 0xFF, 0xFF, 0x0F, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xFF, 0xBF, 0x83, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFB, 0xFC, 0x3F, 0xF9, 0xF8, 0x07, 0xF0, 0xF8, 0x01, 0xF8, 0xFC, 0x00, 0xFC, 0x7C, 0x00, 0x3E, 0x3E, 0x00, 0x1F, 0x1F, 0x00, 0x0F, 0x8F, 0x80, 0x07, 0xC7, 0xC0, 0x03, 0xE3, 0xF0, 0x03, 0xF0, 0xF8, 0x01, 0xF8, 0x7E, 0x01, 0xFC, 0x3F, 0xC3, 0xFE, 0x0F, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xC0, 0x3F, 0xFB, 0xE0, 0x07, 0xF1, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0x00, 0x3F, 0xFE, 0x00, 0x0F, 0xFC, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x0F, 0xC0, 0x07, 0xCF, 0xFC, 0x01, 0xF7, 0xFF, 0x80, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFC, 0x07, 0xFC, 0x1F, 0x81, 0xFC, 0x03, 0xE0, 0x7E, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x1F, 0xF0, 0x3F, 0xEF, 0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xE1, 0xFF, 0xDF, 0xF0, 0x3F, 0xE0, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x01, 0xFF, 0xC0, 0x0F, 0xFE, 0x00, 0x7F, 0xF0, 0x01, 0xFF, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x7F, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x00, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x3F, 0xBF, 0xFF, 0xBF, 0xFF, 0x9F, 0xFF, 0xCF, 0xFF, 0x83, 0xFF, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x87, 0xFC, 0x07, 0xC7, 0xFF, 0x03, 0xE3, 0xFF, 0x81, 0xF1, 0xFF, 0xC0, 0xF8, 0x7F, 0xC0, 0x7C, 0xFE, 0x00, 0x3E, 0xFE, 0x00, 0x1F, 0xFE, 0x00, 0x0F, 0xFE, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x80, 0x01, 0xFF, 0xE0, 0x00, 0xFF, 0xF8, 0x00, 0x7C, 0xFE, 0x00, 0x3E, 0x3F, 0x80, 0x1F, 0x0F, 0xE0, 0x3F, 0x81, 0xFF, 0xBF, 0xC1, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0x7F, 0xFB, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x01, 0xFF, 0xC0, 0x0F, 0xFE, 0x00, 0x7F, 0xF0, 0x01, 0xFF, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x03, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xF8, 0x00, 0x3C, 0x1F, 0x00, 0xFD, 0xFC, 0xFF, 0x07, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFF, 0xF0, 0xFF, 0x1F, 0x87, 0xC1, 0xF8, 0x7E, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF1, 0xFE, 0x1F, 0x87, 0xEF, 0xFC, 0x7F, 0x1F, 0xFF, 0xF1, 0xFC, 0x7F, 0xFF, 0xC7, 0xF1, 0xFD, 0xFE, 0x1F, 0x87, 0xE0, 0x00, 0x1F, 0x80, 0x1F, 0x9F, 0xF8, 0x1F, 0xDF, 0xFE, 0x0F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xC1, 0xFF, 0x07, 0xF0, 0x7F, 0x01, 0xF8, 0x3F, 0x00, 0x7C, 0x1F, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0x07, 0xC0, 0x0F, 0x83, 0xE0, 0x07, 0xC1, 0xF0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8, 0x3E, 0x00, 0x7C, 0x1F, 0x00, 0x3E, 0x3F, 0xE0, 0x7F, 0xBF, 0xF8, 0x7F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFE, 0x1F, 0xFB, 0xFE, 0x07, 0xF8, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xC1, 0xFE, 0x0F, 0xF1, 0xFC, 0x01, 0xFC, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x1F, 0xFC, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xF0, 0x00, 0x7E, 0xF8, 0x00, 0x7E, 0x7F, 0x00, 0x7F, 0x1F, 0xC0, 0xFF, 0x07, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xE0, 0x03, 0xF9, 0xFF, 0xC0, 0x7F, 0xBF, 0xFE, 0x07, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFF, 0xC3, 0xFF, 0x83, 0xFC, 0x0F, 0xE0, 0x0F, 0xE0, 0xFC, 0x00, 0x7E, 0x0F, 0xC0, 0x03, 0xF0, 0xF8, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x3F, 0x0F, 0xC0, 0x03, 0xF0, 0xFE, 0x00, 0x7E, 0x0F, 0xF8, 0x1F, 0xE0, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xF0, 0x0F, 0x9F, 0xFC, 0x00, 0xF8, 0x7F, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0xFF, 0xFC, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0xF9, 0xFC, 0x0F, 0xFF, 0xDF, 0xE1, 0xFF, 0xFF, 0xFE, 0x3F, 0xFF, 0xFF, 0xE3, 0xF8, 0x1F, 0xFC, 0x7F, 0x00, 0x7F, 0x07, 0xC0, 0x03, 0xF0, 0xFC, 0x00, 0x3F, 0x0F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x0F, 0xC0, 0x01, 0xF0, 0xFC, 0x00, 0x3F, 0x07, 0xE0, 0x07, 0xF0, 0x7F, 0x81, 0xFF, 0x03, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x03, 0xFF, 0x9F, 0x00, 0x0F, 0xE1, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x3F, 0xFF, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x01, 0xF0, 0x3F, 0xC7, 0xFC, 0x7F, 0xCF, 0xFE, 0x7F, 0xDF, 0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF, 0x0E, 0x07, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x7F, 0xFF, 0xC0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xC0, 0x03, 0xFC, 0x60, 0x7F, 0xFF, 0x87, 0xFF, 0xFC, 0x7F, 0xFF, 0xE7, 0xFF, 0xFF, 0x3F, 0x01, 0xF9, 0xF0, 0x07, 0xCF, 0xC0, 0x1C, 0x7F, 0xF0, 0x03, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x3F, 0xFF, 0xC0, 0x3F, 0xFF, 0x00, 0x0F, 0xFD, 0xC0, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xEF, 0xFF, 0xFE, 0x3F, 0xFF, 0xC0, 0x07, 0xF8, 0x00, 0x07, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0xFF, 0xF8, 0x7F, 0xFF, 0xF8, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x80, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x03, 0x83, 0xF0, 0x1F, 0x87, 0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xF8, 0x07, 0xFF, 0xC0, 0x03, 0xFC, 0x00, 0x7F, 0x01, 0xFE, 0x7F, 0x81, 0xFF, 0x3F, 0xC0, 0xFF, 0x9F, 0xE0, 0x7F, 0xC7, 0xF0, 0x1F, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8, 0x3E, 0x00, 0x7C, 0x1F, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0x07, 0xC0, 0x0F, 0x83, 0xE0, 0x07, 0xC1, 0xF0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x01, 0xF8, 0x3F, 0x01, 0xFC, 0x1F, 0xC1, 0xFF, 0x07, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xE0, 0xFF, 0xF7, 0xF0, 0x3F, 0xF3, 0xF0, 0x03, 0xF0, 0x00, 0x7F, 0xE0, 0x7F, 0xEF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0xE0, 0x7F, 0xE0, 0xF8, 0x01, 0xF0, 0x0F, 0xC0, 0x1F, 0x00, 0x7C, 0x03, 0xE0, 0x07, 0xE0, 0x3E, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xF0, 0x7C, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF8, 0xF8, 0x00, 0x0F, 0x9F, 0x00, 0x00, 0xFD, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x7F, 0x80, 0x1F, 0xEF, 0xFC, 0x03, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFC, 0x03, 0xFF, 0x7F, 0x80, 0x1F, 0xE1, 0xF0, 0xF8, 0x7C, 0x1F, 0x1F, 0x87, 0xC1, 0xF1, 0xF8, 0xFC, 0x1F, 0x1F, 0xCF, 0x80, 0xFB, 0xFC, 0xF8, 0x0F, 0xBF, 0xDF, 0x80, 0xFB, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x00, 0x7F, 0xDF, 0xF0, 0x07, 0xF9, 0xFF, 0x00, 0x7F, 0x9F, 0xE0, 0x07, 0xF0, 0xFE, 0x00, 0x3F, 0x0F, 0xE0, 0x03, 0xF0, 0x7E, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xE0, 0x3C, 0x00, 0x3F, 0xC0, 0xFF, 0x1F, 0xF8, 0x7F, 0xE7, 0xFE, 0x1F, 0xF9, 0xFF, 0x87, 0xFE, 0x3F, 0xC0, 0xFF, 0x03, 0xF8, 0x7F, 0x00, 0x7F, 0x3F, 0x80, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xE0, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xFF, 0x00, 0x03, 0xFF, 0xE0, 0x01, 0xFF, 0xFE, 0x00, 0xFE, 0x1F, 0xC0, 0x7F, 0x03, 0xF8, 0x7F, 0xC0, 0xFF, 0xBF, 0xF8, 0x7F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0x7F, 0xC0, 0xFF, 0x80, 0x7F, 0x80, 0x7F, 0xBF, 0xF0, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x03, 0xFF, 0x7F, 0x80, 0x7F, 0x8F, 0xC0, 0x07, 0x81, 0xF0, 0x03, 0xE0, 0x7E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xF0, 0x3E, 0x00, 0x7C, 0x0F, 0x80, 0x0F, 0x87, 0xC0, 0x03, 0xE1, 0xF0, 0x00, 0x7C, 0xF8, 0x00, 0x1F, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x1F, 0xFF, 0x80, 0x0F, 0xFF, 0xF0, 0x03, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x3F, 0xBE, 0x0F, 0xC3, 0x83, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x3B, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x78, 0x03, 0xF0, 0x1F, 0xC0, 0xFF, 0x07, 0xF8, 0x1F, 0x80, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x0F, 0x81, 0xFE, 0x0F, 0xF0, 0x3F, 0x80, 0xFF, 0x01, 0xFE, 0x00, 0xFC, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF8, 0x07, 0xF8, 0x0F, 0xF0, 0x3F, 0xC0, 0x7F, 0x00, 0x78, 0x77, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xE0, 0x78, 0x03, 0xF0, 0x0F, 0xE0, 0x3F, 0xC0, 0x7F, 0x00, 0x7E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x07, 0xC0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x03, 0xFC, 0x1F, 0xE0, 0xFC, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x07, 0xE0, 0x7F, 0x83, 0xFC, 0x0F, 0xF0, 0x3F, 0x80, 0x78, 0x00, 0x07, 0x80, 0x00, 0x7F, 0x80, 0x03, 0xFF, 0x03, 0x9F, 0xFE, 0x1F, 0xFF, 0xFC, 0xFF, 0xF3, 0xFF, 0xFF, 0x87, 0xFF, 0x9C, 0x0F, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0x00}; const GFXglyph FreeMonoBold24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 28, 0, 1}, // 0x20 ' ' {0, 7, 31, 28, 10, -29}, // 0x21 '!' {28, 15, 14, 28, 6, -28}, // 0x22 '"' {55, 22, 34, 28, 3, -30}, // 0x23 '#' {149, 19, 38, 28, 5, -31}, // 0x24 '$' {240, 21, 30, 28, 4, -28}, // 0x25 '%' {319, 21, 28, 28, 4, -26}, // 0x26 '&' {393, 6, 14, 28, 11, -28}, // 0x27 ''' {404, 10, 37, 28, 12, -29}, // 0x28 '(' {451, 10, 37, 28, 6, -29}, // 0x29 ')' {498, 21, 19, 28, 4, -28}, // 0x2A '*' {548, 23, 26, 28, 3, -25}, // 0x2B '+' {623, 9, 14, 28, 7, -6}, // 0x2C ',' {639, 24, 5, 28, 2, -15}, // 0x2D '-' {654, 7, 6, 28, 11, -4}, // 0x2E '.' {660, 20, 38, 28, 4, -32}, // 0x2F '/' {755, 21, 31, 28, 4, -29}, // 0x30 '0' {837, 20, 29, 28, 4, -28}, // 0x31 '1' {910, 21, 30, 28, 3, -29}, // 0x32 '2' {989, 21, 31, 28, 4, -29}, // 0x33 '3' {1071, 20, 28, 28, 4, -27}, // 0x34 '4' {1141, 21, 31, 28, 4, -29}, // 0x35 '5' {1223, 20, 31, 28, 5, -29}, // 0x36 '6' {1301, 20, 30, 28, 4, -29}, // 0x37 '7' {1376, 20, 31, 28, 4, -29}, // 0x38 '8' {1454, 20, 31, 28, 5, -29}, // 0x39 '9' {1532, 7, 22, 28, 11, -20}, // 0x3A ':' {1552, 10, 28, 28, 6, -20}, // 0x3B ';' {1587, 24, 21, 28, 2, -23}, // 0x3C '<' {1650, 24, 14, 28, 2, -19}, // 0x3D '=' {1692, 23, 22, 28, 3, -23}, // 0x3E '>' {1756, 20, 29, 28, 5, -27}, // 0x3F '?' {1829, 19, 36, 28, 4, -28}, // 0x40 '@' {1915, 29, 27, 28, -1, -26}, // 0x41 'A' {2013, 26, 27, 28, 1, -26}, // 0x42 'B' {2101, 25, 29, 28, 2, -27}, // 0x43 'C' {2192, 25, 27, 28, 1, -26}, // 0x44 'D' {2277, 25, 27, 28, 1, -26}, // 0x45 'E' {2362, 25, 27, 28, 1, -26}, // 0x46 'F' {2447, 25, 29, 28, 2, -27}, // 0x47 'G' {2538, 26, 27, 28, 1, -26}, // 0x48 'H' {2626, 19, 27, 28, 5, -26}, // 0x49 'I' {2691, 25, 28, 28, 3, -26}, // 0x4A 'J' {2779, 27, 27, 28, 1, -26}, // 0x4B 'K' {2871, 25, 27, 28, 2, -26}, // 0x4C 'L' {2956, 31, 27, 28, -1, -26}, // 0x4D 'M' {3061, 28, 27, 28, 0, -26}, // 0x4E 'N' {3156, 27, 29, 28, 1, -27}, // 0x4F 'O' {3254, 24, 27, 28, 1, -26}, // 0x50 'P' {3335, 27, 35, 28, 1, -27}, // 0x51 'Q' {3454, 28, 27, 28, 0, -26}, // 0x52 'R' {3549, 22, 29, 28, 3, -27}, // 0x53 'S' {3629, 25, 27, 28, 2, -26}, // 0x54 'T' {3714, 28, 28, 28, 0, -26}, // 0x55 'U' {3812, 30, 27, 28, -1, -26}, // 0x56 'V' {3914, 28, 27, 28, 0, -26}, // 0x57 'W' {4009, 26, 27, 28, 1, -26}, // 0x58 'X' {4097, 26, 27, 28, 1, -26}, // 0x59 'Y' {4185, 21, 27, 28, 4, -26}, // 0x5A 'Z' {4256, 10, 37, 28, 12, -29}, // 0x5B '[' {4303, 20, 38, 28, 4, -32}, // 0x5C '\' {4398, 10, 37, 28, 6, -29}, // 0x5D ']' {4445, 20, 15, 28, 4, -29}, // 0x5E '^' {4483, 28, 5, 28, 0, 5}, // 0x5F '_' {4501, 9, 8, 28, 8, -30}, // 0x60 '`' {4510, 24, 23, 28, 2, -21}, // 0x61 'a' {4579, 27, 31, 28, 0, -29}, // 0x62 'b' {4684, 24, 23, 28, 3, -21}, // 0x63 'c' {4753, 26, 31, 28, 2, -29}, // 0x64 'd' {4854, 24, 23, 28, 2, -21}, // 0x65 'e' {4923, 22, 30, 28, 4, -29}, // 0x66 'f' {5006, 25, 31, 28, 2, -21}, // 0x67 'g' {5103, 26, 30, 28, 1, -29}, // 0x68 'h' {5201, 21, 29, 28, 4, -28}, // 0x69 'i' {5278, 17, 38, 28, 5, -28}, // 0x6A 'j' {5359, 25, 30, 28, 2, -29}, // 0x6B 'k' {5453, 21, 30, 28, 4, -29}, // 0x6C 'l' {5532, 30, 22, 28, -1, -21}, // 0x6D 'm' {5615, 25, 22, 28, 1, -21}, // 0x6E 'n' {5684, 25, 23, 28, 2, -21}, // 0x6F 'o' {5756, 28, 31, 28, 0, -21}, // 0x70 'p' {5865, 28, 31, 28, 1, -21}, // 0x71 'q' {5974, 24, 22, 28, 3, -21}, // 0x72 'r' {6040, 21, 23, 28, 4, -21}, // 0x73 's' {6101, 23, 28, 28, 1, -26}, // 0x74 't' {6182, 25, 22, 28, 1, -20}, // 0x75 'u' {6251, 28, 21, 28, 0, -20}, // 0x76 'v' {6325, 28, 21, 28, 0, -20}, // 0x77 'w' {6399, 26, 21, 28, 1, -20}, // 0x78 'x' {6468, 26, 30, 28, 1, -20}, // 0x79 'y' {6566, 19, 21, 28, 5, -20}, // 0x7A 'z' {6616, 14, 37, 28, 7, -29}, // 0x7B '{' {6681, 5, 36, 28, 12, -28}, // 0x7C '|' {6704, 14, 37, 28, 8, -29}, // 0x7D '}' {6769, 22, 10, 28, 3, -17}}; // 0x7E '~' const GFXfont FreeMonoBold24pt7b PROGMEM = { (uint8_t *)FreeMonoBold24pt7bBitmaps, (GFXglyph *)FreeMonoBold24pt7bGlyphs, 0x20, 0x7E, 47}; // Approx. 7469 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoBold9pt7b.h ================================================ const uint8_t FreeMonoBold9pt7bBitmaps[] PROGMEM = { 0xFF, 0xFF, 0xD2, 0x1F, 0x80, 0xEC, 0x89, 0x12, 0x24, 0x40, 0x36, 0x36, 0x36, 0x7F, 0x7F, 0x36, 0xFF, 0xFF, 0x3C, 0x3C, 0x3C, 0x00, 0x18, 0xFF, 0xFE, 0x3C, 0x1F, 0x1F, 0x83, 0x46, 0x8D, 0xF0, 0xC1, 0x83, 0x00, 0x61, 0x22, 0x44, 0x86, 0x67, 0x37, 0x11, 0x22, 0x4C, 0x70, 0x3C, 0x7E, 0x60, 0x60, 0x30, 0x7B, 0xDF, 0xCE, 0xFF, 0x7F, 0xC9, 0x24, 0x37, 0x66, 0xCC, 0xCC, 0xCC, 0x66, 0x31, 0xCE, 0x66, 0x33, 0x33, 0x33, 0x66, 0xC8, 0x18, 0x18, 0xFF, 0xFF, 0x3C, 0x3C, 0x66, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x6B, 0x48, 0xFF, 0xFF, 0xC0, 0xF0, 0x02, 0x0C, 0x18, 0x60, 0xC3, 0x06, 0x0C, 0x30, 0x61, 0x83, 0x0C, 0x18, 0x20, 0x00, 0x38, 0xFB, 0xBE, 0x3C, 0x78, 0xF1, 0xE3, 0xC7, 0xDD, 0xF1, 0xC0, 0x38, 0xF3, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0xFD, 0xF8, 0x3C, 0xFE, 0xC7, 0x03, 0x03, 0x06, 0x0C, 0x18, 0x70, 0xE3, 0xFF, 0xFF, 0x7C, 0xFE, 0x03, 0x03, 0x03, 0x1E, 0x1E, 0x07, 0x03, 0x03, 0xFE, 0x7C, 0x1C, 0x38, 0xB1, 0x64, 0xD9, 0xBF, 0xFF, 0x3E, 0x7C, 0x7E, 0x3F, 0x18, 0x0F, 0xC7, 0xF3, 0x1C, 0x06, 0x03, 0xC3, 0xFF, 0x9F, 0x80, 0x0F, 0x3F, 0x30, 0x60, 0x60, 0xDC, 0xFE, 0xE3, 0xC3, 0x63, 0x7E, 0x3C, 0xFF, 0xFF, 0xC3, 0x03, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x18, 0x38, 0xFB, 0x1E, 0x3C, 0x6F, 0x9F, 0x63, 0xC7, 0x8F, 0xF1, 0xC0, 0x3C, 0x7E, 0xE6, 0xC3, 0xC3, 0xE7, 0x7F, 0x3B, 0x06, 0x0E, 0xFC, 0xF0, 0xF0, 0x0F, 0x6C, 0x00, 0x1A, 0xD2, 0x00, 0x01, 0x83, 0x87, 0x0E, 0x0F, 0x80, 0xE0, 0x1C, 0x03, 0xFF, 0xFF, 0xC0, 0x00, 0x0F, 0xFF, 0xFC, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0xF9, 0xE3, 0xC1, 0x80, 0x7C, 0xFE, 0xC7, 0x03, 0x0E, 0x1C, 0x00, 0x00, 0x00, 0x30, 0x30, 0x1E, 0x1F, 0x1C, 0xDC, 0x6C, 0x76, 0x7B, 0x6D, 0xB6, 0xDB, 0x6F, 0xF3, 0xFC, 0x06, 0x33, 0xF8, 0x78, 0x3C, 0x07, 0xC0, 0x38, 0x05, 0x81, 0xB0, 0x36, 0x0F, 0xE1, 0xFC, 0x71, 0xDF, 0x7F, 0xEF, 0x80, 0xFF, 0x3F, 0xE6, 0x19, 0x86, 0x7F, 0x1F, 0xE6, 0x1D, 0x83, 0x60, 0xFF, 0xFF, 0xF0, 0x1F, 0xBF, 0xD8, 0xF8, 0x3C, 0x06, 0x03, 0x01, 0x80, 0x61, 0xBF, 0xC7, 0xC0, 0xFE, 0x3F, 0xE6, 0x19, 0x83, 0x60, 0xD8, 0x36, 0x0D, 0x83, 0x61, 0xBF, 0xEF, 0xE0, 0xFF, 0xFF, 0xD8, 0x6D, 0xB7, 0xC3, 0xE1, 0xB0, 0xC3, 0x61, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xD8, 0x6D, 0xB7, 0xC3, 0xE1, 0xB0, 0xC0, 0x60, 0x7C, 0x3E, 0x00, 0x1F, 0x9F, 0xE6, 0x1B, 0x06, 0xC0, 0x30, 0x0C, 0x7F, 0x1F, 0xE1, 0x9F, 0xE3, 0xF0, 0xF7, 0xFB, 0xD8, 0xCC, 0x66, 0x33, 0xF9, 0xFC, 0xC6, 0x63, 0x7B, 0xFD, 0xE0, 0xFF, 0xF3, 0x0C, 0x30, 0xC3, 0x0C, 0x33, 0xFF, 0xC0, 0x1F, 0xC7, 0xF0, 0x30, 0x0C, 0x03, 0x00, 0xCC, 0x33, 0x0C, 0xC7, 0x3F, 0x87, 0xC0, 0xF7, 0xBD, 0xE6, 0x61, 0xB0, 0x78, 0x1F, 0x06, 0xE1, 0x98, 0x63, 0x3C, 0xFF, 0x3C, 0xFC, 0x7E, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC6, 0x63, 0x31, 0xFF, 0xFF, 0xE0, 0xE0, 0xFE, 0x3D, 0xC7, 0x3D, 0xE7, 0xBC, 0xD7, 0x9B, 0xB3, 0x76, 0x60, 0xDE, 0x3F, 0xC7, 0x80, 0xE1, 0xFE, 0x3D, 0xE3, 0x3C, 0x66, 0xCC, 0xDD, 0x99, 0xB3, 0x1E, 0x63, 0xDE, 0x3B, 0xC3, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x7C, 0x07, 0x80, 0xF0, 0x1F, 0x07, 0x71, 0xC7, 0xF0, 0x7C, 0x00, 0xFE, 0x7F, 0x98, 0x6C, 0x36, 0x1B, 0xF9, 0xF8, 0xC0, 0x60, 0x7C, 0x3E, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x7C, 0x07, 0x80, 0xF0, 0x1F, 0x07, 0x71, 0xC7, 0xF0, 0x7C, 0x0C, 0x33, 0xFE, 0x7F, 0x80, 0xFC, 0x7F, 0x18, 0xCC, 0x66, 0x73, 0xF1, 0xF0, 0xCC, 0x63, 0x7D, 0xFE, 0x60, 0x3F, 0xBF, 0xF0, 0x78, 0x0F, 0x03, 0xF8, 0x3F, 0x83, 0xC3, 0xFF, 0xBF, 0x80, 0xFF, 0xFF, 0xF6, 0x7B, 0x3D, 0x98, 0xC0, 0x60, 0x30, 0x18, 0x3F, 0x1F, 0x80, 0xF1, 0xFE, 0x3D, 0x83, 0x30, 0x66, 0x0C, 0xC1, 0x98, 0x33, 0x06, 0x60, 0xC7, 0xF0, 0x7C, 0x00, 0xFB, 0xFF, 0x7D, 0xC3, 0x18, 0xC3, 0x18, 0x36, 0x06, 0xC0, 0x50, 0x0E, 0x01, 0xC0, 0x10, 0x00, 0xFB, 0xFE, 0xF6, 0x0D, 0x93, 0x6E, 0xDB, 0xB7, 0xAD, 0xEE, 0x7B, 0x8E, 0xE3, 0x18, 0xF3, 0xFC, 0xF7, 0x38, 0xFC, 0x1E, 0x03, 0x01, 0xE0, 0xCC, 0x73, 0xBC, 0xFF, 0x3C, 0xF3, 0xFC, 0xF7, 0x38, 0xCC, 0x1E, 0x07, 0x80, 0xC0, 0x30, 0x0C, 0x0F, 0xC3, 0xF0, 0xFE, 0xFE, 0xC6, 0xCC, 0x18, 0x18, 0x30, 0x63, 0xC3, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFF, 0x01, 0x03, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0xC0, 0x80, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 0xFF, 0x10, 0x71, 0xE3, 0x6C, 0x70, 0x40, 0xFF, 0xFF, 0xFC, 0x88, 0x80, 0x7E, 0x3F, 0x8F, 0xCF, 0xEE, 0x36, 0x1B, 0xFE, 0xFF, 0xE0, 0x38, 0x06, 0x01, 0xBC, 0x7F, 0x9C, 0x76, 0x0D, 0x83, 0x71, 0xFF, 0xEE, 0xF0, 0x3F, 0xBF, 0xF8, 0x78, 0x3C, 0x07, 0x05, 0xFE, 0x7E, 0x03, 0x80, 0xE0, 0x18, 0xF6, 0x7F, 0xB8, 0xEC, 0x1B, 0x06, 0xE3, 0x9F, 0xF3, 0xFC, 0x3E, 0x3F, 0xB0, 0xFF, 0xFF, 0xFE, 0x01, 0xFE, 0x7E, 0x1F, 0x3F, 0x30, 0x7E, 0x7E, 0x30, 0x30, 0x30, 0x30, 0xFE, 0xFE, 0x3F, 0xBF, 0xF9, 0xD8, 0x6C, 0x37, 0x39, 0xFC, 0x76, 0x03, 0x01, 0x8F, 0xC7, 0xC0, 0xE0, 0x70, 0x18, 0x0D, 0xC7, 0xF3, 0x99, 0x8C, 0xC6, 0x63, 0x7B, 0xFD, 0xE0, 0x18, 0x18, 0x00, 0x78, 0x78, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x60, 0x3F, 0xFC, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0F, 0xFF, 0x80, 0xE0, 0x70, 0x18, 0x0D, 0xE6, 0xF3, 0xE1, 0xE0, 0xF8, 0x6E, 0x73, 0xF9, 0xE0, 0x78, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0xFD, 0x9F, 0xF9, 0x9B, 0x33, 0x66, 0x6C, 0xCD, 0xBD, 0xFF, 0xBF, 0xEE, 0x7F, 0x98, 0xCC, 0x66, 0x33, 0x1B, 0xDF, 0xEF, 0x3E, 0x3F, 0xB8, 0xF8, 0x3C, 0x1F, 0x1D, 0xFC, 0x7C, 0xEF, 0x1F, 0xF9, 0xC3, 0xB0, 0x36, 0x06, 0xE1, 0xDF, 0xF3, 0x78, 0x60, 0x0C, 0x03, 0xE0, 0x7C, 0x00, 0x1E, 0xEF, 0xFF, 0x87, 0x60, 0x6C, 0x0D, 0xC3, 0x9F, 0xF0, 0xF6, 0x00, 0xC0, 0x18, 0x0F, 0x81, 0xF0, 0x77, 0xBF, 0xCF, 0x06, 0x03, 0x01, 0x83, 0xF9, 0xFC, 0x3F, 0xFF, 0xC3, 0xFC, 0x3F, 0xC3, 0xFF, 0xFC, 0x60, 0x60, 0x60, 0xFE, 0xFE, 0x60, 0x60, 0x60, 0x61, 0x7F, 0x3E, 0xE7, 0x73, 0x98, 0xCC, 0x66, 0x33, 0x19, 0xFE, 0x7F, 0xFB, 0xFF, 0x7C, 0xC6, 0x18, 0xC1, 0xB0, 0x36, 0x03, 0x80, 0x70, 0xF1, 0xFE, 0x3D, 0xBB, 0x37, 0x63, 0xF8, 0x77, 0x0E, 0xE1, 0x8C, 0xF7, 0xFB, 0xCD, 0x83, 0x83, 0xC3, 0xBB, 0xDF, 0xEF, 0xF3, 0xFC, 0xF6, 0x18, 0xCC, 0x33, 0x07, 0x81, 0xE0, 0x30, 0x0C, 0x06, 0x0F, 0xC3, 0xF0, 0xFF, 0xFF, 0x30, 0xC3, 0x0C, 0x7F, 0xFF, 0x37, 0x66, 0x66, 0xCC, 0x66, 0x66, 0x73, 0xFF, 0xFF, 0xFF, 0xF0, 0xCE, 0x66, 0x66, 0x33, 0x66, 0x66, 0xEC, 0x70, 0x7C, 0xF3, 0xC0, 0xC0}; const GFXglyph FreeMonoBold9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 11, 0, 1}, // 0x20 ' ' {0, 3, 11, 11, 4, -10}, // 0x21 '!' {5, 7, 5, 11, 2, -10}, // 0x22 '"' {10, 8, 12, 11, 1, -10}, // 0x23 '#' {22, 7, 14, 11, 2, -11}, // 0x24 '$' {35, 7, 11, 11, 2, -10}, // 0x25 '%' {45, 8, 10, 11, 1, -9}, // 0x26 '&' {55, 3, 5, 11, 4, -10}, // 0x27 ''' {57, 4, 14, 11, 5, -10}, // 0x28 '(' {64, 4, 14, 11, 2, -10}, // 0x29 ')' {71, 8, 7, 11, 2, -10}, // 0x2A '*' {78, 8, 9, 11, 2, -8}, // 0x2B '+' {87, 3, 5, 11, 3, -1}, // 0x2C ',' {89, 9, 2, 11, 1, -5}, // 0x2D '-' {92, 2, 2, 11, 4, -1}, // 0x2E '.' {93, 7, 15, 11, 2, -12}, // 0x2F '/' {107, 7, 12, 11, 2, -11}, // 0x30 '0' {118, 7, 11, 11, 2, -10}, // 0x31 '1' {128, 8, 12, 11, 1, -11}, // 0x32 '2' {140, 8, 12, 11, 2, -11}, // 0x33 '3' {152, 7, 10, 11, 2, -9}, // 0x34 '4' {161, 9, 11, 11, 1, -10}, // 0x35 '5' {174, 8, 12, 11, 2, -11}, // 0x36 '6' {186, 8, 11, 11, 1, -10}, // 0x37 '7' {197, 7, 12, 11, 2, -11}, // 0x38 '8' {208, 8, 12, 11, 2, -11}, // 0x39 '9' {220, 2, 8, 11, 4, -7}, // 0x3A ':' {222, 3, 11, 11, 3, -7}, // 0x3B ';' {227, 9, 8, 11, 1, -8}, // 0x3C '<' {236, 9, 6, 11, 1, -7}, // 0x3D '=' {243, 9, 8, 11, 1, -8}, // 0x3E '>' {252, 8, 11, 11, 2, -10}, // 0x3F '?' {263, 9, 15, 11, 1, -11}, // 0x40 '@' {280, 11, 11, 11, 0, -10}, // 0x41 'A' {296, 10, 11, 11, 1, -10}, // 0x42 'B' {310, 9, 11, 11, 1, -10}, // 0x43 'C' {323, 10, 11, 11, 0, -10}, // 0x44 'D' {337, 9, 11, 11, 1, -10}, // 0x45 'E' {350, 9, 11, 11, 1, -10}, // 0x46 'F' {363, 10, 11, 11, 1, -10}, // 0x47 'G' {377, 9, 11, 11, 1, -10}, // 0x48 'H' {390, 6, 11, 11, 3, -10}, // 0x49 'I' {399, 10, 11, 11, 1, -10}, // 0x4A 'J' {413, 10, 11, 11, 1, -10}, // 0x4B 'K' {427, 9, 11, 11, 1, -10}, // 0x4C 'L' {440, 11, 11, 11, 0, -10}, // 0x4D 'M' {456, 11, 11, 11, 0, -10}, // 0x4E 'N' {472, 11, 11, 11, 0, -10}, // 0x4F 'O' {488, 9, 11, 11, 1, -10}, // 0x50 'P' {501, 11, 14, 11, 0, -10}, // 0x51 'Q' {521, 9, 11, 11, 1, -10}, // 0x52 'R' {534, 9, 11, 11, 1, -10}, // 0x53 'S' {547, 9, 11, 11, 1, -10}, // 0x54 'T' {560, 11, 11, 11, 0, -10}, // 0x55 'U' {576, 11, 11, 11, 0, -10}, // 0x56 'V' {592, 10, 11, 11, 0, -10}, // 0x57 'W' {606, 10, 11, 11, 0, -10}, // 0x58 'X' {620, 10, 11, 11, 0, -10}, // 0x59 'Y' {634, 8, 11, 11, 2, -10}, // 0x5A 'Z' {645, 4, 14, 11, 5, -10}, // 0x5B '[' {652, 7, 15, 11, 2, -12}, // 0x5C '\' {666, 4, 14, 11, 2, -10}, // 0x5D ']' {673, 7, 6, 11, 2, -11}, // 0x5E '^' {679, 11, 2, 11, 0, 3}, // 0x5F '_' {682, 3, 3, 11, 3, -11}, // 0x60 '`' {684, 9, 8, 11, 1, -7}, // 0x61 'a' {693, 10, 11, 11, 0, -10}, // 0x62 'b' {707, 9, 8, 11, 1, -7}, // 0x63 'c' {716, 10, 11, 11, 1, -10}, // 0x64 'd' {730, 9, 8, 11, 1, -7}, // 0x65 'e' {739, 8, 11, 11, 2, -10}, // 0x66 'f' {750, 9, 12, 11, 1, -7}, // 0x67 'g' {764, 9, 11, 11, 1, -10}, // 0x68 'h' {777, 8, 11, 11, 2, -10}, // 0x69 'i' {788, 6, 15, 11, 2, -10}, // 0x6A 'j' {800, 9, 11, 11, 1, -10}, // 0x6B 'k' {813, 8, 11, 11, 2, -10}, // 0x6C 'l' {824, 11, 8, 11, 0, -7}, // 0x6D 'm' {835, 9, 8, 11, 1, -7}, // 0x6E 'n' {844, 9, 8, 11, 1, -7}, // 0x6F 'o' {853, 11, 12, 11, 0, -7}, // 0x70 'p' {870, 11, 12, 11, 0, -7}, // 0x71 'q' {887, 9, 8, 11, 1, -7}, // 0x72 'r' {896, 8, 8, 11, 2, -7}, // 0x73 's' {904, 8, 11, 11, 1, -10}, // 0x74 't' {915, 9, 8, 11, 1, -7}, // 0x75 'u' {924, 11, 8, 11, 0, -7}, // 0x76 'v' {935, 11, 8, 11, 0, -7}, // 0x77 'w' {946, 9, 8, 11, 1, -7}, // 0x78 'x' {955, 10, 12, 11, 0, -7}, // 0x79 'y' {970, 7, 8, 11, 2, -7}, // 0x7A 'z' {977, 4, 14, 11, 3, -10}, // 0x7B '{' {984, 2, 14, 11, 5, -10}, // 0x7C '|' {988, 4, 14, 11, 4, -10}, // 0x7D '}' {995, 9, 4, 11, 1, -6}}; // 0x7E '~' const GFXfont FreeMonoBold9pt7b PROGMEM = {(uint8_t *)FreeMonoBold9pt7bBitmaps, (GFXglyph *)FreeMonoBold9pt7bGlyphs, 0x20, 0x7E, 18}; // Approx. 1672 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoBoldOblique12pt7b.h ================================================ const uint8_t FreeMonoBoldOblique12pt7bBitmaps[] PROGMEM = { 0x1C, 0xF3, 0xCE, 0x38, 0xE7, 0x1C, 0x61, 0x86, 0x00, 0x63, 0x8C, 0x00, 0xE7, 0xE7, 0xE6, 0xC6, 0xC6, 0xC4, 0x84, 0x03, 0x30, 0x19, 0x81, 0xDC, 0x0C, 0xE0, 0x66, 0x1F, 0xFC, 0xFF, 0xE1, 0x98, 0x0C, 0xC0, 0xEE, 0x06, 0x70, 0xFF, 0xCF, 0xFE, 0x1D, 0xC0, 0xCC, 0x06, 0x60, 0x77, 0x03, 0x30, 0x00, 0x01, 0x00, 0x70, 0x0C, 0x07, 0xF1, 0xFE, 0x71, 0xCC, 0x11, 0x80, 0x3F, 0x03, 0xF0, 0x0F, 0x20, 0x6E, 0x0D, 0xC3, 0x3F, 0xE7, 0xF8, 0x1C, 0x03, 0x00, 0x60, 0x0C, 0x00, 0x0E, 0x03, 0xE0, 0xC4, 0x10, 0x82, 0x30, 0x7C, 0x07, 0x78, 0x7C, 0x7F, 0x19, 0xF0, 0x62, 0x08, 0x41, 0x18, 0x3E, 0x03, 0x80, 0x07, 0xC1, 0xF8, 0x62, 0x0C, 0x01, 0x80, 0x38, 0x0F, 0x03, 0xF7, 0x6F, 0xD8, 0xF3, 0x1E, 0x7F, 0xE7, 0xF8, 0xFF, 0x6D, 0x20, 0x06, 0x1C, 0x70, 0xC3, 0x06, 0x18, 0x30, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x70, 0x60, 0xC1, 0x00, 0x0C, 0x18, 0x38, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x30, 0x61, 0xC3, 0x0E, 0x38, 0x61, 0xC2, 0x00, 0x06, 0x00, 0xC0, 0x18, 0x3F, 0x7F, 0xFE, 0xFF, 0x07, 0x81, 0xF8, 0x77, 0x0C, 0x60, 0x03, 0x00, 0x70, 0x07, 0x00, 0x60, 0x06, 0x0F, 0xFF, 0xFF, 0xF0, 0xE0, 0x0C, 0x00, 0xC0, 0x0C, 0x01, 0xC0, 0x18, 0x00, 0x1C, 0xE3, 0x1C, 0x63, 0x08, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x7F, 0x00, 0x00, 0x08, 0x00, 0x70, 0x01, 0x80, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x0C, 0x00, 0x70, 0x03, 0x80, 0x0C, 0x00, 0x70, 0x03, 0x80, 0x0C, 0x00, 0x70, 0x03, 0x80, 0x0C, 0x00, 0x70, 0x03, 0x80, 0x0C, 0x00, 0x20, 0x00, 0x07, 0x83, 0xF8, 0xE3, 0x98, 0x37, 0x06, 0xC0, 0xD8, 0x1B, 0x03, 0xE0, 0xF8, 0x1B, 0x03, 0x60, 0xEE, 0x38, 0xFE, 0x0F, 0x00, 0x03, 0xC1, 0xF0, 0x7E, 0x0C, 0xC0, 0x38, 0x07, 0x00, 0xC0, 0x18, 0x07, 0x00, 0xE0, 0x18, 0x03, 0x00, 0x61, 0xFF, 0xFF, 0xF0, 0x03, 0xE0, 0x3F, 0x83, 0x8E, 0x38, 0x31, 0x81, 0x80, 0x18, 0x01, 0xC0, 0x1C, 0x01, 0xC0, 0x38, 0x03, 0x80, 0x38, 0x47, 0x87, 0x3F, 0xF3, 0xFF, 0x80, 0x07, 0xC1, 0xFF, 0x18, 0x70, 0x03, 0x00, 0x30, 0x06, 0x07, 0xC0, 0x7C, 0x00, 0xE0, 0x06, 0x00, 0x60, 0x06, 0xC1, 0xCF, 0xF8, 0x7E, 0x00, 0x01, 0xE0, 0x3C, 0x0F, 0x03, 0x60, 0xCC, 0x3B, 0x8E, 0x63, 0x8C, 0x61, 0x9F, 0xFB, 0xFF, 0x01, 0x81, 0xF8, 0x3F, 0x00, 0x0F, 0xF1, 0xFE, 0x18, 0x01, 0x80, 0x18, 0x03, 0xF8, 0x3F, 0xC3, 0x8E, 0x00, 0x60, 0x06, 0x00, 0x60, 0x0C, 0xC1, 0xCF, 0xF8, 0x7E, 0x00, 0x03, 0xE1, 0xFC, 0x70, 0x1C, 0x03, 0x00, 0xC0, 0x1B, 0xC7, 0xFC, 0xF3, 0x98, 0x33, 0x06, 0x60, 0xCE, 0x30, 0xFC, 0x0F, 0x00, 0xFF, 0xFF, 0xFB, 0x07, 0x60, 0xC0, 0x38, 0x06, 0x01, 0xC0, 0x30, 0x0E, 0x01, 0x80, 0x70, 0x1C, 0x03, 0x80, 0x60, 0x08, 0x00, 0x07, 0x83, 0xF8, 0xE3, 0xB0, 0x36, 0x06, 0xC0, 0xDC, 0x31, 0xFC, 0x3F, 0x8C, 0x3B, 0x03, 0x60, 0x6C, 0x39, 0xFE, 0x1F, 0x00, 0x07, 0x81, 0xF8, 0x63, 0x98, 0x33, 0x06, 0x60, 0xCE, 0x79, 0xFF, 0x1E, 0xC0, 0x18, 0x06, 0x01, 0xC0, 0x71, 0xFC, 0x3E, 0x00, 0x19, 0xCC, 0x00, 0x00, 0x00, 0x67, 0x30, 0x06, 0x1C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x38, 0x71, 0xC3, 0x0E, 0x18, 0x20, 0x00, 0x00, 0x18, 0x03, 0xC0, 0x7C, 0x1F, 0x03, 0xE0, 0x3E, 0x00, 0x7C, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0x80, 0x08, 0x7F, 0xFB, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFB, 0xFF, 0xC0, 0x30, 0x01, 0xE0, 0x07, 0xC0, 0x0F, 0x00, 0x3E, 0x00, 0x7C, 0x1F, 0x03, 0xE0, 0x7C, 0x07, 0x80, 0x20, 0x00, 0x3E, 0x7F, 0xB0, 0xF8, 0x30, 0x18, 0x1C, 0x1C, 0x3C, 0x38, 0x18, 0x00, 0x06, 0x07, 0x03, 0x00, 0x03, 0xC0, 0x7E, 0x0C, 0x71, 0x83, 0x30, 0x33, 0x0F, 0x33, 0xE6, 0x76, 0x6C, 0x66, 0xC6, 0x6C, 0x6C, 0xFC, 0xC7, 0xEC, 0x00, 0xC0, 0x0C, 0x00, 0xE3, 0x07, 0xF0, 0x3C, 0x00, 0x07, 0xF0, 0x1F, 0xE0, 0x07, 0xC0, 0x1F, 0x80, 0x3B, 0x00, 0xE7, 0x01, 0x8E, 0x07, 0x1C, 0x1F, 0xF8, 0x3F, 0xF0, 0xE0, 0x71, 0x80, 0xEF, 0xC7, 0xFF, 0x8F, 0xC0, 0x3F, 0xF1, 0xFF, 0xC3, 0x06, 0x38, 0x31, 0xC1, 0x8C, 0x18, 0x7F, 0xC3, 0xFE, 0x38, 0x39, 0xC0, 0xCC, 0x06, 0x60, 0x6F, 0xFF, 0x7F, 0xE0, 0x03, 0xEC, 0x3F, 0xF1, 0xC3, 0x8C, 0x06, 0x60, 0x19, 0x80, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x03, 0x3C, 0x1C, 0x7F, 0xE0, 0x7E, 0x00, 0x3F, 0xE1, 0xFF, 0x87, 0x0C, 0x30, 0x31, 0x81, 0x8C, 0x0C, 0xE0, 0x67, 0x03, 0x30, 0x31, 0x81, 0x8C, 0x0C, 0xE1, 0xCF, 0xFC, 0x7F, 0x80, 0x1F, 0xFE, 0x3F, 0xFC, 0x38, 0x38, 0x70, 0x70, 0xCC, 0xC1, 0x98, 0x03, 0xF0, 0x0F, 0xE0, 0x1D, 0x80, 0x31, 0x18, 0x60, 0x70, 0xC0, 0xE7, 0xFF, 0x9F, 0xFF, 0x00, 0x1F, 0xFF, 0x1F, 0xFE, 0x0E, 0x06, 0x0C, 0x0E, 0x0C, 0xC4, 0x0C, 0xC0, 0x1F, 0xC0, 0x1F, 0xC0, 0x19, 0xC0, 0x19, 0x80, 0x18, 0x00, 0x38, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x07, 0xEC, 0x7F, 0xF3, 0x83, 0x9C, 0x06, 0x60, 0x19, 0x80, 0x0C, 0x00, 0x30, 0xFE, 0xC3, 0xFB, 0x01, 0xCC, 0x07, 0x3C, 0x38, 0x7F, 0xE0, 0x7E, 0x00, 0x0F, 0xBF, 0x1F, 0xBE, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x0C, 0x1C, 0x1F, 0xF8, 0x1F, 0xF8, 0x18, 0x18, 0x18, 0x38, 0x18, 0x38, 0x38, 0x30, 0x7C, 0xFC, 0xFC, 0xF8, 0x3F, 0xF3, 0xFF, 0x03, 0x00, 0x70, 0x07, 0x00, 0x60, 0x06, 0x00, 0x60, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xC0, 0xFF, 0xCF, 0xFC, 0x03, 0xFF, 0x03, 0xFF, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x70, 0x20, 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, 0xE0, 0xE1, 0xC0, 0xFF, 0x80, 0x3F, 0x00, 0x1F, 0x9F, 0x1F, 0x9E, 0x0E, 0x38, 0x0C, 0x70, 0x0C, 0xE0, 0x0F, 0xC0, 0x1F, 0xC0, 0x1F, 0xE0, 0x1C, 0xE0, 0x18, 0x60, 0x18, 0x70, 0x38, 0x70, 0xFE, 0x3C, 0xFC, 0x3C, 0x3F, 0xC1, 0xFE, 0x01, 0x80, 0x1C, 0x00, 0xE0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x1C, 0x18, 0xE0, 0xC6, 0x06, 0x30, 0x7F, 0xFF, 0xFF, 0xF8, 0x1E, 0x07, 0x87, 0x81, 0xE0, 0xF0, 0xF0, 0x7C, 0x7C, 0x1F, 0x1F, 0x06, 0xCF, 0x81, 0xBF, 0x60, 0xEF, 0x98, 0x3B, 0xEE, 0x0C, 0x73, 0x83, 0x1C, 0xC0, 0xC0, 0x30, 0xFC, 0x7E, 0x3F, 0x1F, 0x80, 0x3C, 0x3F, 0x3E, 0x3F, 0x1E, 0x0C, 0x1F, 0x1C, 0x1F, 0x1C, 0x1B, 0x98, 0x3B, 0x98, 0x3B, 0x98, 0x31, 0xF8, 0x31, 0xF8, 0x30, 0xF0, 0x70, 0xF0, 0xFC, 0x70, 0xF8, 0x70, 0x03, 0xE0, 0x3F, 0xE1, 0xC3, 0x8C, 0x07, 0x60, 0x0D, 0x80, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x1B, 0x00, 0x6E, 0x03, 0x1C, 0x38, 0x7F, 0xC0, 0x7C, 0x00, 0x3F, 0xE1, 0xFF, 0x83, 0x0E, 0x38, 0x31, 0xC1, 0x8C, 0x0C, 0x60, 0xC3, 0xFC, 0x3F, 0xC1, 0xC0, 0x0C, 0x00, 0x60, 0x0F, 0xF0, 0x7F, 0x80, 0x03, 0xE0, 0x3F, 0xE1, 0xC3, 0x8C, 0x07, 0x60, 0x0D, 0x80, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x1B, 0x00, 0x6E, 0x03, 0x1C, 0x38, 0x7F, 0xC0, 0xFC, 0x03, 0x02, 0x1F, 0xFC, 0xFF, 0xE0, 0x1F, 0xF0, 0x3F, 0xF0, 0x38, 0x70, 0x60, 0x60, 0xC0, 0xC1, 0x87, 0x07, 0xFC, 0x0F, 0xF0, 0x18, 0xF0, 0x30, 0xE0, 0x60, 0xC1, 0xC1, 0xCF, 0xE1, 0xFF, 0xC3, 0xC0, 0x0F, 0xB1, 0xFF, 0x30, 0xE6, 0x06, 0x60, 0x67, 0x80, 0x7F, 0x01, 0xFC, 0x01, 0xC4, 0x0C, 0xC0, 0xCE, 0x18, 0xFF, 0x8B, 0xE0, 0x7F, 0xFB, 0xFF, 0xD9, 0xCF, 0xCE, 0x7C, 0x63, 0x63, 0x18, 0x18, 0x01, 0xC0, 0x0E, 0x00, 0x60, 0x03, 0x00, 0x18, 0x0F, 0xF8, 0x7F, 0xC0, 0x7E, 0xFF, 0xF3, 0xF3, 0x03, 0x1C, 0x0C, 0x60, 0x31, 0x81, 0xC6, 0x06, 0x38, 0x18, 0xE0, 0x63, 0x03, 0x8C, 0x0C, 0x30, 0x70, 0x7F, 0x80, 0xF8, 0x00, 0xFC, 0x7F, 0xF8, 0xFD, 0xC0, 0x61, 0x81, 0xC3, 0x87, 0x07, 0x0C, 0x0E, 0x38, 0x0C, 0x60, 0x19, 0xC0, 0x3F, 0x00, 0x7C, 0x00, 0xF8, 0x00, 0xE0, 0x01, 0x80, 0x00, 0x7E, 0x7E, 0xFC, 0xFD, 0xC0, 0x73, 0x9C, 0xE7, 0x79, 0x8E, 0xF7, 0x1B, 0xEE, 0x36, 0xD8, 0x7D, 0xF0, 0xF3, 0xE1, 0xE7, 0x83, 0x8F, 0x07, 0x1E, 0x1C, 0x38, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x0E, 0x1C, 0x07, 0x38, 0x07, 0x70, 0x03, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0xE0, 0x0E, 0xE0, 0x1C, 0x70, 0x38, 0x70, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xFF, 0xC7, 0xCC, 0x38, 0x73, 0x83, 0x9C, 0x0F, 0xC0, 0x7C, 0x01, 0xC0, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x38, 0x0F, 0xF8, 0x7F, 0x80, 0x0F, 0xF8, 0x7F, 0xE1, 0xC7, 0x86, 0x1C, 0x18, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0x70, 0xC3, 0x83, 0x1C, 0x1C, 0x7F, 0xF3, 0xFF, 0x80, 0x0F, 0x87, 0xC3, 0x03, 0x81, 0xC0, 0xC0, 0x60, 0x30, 0x38, 0x1C, 0x0C, 0x06, 0x03, 0x03, 0x81, 0xC0, 0xC0, 0x60, 0x3E, 0x3F, 0x00, 0x41, 0xC3, 0x83, 0x07, 0x0E, 0x1C, 0x18, 0x38, 0x70, 0xE0, 0xC1, 0xC3, 0x83, 0x06, 0x0E, 0x1C, 0x18, 0x20, 0x1F, 0x0F, 0x80, 0xC0, 0xE0, 0x70, 0x30, 0x18, 0x0C, 0x0E, 0x07, 0x03, 0x01, 0x80, 0xC0, 0xE0, 0x70, 0x30, 0x18, 0x7C, 0x3E, 0x00, 0x02, 0x01, 0x80, 0xF0, 0x7E, 0x3B, 0x9C, 0x7E, 0x1F, 0x03, 0xFF, 0xFF, 0xFF, 0xFC, 0xCE, 0x73, 0x1F, 0xC3, 0xFE, 0x00, 0x60, 0x06, 0x0F, 0xE3, 0xFE, 0x70, 0xCC, 0x0C, 0xC3, 0xCF, 0xFF, 0x7F, 0xF0, 0x1E, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xDF, 0x81, 0xFF, 0x83, 0xC3, 0x8F, 0x03, 0x1C, 0x06, 0x38, 0x0C, 0x70, 0x18, 0xE0, 0x63, 0xE1, 0x9F, 0xFE, 0x3D, 0xF8, 0x00, 0x0F, 0xF3, 0xFF, 0x30, 0x76, 0x07, 0xE0, 0x6C, 0x00, 0xC0, 0x0C, 0x00, 0xE0, 0x67, 0xFE, 0x3F, 0x80, 0x00, 0x3C, 0x00, 0xF0, 0x01, 0xC0, 0x06, 0x07, 0xD8, 0x7F, 0xE3, 0x0F, 0x98, 0x1E, 0x60, 0x73, 0x01, 0xCC, 0x07, 0x30, 0x3C, 0xE1, 0xF1, 0xFF, 0xE3, 0xF7, 0x80, 0x0F, 0xC1, 0xFE, 0x78, 0x76, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x0C, 0x00, 0xE0, 0xE7, 0xFE, 0x1F, 0x80, 0x00, 0xFC, 0x07, 0xF8, 0x0C, 0x00, 0x38, 0x01, 0xFF, 0x07, 0xFE, 0x01, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x01, 0xC0, 0x1F, 0xF8, 0x3F, 0xF0, 0x00, 0x0F, 0xBC, 0x7F, 0xF3, 0x0F, 0x18, 0x1C, 0xC0, 0x73, 0x01, 0x8C, 0x0E, 0x30, 0x38, 0xE3, 0xE1, 0xFF, 0x83, 0xEC, 0x00, 0x30, 0x01, 0xC0, 0x06, 0x07, 0xF0, 0x1F, 0x80, 0x1E, 0x01, 0xF0, 0x03, 0x00, 0x18, 0x00, 0xDE, 0x0F, 0xF8, 0x78, 0xC3, 0x86, 0x18, 0x30, 0xC1, 0x8E, 0x1C, 0x70, 0xE3, 0x06, 0x7E, 0xFF, 0xE7, 0xE0, 0x03, 0x80, 0x70, 0x00, 0x0F, 0xC1, 0xF0, 0x06, 0x00, 0xC0, 0x38, 0x07, 0x00, 0xC0, 0x18, 0x03, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x70, 0x07, 0x00, 0x00, 0xFF, 0x1F, 0xF0, 0x07, 0x00, 0x70, 0x06, 0x00, 0x60, 0x06, 0x00, 0xE0, 0x0E, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x1C, 0x03, 0x87, 0xF0, 0xFE, 0x00, 0x1E, 0x00, 0x78, 0x00, 0xE0, 0x03, 0x80, 0x0C, 0xFC, 0x33, 0xE0, 0xDE, 0x07, 0xE0, 0x1F, 0x00, 0x7C, 0x01, 0xF8, 0x06, 0xF0, 0x39, 0xC3, 0xE7, 0xEF, 0x1F, 0x80, 0x0F, 0x81, 0xF0, 0x06, 0x01, 0xC0, 0x38, 0x06, 0x00, 0xC0, 0x18, 0x07, 0x00, 0xE0, 0x18, 0x03, 0x00, 0x61, 0xFF, 0xFF, 0xF8, 0x3F, 0xBC, 0x7F, 0xFC, 0xF3, 0x98, 0xC6, 0x33, 0x9C, 0xE7, 0x39, 0xCC, 0x63, 0x18, 0xC6, 0x31, 0x8D, 0xF7, 0xBF, 0xEF, 0x78, 0x3D, 0xE1, 0xFF, 0x8F, 0x8C, 0x38, 0x61, 0x83, 0x0C, 0x18, 0xE1, 0xC7, 0x0E, 0x30, 0x67, 0xEF, 0xFE, 0x7E, 0x07, 0xC1, 0xFE, 0x38, 0x76, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x06, 0xE1, 0xC7, 0xF8, 0x3E, 0x00, 0x1E, 0xFC, 0x1F, 0xFE, 0x0F, 0x87, 0x0F, 0x03, 0x0E, 0x03, 0x0E, 0x03, 0x0E, 0x07, 0x0E, 0x06, 0x1F, 0x0C, 0x1F, 0xF8, 0x19, 0xF0, 0x18, 0x00, 0x18, 0x00, 0x38, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x0F, 0xDE, 0x3F, 0xFC, 0xC3, 0xE3, 0x03, 0x84, 0x07, 0x18, 0x0E, 0x30, 0x1C, 0x60, 0x78, 0xE1, 0xE0, 0xFF, 0xC0, 0xF9, 0x80, 0x03, 0x00, 0x0E, 0x00, 0x1C, 0x01, 0xFC, 0x03, 0xF8, 0x1E, 0x78, 0x7F, 0xF0, 0x7C, 0xC3, 0xC0, 0x0E, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x1C, 0x03, 0xFF, 0x0F, 0xFC, 0x00, 0x07, 0xF1, 0xFF, 0x30, 0x73, 0x86, 0x3F, 0x81, 0xFE, 0x03, 0xE6, 0x06, 0xE0, 0xEF, 0xFC, 0xFF, 0x00, 0x0C, 0x07, 0x01, 0x83, 0xFF, 0xFF, 0xCE, 0x03, 0x00, 0xC0, 0x30, 0x1C, 0x07, 0x01, 0x83, 0x7F, 0xCF, 0xC0, 0xF0, 0xFF, 0x1F, 0x60, 0x76, 0x07, 0x60, 0x76, 0x06, 0x60, 0x66, 0x0E, 0x61, 0xE7, 0xFF, 0x3E, 0xF0, 0x7E, 0x7E, 0xFC, 0xFC, 0xE0, 0xC0, 0xC3, 0x81, 0x86, 0x03, 0x98, 0x07, 0x70, 0x06, 0xC0, 0x0F, 0x80, 0x1E, 0x00, 0x38, 0x00, 0xF8, 0x7F, 0xE3, 0xE6, 0x63, 0x1B, 0xDC, 0x6F, 0x61, 0xFF, 0x87, 0xFC, 0x1E, 0xF0, 0x73, 0x81, 0xCE, 0x06, 0x38, 0x00, 0x3E, 0x7C, 0xF9, 0xF1, 0xE7, 0x03, 0xF8, 0x07, 0xC0, 0x1F, 0x01, 0xFC, 0x0F, 0x38, 0x78, 0xFB, 0xF7, 0xEF, 0x9F, 0x80, 0x1F, 0x1F, 0x3E, 0x1F, 0x1C, 0x1C, 0x0C, 0x18, 0x0E, 0x38, 0x0E, 0x70, 0x06, 0x60, 0x07, 0xE0, 0x07, 0xC0, 0x07, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x07, 0x00, 0x0E, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x1F, 0xF1, 0xFF, 0x38, 0xE3, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC6, 0x38, 0x67, 0xFE, 0x7F, 0xE0, 0x01, 0xC0, 0xF0, 0x70, 0x18, 0x06, 0x03, 0x80, 0xE0, 0x30, 0x1C, 0x3E, 0x0F, 0x00, 0x60, 0x18, 0x06, 0x03, 0x80, 0xC0, 0x30, 0x0F, 0x01, 0xC0, 0x0C, 0x71, 0xC7, 0x18, 0x63, 0x8E, 0x30, 0xC3, 0x1C, 0x71, 0x86, 0x38, 0xE3, 0x04, 0x00, 0x0E, 0x07, 0x80, 0xC0, 0x60, 0x70, 0x30, 0x18, 0x0C, 0x06, 0x01, 0xC1, 0xE1, 0xC0, 0xC0, 0xE0, 0x70, 0x30, 0x38, 0x78, 0x38, 0x00, 0x3C, 0x27, 0xE6, 0xEF, 0xCC, 0x38}; const GFXglyph FreeMonoBoldOblique12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 14, 0, 1}, // 0x20 ' ' {0, 6, 15, 14, 6, -14}, // 0x21 '!' {12, 8, 7, 14, 6, -13}, // 0x22 '"' {19, 13, 18, 14, 2, -15}, // 0x23 '#' {49, 11, 20, 14, 3, -16}, // 0x24 '$' {77, 11, 15, 14, 3, -14}, // 0x25 '%' {98, 11, 13, 14, 2, -12}, // 0x26 '&' {116, 3, 7, 14, 8, -13}, // 0x27 ''' {119, 7, 19, 14, 7, -14}, // 0x28 '(' {136, 7, 19, 14, 2, -14}, // 0x29 ')' {153, 11, 10, 14, 4, -14}, // 0x2A '*' {167, 12, 13, 14, 3, -12}, // 0x2B '+' {187, 6, 7, 14, 3, -2}, // 0x2C ',' {193, 13, 2, 14, 2, -7}, // 0x2D '-' {197, 3, 3, 14, 6, -2}, // 0x2E '.' {199, 14, 20, 14, 2, -16}, // 0x2F '/' {234, 11, 15, 14, 3, -14}, // 0x30 '0' {255, 11, 15, 14, 2, -14}, // 0x31 '1' {276, 13, 15, 14, 1, -14}, // 0x32 '2' {301, 12, 15, 14, 2, -14}, // 0x33 '3' {324, 11, 14, 14, 3, -13}, // 0x34 '4' {344, 12, 15, 14, 2, -14}, // 0x35 '5' {367, 11, 15, 14, 4, -14}, // 0x36 '6' {388, 11, 15, 14, 4, -14}, // 0x37 '7' {409, 11, 15, 14, 3, -14}, // 0x38 '8' {430, 11, 15, 14, 3, -14}, // 0x39 '9' {451, 5, 11, 14, 5, -10}, // 0x3A ':' {458, 7, 15, 14, 3, -10}, // 0x3B ';' {472, 13, 11, 14, 2, -11}, // 0x3C '<' {490, 13, 7, 14, 2, -9}, // 0x3D '=' {502, 13, 11, 14, 2, -11}, // 0x3E '>' {520, 9, 14, 14, 5, -13}, // 0x3F '?' {536, 12, 19, 14, 2, -14}, // 0x40 '@' {565, 15, 14, 14, 0, -13}, // 0x41 'A' {592, 13, 14, 14, 1, -13}, // 0x42 'B' {615, 14, 14, 14, 2, -13}, // 0x43 'C' {640, 13, 14, 14, 1, -13}, // 0x44 'D' {663, 15, 14, 14, 0, -13}, // 0x45 'E' {690, 16, 14, 14, 0, -13}, // 0x46 'F' {718, 14, 14, 14, 1, -13}, // 0x47 'G' {743, 16, 14, 14, 0, -13}, // 0x48 'H' {771, 12, 14, 14, 2, -13}, // 0x49 'I' {792, 16, 14, 14, 0, -13}, // 0x4A 'J' {820, 16, 14, 14, 0, -13}, // 0x4B 'K' {848, 13, 14, 14, 1, -13}, // 0x4C 'L' {871, 18, 14, 14, 0, -13}, // 0x4D 'M' {903, 16, 14, 14, 1, -13}, // 0x4E 'N' {931, 14, 14, 14, 1, -13}, // 0x4F 'O' {956, 13, 14, 14, 1, -13}, // 0x50 'P' {979, 14, 17, 14, 1, -13}, // 0x51 'Q' {1009, 15, 14, 14, 0, -13}, // 0x52 'R' {1036, 12, 14, 14, 3, -13}, // 0x53 'S' {1057, 13, 14, 14, 2, -13}, // 0x54 'T' {1080, 14, 14, 14, 2, -13}, // 0x55 'U' {1105, 15, 14, 14, 1, -13}, // 0x56 'V' {1132, 15, 14, 14, 1, -13}, // 0x57 'W' {1159, 16, 14, 14, 0, -13}, // 0x58 'X' {1187, 13, 14, 14, 2, -13}, // 0x59 'Y' {1210, 14, 14, 14, 1, -13}, // 0x5A 'Z' {1235, 9, 19, 14, 5, -14}, // 0x5B '[' {1257, 7, 20, 14, 5, -16}, // 0x5C '\' {1275, 9, 19, 14, 3, -14}, // 0x5D ']' {1297, 10, 8, 14, 4, -15}, // 0x5E '^' {1307, 15, 2, 14, -1, 4}, // 0x5F '_' {1311, 4, 4, 14, 7, -15}, // 0x60 '`' {1313, 12, 11, 14, 2, -10}, // 0x61 'a' {1330, 15, 15, 14, -1, -14}, // 0x62 'b' {1359, 12, 11, 14, 2, -10}, // 0x63 'c' {1376, 14, 15, 14, 2, -14}, // 0x64 'd' {1403, 12, 11, 14, 2, -10}, // 0x65 'e' {1420, 15, 15, 14, 2, -14}, // 0x66 'f' {1449, 14, 16, 14, 2, -10}, // 0x67 'g' {1477, 13, 15, 14, 1, -14}, // 0x68 'h' {1502, 11, 14, 14, 2, -13}, // 0x69 'i' {1522, 12, 19, 14, 1, -13}, // 0x6A 'j' {1551, 14, 15, 14, 1, -14}, // 0x6B 'k' {1578, 11, 15, 14, 2, -14}, // 0x6C 'l' {1599, 15, 11, 14, 0, -10}, // 0x6D 'm' {1620, 13, 11, 14, 1, -10}, // 0x6E 'n' {1638, 12, 11, 14, 2, -10}, // 0x6F 'o' {1655, 16, 16, 14, -1, -10}, // 0x70 'p' {1687, 15, 16, 14, 1, -10}, // 0x71 'q' {1717, 14, 11, 14, 1, -10}, // 0x72 'r' {1737, 12, 11, 14, 2, -10}, // 0x73 's' {1754, 10, 14, 14, 2, -13}, // 0x74 't' {1772, 12, 11, 14, 2, -10}, // 0x75 'u' {1789, 15, 11, 14, 1, -10}, // 0x76 'v' {1810, 14, 11, 14, 2, -10}, // 0x77 'w' {1830, 14, 11, 14, 1, -10}, // 0x78 'x' {1850, 16, 16, 14, 0, -10}, // 0x79 'y' {1882, 12, 11, 14, 2, -10}, // 0x7A 'z' {1899, 10, 19, 14, 4, -14}, // 0x7B '{' {1923, 6, 19, 14, 5, -14}, // 0x7C '|' {1938, 9, 19, 14, 3, -14}, // 0x7D '}' {1960, 12, 4, 14, 3, -7}}; // 0x7E '~' const GFXfont FreeMonoBoldOblique12pt7b PROGMEM = { (uint8_t *)FreeMonoBoldOblique12pt7bBitmaps, (GFXglyph *)FreeMonoBoldOblique12pt7bGlyphs, 0x20, 0x7E, 24}; // Approx. 2638 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoBoldOblique18pt7b.h ================================================ const uint8_t FreeMonoBoldOblique18pt7bBitmaps[] PROGMEM = { 0x0F, 0x07, 0xC7, 0xE3, 0xF1, 0xF0, 0xF8, 0xFC, 0x7C, 0x3E, 0x1F, 0x0F, 0x07, 0x87, 0xC3, 0xC1, 0xE0, 0x60, 0x00, 0x38, 0x3E, 0x1F, 0x0F, 0x83, 0x80, 0xF8, 0xFF, 0x0E, 0xF1, 0xEF, 0x1E, 0xE1, 0xCE, 0x1C, 0xC1, 0xCC, 0x18, 0xC1, 0x88, 0x18, 0x00, 0xE3, 0x80, 0x79, 0xE0, 0x1C, 0x70, 0x07, 0x1C, 0x03, 0xCF, 0x00, 0xF3, 0xC0, 0x38, 0xE0, 0x7F, 0xFF, 0x3F, 0xFF, 0xCF, 0xFF, 0xF3, 0xFF, 0xF8, 0x3C, 0xF0, 0x0F, 0x3C, 0x03, 0x8E, 0x0F, 0xFF, 0xE3, 0xFF, 0xFC, 0xFF, 0xFF, 0x3F, 0xFF, 0x83, 0xCF, 0x00, 0xF3, 0xC0, 0x38, 0xE0, 0x1E, 0x78, 0x07, 0x9E, 0x01, 0xC7, 0x00, 0x71, 0xC0, 0x00, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x07, 0x80, 0x03, 0xF0, 0x03, 0xFF, 0x81, 0xFF, 0xF0, 0xFF, 0xF8, 0x3C, 0x1E, 0x1E, 0x07, 0x87, 0x80, 0x01, 0xF0, 0x00, 0x7F, 0xC0, 0x0F, 0xFC, 0x01, 0xFF, 0x80, 0x07, 0xF0, 0x00, 0x3C, 0x70, 0x0F, 0x3C, 0x03, 0xCF, 0x83, 0xE3, 0xFF, 0xF8, 0xFF, 0xFC, 0x3F, 0xFE, 0x0C, 0xFE, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x18, 0x00, 0x03, 0xC0, 0x0F, 0xE0, 0x1C, 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x70, 0x38, 0xE0, 0x1F, 0xC3, 0x0F, 0x1F, 0x01, 0xFC, 0x0F, 0xE0, 0x7F, 0x00, 0xF8, 0xF0, 0x83, 0xF8, 0x07, 0x1C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x0E, 0x38, 0x07, 0xF0, 0x03, 0xC0, 0x00, 0x7A, 0x01, 0xFF, 0x03, 0xFF, 0x07, 0xFE, 0x0F, 0x9C, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x1F, 0x80, 0x3F, 0xC0, 0x7F, 0xCF, 0x79, 0xFF, 0xF1, 0xFE, 0xF1, 0xFC, 0xF0, 0xF8, 0xFF, 0xFE, 0xFF, 0xFE, 0x7F, 0xFE, 0x1F, 0xBC, 0x7B, 0xFD, 0xEF, 0x73, 0x9C, 0xC6, 0x00, 0x01, 0xC0, 0xF0, 0x3C, 0x1E, 0x0F, 0x03, 0xC1, 0xE0, 0x70, 0x3C, 0x0F, 0x07, 0x81, 0xE0, 0x78, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3E, 0x07, 0x81, 0xE0, 0x7C, 0x1F, 0x03, 0x80, 0x07, 0x03, 0xC0, 0xF8, 0x3E, 0x07, 0x81, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x78, 0x1E, 0x07, 0x81, 0xC0, 0xF0, 0x3C, 0x1E, 0x07, 0x83, 0xC1, 0xE0, 0x78, 0x3C, 0x0E, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x07, 0x00, 0x0E, 0x02, 0x3C, 0x0F, 0xFF, 0xFF, 0xFF, 0xBF, 0xFE, 0x1F, 0xF0, 0x1F, 0x80, 0x7F, 0x81, 0xEF, 0x07, 0x8F, 0x0F, 0x1E, 0x08, 0x10, 0x00, 0x00, 0x70, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x1E, 0x03, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x07, 0x80, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x0F, 0x87, 0x87, 0x83, 0x83, 0xC1, 0xC1, 0xC0, 0xC0, 0xE0, 0x60, 0x00, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x01, 0xFF, 0x01, 0xFF, 0xC1, 0xFF, 0xE1, 0xF1, 0xF9, 0xE0, 0x7C, 0xF0, 0x1E, 0xF0, 0x0F, 0x78, 0x07, 0xB8, 0x03, 0x9C, 0x03, 0xDE, 0x01, 0xCF, 0x00, 0xE7, 0x00, 0x73, 0xC0, 0x79, 0xE0, 0x3C, 0xF0, 0x1C, 0x78, 0x1E, 0x3E, 0x1E, 0x0F, 0xFF, 0x07, 0xFF, 0x01, 0xFF, 0x00, 0x7E, 0x00, 0x00, 0x7C, 0x03, 0xF8, 0x0F, 0xE0, 0x7F, 0xC0, 0xF7, 0x81, 0x8F, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x0E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xC0, 0x03, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xC0, 0x00, 0x1F, 0x00, 0x07, 0xFC, 0x00, 0xFF, 0xE0, 0x1F, 0xFF, 0x03, 0xC1, 0xF0, 0x78, 0x0F, 0x07, 0x80, 0xF0, 0x70, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x07, 0xE0, 0x01, 0xF8, 0x00, 0x3F, 0x03, 0x87, 0xFF, 0xF8, 0x7F, 0xFF, 0x87, 0xFF, 0xF8, 0xFF, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0xFF, 0xC0, 0x7F, 0xF8, 0x3F, 0xFF, 0x0E, 0x07, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x1F, 0xC0, 0x0F, 0xE0, 0x03, 0xF0, 0x00, 0xFF, 0x00, 0x03, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x03, 0xF1, 0xFF, 0xF8, 0xFF, 0xFC, 0x3F, 0xFE, 0x03, 0xFE, 0x00, 0x00, 0x1F, 0x00, 0x3F, 0x00, 0x7F, 0x00, 0xFE, 0x00, 0xFE, 0x01, 0xEE, 0x03, 0xDE, 0x07, 0x9E, 0x0F, 0x1C, 0x1E, 0x1C, 0x3C, 0x3C, 0x78, 0x3C, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFC, 0x00, 0x70, 0x03, 0xFC, 0x07, 0xFC, 0x07, 0xFC, 0x07, 0xF8, 0x07, 0xFF, 0xC1, 0xFF, 0xF0, 0x7F, 0xFC, 0x3F, 0xFE, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x3B, 0xE0, 0x1F, 0xFE, 0x07, 0xFF, 0xC1, 0xFF, 0xF8, 0x78, 0x3E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x0F, 0x18, 0x0F, 0xCF, 0xFF, 0xE3, 0xFF, 0xF0, 0x7F, 0xF8, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x0F, 0xFC, 0x03, 0xFF, 0x81, 0xFF, 0xE0, 0x7F, 0x00, 0x1F, 0x80, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x9F, 0x01, 0xEF, 0xF0, 0x3F, 0xFF, 0x0F, 0xFF, 0xF1, 0xFC, 0x3E, 0x3E, 0x03, 0xC7, 0x80, 0x78, 0xF0, 0x0F, 0x1E, 0x03, 0xC3, 0xE0, 0xF8, 0x7F, 0xFE, 0x07, 0xFF, 0x80, 0x7F, 0xE0, 0x07, 0xF0, 0x00, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0E, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x78, 0x00, 0x70, 0x00, 0xF0, 0x00, 0xE0, 0x01, 0xE0, 0x01, 0xC0, 0x03, 0xC0, 0x07, 0x80, 0x07, 0x80, 0x0F, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x00, 0x7E, 0x00, 0x3F, 0xF0, 0x0F, 0xFF, 0x03, 0xFF, 0xF0, 0xF8, 0x3E, 0x3E, 0x03, 0xC7, 0x80, 0x78, 0xF0, 0x0F, 0x1E, 0x03, 0xC3, 0xE0, 0xF0, 0x3F, 0xFC, 0x03, 0xFF, 0x00, 0xFF, 0xE0, 0x7F, 0xFE, 0x1F, 0x83, 0xE3, 0xC0, 0x3C, 0xF0, 0x07, 0x9E, 0x01, 0xF3, 0xE0, 0x7C, 0x7F, 0xFF, 0x87, 0xFF, 0xE0, 0x7F, 0xF0, 0x03, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x7F, 0xC0, 0x3F, 0xF8, 0x1F, 0xFE, 0x0F, 0x87, 0xC3, 0xC0, 0xF1, 0xE0, 0x3C, 0x78, 0x0F, 0x1E, 0x03, 0xC7, 0x81, 0xF1, 0xF1, 0xFC, 0x7F, 0xFE, 0x0F, 0xFF, 0x81, 0xFD, 0xE0, 0x3E, 0xF0, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x81, 0xFF, 0xC0, 0xFF, 0xE0, 0x3F, 0xE0, 0x07, 0xE0, 0x00, 0x1C, 0x7C, 0xF9, 0xF1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x8F, 0x9F, 0x3E, 0x38, 0x01, 0xC0, 0x7C, 0x0F, 0x81, 0xF0, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0xF0, 0x1E, 0x07, 0x80, 0xE0, 0x38, 0x07, 0x01, 0xC0, 0x30, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xF0, 0x00, 0x38, 0x3F, 0xFF, 0xEF, 0xFF, 0xFD, 0xFF, 0xFF, 0x9F, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xF7, 0xFF, 0xFE, 0xFF, 0xFF, 0xDF, 0xFF, 0xF0, 0x00, 0x00, 0x03, 0x80, 0x00, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x0F, 0xE0, 0x07, 0xF0, 0x07, 0xF8, 0x03, 0xF8, 0x01, 0xFC, 0x00, 0x3E, 0x00, 0x07, 0x00, 0x00, 0x07, 0xE0, 0xFF, 0xC7, 0xFF, 0xBF, 0xFF, 0xF0, 0x7F, 0x80, 0xFE, 0x03, 0xC0, 0x0F, 0x00, 0x78, 0x0F, 0xE1, 0xFE, 0x0F, 0xF0, 0x7E, 0x01, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x70, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0x70, 0x00, 0x00, 0x3E, 0x00, 0x3F, 0xE0, 0x1F, 0xF8, 0x0F, 0x0F, 0x07, 0x01, 0xC3, 0x80, 0x71, 0xE0, 0x1C, 0x70, 0x0E, 0x18, 0x0F, 0x8E, 0x1F, 0xE3, 0x8F, 0xF0, 0xE7, 0x9C, 0x33, 0xC7, 0x1C, 0xE1, 0xC7, 0x38, 0x71, 0xCF, 0x18, 0x73, 0xFE, 0x38, 0x7F, 0xCE, 0x0F, 0xF3, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0xC0, 0x7F, 0xF0, 0x0F, 0xF8, 0x01, 0xF8, 0x00, 0x01, 0xFF, 0x80, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x07, 0xBC, 0x00, 0x1C, 0xF0, 0x00, 0xF3, 0xC0, 0x07, 0x87, 0x80, 0x1E, 0x1E, 0x00, 0xF0, 0x78, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, 0xFF, 0xFF, 0x07, 0xFF, 0xFC, 0x1E, 0x00, 0xF1, 0xFE, 0x1F, 0xFF, 0xF8, 0x7F, 0xFF, 0xE1, 0xFF, 0xFF, 0x07, 0xF8, 0x0F, 0xFF, 0xC0, 0x7F, 0xFF, 0x87, 0xFF, 0xFC, 0x1F, 0xFF, 0xF0, 0x38, 0x0F, 0x81, 0xC0, 0x3C, 0x1E, 0x01, 0xE0, 0xF0, 0x3E, 0x07, 0xFF, 0xE0, 0x3F, 0xFE, 0x03, 0xFF, 0xF8, 0x1F, 0xFF, 0xE0, 0xE0, 0x1F, 0x87, 0x00, 0x3C, 0x38, 0x01, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0xF3, 0xFF, 0xFF, 0xBF, 0xFF, 0xF9, 0xFF, 0xFF, 0x8F, 0xFF, 0xF0, 0x00, 0x00, 0x7F, 0x30, 0x0F, 0xFF, 0xC1, 0xFF, 0xFE, 0x1F, 0xFF, 0xF1, 0xF8, 0x3F, 0x1F, 0x00, 0x78, 0xF0, 0x03, 0xCF, 0x80, 0x1C, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1F, 0x00, 0x38, 0x7E, 0x07, 0xC3, 0xFF, 0xFC, 0x0F, 0xFF, 0xC0, 0x3F, 0xFC, 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xFF, 0x80, 0x7F, 0xFE, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xE0, 0x78, 0x1F, 0x03, 0x80, 0x7C, 0x1C, 0x01, 0xE1, 0xE0, 0x0F, 0x0F, 0x00, 0x78, 0x70, 0x03, 0xC3, 0x80, 0x1E, 0x1C, 0x00, 0xF1, 0xE0, 0x0F, 0x0F, 0x00, 0x78, 0x70, 0x07, 0xC3, 0x80, 0x7C, 0x3C, 0x07, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC1, 0xFF, 0xFC, 0x0F, 0xFF, 0x80, 0x00, 0x07, 0xFF, 0xFC, 0x3F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x03, 0xC0, 0x3C, 0x0F, 0x00, 0xE0, 0x3C, 0x73, 0x80, 0xE3, 0xCC, 0x03, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0x7F, 0xE0, 0x01, 0xFF, 0x80, 0x07, 0x1E, 0x00, 0x3C, 0x70, 0x00, 0xF0, 0x07, 0x03, 0xC0, 0x1C, 0x0E, 0x00, 0xF1, 0xFF, 0xFF, 0xC7, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8, 0x7F, 0xFF, 0xE0, 0x07, 0xFF, 0xFE, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xF0, 0x7F, 0xFF, 0xE0, 0x3C, 0x01, 0xC0, 0x70, 0x07, 0x80, 0xE1, 0x8E, 0x03, 0xC7, 0x1C, 0x07, 0xFE, 0x00, 0x0F, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, 0xF1, 0xC0, 0x01, 0xE3, 0x80, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFF, 0xE0, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x3F, 0x18, 0x0F, 0xFF, 0xC0, 0xFF, 0xFE, 0x0F, 0xFF, 0xF0, 0xFC, 0x0F, 0x0F, 0x80, 0x38, 0xF8, 0x01, 0x87, 0x80, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x7F, 0xEF, 0x07, 0xFF, 0x78, 0x3F, 0xFB, 0xC0, 0xFF, 0x9E, 0x00, 0x38, 0xFC, 0x03, 0xC3, 0xFF, 0xFE, 0x1F, 0xFF, 0xE0, 0x3F, 0xFC, 0x00, 0x7F, 0x80, 0x00, 0x03, 0xF8, 0xFE, 0x0F, 0xF3, 0xFC, 0x1F, 0xE7, 0xF8, 0x3F, 0x8F, 0xE0, 0x3C, 0x07, 0x80, 0x70, 0x0E, 0x00, 0xE0, 0x1C, 0x03, 0xC0, 0x78, 0x07, 0x80, 0xF0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0xFF, 0xFE, 0x01, 0xE0, 0x3C, 0x03, 0x80, 0x70, 0x07, 0x00, 0xE0, 0x1E, 0x03, 0xC0, 0xFF, 0x1F, 0xE1, 0xFE, 0x7F, 0xC7, 0xFC, 0xFF, 0x87, 0xF1, 0xFE, 0x00, 0x07, 0xFF, 0xE1, 0xFF, 0xFC, 0x3F, 0xFF, 0x87, 0xFF, 0xE0, 0x07, 0x80, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x0F, 0xFF, 0xC3, 0xFF, 0xF8, 0x7F, 0xFF, 0x07, 0xFF, 0xE0, 0x00, 0x3F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x80, 0x1C, 0x03, 0x80, 0x78, 0x0F, 0x00, 0xF0, 0x1E, 0x01, 0xC0, 0x38, 0x07, 0x80, 0x70, 0x1F, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xF0, 0x03, 0xFF, 0xC0, 0x00, 0xFC, 0x00, 0x00, 0x07, 0xF8, 0xFC, 0x1F, 0xFB, 0xFC, 0x3F, 0xE7, 0xF0, 0x7F, 0xCF, 0xE0, 0x3C, 0x1E, 0x00, 0x70, 0xF8, 0x00, 0xE3, 0xE0, 0x03, 0xCF, 0x00, 0x07, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xF0, 0x00, 0xF9, 0xF0, 0x01, 0xE1, 0xE0, 0x03, 0x83, 0xE0, 0x07, 0x03, 0xC0, 0x1E, 0x07, 0x80, 0xFF, 0x8F, 0xE3, 0xFF, 0x0F, 0xC7, 0xFE, 0x1F, 0x8F, 0xF8, 0x3E, 0x00, 0x0F, 0xFE, 0x00, 0xFF, 0xF0, 0x1F, 0xFE, 0x00, 0xFF, 0xE0, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x07, 0x80, 0x60, 0x78, 0x0F, 0x07, 0x80, 0xF0, 0x70, 0x0E, 0x07, 0x00, 0xE7, 0xFF, 0xFE, 0xFF, 0xFF, 0xEF, 0xFF, 0xFE, 0xFF, 0xFF, 0xC0, 0x0F, 0xC0, 0x1F, 0x87, 0xE0, 0x0F, 0xC7, 0xF8, 0x0F, 0xE1, 0xFC, 0x0F, 0xE0, 0x7E, 0x07, 0xE0, 0x3F, 0x07, 0xF0, 0x3F, 0xC7, 0xF8, 0x1F, 0xE3, 0xF8, 0x0E, 0xF3, 0xDC, 0x07, 0x7B, 0xDE, 0x03, 0x9F, 0xEF, 0x03, 0xCF, 0xE7, 0x81, 0xE7, 0xE3, 0x80, 0xE3, 0xF1, 0xC0, 0x70, 0xF1, 0xE0, 0x38, 0x70, 0xF0, 0x3C, 0x00, 0x70, 0x3F, 0xC1, 0xFE, 0x3F, 0xE1, 0xFF, 0x1F, 0xF0, 0xFF, 0x8F, 0xF0, 0x7F, 0x80, 0x0F, 0xC1, 0xFE, 0x1F, 0xC1, 0xFF, 0x1F, 0xC3, 0xFE, 0x1F, 0xE1, 0xFE, 0x07, 0xE0, 0x38, 0x07, 0xF0, 0x78, 0x07, 0xF0, 0x78, 0x0F, 0xF8, 0x70, 0x0F, 0x78, 0x70, 0x0E, 0x78, 0xF0, 0x0E, 0x7C, 0xF0, 0x1E, 0x3C, 0xF0, 0x1E, 0x3E, 0xE0, 0x1E, 0x1E, 0xE0, 0x1C, 0x1F, 0xE0, 0x1C, 0x0F, 0xE0, 0x3C, 0x0F, 0xE0, 0x7F, 0x87, 0xC0, 0xFF, 0x87, 0xC0, 0xFF, 0x87, 0xC0, 0xFF, 0x03, 0xC0, 0x00, 0x7E, 0x00, 0x1F, 0xF8, 0x07, 0xFF, 0xC0, 0xFF, 0xFE, 0x1F, 0x87, 0xE3, 0xE0, 0x1F, 0x3C, 0x01, 0xF7, 0xC0, 0x0F, 0x78, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x01, 0xEF, 0x00, 0x3E, 0xF8, 0x03, 0xCF, 0x80, 0x7C, 0x7C, 0x1F, 0x87, 0xFF, 0xF0, 0x3F, 0xFE, 0x01, 0xFF, 0x80, 0x07, 0xE0, 0x00, 0x0F, 0xFF, 0x80, 0x7F, 0xFF, 0x07, 0xFF, 0xFC, 0x1F, 0xFF, 0xF0, 0x38, 0x0F, 0x81, 0xC0, 0x3C, 0x1E, 0x01, 0xE0, 0xF0, 0x0F, 0x07, 0x00, 0xF0, 0x38, 0x0F, 0x83, 0xFF, 0xF8, 0x1F, 0xFF, 0x80, 0xFF, 0xF8, 0x07, 0xFF, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x03, 0xFF, 0x80, 0x3F, 0xFC, 0x01, 0xFF, 0xE0, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x1F, 0xF8, 0x07, 0xFF, 0xC0, 0xFF, 0xFE, 0x1F, 0x87, 0xE3, 0xE0, 0x1F, 0x3C, 0x01, 0xF7, 0xC0, 0x0F, 0x78, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x01, 0xEF, 0x00, 0x3E, 0xF8, 0x03, 0xCF, 0x80, 0x7C, 0x7C, 0x1F, 0x87, 0xFF, 0xF0, 0x3F, 0xFE, 0x01, 0xFF, 0x80, 0x07, 0xE0, 0x01, 0xFE, 0x30, 0x3F, 0xFF, 0x87, 0xFF, 0xF0, 0x7F, 0xFF, 0x07, 0x83, 0xC0, 0x07, 0xFF, 0x80, 0x3F, 0xFF, 0x80, 0xFF, 0xFF, 0x03, 0xFF, 0xFE, 0x03, 0xC0, 0xF8, 0x0E, 0x01, 0xE0, 0x38, 0x07, 0x81, 0xE0, 0x3E, 0x07, 0x83, 0xF0, 0x1F, 0xFF, 0x80, 0x7F, 0xFC, 0x01, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x3C, 0x3E, 0x00, 0xE0, 0x7C, 0x03, 0x80, 0xF0, 0x1E, 0x03, 0xE1, 0xFF, 0x07, 0xFF, 0xFC, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0x80, 0xF8, 0x00, 0x7C, 0xE0, 0x7F, 0xFC, 0x1F, 0xFF, 0x87, 0xFF, 0xE0, 0xF8, 0x7C, 0x3C, 0x07, 0x87, 0x80, 0xE0, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xFE, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0x80, 0x07, 0xF8, 0x40, 0x1F, 0x3C, 0x01, 0xE7, 0x80, 0x3C, 0xFC, 0x1F, 0x1F, 0xFF, 0xE3, 0xFF, 0xF8, 0x7F, 0xFE, 0x00, 0x7E, 0x00, 0x7F, 0xFF, 0xEF, 0xFF, 0xFD, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0x0E, 0x1F, 0xE1, 0xC3, 0xBC, 0x78, 0x77, 0x0F, 0x1E, 0xE1, 0xC1, 0x80, 0x38, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x0F, 0xFE, 0x03, 0xFF, 0xE0, 0x7F, 0xFC, 0x0F, 0xFF, 0x00, 0x7F, 0x8F, 0xF3, 0xFE, 0x7F, 0xDF, 0xF7, 0xFC, 0xFF, 0x1F, 0xE3, 0xC0, 0x3C, 0x1C, 0x01, 0xE0, 0xE0, 0x0F, 0x0F, 0x00, 0x70, 0x78, 0x03, 0x83, 0xC0, 0x3C, 0x1C, 0x01, 0xE0, 0xE0, 0x0E, 0x0F, 0x00, 0x70, 0x78, 0x03, 0x83, 0xC0, 0x3C, 0x1F, 0x01, 0xC0, 0xFC, 0x3E, 0x03, 0xFF, 0xE0, 0x1F, 0xFE, 0x00, 0x7F, 0xE0, 0x00, 0xFC, 0x00, 0x00, 0x7F, 0x81, 0xFE, 0xFF, 0x87, 0xFF, 0xFF, 0x0F, 0xFB, 0xFC, 0x1F, 0xE1, 0xC0, 0x0F, 0x03, 0xC0, 0x1C, 0x07, 0x80, 0x78, 0x0F, 0x01, 0xE0, 0x1E, 0x03, 0x80, 0x1E, 0x0F, 0x00, 0x3C, 0x3C, 0x00, 0x78, 0x70, 0x00, 0xF1, 0xE0, 0x01, 0xE7, 0x80, 0x01, 0xEF, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7F, 0x87, 0xFF, 0xFF, 0x1F, 0xFF, 0xF8, 0x7F, 0xFF, 0xE1, 0xFE, 0x78, 0x00, 0xF1, 0xE3, 0xC3, 0x87, 0x8F, 0x0E, 0x1E, 0x7C, 0x78, 0x79, 0xF9, 0xC1, 0xEF, 0xEF, 0x07, 0xBF, 0xBC, 0x1D, 0xFE, 0xE0, 0x77, 0x7F, 0x81, 0xFD, 0xFE, 0x07, 0xE3, 0xF0, 0x3F, 0x8F, 0xC0, 0xFC, 0x3F, 0x03, 0xF0, 0xF8, 0x0F, 0x83, 0xE0, 0x3E, 0x0F, 0x80, 0xF0, 0x3C, 0x00, 0x07, 0xE0, 0x7E, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFE, 0x0F, 0xE0, 0xFE, 0x03, 0xC0, 0xF8, 0x01, 0xE1, 0xE0, 0x01, 0xF3, 0xC0, 0x00, 0xF7, 0x80, 0x00, 0x7F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFF, 0x00, 0x03, 0xEF, 0x00, 0x07, 0xCF, 0x80, 0x0F, 0x87, 0xC0, 0x1F, 0x03, 0xC0, 0x7F, 0x07, 0xF0, 0xFF, 0x8F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xE0, 0x7E, 0x0F, 0xEF, 0xF0, 0xFF, 0xFF, 0x0F, 0xEF, 0xE0, 0xFE, 0x3C, 0x0F, 0x01, 0xE1, 0xE0, 0x1E, 0x3E, 0x00, 0xF7, 0xC0, 0x0F, 0xF8, 0x00, 0x7F, 0x00, 0x07, 0xE0, 0x00, 0x3C, 0x00, 0x03, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00, 0x78, 0x00, 0x07, 0x00, 0x07, 0xFF, 0x00, 0xFF, 0xF8, 0x0F, 0xFF, 0x00, 0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xE0, 0xFF, 0xFC, 0x3F, 0xFF, 0x87, 0xFF, 0xF0, 0xF0, 0x7C, 0x1C, 0x1F, 0x03, 0x87, 0xC0, 0x61, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x07, 0x07, 0xC0, 0xE1, 0xF0, 0x3C, 0x7C, 0x07, 0x9F, 0xFF, 0xF3, 0xFF, 0xFC, 0x7F, 0xFF, 0x8F, 0xFF, 0xF0, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xE0, 0x70, 0x07, 0x80, 0x3C, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x80, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x80, 0x38, 0x01, 0xC0, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0x80, 0xE0, 0x38, 0x0F, 0x03, 0xC0, 0xF0, 0x1C, 0x07, 0x81, 0xE0, 0x78, 0x0E, 0x03, 0xC0, 0xF0, 0x3C, 0x07, 0x01, 0xE0, 0x78, 0x1E, 0x03, 0x80, 0xF0, 0x3C, 0x0F, 0x01, 0xE0, 0x78, 0x1E, 0x03, 0x80, 0xF0, 0x3C, 0x06, 0x07, 0xF8, 0x3F, 0xC1, 0xFC, 0x0F, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1C, 0x00, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0x80, 0x1C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0x80, 0x1C, 0x01, 0xE0, 0x0F, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x0F, 0xE0, 0xFF, 0x07, 0xF0, 0x3F, 0x80, 0x00, 0x40, 0x01, 0x80, 0x07, 0x80, 0x3F, 0x80, 0xFF, 0x03, 0xFF, 0x0F, 0x9F, 0x3E, 0x1E, 0xF8, 0x3F, 0xE0, 0x3F, 0x00, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xC3, 0xC7, 0x0E, 0x3C, 0x30, 0x00, 0xFE, 0x00, 0x7F, 0xF0, 0x1F, 0xFF, 0x03, 0xFF, 0xE0, 0x00, 0x3C, 0x07, 0xFF, 0x83, 0xFF, 0xF0, 0xFF, 0xFC, 0x3F, 0xFF, 0x8F, 0x80, 0xF3, 0xE0, 0x1E, 0x78, 0x1F, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xF8, 0xFE, 0x7E, 0x07, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0xFC, 0x00, 0xEF, 0xFC, 0x03, 0xFF, 0xF8, 0x1F, 0xFF, 0xE0, 0x7E, 0x0F, 0xC1, 0xE0, 0x1F, 0x07, 0x00, 0x3C, 0x1C, 0x00, 0xF0, 0xE0, 0x03, 0xC3, 0x80, 0x1E, 0x0F, 0x00, 0xF8, 0x3E, 0x07, 0xC7, 0xFF, 0xFF, 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0x81, 0xF1, 0xF8, 0x00, 0x00, 0xFE, 0x60, 0xFF, 0xFC, 0x3F, 0xFF, 0x8F, 0xFF, 0xF3, 0xF0, 0x3C, 0xF8, 0x03, 0x9E, 0x00, 0x67, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x7E, 0x01, 0xC7, 0xFF, 0xF8, 0xFF, 0xFE, 0x0F, 0xFF, 0x80, 0x7F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x07, 0xE3, 0x80, 0xFF, 0xDC, 0x0F, 0xFF, 0xE0, 0xFF, 0xFF, 0x0F, 0xC1, 0xF0, 0xF8, 0x07, 0x87, 0x80, 0x1C, 0x78, 0x00, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x70, 0xF0, 0x07, 0x87, 0xE0, 0xFC, 0x1F, 0xFF, 0xF8, 0xFF, 0xFF, 0xC3, 0xFF, 0xFE, 0x07, 0xE3, 0xE0, 0x00, 0xFC, 0x01, 0xFF, 0xC0, 0xFF, 0xF8, 0x7F, 0xFE, 0x3E, 0x0F, 0xCE, 0x00, 0xF7, 0x00, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x1E, 0xFF, 0xFF, 0x9F, 0xFF, 0xE3, 0xFF, 0xF0, 0x3F, 0xF0, 0x00, 0x0F, 0xF0, 0x01, 0xFF, 0xC0, 0x1F, 0xFE, 0x01, 0xFF, 0xE0, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x3F, 0xFF, 0x03, 0xFF, 0xF8, 0x1F, 0xFF, 0xC0, 0xFF, 0xFC, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x1F, 0xFF, 0x81, 0xFF, 0xFC, 0x0F, 0xFF, 0xE0, 0x7F, 0xFE, 0x00, 0x01, 0xF9, 0xF8, 0x3F, 0xFF, 0xC3, 0xFF, 0xFE, 0x7F, 0xFF, 0xE3, 0xE0, 0xFC, 0x3E, 0x03, 0xE1, 0xE0, 0x0E, 0x1E, 0x00, 0x70, 0xF0, 0x03, 0x87, 0x80, 0x3C, 0x3E, 0x03, 0xE1, 0xF8, 0x7E, 0x07, 0xFF, 0xF0, 0x3F, 0xFF, 0x80, 0xFF, 0xFC, 0x01, 0xF9, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x80, 0x7F, 0xF8, 0x07, 0xFF, 0x80, 0x3F, 0xF8, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x03, 0xC0, 0x00, 0x38, 0x00, 0x03, 0x9F, 0x00, 0x7F, 0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xFE, 0x07, 0xC3, 0xE0, 0x70, 0x1E, 0x0F, 0x01, 0xC0, 0xF0, 0x1C, 0x0E, 0x03, 0xC0, 0xE0, 0x3C, 0x1E, 0x03, 0x81, 0xE0, 0x38, 0x7F, 0x0F, 0xFF, 0xF8, 0xFF, 0xFF, 0x8F, 0xF7, 0xF0, 0xFE, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x0F, 0xF0, 0x1F, 0xF0, 0x0F, 0xF0, 0x00, 0xF0, 0x00, 0xE0, 0x00, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xC0, 0x01, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFC, 0x3F, 0xFE, 0x0F, 0xFF, 0x81, 0xFF, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0xF0, 0x00, 0x7C, 0x1F, 0xFE, 0x0F, 0xFF, 0x03, 0xFF, 0x80, 0x7F, 0x80, 0x00, 0x07, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0x7C, 0x00, 0x01, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xCF, 0xF0, 0x3C, 0xFF, 0x03, 0x9F, 0xF0, 0x38, 0xFE, 0x07, 0xBF, 0x00, 0x7F, 0xC0, 0x07, 0xF8, 0x00, 0x7F, 0x00, 0x07, 0xF8, 0x00, 0xFF, 0xC0, 0x0F, 0x7E, 0x00, 0xE3, 0xF0, 0x7E, 0x1F, 0xE7, 0xE1, 0xFE, 0xFE, 0x3F, 0xE7, 0xE1, 0xFC, 0x03, 0xFC, 0x07, 0xFC, 0x07, 0xF8, 0x07, 0xF8, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x70, 0x00, 0x70, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xE0, 0x00, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xC0, 0x01, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1F, 0x7C, 0x78, 0x7F, 0xFF, 0xF8, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF0, 0xF1, 0xF1, 0xE1, 0xC3, 0x83, 0xC7, 0x87, 0x07, 0x8F, 0x0E, 0x0E, 0x1C, 0x3C, 0x1C, 0x38, 0x78, 0x78, 0x70, 0xE0, 0xF1, 0xE1, 0xC1, 0xC7, 0xE3, 0xC3, 0xFF, 0xCF, 0xC7, 0xFF, 0x9F, 0x9F, 0xFF, 0x3E, 0x3E, 0x0F, 0x8F, 0x80, 0xFD, 0xFF, 0x07, 0xFF, 0xF8, 0x3F, 0xFF, 0xE0, 0x7E, 0x1F, 0x07, 0xC0, 0x78, 0x3C, 0x03, 0x81, 0xE0, 0x1C, 0x0E, 0x01, 0xE0, 0x70, 0x0F, 0x07, 0x80, 0x70, 0x3C, 0x03, 0x87, 0xF0, 0x3F, 0x7F, 0xC3, 0xFF, 0xFE, 0x1F, 0xEF, 0xE0, 0xFE, 0x01, 0xFC, 0x01, 0xFF, 0x80, 0xFF, 0xF8, 0x7F, 0xFE, 0x3E, 0x0F, 0xDF, 0x01, 0xF7, 0x80, 0x3F, 0xC0, 0x0F, 0xF0, 0x03, 0xFC, 0x01, 0xEF, 0x80, 0xFB, 0xF0, 0x7C, 0x7F, 0xFF, 0x1F, 0xFF, 0x03, 0xFF, 0x80, 0x3F, 0x80, 0x07, 0xC7, 0xE0, 0x1F, 0xBF, 0xF0, 0x3F, 0xFF, 0xF0, 0x7F, 0xFF, 0xE0, 0x3F, 0x07, 0xE0, 0x78, 0x03, 0xC0, 0xE0, 0x07, 0x81, 0xC0, 0x0F, 0x07, 0x00, 0x1E, 0x0F, 0x00, 0x78, 0x1E, 0x01, 0xF0, 0x3E, 0x07, 0xC0, 0xFF, 0xFF, 0x81, 0xFF, 0xFE, 0x03, 0xDF, 0xF0, 0x07, 0x1F, 0x80, 0x0E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x03, 0xFE, 0x00, 0x0F, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x01, 0xF8, 0xF8, 0x1F, 0xFF, 0xF1, 0xFF, 0xFF, 0xCF, 0xFF, 0xFE, 0x3E, 0x07, 0xC1, 0xF0, 0x0F, 0x07, 0x80, 0x1C, 0x3C, 0x00, 0x70, 0xF0, 0x03, 0x83, 0xC0, 0x0E, 0x0F, 0x80, 0x78, 0x3F, 0x07, 0xE0, 0x7F, 0xFF, 0x81, 0xFF, 0xFC, 0x03, 0xFF, 0x70, 0x03, 0xF3, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xE0, 0x00, 0x3F, 0xE0, 0x01, 0xFF, 0xC0, 0x07, 0xFF, 0x00, 0x1F, 0xF8, 0x00, 0x0F, 0xC3, 0xC1, 0xFC, 0xFF, 0x1F, 0xFF, 0xF1, 0xFF, 0xFE, 0x03, 0xFC, 0x00, 0x3F, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0xF0, 0x00, 0xFF, 0xFC, 0x0F, 0xFF, 0xE0, 0xFF, 0xFC, 0x0F, 0xFF, 0xC0, 0x03, 0xF3, 0x0F, 0xFF, 0x3F, 0xFF, 0x3F, 0xFF, 0x7C, 0x0E, 0x78, 0x00, 0x7F, 0xE0, 0x3F, 0xFC, 0x1F, 0xFF, 0x00, 0x3F, 0x70, 0x0F, 0xF8, 0x1F, 0xFF, 0xFE, 0xFF, 0xFC, 0xFF, 0xF8, 0x0F, 0xE0, 0x06, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x7F, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFC, 0x1C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x78, 0x00, 0x7C, 0x0E, 0x7F, 0xFF, 0x7F, 0xFE, 0x3F, 0xFC, 0x0F, 0xE0, 0x7C, 0x0F, 0xFF, 0x07, 0xFF, 0x81, 0xFF, 0xE0, 0x7E, 0x78, 0x03, 0x9E, 0x00, 0xE7, 0x80, 0x79, 0xE0, 0x1E, 0x78, 0x07, 0x1E, 0x01, 0xC7, 0x80, 0xF1, 0xE0, 0xFC, 0x7F, 0xFF, 0x9F, 0xFF, 0xE3, 0xFF, 0xF8, 0x3E, 0x7C, 0x7F, 0x87, 0xFF, 0xFC, 0x7F, 0xFF, 0xE3, 0xFF, 0xFF, 0x1F, 0xE1, 0xE0, 0x3C, 0x0F, 0x03, 0xC0, 0x78, 0x3C, 0x01, 0xE1, 0xC0, 0x0F, 0x1E, 0x00, 0x79, 0xE0, 0x03, 0xCE, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x78, 0x00, 0x7E, 0x03, 0xF7, 0xF0, 0x3F, 0xFF, 0x81, 0xFD, 0xF8, 0x0F, 0xE7, 0x8E, 0x1C, 0x3C, 0xF9, 0xE1, 0xE7, 0xCE, 0x0F, 0x7E, 0xF0, 0x7B, 0xF7, 0x03, 0xFF, 0xF8, 0x1F, 0xDF, 0x80, 0xFC, 0xFC, 0x07, 0xE7, 0xE0, 0x3E, 0x3E, 0x01, 0xF1, 0xF0, 0x0F, 0x07, 0x00, 0x0F, 0xE3, 0xF8, 0xFF, 0x1F, 0xC7, 0xF9, 0xFE, 0x1F, 0x87, 0xF0, 0x7E, 0x7C, 0x01, 0xFF, 0xC0, 0x07, 0xFC, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x1F, 0xF0, 0x01, 0xF7, 0xC0, 0x1F, 0x1F, 0x03, 0xF0, 0x7C, 0x7F, 0xCF, 0xFB, 0xFE, 0x7F, 0xDF, 0xE3, 0xFC, 0x07, 0xF0, 0x7F, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x07, 0xE0, 0xFE, 0x03, 0xC0, 0x78, 0x03, 0xC0, 0x78, 0x03, 0xC0, 0xF0, 0x01, 0xE1, 0xE0, 0x01, 0xE1, 0xC0, 0x01, 0xE3, 0xC0, 0x00, 0xF7, 0x80, 0x00, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x78, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x7F, 0xF0, 0x00, 0xFF, 0xF8, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF0, 0x00, 0x1F, 0xFF, 0xC7, 0xFF, 0xF1, 0xFF, 0xF8, 0xFF, 0xFE, 0x3C, 0x1F, 0x0E, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x3C, 0xFF, 0xFF, 0x3F, 0xFF, 0xCF, 0xFF, 0xE3, 0xFF, 0xF8, 0x00, 0xF0, 0x1F, 0x03, 0xF0, 0x7E, 0x07, 0x80, 0x70, 0x0F, 0x00, 0xF0, 0x0E, 0x00, 0xE0, 0x1E, 0x01, 0xC0, 0xFC, 0x0F, 0x80, 0xF8, 0x0F, 0xC0, 0x3C, 0x03, 0xC0, 0x38, 0x03, 0x80, 0x78, 0x07, 0x80, 0x78, 0x07, 0xE0, 0x7E, 0x03, 0xE0, 0x1C, 0x00, 0x02, 0x07, 0x07, 0x0F, 0x0F, 0x0E, 0x0E, 0x0E, 0x1E, 0x1E, 0x1C, 0x1C, 0x1C, 0x3C, 0x3C, 0x38, 0x38, 0x38, 0x78, 0x78, 0x70, 0x70, 0x70, 0xF0, 0xF0, 0xE0, 0xE0, 0x01, 0xC0, 0x1F, 0x00, 0xFC, 0x07, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1C, 0x00, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1F, 0x80, 0x7C, 0x03, 0xE0, 0x3F, 0x03, 0xC0, 0x1C, 0x00, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0x80, 0x3C, 0x0F, 0xE0, 0x7E, 0x07, 0xE0, 0x1E, 0x00, 0x0F, 0x00, 0x1F, 0xC0, 0x1F, 0xF0, 0xFF, 0xFC, 0xFF, 0x3F, 0xFF, 0x0F, 0xF8, 0x03, 0xF8, 0x00, 0xF0}; const GFXglyph FreeMonoBoldOblique18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 21, 0, 1}, // 0x20 ' ' {0, 9, 22, 21, 9, -21}, // 0x21 '!' {25, 12, 10, 21, 9, -20}, // 0x22 '"' {40, 18, 25, 21, 4, -22}, // 0x23 '#' {97, 18, 28, 21, 4, -23}, // 0x24 '$' {160, 16, 21, 21, 5, -20}, // 0x25 '%' {202, 16, 20, 21, 4, -19}, // 0x26 '&' {242, 5, 10, 21, 12, -20}, // 0x27 ''' {249, 10, 27, 21, 11, -21}, // 0x28 '(' {283, 10, 27, 21, 4, -21}, // 0x29 ')' {317, 15, 15, 21, 6, -21}, // 0x2A '*' {346, 18, 19, 21, 4, -18}, // 0x2B '+' {389, 9, 10, 21, 4, -3}, // 0x2C ',' {401, 18, 4, 21, 4, -11}, // 0x2D '-' {410, 5, 5, 21, 8, -4}, // 0x2E '.' {414, 21, 28, 21, 2, -23}, // 0x2F '/' {488, 17, 23, 21, 5, -22}, // 0x30 '0' {537, 15, 22, 21, 3, -21}, // 0x31 '1' {579, 20, 23, 21, 2, -22}, // 0x32 '2' {637, 18, 23, 21, 3, -22}, // 0x33 '3' {689, 16, 21, 21, 4, -20}, // 0x34 '4' {731, 18, 22, 21, 4, -21}, // 0x35 '5' {781, 19, 23, 21, 5, -22}, // 0x36 '6' {836, 16, 22, 21, 6, -21}, // 0x37 '7' {880, 19, 23, 21, 3, -22}, // 0x38 '8' {935, 18, 23, 21, 4, -22}, // 0x39 '9' {987, 7, 16, 21, 9, -15}, // 0x3A ':' {1001, 11, 22, 21, 4, -15}, // 0x3B ';' {1032, 18, 16, 21, 4, -17}, // 0x3C '<' {1068, 19, 10, 21, 3, -14}, // 0x3D '=' {1092, 19, 16, 21, 3, -17}, // 0x3E '>' {1130, 14, 21, 21, 8, -20}, // 0x3F '?' {1167, 18, 27, 21, 3, -21}, // 0x40 '@' {1228, 22, 21, 21, 0, -20}, // 0x41 'A' {1286, 21, 21, 21, 1, -20}, // 0x42 'B' {1342, 21, 21, 21, 2, -20}, // 0x43 'C' {1398, 21, 21, 21, 1, -20}, // 0x44 'D' {1454, 22, 21, 21, 0, -20}, // 0x45 'E' {1512, 23, 21, 21, 0, -20}, // 0x46 'F' {1573, 21, 21, 21, 2, -20}, // 0x47 'G' {1629, 23, 21, 21, 0, -20}, // 0x48 'H' {1690, 19, 21, 21, 2, -20}, // 0x49 'I' {1740, 23, 21, 21, 0, -20}, // 0x4A 'J' {1801, 23, 21, 21, 0, -20}, // 0x4B 'K' {1862, 20, 21, 21, 1, -20}, // 0x4C 'L' {1915, 25, 21, 21, 0, -20}, // 0x4D 'M' {1981, 24, 21, 21, 1, -20}, // 0x4E 'N' {2044, 20, 21, 21, 2, -20}, // 0x4F 'O' {2097, 21, 21, 21, 1, -20}, // 0x50 'P' {2153, 20, 26, 21, 2, -20}, // 0x51 'Q' {2218, 22, 21, 21, 0, -20}, // 0x52 'R' {2276, 19, 21, 21, 3, -20}, // 0x53 'S' {2326, 19, 21, 21, 3, -20}, // 0x54 'T' {2376, 21, 21, 21, 3, -20}, // 0x55 'U' {2432, 23, 21, 21, 1, -20}, // 0x56 'V' {2493, 22, 21, 21, 2, -20}, // 0x57 'W' {2551, 24, 21, 21, 0, -20}, // 0x58 'X' {2614, 20, 21, 21, 3, -20}, // 0x59 'Y' {2667, 19, 21, 21, 2, -20}, // 0x5A 'Z' {2717, 13, 27, 21, 8, -21}, // 0x5B '[' {2761, 10, 28, 21, 8, -23}, // 0x5C '\' {2796, 13, 27, 21, 4, -21}, // 0x5D ']' {2840, 15, 11, 21, 6, -21}, // 0x5E '^' {2861, 21, 4, 21, -1, 4}, // 0x5F '_' {2872, 6, 6, 21, 10, -22}, // 0x60 '`' {2877, 19, 16, 21, 2, -15}, // 0x61 'a' {2915, 22, 22, 21, 0, -21}, // 0x62 'b' {2976, 19, 16, 21, 3, -15}, // 0x63 'c' {3014, 21, 22, 21, 3, -21}, // 0x64 'd' {3072, 18, 16, 21, 3, -15}, // 0x65 'e' {3108, 21, 22, 21, 3, -21}, // 0x66 'f' {3166, 21, 23, 21, 2, -15}, // 0x67 'g' {3227, 20, 22, 21, 1, -21}, // 0x68 'h' {3282, 16, 22, 21, 3, -21}, // 0x69 'i' {3326, 18, 29, 21, 2, -21}, // 0x6A 'j' {3392, 20, 22, 21, 1, -21}, // 0x6B 'k' {3447, 16, 22, 21, 3, -21}, // 0x6C 'l' {3491, 23, 16, 21, 0, -15}, // 0x6D 'm' {3537, 21, 16, 21, 1, -15}, // 0x6E 'n' {3579, 18, 16, 21, 3, -15}, // 0x6F 'o' {3615, 23, 23, 21, -1, -15}, // 0x70 'p' {3682, 22, 23, 21, 2, -15}, // 0x71 'q' {3746, 20, 16, 21, 2, -15}, // 0x72 'r' {3786, 16, 16, 21, 4, -15}, // 0x73 's' {3818, 16, 21, 21, 4, -20}, // 0x74 't' {3860, 18, 16, 21, 3, -15}, // 0x75 'u' {3896, 21, 16, 21, 2, -15}, // 0x76 'v' {3938, 21, 16, 21, 3, -15}, // 0x77 'w' {3980, 21, 16, 21, 1, -15}, // 0x78 'x' {4022, 24, 23, 21, -1, -15}, // 0x79 'y' {4091, 18, 16, 21, 3, -15}, // 0x7A 'z' {4127, 12, 27, 21, 8, -21}, // 0x7B '{' {4168, 8, 27, 21, 8, -21}, // 0x7C '|' {4195, 13, 27, 21, 4, -21}, // 0x7D '}' {4239, 17, 8, 21, 4, -13}}; // 0x7E '~' const GFXfont FreeMonoBoldOblique18pt7b PROGMEM = { (uint8_t *)FreeMonoBoldOblique18pt7bBitmaps, (GFXglyph *)FreeMonoBoldOblique18pt7bGlyphs, 0x20, 0x7E, 35}; // Approx. 4928 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoBoldOblique24pt7b.h ================================================ const uint8_t FreeMonoBoldOblique24pt7bBitmaps[] PROGMEM = { 0x01, 0xE0, 0x3F, 0x07, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xE0, 0xFE, 0x0F, 0xE0, 0xFE, 0x0F, 0xC0, 0xFC, 0x1F, 0xC1, 0xF8, 0x1F, 0x81, 0xF8, 0x1F, 0x81, 0xF0, 0x1F, 0x01, 0xF0, 0x1E, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x7E, 0x0F, 0xE0, 0xFE, 0x0F, 0xC0, 0x78, 0x00, 0x7E, 0x1F, 0xBF, 0x0F, 0xDF, 0x87, 0xCF, 0x83, 0xE7, 0xC1, 0xF3, 0xE0, 0xF1, 0xE0, 0xF8, 0xF0, 0x7C, 0x78, 0x3C, 0x38, 0x1E, 0x1C, 0x0F, 0x0E, 0x07, 0x0E, 0x03, 0x83, 0x01, 0x80, 0x00, 0x1C, 0x1C, 0x00, 0x3E, 0x3E, 0x00, 0x3E, 0x3E, 0x00, 0x3C, 0x3C, 0x00, 0x7C, 0x7C, 0x00, 0x7C, 0x7C, 0x00, 0x7C, 0x7C, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x0F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFE, 0x03, 0xE3, 0xE0, 0x03, 0xE3, 0xE0, 0x03, 0xC3, 0xC0, 0x07, 0xC7, 0xC0, 0x7F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF0, 0x0F, 0x0F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x3E, 0x1E, 0x00, 0x3E, 0x3E, 0x00, 0x3E, 0x3E, 0x00, 0x3C, 0x3C, 0x00, 0x7C, 0x7C, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFF, 0x00, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x81, 0xFC, 0x1F, 0xC1, 0xF8, 0x03, 0xC0, 0xF8, 0x01, 0xE0, 0x7C, 0x00, 0x40, 0x3F, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0xFF, 0x80, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x07, 0xE0, 0xE0, 0x01, 0xF0, 0xF0, 0x00, 0xF8, 0xF8, 0x00, 0xFC, 0x7E, 0x00, 0xFC, 0x3F, 0x81, 0xFE, 0x1F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFE, 0x03, 0xFF, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x0F, 0xF8, 0x00, 0x7F, 0xE0, 0x03, 0xC3, 0xC0, 0x0E, 0x07, 0x00, 0x70, 0x1C, 0x01, 0xC0, 0x70, 0x07, 0x01, 0xC0, 0x1C, 0x0E, 0x00, 0x78, 0x78, 0x00, 0xFF, 0xC0, 0x03, 0xFE, 0x1F, 0x03, 0xE3, 0xFC, 0x00, 0x7F, 0xC0, 0x0F, 0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xC0, 0x03, 0xF8, 0x7C, 0x0F, 0x07, 0xFC, 0x00, 0x3F, 0xF0, 0x01, 0xE1, 0xE0, 0x07, 0x03, 0x80, 0x38, 0x0E, 0x00, 0xE0, 0x38, 0x03, 0x80, 0xE0, 0x0E, 0x07, 0x00, 0x3C, 0x3C, 0x00, 0x7F, 0xE0, 0x01, 0xFF, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x01, 0xFF, 0x80, 0x3F, 0xFC, 0x03, 0xFF, 0xE0, 0x1F, 0xFE, 0x01, 0xF1, 0xE0, 0x1F, 0x04, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x07, 0xF8, 0x00, 0x7F, 0xE3, 0xE7, 0xFF, 0x3F, 0x7E, 0xFF, 0xFB, 0xE7, 0xFF, 0x9E, 0x1F, 0xF1, 0xF0, 0xFF, 0x8F, 0x83, 0xF8, 0x7C, 0x1F, 0xC3, 0xF0, 0xFF, 0x9F, 0xFF, 0xFC, 0x7F, 0xFF, 0xE3, 0xFF, 0xFF, 0x0F, 0xFD, 0xF0, 0x1F, 0x80, 0x00, 0x7E, 0xFD, 0xF3, 0xE7, 0xCF, 0x3E, 0x7C, 0xF1, 0xE3, 0xC7, 0x0E, 0x18, 0x00, 0x00, 0x18, 0x00, 0xF0, 0x07, 0xC0, 0x3F, 0x01, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF8, 0x07, 0xC0, 0x3E, 0x00, 0xF8, 0x07, 0xC0, 0x1F, 0x00, 0xF8, 0x03, 0xE0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xFC, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x80, 0x7E, 0x00, 0xFC, 0x03, 0xF0, 0x07, 0xC0, 0x1E, 0x00, 0x00, 0xC0, 0x07, 0x80, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x07, 0xE0, 0x1F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x0F, 0x80, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x3E, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x08, 0x3C, 0x09, 0xF9, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0x87, 0xFF, 0xE0, 0x07, 0xF8, 0x00, 0x7F, 0xC0, 0x07, 0xFF, 0x00, 0x7F, 0xF8, 0x07, 0xE7, 0xE0, 0x3E, 0x3F, 0x01, 0xE0, 0xF8, 0x0E, 0x07, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x7C, 0x00, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xE0, 0x00, 0x03, 0xF0, 0x7E, 0x07, 0xC0, 0xFC, 0x0F, 0x81, 0xF0, 0x1E, 0x03, 0xE0, 0x3C, 0x07, 0x80, 0x78, 0x0F, 0x00, 0xE0, 0x0C, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x3C, 0xFF, 0xFF, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x1F, 0xFF, 0xE0, 0x7F, 0xFF, 0xC0, 0xFC, 0x1F, 0x83, 0xF0, 0x1F, 0x8F, 0xC0, 0x1F, 0x1F, 0x00, 0x3E, 0x7C, 0x00, 0x7C, 0xF8, 0x00, 0xF9, 0xF0, 0x01, 0xF3, 0xC0, 0x07, 0xCF, 0x80, 0x0F, 0x9F, 0x00, 0x1E, 0x3E, 0x00, 0x3C, 0x78, 0x00, 0xF8, 0xF0, 0x01, 0xF3, 0xE0, 0x03, 0xE7, 0xC0, 0x07, 0x8F, 0x80, 0x1F, 0x1F, 0x00, 0x3E, 0x3E, 0x00, 0xF8, 0x7C, 0x01, 0xF0, 0xFC, 0x07, 0xC1, 0xFC, 0x3F, 0x81, 0xFF, 0xFE, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x03, 0xFF, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x0F, 0xF0, 0x01, 0xFF, 0x80, 0x1F, 0xFC, 0x03, 0xFB, 0xE0, 0x1F, 0x9E, 0x00, 0xF1, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x01, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x80, 0x7F, 0x07, 0xF0, 0x1F, 0x00, 0xFC, 0x0F, 0x80, 0x1F, 0x03, 0xE0, 0x07, 0xC0, 0xF0, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x70, 0x3F, 0x80, 0x3E, 0x1F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x1F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF8, 0x0F, 0x81, 0xFC, 0x07, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0xC0, 0x01, 0xFF, 0xC0, 0x01, 0xFF, 0xC0, 0x00, 0xFF, 0x80, 0x00, 0x7F, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x3C, 0x01, 0xFC, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFC, 0x03, 0xFF, 0xFC, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF8, 0x00, 0x7F, 0xE0, 0x03, 0xFF, 0x80, 0x1F, 0xBE, 0x00, 0x7C, 0xF0, 0x03, 0xE7, 0xC0, 0x1F, 0x1F, 0x00, 0xF8, 0x7C, 0x07, 0xE1, 0xE0, 0x3F, 0x07, 0x81, 0xF8, 0x3E, 0x07, 0xC0, 0xF8, 0x3E, 0x03, 0xC1, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x80, 0x00, 0xF8, 0x00, 0x3F, 0xF8, 0x01, 0xFF, 0xE0, 0x07, 0xFF, 0x80, 0x1F, 0xFE, 0x00, 0x7F, 0xF0, 0x01, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xC0, 0x3F, 0xFF, 0xE0, 0x3F, 0xFF, 0xE0, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF7, 0xF0, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x0F, 0x01, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x3C, 0x03, 0xFC, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFC, 0x03, 0xFF, 0xF8, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xFE, 0x00, 0x1F, 0xFF, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0xFE, 0x01, 0xFE, 0x1C, 0x03, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x3E, 0x00, 0x3E, 0xFF, 0x80, 0x7D, 0xFF, 0xC0, 0x7F, 0xFF, 0xE0, 0x7F, 0xFF, 0xE0, 0x7F, 0x87, 0xF0, 0xFF, 0x03, 0xF0, 0xFC, 0x01, 0xF0, 0xF8, 0x01, 0xF0, 0xF8, 0x01, 0xF0, 0xF8, 0x01, 0xF0, 0xF8, 0x03, 0xE0, 0xF8, 0x03, 0xE0, 0xFC, 0x07, 0xC0, 0xFE, 0x0F, 0xC0, 0x7F, 0xFF, 0x80, 0x7F, 0xFF, 0x00, 0x3F, 0xFE, 0x00, 0x1F, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0xFF, 0xFD, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xBF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFB, 0xE0, 0x07, 0xCF, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0xE0, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0xE0, 0x7F, 0xFF, 0xC0, 0xFC, 0x1F, 0xC3, 0xF0, 0x1F, 0x8F, 0xC0, 0x1F, 0x1F, 0x00, 0x3E, 0x3E, 0x00, 0x7C, 0x7C, 0x01, 0xF0, 0xFC, 0x07, 0xE0, 0xFC, 0x1F, 0x81, 0xFF, 0xFE, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xE0, 0x0F, 0xFF, 0xE0, 0x3F, 0xFF, 0xE0, 0xFE, 0x0F, 0xC3, 0xF0, 0x0F, 0xC7, 0xC0, 0x0F, 0x9F, 0x00, 0x1F, 0x3E, 0x00, 0x3E, 0x7C, 0x00, 0xFC, 0xFC, 0x03, 0xF1, 0xFC, 0x1F, 0xE3, 0xFF, 0xFF, 0x83, 0xFF, 0xFE, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0xF8, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xFE, 0x03, 0xFF, 0xFE, 0x03, 0xF0, 0x7F, 0x07, 0xE0, 0x3F, 0x07, 0xC0, 0x1F, 0x0F, 0xC0, 0x1F, 0x0F, 0x80, 0x1F, 0x0F, 0x80, 0x1F, 0x0F, 0x80, 0x3F, 0x0F, 0xC0, 0x7F, 0x0F, 0xE1, 0xFF, 0x07, 0xFF, 0xFE, 0x07, 0xFF, 0xFE, 0x03, 0xFF, 0xBE, 0x01, 0xFF, 0x7C, 0x00, 0xFC, 0x7C, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x38, 0x7F, 0x80, 0x7F, 0xFF, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xF8, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0x07, 0x83, 0xF1, 0xFC, 0x7F, 0x1F, 0x83, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x1F, 0x8F, 0xE3, 0xF8, 0xFC, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x03, 0xE0, 0x0F, 0xC0, 0x1F, 0x00, 0x7C, 0x00, 0xF0, 0x03, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xE0, 0x00, 0x7F, 0xC0, 0x00, 0xFF, 0x80, 0x03, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x0F, 0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x1F, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x0F, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0x80, 0x1F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0xFF, 0xC0, 0x01, 0xFF, 0x80, 0x03, 0xFE, 0x00, 0x07, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x01, 0xFF, 0xE1, 0xFF, 0xFE, 0x3F, 0xFF, 0xE7, 0xFF, 0xFF, 0xF8, 0x1F, 0xFE, 0x00, 0xFF, 0x80, 0x1F, 0xF0, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x0F, 0xE0, 0x07, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xC0, 0x0F, 0xE0, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x3F, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0xF0, 0x01, 0xFF, 0xF0, 0x0F, 0xFF, 0xE0, 0x3F, 0x07, 0xE0, 0x7C, 0x07, 0xC1, 0xE0, 0x07, 0x87, 0xC0, 0x0F, 0x0F, 0x00, 0x1C, 0x3C, 0x00, 0x78, 0x78, 0x07, 0xF1, 0xE0, 0x3F, 0xE3, 0xC1, 0xFF, 0x87, 0x87, 0xFF, 0x0E, 0x1F, 0x9E, 0x3C, 0x7C, 0x3C, 0x78, 0xF0, 0x78, 0xF3, 0xC0, 0xE1, 0xC7, 0x83, 0xC3, 0x8F, 0x07, 0x8F, 0x1E, 0x0F, 0x1E, 0x3E, 0x1C, 0x3C, 0x7F, 0xFC, 0x78, 0x7F, 0xFC, 0xF0, 0x7F, 0xF1, 0xE0, 0x3F, 0xE3, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3F, 0x01, 0xC0, 0x7F, 0xFF, 0x80, 0x7F, 0xFE, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x01, 0xE7, 0xC0, 0x00, 0x0F, 0x9F, 0x00, 0x00, 0x7C, 0x7C, 0x00, 0x01, 0xE1, 0xF8, 0x00, 0x0F, 0x87, 0xE0, 0x00, 0x7C, 0x0F, 0x80, 0x01, 0xF0, 0x3E, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0x3F, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xF8, 0x0F, 0xC0, 0x07, 0xE0, 0x3E, 0x00, 0x0F, 0x87, 0xFF, 0x03, 0xFF, 0xBF, 0xFC, 0x1F, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFF, 0xC1, 0xFF, 0xEF, 0xFE, 0x07, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFF, 0x80, 0x7C, 0x00, 0xFC, 0x03, 0xE0, 0x03, 0xE0, 0x1E, 0x00, 0x1F, 0x01, 0xF0, 0x00, 0xF8, 0x0F, 0x80, 0x0F, 0x80, 0x7C, 0x01, 0xF8, 0x03, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFC, 0x03, 0xC0, 0x0F, 0xF0, 0x3E, 0x00, 0x1F, 0x81, 0xF0, 0x00, 0x7C, 0x0F, 0x80, 0x03, 0xE0, 0x78, 0x00, 0x1F, 0x03, 0xC0, 0x03, 0xF1, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFE, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xFF, 0xE6, 0x00, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xF0, 0x7F, 0x81, 0xFF, 0x0F, 0xE0, 0x07, 0xE1, 0xF8, 0x00, 0x3E, 0x1F, 0x00, 0x03, 0xE3, 0xF0, 0x00, 0x3C, 0x3E, 0x00, 0x03, 0xC7, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x70, 0x7E, 0x00, 0x1F, 0x07, 0xF8, 0x07, 0xF0, 0x3F, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0x00, 0xFE, 0x01, 0xF0, 0x07, 0xE0, 0x1E, 0x00, 0x3F, 0x01, 0xE0, 0x01, 0xF0, 0x3E, 0x00, 0x1F, 0x03, 0xE0, 0x01, 0xF0, 0x3E, 0x00, 0x1F, 0x03, 0xC0, 0x01, 0xF0, 0x7C, 0x00, 0x1F, 0x07, 0xC0, 0x03, 0xF0, 0x7C, 0x00, 0x3E, 0x07, 0x80, 0x03, 0xE0, 0x78, 0x00, 0x7E, 0x0F, 0x80, 0x07, 0xC0, 0xF8, 0x00, 0xFC, 0x0F, 0x80, 0x1F, 0x80, 0xF0, 0x07, 0xF0, 0x7F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFF, 0x00, 0x78, 0x00, 0xF8, 0x07, 0xC0, 0x07, 0xC0, 0x3E, 0x00, 0x3E, 0x01, 0xF0, 0xF1, 0xE0, 0x0F, 0x0F, 0x8E, 0x00, 0x78, 0x7C, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x3F, 0xFE, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0xFF, 0xFC, 0x00, 0x07, 0xC3, 0xC0, 0x00, 0x3E, 0x1E, 0x1E, 0x01, 0xE0, 0xE0, 0xF0, 0x0F, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0x7C, 0x07, 0xC0, 0x03, 0xE1, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0xC0, 0x1F, 0x00, 0x0F, 0x80, 0x3E, 0x00, 0x1E, 0x00, 0x78, 0x00, 0x7C, 0x00, 0xF0, 0x70, 0xF8, 0x03, 0xE1, 0xF0, 0xE0, 0x07, 0xC3, 0xC0, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x03, 0xC3, 0xE0, 0x00, 0x07, 0x87, 0xC0, 0x00, 0x1F, 0x07, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x60, 0x03, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xE0, 0x7F, 0x80, 0xFE, 0x0F, 0xE0, 0x03, 0xE0, 0xF8, 0x00, 0x3C, 0x1F, 0x00, 0x03, 0xC3, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x7F, 0xFC, 0xF8, 0x0F, 0xFF, 0xEF, 0x80, 0xFF, 0xFE, 0xF8, 0x0F, 0xFF, 0xCF, 0x80, 0x7F, 0xF8, 0xF8, 0x00, 0x1F, 0x0F, 0xC0, 0x01, 0xF0, 0xFE, 0x00, 0x1F, 0x07, 0xF8, 0x07, 0xE0, 0x7F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFF, 0x0F, 0xF8, 0x0F, 0xFC, 0x7F, 0xF0, 0x7F, 0xF1, 0xFF, 0xC1, 0xFF, 0xC7, 0xFE, 0x03, 0xFE, 0x1F, 0xF0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xC0, 0x07, 0x80, 0x1F, 0x00, 0x1E, 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x1E, 0x00, 0x3C, 0x00, 0xF8, 0x07, 0xFE, 0x1F, 0xF8, 0x3F, 0xF8, 0xFF, 0xF0, 0xFF, 0xE3, 0xFF, 0xC3, 0xFF, 0x8F, 0xFE, 0x0F, 0xFC, 0x3F, 0xF8, 0x00, 0x03, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xF0, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0x80, 0x00, 0x07, 0xC0, 0x01, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF8, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0xC0, 0x07, 0x00, 0x0F, 0x80, 0x1F, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x78, 0x00, 0x78, 0x01, 0xF0, 0x01, 0xF0, 0x03, 0xE0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x0F, 0x80, 0x3F, 0x00, 0x1F, 0xC0, 0xFC, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x03, 0xFF, 0xC3, 0xFE, 0x0F, 0xFF, 0x8F, 0xFC, 0x1F, 0xFF, 0x3F, 0xF8, 0x3F, 0xFE, 0x7F, 0xF0, 0x7F, 0xF8, 0x7F, 0xC0, 0x1F, 0x01, 0xFC, 0x00, 0x3E, 0x07, 0xF0, 0x00, 0x78, 0x3F, 0x80, 0x01, 0xF0, 0xFE, 0x00, 0x03, 0xE3, 0xF0, 0x00, 0x07, 0xDF, 0xC0, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x01, 0xFC, 0xFC, 0x00, 0x03, 0xE0, 0xFC, 0x00, 0x0F, 0x81, 0xF8, 0x00, 0x1F, 0x01, 0xF8, 0x00, 0x3E, 0x03, 0xF0, 0x00, 0x78, 0x03, 0xE0, 0x00, 0xF0, 0x07, 0xE0, 0x1F, 0xFE, 0x0F, 0xF8, 0x7F, 0xFC, 0x1F, 0xF8, 0xFF, 0xF8, 0x1F, 0xF1, 0xFF, 0xF0, 0x3F, 0xE1, 0xFF, 0xC0, 0x7F, 0x80, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xE0, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x0E, 0x00, 0xF0, 0x01, 0xE0, 0x3E, 0x00, 0x7C, 0x07, 0xC0, 0x0F, 0x80, 0xF8, 0x01, 0xF0, 0x1E, 0x00, 0x7C, 0x07, 0xC0, 0x0F, 0x9F, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x3F, 0xC1, 0xFF, 0x00, 0x1F, 0xF0, 0x7F, 0xC0, 0x07, 0xFC, 0x1F, 0xF0, 0x03, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x00, 0xFF, 0x80, 0xFF, 0x80, 0x3F, 0xE0, 0x3F, 0xE0, 0x0F, 0xF8, 0x1F, 0xF0, 0x03, 0xFF, 0x0F, 0xFC, 0x00, 0xF7, 0xC3, 0xFF, 0x00, 0x7D, 0xF1, 0xF7, 0xC0, 0x1F, 0x7C, 0xFD, 0xF0, 0x07, 0xDF, 0xBE, 0x78, 0x01, 0xE3, 0xFF, 0x3E, 0x00, 0x78, 0xFF, 0xCF, 0x80, 0x3E, 0x3F, 0xE3, 0xE0, 0x0F, 0x87, 0xF0, 0xF8, 0x03, 0xE1, 0xFC, 0x3C, 0x00, 0xF0, 0x7E, 0x1F, 0x00, 0x7C, 0x1F, 0x07, 0xC0, 0x1F, 0x00, 0x01, 0xF0, 0x07, 0xC0, 0x00, 0x78, 0x07, 0xFE, 0x01, 0xFF, 0x83, 0xFF, 0xC0, 0xFF, 0xF0, 0xFF, 0xF0, 0x7F, 0xFC, 0x3F, 0xF8, 0x1F, 0xFE, 0x0F, 0xFC, 0x03, 0xFF, 0x00, 0x07, 0xF8, 0x07, 0xFF, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFE, 0x0F, 0xFE, 0x01, 0xFE, 0x00, 0xF8, 0x01, 0xFF, 0x00, 0xF0, 0x01, 0xFF, 0x01, 0xF0, 0x03, 0xFF, 0x81, 0xF0, 0x03, 0xFF, 0x81, 0xF0, 0x03, 0xEF, 0xC1, 0xF0, 0x03, 0xCF, 0xC1, 0xE0, 0x07, 0xC7, 0xE3, 0xE0, 0x07, 0xC7, 0xE3, 0xE0, 0x07, 0xC3, 0xF3, 0xE0, 0x07, 0xC3, 0xF3, 0xC0, 0x07, 0x81, 0xF7, 0xC0, 0x0F, 0x81, 0xFF, 0xC0, 0x0F, 0x80, 0xFF, 0xC0, 0x0F, 0x80, 0xFF, 0xC0, 0x0F, 0x00, 0xFF, 0x80, 0x0F, 0x00, 0x7F, 0x80, 0x7F, 0xF0, 0x7F, 0x80, 0xFF, 0xF0, 0x3F, 0x80, 0xFF, 0xF0, 0x3F, 0x00, 0xFF, 0xF0, 0x1F, 0x00, 0x7F, 0xE0, 0x1F, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xFF, 0x80, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xF8, 0x0F, 0xF0, 0x7F, 0x83, 0xF8, 0x03, 0xF0, 0xFC, 0x00, 0x7E, 0x1F, 0x00, 0x07, 0xE7, 0xE0, 0x00, 0x7C, 0xF8, 0x00, 0x0F, 0xBE, 0x00, 0x01, 0xF7, 0xC0, 0x00, 0x3E, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x3E, 0xF8, 0x00, 0x07, 0xDF, 0x00, 0x00, 0xFB, 0xE0, 0x00, 0x3E, 0x7C, 0x00, 0x0F, 0xCF, 0xC0, 0x01, 0xF0, 0xF8, 0x00, 0x7E, 0x1F, 0x80, 0x3F, 0x83, 0xFC, 0x1F, 0xE0, 0x3F, 0xFF, 0xF8, 0x03, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xF0, 0x0F, 0x80, 0x7F, 0x00, 0xF8, 0x01, 0xF0, 0x0F, 0x00, 0x1F, 0x01, 0xF0, 0x01, 0xF0, 0x1F, 0x00, 0x1F, 0x01, 0xF0, 0x03, 0xE0, 0x1E, 0x00, 0x7E, 0x01, 0xE0, 0x0F, 0xC0, 0x3F, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xE0, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x78, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xFF, 0x80, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xF8, 0x0F, 0xF0, 0x7F, 0x83, 0xF8, 0x03, 0xF0, 0xFC, 0x00, 0x3F, 0x1F, 0x00, 0x07, 0xE7, 0xC0, 0x00, 0x7D, 0xF8, 0x00, 0x0F, 0xBE, 0x00, 0x01, 0xF7, 0xC0, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x3E, 0xF8, 0x00, 0x07, 0xDF, 0x00, 0x01, 0xFB, 0xE0, 0x00, 0x3E, 0x7E, 0x00, 0x0F, 0x8F, 0xC0, 0x03, 0xF0, 0xFC, 0x01, 0xFC, 0x1F, 0xE0, 0xFF, 0x01, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1F, 0xF8, 0x38, 0x0F, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x00, 0xF0, 0x1F, 0x80, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0x00, 0x7C, 0x03, 0xF8, 0x03, 0xE0, 0x07, 0xC0, 0x1E, 0x00, 0x3E, 0x00, 0xF0, 0x01, 0xF0, 0x0F, 0x80, 0x1F, 0x80, 0x7C, 0x01, 0xF8, 0x03, 0xE0, 0x3F, 0x80, 0x1F, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x1E, 0x07, 0xF0, 0x01, 0xF0, 0x1F, 0xC0, 0x0F, 0x80, 0x7E, 0x00, 0x7C, 0x03, 0xF8, 0x03, 0xC0, 0x0F, 0xC0, 0xFF, 0xE0, 0x7F, 0xCF, 0xFF, 0x01, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xC0, 0x3F, 0xDF, 0xFC, 0x01, 0xFC, 0x00, 0x0F, 0xE1, 0x80, 0x0F, 0xFF, 0xF0, 0x0F, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xC1, 0xFC, 0x0F, 0xE0, 0x7C, 0x01, 0xF8, 0x3E, 0x00, 0x3E, 0x0F, 0x80, 0x0F, 0x03, 0xE0, 0x03, 0xC0, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xFF, 0x80, 0x01, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xE1, 0xE0, 0x00, 0xF8, 0xF8, 0x00, 0x3E, 0x3E, 0x00, 0x1F, 0x8F, 0xC0, 0x0F, 0xC3, 0xFC, 0x0F, 0xF0, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFE, 0x03, 0x9F, 0xFE, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x9F, 0x07, 0x83, 0xE7, 0x83, 0xE0, 0xFB, 0xE0, 0xF8, 0x3E, 0xF8, 0x3E, 0x0F, 0x3E, 0x0F, 0x07, 0xCF, 0x07, 0xC1, 0xF3, 0x81, 0xF0, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x07, 0xFF, 0xF8, 0x01, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xE0, 0x07, 0xFF, 0xF0, 0x00, 0x3F, 0xF0, 0x7F, 0xE7, 0xFF, 0x8F, 0xFF, 0x7F, 0xF9, 0xFF, 0xF7, 0xFF, 0x1F, 0xFE, 0x7F, 0xF0, 0xFF, 0xC1, 0xE0, 0x01, 0xF0, 0x1E, 0x00, 0x1F, 0x03, 0xE0, 0x01, 0xF0, 0x3E, 0x00, 0x1F, 0x03, 0xE0, 0x01, 0xE0, 0x3C, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xE0, 0x7C, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xC0, 0x7C, 0x00, 0x3C, 0x07, 0x80, 0x07, 0xC0, 0xF8, 0x00, 0x7C, 0x0F, 0x80, 0x07, 0xC0, 0xF8, 0x00, 0x78, 0x0F, 0x80, 0x0F, 0x80, 0xFC, 0x01, 0xF8, 0x0F, 0xC0, 0x3F, 0x00, 0xFF, 0x07, 0xE0, 0x07, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x7F, 0xF0, 0x1F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0x7F, 0xE0, 0x3F, 0xF8, 0x7C, 0x00, 0x1F, 0x01, 0xF0, 0x00, 0xF8, 0x07, 0xC0, 0x03, 0xE0, 0x1F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0xF8, 0x00, 0xF8, 0x03, 0xE0, 0x03, 0xE0, 0x1F, 0x00, 0x0F, 0xC0, 0xFC, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0x7C, 0x1F, 0x00, 0x01, 0xF0, 0xFC, 0x00, 0x07, 0xC3, 0xE0, 0x00, 0x1F, 0x9F, 0x00, 0x00, 0x3E, 0xFC, 0x00, 0x00, 0xFB, 0xE0, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x7F, 0xF0, 0x3F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0x1E, 0x00, 0x01, 0xE0, 0xF0, 0x7C, 0x1F, 0x0F, 0x87, 0xE0, 0xF0, 0x7C, 0x3F, 0x0F, 0x83, 0xE3, 0xF8, 0x7C, 0x1F, 0x1F, 0xE3, 0xC0, 0xF9, 0xFF, 0x3E, 0x07, 0xCF, 0xF9, 0xF0, 0x3E, 0xFF, 0xCF, 0x01, 0xF7, 0xBE, 0xF8, 0x0F, 0xFD, 0xF7, 0xC0, 0x7B, 0xCF, 0xFC, 0x03, 0xFE, 0x7F, 0xE0, 0x3F, 0xE3, 0xFF, 0x01, 0xFF, 0x0F, 0xF0, 0x0F, 0xF0, 0x7F, 0x80, 0x7F, 0x83, 0xFC, 0x03, 0xF8, 0x1F, 0xC0, 0x1F, 0xC0, 0xFE, 0x00, 0xFC, 0x07, 0xF0, 0x07, 0xE0, 0x3F, 0x00, 0x3E, 0x01, 0xF8, 0x00, 0x01, 0xFE, 0x03, 0xFE, 0x03, 0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0xFE, 0x07, 0xFE, 0x03, 0xFC, 0x03, 0xFC, 0x00, 0xFC, 0x03, 0xF0, 0x00, 0xFE, 0x07, 0xE0, 0x00, 0x7E, 0x1F, 0xC0, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0xFC, 0xFC, 0x00, 0x01, 0xF8, 0x7E, 0x00, 0x03, 0xF0, 0x7E, 0x00, 0x07, 0xE0, 0x3F, 0x00, 0x0F, 0xC0, 0x1F, 0x80, 0x7F, 0xE0, 0x7F, 0xE0, 0xFF, 0xE0, 0xFF, 0xE0, 0xFF, 0xE0, 0xFF, 0xE0, 0xFF, 0xE0, 0xFF, 0xE0, 0x7F, 0xC0, 0xFF, 0xC0, 0x7F, 0xC0, 0x7F, 0xFF, 0xF0, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x03, 0xFF, 0x7F, 0x80, 0xFF, 0x87, 0xC0, 0x1F, 0x01, 0xF8, 0x0F, 0x80, 0x3E, 0x07, 0xC0, 0x0F, 0xC3, 0xE0, 0x01, 0xF1, 0xF0, 0x00, 0x7E, 0xF8, 0x00, 0x0F, 0xFC, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x07, 0xFF, 0xF0, 0x03, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x00, 0x01, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFC, 0x07, 0xC0, 0x3F, 0x00, 0xF8, 0x0F, 0xC0, 0x1F, 0x03, 0xF0, 0x03, 0xC0, 0xFC, 0x00, 0xF8, 0x3F, 0x00, 0x0E, 0x0F, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xE0, 0x00, 0x01, 0xF8, 0x0E, 0x00, 0x7E, 0x03, 0xE0, 0x1F, 0x80, 0x7C, 0x07, 0xE0, 0x0F, 0x01, 0xF8, 0x03, 0xE0, 0x7E, 0x00, 0x7C, 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0, 0x0F, 0xFC, 0x07, 0xFF, 0x01, 0xFF, 0x80, 0x7C, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xC0, 0x01, 0xF0, 0x00, 0x7F, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x00, 0x20, 0x03, 0xC0, 0x3E, 0x01, 0xF0, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x00, 0xF0, 0x07, 0x80, 0x38, 0x00, 0xFF, 0xC0, 0x7F, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x0F, 0x80, 0x7F, 0xE0, 0x3F, 0xF8, 0x0F, 0xFC, 0x03, 0xFF, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x08, 0x00, 0x01, 0xC0, 0x00, 0x3C, 0x00, 0x07, 0xE0, 0x00, 0xFE, 0x00, 0x1F, 0xF0, 0x03, 0xFF, 0x80, 0xFF, 0xF8, 0x1F, 0xCF, 0xC3, 0xF8, 0xFE, 0x7E, 0x07, 0xEF, 0xC0, 0x3F, 0xF8, 0x03, 0xFF, 0x00, 0x1F, 0xE0, 0x00, 0xE0, 0x7F, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0x00, 0x60, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x06, 0x00, 0x3F, 0xE0, 0x03, 0xFF, 0xF8, 0x07, 0xFF, 0xFC, 0x07, 0xFF, 0xFE, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x7F, 0xFE, 0x03, 0xFF, 0xFC, 0x0F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x7F, 0x00, 0x78, 0x7C, 0x00, 0x78, 0xF8, 0x00, 0xF8, 0xF8, 0x03, 0xF8, 0xFC, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xFD, 0xFE, 0x0F, 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF0, 0xFE, 0x00, 0x0F, 0xBF, 0xFC, 0x00, 0x7F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xFF, 0x00, 0xFF, 0x03, 0xF8, 0x0F, 0xE0, 0x07, 0xE0, 0x7E, 0x00, 0x3F, 0x03, 0xE0, 0x00, 0xF8, 0x1F, 0x00, 0x07, 0xC0, 0xF0, 0x00, 0x3E, 0x0F, 0x80, 0x01, 0xF0, 0x7C, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0xC0, 0xFC, 0x00, 0x7C, 0x0F, 0xE0, 0x07, 0xE3, 0xFF, 0xC0, 0xFE, 0x3F, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xE0, 0x7F, 0x9F, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x1F, 0xE3, 0x80, 0x7F, 0xFF, 0xC0, 0x7F, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xFF, 0x01, 0xFC, 0x7E, 0x00, 0x7C, 0x7E, 0x00, 0x3E, 0x3E, 0x00, 0x0E, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x0C, 0x7F, 0x80, 0x3F, 0x1F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x3F, 0x87, 0xC0, 0x0F, 0xFF, 0x7C, 0x03, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0x81, 0xFC, 0x0F, 0xF8, 0x3F, 0x00, 0x3F, 0x83, 0xE0, 0x01, 0xF0, 0x7C, 0x00, 0x1F, 0x07, 0xC0, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x1E, 0x0F, 0x80, 0x03, 0xE0, 0xF8, 0x00, 0x3E, 0x0F, 0xC0, 0x07, 0xE0, 0xFC, 0x00, 0xFE, 0x07, 0xF0, 0x3F, 0xF8, 0x7F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xC0, 0xFF, 0xE7, 0xF8, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0xF0, 0x03, 0xFF, 0xF8, 0x07, 0xFF, 0xFC, 0x0F, 0xFF, 0xFE, 0x1F, 0xE0, 0x7E, 0x3F, 0x80, 0x1F, 0x3F, 0x00, 0x0F, 0x7E, 0x00, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x1C, 0x7F, 0x01, 0xFE, 0x7F, 0xFF, 0xFE, 0x3F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFC, 0x0F, 0xFF, 0xF0, 0x03, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xE0, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7F, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xE0, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xFE, 0xFF, 0x03, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF1, 0xFC, 0x1F, 0xFE, 0x3F, 0x80, 0x7F, 0x03, 0xE0, 0x03, 0xF0, 0x7E, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xE0, 0xF8, 0x00, 0x3E, 0x0F, 0x80, 0x03, 0xE0, 0xF8, 0x00, 0x3E, 0x0F, 0x80, 0x03, 0xC0, 0xF8, 0x00, 0x7C, 0x0F, 0xC0, 0x0F, 0xC0, 0xFC, 0x01, 0xFC, 0x07, 0xF0, 0x7F, 0x80, 0x7F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xF8, 0x00, 0xFF, 0xEF, 0x80, 0x03, 0xF0, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7E, 0x00, 0x1F, 0xFF, 0xE0, 0x03, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0x80, 0x03, 0xFF, 0xE0, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF1, 0xF8, 0x00, 0x79, 0xFF, 0x80, 0x1E, 0xFF, 0xF0, 0x0F, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x80, 0xFF, 0x07, 0xE0, 0x3F, 0x00, 0xF8, 0x1F, 0x80, 0x3E, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xC0, 0x7C, 0x00, 0xF0, 0x1E, 0x00, 0x7C, 0x0F, 0x80, 0x1F, 0x03, 0xE0, 0x07, 0xC0, 0xF8, 0x01, 0xE0, 0x3C, 0x00, 0xF8, 0x0F, 0x00, 0x3E, 0x1F, 0xF8, 0x3F, 0xEF, 0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF0, 0x3F, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x0F, 0xFE, 0x00, 0x1F, 0xFC, 0x00, 0x3F, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x3F, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFE, 0x07, 0xFF, 0xFC, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0xC0, 0xFF, 0xFF, 0x03, 0xFF, 0xFC, 0x07, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x0F, 0xFC, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x1F, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3C, 0x3F, 0xF0, 0x1F, 0x1F, 0xFC, 0x07, 0xC7, 0xFF, 0x01, 0xF1, 0xFF, 0xC0, 0x78, 0x7F, 0xE0, 0x1E, 0x7F, 0x80, 0x0F, 0xBF, 0x80, 0x03, 0xFF, 0xC0, 0x00, 0xFF, 0xC0, 0x00, 0x3F, 0xE0, 0x00, 0x0F, 0xFC, 0x00, 0x07, 0xFF, 0x80, 0x01, 0xF7, 0xF0, 0x00, 0x7C, 0xFE, 0x00, 0x1E, 0x1F, 0xC0, 0x0F, 0x83, 0xF8, 0x1F, 0xE0, 0xFF, 0xEF, 0xF8, 0x3F, 0xFB, 0xFE, 0x1F, 0xFE, 0xFF, 0x07, 0xFF, 0x9F, 0xC0, 0xFF, 0xC0, 0x00, 0x7F, 0xF0, 0x01, 0xFF, 0xC0, 0x03, 0xFF, 0x80, 0x07, 0xFF, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x7F, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0x00, 0x00, 0x07, 0x81, 0xE0, 0x3F, 0xBF, 0x9F, 0xE1, 0xFF, 0xFE, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFC, 0x7F, 0xC7, 0xF1, 0xF0, 0x7E, 0x1F, 0x87, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0x81, 0xE0, 0x7C, 0x1E, 0x0F, 0x81, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3C, 0x0F, 0x03, 0xC1, 0xF0, 0x7C, 0x0F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF1, 0xFE, 0x1F, 0x87, 0xEF, 0xFC, 0x7F, 0x1F, 0xFF, 0xF3, 0xFC, 0x7F, 0xFF, 0xCF, 0xF3, 0xFF, 0xFE, 0x3F, 0x8F, 0xE0, 0x00, 0x01, 0xF8, 0x01, 0xF9, 0xFF, 0x80, 0xFE, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0x07, 0xE0, 0x3F, 0x00, 0xF8, 0x1F, 0x80, 0x3E, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xC0, 0x7C, 0x00, 0xF0, 0x1E, 0x00, 0x7C, 0x0F, 0x80, 0x1F, 0x03, 0xE0, 0x07, 0xC0, 0xF8, 0x01, 0xE0, 0x3C, 0x00, 0xF8, 0x0F, 0x00, 0x3E, 0x1F, 0xF8, 0x3F, 0xEF, 0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF0, 0x3F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0xFF, 0x03, 0xF8, 0xFE, 0x00, 0xFE, 0x7C, 0x00, 0x3F, 0x7C, 0x00, 0x0F, 0xBE, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0xFB, 0xE0, 0x00, 0xFD, 0xF8, 0x00, 0x7C, 0xFE, 0x00, 0xFE, 0x3F, 0x81, 0xFE, 0x1F, 0xFF, 0xFE, 0x07, 0xFF, 0xFE, 0x01, 0xFF, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x07, 0xF9, 0xFF, 0xC0, 0x1F, 0xF7, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFF, 0xC0, 0x7F, 0xF0, 0x3F, 0x80, 0x3F, 0x80, 0x1F, 0x80, 0x7E, 0x00, 0x3F, 0x00, 0xF8, 0x00, 0x3E, 0x01, 0xF0, 0x00, 0x7C, 0x03, 0xC0, 0x00, 0xF8, 0x0F, 0x80, 0x01, 0xF0, 0x1F, 0x00, 0x07, 0xE0, 0x3E, 0x00, 0x0F, 0x80, 0x7C, 0x00, 0x3F, 0x01, 0xFC, 0x00, 0xFC, 0x03, 0xFE, 0x07, 0xF8, 0x07, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0x80, 0x1E, 0xFF, 0xFC, 0x00, 0x7C, 0xFF, 0xF0, 0x00, 0xF8, 0x7F, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xFF, 0x3F, 0xC0, 0xFF, 0xFD, 0xFE, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x8F, 0xE0, 0x7F, 0xF8, 0xFC, 0x00, 0xFE, 0x07, 0xC0, 0x03, 0xE0, 0x7C, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0xF8, 0x1E, 0x00, 0x07, 0xC1, 0xF0, 0x00, 0x3E, 0x0F, 0x80, 0x01, 0xE0, 0x7C, 0x00, 0x1F, 0x03, 0xF0, 0x01, 0xF8, 0x1F, 0x80, 0x1F, 0xC0, 0xFF, 0x03, 0xFC, 0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0xFF, 0xE7, 0xC0, 0x01, 0xFC, 0x3C, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x3F, 0xC3, 0xFE, 0x07, 0xFC, 0xFF, 0xE0, 0x7F, 0xDF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0x1C, 0x00, 0x7F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x3F, 0xCE, 0x03, 0xFF, 0xFC, 0x0F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC3, 0xF8, 0x0F, 0x87, 0xC0, 0x0E, 0x0F, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0x3F, 0xFF, 0xC0, 0x1F, 0xFF, 0xC0, 0x01, 0xFF, 0x80, 0x00, 0x3F, 0x1C, 0x00, 0x3E, 0x7C, 0x00, 0x7C, 0xFC, 0x03, 0xF3, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x8F, 0xFF, 0xFE, 0x1F, 0xFF, 0xF0, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0x80, 0x00, 0x78, 0x00, 0x7F, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7E, 0x00, 0xF7, 0xFF, 0xFF, 0x7F, 0xFF, 0xF3, 0xFF, 0xFE, 0x1F, 0xFF, 0x80, 0x7F, 0x80, 0x7F, 0x01, 0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xE0, 0x3F, 0xC7, 0xC0, 0x07, 0x8F, 0x80, 0x1F, 0x3E, 0x00, 0x3E, 0x7C, 0x00, 0x7C, 0xF8, 0x00, 0xF1, 0xF0, 0x03, 0xE3, 0xE0, 0x07, 0xC7, 0xC0, 0x0F, 0x8F, 0x80, 0x1F, 0x1F, 0x00, 0x7C, 0x3E, 0x01, 0xF8, 0x7E, 0x0F, 0xFC, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF1, 0xFF, 0xEF, 0xE1, 0xFF, 0xBF, 0x80, 0xFC, 0x00, 0x00, 0x7F, 0xF0, 0x7F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xE0, 0xFF, 0xE1, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x07, 0xC0, 0x0F, 0x80, 0xF8, 0x00, 0xFC, 0x1F, 0x80, 0x07, 0xC1, 0xF0, 0x00, 0x7C, 0x3E, 0x00, 0x07, 0xE7, 0xE0, 0x00, 0x3E, 0x7C, 0x00, 0x03, 0xEF, 0x80, 0x00, 0x3F, 0xF0, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7F, 0xC0, 0x1F, 0xEF, 0xFC, 0x03, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFC, 0x07, 0xFE, 0x7F, 0x80, 0x3F, 0xC3, 0xE1, 0xF0, 0xF8, 0x3E, 0x3F, 0x0F, 0x03, 0xE3, 0xF1, 0xF0, 0x3E, 0x7F, 0x1E, 0x03, 0xE7, 0xF3, 0xE0, 0x3E, 0xFF, 0xBC, 0x03, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFC, 0x03, 0xFE, 0xFF, 0x80, 0x3F, 0xEF, 0xF8, 0x03, 0xFC, 0xFF, 0x00, 0x3F, 0x8F, 0xF0, 0x03, 0xF8, 0x7E, 0x00, 0x3F, 0x07, 0xE0, 0x01, 0xF0, 0x7C, 0x00, 0x1E, 0x07, 0xC0, 0x00, 0x03, 0xFE, 0x0F, 0xF8, 0x3F, 0xF0, 0xFF, 0xC1, 0xFF, 0x8F, 0xFE, 0x0F, 0xFC, 0x7F, 0xF0, 0x7F, 0xC1, 0xFF, 0x00, 0xFE, 0x1F, 0xC0, 0x03, 0xF9, 0xFC, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0xFE, 0xFE, 0x00, 0x0F, 0xE3, 0xF8, 0x00, 0xFE, 0x0F, 0xE0, 0x3F, 0xE0, 0x7F, 0xC3, 0xFF, 0x87, 0xFF, 0x3F, 0xFC, 0x7F, 0xF9, 0xFF, 0xE3, 0xFF, 0x87, 0xFE, 0x0F, 0xF8, 0x00, 0x01, 0xFE, 0x03, 0xFE, 0x03, 0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0xFE, 0x03, 0xFC, 0x03, 0xFC, 0x01, 0xF8, 0x01, 0xF0, 0x00, 0xF8, 0x03, 0xF0, 0x00, 0xF8, 0x03, 0xE0, 0x00, 0xFC, 0x07, 0xC0, 0x00, 0x7C, 0x0F, 0x80, 0x00, 0x7C, 0x0F, 0x80, 0x00, 0x7E, 0x1F, 0x00, 0x00, 0x7E, 0x3E, 0x00, 0x00, 0x3E, 0x7C, 0x00, 0x00, 0x3E, 0x7C, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0x7C, 0x0F, 0xE0, 0x3C, 0x0F, 0xE0, 0x1E, 0x0F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0x80, 0xF0, 0x3F, 0x00, 0xF8, 0x3F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x80, 0x00, 0x0F, 0x00, 0x1F, 0xC0, 0x1F, 0xE0, 0x1F, 0xF0, 0x0F, 0xE0, 0x0F, 0xC0, 0x07, 0xC0, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x3F, 0x80, 0x3F, 0xC0, 0x1F, 0xC0, 0x0F, 0xE0, 0x07, 0xF8, 0x00, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7E, 0x00, 0x3F, 0x80, 0x1F, 0xE0, 0x07, 0xF0, 0x03, 0xF8, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x3C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0x80, 0xF0, 0x3E, 0x07, 0xC0, 0xF0, 0x1E, 0x03, 0xC0, 0xF8, 0x1F, 0x03, 0xC0, 0x78, 0x0F, 0x03, 0xE0, 0x7C, 0x0F, 0x01, 0xE0, 0x3C, 0x0F, 0x81, 0xF0, 0x3C, 0x07, 0x80, 0xF0, 0x3E, 0x07, 0xC0, 0xF0, 0x1E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xC0, 0x70, 0x00, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0x7F, 0x00, 0x3F, 0xC0, 0x0F, 0xE0, 0x03, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0x80, 0x03, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7E, 0x00, 0x3F, 0xC0, 0x0F, 0xE0, 0x07, 0xF0, 0x07, 0xF8, 0x07, 0xF8, 0x03, 0xE0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x1F, 0x80, 0x7F, 0xC0, 0x7F, 0xC0, 0x3F, 0xC0, 0x1F, 0xC0, 0x07, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0xE0, 0x39, 0xFF, 0xE0, 0xF7, 0xFF, 0xE7, 0xFF, 0xCF, 0xFF, 0xFE, 0x0F, 0xFF, 0x38, 0x0F, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0x80}; const GFXglyph FreeMonoBoldOblique24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 28, 0, 1}, // 0x20 ' ' {0, 12, 31, 28, 12, -29}, // 0x21 '!' {47, 17, 14, 28, 11, -28}, // 0x22 '"' {77, 24, 34, 28, 5, -30}, // 0x23 '#' {179, 25, 38, 28, 4, -31}, // 0x24 '$' {298, 22, 30, 28, 6, -28}, // 0x25 '%' {381, 21, 28, 28, 5, -26}, // 0x26 '&' {455, 7, 14, 28, 16, -28}, // 0x27 ''' {468, 14, 37, 28, 14, -29}, // 0x28 '(' {533, 14, 37, 28, 5, -29}, // 0x29 ')' {598, 21, 19, 28, 8, -28}, // 0x2A '*' {648, 24, 26, 28, 5, -25}, // 0x2B '+' {726, 12, 14, 28, 6, -6}, // 0x2C ',' {747, 24, 5, 28, 5, -15}, // 0x2D '-' {762, 7, 6, 28, 11, -4}, // 0x2E '.' {768, 28, 38, 28, 3, -32}, // 0x2F '/' {901, 23, 31, 28, 6, -29}, // 0x30 '0' {991, 21, 30, 28, 4, -29}, // 0x31 '1' {1070, 26, 30, 28, 3, -29}, // 0x32 '2' {1168, 25, 31, 28, 4, -29}, // 0x33 '3' {1265, 22, 28, 28, 5, -27}, // 0x34 '4' {1342, 25, 31, 28, 4, -29}, // 0x35 '5' {1439, 24, 31, 28, 7, -29}, // 0x36 '6' {1532, 22, 30, 28, 9, -29}, // 0x37 '7' {1615, 23, 31, 28, 6, -29}, // 0x38 '8' {1705, 24, 31, 28, 5, -29}, // 0x39 '9' {1798, 10, 22, 28, 11, -20}, // 0x3A ':' {1826, 15, 28, 28, 5, -20}, // 0x3B ';' {1879, 25, 21, 28, 5, -23}, // 0x3C '<' {1945, 26, 14, 28, 4, -19}, // 0x3D '=' {1991, 25, 22, 28, 4, -23}, // 0x3E '>' {2060, 19, 29, 28, 10, -27}, // 0x3F '?' {2129, 23, 36, 28, 5, -28}, // 0x40 '@' {2233, 30, 27, 28, 0, -26}, // 0x41 'A' {2335, 29, 27, 28, 1, -26}, // 0x42 'B' {2433, 28, 29, 28, 3, -27}, // 0x43 'C' {2535, 28, 27, 28, 1, -26}, // 0x44 'D' {2630, 29, 27, 28, 1, -26}, // 0x45 'E' {2728, 31, 27, 28, 0, -26}, // 0x46 'F' {2833, 28, 29, 28, 3, -27}, // 0x47 'G' {2935, 30, 27, 28, 1, -26}, // 0x48 'H' {3037, 25, 27, 28, 3, -26}, // 0x49 'I' {3122, 31, 28, 28, 0, -26}, // 0x4A 'J' {3231, 31, 27, 28, 0, -26}, // 0x4B 'K' {3336, 27, 27, 28, 1, -26}, // 0x4C 'L' {3428, 34, 27, 28, 0, -26}, // 0x4D 'M' {3543, 32, 27, 28, 1, -26}, // 0x4E 'N' {3651, 27, 29, 28, 3, -27}, // 0x4F 'O' {3749, 28, 27, 28, 1, -26}, // 0x50 'P' {3844, 27, 35, 28, 3, -27}, // 0x51 'Q' {3963, 29, 27, 28, 0, -26}, // 0x52 'R' {4061, 26, 29, 28, 3, -27}, // 0x53 'S' {4156, 26, 27, 28, 4, -26}, // 0x54 'T' {4244, 28, 28, 28, 4, -26}, // 0x55 'U' {4342, 30, 27, 28, 2, -26}, // 0x56 'V' {4444, 29, 27, 28, 3, -26}, // 0x57 'W' {4542, 32, 27, 28, 0, -26}, // 0x58 'X' {4650, 26, 27, 28, 4, -26}, // 0x59 'Y' {4738, 27, 27, 28, 2, -26}, // 0x5A 'Z' {4830, 18, 37, 28, 10, -29}, // 0x5B '[' {4914, 13, 38, 28, 10, -32}, // 0x5C '\' {4976, 18, 37, 28, 5, -29}, // 0x5D ']' {5060, 20, 15, 28, 8, -29}, // 0x5E '^' {5098, 29, 5, 28, -2, 5}, // 0x5F '_' {5117, 8, 8, 28, 13, -30}, // 0x60 '`' {5125, 24, 23, 28, 3, -21}, // 0x61 'a' {5194, 29, 31, 28, 0, -29}, // 0x62 'b' {5307, 25, 23, 28, 3, -21}, // 0x63 'c' {5379, 28, 31, 28, 3, -29}, // 0x64 'd' {5488, 24, 23, 28, 3, -21}, // 0x65 'e' {5557, 28, 30, 28, 4, -29}, // 0x66 'f' {5662, 28, 31, 28, 3, -21}, // 0x67 'g' {5771, 26, 30, 28, 2, -29}, // 0x68 'h' {5869, 23, 29, 28, 3, -28}, // 0x69 'i' {5953, 23, 38, 28, 3, -28}, // 0x6A 'j' {6063, 26, 30, 28, 2, -29}, // 0x6B 'k' {6161, 23, 30, 28, 3, -29}, // 0x6C 'l' {6248, 30, 22, 28, 0, -21}, // 0x6D 'm' {6331, 26, 22, 28, 2, -21}, // 0x6E 'n' {6403, 25, 23, 28, 3, -21}, // 0x6F 'o' {6475, 31, 31, 28, -1, -21}, // 0x70 'p' {6596, 29, 31, 28, 2, -21}, // 0x71 'q' {6709, 28, 22, 28, 2, -21}, // 0x72 'r' {6786, 23, 23, 28, 4, -21}, // 0x73 's' {6853, 20, 28, 28, 5, -26}, // 0x74 't' {6923, 23, 22, 28, 5, -20}, // 0x75 'u' {6987, 28, 21, 28, 3, -20}, // 0x76 'v' {7061, 28, 21, 28, 3, -20}, // 0x77 'w' {7135, 29, 21, 28, 1, -20}, // 0x78 'x' {7212, 32, 30, 28, -1, -20}, // 0x79 'y' {7332, 25, 21, 28, 4, -20}, // 0x7A 'z' {7398, 17, 37, 28, 10, -29}, // 0x7B '{' {7477, 11, 36, 28, 11, -28}, // 0x7C '|' {7527, 17, 37, 28, 6, -29}, // 0x7D '}' {7606, 23, 10, 28, 5, -17}}; // 0x7E '~' const GFXfont FreeMonoBoldOblique24pt7b PROGMEM = { (uint8_t *)FreeMonoBoldOblique24pt7bBitmaps, (GFXglyph *)FreeMonoBoldOblique24pt7bGlyphs, 0x20, 0x7E, 47}; // Approx. 8307 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoBoldOblique9pt7b.h ================================================ const uint8_t FreeMonoBoldOblique9pt7bBitmaps[] PROGMEM = { 0x39, 0xCC, 0x67, 0x31, 0x8C, 0x07, 0x38, 0x6C, 0xD9, 0x36, 0x48, 0x80, 0x09, 0x0D, 0x86, 0xCF, 0xF7, 0xF9, 0xB3, 0xFD, 0xFE, 0x6C, 0x36, 0x1B, 0x00, 0x00, 0x06, 0x07, 0x07, 0xE6, 0x33, 0x01, 0xE0, 0x7C, 0x06, 0x43, 0x33, 0xBF, 0x83, 0x03, 0x00, 0x80, 0x1C, 0x11, 0x10, 0x88, 0x83, 0xB8, 0xF3, 0xB8, 0x22, 0x21, 0x11, 0x07, 0x00, 0x0F, 0x1F, 0x30, 0x30, 0x38, 0x7B, 0xDF, 0xCE, 0xFF, 0x7E, 0xFA, 0x80, 0x19, 0x8C, 0xC6, 0x63, 0x18, 0xC6, 0x31, 0xC6, 0x30, 0x31, 0xC6, 0x31, 0x8C, 0x63, 0x31, 0x98, 0xCC, 0x40, 0x08, 0x08, 0xFF, 0xFF, 0x38, 0x6C, 0x6C, 0x0C, 0x06, 0x03, 0x1F, 0xFF, 0xF8, 0xC0, 0x60, 0x30, 0x10, 0x00, 0x36, 0x4C, 0x80, 0xFF, 0xFF, 0xC0, 0xFC, 0x00, 0x00, 0x0C, 0x03, 0x00, 0xC0, 0x18, 0x06, 0x01, 0x80, 0x30, 0x0C, 0x03, 0x00, 0x60, 0x18, 0x06, 0x00, 0xC0, 0x30, 0x00, 0x0F, 0x0F, 0xCC, 0x6C, 0x36, 0x1B, 0x0D, 0x05, 0x86, 0xC3, 0x63, 0x3F, 0x8F, 0x00, 0x06, 0x1C, 0x3C, 0x6C, 0x0C, 0x0C, 0x08, 0x18, 0x18, 0x18, 0xFE, 0xFE, 0x07, 0x83, 0xF1, 0x8C, 0x43, 0x00, 0xC0, 0xE0, 0x70, 0x38, 0x38, 0x1C, 0x6F, 0xF3, 0xFC, 0x1F, 0x1F, 0xC0, 0x60, 0x30, 0x30, 0x70, 0x38, 0x06, 0x03, 0x03, 0xBF, 0x9F, 0x80, 0x03, 0x07, 0x0B, 0x1B, 0x32, 0x66, 0xFF, 0xFF, 0x1E, 0x1E, 0x3F, 0x9F, 0x98, 0x0F, 0xC7, 0xF3, 0x18, 0x0C, 0x06, 0x06, 0x7F, 0x1E, 0x00, 0x07, 0x87, 0xCE, 0x06, 0x06, 0x03, 0xF3, 0xFD, 0xC6, 0xC3, 0x63, 0xBF, 0x8F, 0x80, 0xFF, 0xFF, 0xC3, 0x06, 0x06, 0x0C, 0x18, 0x18, 0x30, 0x30, 0x60, 0x1F, 0x1F, 0xDC, 0x6C, 0x36, 0x31, 0xF1, 0xF8, 0xC6, 0xC3, 0x63, 0xBF, 0x8F, 0x80, 0x1E, 0x3F, 0x33, 0x63, 0x63, 0x67, 0x7F, 0x3E, 0x06, 0x1C, 0xF8, 0xF0, 0x77, 0x00, 0x00, 0xEE, 0x1C, 0x70, 0x00, 0x00, 0x03, 0x0C, 0x61, 0x08, 0x00, 0x00, 0xC1, 0xE1, 0xE1, 0xE0, 0xF0, 0x07, 0x00, 0xF0, 0x0C, 0x7F, 0xDF, 0xF0, 0x00, 0x00, 0x7F, 0xFF, 0xF0, 0x30, 0x0F, 0x00, 0xE0, 0x1E, 0x07, 0xC7, 0x87, 0x83, 0x00, 0x7D, 0xFF, 0x18, 0x30, 0xE3, 0x9C, 0x30, 0x01, 0xC3, 0x80, 0x0F, 0x0F, 0xCC, 0x6C, 0x36, 0x72, 0x79, 0x7D, 0xB6, 0xDA, 0x6F, 0xB3, 0xD8, 0x0C, 0x07, 0xE1, 0xE0, 0x0F, 0x83, 0xF0, 0x1E, 0x03, 0xC0, 0xD8, 0x31, 0x87, 0xF1, 0xFE, 0x30, 0xDF, 0x3F, 0xC7, 0x80, 0x3F, 0xC7, 0xFC, 0x61, 0x8C, 0x31, 0xFC, 0x3F, 0x84, 0x19, 0x83, 0x30, 0x6F, 0xFB, 0xFE, 0x00, 0x0F, 0xF1, 0xFF, 0x30, 0x66, 0x06, 0x60, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xE0, 0xC7, 0xF8, 0x3F, 0x00, 0x3F, 0x87, 0xF8, 0x63, 0x8C, 0x31, 0x06, 0x60, 0xCC, 0x19, 0x86, 0x31, 0xCF, 0xF3, 0xF8, 0x00, 0x3F, 0xE3, 0xFE, 0x18, 0x61, 0xB6, 0x1F, 0x01, 0xF0, 0x32, 0x03, 0x00, 0x30, 0x4F, 0xFC, 0xFF, 0xC0, 0x3F, 0xF3, 0xFE, 0x18, 0x61, 0xB6, 0x1F, 0x03, 0xF0, 0x32, 0x03, 0x00, 0x30, 0x0F, 0xC0, 0xFC, 0x00, 0x0F, 0xE3, 0xFC, 0xC1, 0x30, 0x06, 0x01, 0x80, 0x31, 0xF6, 0x3E, 0xE1, 0x9F, 0xF0, 0xF8, 0x00, 0x1E, 0xF3, 0xCF, 0x18, 0x61, 0x84, 0x10, 0xC3, 0xFC, 0x3F, 0xC3, 0x08, 0x31, 0x8F, 0xBC, 0xFB, 0xC0, 0x3F, 0xCF, 0xF0, 0x60, 0x10, 0x0C, 0x03, 0x00, 0xC0, 0x20, 0x18, 0x3F, 0xCF, 0xF0, 0x07, 0xF0, 0x7F, 0x00, 0x80, 0x18, 0x01, 0x80, 0x18, 0x61, 0x84, 0x10, 0xC3, 0x0F, 0xE0, 0x7C, 0x00, 0x3E, 0xE7, 0xFC, 0x66, 0x0D, 0x81, 0x60, 0x7C, 0x0E, 0xC1, 0x98, 0x31, 0x1F, 0x3B, 0xE7, 0x00, 0x3F, 0x07, 0xE0, 0x30, 0x06, 0x00, 0xC0, 0x10, 0x06, 0x00, 0xC3, 0x18, 0x6F, 0xFB, 0xFF, 0x00, 0x38, 0x39, 0xC3, 0xC7, 0x3C, 0x79, 0xE3, 0xDA, 0x1F, 0xF0, 0x9D, 0x8C, 0xCC, 0x60, 0x67, 0xCF, 0x3C, 0x78, 0x3C, 0xF9, 0xE7, 0x87, 0x18, 0x3C, 0xC1, 0x66, 0x1B, 0xB0, 0xCD, 0x06, 0x78, 0x31, 0xC3, 0xCE, 0x3E, 0x30, 0x0F, 0x0F, 0xE7, 0x1D, 0x83, 0xC0, 0xF0, 0x3C, 0x0F, 0x06, 0xE3, 0x9F, 0xC3, 0xC0, 0x3F, 0xC7, 0xFC, 0x61, 0x8C, 0x31, 0x8E, 0x3F, 0x87, 0xE1, 0x80, 0x30, 0x0F, 0xC3, 0xF0, 0x00, 0x0F, 0x0F, 0xE7, 0x1D, 0x83, 0xC0, 0xF0, 0x3C, 0x0F, 0x06, 0xE3, 0x1F, 0xC3, 0xC0, 0x80, 0x7F, 0x3F, 0xC0, 0x3F, 0xC3, 0xFE, 0x18, 0x61, 0x86, 0x10, 0xE3, 0xFC, 0x3F, 0x83, 0x18, 0x31, 0xCF, 0x8F, 0xF8, 0x70, 0x1E, 0xCF, 0xF7, 0x19, 0x80, 0x70, 0x1F, 0x81, 0xF3, 0x0C, 0xC3, 0x3F, 0x8B, 0xC0, 0x7F, 0xCF, 0xF9, 0x93, 0x66, 0x60, 0xC0, 0x18, 0x02, 0x00, 0xC0, 0x18, 0x0F, 0xC1, 0xF8, 0x00, 0xF9, 0xFF, 0x7D, 0x83, 0x30, 0x64, 0x09, 0x83, 0x30, 0x66, 0x0C, 0xE3, 0x0F, 0xC0, 0xF0, 0x00, 0xF9, 0xFE, 0x3D, 0x83, 0x30, 0xC6, 0x30, 0xE6, 0x0D, 0x81, 0xB0, 0x3C, 0x07, 0x00, 0x60, 0x00, 0xF9, 0xFF, 0x3D, 0x83, 0x36, 0x64, 0xC8, 0xBF, 0x35, 0xE7, 0xB8, 0xE7, 0x1C, 0xE3, 0x18, 0x00, 0x3C, 0xF3, 0xCF, 0x1C, 0xC0, 0xD8, 0x0F, 0x00, 0x60, 0x0F, 0x01, 0xB8, 0x31, 0x8F, 0x3C, 0xF3, 0xC0, 0x79, 0xEE, 0x38, 0xC6, 0x19, 0x81, 0xE0, 0x38, 0x06, 0x00, 0xC0, 0x18, 0x0F, 0xC3, 0xF8, 0x00, 0x3F, 0xCF, 0xF3, 0x18, 0xCC, 0x06, 0x03, 0x01, 0x80, 0xC6, 0x61, 0xBF, 0xCF, 0xF0, 0x1E, 0x3C, 0xC1, 0x83, 0x06, 0x08, 0x30, 0x60, 0xC1, 0x06, 0x0F, 0x1E, 0x00, 0x06, 0x31, 0x86, 0x31, 0x8C, 0x31, 0x8C, 0x61, 0x8C, 0x60, 0x1E, 0x78, 0x30, 0x60, 0xC1, 0x86, 0x0C, 0x18, 0x30, 0x41, 0x8F, 0x1E, 0x00, 0x08, 0x1C, 0x3C, 0x76, 0xE7, 0xC3, 0x7F, 0xFF, 0xFC, 0x88, 0x80, 0x0F, 0x07, 0xE1, 0xF9, 0xFE, 0xE3, 0x30, 0xCF, 0xFD, 0xFF, 0x38, 0x07, 0x00, 0x60, 0x0F, 0xC1, 0xFC, 0x71, 0xCC, 0x19, 0x83, 0x30, 0xDF, 0xFB, 0xBC, 0x00, 0x1F, 0xCF, 0xF6, 0x1B, 0x00, 0xC0, 0x30, 0x0F, 0xF1, 0xF8, 0x01, 0xE0, 0x38, 0x03, 0x0F, 0x63, 0xFC, 0xC3, 0x30, 0x66, 0x0C, 0xC3, 0x9F, 0xF9, 0xF7, 0x00, 0x1F, 0x1F, 0xD8, 0x3F, 0xFF, 0xFE, 0x1B, 0xFC, 0xF8, 0x07, 0xC3, 0xF1, 0x81, 0xFE, 0x7F, 0x84, 0x03, 0x00, 0xC0, 0x30, 0x3F, 0x8F, 0xE0, 0x1E, 0xE7, 0xFD, 0x86, 0x60, 0xCC, 0x19, 0xC6, 0x3F, 0xC1, 0xD8, 0x03, 0x00, 0xE1, 0xF8, 0x3E, 0x00, 0x38, 0x1E, 0x01, 0x00, 0xDC, 0x3F, 0x8C, 0x62, 0x19, 0x84, 0x63, 0x3D, 0xFF, 0x7C, 0x06, 0x03, 0x00, 0x03, 0xC3, 0xE0, 0x20, 0x30, 0x18, 0x0C, 0x3F, 0xFF, 0xE0, 0x01, 0x81, 0x80, 0x07, 0xF3, 0xF8, 0x0C, 0x04, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x40, 0x67, 0xE3, 0xE0, 0x38, 0x0E, 0x01, 0x80, 0x4F, 0x37, 0xCF, 0x83, 0xC0, 0xF0, 0x26, 0x39, 0xEE, 0x78, 0x1F, 0x0F, 0x01, 0x80, 0xC0, 0x60, 0x20, 0x30, 0x18, 0x0C, 0x3F, 0xFF, 0xE0, 0x7E, 0xE7, 0xFF, 0x33, 0x32, 0x63, 0x66, 0x36, 0x62, 0xF7, 0x7F, 0x67, 0x77, 0x8F, 0xF8, 0xC3, 0x10, 0x66, 0x08, 0xC3, 0x3C, 0x7F, 0x8F, 0x1F, 0x0F, 0xE6, 0x1F, 0x03, 0xC0, 0xF8, 0x67, 0xF0, 0xF8, 0x3F, 0xE3, 0xFF, 0x1C, 0x31, 0x83, 0x18, 0x31, 0x86, 0x3F, 0xE3, 0x78, 0x30, 0x03, 0x00, 0xFC, 0x0F, 0x80, 0x1E, 0xEF, 0xFD, 0x86, 0x60, 0xCC, 0x19, 0xC7, 0x3F, 0xE1, 0xE8, 0x03, 0x00, 0x60, 0x3E, 0x07, 0xC0, 0x39, 0xDF, 0xF1, 0xC0, 0x60, 0x10, 0x0C, 0x0F, 0xF3, 0xF8, 0x1F, 0x7F, 0x63, 0x7E, 0x1F, 0xC3, 0xFE, 0xFC, 0x10, 0x08, 0x0C, 0x1F, 0xEF, 0xF1, 0x80, 0x80, 0xC0, 0x60, 0x3F, 0x8F, 0x80, 0xF3, 0xFC, 0xF6, 0x09, 0x86, 0x61, 0x98, 0xE7, 0xF8, 0xFE, 0xFB, 0xFF, 0x7C, 0xC6, 0x19, 0x83, 0x60, 0x6C, 0x07, 0x00, 0xC0, 0xF1, 0xFE, 0x3D, 0xB3, 0x37, 0xC7, 0xF8, 0xEE, 0x1D, 0xC3, 0x30, 0x79, 0xEF, 0x38, 0xEE, 0x0F, 0x01, 0xE0, 0x6E, 0x3C, 0xE7, 0xBC, 0x3C, 0xF3, 0x8F, 0x18, 0xC1, 0x9C, 0x19, 0x81, 0xF0, 0x0E, 0x00, 0xE0, 0x0C, 0x01, 0x80, 0xFC, 0x0F, 0xC0, 0x7F, 0xBF, 0xD9, 0xC1, 0x83, 0x83, 0x1B, 0xFD, 0xFE, 0x06, 0x1C, 0x60, 0xC1, 0x86, 0x3C, 0x70, 0x30, 0x41, 0x83, 0x07, 0x06, 0x00, 0x33, 0x32, 0x26, 0x66, 0x44, 0xCC, 0xC8, 0x0C, 0x0E, 0x04, 0x0C, 0x0C, 0x0C, 0x0F, 0x0F, 0x18, 0x18, 0x10, 0x30, 0xF0, 0xE0, 0x38, 0x7C, 0xF7, 0xC1, 0xC0}; const GFXglyph FreeMonoBoldOblique9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 11, 0, 1}, // 0x20 ' ' {0, 5, 11, 11, 4, -10}, // 0x21 '!' {7, 7, 5, 11, 4, -10}, // 0x22 '"' {12, 9, 12, 11, 2, -10}, // 0x23 '#' {26, 9, 14, 11, 2, -11}, // 0x24 '$' {42, 9, 11, 11, 2, -10}, // 0x25 '%' {55, 8, 10, 11, 2, -9}, // 0x26 '&' {65, 2, 5, 11, 6, -10}, // 0x27 ''' {67, 5, 14, 11, 5, -10}, // 0x28 '(' {76, 5, 14, 11, 2, -10}, // 0x29 ')' {85, 8, 7, 11, 3, -10}, // 0x2A '*' {92, 9, 9, 11, 2, -8}, // 0x2B '+' {103, 4, 5, 11, 2, -1}, // 0x2C ',' {106, 9, 2, 11, 2, -5}, // 0x2D '-' {109, 3, 2, 11, 4, -1}, // 0x2E '.' {110, 11, 15, 11, 1, -12}, // 0x2F '/' {131, 9, 12, 11, 2, -11}, // 0x30 '0' {145, 8, 12, 11, 2, -11}, // 0x31 '1' {157, 10, 12, 11, 1, -11}, // 0x32 '2' {172, 9, 12, 11, 2, -11}, // 0x33 '3' {186, 8, 10, 11, 2, -9}, // 0x34 '4' {196, 9, 11, 11, 3, -10}, // 0x35 '5' {209, 9, 12, 11, 3, -11}, // 0x36 '6' {223, 8, 11, 11, 3, -10}, // 0x37 '7' {234, 9, 12, 11, 2, -11}, // 0x38 '8' {248, 8, 12, 11, 3, -11}, // 0x39 '9' {260, 4, 8, 11, 4, -7}, // 0x3A ':' {264, 6, 11, 11, 2, -7}, // 0x3B ';' {273, 10, 8, 11, 2, -8}, // 0x3C '<' {283, 10, 6, 11, 1, -7}, // 0x3D '=' {291, 10, 8, 11, 1, -8}, // 0x3E '>' {301, 7, 11, 11, 4, -10}, // 0x3F '?' {311, 9, 15, 11, 2, -11}, // 0x40 '@' {328, 11, 11, 11, 0, -10}, // 0x41 'A' {344, 11, 11, 11, 0, -10}, // 0x42 'B' {360, 12, 11, 11, 1, -10}, // 0x43 'C' {377, 11, 11, 11, 0, -10}, // 0x44 'D' {393, 12, 11, 11, 0, -10}, // 0x45 'E' {410, 12, 11, 11, 0, -10}, // 0x46 'F' {427, 11, 11, 11, 1, -10}, // 0x47 'G' {443, 12, 11, 11, 0, -10}, // 0x48 'H' {460, 10, 11, 11, 1, -10}, // 0x49 'I' {474, 12, 11, 11, 0, -10}, // 0x4A 'J' {491, 11, 11, 11, 0, -10}, // 0x4B 'K' {507, 11, 11, 11, 0, -10}, // 0x4C 'L' {523, 13, 11, 11, 0, -10}, // 0x4D 'M' {541, 13, 11, 11, 0, -10}, // 0x4E 'N' {559, 10, 11, 11, 1, -10}, // 0x4F 'O' {573, 11, 11, 11, 0, -10}, // 0x50 'P' {589, 10, 14, 11, 1, -10}, // 0x51 'Q' {607, 12, 11, 11, 0, -10}, // 0x52 'R' {624, 10, 11, 11, 2, -10}, // 0x53 'S' {638, 11, 11, 11, 1, -10}, // 0x54 'T' {654, 11, 11, 11, 1, -10}, // 0x55 'U' {670, 11, 11, 11, 1, -10}, // 0x56 'V' {686, 11, 11, 11, 1, -10}, // 0x57 'W' {702, 12, 11, 11, 0, -10}, // 0x58 'X' {719, 11, 11, 11, 1, -10}, // 0x59 'Y' {735, 10, 11, 11, 1, -10}, // 0x5A 'Z' {749, 7, 14, 11, 4, -10}, // 0x5B '[' {762, 5, 15, 11, 4, -12}, // 0x5C '\' {772, 7, 14, 11, 2, -10}, // 0x5D ']' {785, 8, 6, 11, 3, -11}, // 0x5E '^' {791, 11, 2, 11, -1, 3}, // 0x5F '_' {794, 3, 3, 11, 5, -11}, // 0x60 '`' {796, 10, 8, 11, 1, -7}, // 0x61 'a' {806, 11, 11, 11, 0, -10}, // 0x62 'b' {822, 10, 8, 11, 1, -7}, // 0x63 'c' {832, 11, 11, 11, 1, -10}, // 0x64 'd' {848, 9, 8, 11, 1, -7}, // 0x65 'e' {857, 10, 11, 11, 2, -10}, // 0x66 'f' {871, 11, 12, 11, 1, -7}, // 0x67 'g' {888, 10, 11, 11, 1, -10}, // 0x68 'h' {902, 9, 11, 11, 1, -10}, // 0x69 'i' {915, 9, 15, 11, 1, -10}, // 0x6A 'j' {932, 10, 11, 11, 1, -10}, // 0x6B 'k' {946, 9, 11, 11, 1, -10}, // 0x6C 'l' {959, 12, 8, 11, 0, -7}, // 0x6D 'm' {971, 11, 8, 11, 1, -7}, // 0x6E 'n' {982, 10, 8, 11, 1, -7}, // 0x6F 'o' {992, 12, 12, 11, -1, -7}, // 0x70 'p' {1010, 11, 12, 11, 1, -7}, // 0x71 'q' {1027, 10, 8, 11, 1, -7}, // 0x72 'r' {1037, 8, 8, 11, 2, -7}, // 0x73 's' {1045, 9, 11, 11, 1, -10}, // 0x74 't' {1058, 10, 8, 11, 1, -7}, // 0x75 'u' {1068, 11, 8, 11, 1, -7}, // 0x76 'v' {1079, 11, 8, 11, 1, -7}, // 0x77 'w' {1090, 11, 8, 11, 1, -7}, // 0x78 'x' {1101, 12, 12, 11, 0, -7}, // 0x79 'y' {1119, 9, 8, 11, 2, -7}, // 0x7A 'z' {1128, 7, 14, 11, 3, -10}, // 0x7B '{' {1141, 4, 14, 11, 4, -10}, // 0x7C '|' {1148, 8, 14, 11, 2, -10}, // 0x7D '}' {1162, 9, 4, 11, 2, -6}}; // 0x7E '~' const GFXfont FreeMonoBoldOblique9pt7b PROGMEM = { (uint8_t *)FreeMonoBoldOblique9pt7bBitmaps, (GFXglyph *)FreeMonoBoldOblique9pt7bGlyphs, 0x20, 0x7E, 18}; // Approx. 1839 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoOblique12pt7b.h ================================================ const uint8_t FreeMonoOblique12pt7bBitmaps[] PROGMEM = { 0x11, 0x11, 0x12, 0x22, 0x22, 0x00, 0x0E, 0xE0, 0xE7, 0xE7, 0xC6, 0xC6, 0xC6, 0x84, 0x84, 0x02, 0x40, 0x88, 0x12, 0x02, 0x40, 0x48, 0x7F, 0xC2, 0x40, 0x48, 0x11, 0x1F, 0xF8, 0x48, 0x09, 0x02, 0x40, 0x48, 0x09, 0x02, 0x20, 0x02, 0x01, 0x00, 0xF4, 0xC3, 0x60, 0x50, 0x04, 0x00, 0xC0, 0x0F, 0x00, 0x60, 0x0A, 0x02, 0x81, 0x30, 0xC7, 0xC0, 0x80, 0x20, 0x08, 0x00, 0x0E, 0x02, 0x20, 0x84, 0x10, 0x82, 0x20, 0x38, 0x00, 0x38, 0x38, 0x38, 0x08, 0xE0, 0x22, 0x08, 0x41, 0x08, 0x22, 0x03, 0x80, 0x07, 0x84, 0x04, 0x02, 0x01, 0x00, 0xC1, 0xA2, 0x8A, 0x85, 0x43, 0x31, 0x8F, 0x60, 0xFF, 0x6D, 0x20, 0x00, 0x44, 0x42, 0x21, 0x08, 0x84, 0x21, 0x08, 0x42, 0x10, 0x42, 0x00, 0x00, 0x84, 0x10, 0x84, 0x21, 0x08, 0x46, 0x21, 0x10, 0x88, 0x44, 0x00, 0x04, 0x02, 0x02, 0x1D, 0x13, 0xF0, 0x40, 0x50, 0x48, 0x44, 0x00, 0x02, 0x00, 0x40, 0x08, 0x02, 0x00, 0x41, 0xFF, 0xC1, 0x00, 0x20, 0x08, 0x01, 0x00, 0x20, 0x00, 0x1C, 0xE3, 0x18, 0x63, 0x08, 0x00, 0xFF, 0xE0, 0x7F, 0x00, 0x00, 0x08, 0x00, 0x80, 0x04, 0x00, 0x40, 0x04, 0x00, 0x60, 0x02, 0x00, 0x20, 0x03, 0x00, 0x10, 0x01, 0x00, 0x18, 0x00, 0x80, 0x08, 0x00, 0x80, 0x04, 0x00, 0x40, 0x04, 0x00, 0x00, 0x07, 0x06, 0x23, 0x04, 0x81, 0x40, 0x50, 0x14, 0x06, 0x02, 0x80, 0xA0, 0x28, 0x0A, 0x04, 0x83, 0x11, 0x83, 0x80, 0x03, 0x03, 0x83, 0x83, 0x43, 0x20, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x01, 0x00, 0x80, 0x43, 0xFE, 0x01, 0xC0, 0x62, 0x0C, 0x10, 0x81, 0x00, 0x10, 0x02, 0x00, 0x60, 0x0C, 0x01, 0x00, 0x20, 0x0C, 0x01, 0x80, 0x20, 0x04, 0x04, 0xFF, 0xC0, 0x07, 0xC3, 0x0C, 0x00, 0x80, 0x10, 0x06, 0x01, 0x81, 0xC0, 0x0C, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x09, 0x86, 0x0F, 0x00, 0x00, 0xC0, 0x50, 0x24, 0x12, 0x04, 0x82, 0x21, 0x08, 0x82, 0x21, 0x10, 0x4F, 0xF8, 0x04, 0x01, 0x00, 0x80, 0xF8, 0x0F, 0xE2, 0x00, 0x40, 0x08, 0x01, 0x00, 0x4E, 0x0E, 0x20, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x40, 0x19, 0x06, 0x1F, 0x00, 0x01, 0xE0, 0xC0, 0x60, 0x18, 0x02, 0x00, 0x80, 0x13, 0xC5, 0x88, 0xE0, 0x98, 0x12, 0x02, 0x40, 0x48, 0x10, 0x84, 0x0F, 0x00, 0xFF, 0xA0, 0x20, 0x08, 0x04, 0x01, 0x00, 0x80, 0x20, 0x10, 0x04, 0x02, 0x00, 0x80, 0x40, 0x10, 0x08, 0x02, 0x00, 0x07, 0x81, 0x08, 0x40, 0x90, 0x12, 0x02, 0x40, 0x84, 0x20, 0x78, 0x30, 0x88, 0x0A, 0x01, 0x40, 0x28, 0x08, 0x82, 0x0F, 0x80, 0x07, 0x81, 0x08, 0x40, 0x90, 0x12, 0x02, 0x40, 0xC8, 0x39, 0x8D, 0x1E, 0x40, 0x08, 0x02, 0x00, 0xC0, 0x30, 0x18, 0x3E, 0x00, 0x19, 0xCC, 0x00, 0x00, 0x0C, 0xE6, 0x00, 0x06, 0x1C, 0x30, 0x00, 0x00, 0x00, 0x1C, 0x30, 0xE1, 0x86, 0x08, 0x00, 0x00, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x06, 0x00, 0x30, 0x00, 0xC0, 0x06, 0x00, 0x18, 0x00, 0xC0, 0x7F, 0xF8, 0x00, 0x00, 0x01, 0xFF, 0xE0, 0x18, 0x00, 0xC0, 0x03, 0x00, 0x18, 0x00, 0x60, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x00, 0x3E, 0xC3, 0x81, 0x01, 0x03, 0x06, 0x18, 0x20, 0x20, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x07, 0x82, 0x31, 0x04, 0x81, 0x20, 0x48, 0x74, 0x65, 0x21, 0x48, 0x92, 0x28, 0x7A, 0x00, 0x80, 0x20, 0x04, 0x00, 0xF8, 0x07, 0xE0, 0x02, 0x80, 0x0A, 0x00, 0x48, 0x01, 0x20, 0x08, 0x40, 0x41, 0x01, 0x04, 0x0F, 0xF0, 0x20, 0x41, 0x01, 0x04, 0x02, 0x20, 0x0B, 0xE1, 0xF0, 0x1F, 0xF0, 0x40, 0xC2, 0x02, 0x10, 0x10, 0x81, 0x84, 0x18, 0x7F, 0x82, 0x02, 0x10, 0x08, 0x80, 0x44, 0x02, 0x60, 0x22, 0x03, 0x7F, 0xE0, 0x07, 0x91, 0x87, 0x20, 0x34, 0x02, 0x40, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x04, 0x04, 0x61, 0x81, 0xE0, 0x1F, 0xE0, 0x41, 0x82, 0x06, 0x10, 0x11, 0x00, 0x88, 0x04, 0x40, 0x22, 0x01, 0x10, 0x11, 0x00, 0x88, 0x08, 0x40, 0xC2, 0x0C, 0x7F, 0x80, 0x1F, 0xFC, 0x20, 0x10, 0x80, 0x82, 0x00, 0x08, 0x00, 0x22, 0x01, 0xF8, 0x04, 0x20, 0x10, 0x00, 0x40, 0x01, 0x01, 0x0C, 0x04, 0x20, 0x13, 0xFF, 0xC0, 0x1F, 0xFC, 0x20, 0x10, 0x80, 0x42, 0x01, 0x08, 0x00, 0x22, 0x01, 0xF8, 0x04, 0x20, 0x10, 0x00, 0x40, 0x01, 0x00, 0x0C, 0x00, 0x20, 0x03, 0xF8, 0x00, 0x07, 0xD0, 0x83, 0x30, 0x12, 0x00, 0x40, 0x04, 0x00, 0x80, 0x08, 0x00, 0x83, 0xE8, 0x04, 0x80, 0x4C, 0x04, 0x60, 0x41, 0xF8, 0x0F, 0x3C, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x81, 0x01, 0x02, 0x03, 0xFC, 0x08, 0x08, 0x10, 0x10, 0x20, 0x40, 0x40, 0x80, 0x81, 0x02, 0x02, 0x1F, 0x1E, 0x00, 0x3F, 0xE0, 0x40, 0x08, 0x01, 0x00, 0x20, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0x80, 0x20, 0x04, 0x00, 0x81, 0xFF, 0x00, 0x03, 0xFE, 0x00, 0x20, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x20, 0x40, 0x40, 0x80, 0x81, 0x01, 0x02, 0x04, 0x06, 0x10, 0x07, 0xC0, 0x00, 0x1F, 0x1E, 0x10, 0x10, 0x20, 0xC0, 0x43, 0x00, 0x88, 0x01, 0x20, 0x07, 0xC0, 0x0C, 0x40, 0x10, 0x40, 0x20, 0x80, 0x41, 0x01, 0x81, 0x02, 0x02, 0x1F, 0x87, 0x00, 0x3F, 0x80, 0x40, 0x04, 0x00, 0x40, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x01, 0x01, 0x10, 0x11, 0x02, 0x10, 0x2F, 0xFE, 0x1C, 0x03, 0x85, 0x03, 0x02, 0x82, 0x81, 0x41, 0x40, 0xA1, 0x20, 0x89, 0x30, 0x44, 0x90, 0x22, 0x88, 0x11, 0x44, 0x08, 0x42, 0x08, 0x03, 0x04, 0x01, 0x02, 0x00, 0x87, 0xC3, 0xE0, 0x3C, 0x3E, 0x18, 0x08, 0x38, 0x20, 0x50, 0x41, 0x20, 0x82, 0x61, 0x04, 0x42, 0x08, 0x88, 0x10, 0x90, 0x41, 0x20, 0x83, 0x41, 0x02, 0x82, 0x06, 0x1F, 0x04, 0x00, 0x03, 0xC0, 0x61, 0x84, 0x04, 0x40, 0x14, 0x00, 0xA0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x14, 0x00, 0xA0, 0x08, 0x80, 0x86, 0x18, 0x0F, 0x00, 0x1F, 0xE0, 0x40, 0x82, 0x02, 0x10, 0x10, 0x80, 0x84, 0x08, 0x40, 0x83, 0xF8, 0x10, 0x00, 0x80, 0x04, 0x00, 0x60, 0x02, 0x00, 0x7F, 0x00, 0x03, 0xC0, 0x61, 0x84, 0x04, 0x40, 0x14, 0x00, 0xA0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x14, 0x00, 0xA0, 0x08, 0x80, 0x86, 0x18, 0x1F, 0x00, 0x40, 0x0F, 0xC4, 0x41, 0xC0, 0x1F, 0xE0, 0x40, 0x82, 0x02, 0x10, 0x10, 0x80, 0x84, 0x08, 0x60, 0x83, 0xF8, 0x10, 0xC0, 0x82, 0x04, 0x08, 0x40, 0x42, 0x03, 0x7E, 0x0C, 0x07, 0xA3, 0x0C, 0x40, 0x90, 0x12, 0x00, 0x40, 0x06, 0x00, 0x3C, 0x00, 0x40, 0x0A, 0x01, 0x40, 0x4C, 0x11, 0x7C, 0x00, 0xFF, 0xE8, 0x42, 0x84, 0x20, 0x40, 0x04, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x10, 0x01, 0x00, 0x10, 0x0F, 0xE0, 0xF8, 0xF9, 0x00, 0x88, 0x08, 0x80, 0x44, 0x02, 0x20, 0x11, 0x01, 0x08, 0x08, 0x80, 0x44, 0x02, 0x20, 0x31, 0x01, 0x04, 0x30, 0x1E, 0x00, 0xF8, 0x7D, 0x00, 0x42, 0x01, 0x08, 0x08, 0x20, 0x40, 0x81, 0x02, 0x08, 0x08, 0x20, 0x11, 0x00, 0x48, 0x01, 0x20, 0x05, 0x00, 0x14, 0x00, 0x60, 0x00, 0xF8, 0x7D, 0x00, 0x44, 0x01, 0x11, 0x84, 0x46, 0x21, 0x18, 0x84, 0xA2, 0x12, 0x90, 0x91, 0x42, 0x45, 0x0A, 0x14, 0x28, 0x60, 0xC1, 0x83, 0x06, 0x00, 0x1E, 0x1E, 0x10, 0x10, 0x10, 0x40, 0x21, 0x00, 0x24, 0x00, 0x78, 0x00, 0x60, 0x01, 0xC0, 0x06, 0x80, 0x09, 0x80, 0x21, 0x00, 0x81, 0x02, 0x02, 0x1E, 0x1F, 0x00, 0xF0, 0xF4, 0x04, 0x20, 0x82, 0x18, 0x11, 0x01, 0x20, 0x1C, 0x00, 0x80, 0x08, 0x00, 0x80, 0x10, 0x01, 0x00, 0x10, 0x0F, 0xE0, 0x0F, 0xF1, 0x01, 0x10, 0x21, 0x04, 0x00, 0x80, 0x10, 0x02, 0x00, 0x40, 0x0C, 0x01, 0x82, 0x10, 0x22, 0x04, 0x40, 0x47, 0xFC, 0x0E, 0x20, 0x40, 0x81, 0x02, 0x08, 0x10, 0x20, 0x40, 0x82, 0x04, 0x08, 0x10, 0x20, 0x81, 0xE0, 0x84, 0x20, 0x84, 0x20, 0x84, 0x21, 0x04, 0x21, 0x08, 0x21, 0x08, 0x40, 0x1E, 0x04, 0x08, 0x20, 0x40, 0x81, 0x02, 0x04, 0x10, 0x20, 0x40, 0x81, 0x02, 0x08, 0x11, 0xE0, 0x04, 0x06, 0x04, 0x84, 0x44, 0x14, 0x0C, 0xFF, 0xFE, 0x99, 0x90, 0x1F, 0xC0, 0x06, 0x00, 0x20, 0x02, 0x1F, 0xE6, 0x04, 0xC0, 0x48, 0x04, 0x81, 0xC7, 0xEF, 0x18, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x09, 0xF0, 0x50, 0xC3, 0x03, 0x10, 0x08, 0x80, 0x48, 0x02, 0x40, 0x23, 0x03, 0x1C, 0x33, 0xBE, 0x00, 0x0F, 0xD3, 0x07, 0x60, 0x24, 0x02, 0x80, 0x08, 0x00, 0x80, 0x08, 0x06, 0x41, 0xC3, 0xF0, 0x00, 0x38, 0x00, 0x40, 0x02, 0x00, 0x20, 0x01, 0x07, 0xC8, 0x43, 0x44, 0x0E, 0x40, 0x24, 0x01, 0x20, 0x09, 0x00, 0xC8, 0x0E, 0x20, 0xE0, 0xF9, 0xC0, 0x0F, 0x86, 0x09, 0x00, 0xA0, 0x1F, 0xFF, 0x00, 0x20, 0x06, 0x00, 0x60, 0xC7, 0xE0, 0x01, 0xF8, 0x10, 0x01, 0x00, 0x08, 0x00, 0x40, 0x1F, 0xF0, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x03, 0xFE, 0x00, 0x0F, 0x31, 0x86, 0x10, 0x10, 0x80, 0x88, 0x04, 0x40, 0x22, 0x02, 0x10, 0x10, 0x43, 0x81, 0xE4, 0x00, 0x40, 0x02, 0x00, 0x20, 0x3E, 0x00, 0x1C, 0x00, 0x20, 0x03, 0x00, 0x10, 0x00, 0x80, 0x05, 0xF0, 0x30, 0xC3, 0x02, 0x10, 0x10, 0x80, 0x84, 0x0C, 0x20, 0x63, 0x02, 0x10, 0x13, 0xE3, 0xE0, 0x01, 0x80, 0x40, 0x10, 0x00, 0x00, 0x07, 0xC0, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x10, 0x04, 0x01, 0x0F, 0xFC, 0x00, 0x40, 0x10, 0x0C, 0x00, 0x00, 0x07, 0xF0, 0x04, 0x01, 0x00, 0x40, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x10, 0x04, 0x01, 0x00, 0x8F, 0xC0, 0x18, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x01, 0x1F, 0x10, 0x81, 0x30, 0x14, 0x01, 0xC0, 0x26, 0x02, 0x20, 0x21, 0x02, 0x08, 0xE1, 0xE0, 0x0F, 0x80, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x10, 0x04, 0x01, 0x0F, 0xFC, 0x3B, 0xB8, 0x33, 0x91, 0x08, 0x44, 0x21, 0x10, 0x84, 0x42, 0x12, 0x10, 0x48, 0x42, 0x21, 0x0B, 0xC6, 0x30, 0x19, 0xE0, 0xE3, 0x08, 0x11, 0x01, 0x10, 0x11, 0x02, 0x10, 0x21, 0x02, 0x20, 0x2F, 0x87, 0x0F, 0x86, 0x19, 0x80, 0xA0, 0x18, 0x03, 0x00, 0x60, 0x14, 0x06, 0x61, 0x87, 0xC0, 0x19, 0xF0, 0x28, 0x20, 0xC0, 0x42, 0x01, 0x10, 0x04, 0x40, 0x11, 0x00, 0x86, 0x06, 0x14, 0x30, 0xCF, 0x02, 0x00, 0x08, 0x00, 0x20, 0x03, 0xF0, 0x00, 0x0F, 0x39, 0x85, 0x18, 0x18, 0x80, 0x88, 0x04, 0x40, 0x22, 0x01, 0x18, 0x18, 0x63, 0x81, 0xE4, 0x00, 0x20, 0x01, 0x00, 0x10, 0x07, 0xE0, 0x1C, 0x78, 0x2C, 0x01, 0x80, 0x18, 0x00, 0x80, 0x04, 0x00, 0x20, 0x02, 0x00, 0x10, 0x07, 0xFC, 0x00, 0x0F, 0x44, 0x32, 0x04, 0x80, 0x1E, 0x00, 0x60, 0x0A, 0x02, 0xC1, 0x2F, 0x80, 0x10, 0x08, 0x04, 0x02, 0x0F, 0xF9, 0x00, 0x80, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x19, 0xF0, 0xE0, 0xF2, 0x02, 0x40, 0x24, 0x02, 0x40, 0x24, 0x06, 0x40, 0x44, 0x04, 0x41, 0xC3, 0xE6, 0xF8, 0xFA, 0x01, 0x08, 0x10, 0x41, 0x02, 0x08, 0x10, 0x80, 0x48, 0x02, 0x40, 0x14, 0x00, 0xC0, 0x00, 0xE0, 0x7A, 0x01, 0x10, 0x08, 0x8C, 0x84, 0xA4, 0x25, 0x21, 0x4A, 0x0A, 0x50, 0x63, 0x02, 0x18, 0x00, 0x1E, 0x3C, 0x20, 0x40, 0x46, 0x00, 0xB0, 0x03, 0x00, 0x0E, 0x00, 0xC8, 0x06, 0x10, 0x20, 0x23, 0xE3, 0xC0, 0x3C, 0x3C, 0x40, 0x20, 0x81, 0x02, 0x08, 0x08, 0x20, 0x31, 0x00, 0x48, 0x01, 0x40, 0x05, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x08, 0x03, 0xF0, 0x00, 0x3F, 0xC4, 0x18, 0x06, 0x01, 0x80, 0x60, 0x10, 0x04, 0x01, 0x00, 0x40, 0x9F, 0xF0, 0x06, 0x10, 0x20, 0x41, 0x02, 0x04, 0x08, 0x21, 0x80, 0x81, 0x02, 0x08, 0x10, 0x20, 0x40, 0xC0, 0x01, 0x11, 0x12, 0x22, 0x24, 0x44, 0x44, 0x88, 0x80, 0x0C, 0x08, 0x10, 0x20, 0x40, 0x82, 0x04, 0x08, 0x0C, 0x20, 0x81, 0x02, 0x04, 0x08, 0x21, 0x80, 0x38, 0x28, 0x88, 0x0E, 0x00}; const GFXglyph FreeMonoOblique12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 14, 0, 1}, // 0x20 ' ' {0, 4, 15, 14, 6, -14}, // 0x21 '!' {8, 8, 7, 14, 5, -14}, // 0x22 '"' {15, 11, 16, 14, 3, -14}, // 0x23 '#' {37, 10, 18, 14, 4, -15}, // 0x24 '$' {60, 11, 15, 14, 3, -14}, // 0x25 '%' {81, 9, 12, 14, 3, -11}, // 0x26 '&' {95, 3, 7, 14, 8, -14}, // 0x27 ''' {98, 5, 18, 14, 8, -14}, // 0x28 '(' {110, 5, 18, 14, 4, -14}, // 0x29 ')' {122, 9, 9, 14, 5, -14}, // 0x2A '*' {133, 11, 11, 14, 3, -11}, // 0x2B '+' {149, 6, 7, 14, 3, -3}, // 0x2C ',' {155, 11, 1, 14, 3, -6}, // 0x2D '-' {157, 3, 3, 14, 6, -2}, // 0x2E '.' {159, 13, 18, 14, 2, -15}, // 0x2F '/' {189, 10, 15, 14, 4, -14}, // 0x30 '0' {208, 9, 15, 14, 3, -14}, // 0x31 '1' {225, 12, 15, 14, 2, -14}, // 0x32 '2' {248, 11, 15, 14, 3, -14}, // 0x33 '3' {269, 10, 15, 14, 3, -14}, // 0x34 '4' {288, 11, 15, 14, 3, -14}, // 0x35 '5' {309, 11, 15, 14, 4, -14}, // 0x36 '6' {330, 10, 15, 14, 5, -14}, // 0x37 '7' {349, 11, 15, 14, 3, -14}, // 0x38 '8' {370, 11, 15, 14, 3, -14}, // 0x39 '9' {391, 5, 10, 14, 5, -9}, // 0x3A ':' {398, 7, 13, 14, 3, -9}, // 0x3B ';' {410, 12, 11, 14, 3, -11}, // 0x3C '<' {427, 13, 4, 14, 2, -8}, // 0x3D '=' {434, 12, 11, 14, 2, -11}, // 0x3E '>' {451, 8, 14, 14, 6, -13}, // 0x3F '?' {465, 10, 16, 14, 3, -14}, // 0x40 '@' {485, 14, 14, 14, 0, -13}, // 0x41 'A' {510, 13, 14, 14, 1, -13}, // 0x42 'B' {533, 12, 14, 14, 3, -13}, // 0x43 'C' {554, 13, 14, 14, 1, -13}, // 0x44 'D' {577, 14, 14, 14, 1, -13}, // 0x45 'E' {602, 14, 14, 14, 1, -13}, // 0x46 'F' {627, 12, 14, 14, 3, -13}, // 0x47 'G' {648, 15, 14, 14, 1, -13}, // 0x48 'H' {675, 11, 14, 14, 3, -13}, // 0x49 'I' {695, 15, 14, 14, 2, -13}, // 0x4A 'J' {722, 15, 14, 14, 1, -13}, // 0x4B 'K' {749, 12, 14, 14, 2, -13}, // 0x4C 'L' {770, 17, 14, 14, 0, -13}, // 0x4D 'M' {800, 15, 14, 14, 1, -13}, // 0x4E 'N' {827, 13, 14, 14, 2, -13}, // 0x4F 'O' {850, 13, 14, 14, 1, -13}, // 0x50 'P' {873, 13, 17, 14, 2, -13}, // 0x51 'Q' {901, 13, 14, 14, 1, -13}, // 0x52 'R' {924, 11, 14, 14, 3, -13}, // 0x53 'S' {944, 12, 14, 14, 4, -13}, // 0x54 'T' {965, 13, 14, 14, 3, -13}, // 0x55 'U' {988, 14, 14, 14, 3, -13}, // 0x56 'V' {1013, 14, 14, 14, 3, -13}, // 0x57 'W' {1038, 15, 14, 14, 1, -13}, // 0x58 'X' {1065, 12, 14, 14, 4, -13}, // 0x59 'Y' {1086, 12, 14, 14, 2, -13}, // 0x5A 'Z' {1107, 7, 18, 14, 6, -14}, // 0x5B '[' {1123, 5, 18, 14, 6, -15}, // 0x5C '\' {1135, 7, 18, 14, 3, -14}, // 0x5D ']' {1151, 9, 6, 14, 5, -14}, // 0x5E '^' {1158, 15, 1, 14, -1, 3}, // 0x5F '_' {1160, 3, 4, 14, 6, -15}, // 0x60 '`' {1162, 12, 10, 14, 2, -9}, // 0x61 'a' {1177, 13, 15, 14, 1, -14}, // 0x62 'b' {1202, 12, 10, 14, 3, -9}, // 0x63 'c' {1217, 13, 15, 14, 2, -14}, // 0x64 'd' {1242, 11, 10, 14, 3, -9}, // 0x65 'e' {1256, 13, 15, 14, 3, -14}, // 0x66 'f' {1281, 13, 14, 14, 3, -9}, // 0x67 'g' {1304, 13, 15, 14, 1, -14}, // 0x68 'h' {1329, 10, 15, 14, 2, -14}, // 0x69 'i' {1348, 10, 19, 14, 2, -14}, // 0x6A 'j' {1372, 12, 15, 14, 2, -14}, // 0x6B 'k' {1395, 10, 15, 14, 2, -14}, // 0x6C 'l' {1414, 14, 10, 14, 0, -9}, // 0x6D 'm' {1432, 12, 10, 14, 1, -9}, // 0x6E 'n' {1447, 11, 10, 14, 3, -9}, // 0x6F 'o' {1461, 14, 14, 14, 0, -9}, // 0x70 'p' {1486, 13, 14, 14, 3, -9}, // 0x71 'q' {1509, 13, 10, 14, 2, -9}, // 0x72 'r' {1526, 10, 10, 14, 3, -9}, // 0x73 's' {1539, 9, 14, 14, 3, -13}, // 0x74 't' {1555, 12, 10, 14, 2, -9}, // 0x75 'u' {1570, 13, 10, 14, 3, -9}, // 0x76 'v' {1587, 13, 10, 14, 3, -9}, // 0x77 'w' {1604, 14, 10, 14, 1, -9}, // 0x78 'x' {1622, 14, 14, 14, 1, -9}, // 0x79 'y' {1647, 11, 10, 14, 3, -9}, // 0x7A 'z' {1661, 7, 18, 14, 5, -14}, // 0x7B '{' {1677, 4, 17, 14, 6, -13}, // 0x7C '|' {1686, 7, 18, 14, 4, -14}, // 0x7D '}' {1702, 11, 3, 14, 3, -7}}; // 0x7E '~' const GFXfont FreeMonoOblique12pt7b PROGMEM = { (uint8_t *)FreeMonoOblique12pt7bBitmaps, (GFXglyph *)FreeMonoOblique12pt7bGlyphs, 0x20, 0x7E, 24}; // Approx. 2379 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoOblique18pt7b.h ================================================ const uint8_t FreeMonoOblique18pt7bBitmaps[] PROGMEM = { 0x00, 0x1C, 0x38, 0x70, 0xC1, 0x83, 0x06, 0x18, 0x30, 0x60, 0xC1, 0x02, 0x04, 0x00, 0x00, 0x01, 0xC7, 0x8F, 0x1C, 0x00, 0x78, 0x7B, 0xC3, 0xFC, 0x3D, 0xE1, 0xEF, 0x0F, 0x70, 0x73, 0x83, 0x98, 0x18, 0xC0, 0xC6, 0x06, 0x00, 0x00, 0x8C, 0x01, 0x18, 0x06, 0x20, 0x08, 0x40, 0x11, 0x80, 0x62, 0x00, 0xC4, 0x01, 0x18, 0x02, 0x30, 0x7F, 0xFC, 0x10, 0x80, 0x23, 0x00, 0xC4, 0x01, 0x88, 0x3F, 0xFF, 0x04, 0x60, 0x18, 0x80, 0x21, 0x00, 0x46, 0x01, 0x88, 0x03, 0x10, 0x04, 0x60, 0x08, 0xC0, 0x31, 0x00, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0xF9, 0x03, 0x0F, 0x06, 0x03, 0x04, 0x03, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x18, 0xF0, 0x60, 0x9F, 0x80, 0x02, 0x00, 0x06, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03, 0xC0, 0x0C, 0x60, 0x08, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x40, 0x18, 0x80, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x78, 0x07, 0xC0, 0x3C, 0x00, 0xE0, 0x00, 0x01, 0xE0, 0x02, 0x18, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x0C, 0x20, 0x07, 0xC0, 0x01, 0xF0, 0x11, 0x81, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x80, 0x04, 0x00, 0xF0, 0x09, 0x86, 0x84, 0x48, 0x32, 0x40, 0xA2, 0x07, 0x10, 0x30, 0x43, 0x81, 0xE7, 0x80, 0x7B, 0xFD, 0xEF, 0x73, 0x98, 0xC6, 0x00, 0x01, 0x02, 0x06, 0x0C, 0x0C, 0x18, 0x10, 0x30, 0x30, 0x60, 0x60, 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x40, 0x60, 0x60, 0x20, 0x04, 0x06, 0x06, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x18, 0x10, 0x30, 0x60, 0x40, 0xC0, 0x01, 0x00, 0x04, 0x00, 0x10, 0x00, 0xC6, 0xE3, 0xF8, 0x7E, 0x00, 0x70, 0x03, 0x40, 0x19, 0x80, 0xC2, 0x06, 0x0C, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0xFF, 0xFE, 0x02, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x02, 0x00, 0x04, 0x00, 0x0F, 0x87, 0x87, 0x83, 0x83, 0xC1, 0xC1, 0xC0, 0xC0, 0xE0, 0x60, 0x00, 0xFF, 0xFF, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x00, 0x60, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x04, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x08, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x10, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x20, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x40, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, 0x01, 0xF0, 0x18, 0x60, 0x80, 0x86, 0x01, 0x10, 0x04, 0x80, 0x12, 0x00, 0x50, 0x01, 0x40, 0x0D, 0x00, 0x24, 0x00, 0xA0, 0x02, 0x80, 0x1A, 0x00, 0x48, 0x01, 0x20, 0x0C, 0x80, 0x22, 0x01, 0x84, 0x0C, 0x18, 0x60, 0x3E, 0x00, 0x00, 0x60, 0x07, 0x00, 0x68, 0x06, 0x40, 0xE4, 0x04, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x80, 0x04, 0x0F, 0xFF, 0x80, 0x00, 0x3C, 0x00, 0x61, 0x80, 0x40, 0x40, 0x40, 0x10, 0x60, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x07, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x1C, 0x01, 0x1C, 0x00, 0x8F, 0xFF, 0xC0, 0x00, 0xFC, 0x03, 0x06, 0x06, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0C, 0x00, 0xF0, 0x00, 0x18, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x40, 0x18, 0x70, 0x30, 0x0F, 0xC0, 0x00, 0x1C, 0x00, 0xD0, 0x06, 0x80, 0x32, 0x00, 0x88, 0x04, 0x20, 0x30, 0x81, 0x84, 0x04, 0x10, 0x20, 0x41, 0x81, 0x0C, 0x08, 0x60, 0x21, 0x00, 0x8F, 0xFF, 0x80, 0x18, 0x00, 0x40, 0x01, 0x00, 0x04, 0x00, 0x10, 0x07, 0xE0, 0x03, 0xFF, 0x03, 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x30, 0x00, 0x1B, 0xE0, 0x0E, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x60, 0x04, 0x18, 0x04, 0x06, 0x0C, 0x00, 0xF8, 0x00, 0x00, 0x3F, 0x00, 0xC0, 0x03, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0x20, 0x00, 0x40, 0x00, 0x43, 0xE0, 0x4C, 0x30, 0xB0, 0x18, 0xE0, 0x08, 0xC0, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x10, 0xC0, 0x10, 0x40, 0x20, 0x20, 0xC0, 0x1F, 0x00, 0xFF, 0xFC, 0x00, 0xE0, 0x04, 0x00, 0x60, 0x02, 0x00, 0x30, 0x01, 0x00, 0x18, 0x00, 0x80, 0x0C, 0x00, 0x40, 0x06, 0x00, 0x20, 0x03, 0x00, 0x10, 0x01, 0x80, 0x08, 0x00, 0xC0, 0x04, 0x00, 0x60, 0x02, 0x00, 0x00, 0x00, 0xF0, 0x06, 0x18, 0x10, 0x18, 0x40, 0x11, 0x00, 0x22, 0x00, 0x44, 0x00, 0x88, 0x02, 0x18, 0x08, 0x18, 0x60, 0x1F, 0x80, 0xC1, 0x82, 0x01, 0x88, 0x01, 0x20, 0x02, 0x40, 0x04, 0x80, 0x09, 0x00, 0x23, 0x00, 0x83, 0x06, 0x01, 0xF0, 0x00, 0x00, 0xF0, 0x06, 0x18, 0x10, 0x10, 0x40, 0x30, 0x80, 0x22, 0x00, 0x44, 0x00, 0x88, 0x03, 0x10, 0x0E, 0x30, 0x34, 0x30, 0xD0, 0x3E, 0x20, 0x00, 0x40, 0x01, 0x00, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0xC0, 0x02, 0x00, 0x18, 0x0F, 0xC0, 0x00, 0x1C, 0x7C, 0xF9, 0xF1, 0xC0, 0x00, 0x00, 0x00, 0x01, 0xC7, 0xCF, 0x9F, 0x1C, 0x00, 0x01, 0xC0, 0x7C, 0x0F, 0x81, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x07, 0x81, 0xE0, 0x3C, 0x0F, 0x01, 0xC0, 0x70, 0x0E, 0x03, 0x80, 0x60, 0x00, 0x00, 0x01, 0x80, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x38, 0x7F, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x18, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x1F, 0xCE, 0x06, 0x80, 0x38, 0x01, 0x80, 0x10, 0x01, 0x00, 0x20, 0x04, 0x01, 0x80, 0xF0, 0x18, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0F, 0x80, 0xF8, 0x07, 0x00, 0x01, 0xF0, 0x0C, 0x30, 0x30, 0x30, 0x40, 0x21, 0x00, 0x44, 0x00, 0x88, 0x01, 0x10, 0x1E, 0x40, 0xC4, 0x86, 0x11, 0x08, 0x22, 0x20, 0x48, 0x40, 0x90, 0x82, 0x21, 0x84, 0x40, 0xFC, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0C, 0x18, 0x07, 0xC0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x68, 0x00, 0x06, 0x40, 0x00, 0x32, 0x00, 0x03, 0x10, 0x00, 0x10, 0x80, 0x01, 0x84, 0x00, 0x18, 0x10, 0x00, 0xC0, 0x80, 0x0C, 0x04, 0x00, 0x60, 0x20, 0x06, 0x01, 0x00, 0x3F, 0xFC, 0x02, 0x00, 0x20, 0x10, 0x01, 0x01, 0x00, 0x08, 0x08, 0x00, 0x40, 0x80, 0x02, 0x0C, 0x00, 0x09, 0xFC, 0x07, 0xF0, 0x0F, 0xFF, 0x00, 0x40, 0x60, 0x20, 0x0C, 0x08, 0x01, 0x02, 0x00, 0x40, 0x80, 0x10, 0x40, 0x08, 0x10, 0x06, 0x04, 0x03, 0x01, 0xFF, 0x80, 0x40, 0x38, 0x20, 0x02, 0x08, 0x00, 0x42, 0x00, 0x10, 0x80, 0x04, 0x40, 0x01, 0x10, 0x00, 0x84, 0x00, 0x41, 0x00, 0x23, 0xFF, 0xF0, 0x00, 0xFC, 0x40, 0xC1, 0xF0, 0xC0, 0x1C, 0x60, 0x06, 0x10, 0x00, 0x88, 0x00, 0x24, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x30, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x08, 0x00, 0x03, 0x00, 0x00, 0x40, 0x06, 0x08, 0x03, 0x01, 0x83, 0x80, 0x3F, 0x00, 0x0F, 0xFE, 0x00, 0x80, 0xC0, 0x20, 0x18, 0x10, 0x02, 0x04, 0x00, 0x41, 0x00, 0x10, 0x40, 0x04, 0x20, 0x01, 0x08, 0x00, 0x42, 0x00, 0x10, 0x80, 0x08, 0x20, 0x02, 0x10, 0x00, 0x84, 0x00, 0x21, 0x00, 0x10, 0x40, 0x08, 0x20, 0x06, 0x08, 0x03, 0x02, 0x01, 0x83, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x10, 0x02, 0x02, 0x00, 0x60, 0x20, 0x06, 0x02, 0x00, 0x60, 0x20, 0x00, 0x04, 0x00, 0x00, 0x40, 0x80, 0x04, 0x10, 0x00, 0x7F, 0x00, 0x04, 0x10, 0x00, 0x81, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x81, 0x00, 0x08, 0x10, 0x00, 0x81, 0x00, 0x18, 0x10, 0x01, 0x8F, 0xFF, 0xF0, 0x0F, 0xFF, 0xF0, 0x10, 0x03, 0x02, 0x00, 0x30, 0x20, 0x03, 0x02, 0x00, 0x20, 0x20, 0x00, 0x04, 0x00, 0x00, 0x40, 0x80, 0x04, 0x10, 0x00, 0x7F, 0x00, 0x04, 0x10, 0x00, 0x81, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFE, 0x40, 0xC0, 0xF0, 0x40, 0x1C, 0x20, 0x03, 0x10, 0x00, 0x88, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x08, 0x00, 0x02, 0x01, 0xFE, 0x80, 0x02, 0x20, 0x00, 0x88, 0x00, 0x22, 0x00, 0x08, 0x40, 0x04, 0x18, 0x01, 0x03, 0x81, 0xC0, 0x3F, 0x80, 0x07, 0xE1, 0xF8, 0x08, 0x02, 0x00, 0x80, 0x10, 0x04, 0x00, 0x80, 0x20, 0x04, 0x01, 0x00, 0x20, 0x18, 0x02, 0x00, 0x80, 0x10, 0x04, 0x00, 0x80, 0x3F, 0xFC, 0x01, 0x00, 0x60, 0x10, 0x02, 0x00, 0x80, 0x10, 0x04, 0x00, 0x80, 0x20, 0x04, 0x02, 0x00, 0x40, 0x10, 0x02, 0x00, 0x80, 0x10, 0x04, 0x00, 0x81, 0xF8, 0x3F, 0x00, 0x0F, 0xFF, 0x80, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x1F, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x20, 0x00, 0x02, 0x00, 0x00, 0x20, 0x00, 0x02, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x0C, 0x04, 0x00, 0x80, 0x40, 0x08, 0x08, 0x00, 0x80, 0x80, 0x08, 0x08, 0x01, 0x00, 0x80, 0x10, 0x0C, 0x02, 0x00, 0x60, 0xC0, 0x01, 0xF0, 0x00, 0x0F, 0xE1, 0xF8, 0x08, 0x03, 0x00, 0x80, 0x60, 0x04, 0x06, 0x00, 0x20, 0x60, 0x01, 0x06, 0x00, 0x10, 0xC0, 0x00, 0x8C, 0x00, 0x04, 0xC0, 0x00, 0x2F, 0x80, 0x01, 0x8E, 0x00, 0x18, 0x30, 0x00, 0x80, 0xC0, 0x04, 0x06, 0x00, 0x20, 0x10, 0x02, 0x00, 0xC0, 0x10, 0x06, 0x00, 0x80, 0x30, 0x04, 0x00, 0x81, 0xFC, 0x07, 0x80, 0x07, 0xFC, 0x00, 0x10, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x08, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x10, 0x20, 0x04, 0x08, 0x01, 0x04, 0x00, 0x81, 0x00, 0x20, 0x40, 0x0B, 0xFF, 0xFE, 0x0F, 0x00, 0x1E, 0x03, 0x00, 0x38, 0x05, 0x00, 0x68, 0x04, 0x80, 0x68, 0x04, 0x80, 0xC8, 0x04, 0x80, 0x90, 0x04, 0x81, 0x90, 0x08, 0x43, 0x10, 0x08, 0x42, 0x10, 0x08, 0x46, 0x10, 0x08, 0x4C, 0x20, 0x10, 0x2C, 0x20, 0x10, 0x38, 0x20, 0x10, 0x30, 0x20, 0x10, 0x00, 0x40, 0x10, 0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0xFC, 0x07, 0xE0, 0x1F, 0x01, 0xFC, 0x0C, 0x00, 0x80, 0x78, 0x02, 0x01, 0xE0, 0x18, 0x04, 0x80, 0x60, 0x13, 0x01, 0x00, 0x4C, 0x04, 0x03, 0x18, 0x10, 0x0C, 0x60, 0xC0, 0x20, 0x83, 0x00, 0x83, 0x08, 0x06, 0x0C, 0x20, 0x18, 0x18, 0x80, 0x40, 0x66, 0x01, 0x00, 0x98, 0x04, 0x03, 0x40, 0x30, 0x0D, 0x00, 0xC0, 0x14, 0x02, 0x00, 0x70, 0x3F, 0x80, 0xC0, 0x00, 0xF8, 0x01, 0x83, 0x01, 0x00, 0xC1, 0x00, 0x21, 0x00, 0x19, 0x00, 0x04, 0x80, 0x02, 0x80, 0x01, 0x40, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x28, 0x00, 0x14, 0x00, 0x12, 0x00, 0x09, 0x80, 0x08, 0x40, 0x08, 0x30, 0x08, 0x0C, 0x18, 0x01, 0xF0, 0x00, 0x0F, 0xFE, 0x00, 0x40, 0x60, 0x20, 0x0C, 0x08, 0x01, 0x02, 0x00, 0x40, 0x80, 0x10, 0x40, 0x04, 0x10, 0x02, 0x04, 0x01, 0x01, 0x01, 0x80, 0x7F, 0x80, 0x20, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x10, 0x00, 0x04, 0x00, 0x01, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xF8, 0x01, 0x83, 0x01, 0x00, 0xC1, 0x00, 0x21, 0x00, 0x19, 0x00, 0x05, 0x00, 0x02, 0x80, 0x01, 0x40, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x28, 0x00, 0x14, 0x00, 0x12, 0x00, 0x09, 0x80, 0x08, 0x40, 0x08, 0x30, 0x08, 0x0C, 0x18, 0x03, 0xF0, 0x00, 0xC0, 0x01, 0xC0, 0x01, 0xFE, 0x18, 0xC0, 0xF0, 0x0F, 0xFE, 0x00, 0x40, 0x60, 0x20, 0x0C, 0x08, 0x01, 0x02, 0x00, 0x40, 0x80, 0x10, 0x40, 0x04, 0x10, 0x02, 0x04, 0x01, 0x01, 0x01, 0x80, 0x7F, 0x80, 0x20, 0x60, 0x08, 0x0C, 0x02, 0x03, 0x80, 0x80, 0x60, 0x40, 0x18, 0x10, 0x03, 0x04, 0x00, 0xC1, 0x00, 0x1B, 0xF8, 0x07, 0x00, 0x7E, 0x40, 0x60, 0xF0, 0x20, 0x1C, 0x10, 0x02, 0x08, 0x00, 0x82, 0x00, 0x00, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xC0, 0x00, 0x18, 0x00, 0x01, 0x00, 0x00, 0x44, 0x00, 0x11, 0x00, 0x04, 0x40, 0x02, 0x38, 0x01, 0x0B, 0x81, 0x82, 0x3F, 0x80, 0x3F, 0xFF, 0xA0, 0x20, 0x50, 0x10, 0x28, 0x08, 0x24, 0x08, 0x10, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x1F, 0xFC, 0x00, 0x7E, 0x0F, 0xC4, 0x00, 0x42, 0x00, 0x10, 0x80, 0x08, 0x20, 0x02, 0x08, 0x00, 0x82, 0x00, 0x21, 0x00, 0x08, 0x40, 0x04, 0x10, 0x01, 0x04, 0x00, 0x41, 0x00, 0x10, 0x80, 0x0C, 0x20, 0x02, 0x08, 0x00, 0x82, 0x00, 0x60, 0x80, 0x10, 0x10, 0x08, 0x06, 0x0C, 0x00, 0x7C, 0x00, 0xFE, 0x03, 0xF9, 0x80, 0x02, 0x0C, 0x00, 0x30, 0x20, 0x01, 0x01, 0x00, 0x10, 0x08, 0x01, 0x80, 0x60, 0x08, 0x03, 0x00, 0xC0, 0x18, 0x04, 0x00, 0x40, 0x60, 0x02, 0x06, 0x00, 0x10, 0x20, 0x00, 0xC3, 0x00, 0x06, 0x10, 0x00, 0x31, 0x80, 0x00, 0x88, 0x00, 0x04, 0x80, 0x00, 0x2C, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x7F, 0x07, 0xF2, 0x00, 0x04, 0x20, 0x00, 0xC2, 0x00, 0x08, 0x20, 0xC0, 0x82, 0x0C, 0x18, 0x21, 0xA1, 0x02, 0x1A, 0x10, 0x23, 0x23, 0x04, 0x32, 0x30, 0x46, 0x22, 0x04, 0x62, 0x60, 0x4C, 0x26, 0x04, 0xC2, 0x40, 0x58, 0x24, 0x05, 0x82, 0xC0, 0x70, 0x28, 0x07, 0x02, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x00, 0x0F, 0xC1, 0xF8, 0x30, 0x03, 0x00, 0xC0, 0x30, 0x06, 0x03, 0x00, 0x18, 0x10, 0x00, 0xC1, 0x00, 0x03, 0x18, 0x00, 0x09, 0x80, 0x00, 0x78, 0x00, 0x01, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xA0, 0x00, 0x19, 0x80, 0x01, 0x84, 0x00, 0x18, 0x30, 0x01, 0x80, 0xC0, 0x08, 0x06, 0x00, 0x80, 0x18, 0x08, 0x00, 0xC1, 0xF8, 0x3F, 0x80, 0x7E, 0x0F, 0xC4, 0x00, 0xC1, 0x80, 0x60, 0x20, 0x30, 0x0C, 0x08, 0x03, 0x04, 0x00, 0x43, 0x00, 0x19, 0x80, 0x02, 0xC0, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x08, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x40, 0x03, 0xFF, 0x80, 0x0F, 0xFF, 0x86, 0x00, 0x82, 0x00, 0x81, 0x00, 0xC1, 0x80, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x10, 0x60, 0x18, 0x20, 0x08, 0x20, 0x04, 0x20, 0x02, 0x30, 0x03, 0x1F, 0xFF, 0x80, 0x07, 0xE0, 0x80, 0x10, 0x02, 0x00, 0xC0, 0x18, 0x02, 0x00, 0x40, 0x18, 0x03, 0x00, 0x40, 0x08, 0x01, 0x00, 0x60, 0x0C, 0x01, 0x00, 0x20, 0x04, 0x01, 0x80, 0x30, 0x04, 0x00, 0x80, 0x10, 0x06, 0x00, 0xFC, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x00, 0x07, 0xE0, 0x0C, 0x01, 0x00, 0x20, 0x04, 0x01, 0x80, 0x30, 0x04, 0x00, 0x80, 0x30, 0x06, 0x00, 0x80, 0x10, 0x02, 0x00, 0xC0, 0x18, 0x02, 0x00, 0x40, 0x18, 0x03, 0x00, 0x40, 0x08, 0x03, 0x00, 0x60, 0xF8, 0x00, 0x01, 0x00, 0x1C, 0x01, 0xB0, 0x19, 0x81, 0x86, 0x18, 0x11, 0x80, 0xD8, 0x03, 0x80, 0x18, 0xFF, 0xFF, 0xF8, 0xC7, 0x1C, 0x71, 0x80, 0x03, 0xF8, 0x0C, 0x0C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x07, 0xFC, 0x18, 0x0C, 0x20, 0x04, 0x40, 0x04, 0x80, 0x04, 0x80, 0x08, 0x80, 0x38, 0xC0, 0xE8, 0x3F, 0x0F, 0x0F, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x04, 0x00, 0x00, 0x87, 0xC0, 0x13, 0x0C, 0x06, 0x80, 0x40, 0xE0, 0x0C, 0x18, 0x00, 0x82, 0x00, 0x10, 0xC0, 0x02, 0x10, 0x00, 0x42, 0x00, 0x08, 0x40, 0x02, 0x08, 0x00, 0x43, 0x80, 0x10, 0x70, 0x04, 0x09, 0x83, 0x0F, 0x1F, 0x80, 0x01, 0xFC, 0x83, 0x03, 0xC6, 0x00, 0xE4, 0x00, 0x22, 0x00, 0x12, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x18, 0x00, 0x64, 0x00, 0x61, 0x81, 0xC0, 0x7F, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x60, 0x3F, 0x18, 0x10, 0x64, 0x18, 0x0D, 0x08, 0x01, 0xC2, 0x00, 0x71, 0x00, 0x0C, 0x80, 0x02, 0x20, 0x00, 0x88, 0x00, 0x62, 0x00, 0x18, 0x80, 0x0E, 0x20, 0x03, 0x04, 0x03, 0x40, 0xC1, 0xB0, 0x1F, 0x8F, 0x00, 0x01, 0xF0, 0x0E, 0x0C, 0x18, 0x06, 0x30, 0x02, 0x60, 0x01, 0x40, 0x01, 0xC0, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x60, 0x06, 0x30, 0x1C, 0x0F, 0xE0, 0x00, 0x1F, 0xE0, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x02, 0x00, 0x07, 0xFF, 0xC0, 0x08, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x04, 0x00, 0x0F, 0xFF, 0x00, 0x03, 0xE3, 0xE1, 0x83, 0x60, 0x40, 0x38, 0x10, 0x03, 0x04, 0x00, 0x60, 0x80, 0x0C, 0x20, 0x01, 0x84, 0x00, 0x20, 0x80, 0x04, 0x10, 0x01, 0x82, 0x00, 0x30, 0x60, 0x0C, 0x04, 0x02, 0x80, 0x61, 0x90, 0x07, 0xC6, 0x00, 0x00, 0xC0, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x30, 0x00, 0x0C, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x23, 0xE0, 0x0B, 0x0C, 0x05, 0x00, 0x81, 0x80, 0x20, 0x40, 0x08, 0x10, 0x02, 0x08, 0x00, 0x82, 0x00, 0x60, 0x80, 0x18, 0x20, 0x06, 0x10, 0x01, 0x84, 0x00, 0x61, 0x00, 0x30, 0x40, 0x0C, 0xFC, 0x1F, 0xC0, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x20, 0x00, 0x40, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x08, 0x00, 0x10, 0x1F, 0xFF, 0x80, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFE, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x06, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x80, 0x03, 0x00, 0x0C, 0x0F, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x60, 0x00, 0x10, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x30, 0xFC, 0x08, 0x18, 0x02, 0x0C, 0x00, 0x8C, 0x00, 0x66, 0x00, 0x1B, 0x00, 0x05, 0x80, 0x01, 0xB0, 0x00, 0x46, 0x00, 0x31, 0xC0, 0x0C, 0x30, 0x02, 0x06, 0x00, 0x80, 0xC0, 0x60, 0x30, 0xF8, 0x1F, 0x80, 0x01, 0xF8, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x04, 0x00, 0x08, 0x0F, 0xFF, 0xC0, 0x1C, 0xF1, 0xE0, 0xF1, 0xE3, 0x0E, 0x1C, 0x10, 0xC1, 0x81, 0x08, 0x10, 0x30, 0x81, 0x03, 0x18, 0x10, 0x21, 0x83, 0x02, 0x10, 0x30, 0x21, 0x02, 0x06, 0x10, 0x20, 0x63, 0x02, 0x04, 0x30, 0x60, 0x42, 0x06, 0x04, 0xF8, 0x70, 0xF0, 0x0E, 0x3E, 0x01, 0x60, 0x81, 0xC0, 0x20, 0xC0, 0x10, 0x40, 0x08, 0x20, 0x04, 0x30, 0x02, 0x10, 0x02, 0x08, 0x01, 0x04, 0x00, 0x82, 0x00, 0x42, 0x00, 0x21, 0x00, 0x20, 0x80, 0x13, 0xF0, 0x3E, 0x01, 0xF0, 0x06, 0x0C, 0x18, 0x06, 0x20, 0x03, 0x60, 0x01, 0x40, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x02, 0x80, 0x06, 0xC0, 0x04, 0x40, 0x18, 0x30, 0x60, 0x1F, 0x80, 0x0F, 0x1F, 0x80, 0x16, 0x0C, 0x01, 0xC0, 0x20, 0x30, 0x03, 0x03, 0x00, 0x10, 0x20, 0x01, 0x02, 0x00, 0x10, 0x40, 0x01, 0x04, 0x00, 0x10, 0x40, 0x02, 0x06, 0x00, 0x60, 0x60, 0x04, 0x0B, 0x00, 0x80, 0x98, 0x30, 0x08, 0xFC, 0x00, 0x80, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xF1, 0xE1, 0x83, 0x20, 0x40, 0x34, 0x10, 0x03, 0x84, 0x00, 0x30, 0x80, 0x04, 0x20, 0x00, 0x84, 0x00, 0x10, 0x80, 0x06, 0x10, 0x00, 0xC2, 0x00, 0x30, 0x60, 0x0E, 0x04, 0x03, 0x40, 0x60, 0xC8, 0x07, 0xE2, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x01, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0x87, 0xC0, 0x23, 0x08, 0x04, 0xC0, 0x00, 0xE0, 0x00, 0x18, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x3F, 0xFE, 0x00, 0x01, 0xFA, 0x0C, 0x1C, 0x20, 0x08, 0x80, 0x11, 0x00, 0x03, 0x00, 0x03, 0xF8, 0x00, 0x7C, 0x00, 0x0C, 0x00, 0x09, 0x00, 0x16, 0x00, 0x2C, 0x00, 0x9E, 0x06, 0x27, 0xF0, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x7F, 0xFC, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0xD8, 0x1C, 0x3F, 0x00, 0xF0, 0x1E, 0x20, 0x04, 0x80, 0x09, 0x00, 0x12, 0x00, 0x24, 0x00, 0xC8, 0x01, 0x20, 0x02, 0x40, 0x04, 0x80, 0x09, 0x00, 0x12, 0x00, 0x64, 0x03, 0x8C, 0x1D, 0x0F, 0xC3, 0x80, 0xFE, 0x0F, 0xE6, 0x00, 0x20, 0x40, 0x08, 0x08, 0x03, 0x01, 0x80, 0x40, 0x30, 0x18, 0x06, 0x02, 0x00, 0x40, 0x80, 0x08, 0x30, 0x01, 0x84, 0x00, 0x31, 0x80, 0x02, 0x20, 0x00, 0x48, 0x00, 0x09, 0x00, 0x01, 0xC0, 0x00, 0xF8, 0x0F, 0xA0, 0x01, 0x90, 0x00, 0x88, 0x40, 0xC4, 0x30, 0x42, 0x18, 0x61, 0x1A, 0x20, 0x8D, 0x10, 0x4C, 0x98, 0x26, 0x48, 0x16, 0x2C, 0x0B, 0x14, 0x07, 0x0A, 0x03, 0x07, 0x01, 0x81, 0x00, 0x0F, 0x83, 0xE0, 0xC0, 0x18, 0x0C, 0x0C, 0x01, 0x83, 0x00, 0x18, 0xC0, 0x01, 0xB0, 0x00, 0x1C, 0x00, 0x03, 0x00, 0x00, 0xF0, 0x00, 0x63, 0x00, 0x18, 0x30, 0x06, 0x06, 0x01, 0x80, 0x60, 0x60, 0x06, 0x3F, 0x07, 0xE0, 0x0F, 0xC0, 0xF8, 0x30, 0x01, 0x00, 0x80, 0x18, 0x04, 0x00, 0x80, 0x30, 0x0C, 0x01, 0x80, 0xC0, 0x04, 0x04, 0x00, 0x30, 0x60, 0x01, 0x86, 0x00, 0x04, 0x20, 0x00, 0x23, 0x00, 0x01, 0xB0, 0x00, 0x0D, 0x00, 0x00, 0x38, 0x00, 0x01, 0x80, 0x00, 0x08, 0x00, 0x00, 0xC0, 0x00, 0x04, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x20, 0x00, 0x7F, 0xE0, 0x00, 0x1F, 0xFF, 0x10, 0x06, 0x10, 0x0C, 0x10, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x04, 0x30, 0x0C, 0x60, 0x0C, 0xFF, 0xF8, 0x00, 0xE0, 0x20, 0x08, 0x01, 0x00, 0x20, 0x04, 0x01, 0x00, 0x20, 0x04, 0x00, 0x80, 0x20, 0x08, 0x0E, 0x00, 0x60, 0x04, 0x00, 0x80, 0x10, 0x02, 0x00, 0x40, 0x08, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x18, 0x00, 0x00, 0x10, 0xC3, 0x08, 0x20, 0x86, 0x18, 0x41, 0x04, 0x30, 0xC2, 0x08, 0x21, 0x86, 0x10, 0x43, 0x0C, 0x20, 0x06, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x02, 0x00, 0x80, 0x20, 0x0C, 0x01, 0xC0, 0xC0, 0x40, 0x10, 0x04, 0x03, 0x00, 0x80, 0x20, 0x08, 0x02, 0x01, 0x00, 0xC0, 0xE0, 0x00, 0x1E, 0x02, 0x66, 0x0D, 0x86, 0x16, 0x06, 0x48, 0x07, 0x00}; const GFXglyph FreeMonoOblique18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 21, 0, 1}, // 0x20 ' ' {0, 7, 22, 21, 9, -21}, // 0x21 '!' {20, 13, 10, 21, 7, -20}, // 0x22 '"' {37, 15, 24, 21, 5, -21}, // 0x23 '#' {82, 16, 26, 21, 4, -22}, // 0x24 '$' {134, 16, 21, 21, 5, -20}, // 0x25 '%' {176, 13, 18, 21, 5, -17}, // 0x26 '&' {206, 5, 10, 21, 12, -20}, // 0x27 ''' {213, 8, 25, 21, 12, -20}, // 0x28 '(' {238, 8, 25, 21, 5, -20}, // 0x29 ')' {263, 14, 11, 21, 7, -19}, // 0x2A '*' {283, 15, 17, 21, 5, -17}, // 0x2B '+' {315, 9, 10, 21, 4, -4}, // 0x2C ',' {327, 16, 1, 21, 5, -9}, // 0x2D '-' {329, 5, 5, 21, 8, -4}, // 0x2E '.' {333, 19, 26, 21, 3, -22}, // 0x2F '/' {395, 14, 21, 21, 5, -20}, // 0x30 '0' {432, 13, 21, 21, 4, -20}, // 0x31 '1' {467, 17, 21, 21, 3, -20}, // 0x32 '2' {512, 16, 21, 21, 3, -20}, // 0x33 '3' {554, 14, 21, 21, 5, -20}, // 0x34 '4' {591, 17, 21, 21, 4, -20}, // 0x35 '5' {636, 16, 21, 21, 6, -20}, // 0x36 '6' {678, 13, 21, 21, 8, -20}, // 0x37 '7' {713, 15, 21, 21, 5, -20}, // 0x38 '8' {753, 15, 21, 21, 5, -20}, // 0x39 '9' {793, 7, 15, 21, 8, -14}, // 0x3A ':' {807, 11, 20, 21, 4, -14}, // 0x3B ';' {835, 17, 16, 21, 5, -17}, // 0x3C '<' {869, 19, 6, 21, 3, -12}, // 0x3D '=' {884, 18, 16, 21, 3, -17}, // 0x3E '>' {920, 12, 20, 21, 8, -19}, // 0x3F '?' {950, 15, 23, 21, 5, -20}, // 0x40 '@' {994, 21, 20, 21, 0, -19}, // 0x41 'A' {1047, 18, 20, 21, 2, -19}, // 0x42 'B' {1092, 18, 20, 21, 4, -19}, // 0x43 'C' {1137, 18, 20, 21, 2, -19}, // 0x44 'D' {1182, 20, 20, 21, 2, -19}, // 0x45 'E' {1232, 20, 20, 21, 2, -19}, // 0x46 'F' {1282, 18, 20, 21, 4, -19}, // 0x47 'G' {1327, 21, 20, 21, 2, -19}, // 0x48 'H' {1380, 17, 20, 21, 4, -19}, // 0x49 'I' {1423, 20, 20, 21, 4, -19}, // 0x4A 'J' {1473, 21, 20, 21, 2, -19}, // 0x4B 'K' {1526, 18, 20, 21, 2, -19}, // 0x4C 'L' {1571, 24, 20, 21, 1, -19}, // 0x4D 'M' {1631, 22, 20, 21, 2, -19}, // 0x4E 'N' {1686, 17, 20, 21, 4, -19}, // 0x4F 'O' {1729, 18, 20, 21, 2, -19}, // 0x50 'P' {1774, 17, 24, 21, 4, -19}, // 0x51 'Q' {1825, 18, 20, 21, 2, -19}, // 0x52 'R' {1870, 18, 20, 21, 3, -19}, // 0x53 'S' {1915, 17, 20, 21, 5, -19}, // 0x54 'T' {1958, 18, 20, 21, 5, -19}, // 0x55 'U' {2003, 21, 20, 21, 4, -19}, // 0x56 'V' {2056, 20, 20, 21, 4, -19}, // 0x57 'W' {2106, 21, 20, 21, 2, -19}, // 0x58 'X' {2159, 18, 20, 21, 5, -19}, // 0x59 'Y' {2204, 17, 20, 21, 4, -19}, // 0x5A 'Z' {2247, 11, 25, 21, 9, -20}, // 0x5B '[' {2282, 8, 27, 21, 9, -22}, // 0x5C '\' {2309, 11, 25, 21, 5, -20}, // 0x5D ']' {2344, 13, 9, 21, 7, -20}, // 0x5E '^' {2359, 21, 1, 21, -1, 4}, // 0x5F '_' {2362, 5, 5, 21, 9, -21}, // 0x60 '`' {2366, 16, 15, 21, 3, -14}, // 0x61 'a' {2396, 19, 21, 21, 1, -20}, // 0x62 'b' {2446, 17, 15, 21, 4, -14}, // 0x63 'c' {2478, 18, 21, 21, 4, -20}, // 0x64 'd' {2526, 16, 15, 21, 4, -14}, // 0x65 'e' {2556, 19, 21, 21, 4, -20}, // 0x66 'f' {2606, 19, 22, 21, 4, -14}, // 0x67 'g' {2659, 18, 21, 21, 2, -20}, // 0x68 'h' {2707, 15, 22, 21, 3, -21}, // 0x69 'i' {2749, 15, 29, 21, 3, -21}, // 0x6A 'j' {2804, 18, 21, 21, 2, -20}, // 0x6B 'k' {2852, 15, 21, 21, 3, -20}, // 0x6C 'l' {2892, 20, 15, 21, 1, -14}, // 0x6D 'm' {2930, 17, 15, 21, 2, -14}, // 0x6E 'n' {2962, 16, 15, 21, 4, -14}, // 0x6F 'o' {2992, 20, 22, 21, 0, -14}, // 0x70 'p' {3047, 19, 22, 21, 4, -14}, // 0x71 'q' {3100, 19, 15, 21, 3, -14}, // 0x72 'r' {3136, 15, 15, 21, 4, -14}, // 0x73 's' {3165, 13, 20, 21, 5, -19}, // 0x74 't' {3198, 15, 15, 21, 4, -14}, // 0x75 'u' {3227, 19, 15, 21, 4, -14}, // 0x76 'v' {3263, 17, 15, 21, 5, -14}, // 0x77 'w' {3295, 19, 15, 21, 2, -14}, // 0x78 'x' {3331, 21, 22, 21, 1, -14}, // 0x79 'y' {3389, 16, 15, 21, 4, -14}, // 0x7A 'z' {3419, 11, 25, 21, 8, -20}, // 0x7B '{' {3454, 6, 24, 21, 9, -19}, // 0x7C '|' {3472, 10, 25, 21, 6, -20}, // 0x7D '}' {3504, 15, 5, 21, 5, -11}}; // 0x7E '~' const GFXfont FreeMonoOblique18pt7b PROGMEM = { (uint8_t *)FreeMonoOblique18pt7bBitmaps, (GFXglyph *)FreeMonoOblique18pt7bGlyphs, 0x20, 0x7E, 35}; // Approx. 4186 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoOblique24pt7b.h ================================================ const uint8_t FreeMonoOblique24pt7bBitmaps[] PROGMEM = { 0x01, 0xC0, 0xF0, 0x3C, 0x0E, 0x03, 0x81, 0xE0, 0x78, 0x1C, 0x07, 0x01, 0xC0, 0xE0, 0x38, 0x0E, 0x03, 0x00, 0xC0, 0x70, 0x1C, 0x06, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0F, 0x83, 0xE0, 0xF8, 0x1C, 0x00, 0x7E, 0x3F, 0x7E, 0x3F, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x78, 0x3C, 0xF8, 0x7C, 0xF0, 0x78, 0xF0, 0x78, 0xF0, 0x78, 0xE0, 0x70, 0xE0, 0x70, 0xE0, 0x70, 0xC0, 0x60, 0x00, 0x18, 0x30, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x04, 0x18, 0x00, 0x30, 0xC0, 0x00, 0xC3, 0x00, 0x03, 0x0C, 0x00, 0x18, 0x30, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x06, 0x18, 0x07, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, 0x03, 0x0C, 0x00, 0x18, 0x30, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x06, 0x18, 0x00, 0x30, 0xC0, 0x1F, 0xFF, 0xF8, 0x7F, 0xFF, 0xE0, 0x18, 0x30, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x06, 0x18, 0x00, 0x30, 0x40, 0x00, 0xC3, 0x00, 0x03, 0x0C, 0x00, 0x18, 0x30, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x06, 0x18, 0x00, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0x80, 0x00, 0x3F, 0x00, 0x07, 0xFD, 0x80, 0x70, 0x7C, 0x06, 0x00, 0xE0, 0x60, 0x02, 0x07, 0x00, 0x10, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x70, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC2, 0x00, 0x06, 0x30, 0x00, 0x61, 0x80, 0x03, 0x1E, 0x00, 0x30, 0xFC, 0x07, 0x06, 0x7F, 0xF0, 0x00, 0xFE, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x00, 0x78, 0x00, 0x07, 0xF8, 0x00, 0x38, 0x60, 0x01, 0xC0, 0xC0, 0x06, 0x03, 0x00, 0x30, 0x0C, 0x00, 0xC0, 0x30, 0x03, 0x01, 0x80, 0x0C, 0x0E, 0x00, 0x38, 0x70, 0x00, 0x7F, 0x81, 0xC0, 0xF8, 0x3F, 0x00, 0x07, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xC0, 0x00, 0x78, 0x00, 0x01, 0x00, 0x78, 0x00, 0x07, 0xF8, 0x00, 0x38, 0x60, 0x01, 0x80, 0xC0, 0x06, 0x03, 0x00, 0x30, 0x0C, 0x00, 0xC0, 0x30, 0x03, 0x01, 0x80, 0x0C, 0x0E, 0x00, 0x18, 0x70, 0x00, 0x7F, 0x80, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x0F, 0xF8, 0x03, 0x8E, 0x00, 0xC0, 0x00, 0x38, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x01, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x03, 0xE0, 0x01, 0xCC, 0x0E, 0x60, 0xC3, 0xD8, 0x18, 0x63, 0x03, 0x18, 0xC0, 0x33, 0x18, 0x06, 0xC3, 0x00, 0x70, 0x60, 0x0E, 0x0C, 0x01, 0xC0, 0xC0, 0x78, 0x1C, 0x3B, 0xE1, 0xFE, 0x3C, 0x1F, 0x00, 0x00, 0x7E, 0xFD, 0xF3, 0xE7, 0xCF, 0x3E, 0x78, 0xF1, 0xE3, 0x87, 0x0E, 0x18, 0x00, 0x00, 0x60, 0x18, 0x07, 0x00, 0xC0, 0x30, 0x0E, 0x01, 0x80, 0x70, 0x0C, 0x03, 0x80, 0x60, 0x1C, 0x03, 0x80, 0xE0, 0x1C, 0x03, 0x80, 0xF0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x1C, 0x01, 0x80, 0x30, 0x02, 0x00, 0x01, 0x80, 0x30, 0x06, 0x00, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x38, 0x07, 0x00, 0xE0, 0x3C, 0x07, 0x00, 0xE0, 0x38, 0x07, 0x01, 0xC0, 0x38, 0x0E, 0x01, 0x80, 0x70, 0x0C, 0x03, 0x00, 0xC0, 0x10, 0x00, 0x00, 0x20, 0x00, 0x18, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x30, 0x0E, 0x0C, 0x0B, 0xF3, 0x3E, 0x3F, 0xFE, 0x01, 0xFC, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x0E, 0x60, 0x07, 0x18, 0x01, 0x83, 0x00, 0xC0, 0xC0, 0x60, 0x30, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x03, 0xF0, 0x7E, 0x07, 0xC0, 0xF8, 0x0F, 0x81, 0xF0, 0x1E, 0x03, 0xE0, 0x3C, 0x07, 0x80, 0x70, 0x0F, 0x00, 0xE0, 0x0C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x3C, 0xFF, 0xFF, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x70, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x0F, 0xF8, 0x01, 0xC1, 0xC0, 0x38, 0x0E, 0x07, 0x00, 0x60, 0xE0, 0x03, 0x0C, 0x00, 0x31, 0x80, 0x03, 0x18, 0x00, 0x33, 0x00, 0x03, 0x30, 0x00, 0x33, 0x00, 0x03, 0x20, 0x00, 0x26, 0x00, 0x06, 0x60, 0x00, 0x66, 0x00, 0x06, 0x40, 0x00, 0x4C, 0x00, 0x0C, 0xC0, 0x00, 0xCC, 0x00, 0x0C, 0xC0, 0x01, 0x8C, 0x00, 0x18, 0xC0, 0x01, 0x8C, 0x00, 0x30, 0xC0, 0x07, 0x06, 0x00, 0xE0, 0x60, 0x1C, 0x03, 0x87, 0x80, 0x3F, 0xF0, 0x00, 0xFC, 0x00, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x0F, 0x80, 0x0E, 0xC0, 0x1C, 0xC0, 0x1C, 0x60, 0x1C, 0x30, 0x08, 0x18, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x1F, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0xE0, 0x01, 0xE0, 0xE0, 0x07, 0x00, 0xE0, 0x1C, 0x00, 0xE0, 0x30, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x70, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xE0, 0x00, 0xC3, 0x80, 0x01, 0x87, 0xFF, 0xFF, 0x0F, 0xFF, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x01, 0xFF, 0xC0, 0x1E, 0x07, 0x80, 0xE0, 0x06, 0x03, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xE0, 0x00, 0x01, 0x80, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xE3, 0x00, 0x07, 0x0E, 0x00, 0x38, 0x1E, 0x03, 0xC0, 0x3F, 0xFC, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x1B, 0x00, 0x06, 0x60, 0x01, 0x8C, 0x00, 0x63, 0x00, 0x18, 0x60, 0x07, 0x0C, 0x00, 0xC1, 0x80, 0x30, 0x30, 0x0C, 0x0C, 0x03, 0x01, 0x80, 0xC0, 0x30, 0x18, 0x06, 0x06, 0x00, 0xC1, 0x80, 0x30, 0x60, 0x06, 0x18, 0x00, 0xC3, 0xFF, 0xFE, 0x7F, 0xFF, 0xC0, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x18, 0x00, 0x03, 0x00, 0x0F, 0xFC, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0xF8, 0x0F, 0xFF, 0xC0, 0x40, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0xBF, 0xC0, 0x0F, 0xFF, 0x80, 0xF8, 0x1E, 0x02, 0x00, 0x30, 0x00, 0x01, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x03, 0x80, 0x00, 0x18, 0xC0, 0x01, 0x87, 0x00, 0x38, 0x1E, 0x07, 0x80, 0x7F, 0xF8, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0xFF, 0xC0, 0x1F, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0x80, 0x00, 0x18, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x00, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x60, 0x00, 0x07, 0x0F, 0x80, 0x31, 0xFF, 0x01, 0x9C, 0x3C, 0x0D, 0x80, 0x60, 0xD8, 0x03, 0x87, 0x80, 0x0C, 0x38, 0x00, 0x61, 0xC0, 0x03, 0x0C, 0x00, 0x18, 0x60, 0x00, 0xC3, 0x00, 0x0C, 0x18, 0x00, 0x60, 0xE0, 0x06, 0x03, 0x00, 0x30, 0x1C, 0x07, 0x00, 0x70, 0x70, 0x01, 0xFF, 0x00, 0x07, 0xE0, 0x00, 0x7F, 0xFF, 0xDF, 0xFF, 0xFC, 0x00, 0x0F, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x06, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x00, 0x3F, 0x00, 0x0F, 0xFC, 0x01, 0xC1, 0xE0, 0x70, 0x06, 0x06, 0x00, 0x30, 0xC0, 0x03, 0x1C, 0x00, 0x31, 0x80, 0x03, 0x18, 0x00, 0x31, 0x80, 0x06, 0x18, 0x00, 0xE0, 0xC0, 0x1C, 0x0F, 0x07, 0x80, 0x3F, 0xE0, 0x03, 0xFE, 0x00, 0xE0, 0x70, 0x18, 0x03, 0x83, 0x00, 0x1C, 0x60, 0x00, 0xC6, 0x00, 0x0C, 0xC0, 0x00, 0xCC, 0x00, 0x0C, 0xC0, 0x00, 0xCC, 0x00, 0x18, 0xC0, 0x03, 0x8E, 0x00, 0x70, 0x60, 0x0E, 0x07, 0x83, 0xC0, 0x3F, 0xF0, 0x00, 0xFC, 0x00, 0x00, 0x0F, 0x80, 0x00, 0xFF, 0x80, 0x0F, 0x07, 0x00, 0x70, 0x0E, 0x03, 0x80, 0x18, 0x0C, 0x00, 0x70, 0x60, 0x00, 0xC1, 0x80, 0x03, 0x0C, 0x00, 0x0C, 0x30, 0x00, 0x30, 0xC0, 0x01, 0xC3, 0x00, 0x0F, 0x0C, 0x00, 0x6C, 0x38, 0x03, 0xF0, 0x60, 0x1D, 0x81, 0xE1, 0xE6, 0x03, 0xFE, 0x18, 0x03, 0xE0, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x7C, 0x00, 0xFF, 0xC0, 0x01, 0xF8, 0x00, 0x00, 0x07, 0x83, 0xF1, 0xFC, 0x7F, 0x1F, 0x83, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7E, 0x3F, 0x8F, 0xE3, 0xF0, 0x78, 0x00, 0x00, 0x3C, 0x00, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0xFC, 0x03, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x3E, 0x00, 0xF8, 0x01, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x3C, 0x00, 0x70, 0x01, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0C, 0x00, 0x3F, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x00, 0x06, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xC0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x70, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x07, 0xF0, 0x3F, 0xFC, 0x78, 0x1E, 0xC0, 0x07, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xE0, 0x07, 0xC0, 0x07, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x7E, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x7C, 0x00, 0x00, 0x3F, 0x00, 0x1F, 0xF0, 0x07, 0x07, 0x01, 0xC0, 0x70, 0x60, 0x06, 0x1C, 0x00, 0xC3, 0x00, 0x18, 0xC0, 0x03, 0x18, 0x00, 0x66, 0x00, 0xFC, 0xC0, 0x7F, 0x98, 0x1C, 0x66, 0x06, 0x0C, 0xC1, 0x81, 0x98, 0x30, 0x33, 0x0C, 0x0E, 0x61, 0x81, 0x98, 0x30, 0x33, 0x06, 0x06, 0x60, 0xF0, 0xCC, 0x0F, 0xF9, 0x80, 0x7F, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x80, 0x00, 0x30, 0x00, 0x07, 0x00, 0x00, 0x70, 0x18, 0x0F, 0xFE, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x06, 0xC0, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x31, 0x80, 0x00, 0x06, 0x30, 0x00, 0x01, 0x86, 0x00, 0x00, 0x60, 0xC0, 0x00, 0x0C, 0x1C, 0x00, 0x03, 0x01, 0x80, 0x00, 0x40, 0x30, 0x00, 0x18, 0x06, 0x00, 0x06, 0x00, 0xC0, 0x00, 0xC0, 0x18, 0x00, 0x30, 0x01, 0x80, 0x07, 0xFF, 0xF0, 0x01, 0xFF, 0xFE, 0x00, 0x60, 0x00, 0xC0, 0x0C, 0x00, 0x18, 0x03, 0x00, 0x03, 0x00, 0x40, 0x00, 0x30, 0x18, 0x00, 0x06, 0x06, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x18, 0xFF, 0x80, 0x7F, 0xFF, 0xF0, 0x0F, 0xFC, 0x03, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xC0, 0x06, 0x00, 0x38, 0x01, 0x80, 0x07, 0x00, 0xC0, 0x00, 0xC0, 0x30, 0x00, 0x30, 0x0C, 0x00, 0x0C, 0x03, 0x00, 0x03, 0x00, 0xC0, 0x01, 0x80, 0x60, 0x00, 0xC0, 0x18, 0x01, 0xE0, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xFC, 0x00, 0xE0, 0x03, 0x80, 0x30, 0x00, 0x70, 0x0C, 0x00, 0x0E, 0x03, 0x00, 0x01, 0x80, 0xC0, 0x00, 0x60, 0x60, 0x00, 0x18, 0x18, 0x00, 0x06, 0x06, 0x00, 0x03, 0x01, 0x80, 0x01, 0xC0, 0x60, 0x00, 0xE0, 0x30, 0x00, 0x70, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0xFC, 0xC0, 0x3C, 0x0F, 0x60, 0x78, 0x01, 0xF0, 0x70, 0x00, 0x70, 0x70, 0x00, 0x18, 0x30, 0x00, 0x0C, 0x30, 0x00, 0x06, 0x38, 0x00, 0x02, 0x18, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x60, 0x60, 0x00, 0x60, 0x38, 0x00, 0xE0, 0x0F, 0x01, 0xE0, 0x03, 0xFF, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0x00, 0x0C, 0x00, 0xF0, 0x03, 0x00, 0x1C, 0x01, 0xC0, 0x03, 0x80, 0x60, 0x00, 0x60, 0x18, 0x00, 0x1C, 0x06, 0x00, 0x03, 0x01, 0x80, 0x00, 0xC0, 0xC0, 0x00, 0x30, 0x30, 0x00, 0x0C, 0x0C, 0x00, 0x03, 0x03, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x60, 0x60, 0x00, 0x18, 0x18, 0x00, 0x06, 0x06, 0x00, 0x03, 0x01, 0x80, 0x00, 0xC0, 0xE0, 0x00, 0x70, 0x30, 0x00, 0x18, 0x0C, 0x00, 0x0C, 0x03, 0x00, 0x06, 0x00, 0xC0, 0x07, 0x00, 0x60, 0x07, 0x80, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFC, 0x01, 0x80, 0x01, 0x80, 0x30, 0x00, 0x60, 0x0C, 0x00, 0x0C, 0x01, 0x80, 0x01, 0x80, 0x30, 0x00, 0x30, 0x06, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x30, 0x18, 0x00, 0x06, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0x03, 0x00, 0x00, 0xC0, 0x60, 0x00, 0x18, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x0C, 0x03, 0x00, 0x01, 0x80, 0x60, 0x00, 0x30, 0x0C, 0x00, 0x0C, 0x01, 0x80, 0x01, 0x80, 0x60, 0x00, 0x30, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFF, 0x00, 0x60, 0x00, 0x30, 0x06, 0x00, 0x06, 0x00, 0xC0, 0x00, 0x60, 0x0C, 0x00, 0x06, 0x00, 0xC0, 0x00, 0x60, 0x0C, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x18, 0x0C, 0x00, 0x01, 0x80, 0xC0, 0x00, 0x1F, 0xFC, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x38, 0x18, 0x00, 0x03, 0x01, 0x80, 0x00, 0x30, 0x18, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0xFC, 0xC0, 0x3C, 0x0F, 0xE0, 0x78, 0x01, 0xF0, 0x70, 0x00, 0x30, 0x70, 0x00, 0x18, 0x70, 0x00, 0x0C, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x1F, 0xFE, 0xC0, 0x0F, 0xFF, 0x60, 0x00, 0x06, 0x30, 0x00, 0x06, 0x18, 0x00, 0x03, 0x0C, 0x00, 0x01, 0x87, 0x00, 0x00, 0xC1, 0x80, 0x00, 0xE0, 0xE0, 0x00, 0x60, 0x38, 0x00, 0x70, 0x0F, 0x00, 0xF8, 0x03, 0xFF, 0xF0, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xFC, 0x1F, 0xE0, 0x7F, 0x83, 0xFC, 0x03, 0x00, 0x06, 0x00, 0x60, 0x01, 0x80, 0x1C, 0x00, 0x30, 0x03, 0x00, 0x06, 0x00, 0x60, 0x00, 0xC0, 0x0C, 0x00, 0x38, 0x01, 0x80, 0x06, 0x00, 0x60, 0x00, 0xC0, 0x0C, 0x00, 0x18, 0x01, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xC0, 0x06, 0x00, 0x18, 0x01, 0x80, 0x03, 0x00, 0x30, 0x00, 0x60, 0x06, 0x00, 0x0C, 0x00, 0xC0, 0x03, 0x00, 0x38, 0x00, 0x60, 0x06, 0x00, 0x0C, 0x00, 0xC0, 0x01, 0x80, 0x18, 0x00, 0x70, 0x03, 0x00, 0x0C, 0x00, 0xE0, 0x01, 0x80, 0xFF, 0x83, 0xFE, 0x1F, 0xF0, 0x7F, 0xC0, 0x07, 0xFF, 0xFC, 0x1F, 0xFF, 0xF0, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x70, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x38, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0xFF, 0xFF, 0x83, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x18, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x18, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x38, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x07, 0x00, 0x20, 0x00, 0x60, 0x06, 0x00, 0x06, 0x00, 0x60, 0x00, 0x60, 0x06, 0x00, 0x06, 0x00, 0x60, 0x00, 0xC0, 0x0C, 0x00, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x0C, 0x00, 0x18, 0x00, 0xE0, 0x03, 0x00, 0x07, 0x00, 0x70, 0x00, 0x3C, 0x1C, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x03, 0xFF, 0x07, 0xF8, 0x3F, 0xF8, 0x3F, 0xC0, 0x18, 0x00, 0x70, 0x00, 0xC0, 0x07, 0x00, 0x0C, 0x00, 0x60, 0x00, 0x60, 0x0E, 0x00, 0x03, 0x00, 0xE0, 0x00, 0x18, 0x0C, 0x00, 0x00, 0xC1, 0xC0, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x61, 0x80, 0x00, 0x03, 0x3C, 0x00, 0x00, 0x1B, 0x78, 0x00, 0x01, 0xF0, 0xE0, 0x00, 0x0F, 0x03, 0x80, 0x00, 0x60, 0x0C, 0x00, 0x03, 0x00, 0x70, 0x00, 0x18, 0x01, 0x80, 0x01, 0x80, 0x0C, 0x00, 0x0C, 0x00, 0x60, 0x00, 0x60, 0x01, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x03, 0x00, 0xFF, 0xE0, 0x1F, 0x87, 0xFF, 0x00, 0x7C, 0x00, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x70, 0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x60, 0x01, 0x80, 0x60, 0x00, 0xC0, 0x30, 0x00, 0x60, 0x18, 0x00, 0x30, 0x0C, 0x00, 0x30, 0x0E, 0x00, 0x18, 0x06, 0x00, 0x0C, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x07, 0xF0, 0x00, 0x7F, 0x01, 0xB0, 0x00, 0xD8, 0x01, 0xB0, 0x00, 0xD8, 0x01, 0x98, 0x01, 0x98, 0x01, 0x98, 0x03, 0x30, 0x01, 0x98, 0x03, 0x30, 0x03, 0x18, 0x06, 0x30, 0x03, 0x1C, 0x0C, 0x30, 0x03, 0x0C, 0x0C, 0x30, 0x03, 0x0C, 0x18, 0x60, 0x07, 0x0C, 0x30, 0x60, 0x06, 0x0C, 0x30, 0x60, 0x06, 0x06, 0x60, 0x60, 0x06, 0x06, 0xC0, 0x60, 0x06, 0x06, 0xC0, 0xC0, 0x0C, 0x07, 0x80, 0xC0, 0x0C, 0x03, 0x00, 0xC0, 0x0C, 0x00, 0x00, 0xC0, 0x0C, 0x00, 0x01, 0xC0, 0x0C, 0x00, 0x01, 0x80, 0x18, 0x00, 0x01, 0x80, 0x18, 0x00, 0x01, 0x80, 0x18, 0x00, 0x01, 0x80, 0xFF, 0x80, 0x3F, 0xE0, 0xFF, 0x80, 0x3F, 0xE0, 0x07, 0xE0, 0x0F, 0xFC, 0x3F, 0x80, 0x3F, 0xF0, 0x0F, 0x00, 0x06, 0x00, 0x3C, 0x00, 0x10, 0x01, 0x98, 0x00, 0xC0, 0x06, 0x60, 0x03, 0x00, 0x19, 0xC0, 0x0C, 0x00, 0x63, 0x00, 0x30, 0x01, 0x0C, 0x01, 0x80, 0x0C, 0x18, 0x06, 0x00, 0x30, 0x60, 0x18, 0x00, 0xC1, 0xC0, 0x60, 0x03, 0x03, 0x01, 0x00, 0x08, 0x0C, 0x0C, 0x00, 0x60, 0x18, 0x30, 0x01, 0x80, 0x60, 0xC0, 0x06, 0x01, 0xC3, 0x00, 0x18, 0x03, 0x18, 0x00, 0xC0, 0x0C, 0x60, 0x03, 0x00, 0x19, 0x80, 0x0C, 0x00, 0x66, 0x00, 0x30, 0x01, 0xD8, 0x00, 0x80, 0x03, 0xC0, 0x06, 0x00, 0x0F, 0x00, 0xFF, 0xC0, 0x1C, 0x03, 0xFE, 0x00, 0x70, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x7F, 0xF0, 0x00, 0xF0, 0x78, 0x03, 0x80, 0x1C, 0x07, 0x00, 0x0E, 0x0E, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x18, 0x00, 0x07, 0x38, 0x00, 0x03, 0x30, 0x00, 0x03, 0x60, 0x00, 0x03, 0x60, 0x00, 0x03, 0x60, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x0C, 0xC0, 0x00, 0x1C, 0xC0, 0x00, 0x18, 0x60, 0x00, 0x30, 0x60, 0x00, 0x70, 0x70, 0x00, 0xE0, 0x38, 0x01, 0xC0, 0x1E, 0x0F, 0x00, 0x0F, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xC0, 0x06, 0x00, 0x78, 0x01, 0x80, 0x06, 0x00, 0xC0, 0x01, 0xC0, 0x30, 0x00, 0x30, 0x0C, 0x00, 0x0C, 0x03, 0x00, 0x03, 0x00, 0xC0, 0x01, 0xC0, 0x60, 0x00, 0x60, 0x18, 0x00, 0x30, 0x06, 0x00, 0x18, 0x01, 0x80, 0x3C, 0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xFC, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x06, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x7F, 0xF0, 0x00, 0xF0, 0x78, 0x03, 0x80, 0x1C, 0x07, 0x00, 0x0E, 0x0E, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x18, 0x00, 0x03, 0x38, 0x00, 0x03, 0x30, 0x00, 0x03, 0x60, 0x00, 0x03, 0x60, 0x00, 0x03, 0x60, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x0C, 0xC0, 0x00, 0x1C, 0xC0, 0x00, 0x18, 0x60, 0x00, 0x30, 0x60, 0x00, 0x70, 0x30, 0x00, 0xE0, 0x38, 0x01, 0xC0, 0x0E, 0x0F, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x1F, 0xF8, 0x30, 0x3F, 0xFF, 0xF0, 0x78, 0x0F, 0x80, 0x07, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xC0, 0x06, 0x00, 0x78, 0x01, 0x80, 0x0E, 0x00, 0xC0, 0x01, 0xC0, 0x30, 0x00, 0x30, 0x0C, 0x00, 0x0C, 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00, 0xC0, 0x60, 0x00, 0x60, 0x18, 0x00, 0x30, 0x06, 0x00, 0x38, 0x01, 0x80, 0x3C, 0x00, 0xFF, 0xFC, 0x00, 0x3F, 0xFC, 0x00, 0x0C, 0x07, 0x80, 0x03, 0x00, 0x70, 0x00, 0xC0, 0x0E, 0x00, 0x60, 0x01, 0x80, 0x18, 0x00, 0x70, 0x06, 0x00, 0x0C, 0x01, 0x80, 0x03, 0x80, 0x60, 0x00, 0x60, 0x30, 0x00, 0x1C, 0xFF, 0xE0, 0x07, 0xFF, 0xF8, 0x00, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0xF3, 0x00, 0xE0, 0x3B, 0x03, 0x80, 0x0F, 0x07, 0x00, 0x0E, 0x06, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x38, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x20, 0x00, 0x18, 0x60, 0x00, 0x18, 0x60, 0x00, 0x30, 0x60, 0x00, 0x70, 0xF0, 0x00, 0xE0, 0xF8, 0x01, 0xC0, 0xDC, 0x07, 0x80, 0x8F, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0xFF, 0xFE, 0x3F, 0xFF, 0xFE, 0x30, 0x18, 0x06, 0x60, 0x18, 0x06, 0x60, 0x18, 0x06, 0x60, 0x38, 0x0C, 0x60, 0x30, 0x04, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x70, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xC0, 0xFF, 0xDF, 0xF0, 0x3F, 0xF1, 0x80, 0x00, 0x60, 0x60, 0x00, 0x30, 0x18, 0x00, 0x0C, 0x06, 0x00, 0x03, 0x03, 0x80, 0x00, 0xC0, 0xC0, 0x00, 0x30, 0x30, 0x00, 0x18, 0x0C, 0x00, 0x06, 0x03, 0x00, 0x01, 0x81, 0xC0, 0x00, 0x60, 0x60, 0x00, 0x18, 0x18, 0x00, 0x0C, 0x06, 0x00, 0x03, 0x01, 0x80, 0x00, 0xC0, 0xC0, 0x00, 0x30, 0x30, 0x00, 0x1C, 0x0C, 0x00, 0x06, 0x03, 0x00, 0x01, 0x80, 0xC0, 0x00, 0xC0, 0x30, 0x00, 0x70, 0x0E, 0x00, 0x38, 0x01, 0xC0, 0x1C, 0x00, 0x38, 0x1E, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0x80, 0x3F, 0xFF, 0xF0, 0x07, 0xFC, 0xE0, 0x00, 0x0C, 0x0C, 0x00, 0x03, 0x01, 0x80, 0x00, 0x60, 0x30, 0x00, 0x18, 0x06, 0x00, 0x02, 0x00, 0xC0, 0x00, 0xC0, 0x0C, 0x00, 0x30, 0x01, 0x80, 0x06, 0x00, 0x30, 0x01, 0x80, 0x06, 0x00, 0x60, 0x00, 0xC0, 0x0C, 0x00, 0x18, 0x03, 0x00, 0x01, 0x80, 0xC0, 0x00, 0x30, 0x18, 0x00, 0x06, 0x06, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x18, 0x30, 0x00, 0x03, 0x8C, 0x00, 0x00, 0x31, 0x80, 0x00, 0x06, 0x60, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x38, 0x00, 0x00, 0xFF, 0xC0, 0x7F, 0xFF, 0xF8, 0x0F, 0xF8, 0xC0, 0x00, 0x0C, 0x18, 0x00, 0x01, 0x83, 0x00, 0x00, 0x30, 0x60, 0x08, 0x0C, 0x0C, 0x07, 0x01, 0x81, 0x81, 0xE0, 0x30, 0x60, 0x2C, 0x0C, 0x0C, 0x0D, 0x81, 0x81, 0x81, 0x30, 0x30, 0x30, 0x66, 0x0C, 0x06, 0x08, 0xC1, 0x80, 0xC3, 0x0C, 0x30, 0x18, 0x41, 0x8C, 0x03, 0x18, 0x31, 0x80, 0x62, 0x06, 0x30, 0x0C, 0xC0, 0xCC, 0x03, 0x10, 0x19, 0x80, 0x66, 0x03, 0x30, 0x0C, 0x80, 0x6C, 0x01, 0xB0, 0x0D, 0x80, 0x34, 0x01, 0xB0, 0x07, 0x80, 0x3C, 0x00, 0xE0, 0x07, 0x80, 0x1C, 0x00, 0xF0, 0x00, 0x03, 0xF8, 0x03, 0xF8, 0x1F, 0xC0, 0x3F, 0xC0, 0x30, 0x00, 0x30, 0x01, 0xC0, 0x03, 0x00, 0x06, 0x00, 0x30, 0x00, 0x18, 0x03, 0x00, 0x00, 0xE0, 0x30, 0x00, 0x03, 0x03, 0x00, 0x00, 0x1C, 0x30, 0x00, 0x00, 0x63, 0x00, 0x00, 0x03, 0xB0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x36, 0x00, 0x00, 0x03, 0x38, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x03, 0x07, 0x00, 0x00, 0x30, 0x18, 0x00, 0x03, 0x00, 0x60, 0x00, 0x30, 0x03, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x70, 0x03, 0x00, 0x01, 0x80, 0xFF, 0x80, 0xFF, 0x07, 0xFC, 0x07, 0xF8, 0x00, 0x7F, 0x80, 0x7F, 0x7F, 0x00, 0x7F, 0x1C, 0x00, 0x18, 0x0C, 0x00, 0x30, 0x0C, 0x00, 0x70, 0x06, 0x00, 0xE0, 0x06, 0x00, 0xC0, 0x03, 0x01, 0x80, 0x03, 0x03, 0x00, 0x01, 0x86, 0x00, 0x01, 0x8C, 0x00, 0x00, 0xD8, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFC, 0x00, 0x03, 0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x0C, 0x00, 0x30, 0x10, 0x00, 0xC0, 0x60, 0x03, 0x80, 0xC0, 0x0E, 0x01, 0x80, 0x38, 0x03, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x60, 0x18, 0x00, 0xC0, 0x60, 0x01, 0x81, 0x80, 0x02, 0x06, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x60, 0x00, 0x30, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x80, 0x01, 0xFE, 0x03, 0xFC, 0x06, 0x00, 0x08, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x40, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x20, 0x00, 0xFF, 0x01, 0xFE, 0x00, 0xC0, 0x30, 0x0E, 0x01, 0x80, 0x60, 0x18, 0x07, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x80, 0x60, 0x18, 0x06, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0x60, 0x18, 0x06, 0x01, 0x80, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x18, 0x06, 0x01, 0x80, 0x60, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x04, 0x01, 0xFE, 0x03, 0xFC, 0x00, 0x10, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x04, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x08, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x01, 0x80, 0xFF, 0x01, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x07, 0x80, 0x03, 0x60, 0x01, 0x8C, 0x00, 0xC3, 0x80, 0xE0, 0x60, 0x70, 0x1C, 0x38, 0x03, 0x1C, 0x00, 0x6E, 0x00, 0x1F, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x86, 0x0C, 0x18, 0x70, 0xC0, 0x00, 0x3F, 0x80, 0x0F, 0xFF, 0x80, 0x78, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x38, 0x03, 0xFC, 0xC0, 0x7F, 0xFF, 0x07, 0xC0, 0x0C, 0x38, 0x00, 0x31, 0xC0, 0x01, 0xCE, 0x00, 0x06, 0x30, 0x00, 0x18, 0xC0, 0x00, 0xE3, 0x00, 0x07, 0x8E, 0x00, 0x7C, 0x1C, 0x0F, 0x3F, 0x3F, 0xF0, 0xFC, 0x7F, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x30, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x00, 0x00, 0x06, 0x07, 0xE0, 0x00, 0xC3, 0xFF, 0x00, 0x19, 0xC0, 0xF0, 0x03, 0x60, 0x07, 0x00, 0xD8, 0x00, 0x60, 0x1E, 0x00, 0x0E, 0x03, 0x80, 0x00, 0xC0, 0x60, 0x00, 0x18, 0x0C, 0x00, 0x03, 0x03, 0x00, 0x00, 0x60, 0x60, 0x00, 0x0C, 0x0C, 0x00, 0x01, 0x81, 0x80, 0x00, 0x60, 0x70, 0x00, 0x0C, 0x0E, 0x00, 0x03, 0x01, 0xC0, 0x00, 0x60, 0x3C, 0x00, 0x18, 0x05, 0x80, 0x06, 0x01, 0xB8, 0x01, 0x83, 0xF3, 0xC1, 0xE0, 0x7E, 0x3F, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x3F, 0x00, 0x07, 0xFF, 0x30, 0x38, 0x0F, 0xC1, 0x80, 0x1F, 0x0C, 0x00, 0x18, 0x60, 0x00, 0x63, 0x00, 0x01, 0x9C, 0x00, 0x06, 0x60, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xE0, 0x00, 0x01, 0x80, 0x00, 0xC7, 0x00, 0x0E, 0x0F, 0x01, 0xF0, 0x1F, 0xFF, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x10, 0x00, 0x00, 0x18, 0x00, 0xFC, 0x0C, 0x01, 0xFF, 0x86, 0x01, 0xC0, 0xE3, 0x03, 0x80, 0x1B, 0x03, 0x80, 0x05, 0x81, 0x80, 0x03, 0xC1, 0x80, 0x00, 0xE1, 0x80, 0x00, 0x60, 0xC0, 0x00, 0x30, 0x60, 0x00, 0x18, 0x60, 0x00, 0x0C, 0x30, 0x00, 0x06, 0x18, 0x00, 0x02, 0x0C, 0x00, 0x03, 0x06, 0x00, 0x01, 0x83, 0x00, 0x01, 0xC1, 0xC0, 0x01, 0xE0, 0x60, 0x01, 0xE0, 0x38, 0x01, 0xB0, 0x0F, 0x03, 0x9F, 0x03, 0xFF, 0x0F, 0x80, 0x7E, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x07, 0xFF, 0x80, 0x78, 0x0F, 0x03, 0x80, 0x0E, 0x1C, 0x00, 0x18, 0xE0, 0x00, 0x73, 0x00, 0x00, 0xD8, 0x00, 0x03, 0x60, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x60, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x03, 0x07, 0x80, 0xF8, 0x0F, 0xFF, 0x80, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0xFF, 0xF0, 0x00, 0xF0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x18, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x07, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x06, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x0F, 0xFF, 0xFC, 0x03, 0xFF, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0x87, 0xC1, 0xE0, 0xF3, 0xE1, 0xC0, 0x1B, 0x01, 0xC0, 0x07, 0x81, 0xC0, 0x03, 0xC0, 0xC0, 0x00, 0xE0, 0xC0, 0x00, 0x60, 0x60, 0x00, 0x30, 0x60, 0x00, 0x18, 0x30, 0x00, 0x0C, 0x18, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x06, 0x00, 0x03, 0x03, 0x00, 0x03, 0x81, 0xC0, 0x01, 0xC0, 0x60, 0x01, 0xC0, 0x38, 0x03, 0x60, 0x0F, 0x07, 0x30, 0x03, 0xFF, 0x18, 0x00, 0x7E, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x03, 0x80, 0x03, 0xFF, 0x80, 0x01, 0xFF, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x01, 0x83, 0xF0, 0x01, 0x8F, 0xF8, 0x01, 0x98, 0x1C, 0x03, 0xB0, 0x0E, 0x03, 0x40, 0x06, 0x03, 0x80, 0x06, 0x03, 0x00, 0x06, 0x03, 0x00, 0x06, 0x07, 0x00, 0x06, 0x06, 0x00, 0x0E, 0x06, 0x00, 0x0E, 0x06, 0x00, 0x0E, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x0C, 0x0C, 0x00, 0x1C, 0x0C, 0x00, 0x1C, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x18, 0xFF, 0x01, 0xFF, 0xFF, 0x01, 0xFF, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x1F, 0xF0, 0x00, 0x06, 0x00, 0x01, 0xC0, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x1C, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x06, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0x03, 0xFF, 0xF0, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x0C, 0x00, 0x00, 0xC0, 0x00, 0x0C, 0x00, 0x01, 0xC0, 0x00, 0x18, 0x00, 0x01, 0x80, 0x00, 0x18, 0x00, 0x01, 0x80, 0x00, 0x38, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0xFF, 0xF0, 0x0F, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0xC1, 0xFF, 0x00, 0x80, 0x70, 0x01, 0x80, 0xC0, 0x01, 0x83, 0x80, 0x01, 0x87, 0x00, 0x01, 0x8C, 0x00, 0x03, 0x38, 0x00, 0x03, 0x70, 0x00, 0x03, 0xF8, 0x00, 0x03, 0x9C, 0x00, 0x03, 0x0C, 0x00, 0x06, 0x0E, 0x00, 0x06, 0x07, 0x00, 0x06, 0x03, 0x80, 0x06, 0x01, 0x80, 0x04, 0x00, 0xC0, 0x0C, 0x00, 0xE0, 0xFC, 0x03, 0xFE, 0xFC, 0x03, 0xFC, 0x01, 0xFF, 0x00, 0x3F, 0xE0, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x70, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x1E, 0x07, 0x81, 0xE7, 0xE1, 0xF8, 0x3D, 0x8E, 0xE3, 0x81, 0xE0, 0xF8, 0x30, 0x38, 0x1E, 0x06, 0x06, 0x03, 0x80, 0xC1, 0x80, 0x60, 0x18, 0x30, 0x0C, 0x03, 0x06, 0x01, 0x80, 0x60, 0xC0, 0x30, 0x08, 0x18, 0x0C, 0x03, 0x06, 0x01, 0x80, 0x60, 0xC0, 0x30, 0x0C, 0x18, 0x06, 0x01, 0x83, 0x00, 0x80, 0x60, 0x40, 0x30, 0x0C, 0x18, 0x06, 0x01, 0x83, 0x00, 0xC0, 0x30, 0x60, 0x18, 0x06, 0x7F, 0x03, 0xC1, 0xFF, 0xE0, 0xF8, 0x3E, 0x00, 0x03, 0xE0, 0x1F, 0x1F, 0xF0, 0x3E, 0x60, 0x70, 0x0F, 0x80, 0x70, 0x3C, 0x00, 0x60, 0x70, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03, 0x07, 0x00, 0x06, 0x0C, 0x00, 0x1C, 0x18, 0x00, 0x30, 0x30, 0x00, 0x60, 0x60, 0x00, 0xC1, 0xC0, 0x01, 0x83, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x70, 0x00, 0x67, 0xFC, 0x07, 0xFF, 0xF0, 0x0F, 0xE0, 0x00, 0x3F, 0x00, 0x07, 0xFF, 0x00, 0x3C, 0x0F, 0x01, 0xC0, 0x1C, 0x0C, 0x00, 0x38, 0x60, 0x00, 0x63, 0x00, 0x00, 0xDC, 0x00, 0x03, 0x60, 0x00, 0x0D, 0x80, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x1B, 0x00, 0x00, 0x6C, 0x00, 0x03, 0xB0, 0x00, 0x0C, 0x60, 0x00, 0x61, 0xC0, 0x03, 0x03, 0x80, 0x38, 0x0F, 0x03, 0xC0, 0x0F, 0xFE, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x1F, 0x8F, 0xFE, 0x00, 0xFC, 0xE0, 0x78, 0x00, 0xCC, 0x00, 0xE0, 0x06, 0xC0, 0x03, 0x00, 0x3C, 0x00, 0x1C, 0x01, 0xC0, 0x00, 0x60, 0x0C, 0x00, 0x03, 0x00, 0xE0, 0x00, 0x18, 0x06, 0x00, 0x00, 0xC0, 0x30, 0x00, 0x06, 0x01, 0x80, 0x00, 0x30, 0x0C, 0x00, 0x03, 0x00, 0xE0, 0x00, 0x18, 0x07, 0x00, 0x01, 0x80, 0x3C, 0x00, 0x1C, 0x01, 0xE0, 0x01, 0xC0, 0x0D, 0x80, 0x1C, 0x00, 0xCF, 0x03, 0xC0, 0x06, 0x3F, 0xF8, 0x00, 0x30, 0x7F, 0x00, 0x01, 0x80, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7F, 0xE1, 0xF0, 0x78, 0x1C, 0xFC, 0x38, 0x01, 0xB0, 0x1C, 0x00, 0x2C, 0x0E, 0x00, 0x0F, 0x03, 0x00, 0x01, 0xC1, 0x80, 0x00, 0x60, 0x60, 0x00, 0x18, 0x30, 0x00, 0x06, 0x0C, 0x00, 0x01, 0x83, 0x00, 0x00, 0x60, 0xC0, 0x00, 0x30, 0x30, 0x00, 0x0C, 0x0C, 0x00, 0x07, 0x03, 0x80, 0x03, 0xC0, 0x60, 0x01, 0xB0, 0x1C, 0x00, 0xD8, 0x03, 0xC0, 0xE6, 0x00, 0x7F, 0xF1, 0x80, 0x07, 0xE0, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x1F, 0xFE, 0x00, 0x07, 0xF0, 0x3E, 0x03, 0xF8, 0x7F, 0xC0, 0x18, 0xF0, 0x60, 0x0C, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x38, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x80, 0x00, 0x01, 0x80, 0x00, 0x3F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x0F, 0xFE, 0xC0, 0xF0, 0x3E, 0x0E, 0x00, 0x70, 0xE0, 0x01, 0x06, 0x00, 0x08, 0x30, 0x00, 0x41, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0xCC, 0x00, 0x06, 0x60, 0x00, 0x33, 0x00, 0x03, 0x3C, 0x00, 0x71, 0xF8, 0x0F, 0x0D, 0xFF, 0xF0, 0x01, 0xFC, 0x00, 0x03, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x70, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0x00, 0x06, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0xE0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x03, 0x38, 0x0F, 0x9F, 0xFF, 0x03, 0xF8, 0x00, 0xFC, 0x03, 0xFF, 0xE0, 0x1F, 0xC6, 0x00, 0x0C, 0x30, 0x00, 0x61, 0x80, 0x03, 0x0C, 0x00, 0x18, 0x60, 0x01, 0x86, 0x00, 0x0C, 0x30, 0x00, 0x61, 0x80, 0x03, 0x0C, 0x00, 0x18, 0x60, 0x01, 0x86, 0x00, 0x0C, 0x30, 0x00, 0x61, 0x80, 0x03, 0x0C, 0x00, 0x38, 0x60, 0x07, 0x83, 0x80, 0x6C, 0x1E, 0x1E, 0x7C, 0x7F, 0xE3, 0xE0, 0xF8, 0x00, 0x00, 0x7F, 0xC0, 0xFF, 0xFF, 0xF0, 0x3F, 0xF1, 0xC0, 0x00, 0xC0, 0x30, 0x00, 0x60, 0x0C, 0x00, 0x18, 0x03, 0x00, 0x0C, 0x00, 0xE0, 0x06, 0x00, 0x18, 0x01, 0x80, 0x06, 0x00, 0xC0, 0x01, 0x80, 0x30, 0x00, 0x60, 0x18, 0x00, 0x0C, 0x0C, 0x00, 0x03, 0x03, 0x00, 0x00, 0xC1, 0x80, 0x00, 0x30, 0xC0, 0x00, 0x06, 0x30, 0x00, 0x01, 0x98, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0x80, 0x00, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0x3F, 0xCC, 0x00, 0x03, 0x06, 0x00, 0x01, 0x83, 0x00, 0x01, 0x81, 0x81, 0x80, 0xC0, 0xC1, 0xE0, 0x60, 0x60, 0xF0, 0x60, 0x30, 0xD8, 0x30, 0x18, 0x6C, 0x30, 0x0C, 0x66, 0x18, 0x06, 0x33, 0x18, 0x03, 0x31, 0x8C, 0x01, 0x98, 0x66, 0x00, 0xD8, 0x36, 0x00, 0x6C, 0x1B, 0x00, 0x3C, 0x0F, 0x00, 0x1E, 0x07, 0x80, 0x0E, 0x03, 0x80, 0x07, 0x01, 0xC0, 0x00, 0x07, 0xF0, 0x3F, 0xC3, 0xFC, 0x0F, 0xF0, 0x38, 0x00, 0x60, 0x07, 0x00, 0x70, 0x00, 0xE0, 0x38, 0x00, 0x18, 0x1C, 0x00, 0x03, 0x0C, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xDC, 0x00, 0x00, 0xE3, 0x80, 0x00, 0x70, 0x70, 0x00, 0x38, 0x0E, 0x00, 0x18, 0x01, 0x80, 0x1C, 0x00, 0x30, 0x0E, 0x00, 0x0E, 0x0F, 0xF0, 0x3F, 0xE3, 0xFC, 0x0F, 0xF8, 0x03, 0xF8, 0x07, 0xF8, 0x3F, 0xC0, 0x3F, 0xC0, 0x60, 0x00, 0x30, 0x01, 0x80, 0x01, 0x80, 0x0C, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x03, 0x80, 0x0C, 0x00, 0x0C, 0x00, 0xC0, 0x00, 0x60, 0x0C, 0x00, 0x03, 0x00, 0x60, 0x00, 0x0C, 0x06, 0x00, 0x00, 0x60, 0x60, 0x00, 0x03, 0x06, 0x00, 0x00, 0x1C, 0x30, 0x00, 0x00, 0x63, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x19, 0x80, 0x00, 0x00, 0x78, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xF8, 0x3F, 0xFF, 0xC3, 0x00, 0x0C, 0x18, 0x00, 0xC0, 0xC0, 0x0C, 0x00, 0x00, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x18, 0x00, 0x01, 0x80, 0x00, 0x18, 0x00, 0x01, 0x80, 0x0C, 0x18, 0x00, 0x61, 0x80, 0x02, 0x1F, 0xFF, 0xF0, 0xFF, 0xFF, 0x80, 0x00, 0x0E, 0x00, 0x7C, 0x01, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x01, 0xC0, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x60, 0x01, 0xC0, 0x0F, 0x00, 0xF8, 0x01, 0xF0, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x03, 0x80, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0xE0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x01, 0x80, 0xC0, 0x60, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x40, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0xC0, 0x60, 0x30, 0x18, 0x08, 0x0C, 0x06, 0x03, 0x01, 0x80, 0x80, 0xC0, 0x60, 0x30, 0x00, 0x01, 0xC0, 0x03, 0xC0, 0x01, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x38, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x7C, 0x03, 0xC0, 0x0E, 0x00, 0x18, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x03, 0x00, 0x0E, 0x00, 0xF8, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x01, 0xFC, 0x03, 0x70, 0xE0, 0x7E, 0x07, 0x1E, 0xC0, 0x3F, 0x80, 0x01, 0xE0}; const GFXglyph FreeMonoOblique24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 28, 0, 1}, // 0x20 ' ' {0, 10, 30, 28, 12, -28}, // 0x21 '!' {38, 16, 14, 28, 10, -28}, // 0x22 '"' {66, 22, 32, 28, 6, -29}, // 0x23 '#' {154, 21, 33, 28, 6, -29}, // 0x24 '$' {241, 22, 29, 28, 6, -27}, // 0x25 '%' {321, 19, 25, 28, 6, -23}, // 0x26 '&' {381, 7, 14, 28, 16, -28}, // 0x27 ''' {394, 11, 34, 28, 16, -27}, // 0x28 '(' {441, 11, 34, 28, 7, -27}, // 0x29 ')' {488, 18, 17, 28, 10, -28}, // 0x2A '*' {527, 22, 22, 28, 6, -23}, // 0x2B '+' {588, 12, 14, 28, 5, -6}, // 0x2C ',' {609, 22, 2, 28, 6, -13}, // 0x2D '-' {615, 7, 6, 28, 11, -4}, // 0x2E '.' {621, 24, 35, 28, 5, -30}, // 0x2F '/' {726, 20, 30, 28, 7, -28}, // 0x30 '0' {801, 17, 29, 28, 6, -28}, // 0x31 '1' {863, 23, 29, 28, 4, -28}, // 0x32 '2' {947, 22, 30, 28, 5, -28}, // 0x33 '3' {1030, 19, 28, 28, 7, -27}, // 0x34 '4' {1097, 21, 29, 28, 6, -27}, // 0x35 '5' {1174, 21, 30, 28, 9, -28}, // 0x36 '6' {1253, 18, 28, 28, 10, -27}, // 0x37 '7' {1316, 20, 30, 28, 7, -28}, // 0x38 '8' {1391, 22, 30, 28, 6, -28}, // 0x39 '9' {1474, 10, 21, 28, 11, -19}, // 0x3A ':' {1501, 15, 27, 28, 5, -19}, // 0x3B ';' {1552, 23, 22, 28, 6, -23}, // 0x3C '<' {1616, 25, 9, 28, 4, -17}, // 0x3D '=' {1645, 24, 22, 28, 4, -23}, // 0x3E '>' {1711, 16, 28, 28, 11, -26}, // 0x3F '?' {1767, 19, 32, 28, 7, -28}, // 0x40 '@' {1843, 27, 26, 28, 1, -25}, // 0x41 'A' {1931, 26, 26, 28, 2, -25}, // 0x42 'B' {2016, 25, 28, 28, 5, -26}, // 0x43 'C' {2104, 26, 26, 28, 2, -25}, // 0x44 'D' {2189, 27, 26, 28, 2, -25}, // 0x45 'E' {2277, 28, 26, 28, 2, -25}, // 0x46 'F' {2368, 25, 28, 28, 5, -26}, // 0x47 'G' {2456, 27, 26, 28, 3, -25}, // 0x48 'H' {2544, 22, 26, 28, 6, -25}, // 0x49 'I' {2616, 28, 27, 28, 5, -25}, // 0x4A 'J' {2711, 29, 26, 28, 2, -25}, // 0x4B 'K' {2806, 25, 26, 28, 3, -25}, // 0x4C 'L' {2888, 32, 26, 28, 1, -25}, // 0x4D 'M' {2992, 30, 26, 28, 2, -25}, // 0x4E 'N' {3090, 24, 28, 28, 5, -26}, // 0x4F 'O' {3174, 26, 26, 28, 2, -25}, // 0x50 'P' {3259, 24, 32, 28, 5, -26}, // 0x51 'Q' {3355, 26, 26, 28, 2, -25}, // 0x52 'R' {3440, 24, 28, 28, 5, -26}, // 0x53 'S' {3524, 24, 26, 28, 7, -25}, // 0x54 'T' {3602, 26, 27, 28, 6, -25}, // 0x55 'U' {3690, 27, 26, 28, 6, -25}, // 0x56 'V' {3778, 27, 26, 28, 6, -25}, // 0x57 'W' {3866, 29, 26, 28, 2, -25}, // 0x58 'X' {3961, 24, 26, 28, 7, -25}, // 0x59 'Y' {4039, 23, 26, 28, 5, -25}, // 0x5A 'Z' {4114, 15, 34, 28, 12, -27}, // 0x5B '[' {4178, 10, 35, 28, 12, -30}, // 0x5C '\' {4222, 15, 34, 28, 6, -27}, // 0x5D ']' {4286, 18, 12, 28, 9, -28}, // 0x5E '^' {4313, 28, 2, 28, -1, 5}, // 0x5F '_' {4320, 6, 7, 28, 13, -29}, // 0x60 '`' {4326, 22, 22, 28, 4, -20}, // 0x61 'a' {4387, 27, 29, 28, 1, -27}, // 0x62 'b' {4485, 22, 22, 28, 6, -20}, // 0x63 'c' {4546, 25, 29, 28, 5, -27}, // 0x64 'd' {4637, 22, 22, 28, 5, -20}, // 0x65 'e' {4698, 26, 28, 28, 5, -27}, // 0x66 'f' {4789, 25, 30, 28, 5, -20}, // 0x67 'g' {4883, 24, 28, 28, 3, -27}, // 0x68 'h' {4967, 19, 29, 28, 5, -28}, // 0x69 'i' {5036, 20, 38, 28, 4, -28}, // 0x6A 'j' {5131, 24, 28, 28, 3, -27}, // 0x6B 'k' {5215, 19, 28, 28, 5, -27}, // 0x6C 'l' {5282, 27, 21, 28, 1, -20}, // 0x6D 'm' {5353, 23, 21, 28, 3, -20}, // 0x6E 'n' {5414, 22, 22, 28, 5, -20}, // 0x6F 'o' {5475, 29, 30, 28, -1, -20}, // 0x70 'p' {5584, 26, 30, 28, 5, -20}, // 0x71 'q' {5682, 25, 20, 28, 4, -19}, // 0x72 'r' {5745, 21, 22, 28, 5, -20}, // 0x73 's' {5803, 17, 27, 28, 7, -25}, // 0x74 't' {5861, 21, 21, 28, 6, -19}, // 0x75 'u' {5917, 26, 20, 28, 5, -19}, // 0x76 'v' {5982, 25, 20, 28, 6, -19}, // 0x77 'w' {6045, 26, 20, 28, 3, -19}, // 0x78 'x' {6110, 29, 29, 28, 1, -19}, // 0x79 'y' {6216, 21, 20, 28, 5, -19}, // 0x7A 'z' {6269, 15, 34, 28, 10, -27}, // 0x7B '{' {6333, 9, 35, 28, 12, -28}, // 0x7C '|' {6373, 15, 34, 28, 8, -27}, // 0x7D '}' {6437, 20, 6, 28, 7, -15}}; // 0x7E '~' const GFXfont FreeMonoOblique24pt7b PROGMEM = { (uint8_t *)FreeMonoOblique24pt7bBitmaps, (GFXglyph *)FreeMonoOblique24pt7bGlyphs, 0x20, 0x7E, 47}; // Approx. 7124 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeMonoOblique9pt7b.h ================================================ const uint8_t FreeMonoOblique9pt7bBitmaps[] PROGMEM = { 0x11, 0x22, 0x24, 0x40, 0x00, 0xC0, 0xDE, 0xE5, 0x29, 0x00, 0x09, 0x05, 0x02, 0x82, 0x47, 0xF8, 0xA0, 0x51, 0xFE, 0x28, 0x14, 0x0A, 0x09, 0x00, 0x08, 0x1D, 0x23, 0x40, 0x70, 0x1C, 0x02, 0x82, 0x84, 0x78, 0x20, 0x20, 0x1C, 0x11, 0x08, 0x83, 0x80, 0x18, 0x71, 0xC0, 0x1C, 0x11, 0x08, 0x83, 0x80, 0x1E, 0x60, 0x81, 0x03, 0x0A, 0x65, 0x46, 0x88, 0xE8, 0xFA, 0x80, 0x12, 0x24, 0x48, 0x88, 0x88, 0x88, 0x80, 0x01, 0x11, 0x11, 0x11, 0x22, 0x44, 0x80, 0x10, 0x22, 0x5B, 0xC3, 0x0A, 0x22, 0x00, 0x04, 0x02, 0x02, 0x1F, 0xF0, 0x80, 0x40, 0x20, 0x00, 0x36, 0x4C, 0x80, 0xFF, 0x80, 0xF0, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x00, 0x1C, 0x45, 0x0A, 0x18, 0x30, 0x61, 0x42, 0x85, 0x11, 0xC0, 0x04, 0x38, 0x90, 0x20, 0x81, 0x02, 0x04, 0x08, 0x23, 0xF8, 0x07, 0x04, 0xC4, 0x20, 0x10, 0x10, 0x30, 0x20, 0x20, 0x60, 0x40, 0x3F, 0x80, 0x0F, 0x00, 0x40, 0x20, 0x20, 0x60, 0x18, 0x04, 0x02, 0x01, 0x43, 0x1E, 0x00, 0x03, 0x05, 0x0A, 0x12, 0x22, 0x22, 0x42, 0x7F, 0x04, 0x04, 0x1E, 0x1F, 0x88, 0x08, 0x05, 0xC3, 0x30, 0x08, 0x04, 0x02, 0x02, 0x42, 0x1E, 0x00, 0x07, 0x18, 0x20, 0x40, 0x5C, 0xA6, 0xC2, 0x82, 0x82, 0xC4, 0x78, 0xFF, 0x04, 0x10, 0x20, 0x82, 0x04, 0x10, 0x20, 0x81, 0x00, 0x1E, 0x23, 0x41, 0x41, 0x62, 0x1C, 0x66, 0x82, 0x82, 0x84, 0x78, 0x1E, 0x23, 0x41, 0x41, 0x43, 0x65, 0x3A, 0x02, 0x04, 0x18, 0xE0, 0x6C, 0x00, 0x36, 0x18, 0xC0, 0x00, 0x19, 0x8C, 0xC4, 0x00, 0x01, 0x83, 0x06, 0x0C, 0x06, 0x00, 0x80, 0x30, 0x04, 0xFF, 0x80, 0x00, 0x1F, 0xF0, 0x20, 0x0C, 0x01, 0x00, 0x60, 0x20, 0x60, 0xC1, 0x80, 0x3D, 0x8E, 0x08, 0x10, 0xC6, 0x08, 0x00, 0x01, 0x80, 0x1C, 0x45, 0x0A, 0x79, 0x34, 0x69, 0x4E, 0x81, 0x03, 0x03, 0xC0, 0x0F, 0x00, 0x60, 0x12, 0x02, 0x40, 0x88, 0x21, 0x07, 0xE1, 0x04, 0x20, 0x5E, 0x3C, 0x3F, 0x84, 0x11, 0x04, 0x82, 0x3F, 0x88, 0x32, 0x04, 0x81, 0x60, 0xBF, 0xC0, 0x1E, 0x98, 0xD0, 0x28, 0x08, 0x04, 0x02, 0x01, 0x00, 0x41, 0x1F, 0x00, 0x3F, 0x0C, 0x22, 0x04, 0x81, 0x20, 0x48, 0x12, 0x09, 0x02, 0x43, 0x3F, 0x00, 0x3F, 0xC4, 0x11, 0x00, 0x88, 0x3E, 0x08, 0x82, 0x00, 0x82, 0x60, 0xBF, 0xE0, 0x3F, 0xE2, 0x08, 0x40, 0x11, 0x03, 0xE0, 0x44, 0x08, 0x01, 0x00, 0x60, 0x1F, 0x00, 0x1E, 0x98, 0xD0, 0x08, 0x08, 0x04, 0x7A, 0x05, 0x02, 0x41, 0x1F, 0x00, 0x3D, 0xE2, 0x18, 0x42, 0x08, 0x43, 0xF8, 0x41, 0x08, 0x21, 0x08, 0x21, 0x1E, 0xF0, 0x3F, 0x82, 0x02, 0x01, 0x00, 0x80, 0x40, 0x20, 0x20, 0x10, 0x7F, 0x00, 0x0F, 0xE0, 0x20, 0x04, 0x00, 0x80, 0x10, 0x02, 0x20, 0x84, 0x10, 0x84, 0x0F, 0x00, 0x3C, 0xE2, 0x10, 0x44, 0x11, 0x02, 0xC0, 0x64, 0x08, 0x81, 0x08, 0x61, 0x1E, 0x38, 0x3E, 0x02, 0x00, 0x80, 0x20, 0x10, 0x04, 0x01, 0x04, 0x42, 0x10, 0xBF, 0xE0, 0x38, 0x38, 0xC3, 0x05, 0x28, 0x29, 0x42, 0x52, 0x13, 0x10, 0x99, 0x84, 0x08, 0x20, 0x47, 0x8F, 0x00, 0x70, 0xE6, 0x08, 0xA1, 0x14, 0x22, 0x48, 0x49, 0x11, 0x22, 0x14, 0x43, 0x1E, 0x20, 0x1E, 0x18, 0x90, 0x28, 0x18, 0x0C, 0x06, 0x05, 0x02, 0x46, 0x1E, 0x00, 0x3F, 0x84, 0x31, 0x04, 0x81, 0x20, 0x8F, 0xC2, 0x00, 0x80, 0x60, 0x3E, 0x00, 0x1E, 0x18, 0x90, 0x28, 0x18, 0x0C, 0x06, 0x05, 0x02, 0x46, 0x1E, 0x08, 0x0F, 0x44, 0x60, 0x3F, 0x84, 0x31, 0x04, 0x81, 0x20, 0x8F, 0xC2, 0x10, 0x84, 0x60, 0xBC, 0x10, 0x0F, 0x88, 0xC8, 0x24, 0x01, 0x80, 0x38, 0x05, 0x02, 0xC2, 0x5E, 0x00, 0xFF, 0xC4, 0x44, 0x02, 0x01, 0x00, 0x80, 0x40, 0x60, 0x20, 0x7E, 0x00, 0xF1, 0xD0, 0x24, 0x09, 0x02, 0x41, 0xA0, 0x48, 0x12, 0x04, 0xC6, 0x1F, 0x00, 0xF1, 0xE8, 0x11, 0x02, 0x20, 0x82, 0x20, 0x44, 0x09, 0x01, 0x40, 0x28, 0x02, 0x00, 0xF1, 0xE8, 0x09, 0x12, 0x26, 0x45, 0x48, 0xAA, 0x29, 0x45, 0x28, 0xC6, 0x18, 0xC0, 0x38, 0xE2, 0x08, 0x26, 0x05, 0x00, 0x40, 0x18, 0x04, 0x81, 0x08, 0x41, 0x1C, 0x70, 0xE3, 0xA0, 0x90, 0x84, 0x81, 0x80, 0x80, 0x40, 0x20, 0x20, 0x7E, 0x00, 0x3F, 0x90, 0x88, 0x80, 0x80, 0x80, 0x80, 0x80, 0x82, 0x82, 0x7F, 0x00, 0x39, 0x08, 0x44, 0x21, 0x08, 0x42, 0x21, 0x0E, 0x00, 0x88, 0x44, 0x44, 0x22, 0x22, 0x11, 0x11, 0x38, 0x42, 0x11, 0x08, 0x42, 0x10, 0x84, 0x2E, 0x00, 0x08, 0x28, 0x92, 0x18, 0x20, 0xFF, 0xC0, 0xA4, 0x3E, 0x00, 0x80, 0x47, 0xA4, 0x34, 0x12, 0x18, 0xF7, 0x38, 0x01, 0x00, 0x40, 0x09, 0xE1, 0xC6, 0x20, 0x44, 0x09, 0x01, 0x30, 0x46, 0x13, 0xBC, 0x00, 0x1F, 0x48, 0x74, 0x0A, 0x00, 0x80, 0x20, 0x0C, 0x18, 0xF8, 0x01, 0x80, 0x40, 0x23, 0x96, 0x32, 0x0A, 0x05, 0x02, 0x81, 0x61, 0x1F, 0xE0, 0x1F, 0x30, 0xD0, 0x3F, 0xF8, 0x04, 0x01, 0x00, 0x7C, 0x07, 0xC3, 0x00, 0x80, 0xFE, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x08, 0x0F, 0xE0, 0x1D, 0xD8, 0xC4, 0x12, 0x04, 0x82, 0x20, 0x8C, 0x61, 0xE8, 0x02, 0x01, 0x07, 0x80, 0x30, 0x04, 0x01, 0x00, 0x5C, 0x38, 0x88, 0x22, 0x08, 0x82, 0x21, 0x18, 0x4F, 0x3C, 0x04, 0x04, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 0xFF, 0x01, 0x00, 0x80, 0x03, 0xF0, 0x10, 0x08, 0x04, 0x02, 0x02, 0x01, 0x00, 0x80, 0x40, 0x47, 0xC0, 0x38, 0x08, 0x04, 0x02, 0x71, 0x20, 0xA0, 0xA0, 0x68, 0x24, 0x11, 0x38, 0xE0, 0x3C, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 0xFF, 0x3E, 0xE2, 0x64, 0x88, 0x91, 0x12, 0x24, 0x48, 0x91, 0x17, 0x33, 0x37, 0x14, 0x4C, 0x24, 0x12, 0x09, 0x08, 0x85, 0xE3, 0x1E, 0x10, 0x90, 0x30, 0x18, 0x0C, 0x0B, 0x08, 0x78, 0x33, 0xC3, 0x8C, 0x40, 0x88, 0x12, 0x02, 0x60, 0x8C, 0x31, 0x78, 0x20, 0x08, 0x03, 0xE0, 0x00, 0x1C, 0xD8, 0xC4, 0x12, 0x04, 0x81, 0x20, 0x4C, 0x21, 0xF8, 0x02, 0x00, 0x81, 0xF0, 0x73, 0x8E, 0x04, 0x04, 0x02, 0x01, 0x00, 0x81, 0xFC, 0x1F, 0x61, 0x40, 0x3C, 0x03, 0x81, 0x82, 0xFC, 0x10, 0x63, 0xF9, 0x02, 0x04, 0x10, 0x20, 0x40, 0x7C, 0xE3, 0x10, 0x90, 0x48, 0x24, 0x22, 0x11, 0x18, 0xF6, 0xF3, 0xD0, 0x44, 0x10, 0x88, 0x24, 0x09, 0x02, 0x80, 0x40, 0xE1, 0xD0, 0x24, 0x91, 0x24, 0x55, 0x19, 0x86, 0x61, 0x10, 0x39, 0xC4, 0x20, 0xB0, 0x30, 0x0C, 0x04, 0x86, 0x13, 0x8E, 0x3C, 0x71, 0x04, 0x10, 0x40, 0x88, 0x09, 0x00, 0xA0, 0x06, 0x00, 0x40, 0x08, 0x01, 0x00, 0xFC, 0x00, 0x7F, 0x42, 0x04, 0x08, 0x10, 0x20, 0x42, 0xFE, 0x0C, 0x41, 0x04, 0x30, 0x8C, 0x08, 0x21, 0x04, 0x10, 0x60, 0x24, 0x94, 0x92, 0x52, 0x40, 0x18, 0x20, 0x82, 0x10, 0x40, 0xC4, 0x10, 0x82, 0x08, 0xC0, 0x61, 0x24, 0x30}; const GFXglyph FreeMonoOblique9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 11, 0, 1}, // 0x20 ' ' {0, 4, 11, 11, 4, -10}, // 0x21 '!' {6, 5, 5, 11, 4, -10}, // 0x22 '"' {10, 9, 12, 11, 2, -10}, // 0x23 '#' {24, 8, 12, 11, 3, -10}, // 0x24 '$' {36, 9, 11, 11, 2, -10}, // 0x25 '%' {49, 7, 10, 11, 2, -9}, // 0x26 '&' {58, 2, 5, 11, 6, -10}, // 0x27 ''' {60, 4, 13, 11, 6, -10}, // 0x28 '(' {67, 4, 13, 11, 3, -10}, // 0x29 ')' {74, 7, 7, 11, 4, -10}, // 0x2A '*' {81, 9, 8, 11, 2, -8}, // 0x2B '+' {90, 4, 5, 11, 2, -1}, // 0x2C ',' {93, 9, 1, 11, 2, -5}, // 0x2D '-' {95, 2, 2, 11, 4, -1}, // 0x2E '.' {96, 9, 13, 11, 2, -11}, // 0x2F '/' {111, 7, 11, 11, 3, -10}, // 0x30 '0' {121, 7, 11, 11, 2, -10}, // 0x31 '1' {131, 9, 11, 11, 2, -10}, // 0x32 '2' {144, 9, 11, 11, 2, -10}, // 0x33 '3' {157, 8, 11, 11, 2, -10}, // 0x34 '4' {168, 9, 11, 11, 2, -10}, // 0x35 '5' {181, 8, 11, 11, 3, -10}, // 0x36 '6' {192, 7, 11, 11, 4, -10}, // 0x37 '7' {202, 8, 11, 11, 3, -10}, // 0x38 '8' {213, 8, 11, 11, 3, -10}, // 0x39 '9' {224, 3, 8, 11, 4, -7}, // 0x3A ':' {227, 5, 11, 11, 2, -7}, // 0x3B ';' {234, 9, 8, 11, 2, -8}, // 0x3C '<' {243, 9, 4, 11, 2, -6}, // 0x3D '=' {248, 9, 8, 11, 2, -8}, // 0x3E '>' {257, 7, 10, 11, 4, -9}, // 0x3F '?' {266, 7, 12, 11, 3, -10}, // 0x40 '@' {277, 11, 10, 11, 0, -9}, // 0x41 'A' {291, 10, 10, 11, 1, -9}, // 0x42 'B' {304, 9, 10, 11, 2, -9}, // 0x43 'C' {316, 10, 10, 11, 1, -9}, // 0x44 'D' {329, 10, 10, 11, 1, -9}, // 0x45 'E' {342, 11, 10, 11, 1, -9}, // 0x46 'F' {356, 9, 10, 11, 2, -9}, // 0x47 'G' {368, 11, 10, 11, 1, -9}, // 0x48 'H' {382, 9, 10, 11, 2, -9}, // 0x49 'I' {394, 11, 10, 11, 2, -9}, // 0x4A 'J' {408, 11, 10, 11, 1, -9}, // 0x4B 'K' {422, 10, 10, 11, 1, -9}, // 0x4C 'L' {435, 13, 10, 11, 0, -9}, // 0x4D 'M' {452, 11, 10, 11, 1, -9}, // 0x4E 'N' {466, 9, 10, 11, 2, -9}, // 0x4F 'O' {478, 10, 10, 11, 1, -9}, // 0x50 'P' {491, 9, 13, 11, 2, -9}, // 0x51 'Q' {506, 10, 10, 11, 1, -9}, // 0x52 'R' {519, 9, 10, 11, 2, -9}, // 0x53 'S' {531, 9, 10, 11, 3, -9}, // 0x54 'T' {543, 10, 10, 11, 2, -9}, // 0x55 'U' {556, 11, 10, 11, 2, -9}, // 0x56 'V' {570, 11, 10, 11, 2, -9}, // 0x57 'W' {584, 11, 10, 11, 1, -9}, // 0x58 'X' {598, 9, 10, 11, 3, -9}, // 0x59 'Y' {610, 9, 10, 11, 2, -9}, // 0x5A 'Z' {622, 5, 13, 11, 5, -10}, // 0x5B '[' {631, 4, 14, 11, 4, -11}, // 0x5C '\' {638, 5, 13, 11, 2, -10}, // 0x5D ']' {647, 7, 5, 11, 3, -10}, // 0x5E '^' {652, 11, 1, 11, 0, 2}, // 0x5F '_' {654, 2, 3, 11, 5, -11}, // 0x60 '`' {655, 9, 8, 11, 2, -7}, // 0x61 'a' {664, 11, 11, 11, 0, -10}, // 0x62 'b' {680, 10, 8, 11, 2, -7}, // 0x63 'c' {690, 9, 11, 11, 2, -10}, // 0x64 'd' {703, 9, 8, 11, 2, -7}, // 0x65 'e' {712, 10, 11, 11, 2, -10}, // 0x66 'f' {726, 10, 11, 11, 2, -7}, // 0x67 'g' {740, 10, 11, 11, 1, -10}, // 0x68 'h' {754, 8, 11, 11, 2, -10}, // 0x69 'i' {765, 9, 14, 11, 1, -10}, // 0x6A 'j' {781, 9, 11, 11, 1, -10}, // 0x6B 'k' {794, 8, 11, 11, 2, -10}, // 0x6C 'l' {805, 11, 8, 11, 0, -7}, // 0x6D 'm' {816, 9, 8, 11, 1, -7}, // 0x6E 'n' {825, 9, 8, 11, 2, -7}, // 0x6F 'o' {834, 11, 11, 11, 0, -7}, // 0x70 'p' {850, 10, 11, 11, 2, -7}, // 0x71 'q' {864, 9, 8, 11, 2, -7}, // 0x72 'r' {873, 8, 8, 11, 2, -7}, // 0x73 's' {881, 7, 10, 11, 2, -9}, // 0x74 't' {890, 9, 8, 11, 2, -7}, // 0x75 'u' {899, 10, 8, 11, 2, -7}, // 0x76 'v' {909, 10, 8, 11, 2, -7}, // 0x77 'w' {919, 10, 8, 11, 1, -7}, // 0x78 'x' {929, 12, 11, 11, 0, -7}, // 0x79 'y' {946, 8, 8, 11, 2, -7}, // 0x7A 'z' {954, 6, 13, 11, 4, -10}, // 0x7B '{' {964, 3, 12, 11, 5, -9}, // 0x7C '|' {969, 6, 13, 11, 3, -10}, // 0x7D '}' {979, 7, 3, 11, 3, -6}}; // 0x7E '~' const GFXfont FreeMonoOblique9pt7b PROGMEM = { (uint8_t *)FreeMonoOblique9pt7bBitmaps, (GFXglyph *)FreeMonoOblique9pt7bGlyphs, 0x20, 0x7E, 18}; // Approx. 1654 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSans12pt7b.h ================================================ const uint8_t FreeSans12pt7bBitmaps[] PROGMEM = { 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xCF, 0x3C, 0xF3, 0x8A, 0x20, 0x06, 0x30, 0x31, 0x03, 0x18, 0x18, 0xC7, 0xFF, 0xBF, 0xFC, 0x31, 0x03, 0x18, 0x18, 0xC7, 0xFF, 0xBF, 0xFC, 0x31, 0x01, 0x18, 0x18, 0xC0, 0xC6, 0x06, 0x30, 0x04, 0x03, 0xE1, 0xFF, 0x72, 0x6C, 0x47, 0x88, 0xF1, 0x07, 0x20, 0x7E, 0x03, 0xF0, 0x17, 0x02, 0x3C, 0x47, 0x88, 0xF1, 0x1B, 0x26, 0x7F, 0xC3, 0xE0, 0x10, 0x02, 0x00, 0x00, 0x06, 0x03, 0xC0, 0x40, 0x7E, 0x0C, 0x0E, 0x70, 0x80, 0xC3, 0x18, 0x0C, 0x31, 0x00, 0xE7, 0x30, 0x07, 0xE6, 0x00, 0x3C, 0x40, 0x00, 0x0C, 0x7C, 0x00, 0x8F, 0xE0, 0x19, 0xC7, 0x01, 0x18, 0x30, 0x31, 0x83, 0x02, 0x1C, 0x70, 0x40, 0xFE, 0x04, 0x07, 0xC0, 0x0F, 0x00, 0x7E, 0x03, 0x9C, 0x0C, 0x30, 0x30, 0xC0, 0xE7, 0x01, 0xF8, 0x03, 0x80, 0x3E, 0x01, 0xCC, 0x6E, 0x19, 0xB0, 0x7C, 0xC0, 0xF3, 0x03, 0xCE, 0x1F, 0x9F, 0xE6, 0x1E, 0x1C, 0xFF, 0xA0, 0x08, 0x8C, 0x66, 0x31, 0x98, 0xC6, 0x31, 0x8C, 0x63, 0x08, 0x63, 0x08, 0x61, 0x0C, 0x20, 0x82, 0x18, 0xC3, 0x18, 0xC3, 0x18, 0xC6, 0x31, 0x8C, 0x62, 0x31, 0x88, 0xC4, 0x62, 0x00, 0x10, 0x23, 0x5B, 0xE3, 0x8D, 0x91, 0x00, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0xFF, 0xFF, 0xF0, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0xF5, 0x60, 0xFF, 0xF0, 0xF0, 0x02, 0x0C, 0x10, 0x20, 0xC1, 0x02, 0x0C, 0x10, 0x20, 0xC1, 0x02, 0x0C, 0x10, 0x20, 0xC1, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x30, 0x6E, 0x0F, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x0E, 0xC1, 0x9C, 0x71, 0xFC, 0x1F, 0x00, 0x08, 0xCF, 0xFF, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0x1F, 0x0F, 0xF9, 0x87, 0x60, 0x7C, 0x06, 0x00, 0xC0, 0x18, 0x07, 0x01, 0xC0, 0xF0, 0x78, 0x1C, 0x06, 0x00, 0x80, 0x30, 0x07, 0xFF, 0xFF, 0xE0, 0x3F, 0x0F, 0xF3, 0x87, 0x60, 0x6C, 0x0C, 0x01, 0x80, 0x70, 0x7C, 0x0F, 0x80, 0x18, 0x01, 0x80, 0x3C, 0x07, 0x80, 0xD8, 0x73, 0xFC, 0x1F, 0x00, 0x01, 0x80, 0x70, 0x0E, 0x03, 0xC0, 0xD8, 0x1B, 0x06, 0x61, 0x8C, 0x21, 0x8C, 0x33, 0x06, 0x7F, 0xFF, 0xFE, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x3F, 0xCF, 0xF9, 0x80, 0x30, 0x06, 0x00, 0xDE, 0x1F, 0xE7, 0x0E, 0x00, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x07, 0x81, 0xF8, 0x73, 0xFC, 0x1F, 0x00, 0x0F, 0x07, 0xF9, 0xC3, 0x30, 0x74, 0x01, 0x80, 0x33, 0xC7, 0xFE, 0xF0, 0xDC, 0x1F, 0x01, 0xE0, 0x3C, 0x06, 0xC1, 0xDC, 0x71, 0xFC, 0x1F, 0x00, 0xFF, 0xFF, 0xFC, 0x01, 0x00, 0x60, 0x18, 0x02, 0x00, 0xC0, 0x30, 0x06, 0x01, 0x80, 0x30, 0x04, 0x01, 0x80, 0x30, 0x06, 0x01, 0x80, 0x30, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x30, 0x66, 0x0C, 0xC1, 0x8C, 0x61, 0xFC, 0x3F, 0x8E, 0x3B, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xD8, 0x31, 0xFC, 0x1F, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x6C, 0x07, 0x80, 0xF0, 0x1E, 0x07, 0x61, 0xEF, 0xFC, 0x79, 0x80, 0x30, 0x05, 0x81, 0x98, 0x73, 0xFC, 0x1E, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0xF0, 0x00, 0x0F, 0x56, 0x00, 0x00, 0x07, 0x01, 0xE0, 0xF8, 0x3C, 0x0F, 0x00, 0xE0, 0x07, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x0E, 0x00, 0x78, 0x01, 0xF0, 0x07, 0xC0, 0x0F, 0x00, 0x70, 0x1E, 0x0F, 0x03, 0xC0, 0xF0, 0x08, 0x00, 0x1F, 0x1F, 0xEE, 0x1B, 0x03, 0xC0, 0xC0, 0x30, 0x0C, 0x06, 0x03, 0x81, 0xC0, 0xE0, 0x30, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0xFE, 0x00, 0x0F, 0xFE, 0x00, 0xF0, 0x3E, 0x07, 0x00, 0x3C, 0x38, 0x00, 0x30, 0xC1, 0xE0, 0x66, 0x0F, 0xD9, 0xD8, 0x61, 0xC3, 0xC3, 0x07, 0x0F, 0x1C, 0x1C, 0x3C, 0x60, 0x60, 0xF1, 0x81, 0x83, 0xC6, 0x06, 0x1B, 0x18, 0x38, 0xEE, 0x71, 0xE7, 0x18, 0xFD, 0xF8, 0x71, 0xE7, 0xC0, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xFF, 0xC0, 0x01, 0xFC, 0x00, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0xE0, 0x06, 0x60, 0x06, 0x60, 0x0E, 0x70, 0x0C, 0x30, 0x0C, 0x30, 0x1C, 0x38, 0x18, 0x18, 0x1F, 0xF8, 0x3F, 0xFC, 0x30, 0x1C, 0x30, 0x0C, 0x70, 0x0E, 0x60, 0x06, 0x60, 0x06, 0xFF, 0xC7, 0xFF, 0x30, 0x19, 0x80, 0x6C, 0x03, 0x60, 0x1B, 0x00, 0xD8, 0x0C, 0xFF, 0xC7, 0xFF, 0x30, 0x0D, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x06, 0xFF, 0xF7, 0xFE, 0x00, 0x07, 0xE0, 0x3F, 0xF0, 0xE0, 0x73, 0x80, 0x66, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x6C, 0x00, 0xDC, 0x03, 0x1E, 0x0E, 0x1F, 0xF8, 0x0F, 0xC0, 0xFF, 0x83, 0xFF, 0x8C, 0x07, 0x30, 0x0E, 0xC0, 0x1B, 0x00, 0x7C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x1F, 0x00, 0x6C, 0x03, 0xB0, 0x1C, 0xFF, 0xE3, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xFF, 0xEF, 0xFE, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xFF, 0xDF, 0xFB, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x00, 0x07, 0xF0, 0x1F, 0xFC, 0x3C, 0x1E, 0x70, 0x06, 0x60, 0x03, 0xE0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x7F, 0xC0, 0x7F, 0xC0, 0x03, 0xC0, 0x03, 0x60, 0x03, 0x60, 0x07, 0x30, 0x0F, 0x3C, 0x1F, 0x1F, 0xFB, 0x07, 0xE1, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xFF, 0xFF, 0xFF, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x01, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x3C, 0x1E, 0x0F, 0x07, 0xC7, 0x7F, 0x1F, 0x00, 0xC0, 0x3B, 0x01, 0xCC, 0x0E, 0x30, 0x70, 0xC3, 0x83, 0x1C, 0x0C, 0xE0, 0x33, 0x80, 0xDE, 0x03, 0xDC, 0x0E, 0x38, 0x30, 0x60, 0xC1, 0xC3, 0x03, 0x8C, 0x06, 0x30, 0x1C, 0xC0, 0x3B, 0x00, 0x60, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xFF, 0xFF, 0xF0, 0xE0, 0x07, 0xE0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0xD0, 0x0F, 0xD8, 0x1B, 0xD8, 0x1B, 0xD8, 0x1B, 0xCC, 0x33, 0xCC, 0x33, 0xCC, 0x33, 0xC6, 0x63, 0xC6, 0x63, 0xC6, 0x63, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC1, 0x83, 0xE0, 0x1F, 0x00, 0xFC, 0x07, 0xE0, 0x3D, 0x81, 0xEE, 0x0F, 0x30, 0x79, 0xC3, 0xC6, 0x1E, 0x18, 0xF0, 0xE7, 0x83, 0x3C, 0x1D, 0xE0, 0x6F, 0x01, 0xF8, 0x0F, 0xC0, 0x3E, 0x01, 0xC0, 0x03, 0xE0, 0x0F, 0xFC, 0x0F, 0x07, 0x86, 0x00, 0xC6, 0x00, 0x33, 0x00, 0x1B, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x36, 0x00, 0x33, 0x00, 0x18, 0xC0, 0x18, 0x78, 0x3C, 0x1F, 0xFC, 0x03, 0xF8, 0x00, 0xFF, 0x8F, 0xFE, 0xC0, 0x6C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x07, 0xFF, 0xEF, 0xFC, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0x03, 0xE0, 0x0F, 0xFC, 0x0F, 0x07, 0x86, 0x00, 0xC6, 0x00, 0x33, 0x00, 0x1B, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x36, 0x00, 0x33, 0x01, 0x98, 0xC0, 0xFC, 0x78, 0x3C, 0x1F, 0xFF, 0x03, 0xF9, 0x80, 0x00, 0x40, 0xFF, 0xC3, 0xFF, 0xCC, 0x03, 0xB0, 0x06, 0xC0, 0x1B, 0x00, 0x6C, 0x01, 0xB0, 0x0C, 0xFF, 0xE3, 0xFF, 0xCC, 0x03, 0xB0, 0x06, 0xC0, 0x1B, 0x00, 0x6C, 0x01, 0xB0, 0x06, 0xC0, 0x1B, 0x00, 0x70, 0x0F, 0xE0, 0x7F, 0xC3, 0x83, 0x9C, 0x07, 0x60, 0x0D, 0x80, 0x06, 0x00, 0x1E, 0x00, 0x3F, 0x80, 0x3F, 0xC0, 0x0F, 0x80, 0x07, 0xC0, 0x0F, 0x00, 0x3E, 0x00, 0xDE, 0x0E, 0x3F, 0xF0, 0x3F, 0x80, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x80, 0xEE, 0x0E, 0x3F, 0xE0, 0x7C, 0x00, 0x60, 0x06, 0xC0, 0x1D, 0xC0, 0x31, 0x80, 0x63, 0x01, 0xC7, 0x03, 0x06, 0x06, 0x0C, 0x1C, 0x1C, 0x30, 0x18, 0x60, 0x31, 0xC0, 0x73, 0x00, 0x66, 0x00, 0xDC, 0x01, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0xE0, 0x30, 0x1D, 0x80, 0xE0, 0x76, 0x07, 0x81, 0xD8, 0x1E, 0x06, 0x70, 0x7C, 0x18, 0xC1, 0xB0, 0xE3, 0x0C, 0xC3, 0x8C, 0x33, 0x0C, 0x38, 0xC6, 0x30, 0x67, 0x18, 0xC1, 0x98, 0x67, 0x06, 0x61, 0xD8, 0x1D, 0x83, 0x60, 0x3C, 0x0D, 0x80, 0xF0, 0x3E, 0x03, 0xC0, 0x70, 0x0F, 0x01, 0xC0, 0x18, 0x07, 0x00, 0x70, 0x0E, 0x60, 0x38, 0xE0, 0x60, 0xE1, 0xC0, 0xC3, 0x01, 0xCC, 0x01, 0xF8, 0x01, 0xE0, 0x03, 0x80, 0x07, 0x80, 0x1F, 0x00, 0x33, 0x00, 0xE7, 0x03, 0x86, 0x06, 0x0E, 0x1C, 0x0E, 0x70, 0x0C, 0xC0, 0x1C, 0x60, 0x06, 0x70, 0x0E, 0x30, 0x1C, 0x38, 0x18, 0x1C, 0x38, 0x0C, 0x30, 0x0E, 0x70, 0x06, 0x60, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xC0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0x60, 0x07, 0x00, 0x70, 0x07, 0x00, 0x30, 0x03, 0x80, 0x38, 0x03, 0x80, 0x18, 0x01, 0xC0, 0x1C, 0x00, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCF, 0xF0, 0x81, 0x81, 0x02, 0x06, 0x04, 0x08, 0x18, 0x10, 0x20, 0x60, 0x40, 0x81, 0x81, 0x02, 0x06, 0x04, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0xF0, 0x0C, 0x0E, 0x05, 0x86, 0xC3, 0x21, 0x19, 0x8C, 0x83, 0xC1, 0x80, 0xFF, 0xFE, 0xE3, 0x8C, 0x30, 0x3F, 0x07, 0xF8, 0xE1, 0xCC, 0x0C, 0x00, 0xC0, 0x1C, 0x3F, 0xCF, 0x8C, 0xC0, 0xCC, 0x0C, 0xE3, 0xC7, 0xEF, 0x3C, 0x70, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0xF8, 0xDF, 0xCF, 0x0E, 0xE0, 0x7C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xE0, 0x6F, 0x0E, 0xDF, 0xCC, 0xF8, 0x1F, 0x0F, 0xE7, 0x1B, 0x83, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x38, 0x37, 0x1C, 0xFE, 0x1F, 0x00, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x3C, 0xCF, 0xFB, 0x8F, 0xE0, 0xF8, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF8, 0x3B, 0x8F, 0x3F, 0x63, 0xCC, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x3C, 0x07, 0xFF, 0xFF, 0xFE, 0x00, 0xC0, 0x1C, 0x0D, 0xC3, 0x1F, 0xE1, 0xF0, 0x3B, 0xD8, 0xC6, 0x7F, 0xEC, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x00, 0x1E, 0x67, 0xFD, 0xC7, 0xF0, 0x7C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x7C, 0x1D, 0xC7, 0x9F, 0xB1, 0xE6, 0x00, 0xC0, 0x3E, 0x0E, 0x7F, 0xC7, 0xE0, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x33, 0xCD, 0xFB, 0xC7, 0xE0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x30, 0xF0, 0x3F, 0xFF, 0xFF, 0xF0, 0x33, 0x00, 0x03, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0xE0, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x83, 0x30, 0xC6, 0x30, 0xCC, 0x1B, 0x83, 0xF0, 0x77, 0x0C, 0x61, 0x8E, 0x30, 0xE6, 0x0C, 0xC1, 0xD8, 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xCF, 0x1F, 0x6F, 0xDF, 0xFC, 0x78, 0xFC, 0x18, 0x3C, 0x0C, 0x1E, 0x06, 0x0F, 0x03, 0x07, 0x81, 0x83, 0xC0, 0xC1, 0xE0, 0x60, 0xF0, 0x30, 0x78, 0x18, 0x3C, 0x0C, 0x18, 0xCF, 0x37, 0xEF, 0x1F, 0x83, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xC0, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x7C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x7C, 0x1D, 0xC7, 0x1F, 0xC1, 0xF0, 0xCF, 0x8D, 0xFC, 0xF0, 0xEE, 0x06, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x07, 0xF0, 0xEF, 0xFC, 0xCF, 0x8C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0x1E, 0x67, 0xFD, 0xC7, 0xF0, 0x7C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x7C, 0x1D, 0xC7, 0x9F, 0xF1, 0xE6, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0xCF, 0x7F, 0x38, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC0, 0x3E, 0x1F, 0xEE, 0x1B, 0x00, 0xC0, 0x3C, 0x07, 0xF0, 0x3E, 0x01, 0xF0, 0x3E, 0x1D, 0xFE, 0x3E, 0x00, 0x63, 0x19, 0xFF, 0xB1, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0xE7, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x7E, 0x3D, 0xFB, 0x3C, 0xC0, 0xE0, 0x66, 0x06, 0x60, 0x67, 0x0C, 0x30, 0xC3, 0x0C, 0x39, 0x81, 0x98, 0x19, 0x81, 0xF0, 0x0F, 0x00, 0xE0, 0x0E, 0x00, 0xC1, 0xC1, 0xB0, 0xE1, 0xD8, 0x70, 0xCC, 0x2C, 0x66, 0x36, 0x31, 0x9B, 0x18, 0xCD, 0x98, 0x64, 0x6C, 0x16, 0x36, 0x0F, 0x1A, 0x07, 0x8F, 0x03, 0x83, 0x80, 0xC1, 0xC0, 0x60, 0xEE, 0x18, 0xC6, 0x0C, 0xC1, 0xF0, 0x1C, 0x01, 0x80, 0x78, 0x1B, 0x03, 0x30, 0xC7, 0x30, 0x66, 0x06, 0xE0, 0x6C, 0x0D, 0x83, 0x38, 0x63, 0x0C, 0x63, 0x0E, 0x60, 0xCC, 0x1B, 0x03, 0x60, 0x3C, 0x07, 0x00, 0xE0, 0x18, 0x03, 0x00, 0xE0, 0x78, 0x0E, 0x00, 0xFF, 0xFF, 0xF0, 0x18, 0x0C, 0x07, 0x03, 0x81, 0xC0, 0x60, 0x30, 0x18, 0x0E, 0x03, 0xFF, 0xFF, 0xC0, 0x19, 0xCC, 0x63, 0x18, 0xC6, 0x31, 0x99, 0x86, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x1C, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xC7, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x0C, 0x33, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x73, 0x00, 0x70, 0x3E, 0x09, 0xE4, 0x1F, 0x03, 0x80}; const GFXglyph FreeSans12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 6, 0, 1}, // 0x20 ' ' {0, 2, 18, 8, 3, -17}, // 0x21 '!' {5, 6, 6, 8, 1, -16}, // 0x22 '"' {10, 13, 16, 13, 0, -15}, // 0x23 '#' {36, 11, 20, 13, 1, -17}, // 0x24 '$' {64, 20, 17, 21, 1, -16}, // 0x25 '%' {107, 14, 17, 16, 1, -16}, // 0x26 '&' {137, 2, 6, 5, 1, -16}, // 0x27 ''' {139, 5, 23, 8, 2, -17}, // 0x28 '(' {154, 5, 23, 8, 1, -17}, // 0x29 ')' {169, 7, 7, 9, 1, -17}, // 0x2A '*' {176, 10, 11, 14, 2, -10}, // 0x2B '+' {190, 2, 6, 7, 2, -1}, // 0x2C ',' {192, 6, 2, 8, 1, -7}, // 0x2D '-' {194, 2, 2, 6, 2, -1}, // 0x2E '.' {195, 7, 18, 7, 0, -17}, // 0x2F '/' {211, 11, 17, 13, 1, -16}, // 0x30 '0' {235, 5, 17, 13, 3, -16}, // 0x31 '1' {246, 11, 17, 13, 1, -16}, // 0x32 '2' {270, 11, 17, 13, 1, -16}, // 0x33 '3' {294, 11, 17, 13, 1, -16}, // 0x34 '4' {318, 11, 17, 13, 1, -16}, // 0x35 '5' {342, 11, 17, 13, 1, -16}, // 0x36 '6' {366, 11, 17, 13, 1, -16}, // 0x37 '7' {390, 11, 17, 13, 1, -16}, // 0x38 '8' {414, 11, 17, 13, 1, -16}, // 0x39 '9' {438, 2, 13, 6, 2, -12}, // 0x3A ':' {442, 2, 16, 6, 2, -11}, // 0x3B ';' {446, 12, 12, 14, 1, -11}, // 0x3C '<' {464, 12, 6, 14, 1, -8}, // 0x3D '=' {473, 12, 12, 14, 1, -11}, // 0x3E '>' {491, 10, 18, 13, 2, -17}, // 0x3F '?' {514, 22, 21, 24, 1, -17}, // 0x40 '@' {572, 16, 18, 16, 0, -17}, // 0x41 'A' {608, 13, 18, 16, 2, -17}, // 0x42 'B' {638, 15, 18, 17, 1, -17}, // 0x43 'C' {672, 14, 18, 17, 2, -17}, // 0x44 'D' {704, 12, 18, 15, 2, -17}, // 0x45 'E' {731, 11, 18, 14, 2, -17}, // 0x46 'F' {756, 16, 18, 18, 1, -17}, // 0x47 'G' {792, 13, 18, 17, 2, -17}, // 0x48 'H' {822, 2, 18, 7, 2, -17}, // 0x49 'I' {827, 9, 18, 13, 1, -17}, // 0x4A 'J' {848, 14, 18, 16, 2, -17}, // 0x4B 'K' {880, 10, 18, 14, 2, -17}, // 0x4C 'L' {903, 16, 18, 20, 2, -17}, // 0x4D 'M' {939, 13, 18, 18, 2, -17}, // 0x4E 'N' {969, 17, 18, 19, 1, -17}, // 0x4F 'O' {1008, 12, 18, 16, 2, -17}, // 0x50 'P' {1035, 17, 19, 19, 1, -17}, // 0x51 'Q' {1076, 14, 18, 17, 2, -17}, // 0x52 'R' {1108, 14, 18, 16, 1, -17}, // 0x53 'S' {1140, 12, 18, 15, 1, -17}, // 0x54 'T' {1167, 13, 18, 17, 2, -17}, // 0x55 'U' {1197, 15, 18, 15, 0, -17}, // 0x56 'V' {1231, 22, 18, 22, 0, -17}, // 0x57 'W' {1281, 15, 18, 16, 0, -17}, // 0x58 'X' {1315, 16, 18, 16, 0, -17}, // 0x59 'Y' {1351, 13, 18, 15, 1, -17}, // 0x5A 'Z' {1381, 4, 23, 7, 2, -17}, // 0x5B '[' {1393, 7, 18, 7, 0, -17}, // 0x5C '\' {1409, 4, 23, 7, 1, -17}, // 0x5D ']' {1421, 9, 9, 11, 1, -16}, // 0x5E '^' {1432, 15, 1, 13, -1, 4}, // 0x5F '_' {1434, 5, 4, 6, 1, -17}, // 0x60 '`' {1437, 12, 13, 13, 1, -12}, // 0x61 'a' {1457, 12, 18, 13, 1, -17}, // 0x62 'b' {1484, 10, 13, 12, 1, -12}, // 0x63 'c' {1501, 11, 18, 13, 1, -17}, // 0x64 'd' {1526, 11, 13, 13, 1, -12}, // 0x65 'e' {1544, 5, 18, 7, 1, -17}, // 0x66 'f' {1556, 11, 18, 13, 1, -12}, // 0x67 'g' {1581, 10, 18, 13, 1, -17}, // 0x68 'h' {1604, 2, 18, 5, 2, -17}, // 0x69 'i' {1609, 4, 23, 6, 0, -17}, // 0x6A 'j' {1621, 11, 18, 12, 1, -17}, // 0x6B 'k' {1646, 2, 18, 5, 1, -17}, // 0x6C 'l' {1651, 17, 13, 19, 1, -12}, // 0x6D 'm' {1679, 10, 13, 13, 1, -12}, // 0x6E 'n' {1696, 11, 13, 13, 1, -12}, // 0x6F 'o' {1714, 12, 17, 13, 1, -12}, // 0x70 'p' {1740, 11, 17, 13, 1, -12}, // 0x71 'q' {1764, 6, 13, 8, 1, -12}, // 0x72 'r' {1774, 10, 13, 12, 1, -12}, // 0x73 's' {1791, 5, 16, 7, 1, -15}, // 0x74 't' {1801, 10, 13, 13, 1, -12}, // 0x75 'u' {1818, 12, 13, 12, 0, -12}, // 0x76 'v' {1838, 17, 13, 17, 0, -12}, // 0x77 'w' {1866, 11, 13, 11, 0, -12}, // 0x78 'x' {1884, 11, 18, 11, 0, -12}, // 0x79 'y' {1909, 10, 13, 12, 1, -12}, // 0x7A 'z' {1926, 5, 23, 8, 1, -17}, // 0x7B '{' {1941, 2, 23, 6, 2, -17}, // 0x7C '|' {1947, 5, 23, 8, 2, -17}, // 0x7D '}' {1962, 10, 5, 12, 1, -10}}; // 0x7E '~' const GFXfont FreeSans12pt7b PROGMEM = {(uint8_t *)FreeSans12pt7bBitmaps, (GFXglyph *)FreeSans12pt7bGlyphs, 0x20, 0x7E, 29}; // Approx. 2641 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSans18pt7b.h ================================================ const uint8_t FreeSans18pt7bBitmaps[] PROGMEM = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0x20, 0x3F, 0xFC, 0xE3, 0xF1, 0xF8, 0xFC, 0x7E, 0x3F, 0x1F, 0x8E, 0x82, 0x41, 0x00, 0x01, 0xC3, 0x80, 0x38, 0x70, 0x06, 0x0E, 0x00, 0xC1, 0x80, 0x38, 0x70, 0x07, 0x0E, 0x0F, 0xFF, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, 0xE1, 0xC0, 0x1C, 0x38, 0x03, 0x87, 0x00, 0x70, 0xE0, 0x0C, 0x18, 0x3F, 0xFF, 0xF7, 0xFF, 0xFE, 0xFF, 0xFF, 0xC1, 0xC3, 0x80, 0x30, 0x60, 0x06, 0x0C, 0x01, 0xC3, 0x80, 0x38, 0x70, 0x07, 0x0E, 0x00, 0xC1, 0x80, 0x03, 0x00, 0x0F, 0xC0, 0x3F, 0xF0, 0x3F, 0xF8, 0x7B, 0x3C, 0xF3, 0x1C, 0xE3, 0x0E, 0xE3, 0x0E, 0xE3, 0x0E, 0xE3, 0x00, 0xE3, 0x00, 0xF3, 0x00, 0x7B, 0x00, 0x7F, 0x80, 0x1F, 0xF0, 0x07, 0xFC, 0x03, 0x7E, 0x03, 0x0F, 0x03, 0x07, 0xE3, 0x07, 0xE3, 0x07, 0xE3, 0x07, 0xE3, 0x0F, 0x73, 0x3E, 0x7F, 0xFC, 0x3F, 0xF8, 0x0F, 0xE0, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x78, 0x00, 0xE0, 0x0F, 0xF0, 0x06, 0x00, 0xFF, 0xC0, 0x70, 0x07, 0x0E, 0x07, 0x00, 0x70, 0x38, 0x38, 0x03, 0x00, 0xC3, 0x80, 0x18, 0x06, 0x1C, 0x00, 0xE0, 0x71, 0xC0, 0x03, 0x87, 0x8C, 0x00, 0x1F, 0xF8, 0xE0, 0x00, 0x7F, 0x86, 0x00, 0x01, 0xF8, 0x70, 0x00, 0x00, 0x03, 0x03, 0xC0, 0x00, 0x38, 0x7F, 0x80, 0x01, 0x87, 0xFE, 0x00, 0x1C, 0x38, 0x70, 0x00, 0xC3, 0x81, 0xC0, 0x0E, 0x18, 0x06, 0x00, 0xE0, 0xC0, 0x30, 0x07, 0x07, 0x03, 0x80, 0x70, 0x1C, 0x38, 0x03, 0x80, 0xFF, 0xC0, 0x38, 0x03, 0xFC, 0x01, 0x80, 0x07, 0x80, 0x01, 0xF0, 0x00, 0x7F, 0x80, 0x0F, 0xFC, 0x01, 0xE1, 0xE0, 0x1C, 0x0E, 0x01, 0xC0, 0xE0, 0x1C, 0x0E, 0x01, 0xE1, 0xE0, 0x0E, 0x3C, 0x00, 0x77, 0x80, 0x07, 0xF0, 0x00, 0x7C, 0x00, 0x0F, 0xE0, 0x03, 0xCF, 0x1C, 0x78, 0x79, 0xC7, 0x03, 0xDC, 0xE0, 0x1F, 0x8E, 0x00, 0xF8, 0xE0, 0x0F, 0x0E, 0x00, 0x70, 0xF0, 0x0F, 0x87, 0xC3, 0xFC, 0x7F, 0xFD, 0xC3, 0xFF, 0x0E, 0x0F, 0xC0, 0xF0, 0xFF, 0xFF, 0xFA, 0x40, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x38, 0x30, 0x70, 0x70, 0x70, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x70, 0x70, 0x70, 0x30, 0x38, 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x03, 0xC0, 0x60, 0x30, 0x30, 0x38, 0x18, 0x1C, 0x0C, 0x0E, 0x0E, 0x0E, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x0E, 0x0E, 0x0E, 0x0C, 0x1C, 0x18, 0x38, 0x30, 0x30, 0x60, 0xC0, 0x0C, 0x03, 0x00, 0xC3, 0xB7, 0xFF, 0xC7, 0x81, 0xE0, 0xEC, 0x73, 0x88, 0x40, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xF6, 0xDA, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xC0, 0x30, 0x18, 0x06, 0x01, 0x80, 0xC0, 0x30, 0x0C, 0x06, 0x01, 0x80, 0x60, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x60, 0x18, 0x06, 0x03, 0x00, 0xC0, 0x30, 0x18, 0x06, 0x01, 0x80, 0xC0, 0x30, 0x00, 0x07, 0xE0, 0x0F, 0xF8, 0x1F, 0xFC, 0x3C, 0x3C, 0x78, 0x1E, 0x70, 0x0E, 0x70, 0x0E, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x0F, 0x70, 0x0E, 0x70, 0x0E, 0x78, 0x1E, 0x3C, 0x3C, 0x1F, 0xF8, 0x1F, 0xF0, 0x07, 0xE0, 0x03, 0x03, 0x07, 0x0F, 0x3F, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xE0, 0x1F, 0xF8, 0x3F, 0xFC, 0x7C, 0x3E, 0x70, 0x0F, 0xF0, 0x0F, 0xE0, 0x07, 0xE0, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0xF8, 0x03, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x70, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xF0, 0x07, 0xFE, 0x07, 0xFF, 0x87, 0x83, 0xC3, 0x80, 0xF3, 0x80, 0x39, 0xC0, 0x1C, 0xE0, 0x0E, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x7F, 0x00, 0x3F, 0x00, 0x1F, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0xFE, 0x00, 0x77, 0x00, 0x73, 0xE0, 0xF8, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x00, 0x38, 0x00, 0x38, 0x00, 0x78, 0x00, 0xF8, 0x00, 0xF8, 0x01, 0xF8, 0x03, 0xB8, 0x03, 0x38, 0x07, 0x38, 0x0E, 0x38, 0x1C, 0x38, 0x18, 0x38, 0x38, 0x38, 0x70, 0x38, 0x60, 0x38, 0xE0, 0x38, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x1F, 0xFF, 0x0F, 0xFF, 0x8F, 0xFF, 0xC7, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x39, 0xF0, 0x3F, 0xFE, 0x1F, 0xFF, 0x8F, 0x83, 0xE7, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xFC, 0x00, 0xEF, 0x00, 0x73, 0xC0, 0xF0, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xE0, 0x00, 0x03, 0xE0, 0x0F, 0xF8, 0x1F, 0xFC, 0x3C, 0x1E, 0x38, 0x0E, 0x70, 0x0E, 0x70, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xE3, 0xE0, 0xEF, 0xF8, 0xFF, 0xFC, 0xFC, 0x3E, 0xF0, 0x0E, 0xF0, 0x0F, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0x60, 0x07, 0x70, 0x0F, 0x70, 0x0E, 0x3C, 0x3E, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x18, 0x00, 0x38, 0x00, 0x70, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0xC0, 0x01, 0x80, 0x03, 0x80, 0x03, 0x80, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0x83, 0xC7, 0x80, 0xF3, 0x80, 0x39, 0xC0, 0x1C, 0xE0, 0x0E, 0x78, 0x0F, 0x1E, 0x0F, 0x07, 0xFF, 0x01, 0xFF, 0x03, 0xFF, 0xE3, 0xE0, 0xF9, 0xC0, 0x1D, 0xC0, 0x0F, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0xF7, 0x00, 0x73, 0xE0, 0xF8, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x07, 0xE0, 0x1F, 0xF8, 0x3F, 0xFC, 0x7C, 0x3C, 0x70, 0x0E, 0xF0, 0x0E, 0xE0, 0x06, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x0F, 0x70, 0x0F, 0x78, 0x3F, 0x3F, 0xFF, 0x1F, 0xF7, 0x07, 0xC7, 0x00, 0x07, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x0E, 0x70, 0x1C, 0x78, 0x3C, 0x3F, 0xF8, 0x1F, 0xF0, 0x07, 0xC0, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x07, 0xFF, 0x80, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xB6, 0xD6, 0x00, 0x00, 0x80, 0x03, 0xC0, 0x07, 0xE0, 0x0F, 0xC0, 0x3F, 0x80, 0x7E, 0x00, 0xFC, 0x01, 0xF0, 0x00, 0xE0, 0x00, 0x7C, 0x00, 0x1F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x80, 0x07, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0x00, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x80, 0x00, 0x70, 0x00, 0x3E, 0x00, 0x0F, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0xC0, 0x03, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0x80, 0x0F, 0xC0, 0x1F, 0x80, 0x7F, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x0F, 0xC0, 0x7F, 0xE1, 0xFF, 0xE3, 0xC3, 0xEF, 0x01, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x07, 0x00, 0x0E, 0x00, 0x38, 0x00, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x00, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0x01, 0xF8, 0x0F, 0xE0, 0x03, 0xE0, 0x01, 0xF0, 0x07, 0x80, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x3C, 0x1E, 0x00, 0x00, 0x1E, 0x3C, 0x03, 0xE0, 0x1E, 0x38, 0x0F, 0xF3, 0x8E, 0x78, 0x1E, 0x3F, 0x0F, 0x70, 0x38, 0x1F, 0x07, 0x70, 0x78, 0x0F, 0x07, 0xE0, 0x70, 0x0E, 0x07, 0xE0, 0x70, 0x0E, 0x07, 0xE0, 0xE0, 0x0E, 0x07, 0xE0, 0xE0, 0x1C, 0x07, 0xE0, 0xE0, 0x1C, 0x0E, 0xE0, 0xE0, 0x1C, 0x0E, 0xE0, 0xE0, 0x38, 0x1C, 0xF0, 0x70, 0x78, 0x3C, 0x70, 0x78, 0xFC, 0x78, 0x78, 0x3F, 0xDF, 0xF0, 0x38, 0x1F, 0x0F, 0xC0, 0x3C, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x07, 0xF0, 0x0E, 0x00, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xDC, 0x00, 0x07, 0x78, 0x00, 0x3C, 0xE0, 0x00, 0xE3, 0x80, 0x03, 0x8F, 0x00, 0x1E, 0x1C, 0x00, 0x70, 0x70, 0x01, 0xC1, 0xE0, 0x0E, 0x03, 0x80, 0x38, 0x0E, 0x00, 0xE0, 0x3C, 0x07, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, 0xFF, 0xFF, 0x83, 0xC0, 0x0E, 0x0E, 0x00, 0x3C, 0x78, 0x00, 0xF1, 0xE0, 0x01, 0xC7, 0x00, 0x07, 0xBC, 0x00, 0x1E, 0xF0, 0x00, 0x3B, 0x80, 0x00, 0xF0, 0xFF, 0xFC, 0x1F, 0xFF, 0xE3, 0xFF, 0xFE, 0x70, 0x03, 0xCE, 0x00, 0x3D, 0xC0, 0x03, 0xB8, 0x00, 0x77, 0x00, 0x0E, 0xE0, 0x01, 0xDC, 0x00, 0x73, 0x80, 0x1E, 0x7F, 0xFF, 0x8F, 0xFF, 0xF1, 0xFF, 0xFF, 0x38, 0x00, 0xF7, 0x00, 0x0E, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x03, 0xF8, 0x00, 0xF7, 0xFF, 0xFC, 0xFF, 0xFF, 0x1F, 0xFF, 0x80, 0x00, 0xFF, 0x00, 0x0F, 0xFF, 0x00, 0xFF, 0xFE, 0x07, 0xE0, 0x7C, 0x3E, 0x00, 0x78, 0xF0, 0x00, 0xE7, 0x80, 0x03, 0xDC, 0x00, 0x07, 0x70, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x1D, 0xC0, 0x00, 0x77, 0x00, 0x03, 0xDE, 0x00, 0x0E, 0x3C, 0x00, 0x78, 0xF8, 0x03, 0xC1, 0xF8, 0x1F, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x03, 0xF8, 0x00, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0xFF, 0xFF, 0x0E, 0x00, 0xF8, 0xE0, 0x03, 0xCE, 0x00, 0x1C, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xFE, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x0F, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x01, 0xEE, 0x00, 0x3C, 0xE0, 0x0F, 0x8F, 0xFF, 0xF0, 0xFF, 0xFE, 0x0F, 0xFF, 0x80, 0xFF, 0xFF, 0xBF, 0xFF, 0xEF, 0xFF, 0xFB, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0xFF, 0xFE, 0xFF, 0xFF, 0xBF, 0xFF, 0xEE, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1F, 0xFF, 0xCF, 0xFF, 0xE7, 0xFF, 0xF3, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xF8, 0x0F, 0x80, 0xFC, 0x1E, 0x00, 0x3E, 0x3C, 0x00, 0x0E, 0x78, 0x00, 0x0F, 0x70, 0x00, 0x07, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x03, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0x70, 0x00, 0x07, 0x70, 0x00, 0x0F, 0x78, 0x00, 0x0F, 0x3C, 0x00, 0x1F, 0x1E, 0x00, 0x3F, 0x0F, 0xC0, 0xF7, 0x07, 0xFF, 0xE7, 0x03, 0xFF, 0xC3, 0x00, 0xFF, 0x03, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x1F, 0x80, 0x7E, 0x01, 0xF8, 0x07, 0xE0, 0x1F, 0xC0, 0xF7, 0x87, 0x9F, 0xFE, 0x3F, 0xF0, 0x3F, 0x00, 0xE0, 0x01, 0xEE, 0x00, 0x3C, 0xE0, 0x07, 0x8E, 0x00, 0xF0, 0xE0, 0x1E, 0x0E, 0x03, 0xE0, 0xE0, 0x7C, 0x0E, 0x0F, 0x80, 0xE1, 0xF0, 0x0E, 0x1E, 0x00, 0xE3, 0xC0, 0x0E, 0x7C, 0x00, 0xEF, 0xE0, 0x0F, 0xCE, 0x00, 0xF8, 0xF0, 0x0F, 0x07, 0x80, 0xE0, 0x3C, 0x0E, 0x03, 0xC0, 0xE0, 0x1E, 0x0E, 0x00, 0xF0, 0xE0, 0x0F, 0x0E, 0x00, 0x78, 0xE0, 0x03, 0xCE, 0x00, 0x3C, 0xE0, 0x01, 0xEE, 0x00, 0x0F, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xFC, 0x00, 0x3F, 0xFC, 0x00, 0x3F, 0xFC, 0x00, 0x3F, 0xEE, 0x00, 0x77, 0xEE, 0x00, 0x77, 0xEE, 0x00, 0x77, 0xE7, 0x00, 0xE7, 0xE7, 0x00, 0xE7, 0xE7, 0x00, 0xE7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE1, 0xC3, 0x87, 0xE1, 0xC3, 0x87, 0xE1, 0xC3, 0x87, 0xE0, 0xE7, 0x07, 0xE0, 0xE7, 0x07, 0xE0, 0xE7, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x3C, 0x07, 0xE0, 0x3C, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF8, 0x00, 0x7F, 0xC0, 0x07, 0xFC, 0x00, 0x7F, 0xE0, 0x07, 0xEF, 0x00, 0x7E, 0x70, 0x07, 0xE7, 0x80, 0x7E, 0x3C, 0x07, 0xE1, 0xC0, 0x7E, 0x1E, 0x07, 0xE0, 0xE0, 0x7E, 0x0F, 0x07, 0xE0, 0x78, 0x7E, 0x03, 0x87, 0xE0, 0x3C, 0x7E, 0x01, 0xE7, 0xE0, 0x0E, 0x7E, 0x00, 0xF7, 0xE0, 0x07, 0xFE, 0x00, 0x3F, 0xE0, 0x03, 0xFE, 0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x0F, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x01, 0xF0, 0x1F, 0x01, 0xE0, 0x03, 0xC1, 0xE0, 0x00, 0xF1, 0xE0, 0x00, 0x3C, 0xE0, 0x00, 0x0E, 0x70, 0x00, 0x07, 0x70, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xB8, 0x00, 0x03, 0x9C, 0x00, 0x01, 0xCF, 0x00, 0x01, 0xE3, 0xC0, 0x01, 0xE0, 0xF0, 0x01, 0xE0, 0x3E, 0x03, 0xE0, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0xFC, 0x3F, 0xFF, 0x8F, 0xFF, 0xF3, 0x80, 0x3E, 0xE0, 0x03, 0xF8, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x01, 0xF8, 0x00, 0x7E, 0x00, 0x3F, 0x80, 0x1E, 0xFF, 0xFF, 0x3F, 0xFF, 0x8F, 0xFF, 0xC3, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x01, 0xF0, 0x1F, 0x01, 0xE0, 0x03, 0xC1, 0xE0, 0x00, 0xF1, 0xE0, 0x00, 0x3C, 0xE0, 0x00, 0x0E, 0x70, 0x00, 0x07, 0x70, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xB8, 0x00, 0x03, 0x9C, 0x00, 0x01, 0xCF, 0x00, 0x39, 0xE3, 0xC0, 0x1F, 0xE0, 0xF0, 0x07, 0xE0, 0x3E, 0x03, 0xF0, 0x0F, 0xFF, 0xFC, 0x03, 0xFF, 0xEE, 0x00, 0x3F, 0x83, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x20, 0xFF, 0xFE, 0x0F, 0xFF, 0xF8, 0xFF, 0xFF, 0xCE, 0x00, 0x3C, 0xE0, 0x01, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x01, 0xCE, 0x00, 0x3C, 0xFF, 0xFF, 0x8F, 0xFF, 0xF0, 0xFF, 0xFF, 0x8E, 0x00, 0x3C, 0xE0, 0x01, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0x03, 0xFC, 0x00, 0xFF, 0xF0, 0x1F, 0xFF, 0x83, 0xE0, 0x7C, 0x38, 0x01, 0xE7, 0x00, 0x0E, 0x70, 0x00, 0xE7, 0x00, 0x00, 0x70, 0x00, 0x07, 0x80, 0x00, 0x3E, 0x00, 0x01, 0xFE, 0x00, 0x0F, 0xFE, 0x00, 0x3F, 0xF8, 0x00, 0x3F, 0xE0, 0x00, 0x3E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xF0, 0x00, 0x77, 0x80, 0x0E, 0x7C, 0x03, 0xE3, 0xFF, 0xFC, 0x1F, 0xFF, 0x80, 0x3F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7F, 0x00, 0x1E, 0xF0, 0x07, 0x9F, 0x01, 0xF1, 0xFF, 0xFC, 0x1F, 0xFE, 0x00, 0x7F, 0x00, 0xE0, 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x00, 0x1C, 0xE0, 0x01, 0xE7, 0x80, 0x0F, 0x3C, 0x00, 0x70, 0xE0, 0x07, 0x87, 0x80, 0x3C, 0x1C, 0x01, 0xC0, 0xE0, 0x0E, 0x07, 0x80, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x38, 0x07, 0x83, 0x80, 0x1C, 0x1C, 0x00, 0xE0, 0xE0, 0x07, 0x8E, 0x00, 0x1C, 0x70, 0x00, 0xE3, 0x80, 0x07, 0xB8, 0x00, 0x1D, 0xC0, 0x00, 0xEE, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0x80, 0x00, 0x70, 0x03, 0xC0, 0x0F, 0x70, 0x03, 0xC0, 0x0F, 0x78, 0x03, 0xE0, 0x0F, 0x78, 0x03, 0xE0, 0x0E, 0x38, 0x07, 0xE0, 0x0E, 0x38, 0x07, 0xF0, 0x1E, 0x3C, 0x07, 0x70, 0x1E, 0x3C, 0x07, 0x70, 0x1C, 0x1C, 0x0E, 0x70, 0x1C, 0x1C, 0x0E, 0x38, 0x3C, 0x1C, 0x0E, 0x38, 0x3C, 0x1E, 0x1E, 0x38, 0x38, 0x0E, 0x1C, 0x38, 0x38, 0x0E, 0x1C, 0x1C, 0x38, 0x0E, 0x1C, 0x1C, 0x78, 0x0F, 0x3C, 0x1C, 0x70, 0x07, 0x38, 0x0E, 0x70, 0x07, 0x38, 0x0E, 0x70, 0x07, 0x38, 0x0E, 0x70, 0x07, 0x70, 0x0E, 0xE0, 0x03, 0xF0, 0x07, 0xE0, 0x03, 0xF0, 0x07, 0xE0, 0x03, 0xF0, 0x07, 0xE0, 0x03, 0xE0, 0x03, 0xC0, 0x01, 0xE0, 0x03, 0xC0, 0x01, 0xE0, 0x03, 0xC0, 0xF0, 0x00, 0x7B, 0xC0, 0x07, 0x8F, 0x00, 0x38, 0x78, 0x03, 0xC1, 0xE0, 0x3C, 0x07, 0x81, 0xC0, 0x3C, 0x1E, 0x00, 0xF1, 0xE0, 0x03, 0x8E, 0x00, 0x1E, 0xF0, 0x00, 0x7F, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xF0, 0x00, 0x3B, 0x80, 0x03, 0xDE, 0x00, 0x3C, 0x78, 0x01, 0xC1, 0xC0, 0x1E, 0x0F, 0x01, 0xE0, 0x3C, 0x0E, 0x00, 0xE0, 0xF0, 0x07, 0x8F, 0x00, 0x1E, 0x70, 0x00, 0xF7, 0x80, 0x03, 0xC0, 0xF0, 0x00, 0x3C, 0xF0, 0x00, 0x78, 0xF0, 0x01, 0xE1, 0xE0, 0x03, 0x81, 0xE0, 0x0F, 0x01, 0xC0, 0x1C, 0x03, 0xC0, 0x78, 0x03, 0xC1, 0xE0, 0x07, 0x83, 0x80, 0x07, 0x8F, 0x00, 0x07, 0x1C, 0x00, 0x0F, 0x78, 0x00, 0x0E, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x7F, 0xFF, 0xEF, 0xFF, 0xFD, 0xFF, 0xFF, 0x80, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xF8, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x8F, 0xFF, 0xFC, 0xC0, 0x30, 0x06, 0x01, 0x80, 0x60, 0x0C, 0x03, 0x00, 0xC0, 0x18, 0x06, 0x01, 0x80, 0x20, 0x0C, 0x03, 0x00, 0x40, 0x18, 0x06, 0x01, 0x80, 0x30, 0x0C, 0x03, 0x00, 0x60, 0x18, 0x06, 0x00, 0xC0, 0x30, 0xFF, 0xFF, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x7F, 0xFF, 0xFC, 0x07, 0x00, 0x78, 0x03, 0xC0, 0x3F, 0x01, 0xD8, 0x0C, 0xE0, 0xE3, 0x06, 0x1C, 0x70, 0xE3, 0x83, 0x18, 0x1D, 0xC0, 0x6C, 0x03, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xF0, 0xF0, 0xE0, 0xE0, 0xE0, 0x07, 0xF0, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0x03, 0xC7, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0xFE, 0x0F, 0xFF, 0x1F, 0xF3, 0x9F, 0x01, 0xCF, 0x00, 0xE7, 0x00, 0x73, 0x80, 0x79, 0xE0, 0xFC, 0x7F, 0xEF, 0x9F, 0xE3, 0xC7, 0xE1, 0xE0, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE3, 0xE0, 0xEF, 0xF8, 0xFF, 0xFC, 0xFC, 0x3E, 0xF8, 0x1E, 0xF0, 0x0E, 0xE0, 0x0F, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xF0, 0x0E, 0xF8, 0x1E, 0xFC, 0x3C, 0xEF, 0xFC, 0xEF, 0xF8, 0xE3, 0xE0, 0x07, 0xF0, 0x1F, 0xF8, 0x3F, 0xFC, 0x3C, 0x1E, 0x78, 0x0E, 0x70, 0x07, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x07, 0x70, 0x07, 0x78, 0x0E, 0x7C, 0x1E, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x0F, 0xC7, 0x1F, 0xFB, 0x9F, 0xFF, 0xDF, 0x07, 0xEF, 0x01, 0xF7, 0x00, 0x7F, 0x80, 0x3F, 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x77, 0x00, 0x7B, 0xC0, 0x7D, 0xF0, 0x7E, 0x7F, 0xFB, 0x1F, 0xF9, 0x83, 0xF0, 0xC0, 0x07, 0xE0, 0x1F, 0xF8, 0x3F, 0xFC, 0x7C, 0x1E, 0x70, 0x0E, 0x60, 0x06, 0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x70, 0x07, 0x78, 0x0E, 0x3C, 0x1E, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0, 0x0E, 0x3C, 0xF9, 0xC3, 0x87, 0x0E, 0x7F, 0xFF, 0xFC, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0x07, 0xC7, 0x1F, 0xF7, 0x3F, 0xFF, 0x3C, 0x3F, 0x78, 0x0F, 0x70, 0x0F, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0x70, 0x0F, 0x78, 0x0F, 0x7C, 0x3F, 0x3F, 0xF7, 0x1F, 0xE7, 0x07, 0xC7, 0x00, 0x07, 0x00, 0x07, 0x00, 0x0E, 0x70, 0x0E, 0x78, 0x1E, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x71, 0xF8, 0xE7, 0xFD, 0xDF, 0xFB, 0xF0, 0xFF, 0xC0, 0xFF, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1C, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x1C, 0x71, 0xC7, 0x00, 0x00, 0x07, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x73, 0xFF, 0xFB, 0xC0, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x3C, 0xE0, 0x78, 0xE0, 0xF0, 0xE1, 0xE0, 0xE3, 0xC0, 0xE7, 0x80, 0xEF, 0x00, 0xEF, 0x80, 0xFF, 0x80, 0xFB, 0xC0, 0xF1, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xE0, 0x70, 0xE0, 0x78, 0xE0, 0x3C, 0xE0, 0x1C, 0xE0, 0x1E, 0xE0, 0x0E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xE3, 0xE0, 0xF8, 0xE7, 0xF1, 0xFE, 0xEF, 0xFB, 0xFE, 0xF8, 0x7F, 0x0F, 0xF0, 0x3E, 0x07, 0xF0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE3, 0xF1, 0xCF, 0xFB, 0xBF, 0xF7, 0xE1, 0xFF, 0x81, 0xFE, 0x01, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x38, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0x83, 0xC7, 0x80, 0xF3, 0x80, 0x3B, 0x80, 0x1F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3B, 0x80, 0x39, 0xE0, 0x3C, 0x78, 0x3C, 0x3F, 0xFE, 0x0F, 0xFE, 0x01, 0xFC, 0x00, 0xE3, 0xE0, 0xE7, 0xF8, 0xEF, 0xFC, 0xFC, 0x3E, 0xF8, 0x1E, 0xF0, 0x0E, 0xE0, 0x0F, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xF0, 0x0E, 0xF8, 0x1E, 0xFC, 0x3E, 0xFF, 0xFC, 0xEF, 0xF8, 0xE3, 0xE0, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x07, 0xE1, 0x8F, 0xFC, 0xCF, 0xFF, 0x67, 0x83, 0xF7, 0x80, 0xFB, 0x80, 0x3F, 0xC0, 0x1F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3B, 0x80, 0x3D, 0xE0, 0x3E, 0xF8, 0x3F, 0x3F, 0xFF, 0x8F, 0xFD, 0xC1, 0xF8, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0xE3, 0xF7, 0xFB, 0xFF, 0x8F, 0x07, 0x83, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x00, 0x0F, 0xC0, 0xFF, 0x87, 0xFF, 0x3C, 0x1E, 0xE0, 0x3B, 0x80, 0x0E, 0x00, 0x3C, 0x00, 0x7F, 0x00, 0xFF, 0x80, 0xFF, 0x80, 0x7F, 0x00, 0x3F, 0x80, 0x7E, 0x01, 0xFC, 0x1F, 0x7F, 0xF8, 0xFF, 0xC1, 0xFC, 0x00, 0x38, 0x70, 0xE1, 0xCF, 0xFF, 0xFF, 0x9C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0xE7, 0xC7, 0x80, 0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x7E, 0x00, 0xFC, 0x03, 0xFC, 0x0F, 0xFC, 0x3F, 0x7F, 0xEE, 0xFF, 0x9C, 0x7E, 0x38, 0x70, 0x03, 0xB8, 0x03, 0x9C, 0x01, 0xC7, 0x00, 0xE3, 0x80, 0xE1, 0xC0, 0x70, 0x70, 0x38, 0x38, 0x38, 0x1C, 0x1C, 0x07, 0x0E, 0x03, 0x8E, 0x01, 0xC7, 0x00, 0x77, 0x00, 0x3B, 0x80, 0x1D, 0xC0, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0x70, 0x00, 0xF0, 0x1C, 0x03, 0xB8, 0x1F, 0x03, 0xDC, 0x0F, 0x81, 0xCE, 0x07, 0xC0, 0xE7, 0x83, 0xE0, 0x71, 0xC3, 0xB8, 0x70, 0xE1, 0xDC, 0x38, 0x70, 0xEE, 0x1C, 0x1C, 0x63, 0x0E, 0x0E, 0x71, 0xCE, 0x07, 0x38, 0xE7, 0x03, 0x9C, 0x73, 0x80, 0xEC, 0x19, 0x80, 0x7E, 0x0F, 0xC0, 0x3F, 0x07, 0xE0, 0x0F, 0x83, 0xF0, 0x07, 0x80, 0xF0, 0x03, 0xC0, 0x78, 0x01, 0xE0, 0x3C, 0x00, 0x70, 0x07, 0x38, 0x0E, 0x3C, 0x1C, 0x1C, 0x1C, 0x0E, 0x38, 0x0F, 0x70, 0x07, 0x70, 0x03, 0xE0, 0x03, 0xC0, 0x01, 0xC0, 0x03, 0xE0, 0x07, 0xE0, 0x07, 0x70, 0x0E, 0x78, 0x1E, 0x38, 0x1C, 0x1C, 0x38, 0x1E, 0x78, 0x0E, 0x70, 0x07, 0x70, 0x07, 0x38, 0x03, 0x9C, 0x01, 0xC7, 0x01, 0xC3, 0x80, 0xE1, 0xC0, 0x70, 0x70, 0x70, 0x38, 0x38, 0x1C, 0x3C, 0x07, 0x1C, 0x03, 0x8E, 0x01, 0xCE, 0x00, 0x77, 0x00, 0x3B, 0x80, 0x1F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x1E, 0x00, 0x0E, 0x00, 0x3F, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x00, 0x7F, 0xFC, 0xFF, 0xF9, 0xFF, 0xF0, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x07, 0x0F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, 0xF8, 0xE0, 0xF8, 0x38, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x0F, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xE0, 0xF0, 0xF8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1C, 0x1F, 0x07, 0x1F, 0x1C, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xF8, 0xF0, 0xE0, 0x38, 0x00, 0xFC, 0x03, 0xFC, 0x1F, 0x3E, 0x3C, 0x1F, 0xE0, 0x1F, 0x80, 0x1E, 0x00}; const GFXglyph FreeSans18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 9, 0, 1}, // 0x20 ' ' {0, 3, 26, 12, 4, -25}, // 0x21 '!' {10, 9, 9, 12, 1, -24}, // 0x22 '"' {21, 19, 24, 19, 0, -23}, // 0x23 '#' {78, 16, 30, 19, 2, -26}, // 0x24 '$' {138, 29, 25, 31, 1, -24}, // 0x25 '%' {229, 20, 25, 23, 2, -24}, // 0x26 '&' {292, 3, 9, 7, 2, -24}, // 0x27 ''' {296, 8, 33, 12, 3, -25}, // 0x28 '(' {329, 8, 33, 12, 1, -25}, // 0x29 ')' {362, 10, 10, 14, 2, -25}, // 0x2A '*' {375, 16, 16, 20, 2, -15}, // 0x2B '+' {407, 3, 9, 10, 3, -3}, // 0x2C ',' {411, 8, 3, 12, 2, -10}, // 0x2D '-' {414, 3, 4, 9, 3, -3}, // 0x2E '.' {416, 10, 26, 10, 0, -25}, // 0x2F '/' {449, 16, 25, 19, 2, -24}, // 0x30 '0' {499, 8, 25, 19, 4, -24}, // 0x31 '1' {524, 16, 25, 19, 2, -24}, // 0x32 '2' {574, 17, 25, 19, 1, -24}, // 0x33 '3' {628, 16, 25, 19, 1, -24}, // 0x34 '4' {678, 17, 25, 19, 1, -24}, // 0x35 '5' {732, 16, 25, 19, 2, -24}, // 0x36 '6' {782, 16, 25, 19, 2, -24}, // 0x37 '7' {832, 17, 25, 19, 1, -24}, // 0x38 '8' {886, 16, 25, 19, 1, -24}, // 0x39 '9' {936, 3, 19, 9, 3, -18}, // 0x3A ':' {944, 3, 24, 9, 3, -18}, // 0x3B ';' {953, 17, 17, 20, 2, -16}, // 0x3C '<' {990, 17, 9, 20, 2, -12}, // 0x3D '=' {1010, 17, 17, 20, 2, -16}, // 0x3E '>' {1047, 15, 26, 19, 3, -25}, // 0x3F '?' {1096, 32, 31, 36, 1, -25}, // 0x40 '@' {1220, 22, 26, 23, 1, -25}, // 0x41 'A' {1292, 19, 26, 23, 3, -25}, // 0x42 'B' {1354, 22, 26, 25, 1, -25}, // 0x43 'C' {1426, 20, 26, 24, 3, -25}, // 0x44 'D' {1491, 18, 26, 22, 3, -25}, // 0x45 'E' {1550, 17, 26, 21, 3, -25}, // 0x46 'F' {1606, 24, 26, 27, 1, -25}, // 0x47 'G' {1684, 19, 26, 25, 3, -25}, // 0x48 'H' {1746, 3, 26, 10, 4, -25}, // 0x49 'I' {1756, 14, 26, 18, 1, -25}, // 0x4A 'J' {1802, 20, 26, 24, 3, -25}, // 0x4B 'K' {1867, 15, 26, 20, 3, -25}, // 0x4C 'L' {1916, 24, 26, 30, 3, -25}, // 0x4D 'M' {1994, 20, 26, 26, 3, -25}, // 0x4E 'N' {2059, 25, 26, 27, 1, -25}, // 0x4F 'O' {2141, 18, 26, 23, 3, -25}, // 0x50 'P' {2200, 25, 28, 27, 1, -25}, // 0x51 'Q' {2288, 20, 26, 25, 3, -25}, // 0x52 'R' {2353, 20, 26, 23, 1, -25}, // 0x53 'S' {2418, 19, 26, 22, 1, -25}, // 0x54 'T' {2480, 19, 26, 25, 3, -25}, // 0x55 'U' {2542, 21, 26, 23, 1, -25}, // 0x56 'V' {2611, 32, 26, 33, 0, -25}, // 0x57 'W' {2715, 21, 26, 23, 1, -25}, // 0x58 'X' {2784, 23, 26, 24, 0, -25}, // 0x59 'Y' {2859, 19, 26, 22, 1, -25}, // 0x5A 'Z' {2921, 6, 33, 10, 2, -25}, // 0x5B '[' {2946, 10, 26, 10, 0, -25}, // 0x5C '\' {2979, 6, 33, 10, 1, -25}, // 0x5D ']' {3004, 13, 13, 16, 2, -24}, // 0x5E '^' {3026, 21, 2, 19, -1, 5}, // 0x5F '_' {3032, 7, 5, 9, 1, -25}, // 0x60 '`' {3037, 17, 19, 19, 1, -18}, // 0x61 'a' {3078, 16, 26, 20, 2, -25}, // 0x62 'b' {3130, 16, 19, 18, 1, -18}, // 0x63 'c' {3168, 17, 26, 20, 1, -25}, // 0x64 'd' {3224, 16, 19, 19, 1, -18}, // 0x65 'e' {3262, 7, 26, 10, 1, -25}, // 0x66 'f' {3285, 16, 27, 19, 1, -18}, // 0x67 'g' {3339, 15, 26, 19, 2, -25}, // 0x68 'h' {3388, 3, 26, 8, 2, -25}, // 0x69 'i' {3398, 6, 34, 9, 0, -25}, // 0x6A 'j' {3424, 16, 26, 18, 2, -25}, // 0x6B 'k' {3476, 3, 26, 7, 2, -25}, // 0x6C 'l' {3486, 24, 19, 28, 2, -18}, // 0x6D 'm' {3543, 15, 19, 19, 2, -18}, // 0x6E 'n' {3579, 17, 19, 19, 1, -18}, // 0x6F 'o' {3620, 16, 25, 20, 2, -18}, // 0x70 'p' {3670, 17, 25, 20, 1, -18}, // 0x71 'q' {3724, 9, 19, 12, 2, -18}, // 0x72 'r' {3746, 14, 19, 17, 2, -18}, // 0x73 's' {3780, 7, 23, 10, 1, -22}, // 0x74 't' {3801, 15, 19, 19, 2, -18}, // 0x75 'u' {3837, 17, 19, 17, 0, -18}, // 0x76 'v' {3878, 25, 19, 25, 0, -18}, // 0x77 'w' {3938, 16, 19, 17, 0, -18}, // 0x78 'x' {3976, 17, 27, 17, 0, -18}, // 0x79 'y' {4034, 15, 19, 17, 1, -18}, // 0x7A 'z' {4070, 8, 33, 12, 1, -25}, // 0x7B '{' {4103, 2, 33, 9, 3, -25}, // 0x7C '|' {4112, 8, 33, 12, 3, -25}, // 0x7D '}' {4145, 15, 7, 18, 1, -15}}; // 0x7E '~' const GFXfont FreeSans18pt7b PROGMEM = {(uint8_t *)FreeSans18pt7bBitmaps, (GFXglyph *)FreeSans18pt7bGlyphs, 0x20, 0x7E, 42}; // Approx. 4831 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSans24pt7b.h ================================================ const uint8_t FreeSans24pt7bBitmaps[] PROGMEM = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x76, 0x66, 0x66, 0x00, 0x0F, 0xFF, 0xFF, 0xF1, 0xFE, 0x3F, 0xC7, 0xF8, 0xFF, 0x1F, 0xE3, 0xFC, 0x7F, 0x8F, 0xF1, 0xEC, 0x19, 0x83, 0x30, 0x60, 0x00, 0x70, 0x3C, 0x00, 0x70, 0x3C, 0x00, 0xF0, 0x38, 0x00, 0xF0, 0x38, 0x00, 0xF0, 0x78, 0x00, 0xE0, 0x78, 0x00, 0xE0, 0x78, 0x01, 0xE0, 0x70, 0x01, 0xE0, 0x70, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x03, 0xC0, 0xE0, 0x03, 0xC0, 0xE0, 0x03, 0xC0, 0xE0, 0x03, 0x81, 0xE0, 0x03, 0x81, 0xE0, 0x03, 0x81, 0xE0, 0x07, 0x81, 0xC0, 0x07, 0x81, 0xC0, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0x0F, 0x03, 0x80, 0x0F, 0x03, 0x80, 0x0F, 0x07, 0x80, 0x0E, 0x07, 0x80, 0x0E, 0x07, 0x80, 0x1E, 0x07, 0x00, 0x1E, 0x07, 0x00, 0x1E, 0x07, 0x00, 0x1C, 0x0F, 0x00, 0x1C, 0x0F, 0x00, 0x00, 0x38, 0x00, 0x01, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x7F, 0xFE, 0x01, 0xFF, 0xFE, 0x07, 0xE7, 0x3E, 0x0F, 0x8E, 0x3C, 0x3E, 0x1C, 0x3C, 0x78, 0x38, 0x38, 0xF0, 0x70, 0x71, 0xE0, 0xE0, 0xE3, 0xC1, 0xC0, 0x07, 0x83, 0x80, 0x0F, 0x87, 0x00, 0x0F, 0x8E, 0x00, 0x1F, 0xDC, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xFF, 0x00, 0x0F, 0xFF, 0x80, 0x07, 0xFF, 0x80, 0x03, 0xFF, 0x80, 0x07, 0x1F, 0x80, 0x0E, 0x1F, 0x00, 0x1C, 0x1F, 0x00, 0x38, 0x1F, 0xC0, 0x70, 0x3F, 0x80, 0xE0, 0x7F, 0x81, 0xC0, 0xFF, 0x03, 0x81, 0xEF, 0x07, 0x07, 0x9F, 0x0E, 0x0F, 0x3E, 0x1C, 0x3E, 0x3F, 0x39, 0xF8, 0x3F, 0xFF, 0xE0, 0x3F, 0xFF, 0x00, 0x0F, 0xF8, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x0F, 0xC0, 0x00, 0x78, 0x00, 0x3F, 0xE0, 0x00, 0xE0, 0x01, 0xFF, 0xE0, 0x03, 0x80, 0x03, 0xFF, 0xE0, 0x07, 0x00, 0x0F, 0x87, 0xC0, 0x1C, 0x00, 0x3C, 0x03, 0xC0, 0x38, 0x00, 0x70, 0x03, 0x80, 0xE0, 0x00, 0xE0, 0x07, 0x03, 0xC0, 0x01, 0xC0, 0x0E, 0x07, 0x00, 0x03, 0x80, 0x1C, 0x1E, 0x00, 0x07, 0x80, 0x78, 0x38, 0x00, 0x07, 0xC3, 0xE0, 0xF0, 0x00, 0x07, 0xFF, 0xC1, 0xC0, 0x00, 0x0F, 0xFF, 0x07, 0x80, 0x00, 0x0F, 0xFC, 0x0E, 0x00, 0x00, 0x07, 0xE0, 0x38, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x3F, 0x00, 0x00, 0x03, 0x80, 0xFF, 0x80, 0x00, 0x0E, 0x07, 0xFF, 0x80, 0x00, 0x3C, 0x0F, 0xFF, 0x80, 0x00, 0x70, 0x3E, 0x1F, 0x00, 0x01, 0xE0, 0xF0, 0x0F, 0x00, 0x03, 0x81, 0xC0, 0x0E, 0x00, 0x0F, 0x03, 0x80, 0x1C, 0x00, 0x1C, 0x07, 0x00, 0x38, 0x00, 0x78, 0x0E, 0x00, 0x70, 0x00, 0xE0, 0x1E, 0x01, 0xE0, 0x03, 0x80, 0x1F, 0x0F, 0x80, 0x07, 0x00, 0x1F, 0xFF, 0x00, 0x1C, 0x00, 0x3F, 0xFC, 0x00, 0x38, 0x00, 0x1F, 0xF0, 0x00, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x7F, 0xFC, 0x00, 0x07, 0xC3, 0xC0, 0x00, 0xF8, 0x1E, 0x00, 0x0F, 0x00, 0xE0, 0x00, 0xF0, 0x0E, 0x00, 0x0F, 0x00, 0xE0, 0x00, 0xF0, 0x0E, 0x00, 0x07, 0x81, 0xE0, 0x00, 0x7C, 0x3C, 0x00, 0x03, 0xEF, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x1F, 0x1E, 0x07, 0x83, 0xE0, 0xF0, 0x78, 0x7C, 0x0F, 0x8F, 0x87, 0x80, 0x7C, 0xF0, 0xF0, 0x03, 0xFF, 0x0F, 0x00, 0x1F, 0xE0, 0xF0, 0x00, 0xFE, 0x0F, 0x00, 0x0F, 0xC0, 0xF0, 0x00, 0x7E, 0x0F, 0x80, 0x0F, 0xF0, 0x7C, 0x01, 0xFF, 0x07, 0xF0, 0x7D, 0xF8, 0x3F, 0xFF, 0x8F, 0xC1, 0xFF, 0xF0, 0x7E, 0x0F, 0xFE, 0x03, 0xE0, 0x3F, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x66, 0x01, 0xC0, 0x70, 0x38, 0x1C, 0x07, 0x03, 0xC0, 0xE0, 0x78, 0x1C, 0x07, 0x03, 0xC0, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x70, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0x70, 0x1E, 0x07, 0x81, 0xE0, 0x38, 0x0F, 0x03, 0xC0, 0x70, 0x1E, 0x03, 0x80, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x18, 0x07, 0xE0, 0x38, 0x07, 0x01, 0xC0, 0x38, 0x0F, 0x01, 0xC0, 0x78, 0x0E, 0x03, 0x80, 0xF0, 0x1C, 0x07, 0x01, 0xE0, 0x78, 0x1E, 0x03, 0x80, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x03, 0xC0, 0xF0, 0x38, 0x1E, 0x07, 0x01, 0xC0, 0xE0, 0x38, 0x1C, 0x06, 0x03, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x63, 0x1B, 0xFF, 0xFF, 0xFF, 0xC3, 0xF0, 0x07, 0x80, 0x3F, 0x01, 0xCE, 0x07, 0x3C, 0x38, 0x70, 0x21, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xF3, 0x33, 0x36, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF0, 0x00, 0x38, 0x01, 0xC0, 0x0C, 0x00, 0xE0, 0x07, 0x00, 0x30, 0x03, 0x80, 0x1C, 0x00, 0xC0, 0x06, 0x00, 0x70, 0x03, 0x80, 0x18, 0x01, 0xC0, 0x0E, 0x00, 0x60, 0x03, 0x00, 0x38, 0x01, 0x80, 0x0C, 0x00, 0xE0, 0x07, 0x00, 0x30, 0x03, 0x80, 0x1C, 0x00, 0xC0, 0x06, 0x00, 0x70, 0x03, 0x80, 0x18, 0x01, 0xC0, 0x0E, 0x00, 0x60, 0x07, 0x00, 0x38, 0x00, 0x00, 0xFC, 0x00, 0x0F, 0xFC, 0x00, 0xFF, 0xFC, 0x07, 0xFF, 0xF8, 0x1F, 0x87, 0xE0, 0xF8, 0x07, 0xC3, 0xC0, 0x0F, 0x1F, 0x00, 0x3E, 0x78, 0x00, 0x79, 0xE0, 0x01, 0xE7, 0x80, 0x07, 0xBC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xDE, 0x00, 0x1E, 0x78, 0x00, 0x79, 0xE0, 0x01, 0xE7, 0xC0, 0x0F, 0x8F, 0x00, 0x3C, 0x3E, 0x01, 0xF0, 0x7C, 0x1F, 0x81, 0xFF, 0xFE, 0x03, 0xFF, 0xF0, 0x03, 0xFF, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x60, 0x1C, 0x03, 0x80, 0xF0, 0x3E, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x01, 0xFE, 0x00, 0x1F, 0xFE, 0x01, 0xFF, 0xFE, 0x0F, 0xFF, 0xFC, 0x3F, 0x03, 0xF9, 0xF0, 0x03, 0xE7, 0x80, 0x07, 0xFE, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x80, 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x03, 0xFC, 0x00, 0x1F, 0xC0, 0x00, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1C, 0x00, 0x00, 0x70, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0xFE, 0x00, 0x0F, 0xFF, 0x80, 0x3F, 0xFF, 0x80, 0xFF, 0xFF, 0x83, 0xF0, 0x1F, 0x87, 0xC0, 0x1F, 0x1F, 0x00, 0x1F, 0x3C, 0x00, 0x1E, 0x78, 0x00, 0x3C, 0xF0, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x7F, 0x00, 0x1F, 0xFC, 0x00, 0x3F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0xFF, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x03, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0xE0, 0x00, 0xFB, 0xC0, 0x01, 0xE7, 0xC0, 0x07, 0xC7, 0xE0, 0x3F, 0x0F, 0xFF, 0xFE, 0x0F, 0xFF, 0xF8, 0x07, 0xFF, 0xC0, 0x03, 0xFC, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xE0, 0x00, 0x7B, 0xC0, 0x01, 0xE7, 0x80, 0x07, 0x8F, 0x00, 0x0F, 0x1E, 0x00, 0x3C, 0x3C, 0x00, 0xF0, 0x78, 0x03, 0xC0, 0xF0, 0x07, 0x81, 0xE0, 0x1E, 0x03, 0xC0, 0x78, 0x07, 0x81, 0xE0, 0x0F, 0x03, 0xC0, 0x1E, 0x0F, 0x00, 0x3C, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x1F, 0xFF, 0xF0, 0x7F, 0xFF, 0xC1, 0xFF, 0xFF, 0x07, 0xFF, 0xFC, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x1F, 0x3F, 0x80, 0x7B, 0xFF, 0x81, 0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x1F, 0x80, 0xFC, 0x78, 0x01, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x80, 0x07, 0x9E, 0x00, 0x1E, 0x7C, 0x00, 0xF1, 0xFC, 0x0F, 0xC3, 0xFF, 0xFE, 0x07, 0xFF, 0xF0, 0x0F, 0xFF, 0x80, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x0F, 0xFE, 0x00, 0x7F, 0xFC, 0x03, 0xFF, 0xF8, 0x1F, 0x83, 0xF0, 0xF8, 0x07, 0xC3, 0xC0, 0x0F, 0x8F, 0x00, 0x1E, 0x78, 0x00, 0x79, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0xFE, 0x03, 0xCF, 0xFE, 0x0F, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0xFF, 0x03, 0xF3, 0xF0, 0x03, 0xEF, 0x80, 0x07, 0xBE, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0x70, 0x00, 0x3D, 0xC0, 0x00, 0xF7, 0x80, 0x07, 0x9F, 0x00, 0x3E, 0x3E, 0x00, 0xF8, 0xFC, 0x0F, 0xC1, 0xFF, 0xFE, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0x80, 0x07, 0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x1F, 0xFE, 0x00, 0xFF, 0xFC, 0x07, 0xFF, 0xF8, 0x3F, 0x03, 0xF1, 0xF0, 0x03, 0xC7, 0xC0, 0x0F, 0x9E, 0x00, 0x1E, 0x78, 0x00, 0x79, 0xE0, 0x01, 0xE7, 0x80, 0x0F, 0x8F, 0x00, 0x3C, 0x3F, 0x03, 0xF0, 0x7F, 0xFF, 0x80, 0x7F, 0xF8, 0x03, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, 0xFC, 0x0F, 0xC7, 0xC0, 0x0F, 0x9E, 0x00, 0x1E, 0xF8, 0x00, 0x7F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x80, 0x07, 0xDE, 0x00, 0x1E, 0x7C, 0x00, 0xF8, 0xFC, 0x0F, 0xC3, 0xFF, 0xFF, 0x07, 0xFF, 0xF8, 0x07, 0xFF, 0x80, 0x07, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0xFF, 0x83, 0xF0, 0x7E, 0x3E, 0x00, 0xF1, 0xE0, 0x07, 0xCF, 0x00, 0x1E, 0xF0, 0x00, 0x77, 0x80, 0x03, 0xBC, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xE0, 0x03, 0xEF, 0x00, 0x1F, 0x7C, 0x01, 0xF9, 0xF8, 0x3F, 0xCF, 0xFF, 0xFE, 0x3F, 0xFE, 0xF0, 0xFF, 0xE7, 0x80, 0xFC, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x9E, 0x00, 0x3C, 0xF0, 0x03, 0xC7, 0xC0, 0x3E, 0x1F, 0x03, 0xE0, 0xFF, 0xFE, 0x03, 0xFF, 0xE0, 0x0F, 0xFE, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF3, 0x33, 0x36, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0xC0, 0x03, 0xFC, 0x00, 0x3F, 0xE0, 0x01, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x03, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xFC, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x3F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x80, 0x00, 0x01, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0xC0, 0x03, 0xFC, 0x00, 0x1F, 0xE0, 0x01, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x07, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0xFF, 0xF0, 0x1F, 0xFF, 0x83, 0xFF, 0xFC, 0x7E, 0x0F, 0xE7, 0x80, 0x3E, 0x78, 0x01, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xC0, 0x00, 0x00, 0x3F, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x00, 0x07, 0xFC, 0x03, 0xFF, 0x00, 0x01, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x7E, 0x00, 0x00, 0x7F, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xF0, 0x07, 0xC0, 0x00, 0x00, 0x3F, 0x01, 0xF0, 0x00, 0x00, 0x03, 0xF0, 0x3C, 0x00, 0x7E, 0x00, 0x3E, 0x0F, 0x00, 0x3F, 0xE3, 0xC3, 0xE3, 0xE0, 0x1F, 0xFE, 0x78, 0x3C, 0x78, 0x07, 0xE1, 0xFF, 0x07, 0xDF, 0x01, 0xF0, 0x1F, 0xC0, 0xFB, 0xC0, 0x7C, 0x01, 0xF8, 0x0F, 0x78, 0x0F, 0x00, 0x3F, 0x01, 0xEF, 0x03, 0xC0, 0x07, 0xC0, 0x3F, 0xC0, 0x78, 0x00, 0xF8, 0x07, 0xF8, 0x0F, 0x00, 0x1F, 0x00, 0xFF, 0x03, 0xC0, 0x03, 0xC0, 0x1F, 0xE0, 0x78, 0x00, 0x78, 0x07, 0xFC, 0x0F, 0x00, 0x1F, 0x00, 0xF7, 0x81, 0xE0, 0x03, 0xC0, 0x1E, 0xF0, 0x3C, 0x00, 0x78, 0x07, 0x9E, 0x07, 0x80, 0x1F, 0x01, 0xF3, 0xE0, 0xF8, 0x07, 0xC0, 0x3C, 0x3C, 0x0F, 0x81, 0xF8, 0x0F, 0x87, 0x81, 0xF8, 0x7F, 0x87, 0xE0, 0xF8, 0x1F, 0xFE, 0xFF, 0xF8, 0x0F, 0x01, 0xFF, 0x1F, 0xFC, 0x01, 0xF0, 0x0F, 0x80, 0xFE, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x80, 0x00, 0x01, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0xF7, 0xC0, 0x00, 0x03, 0xDF, 0x00, 0x00, 0x1F, 0x3C, 0x00, 0x00, 0x78, 0xF8, 0x00, 0x01, 0xE3, 0xE0, 0x00, 0x0F, 0x87, 0x80, 0x00, 0x3C, 0x1F, 0x00, 0x01, 0xF0, 0x7C, 0x00, 0x07, 0x80, 0xF0, 0x00, 0x1E, 0x03, 0xE0, 0x00, 0xF8, 0x0F, 0x80, 0x03, 0xC0, 0x1E, 0x00, 0x0F, 0x00, 0x7C, 0x00, 0x7C, 0x01, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0xF0, 0x1F, 0x00, 0x07, 0xC0, 0x78, 0x00, 0x0F, 0x83, 0xE0, 0x00, 0x3E, 0x0F, 0x80, 0x00, 0xF8, 0x3C, 0x00, 0x01, 0xF1, 0xF0, 0x00, 0x07, 0xC7, 0xC0, 0x00, 0x1F, 0x1E, 0x00, 0x00, 0x3E, 0xF8, 0x00, 0x00, 0xFB, 0xE0, 0x00, 0x01, 0xE0, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xF0, 0x3F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0x0F, 0x00, 0x0F, 0xC7, 0x80, 0x01, 0xE3, 0xC0, 0x00, 0xF9, 0xE0, 0x00, 0x3C, 0xF0, 0x00, 0x1E, 0x78, 0x00, 0x0F, 0x3C, 0x00, 0x07, 0x9E, 0x00, 0x07, 0x8F, 0x00, 0x03, 0xC7, 0x80, 0x07, 0xC3, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFE, 0x3C, 0x00, 0x0F, 0x9E, 0x00, 0x03, 0xEF, 0x00, 0x00, 0xF7, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xF7, 0x80, 0x01, 0xFB, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xF0, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0x00, 0xFE, 0x01, 0xF8, 0x07, 0xC0, 0x03, 0xE0, 0x7C, 0x00, 0x0F, 0x87, 0xC0, 0x00, 0x3C, 0x3C, 0x00, 0x01, 0xE3, 0xE0, 0x00, 0x07, 0x9E, 0x00, 0x00, 0x3C, 0xF0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x78, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x78, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x07, 0xDF, 0x00, 0x00, 0x3C, 0x78, 0x00, 0x01, 0xE3, 0xE0, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF0, 0x3E, 0x00, 0x1F, 0x81, 0xFE, 0x03, 0xF8, 0x07, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFE, 0x0F, 0x00, 0x0F, 0xE1, 0xE0, 0x00, 0x7E, 0x3C, 0x00, 0x07, 0xE7, 0x80, 0x00, 0x7C, 0xF0, 0x00, 0x07, 0xDE, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x0F, 0x78, 0x00, 0x01, 0xEF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xF7, 0x80, 0x00, 0x1E, 0xF0, 0x00, 0x03, 0xDE, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x3E, 0x78, 0x00, 0x0F, 0xCF, 0x00, 0x03, 0xF1, 0xE0, 0x01, 0xFC, 0x3F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3F, 0xFF, 0xFC, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x7F, 0x80, 0x7F, 0x01, 0xF8, 0x00, 0x3F, 0x07, 0xE0, 0x00, 0x1F, 0x0F, 0x80, 0x00, 0x1E, 0x3E, 0x00, 0x00, 0x3E, 0x78, 0x00, 0x00, 0x3D, 0xF0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x07, 0xBC, 0x00, 0x00, 0x0F, 0x78, 0x00, 0x00, 0x1E, 0xF8, 0x00, 0x00, 0x7D, 0xF0, 0x00, 0x00, 0xF9, 0xF0, 0x00, 0x03, 0xF3, 0xF0, 0x00, 0x07, 0xE3, 0xF0, 0x00, 0x1F, 0xC3, 0xF0, 0x00, 0xFF, 0x83, 0xFC, 0x07, 0xEF, 0x03, 0xFF, 0xFF, 0x9E, 0x03, 0xFF, 0xFE, 0x1C, 0x01, 0xFF, 0xF0, 0x38, 0x00, 0x7F, 0x80, 0x00, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, 0x3F, 0xC0, 0x07, 0xF8, 0x01, 0xFF, 0x80, 0x3E, 0xF0, 0x0F, 0x9F, 0x83, 0xF1, 0xFF, 0xFC, 0x3F, 0xFF, 0x01, 0xFF, 0xC0, 0x0F, 0xE0, 0x00, 0xF0, 0x00, 0x07, 0xDE, 0x00, 0x01, 0xF3, 0xC0, 0x00, 0x7C, 0x78, 0x00, 0x1F, 0x0F, 0x00, 0x07, 0xC1, 0xE0, 0x01, 0xF0, 0x3C, 0x00, 0x7C, 0x07, 0x80, 0x1F, 0x00, 0xF0, 0x07, 0xC0, 0x1E, 0x01, 0xF0, 0x03, 0xC0, 0x7C, 0x00, 0x78, 0x1F, 0x00, 0x0F, 0x07, 0xC0, 0x01, 0xE1, 0xF0, 0x00, 0x3C, 0x7E, 0x00, 0x07, 0x9F, 0xE0, 0x00, 0xF7, 0xFE, 0x00, 0x1F, 0xF7, 0xC0, 0x03, 0xFC, 0x7C, 0x00, 0x7F, 0x07, 0xC0, 0x0F, 0xC0, 0xF8, 0x01, 0xF0, 0x0F, 0x80, 0x3C, 0x00, 0xF8, 0x07, 0x80, 0x1F, 0x80, 0xF0, 0x01, 0xF0, 0x1E, 0x00, 0x1F, 0x03, 0xC0, 0x03, 0xF0, 0x78, 0x00, 0x3E, 0x0F, 0x00, 0x03, 0xE1, 0xE0, 0x00, 0x3E, 0x3C, 0x00, 0x07, 0xC7, 0x80, 0x00, 0x7C, 0xF0, 0x00, 0x07, 0xDE, 0x00, 0x00, 0xFC, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFC, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xF7, 0x00, 0x00, 0xEF, 0xF7, 0x80, 0x01, 0xEF, 0xF7, 0x80, 0x01, 0xEF, 0xF3, 0xC0, 0x01, 0xCF, 0xF3, 0xC0, 0x03, 0xCF, 0xF3, 0xC0, 0x03, 0xCF, 0xF1, 0xE0, 0x03, 0x8F, 0xF1, 0xE0, 0x07, 0x8F, 0xF1, 0xE0, 0x07, 0x8F, 0xF0, 0xF0, 0x0F, 0x0F, 0xF0, 0xF0, 0x0F, 0x0F, 0xF0, 0xF0, 0x0F, 0x0F, 0xF0, 0x78, 0x1E, 0x0F, 0xF0, 0x78, 0x1E, 0x0F, 0xF0, 0x78, 0x1E, 0x0F, 0xF0, 0x3C, 0x3C, 0x0F, 0xF0, 0x3C, 0x3C, 0x0F, 0xF0, 0x3C, 0x3C, 0x0F, 0xF0, 0x1E, 0x78, 0x0F, 0xF0, 0x1E, 0x78, 0x0F, 0xF0, 0x0E, 0x78, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x07, 0xF0, 0x0F, 0xF0, 0x07, 0xE0, 0x0F, 0xF0, 0x07, 0xE0, 0x0F, 0xF0, 0x03, 0xE0, 0x0F, 0xF8, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x3F, 0xF8, 0x00, 0x0F, 0xFE, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0xFF, 0xF8, 0x00, 0x3F, 0xDE, 0x00, 0x0F, 0xF7, 0xC0, 0x03, 0xFC, 0xF8, 0x00, 0xFF, 0x1E, 0x00, 0x3F, 0xC7, 0xC0, 0x0F, 0xF0, 0xF0, 0x03, 0xFC, 0x3E, 0x00, 0xFF, 0x07, 0xC0, 0x3F, 0xC0, 0xF0, 0x0F, 0xF0, 0x3E, 0x03, 0xFC, 0x07, 0xC0, 0xFF, 0x00, 0xF0, 0x3F, 0xC0, 0x3E, 0x0F, 0xF0, 0x07, 0x83, 0xFC, 0x01, 0xF0, 0xFF, 0x00, 0x3E, 0x3F, 0xC0, 0x07, 0x8F, 0xF0, 0x01, 0xF3, 0xFC, 0x00, 0x3E, 0xFF, 0x00, 0x07, 0xBF, 0xC0, 0x01, 0xFF, 0xF0, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFF, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x3F, 0xF0, 0x00, 0x0F, 0xFC, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x7F, 0x80, 0xFF, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x7E, 0x00, 0x03, 0xF0, 0x3E, 0x00, 0x00, 0xF8, 0x3E, 0x00, 0x00, 0x3E, 0x1E, 0x00, 0x00, 0x0F, 0x1F, 0x00, 0x00, 0x07, 0xCF, 0x00, 0x00, 0x01, 0xE7, 0x80, 0x00, 0x00, 0xF7, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x3E, 0xF0, 0x00, 0x00, 0x1E, 0x78, 0x00, 0x00, 0x0F, 0x3E, 0x00, 0x00, 0x0F, 0x8F, 0x00, 0x00, 0x07, 0x87, 0xC0, 0x00, 0x07, 0xC1, 0xF0, 0x00, 0x07, 0xC0, 0xFC, 0x00, 0x07, 0xE0, 0x3F, 0x00, 0x07, 0xE0, 0x0F, 0xF0, 0x1F, 0xE0, 0x03, 0xFF, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xE0, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFC, 0xF0, 0x00, 0xFE, 0xF0, 0x00, 0x3E, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x3E, 0xF0, 0x00, 0xFE, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xC0, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0x7F, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x7F, 0x80, 0xFF, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x7E, 0x00, 0x03, 0xF0, 0x3E, 0x00, 0x00, 0xF8, 0x3E, 0x00, 0x00, 0x3E, 0x1E, 0x00, 0x00, 0x0F, 0x1F, 0x00, 0x00, 0x07, 0xCF, 0x00, 0x00, 0x01, 0xE7, 0x80, 0x00, 0x00, 0xF7, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x3E, 0xF0, 0x00, 0x00, 0x1E, 0x78, 0x00, 0x00, 0x0F, 0x3E, 0x00, 0x00, 0x0F, 0x8F, 0x00, 0x03, 0x87, 0x87, 0xC0, 0x03, 0xE7, 0xC1, 0xF0, 0x00, 0xFF, 0xC0, 0xFC, 0x00, 0x3F, 0xE0, 0x3F, 0x00, 0x0F, 0xE0, 0x0F, 0xF0, 0x1F, 0xF0, 0x03, 0xFF, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xC7, 0xC0, 0x01, 0xFF, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0xF0, 0x00, 0x3F, 0x3C, 0x00, 0x07, 0xCF, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x1E, 0xF0, 0x00, 0x07, 0xBC, 0x00, 0x01, 0xEF, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x1E, 0xF0, 0x00, 0x07, 0xBC, 0x00, 0x03, 0xCF, 0x00, 0x01, 0xF3, 0xC0, 0x00, 0xF8, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0xF0, 0x00, 0x3F, 0x3C, 0x00, 0x03, 0xCF, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x1E, 0xF0, 0x00, 0x07, 0xBC, 0x00, 0x01, 0xEF, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x1E, 0xF0, 0x00, 0x07, 0xBC, 0x00, 0x01, 0xEF, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x1E, 0xF0, 0x00, 0x07, 0xFC, 0x00, 0x01, 0xF0, 0x00, 0x7F, 0xC0, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x81, 0xF8, 0x07, 0xF0, 0x7C, 0x00, 0x1F, 0x0F, 0x00, 0x01, 0xE3, 0xE0, 0x00, 0x3E, 0x78, 0x00, 0x03, 0xCF, 0x00, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x7F, 0xFF, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xF7, 0x80, 0x00, 0x3E, 0xF8, 0x00, 0x07, 0x9F, 0x80, 0x01, 0xF1, 0xFE, 0x01, 0xFC, 0x1F, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x00, 0x3F, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7D, 0xE0, 0x00, 0x1E, 0x7C, 0x00, 0x0F, 0x9F, 0x80, 0x07, 0xE3, 0xF8, 0x07, 0xF0, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFC, 0x00, 0xFF, 0xFC, 0x00, 0x0F, 0xF8, 0x00, 0xF8, 0x00, 0x00, 0xF7, 0xC0, 0x00, 0x0F, 0x9E, 0x00, 0x00, 0x7C, 0xF8, 0x00, 0x03, 0xC7, 0xC0, 0x00, 0x3E, 0x1E, 0x00, 0x01, 0xF0, 0xF8, 0x00, 0x0F, 0x07, 0xC0, 0x00, 0xF8, 0x1E, 0x00, 0x07, 0xC0, 0xF8, 0x00, 0x3C, 0x07, 0xC0, 0x03, 0xE0, 0x1E, 0x00, 0x1F, 0x00, 0xF8, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x80, 0x1E, 0x00, 0x7C, 0x00, 0xF8, 0x03, 0xC0, 0x03, 0xC0, 0x1E, 0x00, 0x1F, 0x01, 0xF0, 0x00, 0xF8, 0x0F, 0x00, 0x03, 0xC0, 0x78, 0x00, 0x1F, 0x07, 0x80, 0x00, 0xF8, 0x3C, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0x1F, 0x1E, 0x00, 0x00, 0x78, 0xF0, 0x00, 0x03, 0xC7, 0x80, 0x00, 0x1F, 0x78, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x03, 0xDE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xFE, 0x00, 0x0F, 0xC0, 0x01, 0xFF, 0x80, 0x03, 0xF0, 0x00, 0x7D, 0xE0, 0x00, 0xFC, 0x00, 0x1E, 0x7C, 0x00, 0x7F, 0x80, 0x0F, 0x9F, 0x00, 0x1F, 0xE0, 0x03, 0xE7, 0xC0, 0x07, 0xF8, 0x00, 0xF8, 0xF0, 0x01, 0xFF, 0x00, 0x3C, 0x3E, 0x00, 0xF3, 0xC0, 0x1F, 0x0F, 0x80, 0x3C, 0xF0, 0x07, 0xC3, 0xE0, 0x0F, 0x3C, 0x01, 0xF0, 0x78, 0x07, 0xC7, 0x80, 0x78, 0x1F, 0x01, 0xE1, 0xE0, 0x1E, 0x07, 0xC0, 0x78, 0x78, 0x0F, 0x80, 0xF0, 0x1E, 0x1E, 0x03, 0xE0, 0x3C, 0x0F, 0x83, 0xC0, 0xF0, 0x0F, 0x83, 0xC0, 0xF0, 0x3C, 0x03, 0xE0, 0xF0, 0x3C, 0x1F, 0x00, 0x78, 0x3C, 0x0F, 0x87, 0xC0, 0x1E, 0x1E, 0x01, 0xE1, 0xE0, 0x07, 0x87, 0x80, 0x78, 0x78, 0x01, 0xF1, 0xE0, 0x1E, 0x1E, 0x00, 0x3C, 0xF8, 0x03, 0xCF, 0x80, 0x0F, 0x3C, 0x00, 0xF3, 0xC0, 0x03, 0xCF, 0x00, 0x3C, 0xF0, 0x00, 0xFB, 0xC0, 0x0F, 0xBC, 0x00, 0x1F, 0xF0, 0x01, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x7F, 0x80, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x03, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x01, 0xF3, 0xF0, 0x00, 0x1F, 0x8F, 0x80, 0x00, 0xF8, 0x3E, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0xF8, 0x07, 0xC0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x00, 0x7C, 0x07, 0xC0, 0x03, 0xE0, 0x3E, 0x00, 0x0F, 0x83, 0xE0, 0x00, 0x3E, 0x3E, 0x00, 0x01, 0xF1, 0xF0, 0x00, 0x07, 0xDF, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x07, 0xDF, 0x00, 0x00, 0x7C, 0x78, 0x00, 0x03, 0xE3, 0xE0, 0x00, 0x3E, 0x0F, 0x80, 0x03, 0xE0, 0x3E, 0x00, 0x1F, 0x01, 0xF0, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x3F, 0x00, 0xF8, 0x00, 0xF8, 0x0F, 0x80, 0x03, 0xE0, 0xF8, 0x00, 0x1F, 0x8F, 0xC0, 0x00, 0x7C, 0x7C, 0x00, 0x01, 0xF7, 0xC0, 0x00, 0x0F, 0xC0, 0xFC, 0x00, 0x00, 0xFD, 0xF0, 0x00, 0x03, 0xE7, 0xE0, 0x00, 0x1F, 0x0F, 0x80, 0x00, 0x7C, 0x1F, 0x00, 0x03, 0xE0, 0x7C, 0x00, 0x1F, 0x00, 0xF8, 0x00, 0x7C, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x0F, 0x80, 0x7C, 0x00, 0x1E, 0x01, 0xE0, 0x00, 0x7C, 0x0F, 0x80, 0x00, 0xF8, 0x7C, 0x00, 0x03, 0xE1, 0xE0, 0x00, 0x07, 0xCF, 0x80, 0x00, 0x0F, 0x3C, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xE0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x07, 0x00, 0x18, 0x00, 0xE0, 0x07, 0x00, 0x18, 0x00, 0xE0, 0x07, 0x00, 0x18, 0x00, 0xC0, 0x07, 0x00, 0x38, 0x00, 0xC0, 0x07, 0x00, 0x38, 0x00, 0xC0, 0x06, 0x00, 0x38, 0x00, 0xC0, 0x06, 0x00, 0x38, 0x01, 0xC0, 0x06, 0x00, 0x38, 0x01, 0xC0, 0x06, 0x00, 0x30, 0x01, 0xC0, 0x0E, 0x00, 0x30, 0x01, 0xC0, 0x0E, 0x00, 0x30, 0x01, 0xC0, 0x0E, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x07, 0xF8, 0x01, 0xCE, 0x00, 0x73, 0x80, 0x3C, 0x70, 0x0E, 0x1C, 0x07, 0x87, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x38, 0x07, 0x0E, 0x01, 0xC7, 0x80, 0x79, 0xC0, 0x0E, 0x70, 0x03, 0xB8, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x00, 0xE0, 0x1C, 0x01, 0xFF, 0x00, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0xE0, 0x3F, 0xFF, 0xF0, 0x7E, 0x03, 0xF8, 0x7C, 0x00, 0xF8, 0x78, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0xFF, 0xF8, 0x0F, 0xFF, 0xF8, 0x3F, 0xFE, 0x78, 0x7F, 0x80, 0x78, 0xFC, 0x00, 0x78, 0xF8, 0x00, 0x78, 0xF0, 0x00, 0x78, 0xF0, 0x00, 0xF8, 0xF0, 0x00, 0xF8, 0xF8, 0x03, 0xF8, 0x7E, 0x0F, 0xF8, 0x7F, 0xFF, 0x7F, 0x3F, 0xFE, 0x3F, 0x1F, 0xFC, 0x3F, 0x07, 0xE0, 0x1F, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x7E, 0x03, 0xC7, 0xFE, 0x0F, 0x7F, 0xFC, 0x3D, 0xFF, 0xF8, 0xFF, 0x07, 0xF3, 0xF8, 0x07, 0xCF, 0xC0, 0x0F, 0xBE, 0x00, 0x1E, 0xF8, 0x00, 0x7B, 0xE0, 0x01, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x01, 0xFF, 0x80, 0x07, 0xBE, 0x00, 0x1E, 0xFC, 0x00, 0xFB, 0xF8, 0x07, 0xCF, 0xF0, 0x7F, 0x3B, 0xFF, 0xF8, 0xE7, 0xFF, 0xC3, 0x8F, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0xFE, 0x00, 0x3F, 0xFC, 0x03, 0xFF, 0xF0, 0x3F, 0xFF, 0xC3, 0xF0, 0x3F, 0x1F, 0x00, 0xF9, 0xF0, 0x03, 0xCF, 0x00, 0x0F, 0x78, 0x00, 0x07, 0xC0, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x1E, 0xF0, 0x00, 0xF7, 0xC0, 0x0F, 0x9F, 0x00, 0xF8, 0xFC, 0x0F, 0xC3, 0xFF, 0xFC, 0x0F, 0xFF, 0xC0, 0x3F, 0xFC, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x01, 0xFC, 0x1E, 0x0F, 0xFE, 0x3C, 0x3F, 0xFF, 0x78, 0xFF, 0xFF, 0xF3, 0xF8, 0x3F, 0xE7, 0xC0, 0x1F, 0xDF, 0x00, 0x1F, 0xBE, 0x00, 0x1F, 0x78, 0x00, 0x3F, 0xF0, 0x00, 0x7F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x7D, 0xE0, 0x00, 0xFB, 0xC0, 0x01, 0xF7, 0xC0, 0x07, 0xE7, 0xC0, 0x1F, 0xCF, 0xE0, 0xFF, 0x8F, 0xFF, 0xF7, 0x0F, 0xFF, 0xCE, 0x0F, 0xFF, 0x1C, 0x07, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x0F, 0xFE, 0x00, 0xFF, 0xFC, 0x07, 0xFF, 0xF8, 0x1F, 0x83, 0xF0, 0xF8, 0x07, 0xC7, 0xC0, 0x0F, 0x9E, 0x00, 0x1E, 0x78, 0x00, 0x7B, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x1E, 0x7C, 0x00, 0x78, 0xF8, 0x03, 0xE3, 0xF0, 0x3F, 0x07, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0x1F, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0x03, 0xC3, 0xF0, 0xFC, 0x7F, 0x1F, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x3F, 0xFF, 0xFF, 0xFF, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x80, 0x00, 0xFC, 0x00, 0x1F, 0xF8, 0xF0, 0xFF, 0xFB, 0xC7, 0xFF, 0xFF, 0x3F, 0x83, 0xFC, 0xF8, 0x07, 0xF7, 0xC0, 0x0F, 0xDE, 0x00, 0x1F, 0x78, 0x00, 0x7F, 0xE0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xF7, 0x80, 0x07, 0xDE, 0x00, 0x1F, 0x7C, 0x00, 0xFC, 0xF8, 0x07, 0xF3, 0xF8, 0x3F, 0xC7, 0xFF, 0xEF, 0x0F, 0xFF, 0x3C, 0x1F, 0xF8, 0xF0, 0x1F, 0x83, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x79, 0xE0, 0x01, 0xE7, 0xC0, 0x0F, 0x8F, 0x80, 0xFC, 0x3F, 0xFF, 0xF0, 0x7F, 0xFF, 0x80, 0xFF, 0xFC, 0x00, 0x7F, 0x80, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0xFE, 0x1E, 0x3F, 0xE3, 0xCF, 0xFF, 0x7B, 0xFF, 0xEF, 0xF0, 0xFF, 0xF8, 0x07, 0xFF, 0x00, 0x7F, 0xC0, 0x0F, 0xF8, 0x01, 0xFE, 0x00, 0x3F, 0xC0, 0x07, 0xF8, 0x00, 0xFF, 0x00, 0x1F, 0xE0, 0x03, 0xFC, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, 0x3F, 0xC0, 0x07, 0xF8, 0x00, 0xFF, 0x00, 0x1F, 0xE0, 0x03, 0xFC, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, 0x3C, 0xFF, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x1F, 0xFF, 0xFE, 0xFE, 0xF8, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x1F, 0x3C, 0x01, 0xF1, 0xE0, 0x1F, 0x0F, 0x01, 0xF0, 0x78, 0x1F, 0x03, 0xC1, 0xF0, 0x1E, 0x1F, 0x00, 0xF1, 0xF0, 0x07, 0x9F, 0x00, 0x3D, 0xF8, 0x01, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x7F, 0x7C, 0x03, 0xF1, 0xF0, 0x1F, 0x07, 0xC0, 0xF0, 0x3E, 0x07, 0x80, 0xF8, 0x3C, 0x03, 0xC1, 0xE0, 0x1F, 0x0F, 0x00, 0x7C, 0x78, 0x03, 0xE3, 0xC0, 0x0F, 0x9E, 0x00, 0x3C, 0xF0, 0x01, 0xF7, 0x80, 0x07, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFC, 0x03, 0xF0, 0xE3, 0xFE, 0x0F, 0xFC, 0xE7, 0xFF, 0x1F, 0xFE, 0xEF, 0xFF, 0xBF, 0xFE, 0xFE, 0x0F, 0xF8, 0x3F, 0xFC, 0x07, 0xF0, 0x1F, 0xF8, 0x03, 0xE0, 0x0F, 0xF8, 0x03, 0xE0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x7E, 0x0E, 0x1F, 0xF8, 0xE7, 0xFF, 0xCE, 0xFF, 0xFE, 0xEF, 0x07, 0xFF, 0xE0, 0x1F, 0xFC, 0x01, 0xFF, 0x80, 0x0F, 0xF8, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0x00, 0xFE, 0x00, 0x07, 0xFF, 0x00, 0x3F, 0xFF, 0x80, 0xFF, 0xFF, 0x83, 0xF8, 0x3F, 0x87, 0xC0, 0x1F, 0x1F, 0x00, 0x1F, 0x3C, 0x00, 0x1E, 0x78, 0x00, 0x3D, 0xF0, 0x00, 0x7F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x7D, 0xE0, 0x00, 0xF3, 0xC0, 0x01, 0xE7, 0xC0, 0x07, 0xC7, 0xC0, 0x1F, 0x0F, 0xE0, 0xFE, 0x0F, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x03, 0xF8, 0x00, 0x00, 0xFE, 0x03, 0x8F, 0xFE, 0x0E, 0x7F, 0xFC, 0x3B, 0xFF, 0xF8, 0xFF, 0x87, 0xF3, 0xF8, 0x07, 0xCF, 0xC0, 0x0F, 0xBE, 0x00, 0x1E, 0xF8, 0x00, 0x7B, 0xE0, 0x01, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x01, 0xFF, 0x80, 0x07, 0xBE, 0x00, 0x1E, 0xFC, 0x00, 0xFB, 0xF8, 0x07, 0xCF, 0xF0, 0x7F, 0x3F, 0xFF, 0xF8, 0xF7, 0xFF, 0xC3, 0xC7, 0xFE, 0x0F, 0x07, 0xE0, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x07, 0xFF, 0x1C, 0x3F, 0xFF, 0x38, 0xFF, 0xFF, 0x73, 0xF8, 0x3F, 0xE7, 0xC0, 0x1F, 0xDF, 0x00, 0x1F, 0xBE, 0x00, 0x1F, 0x78, 0x00, 0x3F, 0xF0, 0x00, 0x7F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x7D, 0xE0, 0x00, 0xFB, 0xC0, 0x01, 0xF7, 0xC0, 0x07, 0xE7, 0xC0, 0x1F, 0xCF, 0xE0, 0xFF, 0x8F, 0xFF, 0xEF, 0x0F, 0xFF, 0xDE, 0x0F, 0xFE, 0x3C, 0x07, 0xF0, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0xFE, 0x1F, 0xE7, 0xFE, 0xFF, 0xFF, 0x8F, 0xC0, 0xF8, 0x0F, 0x80, 0xF8, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0x01, 0xFC, 0x00, 0xFF, 0xF0, 0x1F, 0xFF, 0x83, 0xFF, 0xFC, 0x3E, 0x07, 0xE7, 0xC0, 0x3E, 0x78, 0x01, 0xE7, 0x80, 0x00, 0x78, 0x00, 0x07, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xFC, 0x00, 0x1F, 0xFC, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x03, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x1F, 0x7E, 0x07, 0xE7, 0xFF, 0xFE, 0x3F, 0xFF, 0xC1, 0xFF, 0xF0, 0x03, 0xFC, 0x00, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x8F, 0xFF, 0xFF, 0xFF, 0xC7, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1F, 0xC7, 0xF0, 0xFC, 0x1F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x1F, 0xF0, 0x01, 0xFF, 0x00, 0x3F, 0xF8, 0x07, 0xFF, 0xE0, 0xFF, 0x7F, 0xFF, 0x77, 0xFF, 0xE7, 0x1F, 0xFC, 0x70, 0x7E, 0x00, 0x78, 0x00, 0x3E, 0xF0, 0x00, 0x79, 0xF0, 0x00, 0xF1, 0xE0, 0x03, 0xE3, 0xC0, 0x07, 0x87, 0xC0, 0x0F, 0x07, 0x80, 0x3C, 0x0F, 0x00, 0x78, 0x1F, 0x01, 0xF0, 0x1E, 0x03, 0xC0, 0x3C, 0x07, 0x80, 0x7C, 0x1F, 0x00, 0x78, 0x3C, 0x00, 0xF0, 0x78, 0x01, 0xF1, 0xE0, 0x01, 0xE3, 0xC0, 0x03, 0xC7, 0x80, 0x03, 0xDE, 0x00, 0x07, 0xBC, 0x00, 0x0F, 0x70, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0xF8, 0x03, 0xE0, 0x07, 0x9E, 0x00, 0xFC, 0x01, 0xE7, 0x80, 0x3F, 0x00, 0x79, 0xF0, 0x0F, 0xC0, 0x3E, 0x3C, 0x07, 0xF0, 0x0F, 0x0F, 0x01, 0xFE, 0x03, 0xC3, 0xC0, 0x7F, 0x80, 0xF0, 0x78, 0x1D, 0xE0, 0x78, 0x1E, 0x0F, 0x38, 0x1E, 0x07, 0x83, 0xCF, 0x07, 0x81, 0xE0, 0xF3, 0xC1, 0xE0, 0x3C, 0x38, 0xF0, 0xF0, 0x0F, 0x1E, 0x1C, 0x3C, 0x03, 0xC7, 0x87, 0x8F, 0x00, 0x71, 0xE1, 0xE3, 0x80, 0x1E, 0x70, 0x79, 0xE0, 0x07, 0xBC, 0x0E, 0x78, 0x01, 0xEF, 0x03, 0xDE, 0x00, 0x3B, 0xC0, 0xF7, 0x00, 0x0F, 0xE0, 0x3F, 0xC0, 0x03, 0xF8, 0x07, 0xF0, 0x00, 0x7E, 0x01, 0xF8, 0x00, 0x1F, 0x80, 0x7E, 0x00, 0x07, 0xC0, 0x1F, 0x80, 0x01, 0xF0, 0x03, 0xC0, 0x00, 0x7C, 0x00, 0x78, 0xF0, 0x03, 0xE1, 0xE0, 0x0F, 0x07, 0xC0, 0x78, 0x0F, 0x03, 0xE0, 0x1E, 0x0F, 0x00, 0x7C, 0x78, 0x00, 0xF3, 0xE0, 0x01, 0xEF, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0xC0, 0x03, 0xCF, 0x00, 0x0F, 0x1E, 0x00, 0x78, 0x7C, 0x03, 0xE0, 0xF0, 0x0F, 0x03, 0xE0, 0x78, 0x07, 0xC3, 0xE0, 0x0F, 0x1F, 0x00, 0x3E, 0x78, 0x00, 0x7C, 0x78, 0x00, 0x3D, 0xE0, 0x01, 0xF7, 0x80, 0x07, 0x8F, 0x00, 0x1E, 0x3C, 0x00, 0xF0, 0xF0, 0x03, 0xC1, 0xE0, 0x0F, 0x07, 0x80, 0x78, 0x1E, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x3C, 0x03, 0xC0, 0xF0, 0x07, 0x87, 0xC0, 0x1E, 0x1E, 0x00, 0x78, 0x78, 0x00, 0xF3, 0xC0, 0x03, 0xCF, 0x00, 0x0F, 0x3C, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x01, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3E, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFE, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x7F, 0xFF, 0xF7, 0xFF, 0xFF, 0x7F, 0xFF, 0xF7, 0xFF, 0xFF, 0x00, 0x01, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x01, 0xE0, 0xFC, 0x1F, 0x87, 0x80, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x78, 0x1E, 0x0F, 0x81, 0xE0, 0x3C, 0x07, 0xC0, 0x3C, 0x03, 0x80, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0F, 0x00, 0xFC, 0x1F, 0x80, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0x1F, 0x83, 0xF0, 0x0F, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x1C, 0x03, 0xC0, 0x3E, 0x03, 0xC0, 0x78, 0x1F, 0x07, 0x80, 0xE0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x1E, 0x1F, 0x83, 0xF0, 0x78, 0x00, 0x3E, 0x00, 0x0F, 0xF0, 0x0D, 0xFF, 0x01, 0xF0, 0xF8, 0x7C, 0x0F, 0xFD, 0x80, 0x7F, 0x80, 0x03, 0xE0}; const GFXglyph FreeSans24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 12, 0, 1}, // 0x20 ' ' {0, 4, 34, 16, 6, -33}, // 0x21 '!' {17, 11, 12, 16, 2, -32}, // 0x22 '"' {34, 24, 33, 26, 1, -31}, // 0x23 '#' {133, 23, 41, 26, 1, -34}, // 0x24 '$' {251, 39, 34, 42, 1, -32}, // 0x25 '%' {417, 28, 34, 31, 2, -32}, // 0x26 '&' {536, 4, 12, 9, 2, -32}, // 0x27 ''' {542, 10, 44, 16, 3, -33}, // 0x28 '(' {597, 10, 44, 16, 2, -33}, // 0x29 ')' {652, 14, 14, 18, 2, -33}, // 0x2A '*' {677, 23, 22, 27, 2, -21}, // 0x2B '+' {741, 4, 12, 13, 4, -4}, // 0x2C ',' {747, 11, 4, 16, 2, -14}, // 0x2D '-' {753, 4, 5, 12, 4, -4}, // 0x2E '.' {756, 13, 35, 13, 0, -33}, // 0x2F '/' {813, 22, 34, 26, 2, -32}, // 0x30 '0' {907, 11, 33, 26, 5, -32}, // 0x31 '1' {953, 22, 33, 26, 2, -32}, // 0x32 '2' {1044, 23, 34, 26, 1, -32}, // 0x33 '3' {1142, 23, 33, 26, 1, -32}, // 0x34 '4' {1237, 22, 34, 26, 2, -32}, // 0x35 '5' {1331, 22, 34, 26, 2, -32}, // 0x36 '6' {1425, 21, 33, 26, 2, -32}, // 0x37 '7' {1512, 22, 34, 26, 2, -32}, // 0x38 '8' {1606, 21, 34, 26, 2, -32}, // 0x39 '9' {1696, 4, 25, 12, 4, -24}, // 0x3A ':' {1709, 4, 32, 12, 4, -24}, // 0x3B ';' {1725, 23, 23, 27, 2, -22}, // 0x3C '<' {1792, 23, 12, 27, 2, -16}, // 0x3D '=' {1827, 23, 23, 27, 2, -22}, // 0x3E '>' {1894, 20, 35, 26, 4, -34}, // 0x3F '?' {1982, 43, 42, 48, 2, -34}, // 0x40 '@' {2208, 30, 34, 31, 1, -33}, // 0x41 'A' {2336, 25, 34, 31, 4, -33}, // 0x42 'B' {2443, 29, 36, 33, 2, -34}, // 0x43 'C' {2574, 27, 34, 33, 4, -33}, // 0x44 'D' {2689, 24, 34, 30, 4, -33}, // 0x45 'E' {2791, 22, 34, 28, 4, -33}, // 0x46 'F' {2885, 31, 36, 36, 2, -34}, // 0x47 'G' {3025, 26, 34, 34, 4, -33}, // 0x48 'H' {3136, 4, 34, 13, 5, -33}, // 0x49 'I' {3153, 19, 35, 25, 2, -33}, // 0x4A 'J' {3237, 27, 34, 32, 4, -33}, // 0x4B 'K' {3352, 21, 34, 26, 4, -33}, // 0x4C 'L' {3442, 32, 34, 40, 4, -33}, // 0x4D 'M' {3578, 26, 34, 34, 4, -33}, // 0x4E 'N' {3689, 33, 36, 37, 2, -34}, // 0x4F 'O' {3838, 24, 34, 31, 4, -33}, // 0x50 'P' {3940, 33, 38, 37, 2, -34}, // 0x51 'Q' {4097, 26, 34, 33, 4, -33}, // 0x52 'R' {4208, 27, 36, 31, 2, -34}, // 0x53 'S' {4330, 26, 34, 30, 2, -33}, // 0x54 'T' {4441, 26, 35, 34, 4, -33}, // 0x55 'U' {4555, 29, 34, 30, 1, -33}, // 0x56 'V' {4679, 42, 34, 44, 1, -33}, // 0x57 'W' {4858, 29, 34, 31, 1, -33}, // 0x58 'X' {4982, 30, 34, 32, 1, -33}, // 0x59 'Y' {5110, 27, 34, 29, 1, -33}, // 0x5A 'Z' {5225, 8, 44, 13, 3, -33}, // 0x5B '[' {5269, 13, 35, 13, 0, -33}, // 0x5C '\' {5326, 8, 44, 13, 1, -33}, // 0x5D ']' {5370, 18, 18, 22, 2, -32}, // 0x5E '^' {5411, 28, 2, 26, -1, 7}, // 0x5F '_' {5418, 10, 7, 12, 1, -34}, // 0x60 '`' {5427, 24, 27, 26, 1, -25}, // 0x61 'a' {5508, 22, 35, 26, 3, -33}, // 0x62 'b' {5605, 21, 27, 24, 1, -25}, // 0x63 'c' {5676, 23, 35, 26, 1, -33}, // 0x64 'd' {5777, 22, 27, 25, 1, -25}, // 0x65 'e' {5852, 10, 34, 13, 1, -33}, // 0x66 'f' {5895, 22, 36, 26, 1, -25}, // 0x67 'g' {5994, 19, 34, 25, 3, -33}, // 0x68 'h' {6075, 4, 34, 10, 3, -33}, // 0x69 'i' {6092, 8, 44, 11, 0, -33}, // 0x6A 'j' {6136, 21, 34, 24, 3, -33}, // 0x6B 'k' {6226, 4, 34, 10, 3, -33}, // 0x6C 'l' {6243, 32, 26, 38, 3, -25}, // 0x6D 'm' {6347, 20, 26, 25, 3, -25}, // 0x6E 'n' {6412, 23, 27, 25, 1, -25}, // 0x6F 'o' {6490, 22, 35, 26, 3, -25}, // 0x70 'p' {6587, 23, 35, 26, 1, -25}, // 0x71 'q' {6688, 12, 26, 16, 3, -25}, // 0x72 'r' {6727, 20, 27, 23, 1, -25}, // 0x73 's' {6795, 10, 32, 13, 1, -30}, // 0x74 't' {6835, 20, 26, 25, 3, -24}, // 0x75 'u' {6900, 23, 25, 23, 0, -24}, // 0x76 'v' {6972, 34, 25, 34, 0, -24}, // 0x77 'w' {7079, 22, 25, 22, 0, -24}, // 0x78 'x' {7148, 22, 35, 22, 0, -24}, // 0x79 'y' {7245, 20, 25, 23, 1, -24}, // 0x7A 'z' {7308, 11, 44, 16, 2, -33}, // 0x7B '{' {7369, 3, 44, 12, 4, -33}, // 0x7C '|' {7386, 11, 44, 16, 2, -33}, // 0x7D '}' {7447, 19, 7, 24, 2, -19}}; // 0x7E '~' const GFXfont FreeSans24pt7b PROGMEM = {(uint8_t *)FreeSans24pt7bBitmaps, (GFXglyph *)FreeSans24pt7bGlyphs, 0x20, 0x7E, 56}; // Approx. 8136 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSans9pt7b.h ================================================ const uint8_t FreeSans9pt7bBitmaps[] PROGMEM = { 0xFF, 0xFF, 0xF8, 0xC0, 0xDE, 0xF7, 0x20, 0x09, 0x86, 0x41, 0x91, 0xFF, 0x13, 0x04, 0xC3, 0x20, 0xC8, 0xFF, 0x89, 0x82, 0x61, 0x90, 0x10, 0x1F, 0x14, 0xDA, 0x3D, 0x1E, 0x83, 0x40, 0x78, 0x17, 0x08, 0xF4, 0x7A, 0x35, 0x33, 0xF0, 0x40, 0x20, 0x38, 0x10, 0xEC, 0x20, 0xC6, 0x20, 0xC6, 0x40, 0xC6, 0x40, 0x6C, 0x80, 0x39, 0x00, 0x01, 0x3C, 0x02, 0x77, 0x02, 0x63, 0x04, 0x63, 0x04, 0x77, 0x08, 0x3C, 0x0E, 0x06, 0x60, 0xCC, 0x19, 0x81, 0xE0, 0x18, 0x0F, 0x03, 0x36, 0xC2, 0xD8, 0x73, 0x06, 0x31, 0xE3, 0xC4, 0xFE, 0x13, 0x26, 0x6C, 0xCC, 0xCC, 0xC4, 0x66, 0x23, 0x10, 0x8C, 0x46, 0x63, 0x33, 0x33, 0x32, 0x66, 0x4C, 0x80, 0x25, 0x7E, 0xA5, 0x00, 0x30, 0xC3, 0x3F, 0x30, 0xC3, 0x0C, 0xD6, 0xF0, 0xC0, 0x08, 0x44, 0x21, 0x10, 0x84, 0x42, 0x11, 0x08, 0x00, 0x3C, 0x66, 0x42, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x42, 0x66, 0x3C, 0x11, 0x3F, 0x33, 0x33, 0x33, 0x33, 0x30, 0x3E, 0x31, 0xB0, 0x78, 0x30, 0x18, 0x1C, 0x1C, 0x1C, 0x18, 0x18, 0x10, 0x08, 0x07, 0xF8, 0x3C, 0x66, 0xC3, 0xC3, 0x03, 0x06, 0x1C, 0x07, 0x03, 0xC3, 0xC3, 0x66, 0x3C, 0x0C, 0x18, 0x71, 0x62, 0xC9, 0xA3, 0x46, 0xFE, 0x18, 0x30, 0x60, 0xC0, 0x7F, 0x20, 0x10, 0x08, 0x08, 0x07, 0xF3, 0x8C, 0x03, 0x01, 0x80, 0xF0, 0x6C, 0x63, 0xE0, 0x1E, 0x31, 0x98, 0x78, 0x0C, 0x06, 0xF3, 0x8D, 0x83, 0xC1, 0xE0, 0xD0, 0x6C, 0x63, 0xE0, 0xFF, 0x03, 0x02, 0x06, 0x04, 0x0C, 0x08, 0x18, 0x18, 0x18, 0x10, 0x30, 0x30, 0x3E, 0x31, 0xB0, 0x78, 0x3C, 0x1B, 0x18, 0xF8, 0xC6, 0xC1, 0xE0, 0xF0, 0x6C, 0x63, 0xE0, 0x3C, 0x66, 0xC2, 0xC3, 0xC3, 0xC3, 0x67, 0x3B, 0x03, 0x03, 0xC2, 0x66, 0x3C, 0xC0, 0x00, 0x30, 0xC0, 0x00, 0x00, 0x64, 0xA0, 0x00, 0x81, 0xC7, 0x8E, 0x0C, 0x07, 0x80, 0x70, 0x0E, 0x01, 0x80, 0xFF, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x70, 0x0E, 0x01, 0xC0, 0x18, 0x38, 0x71, 0xC0, 0x80, 0x00, 0x3E, 0x31, 0xB0, 0x78, 0x30, 0x18, 0x18, 0x38, 0x18, 0x18, 0x0C, 0x00, 0x00, 0x01, 0x80, 0x03, 0xF0, 0x06, 0x0E, 0x06, 0x01, 0x86, 0x00, 0x66, 0x1D, 0xBB, 0x31, 0xCF, 0x18, 0xC7, 0x98, 0x63, 0xCC, 0x31, 0xE6, 0x11, 0xB3, 0x99, 0xCC, 0xF7, 0x86, 0x00, 0x01, 0x80, 0x00, 0x70, 0x40, 0x0F, 0xE0, 0x06, 0x00, 0xF0, 0x0F, 0x00, 0x90, 0x19, 0x81, 0x98, 0x10, 0x83, 0x0C, 0x3F, 0xC2, 0x04, 0x60, 0x66, 0x06, 0xC0, 0x30, 0xFF, 0x18, 0x33, 0x03, 0x60, 0x6C, 0x0D, 0x83, 0x3F, 0xC6, 0x06, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x6F, 0xF8, 0x1F, 0x86, 0x19, 0x81, 0xA0, 0x3C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x68, 0x0D, 0x83, 0x18, 0x61, 0xF0, 0xFF, 0x18, 0x33, 0x03, 0x60, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x03, 0x60, 0xCF, 0xF0, 0xFF, 0xE0, 0x30, 0x18, 0x0C, 0x06, 0x03, 0xFD, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0F, 0xF8, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x0F, 0x83, 0x0E, 0x60, 0x66, 0x03, 0xC0, 0x0C, 0x00, 0xC1, 0xFC, 0x03, 0xC0, 0x36, 0x03, 0x60, 0x73, 0x0F, 0x0F, 0x10, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xFF, 0xFE, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x06, 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x07, 0x8F, 0x1E, 0x27, 0x80, 0xC0, 0xD8, 0x33, 0x0C, 0x63, 0x0C, 0xC1, 0xB8, 0x3F, 0x07, 0x30, 0xC3, 0x18, 0x63, 0x06, 0x60, 0x6C, 0x0C, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0xE0, 0x3F, 0x01, 0xFC, 0x1F, 0xE0, 0xFD, 0x05, 0xEC, 0x6F, 0x63, 0x79, 0x13, 0xCD, 0x9E, 0x6C, 0xF1, 0x47, 0x8E, 0x3C, 0x71, 0x80, 0xE0, 0x7C, 0x0F, 0xC1, 0xE8, 0x3D, 0x87, 0x98, 0xF1, 0x1E, 0x33, 0xC3, 0x78, 0x6F, 0x07, 0xE0, 0x7C, 0x0E, 0x0F, 0x81, 0x83, 0x18, 0x0C, 0xC0, 0x6C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1B, 0x01, 0x98, 0x0C, 0x60, 0xC0, 0xF8, 0x00, 0xFF, 0x30, 0x6C, 0x0F, 0x03, 0xC0, 0xF0, 0x6F, 0xF3, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x00, 0x0F, 0x81, 0x83, 0x18, 0x0C, 0xC0, 0x6C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1B, 0x01, 0x98, 0x6C, 0x60, 0xC0, 0xFB, 0x00, 0x08, 0xFF, 0x8C, 0x0E, 0xC0, 0x6C, 0x06, 0xC0, 0x6C, 0x0C, 0xFF, 0x8C, 0x0E, 0xC0, 0x6C, 0x06, 0xC0, 0x6C, 0x06, 0xC0, 0x70, 0x3F, 0x18, 0x6C, 0x0F, 0x03, 0xC0, 0x1E, 0x01, 0xF0, 0x0E, 0x00, 0xF0, 0x3C, 0x0D, 0x86, 0x3F, 0x00, 0xFF, 0x86, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xB0, 0x61, 0xF0, 0xC0, 0x6C, 0x0D, 0x81, 0x10, 0x63, 0x0C, 0x61, 0x04, 0x60, 0xCC, 0x19, 0x01, 0x60, 0x3C, 0x07, 0x00, 0x60, 0xC1, 0x81, 0x30, 0xE1, 0x98, 0x70, 0xCC, 0x28, 0x66, 0x26, 0x21, 0x13, 0x30, 0xC8, 0x98, 0x6C, 0x4C, 0x14, 0x34, 0x0A, 0x1A, 0x07, 0x07, 0x03, 0x03, 0x80, 0x81, 0x80, 0x60, 0x63, 0x0C, 0x30, 0xC1, 0x98, 0x0F, 0x00, 0xE0, 0x06, 0x00, 0xF0, 0x19, 0x01, 0x98, 0x30, 0xC6, 0x0E, 0x60, 0x60, 0xC0, 0x36, 0x06, 0x30, 0xC3, 0x0C, 0x19, 0x81, 0xD8, 0x0F, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0xFF, 0xC0, 0x60, 0x30, 0x0C, 0x06, 0x03, 0x01, 0xC0, 0x60, 0x30, 0x18, 0x06, 0x03, 0x00, 0xFF, 0xC0, 0xFB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xE0, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x80, 0xED, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0xE0, 0x30, 0x60, 0xA2, 0x44, 0xD8, 0xA1, 0x80, 0xFF, 0xC0, 0xC6, 0x30, 0x7E, 0x71, 0xB0, 0xC0, 0x60, 0xF3, 0xDB, 0x0D, 0x86, 0xC7, 0x3D, 0xC0, 0xC0, 0x60, 0x30, 0x1B, 0xCE, 0x36, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x7C, 0x6D, 0xE0, 0x3C, 0x66, 0xC3, 0xC0, 0xC0, 0xC0, 0xC0, 0xC3, 0x66, 0x3C, 0x03, 0x03, 0x03, 0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x67, 0x3B, 0x3C, 0x66, 0xC3, 0xC3, 0xFF, 0xC0, 0xC0, 0xC3, 0x66, 0x3C, 0x36, 0x6F, 0x66, 0x66, 0x66, 0x66, 0x60, 0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x67, 0x3B, 0x03, 0x03, 0xC6, 0x7C, 0xC0, 0xC0, 0xC0, 0xDE, 0xE3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF, 0xC0, 0x30, 0x03, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0xE0, 0xC0, 0x60, 0x30, 0x18, 0x4C, 0x46, 0x63, 0x61, 0xF0, 0xEC, 0x62, 0x31, 0x98, 0x6C, 0x30, 0xFF, 0xFF, 0xFF, 0xC0, 0xDE, 0xF7, 0x1C, 0xF0, 0xC7, 0x86, 0x3C, 0x31, 0xE1, 0x8F, 0x0C, 0x78, 0x63, 0xC3, 0x1E, 0x18, 0xC0, 0xDE, 0xE3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x3C, 0x66, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x66, 0x3C, 0xDE, 0x71, 0xB0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xE3, 0x6F, 0x30, 0x18, 0x0C, 0x00, 0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x67, 0x3B, 0x03, 0x03, 0x03, 0xDF, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x00, 0x3E, 0xE3, 0xC0, 0xC0, 0xE0, 0x3C, 0x07, 0xC3, 0xE3, 0x7E, 0x66, 0xF6, 0x66, 0x66, 0x66, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC7, 0x7B, 0xC1, 0xA0, 0x98, 0xCC, 0x42, 0x21, 0xB0, 0xD0, 0x28, 0x1C, 0x0C, 0x00, 0xC6, 0x1E, 0x38, 0x91, 0xC4, 0xCA, 0x66, 0xD3, 0x16, 0xD0, 0xA6, 0x87, 0x1C, 0x38, 0xC0, 0xC6, 0x00, 0x43, 0x62, 0x36, 0x1C, 0x18, 0x1C, 0x3C, 0x26, 0x62, 0x43, 0xC1, 0x21, 0x98, 0xCC, 0x42, 0x61, 0xB0, 0xD0, 0x38, 0x1C, 0x0C, 0x06, 0x03, 0x01, 0x03, 0x00, 0xFE, 0x0C, 0x30, 0xC1, 0x86, 0x18, 0x20, 0xC1, 0xFC, 0x36, 0x66, 0x66, 0x6E, 0xCE, 0x66, 0x66, 0x66, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xC6, 0x66, 0x66, 0x67, 0x37, 0x66, 0x66, 0x66, 0xC0, 0x61, 0x24, 0x38}; const GFXglyph FreeSans9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 5, 0, 1}, // 0x20 ' ' {0, 2, 13, 6, 2, -12}, // 0x21 '!' {4, 5, 4, 6, 1, -12}, // 0x22 '"' {7, 10, 12, 10, 0, -11}, // 0x23 '#' {22, 9, 16, 10, 1, -13}, // 0x24 '$' {40, 16, 13, 16, 1, -12}, // 0x25 '%' {66, 11, 13, 12, 1, -12}, // 0x26 '&' {84, 2, 4, 4, 1, -12}, // 0x27 ''' {85, 4, 17, 6, 1, -12}, // 0x28 '(' {94, 4, 17, 6, 1, -12}, // 0x29 ')' {103, 5, 5, 7, 1, -12}, // 0x2A '*' {107, 6, 8, 11, 3, -7}, // 0x2B '+' {113, 2, 4, 5, 2, 0}, // 0x2C ',' {114, 4, 1, 6, 1, -4}, // 0x2D '-' {115, 2, 1, 5, 1, 0}, // 0x2E '.' {116, 5, 13, 5, 0, -12}, // 0x2F '/' {125, 8, 13, 10, 1, -12}, // 0x30 '0' {138, 4, 13, 10, 3, -12}, // 0x31 '1' {145, 9, 13, 10, 1, -12}, // 0x32 '2' {160, 8, 13, 10, 1, -12}, // 0x33 '3' {173, 7, 13, 10, 2, -12}, // 0x34 '4' {185, 9, 13, 10, 1, -12}, // 0x35 '5' {200, 9, 13, 10, 1, -12}, // 0x36 '6' {215, 8, 13, 10, 0, -12}, // 0x37 '7' {228, 9, 13, 10, 1, -12}, // 0x38 '8' {243, 8, 13, 10, 1, -12}, // 0x39 '9' {256, 2, 10, 5, 1, -9}, // 0x3A ':' {259, 3, 12, 5, 1, -8}, // 0x3B ';' {264, 9, 9, 11, 1, -8}, // 0x3C '<' {275, 9, 4, 11, 1, -5}, // 0x3D '=' {280, 9, 9, 11, 1, -8}, // 0x3E '>' {291, 9, 13, 10, 1, -12}, // 0x3F '?' {306, 17, 16, 18, 1, -12}, // 0x40 '@' {340, 12, 13, 12, 0, -12}, // 0x41 'A' {360, 11, 13, 12, 1, -12}, // 0x42 'B' {378, 11, 13, 13, 1, -12}, // 0x43 'C' {396, 11, 13, 13, 1, -12}, // 0x44 'D' {414, 9, 13, 11, 1, -12}, // 0x45 'E' {429, 8, 13, 11, 1, -12}, // 0x46 'F' {442, 12, 13, 14, 1, -12}, // 0x47 'G' {462, 11, 13, 13, 1, -12}, // 0x48 'H' {480, 2, 13, 5, 2, -12}, // 0x49 'I' {484, 7, 13, 10, 1, -12}, // 0x4A 'J' {496, 11, 13, 12, 1, -12}, // 0x4B 'K' {514, 8, 13, 10, 1, -12}, // 0x4C 'L' {527, 13, 13, 15, 1, -12}, // 0x4D 'M' {549, 11, 13, 13, 1, -12}, // 0x4E 'N' {567, 13, 13, 14, 1, -12}, // 0x4F 'O' {589, 10, 13, 12, 1, -12}, // 0x50 'P' {606, 13, 14, 14, 1, -12}, // 0x51 'Q' {629, 12, 13, 13, 1, -12}, // 0x52 'R' {649, 10, 13, 12, 1, -12}, // 0x53 'S' {666, 9, 13, 11, 1, -12}, // 0x54 'T' {681, 11, 13, 13, 1, -12}, // 0x55 'U' {699, 11, 13, 12, 0, -12}, // 0x56 'V' {717, 17, 13, 17, 0, -12}, // 0x57 'W' {745, 12, 13, 12, 0, -12}, // 0x58 'X' {765, 12, 13, 12, 0, -12}, // 0x59 'Y' {785, 10, 13, 11, 1, -12}, // 0x5A 'Z' {802, 3, 17, 5, 1, -12}, // 0x5B '[' {809, 5, 13, 5, 0, -12}, // 0x5C '\' {818, 3, 17, 5, 0, -12}, // 0x5D ']' {825, 7, 7, 8, 1, -12}, // 0x5E '^' {832, 10, 1, 10, 0, 3}, // 0x5F '_' {834, 4, 3, 5, 0, -12}, // 0x60 '`' {836, 9, 10, 10, 1, -9}, // 0x61 'a' {848, 9, 13, 10, 1, -12}, // 0x62 'b' {863, 8, 10, 9, 1, -9}, // 0x63 'c' {873, 8, 13, 10, 1, -12}, // 0x64 'd' {886, 8, 10, 10, 1, -9}, // 0x65 'e' {896, 4, 13, 5, 1, -12}, // 0x66 'f' {903, 8, 14, 10, 1, -9}, // 0x67 'g' {917, 8, 13, 10, 1, -12}, // 0x68 'h' {930, 2, 13, 4, 1, -12}, // 0x69 'i' {934, 4, 17, 4, 0, -12}, // 0x6A 'j' {943, 9, 13, 9, 1, -12}, // 0x6B 'k' {958, 2, 13, 4, 1, -12}, // 0x6C 'l' {962, 13, 10, 15, 1, -9}, // 0x6D 'm' {979, 8, 10, 10, 1, -9}, // 0x6E 'n' {989, 8, 10, 10, 1, -9}, // 0x6F 'o' {999, 9, 13, 10, 1, -9}, // 0x70 'p' {1014, 8, 13, 10, 1, -9}, // 0x71 'q' {1027, 5, 10, 6, 1, -9}, // 0x72 'r' {1034, 8, 10, 9, 1, -9}, // 0x73 's' {1044, 4, 12, 5, 1, -11}, // 0x74 't' {1050, 8, 10, 10, 1, -9}, // 0x75 'u' {1060, 9, 10, 9, 0, -9}, // 0x76 'v' {1072, 13, 10, 13, 0, -9}, // 0x77 'w' {1089, 8, 10, 9, 0, -9}, // 0x78 'x' {1099, 9, 14, 9, 0, -9}, // 0x79 'y' {1115, 7, 10, 9, 1, -9}, // 0x7A 'z' {1124, 4, 17, 6, 1, -12}, // 0x7B '{' {1133, 2, 17, 4, 2, -12}, // 0x7C '|' {1138, 4, 17, 6, 1, -12}, // 0x7D '}' {1147, 7, 3, 9, 1, -7}}; // 0x7E '~' const GFXfont FreeSans9pt7b PROGMEM = {(uint8_t *)FreeSans9pt7bBitmaps, (GFXglyph *)FreeSans9pt7bGlyphs, 0x20, 0x7E, 22}; // Approx. 1822 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansBold12pt7b.h ================================================ const uint8_t FreeSansBold12pt7bBitmaps[] PROGMEM = { 0xFF, 0xFF, 0xFF, 0xFF, 0x76, 0x66, 0x60, 0xFF, 0xF0, 0xF3, 0xFC, 0xFF, 0x3F, 0xCF, 0x61, 0x98, 0x60, 0x0E, 0x70, 0x73, 0x83, 0x18, 0xFF, 0xF7, 0xFF, 0xBF, 0xFC, 0x73, 0x83, 0x18, 0x18, 0xC7, 0xFF, 0xBF, 0xFD, 0xFF, 0xE3, 0x18, 0x39, 0xC1, 0xCE, 0x0E, 0x70, 0x02, 0x00, 0x7E, 0x0F, 0xF8, 0x7F, 0xE7, 0xAF, 0xB9, 0x3D, 0xC8, 0x0F, 0x40, 0x3F, 0x00, 0xFF, 0x00, 0xFC, 0x05, 0xFF, 0x27, 0xF9, 0x3F, 0xEB, 0xEF, 0xFE, 0x3F, 0xE0, 0x7C, 0x00, 0x80, 0x04, 0x00, 0x3C, 0x06, 0x0F, 0xC1, 0x81, 0xFC, 0x30, 0x73, 0x8C, 0x0C, 0x31, 0x81, 0xCE, 0x60, 0x1F, 0xCC, 0x03, 0xF3, 0x00, 0x3C, 0x67, 0x80, 0x19, 0xF8, 0x02, 0x7F, 0x80, 0xCE, 0x70, 0x11, 0x86, 0x06, 0x39, 0xC1, 0x87, 0xF8, 0x30, 0x7E, 0x0C, 0x07, 0x80, 0x07, 0x80, 0x1F, 0xC0, 0x3F, 0xE0, 0x3C, 0xE0, 0x3C, 0xE0, 0x3E, 0xE0, 0x0F, 0xC0, 0x07, 0x00, 0x3F, 0x8C, 0x7F, 0xCC, 0xF1, 0xFC, 0xF0, 0xF8, 0xF0, 0x78, 0xF8, 0xF8, 0x7F, 0xFC, 0x3F, 0xDE, 0x1F, 0x8E, 0xFF, 0xFF, 0x66, 0x0C, 0x73, 0x8E, 0x71, 0xC7, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x1C, 0x71, 0xC3, 0x8E, 0x18, 0x70, 0xC3, 0x87, 0x1C, 0x38, 0xE3, 0x87, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xCE, 0x38, 0xE7, 0x1C, 0x63, 0x80, 0x10, 0x23, 0x5F, 0xF3, 0x87, 0x1B, 0x14, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x0F, 0xFF, 0xFF, 0xFF, 0xF8, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x00, 0xFF, 0xF3, 0x36, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xF0, 0x0C, 0x30, 0x86, 0x18, 0x61, 0x0C, 0x30, 0xC2, 0x18, 0x61, 0x84, 0x30, 0xC0, 0x1F, 0x83, 0xFC, 0x7F, 0xE7, 0x9E, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xF7, 0x9E, 0x7F, 0xE3, 0xFC, 0x0F, 0x00, 0x06, 0x1C, 0x7F, 0xFF, 0xE3, 0xC7, 0x8F, 0x1E, 0x3C, 0x78, 0xF1, 0xE3, 0xC7, 0x8F, 0x1E, 0x1F, 0x83, 0xFC, 0x7F, 0xEF, 0x9F, 0xF0, 0xFF, 0x0F, 0x00, 0xF0, 0x0F, 0x01, 0xE0, 0x3C, 0x0F, 0x81, 0xE0, 0x3C, 0x03, 0x80, 0x7F, 0xF7, 0xFF, 0x7F, 0xF0, 0x1F, 0x07, 0xFC, 0xFF, 0xEF, 0x1E, 0xF1, 0xE0, 0x1E, 0x03, 0xC0, 0x78, 0x07, 0xC0, 0x1E, 0x00, 0xF0, 0x0F, 0xF0, 0xFF, 0x1F, 0x7F, 0xE7, 0xFC, 0x1F, 0x80, 0x03, 0xC0, 0xF8, 0x1F, 0x07, 0xE1, 0xBC, 0x27, 0x8C, 0xF3, 0x1E, 0x63, 0xD8, 0x7B, 0xFF, 0xFF, 0xFF, 0xFE, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x3F, 0xE7, 0xFE, 0x7F, 0xE7, 0x00, 0x60, 0x06, 0xF8, 0x7F, 0xCF, 0xFE, 0xF1, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xFE, 0x1E, 0xFF, 0xE7, 0xFC, 0x3F, 0x00, 0x0F, 0x83, 0xFC, 0x7F, 0xE7, 0x9F, 0xF0, 0x0F, 0x78, 0xFF, 0xCF, 0xFE, 0xF9, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xF7, 0x9F, 0x7F, 0xE3, 0xFC, 0x0F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xE0, 0x1C, 0x07, 0x01, 0xE0, 0x38, 0x0F, 0x01, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x38, 0x0F, 0x01, 0xE0, 0x3C, 0x00, 0x0F, 0x03, 0xFC, 0x7F, 0xC7, 0x9E, 0x70, 0xE7, 0x0E, 0x39, 0xC1, 0xF8, 0x3F, 0xC7, 0x9E, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x9F, 0x7F, 0xE3, 0xFC, 0x1F, 0x80, 0x1F, 0x03, 0xFC, 0x7F, 0xEF, 0x9E, 0xF0, 0xEF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF9, 0xF7, 0xFF, 0x3F, 0xF1, 0xEF, 0x00, 0xEF, 0x1E, 0x7F, 0xE7, 0xFC, 0x1F, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0x11, 0x6C, 0x00, 0x10, 0x07, 0x03, 0xF1, 0xFC, 0x7E, 0x0F, 0x80, 0xE0, 0x0F, 0xC0, 0x3F, 0x80, 0x7F, 0x00, 0xF0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x0E, 0x00, 0xFC, 0x07, 0xF0, 0x0F, 0xE0, 0x1F, 0x00, 0xF0, 0x7F, 0x1F, 0x8F, 0xE0, 0xF0, 0x08, 0x00, 0x1F, 0x07, 0xFC, 0x7F, 0xEF, 0x9F, 0xF0, 0xFF, 0x0F, 0x00, 0xF0, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x0E, 0x00, 0xE0, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x00, 0xFE, 0x00, 0x1F, 0xFC, 0x03, 0xC0, 0xF0, 0x38, 0x01, 0xC3, 0x80, 0x07, 0x18, 0x3D, 0x99, 0x87, 0xEC, 0x6C, 0x71, 0xC3, 0xC3, 0x06, 0x1E, 0x18, 0x30, 0xF1, 0x81, 0x87, 0x8C, 0x18, 0x7C, 0x60, 0xC3, 0x63, 0x8E, 0x3B, 0x8F, 0xDF, 0x8C, 0x3C, 0xF0, 0x70, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x80, 0x80, 0x1F, 0xFE, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x07, 0xF0, 0x07, 0xF0, 0x07, 0x70, 0x0F, 0x78, 0x0E, 0x78, 0x0E, 0x38, 0x1E, 0x3C, 0x1C, 0x3C, 0x3F, 0xFC, 0x3F, 0xFE, 0x3F, 0xFE, 0x78, 0x0E, 0x78, 0x0F, 0x70, 0x0F, 0xF0, 0x07, 0xFF, 0xC3, 0xFF, 0xCF, 0xFF, 0x3C, 0x3E, 0xF0, 0x7B, 0xC1, 0xEF, 0x0F, 0xBF, 0xFC, 0xFF, 0xE3, 0xFF, 0xCF, 0x07, 0xBC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x07, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0x80, 0x07, 0xE0, 0x1F, 0xF8, 0x3F, 0xFC, 0x7C, 0x3E, 0x78, 0x1F, 0xF8, 0x0F, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF8, 0x0F, 0x78, 0x1F, 0x7C, 0x3E, 0x3F, 0xFE, 0x1F, 0xFC, 0x07, 0xF0, 0xFF, 0xE1, 0xFF, 0xE3, 0xFF, 0xE7, 0x83, 0xEF, 0x03, 0xDE, 0x07, 0xFC, 0x07, 0xF8, 0x0F, 0xF0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x80, 0xFF, 0x03, 0xFE, 0x07, 0xBC, 0x1F, 0x7F, 0xFC, 0xFF, 0xF1, 0xFF, 0x80, 0xFF, 0xF7, 0xFF, 0xBF, 0xFD, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1F, 0xFC, 0xFF, 0xE7, 0xFF, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0xFE, 0xFF, 0xEF, 0xFE, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0x03, 0xF0, 0x0F, 0xFC, 0x3F, 0xFE, 0x3E, 0x1F, 0x78, 0x07, 0x78, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x7F, 0xF0, 0x7F, 0xF0, 0x7F, 0xF0, 0x07, 0x78, 0x07, 0x7C, 0x0F, 0x3E, 0x1F, 0x3F, 0xFB, 0x0F, 0xFB, 0x03, 0xE3, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0xF8, 0xFF, 0x1F, 0xE3, 0xFC, 0x7B, 0xFE, 0x7F, 0xC3, 0xE0, 0xF0, 0x3E, 0xF0, 0x3C, 0xF0, 0x78, 0xF0, 0xF0, 0xF1, 0xE0, 0xF3, 0xC0, 0xF7, 0x80, 0xFF, 0x00, 0xFF, 0x80, 0xFF, 0x80, 0xFB, 0xC0, 0xF1, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x78, 0xF0, 0x3C, 0xF0, 0x3E, 0xF0, 0x1E, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0x1F, 0xFE, 0x0F, 0xFF, 0x0F, 0xFF, 0x87, 0xFF, 0xC3, 0xFF, 0xE1, 0xFF, 0xF9, 0xFF, 0xFC, 0xEF, 0xFE, 0x77, 0xFB, 0x3B, 0xFD, 0xDD, 0xFE, 0xFC, 0xFF, 0x7E, 0x7F, 0x9F, 0x3F, 0xCF, 0x9F, 0xE7, 0x8F, 0xF3, 0xC7, 0xF8, 0xE3, 0xC0, 0xF0, 0x1F, 0xF0, 0x3F, 0xF0, 0x7F, 0xE0, 0xFF, 0xE1, 0xFF, 0xC3, 0xFD, 0xC7, 0xFB, 0x8F, 0xF3, 0x9F, 0xE7, 0x3F, 0xC7, 0x7F, 0x8F, 0xFF, 0x0F, 0xFE, 0x1F, 0xFC, 0x1F, 0xF8, 0x1F, 0xF0, 0x3F, 0xE0, 0x3C, 0x03, 0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x87, 0xC7, 0xC7, 0x80, 0xF3, 0xC0, 0x7B, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xFE, 0x00, 0xF7, 0x80, 0xF3, 0xC0, 0x78, 0xF0, 0xF8, 0x7F, 0xFC, 0x1F, 0xFC, 0x03, 0xF8, 0x00, 0xFF, 0xE3, 0xFF, 0xEF, 0xFF, 0xBC, 0x1F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x1F, 0xFF, 0xFB, 0xFF, 0xCF, 0xFE, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x00, 0x03, 0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x87, 0xC7, 0xC7, 0x80, 0xF3, 0xC0, 0x7B, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xFE, 0x04, 0xF7, 0x87, 0xF3, 0xC3, 0xF8, 0xF0, 0xF8, 0x7F, 0xFC, 0x1F, 0xFF, 0x83, 0xF1, 0x80, 0x00, 0x00, 0xFF, 0xF8, 0xFF, 0xFC, 0xFF, 0xFC, 0xF0, 0x3E, 0xF0, 0x1E, 0xF0, 0x1E, 0xF0, 0x1E, 0xF0, 0x3C, 0xFF, 0xF8, 0xFF, 0xF0, 0xFF, 0xF8, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x1F, 0x0F, 0xC0, 0x7F, 0xE1, 0xFF, 0xE7, 0xC3, 0xEF, 0x03, 0xDE, 0x00, 0x3C, 0x00, 0x7F, 0x00, 0x7F, 0xF0, 0x3F, 0xF8, 0x0F, 0xF8, 0x01, 0xF0, 0x01, 0xFE, 0x03, 0xDE, 0x0F, 0xBF, 0xFE, 0x3F, 0xF8, 0x1F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xF7, 0x87, 0x9F, 0xFE, 0x3F, 0xF0, 0x3F, 0x00, 0x70, 0x0E, 0xF0, 0x3D, 0xE0, 0x79, 0xC0, 0xE3, 0x81, 0xC7, 0x87, 0x87, 0x0E, 0x0E, 0x1C, 0x1E, 0x78, 0x1C, 0xE0, 0x39, 0xC0, 0x73, 0x80, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x70, 0x38, 0x1C, 0xE0, 0xF0, 0x79, 0xE1, 0xF0, 0xF3, 0xC3, 0xE1, 0xE3, 0x87, 0xC3, 0x87, 0x0F, 0x87, 0x0E, 0x3B, 0x9E, 0x1E, 0x77, 0x38, 0x1C, 0xEE, 0x70, 0x39, 0xCC, 0xE0, 0x73, 0x99, 0xC0, 0x6E, 0x3F, 0x00, 0xFC, 0x7E, 0x01, 0xF8, 0xFC, 0x03, 0xF0, 0xF8, 0x03, 0xE1, 0xE0, 0x07, 0x83, 0xC0, 0x0F, 0x07, 0x80, 0xF0, 0x3C, 0xF0, 0xF9, 0xE1, 0xE1, 0xE7, 0x83, 0xCF, 0x03, 0xFC, 0x03, 0xF0, 0x07, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x3F, 0x00, 0xFF, 0x01, 0xFE, 0x07, 0x9E, 0x0F, 0x1E, 0x3C, 0x3C, 0xF8, 0x3D, 0xE0, 0x78, 0xF0, 0x1E, 0x78, 0x1E, 0x78, 0x3C, 0x3C, 0x3C, 0x3C, 0x78, 0x1E, 0x78, 0x0E, 0x70, 0x0F, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x01, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF8, 0x07, 0x80, 0x78, 0x07, 0x80, 0x7C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFC, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xFF, 0xFF, 0xC0, 0xC1, 0x81, 0x03, 0x06, 0x04, 0x0C, 0x18, 0x10, 0x30, 0x60, 0x40, 0xC1, 0x81, 0x03, 0x06, 0xFF, 0xFF, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0xFF, 0xFF, 0xC0, 0x0F, 0x00, 0xF0, 0x0F, 0x01, 0xF8, 0x1B, 0x83, 0x9C, 0x39, 0xC3, 0x0C, 0x70, 0xE7, 0x0E, 0xE0, 0x70, 0xFF, 0xFF, 0xFF, 0xFC, 0xE6, 0x30, 0x1F, 0x83, 0xFF, 0x1F, 0xFD, 0xE1, 0xE0, 0x0F, 0x03, 0xF9, 0xFF, 0xDF, 0x1E, 0xF0, 0xF7, 0x8F, 0xBF, 0xFC, 0xFF, 0xE3, 0xCF, 0x80, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x7B, 0xC3, 0xFF, 0x9F, 0xFE, 0xF8, 0xF7, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xE3, 0xDF, 0xFE, 0xFF, 0xE7, 0xBE, 0x00, 0x0F, 0x83, 0xFE, 0x7F, 0xF7, 0x8F, 0xF0, 0x7F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x77, 0x8F, 0x7F, 0xF3, 0xFE, 0x0F, 0x80, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x8F, 0xBC, 0xFF, 0xEF, 0xFF, 0x78, 0xFF, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3D, 0xE3, 0xEF, 0xFF, 0x3F, 0xF8, 0xFB, 0xC0, 0x1F, 0x81, 0xFE, 0x1F, 0xF9, 0xF1, 0xCF, 0x07, 0x7F, 0xFB, 0xFF, 0xDE, 0x00, 0xF0, 0x03, 0xC3, 0x9F, 0xFC, 0x7F, 0xC0, 0xF8, 0x00, 0x3E, 0xFD, 0xFB, 0xC7, 0x9F, 0xBF, 0x3C, 0x78, 0xF1, 0xE3, 0xC7, 0x8F, 0x1E, 0x3C, 0x78, 0xF0, 0x1E, 0x79, 0xFB, 0xDF, 0xFE, 0xF1, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F, 0xC7, 0xDF, 0xFE, 0x7F, 0xF1, 0xF7, 0x80, 0x3C, 0x01, 0xFF, 0x1E, 0x7F, 0xF0, 0xFE, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x7C, 0xFF, 0xEF, 0xFF, 0xF9, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0xF3, 0xC0, 0x00, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0xFF, 0xFF, 0x80, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x0F, 0xF1, 0xEF, 0x3C, 0xF7, 0x8F, 0xF0, 0xFF, 0x0F, 0xF8, 0xFF, 0x8F, 0x3C, 0xF1, 0xCF, 0x1E, 0xF0, 0xEF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x8F, 0x9F, 0xFB, 0xFB, 0xFF, 0xFF, 0xFC, 0xF8, 0xFF, 0x1E, 0x1F, 0xE3, 0xC3, 0xFC, 0x78, 0x7F, 0x8F, 0x0F, 0xF1, 0xE1, 0xFE, 0x3C, 0x3F, 0xC7, 0x87, 0xF8, 0xF0, 0xFF, 0x1E, 0x1E, 0xF7, 0xCF, 0xFE, 0xFF, 0xFF, 0x9F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xF0, 0x0F, 0x81, 0xFF, 0x1F, 0xFC, 0xF1, 0xEF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7B, 0xC7, 0x9F, 0xFC, 0x7F, 0xC0, 0xF8, 0x00, 0xF7, 0xC7, 0xFF, 0x3F, 0xFD, 0xF1, 0xEF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F, 0xC7, 0xBF, 0xFD, 0xFF, 0xCF, 0x78, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x00, 0x0F, 0x79, 0xFF, 0xDF, 0xFE, 0xF1, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7B, 0xC7, 0xDF, 0xFE, 0x7F, 0xF1, 0xF7, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0xF3, 0xF7, 0xFF, 0xF8, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x1F, 0x87, 0xFC, 0xFF, 0xEF, 0x0F, 0xF8, 0x0F, 0xF0, 0x7F, 0xE0, 0xFF, 0x01, 0xFF, 0x0F, 0xFF, 0xE7, 0xFE, 0x1F, 0x80, 0x79, 0xE7, 0xBF, 0xFD, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x7D, 0xF3, 0xC0, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x1F, 0xFF, 0xF7, 0xFF, 0x3E, 0xF0, 0xF0, 0x7B, 0x83, 0x9E, 0x1C, 0xF1, 0xE3, 0x8E, 0x1C, 0x70, 0x77, 0x83, 0xB8, 0x1D, 0xC0, 0x7E, 0x03, 0xE0, 0x1F, 0x00, 0x70, 0x00, 0xF0, 0xE1, 0xDC, 0x78, 0x77, 0x1F, 0x3D, 0xE7, 0xCF, 0x79, 0xB3, 0x8E, 0x6C, 0xE3, 0xBB, 0x38, 0xEE, 0xFC, 0x1F, 0x3F, 0x07, 0xC7, 0xC1, 0xF1, 0xF0, 0x7C, 0x78, 0x0E, 0x1E, 0x00, 0x78, 0xF3, 0xC7, 0x8F, 0x78, 0x3B, 0x81, 0xFC, 0x07, 0xC0, 0x1E, 0x01, 0xF0, 0x1F, 0xC0, 0xEF, 0x0F, 0x78, 0xF1, 0xE7, 0x87, 0x00, 0xF0, 0x7B, 0x83, 0x9E, 0x1C, 0x71, 0xE3, 0x8E, 0x1E, 0x70, 0x73, 0x83, 0xB8, 0x1F, 0xC0, 0x7E, 0x03, 0xE0, 0x0F, 0x00, 0x70, 0x03, 0x80, 0x3C, 0x07, 0xC0, 0x3E, 0x01, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFC, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x0F, 0xFF, 0xFF, 0xFF, 0xC0, 0x1C, 0xF3, 0xCE, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0xBC, 0xF0, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x3C, 0xF1, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xE3, 0x8F, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x0F, 0x3D, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0xF3, 0xCE, 0x00, 0x78, 0x0F, 0xE0, 0xCF, 0x30, 0x7F, 0x01, 0xE0}; const GFXglyph FreeSansBold12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 7, 0, 1}, // 0x20 ' ' {0, 4, 17, 8, 3, -16}, // 0x21 '!' {9, 10, 6, 11, 1, -17}, // 0x22 '"' {17, 13, 16, 13, 0, -15}, // 0x23 '#' {43, 13, 20, 13, 0, -17}, // 0x24 '$' {76, 19, 17, 21, 1, -16}, // 0x25 '%' {117, 16, 17, 17, 1, -16}, // 0x26 '&' {151, 4, 6, 6, 1, -17}, // 0x27 ''' {154, 6, 22, 8, 1, -17}, // 0x28 '(' {171, 6, 22, 8, 1, -17}, // 0x29 ')' {188, 7, 8, 9, 1, -17}, // 0x2A '*' {195, 11, 11, 14, 2, -10}, // 0x2B '+' {211, 4, 7, 6, 1, -2}, // 0x2C ',' {215, 6, 3, 8, 1, -7}, // 0x2D '-' {218, 4, 3, 6, 1, -2}, // 0x2E '.' {220, 6, 17, 7, 0, -16}, // 0x2F '/' {233, 12, 17, 13, 1, -16}, // 0x30 '0' {259, 7, 17, 14, 3, -16}, // 0x31 '1' {274, 12, 17, 13, 1, -16}, // 0x32 '2' {300, 12, 17, 13, 1, -16}, // 0x33 '3' {326, 11, 17, 13, 1, -16}, // 0x34 '4' {350, 12, 17, 13, 1, -16}, // 0x35 '5' {376, 12, 17, 13, 1, -16}, // 0x36 '6' {402, 11, 17, 13, 1, -16}, // 0x37 '7' {426, 12, 17, 13, 1, -16}, // 0x38 '8' {452, 12, 17, 13, 1, -16}, // 0x39 '9' {478, 4, 12, 6, 1, -11}, // 0x3A ':' {484, 4, 16, 6, 1, -11}, // 0x3B ';' {492, 12, 12, 14, 1, -11}, // 0x3C '<' {510, 12, 9, 14, 1, -9}, // 0x3D '=' {524, 12, 12, 14, 1, -11}, // 0x3E '>' {542, 12, 18, 15, 2, -17}, // 0x3F '?' {569, 21, 21, 23, 1, -17}, // 0x40 '@' {625, 16, 18, 17, 0, -17}, // 0x41 'A' {661, 14, 18, 17, 2, -17}, // 0x42 'B' {693, 16, 18, 17, 1, -17}, // 0x43 'C' {729, 15, 18, 17, 2, -17}, // 0x44 'D' {763, 13, 18, 16, 2, -17}, // 0x45 'E' {793, 12, 18, 15, 2, -17}, // 0x46 'F' {820, 16, 18, 18, 1, -17}, // 0x47 'G' {856, 14, 18, 18, 2, -17}, // 0x48 'H' {888, 4, 18, 7, 2, -17}, // 0x49 'I' {897, 11, 18, 14, 1, -17}, // 0x4A 'J' {922, 16, 18, 17, 2, -17}, // 0x4B 'K' {958, 11, 18, 15, 2, -17}, // 0x4C 'L' {983, 17, 18, 21, 2, -17}, // 0x4D 'M' {1022, 15, 18, 18, 2, -17}, // 0x4E 'N' {1056, 17, 18, 19, 1, -17}, // 0x4F 'O' {1095, 14, 18, 16, 2, -17}, // 0x50 'P' {1127, 17, 19, 19, 1, -17}, // 0x51 'Q' {1168, 16, 18, 17, 2, -17}, // 0x52 'R' {1204, 15, 18, 16, 1, -17}, // 0x53 'S' {1238, 12, 18, 15, 2, -17}, // 0x54 'T' {1265, 14, 18, 18, 2, -17}, // 0x55 'U' {1297, 15, 18, 16, 0, -17}, // 0x56 'V' {1331, 23, 18, 23, 0, -17}, // 0x57 'W' {1383, 15, 18, 16, 1, -17}, // 0x58 'X' {1417, 16, 18, 15, 0, -17}, // 0x59 'Y' {1453, 13, 18, 15, 1, -17}, // 0x5A 'Z' {1483, 6, 23, 8, 2, -17}, // 0x5B '[' {1501, 7, 17, 7, 0, -16}, // 0x5C '\' {1516, 6, 23, 8, 0, -17}, // 0x5D ']' {1534, 12, 11, 14, 1, -16}, // 0x5E '^' {1551, 15, 2, 13, -1, 4}, // 0x5F '_' {1555, 4, 3, 6, 0, -17}, // 0x60 '`' {1557, 13, 13, 14, 1, -12}, // 0x61 'a' {1579, 13, 18, 15, 2, -17}, // 0x62 'b' {1609, 12, 13, 13, 1, -12}, // 0x63 'c' {1629, 13, 18, 15, 1, -17}, // 0x64 'd' {1659, 13, 13, 14, 1, -12}, // 0x65 'e' {1681, 7, 18, 8, 1, -17}, // 0x66 'f' {1697, 13, 18, 15, 1, -12}, // 0x67 'g' {1727, 12, 18, 14, 2, -17}, // 0x68 'h' {1754, 4, 18, 7, 2, -17}, // 0x69 'i' {1763, 6, 23, 7, 0, -17}, // 0x6A 'j' {1781, 12, 18, 14, 2, -17}, // 0x6B 'k' {1808, 4, 18, 6, 2, -17}, // 0x6C 'l' {1817, 19, 13, 21, 2, -12}, // 0x6D 'm' {1848, 12, 13, 15, 2, -12}, // 0x6E 'n' {1868, 13, 13, 15, 1, -12}, // 0x6F 'o' {1890, 13, 18, 15, 2, -12}, // 0x70 'p' {1920, 13, 18, 15, 1, -12}, // 0x71 'q' {1950, 8, 13, 9, 2, -12}, // 0x72 'r' {1963, 12, 13, 13, 1, -12}, // 0x73 's' {1983, 6, 15, 8, 1, -14}, // 0x74 't' {1995, 12, 13, 15, 2, -12}, // 0x75 'u' {2015, 13, 13, 13, 0, -12}, // 0x76 'v' {2037, 18, 13, 19, 0, -12}, // 0x77 'w' {2067, 13, 13, 13, 0, -12}, // 0x78 'x' {2089, 13, 18, 13, 0, -12}, // 0x79 'y' {2119, 10, 13, 12, 1, -12}, // 0x7A 'z' {2136, 6, 23, 9, 1, -17}, // 0x7B '{' {2154, 2, 22, 7, 2, -17}, // 0x7C '|' {2160, 6, 23, 9, 3, -17}, // 0x7D '}' {2178, 12, 5, 12, 0, -7}}; // 0x7E '~' const GFXfont FreeSansBold12pt7b PROGMEM = { (uint8_t *)FreeSansBold12pt7bBitmaps, (GFXglyph *)FreeSansBold12pt7bGlyphs, 0x20, 0x7E, 29}; // Approx. 2858 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansBold18pt7b.h ================================================ const uint8_t FreeSansBold18pt7bBitmaps[] PROGMEM = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xE7, 0x39, 0xCE, 0x73, 0x80, 0x0F, 0xFF, 0xFF, 0xF8, 0xF8, 0xFF, 0xC7, 0xFE, 0x3F, 0xF1, 0xFF, 0x8F, 0xFC, 0x7D, 0xC1, 0xCE, 0x0E, 0x70, 0x70, 0x03, 0xC3, 0x80, 0x3C, 0x78, 0x03, 0xC7, 0x80, 0x38, 0x78, 0x07, 0x87, 0x07, 0xFF, 0xFF, 0x7F, 0xFF, 0xF7, 0xFF, 0xFF, 0x7F, 0xFF, 0xF0, 0xF0, 0xE0, 0x0F, 0x0E, 0x00, 0xF1, 0xE0, 0x0F, 0x1E, 0x00, 0xE1, 0xE0, 0xFF, 0xFF, 0xCF, 0xFF, 0xFC, 0xFF, 0xFF, 0xCF, 0xFF, 0xFC, 0x1C, 0x3C, 0x03, 0xC3, 0x80, 0x3C, 0x78, 0x03, 0xC7, 0x80, 0x38, 0x78, 0x03, 0x87, 0x80, 0x00, 0x60, 0x00, 0x7F, 0x80, 0x3F, 0xFC, 0x0F, 0xFF, 0xC3, 0xFF, 0xFC, 0xFC, 0xDF, 0x9F, 0x19, 0xFB, 0xC3, 0x1F, 0x78, 0x63, 0xEF, 0x8C, 0x01, 0xFD, 0x80, 0x1F, 0xF0, 0x01, 0xFF, 0xC0, 0x1F, 0xFE, 0x00, 0x7F, 0xE0, 0x03, 0xFE, 0x00, 0x67, 0xE0, 0x0C, 0x7F, 0xE1, 0x8F, 0xFC, 0x31, 0xFF, 0xC6, 0x3E, 0xFC, 0xDF, 0x9F, 0xFF, 0xF1, 0xFF, 0xFC, 0x0F, 0xFF, 0x00, 0x7F, 0x80, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x1C, 0x01, 0xFE, 0x00, 0xE0, 0x1F, 0xF8, 0x0E, 0x00, 0xFF, 0xC0, 0x70, 0x0F, 0x0F, 0x07, 0x00, 0x70, 0x38, 0x38, 0x03, 0x81, 0xC3, 0x80, 0x1C, 0x0E, 0x3C, 0x00, 0xF0, 0xF1, 0xC0, 0x03, 0xFF, 0x1C, 0x00, 0x1F, 0xF8, 0xE0, 0x00, 0x7F, 0x8E, 0x00, 0x00, 0xF0, 0x70, 0xF8, 0x00, 0x07, 0x1F, 0xF0, 0x00, 0x39, 0xFF, 0xC0, 0x03, 0x8F, 0xFE, 0x00, 0x1C, 0xF0, 0x78, 0x01, 0xC7, 0x01, 0xC0, 0x0C, 0x38, 0x0E, 0x00, 0xE1, 0xC0, 0x70, 0x06, 0x0F, 0x07, 0x80, 0x70, 0x3F, 0xF8, 0x07, 0x01, 0xFF, 0xC0, 0x38, 0x07, 0xFC, 0x03, 0x80, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0xC0, 0x03, 0xFF, 0x80, 0x1F, 0x1E, 0x00, 0x7C, 0x78, 0x01, 0xF1, 0xE0, 0x07, 0xE7, 0x80, 0x0F, 0xBC, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xF0, 0xF0, 0xFF, 0xE3, 0xC7, 0xE7, 0xCF, 0x3F, 0x0F, 0xF8, 0xF8, 0x3F, 0xE3, 0xE0, 0x7F, 0x8F, 0x80, 0xFC, 0x3F, 0x03, 0xF0, 0x7E, 0x3F, 0xE1, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x07, 0xFE, 0x7E, 0x07, 0xF0, 0xFC, 0xFF, 0xFF, 0xFF, 0xFD, 0xCE, 0x70, 0x07, 0x87, 0x83, 0xC3, 0xC1, 0xE1, 0xE0, 0xF0, 0x78, 0x78, 0x3C, 0x1E, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x03, 0x81, 0xE0, 0xF0, 0x78, 0x1E, 0x0F, 0x03, 0x81, 0xE0, 0x70, 0x3C, 0x0E, 0x07, 0x80, 0xF0, 0x38, 0x1E, 0x07, 0x83, 0xC0, 0xF0, 0x78, 0x3C, 0x0F, 0x07, 0x83, 0xC0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x78, 0x3C, 0x1E, 0x0F, 0x0F, 0x07, 0x87, 0x83, 0xC1, 0xC1, 0xE0, 0xE0, 0xF0, 0x00, 0x06, 0x00, 0x60, 0x06, 0x07, 0x6E, 0x7F, 0xE3, 0xFC, 0x0F, 0x01, 0xF8, 0x1F, 0x83, 0x9C, 0x10, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0x8C, 0x63, 0x37, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x80, 0x01, 0x81, 0xC0, 0xC0, 0x60, 0x70, 0x38, 0x18, 0x0C, 0x0E, 0x06, 0x03, 0x01, 0x81, 0xC0, 0xC0, 0x60, 0x30, 0x38, 0x18, 0x0C, 0x0E, 0x07, 0x03, 0x01, 0x81, 0xC0, 0xC0, 0x00, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0xFF, 0xC7, 0xE3, 0xF3, 0xE0, 0xF9, 0xF0, 0x7D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xDF, 0x07, 0xCF, 0x83, 0xE7, 0xE3, 0xF1, 0xFF, 0xF0, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x01, 0xC0, 0xF0, 0x3C, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC0, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x8F, 0xFF, 0xE7, 0xE3, 0xF7, 0xE0, 0xFF, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0x80, 0x07, 0xC0, 0x07, 0xE0, 0x03, 0xE0, 0x03, 0xF0, 0x03, 0xF0, 0x07, 0xF0, 0x07, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xC0, 0x07, 0xC0, 0x03, 0xE0, 0x03, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0xFF, 0x7F, 0xFF, 0x80, 0x07, 0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFF, 0xCF, 0xC3, 0xF7, 0xC0, 0xFB, 0xE0, 0x7D, 0xF0, 0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x3F, 0x80, 0x1F, 0xC0, 0x0F, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83, 0xF7, 0xC3, 0xF3, 0xFF, 0xF8, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0xFC, 0x01, 0xFC, 0x01, 0xFC, 0x03, 0xFC, 0x07, 0x7C, 0x07, 0x7C, 0x0E, 0x7C, 0x0E, 0x7C, 0x1C, 0x7C, 0x18, 0x7C, 0x38, 0x7C, 0x70, 0x7C, 0x60, 0x7C, 0xE0, 0x7C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7C, 0x1F, 0xFF, 0x0F, 0xFF, 0x8F, 0xFF, 0xC7, 0xFF, 0xE3, 0xC0, 0x01, 0xE0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x79, 0xF0, 0x3F, 0xFE, 0x1F, 0xFF, 0x8F, 0xFF, 0xE7, 0xC3, 0xF0, 0x00, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xFE, 0x03, 0xFF, 0x03, 0xFF, 0xC3, 0xF3, 0xFF, 0xF1, 0xFF, 0xF8, 0x3F, 0xF0, 0x07, 0xE0, 0x00, 0x03, 0xF8, 0x03, 0xFF, 0x81, 0xFF, 0xF0, 0xFF, 0xFE, 0x3E, 0x1F, 0x9F, 0x03, 0xE7, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0xF8, 0x3E, 0xFF, 0x8F, 0xFF, 0xF3, 0xFF, 0xFE, 0xFE, 0x1F, 0xBF, 0x03, 0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xF7, 0x80, 0x7D, 0xF0, 0x3E, 0x7E, 0x1F, 0x8F, 0xFF, 0xC1, 0xFF, 0xF0, 0x3F, 0xF0, 0x03, 0xF0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xF0, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3C, 0x00, 0x3E, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xE0, 0x07, 0xFC, 0x0F, 0xFF, 0x07, 0xFF, 0xC7, 0xC3, 0xF3, 0xC0, 0xF9, 0xE0, 0x3C, 0xF0, 0x1E, 0x78, 0x1F, 0x1E, 0x1F, 0x07, 0xFF, 0x01, 0xFF, 0x03, 0xFF, 0xE3, 0xF1, 0xF9, 0xF0, 0x7D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83, 0xF7, 0xC3, 0xF3, 0xFF, 0xF8, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x07, 0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFF, 0xC7, 0xE3, 0xF7, 0xE0, 0xFB, 0xE0, 0x3D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83, 0xF7, 0xE3, 0xFB, 0xFF, 0xFC, 0xFF, 0xFE, 0x3F, 0xDF, 0x07, 0xCF, 0x80, 0x07, 0x80, 0x03, 0xDF, 0x03, 0xE7, 0xC3, 0xE3, 0xFF, 0xF0, 0xFF, 0xF0, 0x3F, 0xF0, 0x07, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xC6, 0x33, 0x9B, 0xD8, 0x00, 0x00, 0xC0, 0x00, 0xF0, 0x01, 0xFC, 0x03, 0xFF, 0x03, 0xFF, 0x07, 0xFE, 0x0F, 0xFC, 0x03, 0xF8, 0x00, 0xF0, 0x00, 0x3F, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x07, 0xFF, 0x00, 0x3F, 0xF0, 0x01, 0xFC, 0x00, 0x1F, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xC0, 0x00, 0x3C, 0x00, 0x0F, 0xE0, 0x03, 0xFF, 0x00, 0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0x00, 0x03, 0xC0, 0x07, 0xF0, 0x0F, 0xFC, 0x1F, 0xF8, 0x3F, 0xF8, 0x3F, 0xF0, 0x0F, 0xE0, 0x03, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x07, 0xF0, 0x07, 0xFF, 0x03, 0xFF, 0xF1, 0xFF, 0xFC, 0x7E, 0x3F, 0xBF, 0x03, 0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xF8, 0x07, 0xC0, 0x03, 0xF0, 0x01, 0xFC, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x07, 0xC0, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0x01, 0xF8, 0x07, 0xF0, 0x03, 0xE0, 0x01, 0xF8, 0x07, 0x80, 0x00, 0x7C, 0x0F, 0x00, 0x00, 0x3C, 0x1E, 0x03, 0xE3, 0x9E, 0x3C, 0x0F, 0xF7, 0x8E, 0x38, 0x1F, 0xFF, 0x0E, 0x78, 0x3E, 0x1F, 0x07, 0x70, 0x38, 0x0F, 0x07, 0x70, 0x78, 0x0F, 0x07, 0xE0, 0x70, 0x0E, 0x07, 0xE0, 0x70, 0x0E, 0x07, 0xE0, 0xE0, 0x0E, 0x07, 0xE0, 0xE0, 0x1E, 0x0F, 0xE0, 0xE0, 0x1C, 0x0E, 0xE0, 0xE0, 0x3C, 0x1E, 0xE0, 0xF0, 0x3C, 0x3C, 0xF0, 0xF0, 0xFC, 0x7C, 0x70, 0x7F, 0xFF, 0xF8, 0x78, 0x3F, 0xCF, 0xF0, 0x3C, 0x1F, 0x07, 0xC0, 0x3E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x01, 0x00, 0x07, 0xF0, 0x0F, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xF7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE3, 0xE0, 0x07, 0xC3, 0xE0, 0x07, 0xC3, 0xE0, 0x07, 0xC1, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x3E, 0x00, 0x7C, 0x3E, 0x00, 0x7E, 0x3E, 0x00, 0x3E, 0x7C, 0x00, 0x3E, 0x7C, 0x00, 0x3F, 0x7C, 0x00, 0x1F, 0xFF, 0xFC, 0x0F, 0xFF, 0xF0, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0xF8, 0x07, 0xEF, 0x80, 0x3E, 0xF8, 0x03, 0xEF, 0x80, 0x3E, 0xF8, 0x03, 0xEF, 0x80, 0x3E, 0xF8, 0x07, 0xCF, 0xFF, 0xF8, 0xFF, 0xFF, 0x0F, 0xFF, 0xF8, 0xFF, 0xFF, 0xCF, 0x80, 0x7E, 0xF8, 0x01, 0xEF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x3E, 0xFF, 0xFF, 0xEF, 0xFF, 0xFC, 0xFF, 0xFF, 0x8F, 0xFF, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0xFF, 0xFF, 0xC3, 0xF8, 0x1F, 0x87, 0xE0, 0x1F, 0x9F, 0x80, 0x1F, 0x3E, 0x00, 0x1F, 0x7C, 0x00, 0x3F, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x7D, 0xF0, 0x00, 0xFB, 0xF0, 0x03, 0xF3, 0xF0, 0x0F, 0xC7, 0xF0, 0x3F, 0x87, 0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x01, 0xFE, 0x00, 0xFF, 0xFC, 0x07, 0xFF, 0xF8, 0x3F, 0xFF, 0xE1, 0xFF, 0xFF, 0x8F, 0x80, 0xFE, 0x7C, 0x01, 0xF3, 0xE0, 0x07, 0xDF, 0x00, 0x3E, 0xF8, 0x01, 0xF7, 0xC0, 0x07, 0xFE, 0x00, 0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x03, 0xFF, 0x00, 0x1F, 0xF8, 0x00, 0xFF, 0xC0, 0x0F, 0xFE, 0x00, 0x7D, 0xF0, 0x03, 0xEF, 0x80, 0x3E, 0x7C, 0x07, 0xF3, 0xFF, 0xFF, 0x1F, 0xFF, 0xF0, 0xFF, 0xFF, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xDF, 0xFF, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xEF, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7F, 0xFF, 0xCF, 0xFF, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE7, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0xFF, 0xEF, 0xFF, 0xF7, 0xFF, 0xFB, 0xFF, 0xFD, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xF8, 0x0F, 0xFF, 0xFC, 0x1F, 0xC0, 0xFE, 0x3F, 0x00, 0x7E, 0x7E, 0x00, 0x3F, 0x7C, 0x00, 0x1F, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xFC, 0x00, 0x0F, 0x7C, 0x00, 0x1F, 0x7C, 0x00, 0x1F, 0x7E, 0x00, 0x3F, 0x3F, 0x00, 0x7F, 0x1F, 0xC1, 0xFF, 0x0F, 0xFF, 0xFF, 0x07, 0xFF, 0xE7, 0x03, 0xFF, 0xC7, 0x00, 0xFF, 0x07, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xFC, 0x3F, 0x7F, 0xFE, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0, 0xF8, 0x01, 0xFB, 0xE0, 0x0F, 0xCF, 0x80, 0x7E, 0x3E, 0x03, 0xF0, 0xF8, 0x1F, 0x83, 0xE0, 0xFC, 0x0F, 0x87, 0xE0, 0x3E, 0x3F, 0x00, 0xF8, 0xF8, 0x03, 0xE7, 0xE0, 0x0F, 0xBF, 0x00, 0x3F, 0xF8, 0x00, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x3F, 0xBF, 0x00, 0xFC, 0x7E, 0x03, 0xE0, 0xFC, 0x0F, 0x81, 0xF8, 0x3E, 0x07, 0xE0, 0xF8, 0x0F, 0xC3, 0xE0, 0x1F, 0x8F, 0x80, 0x7F, 0x3E, 0x00, 0xFC, 0xF8, 0x01, 0xFB, 0xE0, 0x03, 0xF0, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x81, 0xFF, 0xFB, 0xC3, 0xDF, 0xFB, 0xC3, 0xDF, 0xFB, 0xC3, 0xDF, 0xFB, 0xC3, 0xDF, 0xF9, 0xC7, 0xDF, 0xF9, 0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF8, 0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8, 0x7F, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8, 0x3E, 0x1F, 0xF8, 0x01, 0xFF, 0xC0, 0x1F, 0xFE, 0x01, 0xFF, 0xE0, 0x1F, 0xFF, 0x01, 0xFF, 0xF0, 0x1F, 0xFF, 0x81, 0xFF, 0xF8, 0x1F, 0xFF, 0xC1, 0xFF, 0xBC, 0x1F, 0xFB, 0xE1, 0xFF, 0x9F, 0x1F, 0xF9, 0xF1, 0xFF, 0x8F, 0x9F, 0xF8, 0x79, 0xFF, 0x87, 0xDF, 0xF8, 0x3D, 0xFF, 0x83, 0xFF, 0xF8, 0x1F, 0xFF, 0x81, 0xFF, 0xF8, 0x0F, 0xFF, 0x80, 0xFF, 0xF8, 0x07, 0xFF, 0x80, 0x3F, 0xF8, 0x03, 0xFF, 0x80, 0x1F, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x01, 0xFC, 0x1F, 0xC1, 0xF8, 0x03, 0xF1, 0xF8, 0x00, 0xFC, 0xF8, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x7C, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x1F, 0xF8, 0x00, 0x0F, 0xBE, 0x00, 0x0F, 0x9F, 0x00, 0x07, 0xCF, 0xC0, 0x07, 0xE3, 0xF0, 0x07, 0xE0, 0xFE, 0x0F, 0xE0, 0x7F, 0xFF, 0xE0, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0xFC, 0x1F, 0xFF, 0xE3, 0xFF, 0xFE, 0x7F, 0xFF, 0xEF, 0x80, 0xFF, 0xF0, 0x0F, 0xFE, 0x00, 0xFF, 0xC0, 0x1F, 0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xE0, 0x1F, 0xFC, 0x07, 0xEF, 0xFF, 0xFD, 0xFF, 0xFF, 0x3F, 0xFF, 0xC7, 0xFF, 0xE0, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x01, 0xFC, 0x1F, 0xC1, 0xF8, 0x03, 0xF1, 0xF8, 0x00, 0xFC, 0xF8, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x7C, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x1F, 0xF8, 0x01, 0x0F, 0xBE, 0x01, 0xCF, 0x9F, 0x01, 0xFF, 0xCF, 0xC0, 0x7F, 0xE3, 0xF0, 0x1F, 0xE0, 0xFE, 0x0F, 0xF0, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0x03, 0xFF, 0xEF, 0x80, 0x3F, 0xC3, 0x80, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x3F, 0xFF, 0xF9, 0xFF, 0xFF, 0xCF, 0x80, 0x3F, 0x7C, 0x00, 0xFB, 0xE0, 0x07, 0xDF, 0x00, 0x3E, 0xF8, 0x01, 0xF7, 0xC0, 0x0F, 0x3E, 0x00, 0xF9, 0xFF, 0xFF, 0x8F, 0xFF, 0xF8, 0x7F, 0xFF, 0xC3, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xF8, 0x03, 0xE7, 0xC0, 0x1F, 0x3E, 0x00, 0xF9, 0xF0, 0x07, 0xCF, 0x80, 0x3E, 0x7C, 0x01, 0xF3, 0xE0, 0x0F, 0x9F, 0x00, 0x7C, 0xF8, 0x03, 0xF7, 0xC0, 0x0F, 0xC0, 0x07, 0xF8, 0x01, 0xFF, 0xF0, 0x3F, 0xFF, 0x87, 0xFF, 0xFC, 0x7E, 0x0F, 0xCF, 0xC0, 0x7E, 0xF8, 0x03, 0xEF, 0x80, 0x3E, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x3F, 0xFF, 0x81, 0xFF, 0xFC, 0x03, 0xFF, 0xE0, 0x01, 0xFF, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xFC, 0x03, 0xFF, 0xE0, 0x7E, 0x7F, 0xFF, 0xE3, 0xFF, 0xFC, 0x1F, 0xFF, 0x00, 0x3F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0x7C, 0x03, 0xE7, 0xE0, 0x7E, 0x3F, 0xFF, 0xC3, 0xFF, 0xFC, 0x0F, 0xFF, 0x00, 0x3F, 0xC0, 0xF8, 0x00, 0xFB, 0xE0, 0x03, 0xE7, 0xC0, 0x1F, 0x9F, 0x00, 0x7C, 0x7C, 0x01, 0xF0, 0xF8, 0x07, 0xC3, 0xE0, 0x3E, 0x0F, 0x80, 0xF8, 0x1E, 0x03, 0xE0, 0x7C, 0x1F, 0x01, 0xF0, 0x7C, 0x03, 0xC1, 0xF0, 0x0F, 0x87, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x01, 0xE3, 0xC0, 0x07, 0xCF, 0x00, 0x1F, 0x7C, 0x00, 0x3D, 0xE0, 0x00, 0xFF, 0x80, 0x03, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0xF8, 0x07, 0xC0, 0x3F, 0xF8, 0x07, 0xE0, 0x3E, 0xFC, 0x07, 0xE0, 0x3E, 0x7C, 0x0F, 0xE0, 0x3E, 0x7C, 0x0F, 0xE0, 0x7E, 0x7C, 0x0F, 0xE0, 0x7C, 0x7C, 0x0F, 0xF0, 0x7C, 0x3E, 0x0F, 0xF0, 0x7C, 0x3E, 0x1E, 0xF0, 0x78, 0x3E, 0x1E, 0x70, 0xF8, 0x1E, 0x1E, 0x70, 0xF8, 0x1E, 0x1E, 0x78, 0xF8, 0x1F, 0x1E, 0x78, 0xF0, 0x1F, 0x3C, 0x78, 0xF0, 0x0F, 0x3C, 0x39, 0xF0, 0x0F, 0x3C, 0x3D, 0xF0, 0x0F, 0x3C, 0x3D, 0xE0, 0x0F, 0xBC, 0x3D, 0xE0, 0x07, 0xF8, 0x3D, 0xE0, 0x07, 0xF8, 0x1F, 0xE0, 0x07, 0xF8, 0x1F, 0xC0, 0x03, 0xF8, 0x1F, 0xC0, 0x03, 0xF8, 0x1F, 0xC0, 0x03, 0xF0, 0x0F, 0x80, 0x03, 0xF0, 0x0F, 0x80, 0x01, 0xF0, 0x0F, 0x80, 0xFE, 0x01, 0xF9, 0xF8, 0x07, 0xE3, 0xF0, 0x3F, 0x0F, 0xC0, 0xF8, 0x1F, 0x87, 0xE0, 0x7E, 0x3F, 0x00, 0xFC, 0xFC, 0x01, 0xF7, 0xE0, 0x07, 0xFF, 0x00, 0x0F, 0xFC, 0x00, 0x3F, 0xE0, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x80, 0x03, 0xFF, 0x00, 0x1F, 0x7E, 0x00, 0xFC, 0xF8, 0x03, 0xE3, 0xF0, 0x1F, 0x87, 0xC0, 0x7C, 0x1F, 0x83, 0xF0, 0x3F, 0x1F, 0x80, 0xFC, 0x7E, 0x01, 0xFB, 0xF0, 0x07, 0xF0, 0xFC, 0x01, 0xFF, 0xE0, 0x0F, 0x9F, 0x00, 0xFC, 0xFC, 0x07, 0xC3, 0xE0, 0x7E, 0x1F, 0x83, 0xE0, 0x7C, 0x1F, 0x03, 0xF1, 0xF0, 0x0F, 0x8F, 0x80, 0x7E, 0xF8, 0x01, 0xF7, 0xC0, 0x0F, 0xFC, 0x00, 0x3F, 0xE0, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF8, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x38, 0x06, 0x01, 0x80, 0x70, 0x0C, 0x03, 0x00, 0xE0, 0x18, 0x06, 0x01, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xE0, 0x18, 0x06, 0x01, 0xC0, 0x30, 0x0C, 0x03, 0x80, 0x60, 0x18, 0x07, 0x01, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0x78, 0x1E, 0x78, 0x1E, 0x78, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x1E, 0x78, 0x1E, 0x78, 0x1E, 0x70, 0x0F, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0, 0xF0, 0xE0, 0xE0, 0x07, 0xF8, 0x07, 0xFF, 0x83, 0xFF, 0xF1, 0xFF, 0xFE, 0x7C, 0x1F, 0xBE, 0x03, 0xE0, 0x00, 0xF8, 0x01, 0xFE, 0x0F, 0xFF, 0x8F, 0xFF, 0xE7, 0xF8, 0xFB, 0xF0, 0x3E, 0xF8, 0x0F, 0xBE, 0x07, 0xEF, 0xC3, 0xFB, 0xFF, 0xFE, 0x7F, 0xFF, 0x8F, 0xFB, 0xF1, 0xF8, 0xFC, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE7, 0xE0, 0xFB, 0xFC, 0x3F, 0xFF, 0xCF, 0xFF, 0xF3, 0xF8, 0x7E, 0xFC, 0x0F, 0xBF, 0x03, 0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xF0, 0x3F, 0xFC, 0x0F, 0xBF, 0x87, 0xEF, 0xFF, 0xF3, 0xFF, 0xFC, 0xFB, 0xFC, 0x3E, 0x7E, 0x00, 0x03, 0xF0, 0x07, 0xFE, 0x0F, 0xFF, 0x87, 0xFF, 0xE7, 0xE1, 0xFB, 0xE0, 0x7F, 0xE0, 0x3F, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0xFB, 0xE0, 0x7D, 0xF8, 0x7E, 0x7F, 0xFE, 0x3F, 0xFE, 0x0F, 0xFE, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x1F, 0x1F, 0x0F, 0xFB, 0xE3, 0xFF, 0xFC, 0xFF, 0xFF, 0xBF, 0x8F, 0xF7, 0xC0, 0x7F, 0xF8, 0x0F, 0xFE, 0x00, 0xFF, 0xC0, 0x1F, 0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xE0, 0x0F, 0xFE, 0x03, 0xF7, 0xC0, 0x7E, 0xFC, 0x3F, 0xCF, 0xFF, 0xF8, 0xFF, 0xFF, 0x0F, 0xFB, 0xE0, 0xFC, 0x7C, 0x07, 0xE0, 0x07, 0xFE, 0x03, 0xFF, 0xE0, 0xFF, 0xF8, 0x7E, 0x1F, 0x1F, 0x03, 0xCF, 0x80, 0xFB, 0xE0, 0x1E, 0xFF, 0xFF, 0xBF, 0xFF, 0xEF, 0xFF, 0xFB, 0xE0, 0x00, 0xF8, 0x00, 0x3F, 0x03, 0xE7, 0xE1, 0xF9, 0xFF, 0xFC, 0x3F, 0xFE, 0x07, 0xFF, 0x00, 0x7F, 0x00, 0x0F, 0xC7, 0xF3, 0xFC, 0xFF, 0x3E, 0x0F, 0x83, 0xE3, 0xFE, 0xFF, 0xBF, 0xE3, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x80, 0x07, 0xC7, 0xC3, 0xFD, 0xF3, 0xFF, 0xFC, 0xFF, 0xFF, 0x7E, 0x1F, 0xDF, 0x03, 0xFF, 0xC0, 0xFF, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xFC, 0x0F, 0xDF, 0x03, 0xF7, 0xE1, 0xFD, 0xFF, 0xFF, 0x3F, 0xFF, 0xC7, 0xFD, 0xF0, 0x7C, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xFF, 0x03, 0xF7, 0xE1, 0xF9, 0xFF, 0xFC, 0x3F, 0xFE, 0x01, 0xFE, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF1, 0xF0, 0xFB, 0xFE, 0x7F, 0xFF, 0xBF, 0xFF, 0xDF, 0xC3, 0xFF, 0xC0, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xC0, 0xFF, 0xFF, 0xF0, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x3E, 0x7C, 0xF9, 0xF0, 0x00, 0x00, 0x1F, 0x3E, 0x7C, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x3E, 0x7C, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x3E, 0x7C, 0xF9, 0xF3, 0xFF, 0xFF, 0xFE, 0xF8, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x3E, 0xF8, 0x3E, 0x7C, 0x3F, 0x3E, 0x3F, 0x1F, 0x3F, 0x0F, 0x9F, 0x07, 0xDF, 0x03, 0xFF, 0x81, 0xFF, 0xC0, 0xFF, 0xF0, 0x7F, 0xF8, 0x3F, 0x7E, 0x1F, 0x1F, 0x0F, 0x87, 0xC7, 0xC3, 0xF3, 0xE0, 0xF9, 0xF0, 0x7E, 0xF8, 0x1F, 0x7C, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xF8, 0xF8, 0x3F, 0x1F, 0x7F, 0x9F, 0xF3, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xC3, 0xF8, 0x7F, 0xF8, 0x3F, 0x07, 0xFE, 0x07, 0xC0, 0xFF, 0xC0, 0xF8, 0x1F, 0xF8, 0x1F, 0x03, 0xFF, 0x03, 0xE0, 0x7F, 0xE0, 0x7C, 0x0F, 0xFC, 0x0F, 0x81, 0xFF, 0x81, 0xF0, 0x3F, 0xF0, 0x3E, 0x07, 0xFE, 0x07, 0xC0, 0xFF, 0xC0, 0xF8, 0x1F, 0xF8, 0x1F, 0x03, 0xFF, 0x03, 0xE0, 0x7F, 0xE0, 0x7C, 0x0F, 0x80, 0xF8, 0xF8, 0x7D, 0xFF, 0x3F, 0xFF, 0xDF, 0xFF, 0xEF, 0xE1, 0xFF, 0xE0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xE0, 0x03, 0xF8, 0x01, 0xFF, 0xC0, 0x7F, 0xFC, 0x1F, 0xFF, 0xC7, 0xF0, 0xFC, 0xF8, 0x0F, 0xBF, 0x01, 0xFF, 0xC0, 0x1F, 0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xE0, 0x0F, 0xFC, 0x01, 0xFF, 0xC0, 0x7E, 0xF8, 0x0F, 0x9F, 0x87, 0xF1, 0xFF, 0xFC, 0x1F, 0xFF, 0x01, 0xFF, 0xC0, 0x0F, 0xE0, 0x00, 0xF8, 0xF8, 0x3E, 0xFF, 0x8F, 0xFF, 0xF3, 0xFF, 0xFC, 0xFE, 0x1F, 0xBF, 0x03, 0xEF, 0xC0, 0xFF, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xFC, 0x0F, 0xFF, 0x03, 0xEF, 0xE1, 0xFB, 0xFF, 0xFC, 0xFF, 0xFF, 0x3E, 0xFF, 0x0F, 0x8F, 0x83, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xE3, 0xE1, 0xFF, 0x7C, 0x7F, 0xFF, 0x9F, 0xFF, 0xF7, 0xF1, 0xFE, 0xF8, 0x0F, 0xFF, 0x01, 0xFF, 0xC0, 0x1F, 0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xE0, 0x0F, 0xFC, 0x01, 0xFF, 0xC0, 0x7E, 0xF8, 0x0F, 0xDF, 0x83, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE1, 0xFF, 0x7C, 0x1F, 0x8F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0xF8, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xE1, 0xF8, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x00, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0xFF, 0xE7, 0xE1, 0xF3, 0xE0, 0x79, 0xF8, 0x00, 0xFF, 0x80, 0x3F, 0xFC, 0x1F, 0xFF, 0x83, 0xFF, 0xC0, 0x3F, 0xF0, 0x01, 0xFF, 0xC0, 0x7D, 0xF0, 0x7E, 0xFF, 0xFE, 0x3F, 0xFF, 0x0F, 0xFF, 0x01, 0xFE, 0x00, 0x3E, 0x1F, 0x0F, 0x87, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0x3E, 0x1F, 0x0F, 0x87, 0xC3, 0xE1, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xF3, 0xF8, 0xFC, 0x3E, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x9F, 0xF7, 0xC7, 0xE3, 0xE0, 0x7C, 0x07, 0xCF, 0x80, 0xF9, 0xF0, 0x1F, 0x1F, 0x07, 0xC3, 0xE0, 0xF8, 0x7C, 0x1F, 0x07, 0x83, 0xC0, 0xF8, 0xF8, 0x1F, 0x1F, 0x01, 0xE3, 0xC0, 0x3E, 0x78, 0x07, 0xDF, 0x00, 0x7B, 0xC0, 0x0F, 0xF8, 0x01, 0xFF, 0x00, 0x1F, 0xC0, 0x03, 0xF8, 0x00, 0x7F, 0x00, 0x07, 0xC0, 0x00, 0xFC, 0x1F, 0x03, 0xEF, 0x83, 0xE0, 0x7D, 0xF0, 0x7E, 0x1F, 0x3E, 0x0F, 0xC3, 0xE3, 0xC3, 0xF8, 0x7C, 0x7C, 0x7F, 0x0F, 0x0F, 0x8F, 0xF3, 0xE1, 0xF1, 0xDE, 0x7C, 0x1E, 0x7B, 0xCF, 0x83, 0xEF, 0x39, 0xE0, 0x7D, 0xE7, 0x3C, 0x07, 0xB8, 0xFF, 0x80, 0xF7, 0x1F, 0xE0, 0x1F, 0xE3, 0xFC, 0x03, 0xFC, 0x3F, 0x80, 0x3F, 0x07, 0xF0, 0x07, 0xE0, 0xFC, 0x00, 0xFC, 0x1F, 0x80, 0x0F, 0x83, 0xF0, 0x00, 0xFC, 0x1F, 0x9F, 0x07, 0xE7, 0xE3, 0xF0, 0xF8, 0xF8, 0x1F, 0x7E, 0x07, 0xDF, 0x00, 0xFF, 0x80, 0x1F, 0xE0, 0x07, 0xF0, 0x00, 0xF8, 0x00, 0x7F, 0x00, 0x3F, 0xE0, 0x0F, 0xF8, 0x07, 0xDF, 0x03, 0xF7, 0xE0, 0xF8, 0xF8, 0x7E, 0x3F, 0x1F, 0x07, 0xEF, 0xC0, 0xF8, 0x7C, 0x03, 0xEF, 0x80, 0xF9, 0xF8, 0x1F, 0x1F, 0x03, 0xE3, 0xE0, 0xF8, 0x7C, 0x1F, 0x07, 0xC3, 0xE0, 0xF8, 0x78, 0x0F, 0x1F, 0x01, 0xF3, 0xC0, 0x3E, 0x78, 0x03, 0xDF, 0x00, 0x7F, 0xC0, 0x0F, 0xF8, 0x00, 0xFF, 0x00, 0x1F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1E, 0x00, 0x07, 0xC0, 0x07, 0xF8, 0x00, 0xFE, 0x00, 0x1F, 0x80, 0x03, 0xE0, 0x00, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x00, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x7E, 0x00, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x87, 0xC7, 0xE3, 0xF1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0xF9, 0xF8, 0xF0, 0x7E, 0x0F, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xFC, 0x7E, 0x1F, 0x07, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xF0, 0x7C, 0x3E, 0x1F, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x7C, 0x1F, 0x83, 0xC7, 0xE7, 0xC3, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC7, 0xE3, 0xE1, 0xF0, 0xF0, 0x00, 0x3C, 0x00, 0xFE, 0x0F, 0xFE, 0x1E, 0x1F, 0xFC, 0x0F, 0xC0, 0x0F, 0x00}; const GFXglyph FreeSansBold18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 10, 0, 1}, // 0x20 ' ' {0, 5, 25, 12, 4, -24}, // 0x21 '!' {16, 13, 9, 17, 2, -25}, // 0x22 '"' {31, 20, 24, 19, 0, -23}, // 0x23 '#' {91, 19, 29, 19, 0, -25}, // 0x24 '$' {160, 29, 25, 31, 1, -24}, // 0x25 '%' {251, 22, 25, 25, 2, -24}, // 0x26 '&' {320, 5, 9, 9, 2, -25}, // 0x27 ''' {326, 9, 33, 12, 1, -25}, // 0x28 '(' {364, 9, 33, 12, 1, -25}, // 0x29 ')' {402, 12, 11, 14, 0, -25}, // 0x2A '*' {419, 16, 16, 20, 2, -15}, // 0x2B '+' {451, 5, 11, 9, 2, -4}, // 0x2C ',' {458, 9, 4, 12, 1, -10}, // 0x2D '-' {463, 5, 5, 9, 2, -4}, // 0x2E '.' {467, 9, 25, 10, 0, -24}, // 0x2F '/' {496, 17, 25, 19, 1, -24}, // 0x30 '0' {550, 10, 25, 19, 3, -24}, // 0x31 '1' {582, 17, 25, 19, 1, -24}, // 0x32 '2' {636, 17, 25, 19, 1, -24}, // 0x33 '3' {690, 16, 25, 19, 2, -24}, // 0x34 '4' {740, 17, 25, 19, 1, -24}, // 0x35 '5' {794, 18, 25, 19, 1, -24}, // 0x36 '6' {851, 17, 25, 19, 1, -24}, // 0x37 '7' {905, 17, 25, 19, 1, -24}, // 0x38 '8' {959, 17, 25, 19, 1, -24}, // 0x39 '9' {1013, 5, 18, 9, 2, -17}, // 0x3A ':' {1025, 5, 24, 9, 2, -17}, // 0x3B ';' {1040, 18, 17, 20, 1, -16}, // 0x3C '<' {1079, 17, 12, 20, 2, -13}, // 0x3D '=' {1105, 18, 17, 20, 1, -16}, // 0x3E '>' {1144, 18, 26, 21, 2, -25}, // 0x3F '?' {1203, 32, 31, 34, 1, -25}, // 0x40 '@' {1327, 24, 26, 24, 0, -25}, // 0x41 'A' {1405, 20, 26, 25, 3, -25}, // 0x42 'B' {1470, 23, 26, 25, 1, -25}, // 0x43 'C' {1545, 21, 26, 25, 3, -25}, // 0x44 'D' {1614, 19, 26, 23, 3, -25}, // 0x45 'E' {1676, 17, 26, 22, 3, -25}, // 0x46 'F' {1732, 24, 26, 27, 1, -25}, // 0x47 'G' {1810, 20, 26, 26, 3, -25}, // 0x48 'H' {1875, 5, 26, 11, 3, -25}, // 0x49 'I' {1892, 16, 26, 20, 1, -25}, // 0x4A 'J' {1944, 22, 26, 25, 3, -25}, // 0x4B 'K' {2016, 17, 26, 22, 3, -25}, // 0x4C 'L' {2072, 24, 26, 30, 3, -25}, // 0x4D 'M' {2150, 20, 26, 26, 3, -25}, // 0x4E 'N' {2215, 25, 26, 27, 1, -25}, // 0x4F 'O' {2297, 19, 26, 24, 3, -25}, // 0x50 'P' {2359, 25, 27, 27, 1, -25}, // 0x51 'Q' {2444, 21, 26, 25, 3, -25}, // 0x52 'R' {2513, 20, 26, 24, 2, -25}, // 0x53 'S' {2578, 19, 26, 23, 2, -25}, // 0x54 'T' {2640, 20, 26, 26, 3, -25}, // 0x55 'U' {2705, 22, 26, 23, 1, -25}, // 0x56 'V' {2777, 32, 26, 34, 1, -25}, // 0x57 'W' {2881, 22, 26, 24, 1, -25}, // 0x58 'X' {2953, 21, 26, 22, 1, -25}, // 0x59 'Y' {3022, 19, 26, 21, 1, -25}, // 0x5A 'Z' {3084, 8, 33, 12, 2, -25}, // 0x5B '[' {3117, 10, 25, 10, 0, -24}, // 0x5C '\' {3149, 8, 33, 12, 1, -25}, // 0x5D ']' {3182, 16, 15, 20, 2, -23}, // 0x5E '^' {3212, 21, 3, 19, -1, 5}, // 0x5F '_' {3220, 7, 5, 9, 1, -25}, // 0x60 '`' {3225, 18, 19, 20, 1, -18}, // 0x61 'a' {3268, 18, 26, 22, 2, -25}, // 0x62 'b' {3327, 17, 19, 20, 1, -18}, // 0x63 'c' {3368, 19, 26, 22, 1, -25}, // 0x64 'd' {3430, 18, 19, 20, 1, -18}, // 0x65 'e' {3473, 10, 26, 12, 1, -25}, // 0x66 'f' {3506, 18, 26, 21, 1, -18}, // 0x67 'g' {3565, 17, 26, 21, 2, -25}, // 0x68 'h' {3621, 5, 26, 10, 2, -25}, // 0x69 'i' {3638, 7, 33, 10, 0, -25}, // 0x6A 'j' {3667, 17, 26, 20, 2, -25}, // 0x6B 'k' {3723, 5, 26, 9, 2, -25}, // 0x6C 'l' {3740, 27, 19, 31, 2, -18}, // 0x6D 'm' {3805, 17, 19, 21, 2, -18}, // 0x6E 'n' {3846, 19, 19, 21, 1, -18}, // 0x6F 'o' {3892, 18, 26, 22, 2, -18}, // 0x70 'p' {3951, 19, 26, 22, 1, -18}, // 0x71 'q' {4013, 11, 19, 14, 2, -18}, // 0x72 'r' {4040, 17, 19, 19, 1, -18}, // 0x73 's' {4081, 9, 23, 12, 1, -22}, // 0x74 't' {4107, 17, 19, 21, 2, -18}, // 0x75 'u' {4148, 19, 19, 19, 0, -18}, // 0x76 'v' {4194, 27, 19, 27, 0, -18}, // 0x77 'w' {4259, 18, 19, 19, 1, -18}, // 0x78 'x' {4302, 19, 26, 19, 0, -18}, // 0x79 'y' {4364, 16, 19, 18, 1, -18}, // 0x7A 'z' {4402, 9, 33, 14, 1, -25}, // 0x7B '{' {4440, 3, 33, 10, 4, -25}, // 0x7C '|' {4453, 9, 33, 14, 3, -25}, // 0x7D '}' {4491, 15, 6, 18, 1, -10}}; // 0x7E '~' const GFXfont FreeSansBold18pt7b PROGMEM = { (uint8_t *)FreeSansBold18pt7bBitmaps, (GFXglyph *)FreeSansBold18pt7bGlyphs, 0x20, 0x7E, 42}; // Approx. 5175 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansBold24pt7b.h ================================================ const uint8_t FreeSansBold24pt7bBitmaps[] PROGMEM = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x3E, 0x7C, 0xF9, 0xF3, 0xE7, 0xC7, 0x0E, 0x1C, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFE, 0x1F, 0xFF, 0x87, 0xFF, 0xE1, 0xFF, 0xF8, 0x7F, 0xFE, 0x1F, 0xFF, 0x87, 0xFF, 0xE1, 0xFD, 0xF0, 0x3E, 0x7C, 0x0F, 0x9F, 0x03, 0xE3, 0x80, 0x70, 0xE0, 0x1C, 0x00, 0xF8, 0x3E, 0x00, 0x3E, 0x0F, 0x80, 0x0F, 0x83, 0xE0, 0x03, 0xE0, 0xF8, 0x00, 0xF8, 0x7C, 0x00, 0x7C, 0x1F, 0x00, 0x1F, 0x07, 0xC1, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0xE0, 0xF8, 0x00, 0xF8, 0x3E, 0x00, 0x3E, 0x1F, 0x00, 0x1F, 0x07, 0xC0, 0x07, 0xC1, 0xF0, 0x01, 0xF0, 0x7C, 0x00, 0x7C, 0x1F, 0x03, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFC, 0x0F, 0x87, 0xC0, 0x07, 0xC1, 0xF0, 0x01, 0xF0, 0x7C, 0x00, 0x7C, 0x1F, 0x00, 0x1F, 0x07, 0xC0, 0x07, 0xC3, 0xE0, 0x03, 0xE0, 0xF8, 0x00, 0xF8, 0x3E, 0x00, 0x3E, 0x0F, 0x80, 0x00, 0x00, 0x38, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x7F, 0x73, 0xFE, 0x7F, 0x38, 0xFF, 0x3F, 0x1C, 0x3F, 0xDF, 0x8E, 0x0F, 0xEF, 0xC7, 0x07, 0xF7, 0xE3, 0x80, 0x03, 0xF9, 0xC0, 0x01, 0xFE, 0xE0, 0x00, 0x7F, 0xF0, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0xE7, 0xFC, 0x00, 0x71, 0xFF, 0x00, 0x38, 0x7F, 0xFF, 0x1C, 0x1F, 0xFF, 0x8E, 0x0F, 0xFF, 0xC7, 0x07, 0xFF, 0xE3, 0x87, 0xFB, 0xF9, 0xC3, 0xF9, 0xFE, 0xE7, 0xFC, 0x7F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x01, 0xC0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x70, 0x00, 0x03, 0xE0, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x00, 0x78, 0x00, 0x7F, 0xF8, 0x01, 0xE0, 0x01, 0xFF, 0xF0, 0x03, 0xC0, 0x07, 0xFF, 0xF0, 0x0F, 0x00, 0x0F, 0x83, 0xE0, 0x1E, 0x00, 0x3E, 0x03, 0xE0, 0x78, 0x00, 0x78, 0x03, 0xC0, 0xF0, 0x00, 0xF0, 0x07, 0x83, 0xC0, 0x01, 0xE0, 0x0F, 0x07, 0x80, 0x03, 0xE0, 0x3E, 0x1E, 0x00, 0x03, 0xE0, 0xF8, 0x3C, 0x00, 0x07, 0xFF, 0xF0, 0xF0, 0x00, 0x07, 0xFF, 0xC1, 0xE0, 0x00, 0x07, 0xFF, 0x07, 0x80, 0x00, 0x07, 0xFC, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x3C, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0x01, 0xE0, 0xFF, 0x80, 0x00, 0x07, 0x87, 0xFF, 0xC0, 0x00, 0x0F, 0x0F, 0xFF, 0x80, 0x00, 0x3C, 0x3F, 0xFF, 0x80, 0x00, 0x78, 0xFC, 0x1F, 0x00, 0x01, 0xE1, 0xF0, 0x1F, 0x00, 0x03, 0xC3, 0xC0, 0x1E, 0x00, 0x0F, 0x07, 0x80, 0x3C, 0x00, 0x1E, 0x0F, 0x00, 0x78, 0x00, 0x78, 0x1F, 0x01, 0xF0, 0x00, 0xF0, 0x1F, 0x07, 0xC0, 0x03, 0xC0, 0x3F, 0xFF, 0x80, 0x07, 0x80, 0x3F, 0xFE, 0x00, 0x1E, 0x00, 0x7F, 0xF8, 0x00, 0x7C, 0x00, 0x3F, 0xE0, 0x00, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x3F, 0xCF, 0xC0, 0x00, 0xFE, 0x1F, 0x00, 0x03, 0xF8, 0x7C, 0x00, 0x0F, 0xE1, 0xF0, 0x00, 0x3F, 0xC7, 0xC0, 0x00, 0x7F, 0x3E, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x07, 0xFF, 0x03, 0xE0, 0x3F, 0xFE, 0x0F, 0x83, 0xFF, 0xF8, 0x3E, 0x1F, 0xF3, 0xF1, 0xF8, 0x7F, 0x07, 0xE7, 0xE3, 0xFC, 0x1F, 0xFF, 0x0F, 0xE0, 0x3F, 0xFC, 0x3F, 0x80, 0x7F, 0xF0, 0xFE, 0x01, 0xFF, 0x83, 0xF8, 0x03, 0xFE, 0x0F, 0xF0, 0x0F, 0xF0, 0x3F, 0xE0, 0x7F, 0xE0, 0x7F, 0xC3, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0xFB, 0xFC, 0x0F, 0xFF, 0xC7, 0xF8, 0x1F, 0xFE, 0x0F, 0xE0, 0x0F, 0xE0, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0x7C, 0xF8, 0xE1, 0xC0, 0x00, 0xF0, 0x0F, 0x80, 0xF8, 0x07, 0xC0, 0x7C, 0x07, 0xE0, 0x3E, 0x03, 0xF0, 0x1F, 0x80, 0xF8, 0x0F, 0xC0, 0x7E, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x00, 0xF8, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x07, 0xC0, 0x3F, 0x01, 0xF8, 0x07, 0xC0, 0x3F, 0x00, 0xF8, 0x07, 0xE0, 0x1F, 0x00, 0xF8, 0x03, 0xE0, 0x1F, 0x00, 0x7C, 0x01, 0xE0, 0x78, 0x03, 0xE0, 0x0F, 0x80, 0x7C, 0x01, 0xF0, 0x0F, 0x80, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x3E, 0x01, 0xF8, 0x0F, 0xC0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7C, 0x07, 0xE0, 0x3F, 0x01, 0xF0, 0x1F, 0x80, 0xF8, 0x0F, 0xC0, 0x7C, 0x07, 0xE0, 0x3E, 0x03, 0xF0, 0x1F, 0x01, 0xF0, 0x00, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x06, 0x38, 0xDF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFE, 0x07, 0xC0, 0x1F, 0xC0, 0x3F, 0x80, 0xF7, 0x83, 0xC7, 0x87, 0x8F, 0x02, 0x08, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0x0E, 0x1C, 0x78, 0xEF, 0xDF, 0x38, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x38, 0x03, 0xC0, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x01, 0xE0, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x00, 0x38, 0x03, 0xC0, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x01, 0xE0, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x03, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x3F, 0xC3, 0xFC, 0x7F, 0x81, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0x7F, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x81, 0xFE, 0x3F, 0xC3, 0xFC, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x03, 0xFF, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0x3C, 0x01, 0xF0, 0x07, 0xC0, 0x3F, 0x01, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x01, 0xFE, 0x00, 0x0F, 0xFF, 0x80, 0x3F, 0xFF, 0x80, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0x9F, 0xE0, 0xFF, 0x7F, 0x80, 0xFF, 0xFE, 0x01, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0xC0, 0x01, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xE0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFC, 0x01, 0xFE, 0x00, 0x0F, 0xFF, 0x80, 0x7F, 0xFF, 0x81, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0x1F, 0xE1, 0xFF, 0x7F, 0x81, 0xFE, 0xFE, 0x01, 0xFD, 0xFC, 0x03, 0xFB, 0xF8, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0xC0, 0x00, 0xFF, 0xE0, 0x00, 0x3F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xF8, 0x0F, 0xF7, 0xF8, 0x3F, 0xCF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFE, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x07, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x03, 0xFE, 0x00, 0x0F, 0xF8, 0x00, 0x7F, 0xE0, 0x03, 0xFF, 0x80, 0x0F, 0xFE, 0x00, 0x7B, 0xF8, 0x01, 0xEF, 0xE0, 0x0F, 0x3F, 0x80, 0x78, 0xFE, 0x01, 0xE3, 0xF8, 0x0F, 0x0F, 0xE0, 0x38, 0x3F, 0x81, 0xE0, 0xFE, 0x07, 0x03, 0xF8, 0x3C, 0x0F, 0xE1, 0xE0, 0x3F, 0x87, 0x00, 0xFE, 0x3C, 0x03, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xF8, 0x7F, 0xFF, 0xF0, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xF1, 0xF8, 0x03, 0xEF, 0xFE, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFE, 0x7F, 0xFF, 0xFC, 0xFE, 0x07, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xF8, 0x0F, 0xF7, 0xF8, 0x3F, 0xEF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFC, 0x0F, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x03, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x7F, 0xFF, 0x81, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x8F, 0xF0, 0xFF, 0x3F, 0xC0, 0xFE, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE3, 0xF0, 0x1F, 0xDF, 0xF8, 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0xFF, 0xFF, 0xF9, 0xFF, 0x87, 0xFB, 0xFC, 0x07, 0xF7, 0xF8, 0x0F, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0x7E, 0x00, 0xFE, 0xFC, 0x01, 0xFD, 0xFC, 0x07, 0xFB, 0xF8, 0x0F, 0xE3, 0xFC, 0x7F, 0xC7, 0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0x07, 0xFF, 0x80, 0x03, 0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x7F, 0x83, 0xFC, 0x7F, 0x00, 0xFC, 0x7E, 0x00, 0xFC, 0x7E, 0x00, 0x7C, 0x7E, 0x00, 0x7C, 0x7E, 0x00, 0xFC, 0x3F, 0x00, 0xF8, 0x3F, 0x83, 0xF8, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF8, 0x3F, 0xC3, 0xFC, 0x7F, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFE, 0x7F, 0x83, 0xFE, 0x7F, 0xFF, 0xFE, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x03, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x7F, 0xC3, 0xFC, 0x7F, 0x01, 0xFE, 0xFF, 0x00, 0xFE, 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0x7F, 0x01, 0xFF, 0x7F, 0xC3, 0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0x07, 0xFE, 0x7F, 0x01, 0xFC, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x7F, 0x01, 0xFC, 0x7F, 0x83, 0xFC, 0x7F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, 0x07, 0xFF, 0x80, 0x01, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1C, 0x38, 0x71, 0xE7, 0xBF, 0x7C, 0xE0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x3C, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xF0, 0x01, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0xFF, 0xFC, 0x0F, 0xFF, 0xC0, 0x7F, 0xFC, 0x01, 0xFF, 0xC0, 0x03, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xFE, 0x00, 0x0F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x80, 0x00, 0x01, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xFC, 0x00, 0x0F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF0, 0x00, 0x7F, 0xFC, 0x00, 0x1F, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0xE0, 0x01, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0xFF, 0xF8, 0x0F, 0xFF, 0x80, 0xFF, 0xFC, 0x03, 0xFF, 0xC0, 0x07, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x1E, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x07, 0xFF, 0xC0, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0x7F, 0x83, 0xFE, 0x7F, 0x01, 0xFE, 0xFF, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFE, 0x00, 0x07, 0xFC, 0x00, 0x0F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xE0, 0x00, 0x7F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xE0, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF8, 0x00, 0x03, 0xFE, 0x01, 0xFF, 0x80, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x07, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x3E, 0x0F, 0xC0, 0x07, 0xE3, 0xC3, 0xE1, 0xF0, 0x03, 0xFE, 0xF8, 0x3C, 0x7E, 0x01, 0xFF, 0xFF, 0x07, 0x8F, 0x80, 0x7E, 0x1F, 0xC0, 0x7B, 0xF0, 0x1F, 0x81, 0xF8, 0x0F, 0x7C, 0x03, 0xE0, 0x1F, 0x01, 0xEF, 0x80, 0xF8, 0x03, 0xC0, 0x3F, 0xF0, 0x1E, 0x00, 0x78, 0x07, 0xFC, 0x07, 0xC0, 0x0F, 0x00, 0xFF, 0x80, 0xF0, 0x01, 0xE0, 0x1F, 0xF0, 0x1E, 0x00, 0x38, 0x07, 0xFE, 0x07, 0xC0, 0x0F, 0x00, 0xFF, 0xC0, 0xF8, 0x01, 0xE0, 0x1E, 0xF8, 0x1F, 0x00, 0x38, 0x07, 0xDF, 0x03, 0xE0, 0x0F, 0x00, 0xF3, 0xF0, 0x7C, 0x03, 0xE0, 0x3E, 0x3E, 0x0F, 0xC0, 0xFC, 0x0F, 0x87, 0xC0, 0xFC, 0x3F, 0xC7, 0xF0, 0xFC, 0x1F, 0xFF, 0xFF, 0xFC, 0x0F, 0xC1, 0xFF, 0xEF, 0xFF, 0x01, 0xFC, 0x1F, 0xF8, 0xFF, 0x80, 0x1F, 0xC0, 0xFC, 0x07, 0xC0, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x60, 0x00, 0x01, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x3F, 0x7E, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x7E, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x80, 0x00, 0xFE, 0x3F, 0x80, 0x01, 0xFC, 0x1F, 0x80, 0x01, 0xFC, 0x1F, 0xC0, 0x01, 0xF8, 0x1F, 0xC0, 0x03, 0xF8, 0x0F, 0xE0, 0x03, 0xF8, 0x0F, 0xE0, 0x03, 0xF0, 0x0F, 0xE0, 0x07, 0xF0, 0x07, 0xF0, 0x07, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xFC, 0x1F, 0xC0, 0x01, 0xFC, 0x3F, 0x80, 0x01, 0xFC, 0x3F, 0x80, 0x00, 0xFE, 0x3F, 0x80, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0x3F, 0x80, 0x1F, 0xF7, 0xF0, 0x01, 0xFE, 0xFE, 0x00, 0x1F, 0xDF, 0xC0, 0x03, 0xFB, 0xF8, 0x00, 0x7F, 0x7F, 0x00, 0x1F, 0xCF, 0xE0, 0x07, 0xF9, 0xFF, 0xFF, 0xFE, 0x3F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xFE, 0x7F, 0x00, 0x1F, 0xEF, 0xE0, 0x01, 0xFD, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xEF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x1F, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0xC1, 0xFF, 0x81, 0xFF, 0x0F, 0xF8, 0x01, 0xFE, 0x3F, 0xC0, 0x07, 0xF9, 0xFE, 0x00, 0x0F, 0xE7, 0xF8, 0x00, 0x1F, 0xDF, 0xC0, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFD, 0xFC, 0x00, 0x07, 0xF7, 0xF8, 0x00, 0x3F, 0xCF, 0xF0, 0x00, 0xFE, 0x3F, 0xE0, 0x07, 0xF8, 0x7F, 0xE0, 0x7F, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0xC0, 0x07, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0xE0, 0x00, 0x07, 0xFC, 0x00, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF8, 0xFE, 0x00, 0xFF, 0xCF, 0xE0, 0x03, 0xFC, 0xFE, 0x00, 0x1F, 0xEF, 0xE0, 0x01, 0xFE, 0xFE, 0x00, 0x0F, 0xEF, 0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xEF, 0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x1F, 0xEF, 0xE0, 0x01, 0xFE, 0xFE, 0x00, 0x3F, 0xCF, 0xE0, 0x0F, 0xFC, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFB, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x9F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x07, 0xFE, 0x03, 0xFF, 0x0F, 0xF0, 0x01, 0xFE, 0x3F, 0xC0, 0x01, 0xFC, 0x7F, 0x00, 0x01, 0xFD, 0xFE, 0x00, 0x03, 0xFB, 0xF8, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xC0, 0x07, 0xFF, 0xFF, 0xC0, 0x00, 0x1F, 0xBF, 0x80, 0x00, 0x3F, 0x7F, 0x00, 0x00, 0x7E, 0xFF, 0x00, 0x01, 0xFC, 0xFF, 0x00, 0x03, 0xF9, 0xFF, 0x00, 0x0F, 0xF1, 0xFF, 0x00, 0x3F, 0xE3, 0xFF, 0x83, 0xFF, 0xC3, 0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xDF, 0x03, 0xFF, 0xFF, 0x9E, 0x03, 0xFF, 0xFE, 0x3C, 0x01, 0xFF, 0xF0, 0x78, 0x00, 0x7F, 0x80, 0x00, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, 0x7F, 0xFE, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0xC0, 0xFF, 0xFF, 0x87, 0xFD, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0x1F, 0xFF, 0xE0, 0x3F, 0xFF, 0x00, 0x1F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xF3, 0xF8, 0x00, 0x7F, 0x8F, 0xE0, 0x03, 0xFC, 0x3F, 0x80, 0x1F, 0xE0, 0xFE, 0x00, 0xFF, 0x83, 0xF8, 0x07, 0xFC, 0x0F, 0xE0, 0x1F, 0xE0, 0x3F, 0x80, 0xFF, 0x00, 0xFE, 0x07, 0xF8, 0x03, 0xF8, 0x3F, 0xC0, 0x0F, 0xE1, 0xFE, 0x00, 0x3F, 0x8F, 0xF0, 0x00, 0xFE, 0x7F, 0x80, 0x03, 0xFB, 0xFC, 0x00, 0x0F, 0xFF, 0xE0, 0x00, 0x3F, 0xFF, 0xC0, 0x00, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x3F, 0xF7, 0xF8, 0x00, 0xFF, 0x8F, 0xF0, 0x03, 0xFC, 0x3F, 0xC0, 0x0F, 0xE0, 0x7F, 0x80, 0x3F, 0x80, 0xFF, 0x00, 0xFE, 0x01, 0xFE, 0x03, 0xF8, 0x07, 0xFC, 0x0F, 0xE0, 0x0F, 0xF0, 0x3F, 0x80, 0x1F, 0xE0, 0xFE, 0x00, 0x3F, 0xC3, 0xF8, 0x00, 0xFF, 0x8F, 0xE0, 0x01, 0xFE, 0x3F, 0x80, 0x03, 0xFC, 0xFE, 0x00, 0x07, 0xFB, 0xF8, 0x00, 0x1F, 0xF0, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0xBE, 0x03, 0xEF, 0xFF, 0xDF, 0x01, 0xF7, 0xFF, 0xEF, 0x80, 0xFB, 0xFF, 0xF7, 0xC0, 0xFD, 0xFF, 0xFB, 0xF0, 0x7C, 0xFF, 0xFC, 0xF8, 0x3E, 0x7F, 0xFE, 0x7C, 0x1F, 0x3F, 0xFF, 0x3E, 0x0F, 0x9F, 0xFF, 0x9F, 0x8F, 0x8F, 0xFF, 0xC7, 0xC7, 0xC7, 0xFF, 0xE3, 0xE3, 0xE3, 0xFF, 0xF1, 0xF1, 0xF1, 0xFF, 0xF8, 0xFC, 0xF8, 0xFF, 0xFC, 0x3E, 0xF8, 0x7F, 0xFE, 0x1F, 0x7C, 0x3F, 0xFF, 0x0F, 0xBE, 0x1F, 0xFF, 0x87, 0xDF, 0x0F, 0xFF, 0xC3, 0xFF, 0x07, 0xFF, 0xE0, 0xFF, 0x83, 0xFF, 0xF0, 0x7F, 0xC1, 0xFF, 0xF8, 0x3F, 0xE0, 0xFF, 0xFC, 0x1F, 0xF0, 0x7F, 0xFE, 0x07, 0xF0, 0x3F, 0xFF, 0x03, 0xF8, 0x1F, 0xC0, 0xFE, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0x80, 0x07, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0xC0, 0x07, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xF8, 0x07, 0xFF, 0xEF, 0xC0, 0x7F, 0xFE, 0xFE, 0x07, 0xFF, 0xE7, 0xE0, 0x7F, 0xFE, 0x7F, 0x07, 0xFF, 0xE3, 0xF0, 0x7F, 0xFE, 0x1F, 0x87, 0xFF, 0xE1, 0xFC, 0x7F, 0xFE, 0x0F, 0xC7, 0xFF, 0xE0, 0xFE, 0x7F, 0xFE, 0x07, 0xE7, 0xFF, 0xE0, 0x3F, 0x7F, 0xFE, 0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xE0, 0x07, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xE0, 0x03, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0xE0, 0x00, 0x7F, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0x7F, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x3F, 0xC0, 0x0F, 0xF8, 0x3F, 0xC0, 0x01, 0xFE, 0x1F, 0xC0, 0x00, 0x7F, 0x1F, 0xE0, 0x00, 0x3F, 0xCF, 0xE0, 0x00, 0x0F, 0xE7, 0xF0, 0x00, 0x07, 0xF7, 0xF8, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xFC, 0x00, 0x01, 0xFE, 0xFE, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x7F, 0x3F, 0xC0, 0x00, 0x7F, 0x8F, 0xE0, 0x00, 0x3F, 0x87, 0xF8, 0x00, 0x3F, 0xC1, 0xFE, 0x00, 0x3F, 0xC0, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xE0, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xEF, 0xE0, 0x0F, 0xFB, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x03, 0xFE, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x0F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0x7F, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x3F, 0xC0, 0x07, 0xF8, 0x3F, 0xC0, 0x01, 0xFE, 0x1F, 0xC0, 0x00, 0x7F, 0x1F, 0xE0, 0x00, 0x3F, 0xCF, 0xE0, 0x00, 0x0F, 0xE7, 0xF0, 0x00, 0x07, 0xF7, 0xF8, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xFC, 0x00, 0x21, 0xFE, 0xFE, 0x00, 0x38, 0xFE, 0x7F, 0x00, 0x3E, 0x7F, 0x3F, 0xC0, 0x3F, 0xFF, 0x8F, 0xE0, 0x0F, 0xFF, 0x87, 0xF8, 0x03, 0xFF, 0xC1, 0xFE, 0x00, 0xFF, 0xC0, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xCF, 0xC0, 0x01, 0xFF, 0x03, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFC, 0xFE, 0x00, 0x3F, 0xEF, 0xE0, 0x01, 0xFE, 0xFE, 0x00, 0x0F, 0xEF, 0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x0F, 0xEF, 0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x0F, 0xEF, 0xE0, 0x01, 0xFC, 0xFE, 0x00, 0x3F, 0xCF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x8F, 0xE0, 0x07, 0xF8, 0xFE, 0x00, 0x1F, 0xCF, 0xE0, 0x01, 0xFC, 0xFE, 0x00, 0x1F, 0xCF, 0xE0, 0x01, 0xFC, 0xFE, 0x00, 0x1F, 0xCF, 0xE0, 0x01, 0xFC, 0xFE, 0x00, 0x1F, 0xCF, 0xE0, 0x01, 0xFC, 0xFE, 0x00, 0x1F, 0xCF, 0xE0, 0x01, 0xFC, 0xFE, 0x00, 0x1F, 0xEF, 0xE0, 0x00, 0xFF, 0x00, 0xFF, 0xC0, 0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFC, 0x7F, 0xC0, 0xFF, 0xCF, 0xF0, 0x03, 0xFE, 0xFE, 0x00, 0x1F, 0xEF, 0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x0F, 0xEF, 0xE0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0x00, 0x0F, 0xE7, 0xFC, 0x03, 0xFE, 0x7F, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xF0, 0x03, 0xFF, 0xFC, 0x00, 0x07, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xFC, 0x00, 0x7F, 0xBF, 0xC0, 0x1F, 0xE7, 0xFC, 0x07, 0xFC, 0x7F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x1F, 0xDF, 0xC0, 0x01, 0xFC, 0xFE, 0x00, 0x0F, 0xE7, 0xF0, 0x00, 0x7F, 0x1F, 0xC0, 0x03, 0xF0, 0xFE, 0x00, 0x3F, 0x87, 0xF0, 0x01, 0xFC, 0x1F, 0xC0, 0x0F, 0xC0, 0xFE, 0x00, 0xFE, 0x03, 0xF0, 0x07, 0xF0, 0x1F, 0x80, 0x3F, 0x00, 0xFE, 0x03, 0xF8, 0x03, 0xF0, 0x1F, 0xC0, 0x1F, 0x80, 0xFC, 0x00, 0xFE, 0x07, 0xE0, 0x03, 0xF0, 0x7F, 0x00, 0x1F, 0x83, 0xF0, 0x00, 0xFE, 0x1F, 0x80, 0x03, 0xF1, 0xF8, 0x00, 0x1F, 0x8F, 0xC0, 0x00, 0xFC, 0x7E, 0x00, 0x03, 0xF3, 0xE0, 0x00, 0x1F, 0xBF, 0x00, 0x00, 0xFD, 0xF8, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x3F, 0x80, 0x1F, 0xFF, 0xE0, 0x07, 0xF0, 0x03, 0xFD, 0xFC, 0x01, 0xFE, 0x00, 0x7F, 0x3F, 0x80, 0x3F, 0xE0, 0x0F, 0xE7, 0xF0, 0x07, 0xFC, 0x01, 0xFC, 0x7F, 0x00, 0xFF, 0x80, 0x7F, 0x8F, 0xE0, 0x1F, 0xF0, 0x0F, 0xE1, 0xFC, 0x07, 0xFF, 0x01, 0xFC, 0x3F, 0x80, 0xFB, 0xE0, 0x3F, 0x83, 0xF0, 0x1F, 0x7C, 0x07, 0xE0, 0x7F, 0x03, 0xEF, 0x81, 0xFC, 0x0F, 0xE0, 0x7D, 0xF0, 0x3F, 0x80, 0xFC, 0x1F, 0x9F, 0x07, 0xF0, 0x1F, 0x83, 0xE3, 0xE0, 0xFC, 0x03, 0xF0, 0x7C, 0x7C, 0x1F, 0x80, 0x7F, 0x0F, 0x8F, 0x87, 0xF0, 0x07, 0xE1, 0xF0, 0xF8, 0xFC, 0x00, 0xFC, 0x7E, 0x1F, 0x1F, 0x80, 0x1F, 0x8F, 0x83, 0xE3, 0xF0, 0x01, 0xF9, 0xF0, 0x7C, 0x7E, 0x00, 0x3F, 0x3E, 0x0F, 0x9F, 0x80, 0x07, 0xE7, 0xC0, 0xFB, 0xF0, 0x00, 0xFD, 0xF0, 0x1F, 0x7E, 0x00, 0x0F, 0xBE, 0x03, 0xEF, 0xC0, 0x01, 0xFF, 0xC0, 0x7D, 0xF0, 0x00, 0x3F, 0xF8, 0x0F, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xC0, 0x1F, 0xF0, 0x00, 0x0F, 0xF8, 0x03, 0xFE, 0x00, 0x01, 0xFF, 0x00, 0x7F, 0xC0, 0x00, 0x1F, 0xE0, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xE0, 0x03, 0xF8, 0x00, 0x7F, 0x80, 0x07, 0xF9, 0xFF, 0x00, 0x3F, 0xC3, 0xFC, 0x00, 0xFF, 0x07, 0xF8, 0x07, 0xF8, 0x1F, 0xE0, 0x1F, 0xC0, 0x3F, 0xC0, 0xFF, 0x00, 0xFF, 0x07, 0xF8, 0x01, 0xFE, 0x1F, 0xE0, 0x03, 0xF8, 0xFF, 0x00, 0x0F, 0xF3, 0xF8, 0x00, 0x1F, 0xDF, 0xE0, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0xFF, 0xF8, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x7F, 0x7F, 0x80, 0x03, 0xF8, 0xFF, 0x00, 0x1F, 0xE1, 0xFC, 0x00, 0x7F, 0x07, 0xF8, 0x03, 0xFC, 0x0F, 0xF0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x80, 0x7F, 0x83, 0xFC, 0x01, 0xFE, 0x0F, 0xF0, 0x03, 0xFC, 0x7F, 0x80, 0x0F, 0xFB, 0xFE, 0x00, 0x1F, 0xE0, 0xFF, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x7F, 0x9F, 0xE0, 0x03, 0xFC, 0xFF, 0x00, 0x3F, 0xC3, 0xFC, 0x01, 0xFE, 0x0F, 0xE0, 0x0F, 0xE0, 0x7F, 0x00, 0xFF, 0x01, 0xFC, 0x07, 0xF0, 0x0F, 0xE0, 0x7F, 0x80, 0x3F, 0x83, 0xF8, 0x01, 0xFC, 0x3F, 0xC0, 0x07, 0xF1, 0xFC, 0x00, 0x3F, 0x8F, 0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x07, 0xF7, 0xF0, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x78, 0x00, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x38, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x0E, 0x00, 0x38, 0x00, 0xE0, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x78, 0x00, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x3C, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0x80, 0x03, 0xFE, 0x00, 0x0F, 0xFC, 0x00, 0x7D, 0xF0, 0x01, 0xF7, 0xC0, 0x0F, 0xDF, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xFC, 0x07, 0xE1, 0xF0, 0x1F, 0x07, 0xC0, 0xFC, 0x1F, 0x83, 0xE0, 0x3E, 0x0F, 0x80, 0xFC, 0x7E, 0x01, 0xF1, 0xF0, 0x07, 0xC7, 0xC0, 0x1F, 0xBE, 0x00, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3E, 0x0F, 0x83, 0xC0, 0xF0, 0x38, 0x1E, 0x01, 0xFF, 0x00, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x7F, 0xFF, 0xF8, 0x7F, 0xFF, 0xFC, 0x7F, 0x03, 0xFC, 0x7E, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xFC, 0x03, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x7F, 0xC1, 0xFC, 0xFF, 0x01, 0xFC, 0xFE, 0x01, 0xFC, 0xFE, 0x03, 0xFC, 0xFE, 0x03, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0x3F, 0xFD, 0xFE, 0x1F, 0xF0, 0xFF, 0x07, 0xE0, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x0F, 0xC0, 0x3F, 0x9F, 0xF8, 0x1F, 0xDF, 0xFF, 0x0F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xF9, 0xFF, 0x83, 0xFE, 0xFF, 0x80, 0xFF, 0x7F, 0x80, 0x3F, 0xBF, 0xC0, 0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0x1F, 0xDF, 0xF0, 0x1F, 0xEF, 0xFC, 0x1F, 0xF7, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xF8, 0xFE, 0xFF, 0xF8, 0x7F, 0x3F, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x3F, 0xFF, 0xC0, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x9F, 0xF0, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x7F, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0xFD, 0xFE, 0x03, 0xFB, 0xFE, 0x0F, 0xF3, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x87, 0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x7E, 0x1F, 0xC0, 0xFF, 0xCF, 0xE1, 0xFF, 0xF7, 0xF1, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0x83, 0xFF, 0x7F, 0x80, 0xFF, 0xBF, 0x80, 0x3F, 0xFF, 0xC0, 0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x3F, 0xDF, 0xC0, 0x1F, 0xEF, 0xF0, 0x1F, 0xF7, 0xFC, 0x1F, 0xF9, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFE, 0x3F, 0xFF, 0xFF, 0x0F, 0xFF, 0xBF, 0x81, 0xFF, 0x9F, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x3F, 0xC3, 0xF8, 0x7F, 0x80, 0xFC, 0x7F, 0x00, 0xFC, 0x7F, 0x00, 0x7C, 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7E, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x7F, 0x00, 0xFE, 0x3F, 0xC1, 0xFE, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x03, 0xFF, 0xC0, 0x00, 0xFF, 0x00, 0x01, 0xFC, 0x1F, 0xF0, 0xFF, 0xC3, 0xFF, 0x1F, 0xFC, 0x7F, 0x81, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x0F, 0xFF, 0xBF, 0xFE, 0xFF, 0xFB, 0xFF, 0xE1, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x00, 0x00, 0xF8, 0x7F, 0x07, 0xFE, 0x7F, 0x0F, 0xFF, 0x7F, 0x1F, 0xFF, 0x7F, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x7F, 0xC3, 0xFF, 0x7F, 0x81, 0xFF, 0x7F, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x7F, 0x81, 0xFF, 0x7F, 0xC3, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0x07, 0xFE, 0x7F, 0x01, 0xF8, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0xFF, 0x7F, 0x01, 0xFE, 0x7F, 0xC3, 0xFE, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0x01, 0xFF, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x3F, 0x83, 0xF8, 0xFF, 0xC7, 0xF7, 0xFF, 0xCF, 0xEF, 0xFF, 0xDF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x01, 0xFF, 0xFE, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF0, 0x00, 0x00, 0x00, 0x07, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFE, 0xFE, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x03, 0xFB, 0xF8, 0x0F, 0xE7, 0xF0, 0x3F, 0xCF, 0xE0, 0xFF, 0x1F, 0xC3, 0xFC, 0x3F, 0x87, 0xF0, 0x7F, 0x1F, 0xC0, 0xFE, 0x7F, 0x01, 0xFD, 0xFC, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xF0, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xE0, 0x3F, 0xFF, 0xE0, 0x7F, 0xDF, 0xC0, 0xFF, 0x3F, 0xC1, 0xFC, 0x3F, 0x83, 0xF8, 0x3F, 0x87, 0xF0, 0x7F, 0x8F, 0xE0, 0x7F, 0x1F, 0xC0, 0xFF, 0x3F, 0x80, 0xFE, 0x7F, 0x01, 0xFE, 0xFE, 0x01, 0xFD, 0xFC, 0x03, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFE, 0x1F, 0x80, 0x7E, 0x0F, 0xE7, 0xFE, 0x1F, 0xF8, 0xFE, 0xFF, 0xF3, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0x0F, 0xFF, 0xF0, 0x1F, 0xE0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xF0, 0xFE, 0x1F, 0xC1, 0xFC, 0xFF, 0xE3, 0xFB, 0xFF, 0xE7, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x80, 0xFF, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFE, 0x00, 0x7F, 0x80, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF1, 0xFF, 0x07, 0xFC, 0xFF, 0x01, 0xFE, 0x7F, 0x00, 0x7F, 0x7F, 0x80, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7F, 0xBF, 0x80, 0x3F, 0x9F, 0xE0, 0x3F, 0xCF, 0xF8, 0x3F, 0xE3, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xF0, 0x0F, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0xFE, 0x1F, 0x80, 0x7F, 0x3F, 0xF0, 0x3F, 0xBF, 0xFE, 0x1F, 0xDF, 0xFF, 0x8F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xF3, 0xFF, 0x07, 0xFD, 0xFF, 0x01, 0xFE, 0xFF, 0x00, 0x7F, 0x7F, 0x80, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xBF, 0xE0, 0x3F, 0xDF, 0xF8, 0x3F, 0xCF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xE3, 0xFB, 0xFF, 0xE1, 0xFD, 0xFF, 0xF0, 0xFE, 0x7F, 0xE0, 0x7F, 0x0F, 0xC0, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x81, 0xFF, 0x9F, 0xC3, 0xFF, 0xEF, 0xE1, 0xFF, 0xF7, 0xF1, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFD, 0xFF, 0x07, 0xFE, 0xFF, 0x01, 0xFF, 0x7F, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7F, 0xBF, 0x80, 0x3F, 0xDF, 0xE0, 0x3F, 0xEF, 0xF8, 0x3F, 0xF3, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFC, 0x7F, 0xFE, 0xFE, 0x1F, 0xFF, 0x7F, 0x03, 0xFF, 0x3F, 0x80, 0x7E, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0xFE, 0x1F, 0xFC, 0x7F, 0xFB, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x7F, 0x80, 0xFF, 0x01, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xE0, 0x1F, 0xC0, 0x3F, 0x80, 0x7F, 0x00, 0xFE, 0x01, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xE0, 0x1F, 0xC0, 0x3F, 0x80, 0x7F, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x7F, 0x81, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0xC0, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFC, 0x07, 0xFF, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x81, 0xFE, 0x7F, 0xFF, 0xFE, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x01, 0xFF, 0x80, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xFF, 0x3F, 0xF1, 0xFF, 0x0F, 0xF0, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x03, 0xFF, 0xFC, 0x07, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xDF, 0xFF, 0xBF, 0x9F, 0xFF, 0x7F, 0x1F, 0xFC, 0xFE, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x3F, 0xBF, 0x80, 0x1F, 0x9F, 0xC0, 0x1F, 0xC7, 0xE0, 0x0F, 0xE3, 0xF8, 0x07, 0xE1, 0xFC, 0x07, 0xF0, 0x7E, 0x03, 0xF8, 0x3F, 0x81, 0xF8, 0x1F, 0xC0, 0xFC, 0x07, 0xE0, 0xFE, 0x03, 0xF8, 0x7E, 0x00, 0xFC, 0x3F, 0x00, 0x7E, 0x1F, 0x80, 0x3F, 0x1F, 0x80, 0x0F, 0xCF, 0xC0, 0x07, 0xE7, 0xE0, 0x03, 0xF7, 0xE0, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xF8, 0x00, 0x0F, 0xFC, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x03, 0xF8, 0x0F, 0xFF, 0xC0, 0x7F, 0x01, 0xFF, 0xF8, 0x0F, 0xE0, 0x3F, 0x3F, 0x03, 0xFE, 0x07, 0xE7, 0xE0, 0x7F, 0xC1, 0xFC, 0xFE, 0x0F, 0xF8, 0x3F, 0x9F, 0xC1, 0xFF, 0x07, 0xE1, 0xF8, 0x3D, 0xE0, 0xFC, 0x3F, 0x0F, 0xBE, 0x3F, 0x87, 0xF1, 0xF7, 0xC7, 0xE0, 0x7E, 0x3E, 0xF8, 0xFC, 0x0F, 0xC7, 0xDF, 0x1F, 0x81, 0xF9, 0xF1, 0xE3, 0xF0, 0x3F, 0x3E, 0x3E, 0xFC, 0x03, 0xF7, 0xC7, 0xDF, 0x80, 0x7E, 0xF8, 0xFB, 0xF0, 0x0F, 0xDE, 0x1F, 0x7C, 0x00, 0xFF, 0xC1, 0xFF, 0x80, 0x1F, 0xF8, 0x3F, 0xF0, 0x03, 0xFF, 0x07, 0xFE, 0x00, 0x7F, 0xC0, 0xFF, 0x80, 0x07, 0xF8, 0x1F, 0xF0, 0x00, 0xFF, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x3F, 0x80, 0x01, 0xFC, 0x07, 0xF0, 0x00, 0xFF, 0x00, 0xFF, 0x7F, 0x81, 0xFE, 0x3F, 0x81, 0xFC, 0x3F, 0xC3, 0xFC, 0x1F, 0xC3, 0xF8, 0x0F, 0xE7, 0xF0, 0x0F, 0xEF, 0xF0, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xC0, 0x03, 0xFF, 0xC0, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x0F, 0xE7, 0xF0, 0x1F, 0xE7, 0xF0, 0x1F, 0xC3, 0xF8, 0x3F, 0xC3, 0xFC, 0x7F, 0x81, 0xFC, 0x7F, 0x01, 0xFE, 0xFF, 0x00, 0xFF, 0x7F, 0x00, 0x3F, 0xBF, 0x80, 0x1F, 0xDF, 0xC0, 0x0F, 0xC7, 0xF0, 0x07, 0xE3, 0xF8, 0x07, 0xF1, 0xFC, 0x03, 0xF0, 0x7F, 0x01, 0xF8, 0x3F, 0x81, 0xFC, 0x0F, 0xC0, 0xFC, 0x07, 0xF0, 0x7E, 0x03, 0xF8, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0x7E, 0x1F, 0x80, 0x3F, 0x8F, 0xC0, 0x0F, 0xCF, 0xC0, 0x07, 0xE7, 0xE0, 0x03, 0xFB, 0xF0, 0x00, 0xFD, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFC, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x0F, 0xFC, 0x00, 0x07, 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x7F, 0xFF, 0xFB, 0xFF, 0xFF, 0xDF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xBF, 0xFF, 0xFC, 0x00, 0x3F, 0xE0, 0x03, 0xFE, 0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x01, 0xF8, 0x1F, 0xC1, 0xFE, 0x0F, 0xF0, 0xFF, 0x87, 0xE0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x3F, 0x0F, 0xF0, 0x7F, 0x03, 0xF8, 0x1F, 0xE0, 0x1F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xE0, 0x3F, 0xE0, 0xFF, 0x07, 0xF8, 0x1F, 0xC0, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x07, 0xF0, 0x3F, 0xC1, 0xFE, 0x0F, 0xF8, 0x0F, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x80, 0x7F, 0x81, 0xFC, 0x0F, 0xE0, 0xFF, 0x0F, 0xC0, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x0F, 0xC3, 0xFE, 0x1F, 0xE0, 0xFF, 0x07, 0xF0, 0x3F, 0x00, 0x1F, 0x00, 0x03, 0xFE, 0x00, 0x1F, 0xF8, 0x0F, 0xFF, 0xF0, 0xFF, 0x0F, 0xFF, 0xF0, 0x1F, 0xF8, 0x00, 0x7F, 0x80, 0x00, 0xF8}; const GFXglyph FreeSansBold24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 13, 0, 1}, // 0x20 ' ' {0, 7, 34, 16, 5, -33}, // 0x21 '!' {30, 18, 12, 22, 2, -33}, // 0x22 '"' {57, 26, 33, 26, 0, -31}, // 0x23 '#' {165, 25, 40, 26, 1, -34}, // 0x24 '$' {290, 39, 34, 42, 1, -32}, // 0x25 '%' {456, 30, 35, 34, 3, -33}, // 0x26 '&' {588, 7, 12, 12, 3, -33}, // 0x27 ''' {599, 13, 44, 16, 2, -33}, // 0x28 '(' {671, 13, 44, 16, 1, -33}, // 0x29 ')' {743, 15, 15, 18, 1, -33}, // 0x2A '*' {772, 23, 22, 27, 2, -21}, // 0x2B '+' {836, 7, 15, 12, 2, -6}, // 0x2C ',' {850, 13, 6, 16, 1, -15}, // 0x2D '-' {860, 7, 7, 12, 2, -6}, // 0x2E '.' {867, 13, 34, 13, 0, -32}, // 0x2F '/' {923, 24, 35, 26, 1, -33}, // 0x30 '0' {1028, 14, 33, 26, 4, -32}, // 0x31 '1' {1086, 23, 34, 26, 2, -33}, // 0x32 '2' {1184, 23, 35, 26, 2, -33}, // 0x33 '3' {1285, 22, 33, 26, 2, -32}, // 0x34 '4' {1376, 23, 34, 26, 2, -32}, // 0x35 '5' {1474, 23, 35, 26, 2, -33}, // 0x36 '6' {1575, 23, 33, 26, 1, -32}, // 0x37 '7' {1670, 24, 35, 26, 1, -33}, // 0x38 '8' {1775, 24, 35, 26, 1, -33}, // 0x39 '9' {1880, 7, 25, 12, 2, -24}, // 0x3A ':' {1902, 7, 33, 12, 2, -24}, // 0x3B ';' {1931, 23, 23, 27, 2, -22}, // 0x3C '<' {1998, 23, 18, 27, 2, -19}, // 0x3D '=' {2050, 23, 23, 27, 2, -22}, // 0x3E '>' {2117, 24, 35, 29, 3, -34}, // 0x3F '?' {2222, 43, 41, 46, 1, -34}, // 0x40 '@' {2443, 32, 34, 33, 0, -33}, // 0x41 'A' {2579, 27, 34, 33, 4, -33}, // 0x42 'B' {2694, 30, 36, 34, 2, -34}, // 0x43 'C' {2829, 28, 34, 34, 4, -33}, // 0x44 'D' {2948, 25, 34, 31, 4, -33}, // 0x45 'E' {3055, 24, 34, 30, 4, -33}, // 0x46 'F' {3157, 31, 36, 36, 2, -34}, // 0x47 'G' {3297, 27, 34, 35, 4, -33}, // 0x48 'H' {3412, 7, 34, 15, 4, -33}, // 0x49 'I' {3442, 22, 35, 27, 1, -33}, // 0x4A 'J' {3539, 30, 34, 34, 4, -33}, // 0x4B 'K' {3667, 23, 34, 29, 4, -33}, // 0x4C 'L' {3765, 33, 34, 41, 4, -33}, // 0x4D 'M' {3906, 28, 34, 35, 4, -33}, // 0x4E 'N' {4025, 33, 36, 37, 2, -34}, // 0x4F 'O' {4174, 26, 34, 32, 4, -33}, // 0x50 'P' {4285, 33, 37, 37, 2, -34}, // 0x51 'Q' {4438, 28, 34, 34, 4, -33}, // 0x52 'R' {4557, 28, 36, 32, 2, -34}, // 0x53 'S' {4683, 27, 34, 30, 2, -33}, // 0x54 'T' {4798, 27, 35, 35, 4, -33}, // 0x55 'U' {4917, 29, 34, 31, 1, -33}, // 0x56 'V' {5041, 43, 34, 45, 1, -33}, // 0x57 'W' {5224, 30, 34, 32, 1, -33}, // 0x58 'X' {5352, 29, 34, 30, 1, -33}, // 0x59 'Y' {5476, 26, 34, 29, 1, -33}, // 0x5A 'Z' {5587, 11, 43, 16, 3, -33}, // 0x5B '[' {5647, 14, 34, 13, -1, -32}, // 0x5C '\' {5707, 11, 43, 16, 1, -33}, // 0x5D ']' {5767, 22, 20, 27, 3, -32}, // 0x5E '^' {5822, 28, 4, 26, -1, 6}, // 0x5F '_' {5836, 9, 7, 12, 1, -35}, // 0x60 '`' {5844, 24, 26, 27, 2, -24}, // 0x61 'a' {5922, 25, 35, 29, 3, -33}, // 0x62 'b' {6032, 23, 26, 26, 2, -24}, // 0x63 'c' {6107, 25, 35, 29, 2, -33}, // 0x64 'd' {6217, 24, 26, 27, 2, -24}, // 0x65 'e' {6295, 14, 34, 16, 1, -33}, // 0x66 'f' {6355, 24, 36, 29, 2, -24}, // 0x67 'g' {6463, 23, 34, 28, 3, -33}, // 0x68 'h' {6561, 7, 34, 13, 3, -33}, // 0x69 'i' {6591, 10, 45, 13, 0, -33}, // 0x6A 'j' {6648, 23, 34, 27, 3, -33}, // 0x6B 'k' {6746, 7, 34, 13, 3, -33}, // 0x6C 'l' {6776, 36, 25, 42, 3, -24}, // 0x6D 'm' {6889, 23, 25, 29, 3, -24}, // 0x6E 'n' {6961, 25, 26, 29, 2, -24}, // 0x6F 'o' {7043, 25, 36, 29, 3, -24}, // 0x70 'p' {7156, 25, 36, 29, 2, -24}, // 0x71 'q' {7269, 15, 25, 18, 3, -24}, // 0x72 'r' {7316, 24, 26, 26, 1, -24}, // 0x73 's' {7394, 12, 32, 16, 2, -30}, // 0x74 't' {7442, 23, 26, 29, 3, -24}, // 0x75 'u' {7517, 25, 25, 25, 0, -24}, // 0x76 'v' {7596, 35, 25, 37, 1, -24}, // 0x77 'w' {7706, 24, 25, 26, 1, -24}, // 0x78 'x' {7781, 25, 36, 26, 0, -24}, // 0x79 'y' {7894, 21, 25, 24, 1, -24}, // 0x7A 'z' {7960, 13, 43, 18, 2, -33}, // 0x7B '{' {8030, 4, 44, 13, 5, -33}, // 0x7C '|' {8052, 13, 43, 18, 3, -33}, // 0x7D '}' {8122, 21, 8, 23, 1, -14}}; // 0x7E '~' const GFXfont FreeSansBold24pt7b PROGMEM = { (uint8_t *)FreeSansBold24pt7bBitmaps, (GFXglyph *)FreeSansBold24pt7bGlyphs, 0x20, 0x7E, 56}; // Approx. 8815 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansBold9pt7b.h ================================================ const uint8_t FreeSansBold9pt7bBitmaps[] PROGMEM = { 0xFF, 0xFF, 0xFE, 0x48, 0x7E, 0xEF, 0xDF, 0xBF, 0x74, 0x40, 0x19, 0x86, 0x67, 0xFD, 0xFF, 0x33, 0x0C, 0xC3, 0x33, 0xFE, 0xFF, 0x99, 0x86, 0x61, 0x90, 0x10, 0x1F, 0x1F, 0xDE, 0xFF, 0x3F, 0x83, 0xC0, 0xFC, 0x1F, 0x09, 0xFC, 0xFE, 0xF7, 0xF1, 0xE0, 0x40, 0x38, 0x10, 0x7C, 0x30, 0xC6, 0x20, 0xC6, 0x40, 0xC6, 0x40, 0x7C, 0x80, 0x39, 0x9C, 0x01, 0x3E, 0x03, 0x63, 0x02, 0x63, 0x04, 0x63, 0x0C, 0x3E, 0x08, 0x1C, 0x0E, 0x01, 0xF8, 0x3B, 0x83, 0xB8, 0x3F, 0x01, 0xE0, 0x3E, 0x67, 0x76, 0xE3, 0xEE, 0x1C, 0xF3, 0xC7, 0xFE, 0x3F, 0x70, 0xFF, 0xF4, 0x18, 0x63, 0x1C, 0x73, 0x8E, 0x38, 0xE3, 0x8E, 0x18, 0x70, 0xC3, 0x06, 0x08, 0x61, 0x83, 0x0E, 0x38, 0x71, 0xC7, 0x1C, 0x71, 0xC6, 0x38, 0xE3, 0x18, 0x40, 0x21, 0x3E, 0x45, 0x28, 0x38, 0x70, 0xE7, 0xFF, 0xE7, 0x0E, 0x1C, 0xFC, 0x9C, 0xFF, 0xC0, 0xFC, 0x08, 0xC4, 0x23, 0x10, 0x84, 0x62, 0x11, 0x88, 0x00, 0x3E, 0x3F, 0x9D, 0xDC, 0x7E, 0x3F, 0x1F, 0x8F, 0xC7, 0xE3, 0xF1, 0xDD, 0xCF, 0xE3, 0xE0, 0x08, 0xFF, 0xF3, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x80, 0x3E, 0x3F, 0xB8, 0xFC, 0x70, 0x38, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0F, 0xF7, 0xF8, 0x3C, 0x7F, 0xE7, 0xE7, 0x07, 0x0C, 0x0E, 0x07, 0x07, 0xE7, 0xE7, 0x7E, 0x3C, 0x0E, 0x1E, 0x1E, 0x2E, 0x2E, 0x4E, 0x4E, 0x8E, 0xFF, 0xFF, 0x0E, 0x0E, 0x0E, 0x7F, 0x3F, 0x90, 0x18, 0x0D, 0xE7, 0xFB, 0x9E, 0x07, 0x03, 0x81, 0xF1, 0xFF, 0xE7, 0xC0, 0x3E, 0x3F, 0x9C, 0xFC, 0x0E, 0xE7, 0xFB, 0xDF, 0xC7, 0xE3, 0xF1, 0xDD, 0xEF, 0xE3, 0xE0, 0xFF, 0xFF, 0xC0, 0xE0, 0xE0, 0x60, 0x70, 0x30, 0x38, 0x1C, 0x0C, 0x0E, 0x07, 0x03, 0x80, 0x3F, 0x1F, 0xEE, 0x3F, 0x87, 0xE3, 0xCF, 0xC7, 0xFB, 0xCF, 0xE1, 0xF8, 0x7F, 0x3D, 0xFE, 0x3F, 0x00, 0x3E, 0x3F, 0xBD, 0xDC, 0x7E, 0x3F, 0x1F, 0xDE, 0xFF, 0x3B, 0x81, 0xF9, 0xCF, 0xE3, 0xC0, 0xFC, 0x00, 0x07, 0xE0, 0xFC, 0x00, 0x07, 0xE5, 0xE0, 0x00, 0x83, 0xC7, 0xDF, 0x0C, 0x07, 0x80, 0xF8, 0x1F, 0x01, 0x80, 0xFF, 0xFF, 0xC0, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x70, 0x3F, 0x03, 0xE0, 0x38, 0x7D, 0xF1, 0xE0, 0x80, 0x00, 0x3E, 0x3F, 0xB8, 0xFC, 0x70, 0x38, 0x1C, 0x1C, 0x1C, 0x1C, 0x0E, 0x00, 0x03, 0x81, 0xC0, 0x03, 0xF0, 0x0F, 0xFC, 0x1E, 0x0E, 0x38, 0x02, 0x70, 0xE9, 0x63, 0x19, 0xC2, 0x19, 0xC6, 0x11, 0xC6, 0x33, 0xC6, 0x32, 0x63, 0xFE, 0x73, 0xDC, 0x3C, 0x00, 0x1F, 0xF8, 0x07, 0xF0, 0x07, 0x00, 0xF0, 0x0F, 0x80, 0xF8, 0x1D, 0x81, 0x9C, 0x19, 0xC3, 0x8C, 0x3F, 0xE7, 0xFE, 0x70, 0x66, 0x07, 0xE0, 0x70, 0xFF, 0x9F, 0xFB, 0x83, 0xF0, 0x7E, 0x0F, 0xFF, 0x3F, 0xF7, 0x06, 0xE0, 0xFC, 0x1F, 0x83, 0xFF, 0xEF, 0xF8, 0x1F, 0x83, 0xFE, 0x78, 0xE7, 0x07, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x07, 0x07, 0x78, 0xF3, 0xFE, 0x1F, 0x80, 0xFF, 0x8F, 0xFC, 0xE0, 0xEE, 0x0E, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x0E, 0xE0, 0xEF, 0xFC, 0xFF, 0x80, 0xFF, 0xFF, 0xF8, 0x1C, 0x0E, 0x07, 0xFB, 0xFD, 0xC0, 0xE0, 0x70, 0x38, 0x1F, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0x1C, 0x0E, 0x07, 0xFB, 0xFD, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x00, 0x0F, 0x87, 0xF9, 0xE3, 0xB8, 0x3E, 0x01, 0xC0, 0x38, 0xFF, 0x1F, 0xE0, 0x6E, 0x0D, 0xE3, 0x9F, 0xD0, 0xF2, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xFF, 0xFF, 0xFF, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xE7, 0xE7, 0xE7, 0x7E, 0x3C, 0xE0, 0xEE, 0x1C, 0xE3, 0x8E, 0x70, 0xEE, 0x0F, 0xC0, 0xFE, 0x0F, 0x70, 0xE7, 0x0E, 0x38, 0xE1, 0xCE, 0x0E, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xF8, 0x7F, 0xE1, 0xFF, 0x87, 0xFE, 0x1F, 0xEC, 0x7F, 0xB3, 0x7E, 0xCD, 0xFB, 0x37, 0xEC, 0xDF, 0x9E, 0x7E, 0x79, 0xF9, 0xE7, 0xE7, 0x9C, 0xE0, 0xFE, 0x1F, 0xC3, 0xFC, 0x7F, 0xCF, 0xD9, 0xFB, 0xBF, 0x37, 0xE7, 0xFC, 0x7F, 0x87, 0xF0, 0xFE, 0x0E, 0x0F, 0x81, 0xFF, 0x1E, 0x3C, 0xE0, 0xEE, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3B, 0x83, 0x9E, 0x3C, 0x7F, 0xC0, 0xF8, 0x00, 0xFF, 0x9F, 0xFB, 0x87, 0xF0, 0x7E, 0x0F, 0xC3, 0xFF, 0xF7, 0xFC, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x00, 0x0F, 0x81, 0xFF, 0x1E, 0x3C, 0xE0, 0xEE, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE1, 0xBB, 0x8F, 0x9E, 0x3C, 0x7F, 0xE0, 0xFB, 0x80, 0x08, 0xFF, 0x8F, 0xFC, 0xE0, 0xEE, 0x0E, 0xE0, 0xEE, 0x0E, 0xFF, 0xCF, 0xFC, 0xE0, 0xEE, 0x0E, 0xE0, 0xEE, 0x0E, 0xE0, 0xF0, 0x3F, 0x0F, 0xFB, 0xC7, 0xF0, 0x7E, 0x01, 0xFC, 0x1F, 0xF0, 0x3F, 0x00, 0xFC, 0x1D, 0xC7, 0xBF, 0xE1, 0xF8, 0xFF, 0xFF, 0xC7, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0xC7, 0xBF, 0xE1, 0xF0, 0x60, 0x67, 0x0E, 0x70, 0xE3, 0x0C, 0x30, 0xC3, 0x9C, 0x19, 0x81, 0x98, 0x1F, 0x80, 0xF0, 0x0F, 0x00, 0xF0, 0x06, 0x00, 0x61, 0xC3, 0xB8, 0xE1, 0x9C, 0x70, 0xCE, 0x3C, 0xE3, 0x36, 0x71, 0x9B, 0x30, 0xED, 0x98, 0x36, 0x7C, 0x1B, 0x3C, 0x0F, 0x1E, 0x07, 0x8F, 0x01, 0xC3, 0x80, 0xE1, 0x80, 0x70, 0xE7, 0x8E, 0x39, 0xC1, 0xF8, 0x1F, 0x80, 0xF0, 0x07, 0x00, 0xF0, 0x1F, 0x81, 0x9C, 0x39, 0xC7, 0x0E, 0x70, 0xE0, 0xE0, 0xFC, 0x39, 0xC7, 0x18, 0xC3, 0xB8, 0x36, 0x07, 0xC0, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0xFF, 0xFF, 0xC0, 0xE0, 0xE0, 0xF0, 0x70, 0x70, 0x70, 0x78, 0x38, 0x38, 0x1F, 0xFF, 0xF8, 0xFF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0xF0, 0x86, 0x10, 0x86, 0x10, 0x84, 0x30, 0x84, 0x30, 0x80, 0xFF, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x7F, 0xF0, 0x18, 0x1C, 0x3C, 0x3E, 0x36, 0x66, 0x63, 0xC3, 0xFF, 0xC0, 0xCC, 0x3F, 0x1F, 0xEE, 0x38, 0x0E, 0x3F, 0x9E, 0xEE, 0x3B, 0x9E, 0xFF, 0x9E, 0xE0, 0xE0, 0x38, 0x0E, 0x03, 0xBC, 0xFF, 0xBC, 0xEE, 0x1F, 0x87, 0xE1, 0xF8, 0x7F, 0x3B, 0xFE, 0xEF, 0x00, 0x1F, 0x3F, 0xDC, 0x7C, 0x0E, 0x07, 0x03, 0x80, 0xE3, 0x7F, 0x8F, 0x00, 0x03, 0x81, 0xC0, 0xE7, 0x77, 0xFB, 0xBF, 0x8F, 0xC7, 0xE3, 0xF1, 0xFD, 0xEF, 0xF3, 0xB8, 0x3E, 0x3F, 0x9C, 0xDC, 0x3F, 0xFF, 0xFF, 0x81, 0xC3, 0x7F, 0x8F, 0x00, 0x3B, 0xDD, 0xFF, 0xB9, 0xCE, 0x73, 0x9C, 0xE7, 0x00, 0x3B, 0xBF, 0xDD, 0xFC, 0x7E, 0x3F, 0x1F, 0x8F, 0xEF, 0x7F, 0x9D, 0xC0, 0xFC, 0x77, 0xF1, 0xF0, 0xE0, 0x70, 0x38, 0x1D, 0xEF, 0xFF, 0x9F, 0x8F, 0xC7, 0xE3, 0xF1, 0xF8, 0xFC, 0x7E, 0x38, 0xFC, 0x7F, 0xFF, 0xFF, 0xFE, 0x77, 0x07, 0x77, 0x77, 0x77, 0x77, 0x77, 0x7F, 0xE0, 0xE0, 0x70, 0x38, 0x1C, 0x7E, 0x77, 0x73, 0xF1, 0xF8, 0xFE, 0x77, 0x39, 0xDC, 0x6E, 0x38, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xEF, 0x7B, 0xFF, 0xFE, 0x39, 0xF8, 0xE7, 0xE3, 0x9F, 0x8E, 0x7E, 0x39, 0xF8, 0xE7, 0xE3, 0x9F, 0x8E, 0x70, 0xEF, 0x7F, 0xF8, 0xFC, 0x7E, 0x3F, 0x1F, 0x8F, 0xC7, 0xE3, 0xF1, 0xC0, 0x1E, 0x1F, 0xE7, 0x3B, 0x87, 0xE1, 0xF8, 0x7E, 0x1D, 0xCE, 0x7F, 0x87, 0x80, 0xEF, 0x3F, 0xEF, 0x3B, 0x87, 0xE1, 0xF8, 0x7E, 0x1F, 0xCE, 0xFF, 0xBB, 0xCE, 0x03, 0x80, 0xE0, 0x38, 0x00, 0x3B, 0xBF, 0xFD, 0xFC, 0x7E, 0x3F, 0x1F, 0x8F, 0xEF, 0x7F, 0x9D, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0xEF, 0xFF, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x80, 0x3E, 0x3F, 0xB8, 0xFC, 0x0F, 0xC3, 0xFC, 0x3F, 0xC7, 0xFF, 0x1F, 0x00, 0x73, 0xBF, 0xF7, 0x39, 0xCE, 0x73, 0x9E, 0x70, 0xE3, 0xF1, 0xF8, 0xFC, 0x7E, 0x3F, 0x1F, 0x8F, 0xC7, 0xFF, 0xBD, 0xC0, 0xE1, 0x98, 0x67, 0x39, 0xCC, 0x33, 0x0D, 0xC3, 0xE0, 0x78, 0x1E, 0x07, 0x00, 0xE3, 0x1D, 0x9E, 0x66, 0x79, 0x99, 0xE6, 0x77, 0xB8, 0xD2, 0xC3, 0xCF, 0x0F, 0x3C, 0x3C, 0xF0, 0x73, 0x80, 0x73, 0x9C, 0xE3, 0xF0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0xFC, 0x73, 0x9C, 0xE0, 0xE1, 0xD8, 0x67, 0x39, 0xCE, 0x33, 0x0E, 0xC3, 0xE0, 0x78, 0x1E, 0x03, 0x00, 0xC0, 0x70, 0x38, 0x0E, 0x00, 0xFE, 0xFE, 0x0E, 0x1C, 0x38, 0x38, 0x70, 0xE0, 0xFF, 0xFF, 0x37, 0x66, 0x66, 0x6E, 0xE6, 0x66, 0x66, 0x67, 0x30, 0xFF, 0xFF, 0x80, 0xCE, 0x66, 0x66, 0x67, 0x76, 0x66, 0x66, 0x6E, 0xC0, 0x71, 0x8E}; const GFXglyph FreeSansBold9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 5, 0, 1}, // 0x20 ' ' {0, 3, 13, 6, 2, -12}, // 0x21 '!' {5, 7, 5, 9, 1, -12}, // 0x22 '"' {10, 10, 12, 10, 0, -11}, // 0x23 '#' {25, 9, 15, 10, 1, -13}, // 0x24 '$' {42, 16, 13, 16, 0, -12}, // 0x25 '%' {68, 12, 13, 13, 1, -12}, // 0x26 '&' {88, 3, 5, 5, 1, -12}, // 0x27 ''' {90, 6, 17, 6, 1, -12}, // 0x28 '(' {103, 6, 17, 6, 0, -12}, // 0x29 ')' {116, 5, 6, 7, 1, -12}, // 0x2A '*' {120, 7, 8, 11, 2, -7}, // 0x2B '+' {127, 3, 5, 4, 1, -1}, // 0x2C ',' {129, 5, 2, 6, 0, -5}, // 0x2D '-' {131, 3, 2, 4, 1, -1}, // 0x2E '.' {132, 5, 13, 5, 0, -12}, // 0x2F '/' {141, 9, 13, 10, 1, -12}, // 0x30 '0' {156, 5, 13, 10, 2, -12}, // 0x31 '1' {165, 9, 13, 10, 1, -12}, // 0x32 '2' {180, 8, 13, 10, 1, -12}, // 0x33 '3' {193, 8, 13, 10, 2, -12}, // 0x34 '4' {206, 9, 13, 10, 1, -12}, // 0x35 '5' {221, 9, 13, 10, 1, -12}, // 0x36 '6' {236, 9, 13, 10, 0, -12}, // 0x37 '7' {251, 10, 13, 10, 0, -12}, // 0x38 '8' {268, 9, 13, 10, 1, -12}, // 0x39 '9' {283, 3, 9, 4, 1, -8}, // 0x3A ':' {287, 3, 12, 4, 1, -8}, // 0x3B ';' {292, 9, 9, 11, 1, -8}, // 0x3C '<' {303, 9, 6, 11, 1, -6}, // 0x3D '=' {310, 9, 9, 11, 1, -8}, // 0x3E '>' {321, 9, 13, 11, 1, -12}, // 0x3F '?' {336, 16, 15, 18, 0, -12}, // 0x40 '@' {366, 12, 13, 13, 0, -12}, // 0x41 'A' {386, 11, 13, 13, 1, -12}, // 0x42 'B' {404, 12, 13, 13, 1, -12}, // 0x43 'C' {424, 12, 13, 13, 1, -12}, // 0x44 'D' {444, 9, 13, 12, 1, -12}, // 0x45 'E' {459, 9, 13, 11, 1, -12}, // 0x46 'F' {474, 11, 13, 14, 1, -12}, // 0x47 'G' {492, 11, 13, 13, 1, -12}, // 0x48 'H' {510, 3, 13, 6, 1, -12}, // 0x49 'I' {515, 8, 13, 10, 1, -12}, // 0x4A 'J' {528, 12, 13, 13, 1, -12}, // 0x4B 'K' {548, 8, 13, 11, 1, -12}, // 0x4C 'L' {561, 14, 13, 16, 1, -12}, // 0x4D 'M' {584, 11, 13, 14, 1, -12}, // 0x4E 'N' {602, 13, 13, 14, 1, -12}, // 0x4F 'O' {624, 11, 13, 12, 1, -12}, // 0x50 'P' {642, 13, 14, 14, 1, -12}, // 0x51 'Q' {665, 12, 13, 13, 1, -12}, // 0x52 'R' {685, 11, 13, 12, 1, -12}, // 0x53 'S' {703, 9, 13, 12, 2, -12}, // 0x54 'T' {718, 11, 13, 13, 1, -12}, // 0x55 'U' {736, 12, 13, 12, 0, -12}, // 0x56 'V' {756, 17, 13, 17, 0, -12}, // 0x57 'W' {784, 12, 13, 12, 0, -12}, // 0x58 'X' {804, 11, 13, 12, 1, -12}, // 0x59 'Y' {822, 9, 13, 11, 1, -12}, // 0x5A 'Z' {837, 4, 17, 6, 1, -12}, // 0x5B '[' {846, 5, 13, 5, 0, -12}, // 0x5C '\' {855, 4, 17, 6, 0, -12}, // 0x5D ']' {864, 8, 8, 11, 1, -12}, // 0x5E '^' {872, 10, 1, 10, 0, 4}, // 0x5F '_' {874, 3, 2, 5, 0, -12}, // 0x60 '`' {875, 10, 10, 10, 1, -9}, // 0x61 'a' {888, 10, 13, 11, 1, -12}, // 0x62 'b' {905, 9, 10, 10, 1, -9}, // 0x63 'c' {917, 9, 13, 11, 1, -12}, // 0x64 'd' {932, 9, 10, 10, 1, -9}, // 0x65 'e' {944, 5, 13, 6, 1, -12}, // 0x66 'f' {953, 9, 14, 11, 1, -9}, // 0x67 'g' {969, 9, 13, 11, 1, -12}, // 0x68 'h' {984, 3, 13, 5, 1, -12}, // 0x69 'i' {989, 4, 17, 5, 0, -12}, // 0x6A 'j' {998, 9, 13, 10, 1, -12}, // 0x6B 'k' {1013, 3, 13, 5, 1, -12}, // 0x6C 'l' {1018, 14, 10, 16, 1, -9}, // 0x6D 'm' {1036, 9, 10, 11, 1, -9}, // 0x6E 'n' {1048, 10, 10, 11, 1, -9}, // 0x6F 'o' {1061, 10, 14, 11, 1, -9}, // 0x70 'p' {1079, 9, 14, 11, 1, -9}, // 0x71 'q' {1095, 6, 10, 7, 1, -9}, // 0x72 'r' {1103, 9, 10, 10, 1, -9}, // 0x73 's' {1115, 5, 12, 6, 1, -11}, // 0x74 't' {1123, 9, 10, 11, 1, -9}, // 0x75 'u' {1135, 10, 10, 10, 0, -9}, // 0x76 'v' {1148, 14, 10, 14, 0, -9}, // 0x77 'w' {1166, 10, 10, 10, 0, -9}, // 0x78 'x' {1179, 10, 14, 10, 0, -9}, // 0x79 'y' {1197, 8, 10, 9, 1, -9}, // 0x7A 'z' {1207, 4, 17, 7, 1, -12}, // 0x7B '{' {1216, 1, 17, 5, 2, -12}, // 0x7C '|' {1219, 4, 17, 7, 2, -12}, // 0x7D '}' {1228, 8, 2, 9, 0, -4}}; // 0x7E '~' const GFXfont FreeSansBold9pt7b PROGMEM = {(uint8_t *)FreeSansBold9pt7bBitmaps, (GFXglyph *)FreeSansBold9pt7bGlyphs, 0x20, 0x7E, 22}; // Approx. 1902 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansBoldOblique12pt7b.h ================================================ const uint8_t FreeSansBoldOblique12pt7bBitmaps[] PROGMEM = { 0x1C, 0x3C, 0x78, 0xE1, 0xC3, 0x8F, 0x1C, 0x38, 0x70, 0xC1, 0x83, 0x00, 0x1C, 0x78, 0xF0, 0x71, 0xFC, 0xFE, 0x3B, 0x8E, 0xC3, 0x30, 0xC0, 0x01, 0x8C, 0x07, 0x38, 0x0C, 0x61, 0xFF, 0xF3, 0xFF, 0xE7, 0xFF, 0x83, 0x9C, 0x0E, 0x70, 0x1C, 0xE1, 0xFF, 0xF3, 0xFF, 0xC7, 0xFF, 0x83, 0x18, 0x0E, 0x70, 0x18, 0xC0, 0x73, 0x80, 0x00, 0x40, 0x07, 0xF0, 0x3F, 0xF0, 0xFF, 0xF3, 0xC9, 0xE7, 0xB3, 0xCF, 0x60, 0x1F, 0xC0, 0x3F, 0xC0, 0x3F, 0xE0, 0x1F, 0xE0, 0x1B, 0xE0, 0x33, 0xDE, 0x47, 0xBC, 0x8F, 0x7F, 0x7C, 0x7F, 0xF0, 0x7F, 0x80, 0x18, 0x00, 0x20, 0x00, 0xC0, 0x00, 0x00, 0x01, 0x87, 0x80, 0xC3, 0xF0, 0x61, 0xFE, 0x10, 0xE1, 0x8C, 0x30, 0x66, 0x0C, 0x3B, 0x03, 0xFC, 0x80, 0x7E, 0x60, 0x0F, 0x30, 0x00, 0x18, 0x70, 0x0C, 0x7E, 0x03, 0x1F, 0xC1, 0x8E, 0x30, 0xC3, 0x1C, 0x60, 0xFE, 0x18, 0x1F, 0x8C, 0x07, 0x80, 0x01, 0xE0, 0x07, 0xF0, 0x1F, 0xE0, 0x79, 0xC0, 0xF3, 0x81, 0xEE, 0x01, 0xF8, 0x01, 0xE0, 0x1F, 0xC6, 0x7B, 0xDD, 0xE3, 0xF7, 0x87, 0xEF, 0x07, 0x9F, 0x1F, 0x3F, 0xFF, 0x3F, 0xDE, 0x3F, 0x1C, 0x7F, 0xEE, 0xCC, 0x03, 0x83, 0x81, 0x81, 0xC1, 0xC0, 0xE0, 0xE0, 0x70, 0x70, 0x38, 0x3C, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x18, 0x0E, 0x07, 0x01, 0x80, 0x06, 0x03, 0x81, 0xC0, 0x60, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0xE0, 0x70, 0x38, 0x38, 0x1C, 0x1C, 0x0E, 0x0E, 0x06, 0x07, 0x07, 0x00, 0x0C, 0x0C, 0x4F, 0xFF, 0x1C, 0x3C, 0x6C, 0x44, 0x03, 0x80, 0x38, 0x07, 0x00, 0x70, 0x7F, 0xFF, 0xFF, 0xFF, 0xF0, 0xE0, 0x0E, 0x00, 0xE0, 0x0C, 0x00, 0x7B, 0xDC, 0x23, 0x33, 0x00, 0x7F, 0xFF, 0xF0, 0x7F, 0xE0, 0x00, 0xC0, 0x30, 0x18, 0x04, 0x03, 0x00, 0x80, 0x60, 0x10, 0x0C, 0x02, 0x01, 0x80, 0x40, 0x30, 0x08, 0x06, 0x01, 0x00, 0xC0, 0x00, 0x03, 0xC0, 0x7F, 0x87, 0xFC, 0x78, 0xF3, 0xC7, 0xBC, 0x3D, 0xE1, 0xEF, 0x0F, 0xF0, 0x7F, 0x87, 0xBC, 0x3D, 0xE1, 0xEF, 0x1E, 0x78, 0xF3, 0xFF, 0x0F, 0xF0, 0x3E, 0x00, 0x03, 0x83, 0x83, 0xCF, 0xEF, 0xF0, 0x78, 0x38, 0x1C, 0x0E, 0x0F, 0x07, 0x03, 0x81, 0xC1, 0xE0, 0xF0, 0x70, 0x38, 0x00, 0x03, 0xF0, 0x0F, 0xF8, 0x7F, 0xF8, 0xF1, 0xF3, 0xC1, 0xE7, 0x83, 0xC0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x03, 0xE0, 0x0F, 0x00, 0x7C, 0x01, 0xE0, 0x07, 0x00, 0x1F, 0xFC, 0x3F, 0xF8, 0xFF, 0xF0, 0x07, 0xE0, 0xFF, 0x8F, 0xFE, 0xF8, 0xF7, 0x87, 0x80, 0x78, 0x0F, 0x80, 0xFC, 0x07, 0xE0, 0x0F, 0x80, 0x3C, 0x01, 0xEF, 0x0F, 0x78, 0xF3, 0xFF, 0x8F, 0xF8, 0x3F, 0x00, 0x00, 0x78, 0x07, 0xC0, 0x7E, 0x03, 0xF0, 0x37, 0x03, 0x38, 0x31, 0xC3, 0x9E, 0x38, 0xF1, 0x87, 0x1F, 0xFE, 0xFF, 0xF7, 0xFF, 0x80, 0xF0, 0x07, 0x00, 0x38, 0x03, 0xC0, 0x07, 0xFC, 0x1F, 0xF0, 0xFF, 0xC3, 0x00, 0x1C, 0x00, 0x7F, 0x81, 0xFF, 0x0F, 0xFE, 0x38, 0xF8, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0xF0, 0xF3, 0xC7, 0xCF, 0xFE, 0x1F, 0xF0, 0x3F, 0x00, 0x03, 0xE0, 0x7F, 0x87, 0xFE, 0x78, 0xF3, 0xC0, 0x3D, 0xE1, 0xFF, 0x8F, 0xFE, 0xF8, 0xF7, 0xC7, 0xBC, 0x3D, 0xE1, 0xEF, 0x1E, 0x7C, 0xF3, 0xFF, 0x0F, 0xF0, 0x1F, 0x00, 0x7F, 0xFB, 0xFF, 0xDF, 0xFE, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0F, 0x00, 0x70, 0x07, 0x00, 0x78, 0x03, 0x80, 0x3C, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x00, 0x03, 0xF0, 0x1F, 0xE0, 0xFF, 0xC7, 0x8F, 0x1C, 0x3C, 0x71, 0xE0, 0xFF, 0x03, 0xF8, 0x3F, 0xF1, 0xF1, 0xE7, 0x87, 0xBC, 0x1E, 0xF0, 0x7B, 0xE3, 0xCF, 0xFF, 0x1F, 0xF8, 0x1F, 0x80, 0x03, 0xE0, 0x3F, 0xE1, 0xFF, 0x8F, 0x9F, 0x3C, 0x3D, 0xE0, 0xF7, 0x83, 0xDE, 0x1F, 0x78, 0xFD, 0xFF, 0xE3, 0xFF, 0x87, 0xDE, 0x00, 0xF3, 0xC7, 0x8F, 0xFE, 0x1F, 0xF0, 0x3F, 0x00, 0x1C, 0xF3, 0x80, 0x00, 0x00, 0x00, 0x01, 0xCF, 0x38, 0x0E, 0x3C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xE3, 0x81, 0x06, 0x18, 0x60, 0x00, 0x00, 0x01, 0xC0, 0x7E, 0x1F, 0xE7, 0xF8, 0x7E, 0x03, 0xE0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x00, 0x78, 0x00, 0xC0, 0x3F, 0xFC, 0xFF, 0xF3, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0x9F, 0xFC, 0x7F, 0xF0, 0x30, 0x01, 0xE0, 0x0F, 0xE0, 0x3F, 0xC0, 0x7F, 0x80, 0x7C, 0x07, 0xE1, 0xFE, 0x7F, 0x87, 0xE0, 0x38, 0x00, 0x00, 0x00, 0x0F, 0xC1, 0xFF, 0x8F, 0xFC, 0xF1, 0xFF, 0x07, 0xF0, 0x3C, 0x01, 0xE0, 0x1E, 0x01, 0xE0, 0x3E, 0x03, 0xE0, 0x1C, 0x01, 0xC0, 0x0E, 0x00, 0x00, 0x07, 0x80, 0x3C, 0x01, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x03, 0xFF, 0x80, 0x3C, 0x0F, 0x01, 0xC0, 0x0E, 0x0E, 0x00, 0x1C, 0x70, 0xF7, 0x73, 0x87, 0xF8, 0xCC, 0x31, 0xE3, 0x61, 0x87, 0x0D, 0x8C, 0x1C, 0x3C, 0x30, 0x61, 0xB1, 0x81, 0x86, 0xC6, 0x0C, 0x3B, 0x18, 0x71, 0xCC, 0x63, 0xCE, 0x31, 0xFB, 0xF0, 0xE3, 0xCF, 0x01, 0xC0, 0x00, 0x03, 0xC0, 0xC0, 0x07, 0xFF, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x1F, 0x80, 0x1F, 0xC0, 0x0F, 0xE0, 0x0F, 0xF0, 0x07, 0x7C, 0x07, 0x1E, 0x03, 0x8F, 0x03, 0x87, 0x83, 0xC3, 0xC1, 0xFF, 0xE1, 0xFF, 0xF0, 0xFF, 0xFC, 0xF0, 0x1E, 0x70, 0x0F, 0x78, 0x07, 0xB8, 0x03, 0xC0, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0xFF, 0xE3, 0xC0, 0xF1, 0xC0, 0x78, 0xE0, 0x3C, 0xF0, 0x3C, 0x7F, 0xFC, 0x3F, 0xFC, 0x1F, 0xFF, 0x0E, 0x07, 0xCF, 0x01, 0xE7, 0x80, 0xF3, 0x80, 0x79, 0xC0, 0x79, 0xFF, 0xF8, 0xFF, 0xFC, 0x7F, 0xF8, 0x00, 0x01, 0xF8, 0x03, 0xFF, 0x03, 0xFF, 0xC3, 0xE1, 0xF3, 0xC0, 0x79, 0xE0, 0x3D, 0xE0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0xE7, 0x80, 0xF3, 0xE0, 0xF0, 0xFF, 0xF8, 0x3F, 0xF0, 0x07, 0xE0, 0x00, 0x1F, 0xFC, 0x0F, 0xFF, 0x87, 0xFF, 0xC3, 0x81, 0xF1, 0xC0, 0x79, 0xE0, 0x3C, 0xF0, 0x1E, 0x78, 0x0F, 0x38, 0x07, 0x9C, 0x03, 0xDE, 0x03, 0xCF, 0x01, 0xE7, 0x81, 0xF3, 0x80, 0xF1, 0xC1, 0xF1, 0xFF, 0xF0, 0xFF, 0xF0, 0x7F, 0xE0, 0x00, 0x0F, 0xFF, 0x1F, 0xFF, 0x1F, 0xFF, 0x1C, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x70, 0x00, 0x70, 0x00, 0xFF, 0xF8, 0xFF, 0xF8, 0xFF, 0xF8, 0x1F, 0xFF, 0x1F, 0xFE, 0x1F, 0xFE, 0x1C, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3F, 0xF8, 0x3F, 0xF8, 0x3F, 0xF8, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x70, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xE0, 0x00, 0x01, 0xFC, 0x03, 0xFF, 0x03, 0xFF, 0xC3, 0xE0, 0xF3, 0xC0, 0x39, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0xF0, 0x7F, 0x78, 0x3F, 0xBC, 0x1F, 0xDE, 0x01, 0xCF, 0x00, 0xE7, 0xC0, 0xF1, 0xF0, 0xF8, 0xFF, 0xFC, 0x3F, 0xEC, 0x07, 0xE6, 0x00, 0x1E, 0x03, 0x8F, 0x01, 0xC7, 0x01, 0xE3, 0x80, 0xF3, 0xC0, 0x79, 0xE0, 0x38, 0xF0, 0x1C, 0x7F, 0xFE, 0x3F, 0xFF, 0x3F, 0xFF, 0x9E, 0x03, 0x8F, 0x01, 0xC7, 0x01, 0xE3, 0x80, 0xF3, 0xC0, 0x71, 0xE0, 0x38, 0xF0, 0x3C, 0x70, 0x1E, 0x00, 0x1E, 0x3C, 0x78, 0xE1, 0xC7, 0x8F, 0x1E, 0x38, 0x71, 0xE3, 0xC7, 0x8E, 0x1C, 0x78, 0xF1, 0xE0, 0x00, 0x1C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x38, 0x00, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xC0, 0x07, 0x3C, 0x3C, 0xF0, 0xF3, 0xC3, 0x8F, 0x1E, 0x3F, 0xF8, 0x7F, 0xC0, 0xFC, 0x00, 0x1E, 0x07, 0xC7, 0x83, 0xE1, 0xE1, 0xE0, 0x70, 0xF0, 0x1C, 0x78, 0x0F, 0x3C, 0x03, 0xDE, 0x00, 0xFF, 0x00, 0x3F, 0xC0, 0x0F, 0xF0, 0x07, 0xDE, 0x01, 0xE7, 0xC0, 0x78, 0xF0, 0x1C, 0x3E, 0x0F, 0x07, 0x83, 0xC0, 0xF0, 0xF0, 0x3C, 0x38, 0x07, 0x80, 0x0E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x80, 0x38, 0x01, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x38, 0x01, 0xC0, 0x1F, 0xFE, 0xFF, 0xF7, 0xFF, 0x80, 0x1F, 0x03, 0xF1, 0xF0, 0x3F, 0x1F, 0x07, 0xF1, 0xF0, 0x7F, 0x3F, 0x0F, 0xE3, 0xF0, 0xEE, 0x3B, 0x1E, 0xE3, 0xB1, 0xDE, 0x3B, 0x1D, 0xE7, 0xB3, 0x9C, 0x7B, 0x39, 0xC7, 0x37, 0x9C, 0x73, 0x73, 0xCF, 0x3F, 0x3C, 0xF3, 0xE3, 0x8F, 0x3E, 0x38, 0xE3, 0xC3, 0x8E, 0x3C, 0x78, 0x1E, 0x03, 0x87, 0xC0, 0xE1, 0xF0, 0x38, 0x7C, 0x1E, 0x1F, 0x87, 0x8F, 0xE1, 0xC3, 0xB8, 0x70, 0xEF, 0x1C, 0x39, 0xCF, 0x1E, 0x73, 0xC7, 0x8E, 0xE1, 0xC3, 0xB8, 0x70, 0xEE, 0x1C, 0x1F, 0x8F, 0x07, 0xE3, 0xC1, 0xF0, 0xE0, 0x3C, 0x38, 0x0F, 0x00, 0x01, 0xF8, 0x03, 0xFF, 0x03, 0xFF, 0xC3, 0xE3, 0xE3, 0xC0, 0xF9, 0xE0, 0x3D, 0xE0, 0x1E, 0xF0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x03, 0xDE, 0x01, 0xEF, 0x00, 0xF7, 0xC0, 0xF1, 0xF0, 0xF0, 0xFF, 0xF0, 0x3F, 0xF0, 0x07, 0xE0, 0x00, 0x1F, 0xFC, 0x1F, 0xFE, 0x1F, 0xFF, 0x1C, 0x1F, 0x1C, 0x0F, 0x3C, 0x0F, 0x3C, 0x0F, 0x3C, 0x1E, 0x3F, 0xFC, 0x3F, 0xFC, 0x7F, 0xF0, 0x78, 0x00, 0x78, 0x00, 0x70, 0x00, 0x70, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x01, 0xF8, 0x03, 0xFF, 0x03, 0xFF, 0xC3, 0xE3, 0xE3, 0xC0, 0xF9, 0xC0, 0x3D, 0xE0, 0x1E, 0xF0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x03, 0xDE, 0x09, 0xEF, 0x0E, 0xE7, 0xC7, 0xF1, 0xF1, 0xF0, 0xFF, 0xF8, 0x3F, 0xFE, 0x07, 0xE6, 0x00, 0x02, 0x00, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0xFF, 0xE3, 0x81, 0xF1, 0xC0, 0x78, 0xE0, 0x3C, 0xF0, 0x1C, 0x78, 0x1E, 0x3F, 0xFC, 0x1F, 0xFC, 0x1F, 0xFF, 0x8F, 0x03, 0xC7, 0x81, 0xE3, 0x80, 0xF1, 0xC0, 0xF1, 0xE0, 0x78, 0xF0, 0x3C, 0x78, 0x1F, 0x00, 0x03, 0xF8, 0x0F, 0xFE, 0x1F, 0xFF, 0x1E, 0x1F, 0x3C, 0x0F, 0x3C, 0x0F, 0x3C, 0x00, 0x3F, 0x00, 0x1F, 0xF0, 0x0F, 0xFC, 0x01, 0xFE, 0x00, 0x3E, 0xF0, 0x1E, 0xF0, 0x1E, 0xF8, 0x3C, 0x7F, 0xF8, 0x7F, 0xF0, 0x1F, 0xC0, 0x7F, 0xFE, 0xFF, 0xFD, 0xFF, 0xF8, 0x1C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0x80, 0x07, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xE0, 0x01, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x38, 0x00, 0x1E, 0x07, 0x1C, 0x0F, 0x3C, 0x0F, 0x3C, 0x0F, 0x3C, 0x0E, 0x38, 0x0E, 0x78, 0x1E, 0x78, 0x1E, 0x78, 0x1E, 0x78, 0x1C, 0x70, 0x1C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x38, 0xF8, 0x78, 0xFF, 0xF0, 0x7F, 0xE0, 0x1F, 0x80, 0xF0, 0x1F, 0xE0, 0x39, 0xC0, 0xF3, 0x81, 0xC7, 0x07, 0x8E, 0x0E, 0x1C, 0x3C, 0x3C, 0x70, 0x79, 0xE0, 0xF3, 0x80, 0xEF, 0x01, 0xDC, 0x03, 0xB8, 0x07, 0xE0, 0x0F, 0x80, 0x1F, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x70, 0x7F, 0x87, 0x83, 0xFC, 0x3C, 0x3D, 0xE1, 0xE1, 0xEF, 0x1F, 0x0E, 0x78, 0xD8, 0xF3, 0xC6, 0xC7, 0x0E, 0x76, 0x78, 0x73, 0x33, 0x83, 0xB9, 0x9C, 0x1D, 0xCD, 0xC0, 0xEC, 0x6E, 0x07, 0xE3, 0xE0, 0x3E, 0x1F, 0x01, 0xF0, 0xF0, 0x0F, 0x87, 0x80, 0x78, 0x38, 0x03, 0xC1, 0xC0, 0x00, 0x0F, 0x03, 0xC3, 0xC1, 0xE0, 0xF8, 0xF0, 0x1E, 0x78, 0x07, 0x9E, 0x00, 0xFF, 0x00, 0x3F, 0x80, 0x0F, 0xC0, 0x01, 0xE0, 0x00, 0xF8, 0x00, 0x3F, 0x00, 0x1F, 0xC0, 0x0F, 0xF0, 0x07, 0x9E, 0x03, 0xC7, 0x80, 0xF0, 0xF0, 0x78, 0x3C, 0x3C, 0x0F, 0x80, 0x78, 0x1E, 0xF0, 0x79, 0xE0, 0xF3, 0xC3, 0xC3, 0xCF, 0x07, 0x9E, 0x0F, 0x78, 0x0F, 0xE0, 0x1F, 0x80, 0x3F, 0x00, 0x3C, 0x00, 0x70, 0x00, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x1F, 0xFF, 0x0F, 0xFF, 0x87, 0xFF, 0xC0, 0x03, 0xC0, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xFF, 0xF0, 0xFF, 0xF8, 0x7F, 0xFC, 0x00, 0x0F, 0xC3, 0xF0, 0xFC, 0x38, 0x1E, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x0F, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x0F, 0x03, 0x80, 0xFC, 0x3F, 0x0F, 0xC0, 0x08, 0x88, 0xC4, 0x44, 0x66, 0x66, 0x66, 0x62, 0x22, 0x33, 0x33, 0x30, 0x0F, 0xC3, 0xF0, 0xFC, 0x07, 0x03, 0xC0, 0xE0, 0x38, 0x0E, 0x03, 0x81, 0xC0, 0x70, 0x1C, 0x07, 0x03, 0xC0, 0xE0, 0x38, 0x0E, 0x03, 0x81, 0xE0, 0x70, 0xFC, 0x3F, 0x0F, 0xC0, 0x03, 0x80, 0xF0, 0x1E, 0x07, 0xE1, 0xDC, 0x3B, 0x8E, 0x71, 0x86, 0x70, 0xFC, 0x1F, 0x83, 0x80, 0x7F, 0xFE, 0xFF, 0xFC, 0xE6, 0x30, 0x07, 0xE0, 0xFF, 0x8F, 0xFE, 0x70, 0xE0, 0x07, 0x03, 0xF8, 0xFF, 0xCF, 0x9E, 0xF0, 0xF7, 0x8F, 0x3F, 0xF8, 0xFF, 0xC3, 0xDF, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0x9F, 0x07, 0xFF, 0x0F, 0xFF, 0x3E, 0x3E, 0x78, 0x3C, 0xF0, 0x79, 0xC0, 0xF3, 0x81, 0xEF, 0x07, 0x9F, 0x1F, 0x3F, 0xFC, 0x7F, 0xF0, 0xEF, 0x80, 0x07, 0xC0, 0xFF, 0x8F, 0xFE, 0xF8, 0xF7, 0x87, 0xB8, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0xF7, 0x8F, 0x1F, 0xF8, 0xFF, 0x81, 0xF0, 0x00, 0x00, 0x1E, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x03, 0xC0, 0xF7, 0x87, 0xFE, 0x1F, 0xFC, 0x7C, 0x78, 0xF0, 0x73, 0xC0, 0xE7, 0x81, 0x8F, 0x07, 0x1E, 0x0E, 0x3E, 0x3C, 0x7F, 0xF8, 0x7F, 0xE0, 0x7D, 0xC0, 0x07, 0xC0, 0xFF, 0x8F, 0xFE, 0xF0, 0xF7, 0x87, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0xF0, 0x07, 0xC7, 0x9F, 0xF8, 0xFF, 0x81, 0xF0, 0x00, 0x07, 0x87, 0xC7, 0xE3, 0xC1, 0xC3, 0xF9, 0xFC, 0x78, 0x3C, 0x1C, 0x0E, 0x07, 0x07, 0x83, 0x81, 0xC0, 0xE0, 0xF0, 0x78, 0x00, 0x03, 0xDE, 0x1F, 0xF8, 0x7F, 0xF1, 0xF1, 0xE3, 0xC1, 0xCF, 0x03, 0x9E, 0x06, 0x3C, 0x0C, 0x78, 0x38, 0xF8, 0xF1, 0xFF, 0xC1, 0xFF, 0x81, 0xF7, 0x00, 0x0E, 0x3C, 0x3C, 0x78, 0xF0, 0x7F, 0xC0, 0x7E, 0x00, 0x1E, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x3C, 0x00, 0xF7, 0xC3, 0xBF, 0x8F, 0xFF, 0x3C, 0x3D, 0xE0, 0xE7, 0x83, 0x9C, 0x0E, 0x70, 0x79, 0xC1, 0xEF, 0x07, 0x3C, 0x1C, 0xE0, 0x73, 0x83, 0xC0, 0x0E, 0x3C, 0x70, 0x00, 0x03, 0x8F, 0x1E, 0x38, 0x71, 0xE3, 0xC7, 0x0E, 0x1C, 0x78, 0xF1, 0xC0, 0x03, 0xC0, 0xE0, 0x38, 0x00, 0x00, 0x01, 0xE0, 0x70, 0x1C, 0x07, 0x03, 0xC0, 0xF0, 0x38, 0x0E, 0x03, 0x81, 0xE0, 0x70, 0x1C, 0x07, 0x03, 0xC0, 0xF0, 0xF8, 0x3E, 0x0F, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0x87, 0x87, 0x1E, 0x0E, 0x78, 0x3D, 0xE0, 0x7F, 0x80, 0xFE, 0x01, 0xFE, 0x03, 0xFC, 0x0F, 0x38, 0x1E, 0x78, 0x38, 0xF0, 0x70, 0xF0, 0xE1, 0xE0, 0x0E, 0x3C, 0x78, 0xE1, 0xC3, 0x8F, 0x1E, 0x38, 0x71, 0xE3, 0xC7, 0x0E, 0x1C, 0x78, 0xF1, 0xC0, 0x1C, 0xF1, 0xE0, 0xEF, 0xDF, 0x87, 0xFF, 0xFE, 0x7C, 0x78, 0xF3, 0xC3, 0x87, 0x9C, 0x1C, 0x38, 0xE1, 0xE1, 0xC7, 0x0E, 0x0E, 0x78, 0x70, 0xF3, 0xC3, 0x87, 0x9C, 0x3C, 0x38, 0xE1, 0xE1, 0xC7, 0x0E, 0x0E, 0x00, 0x3D, 0xF0, 0xEF, 0xE3, 0xFF, 0xCF, 0x0F, 0x78, 0x39, 0xC0, 0xE7, 0x03, 0x9C, 0x1E, 0xF0, 0x7B, 0xC1, 0xCE, 0x07, 0x38, 0x1C, 0xE0, 0xF0, 0x07, 0xE0, 0x7F, 0xE3, 0xFF, 0x9F, 0x1F, 0x78, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x1F, 0xF0, 0x7B, 0xE3, 0xE7, 0xFF, 0x1F, 0xF8, 0x1F, 0x80, 0x0E, 0x7C, 0x0F, 0xFE, 0x0F, 0xFF, 0x1F, 0x1F, 0x1E, 0x0F, 0x1E, 0x0F, 0x1C, 0x0F, 0x1C, 0x0F, 0x3C, 0x1E, 0x3E, 0x3E, 0x3F, 0xFC, 0x3F, 0xF8, 0x7B, 0xE0, 0x78, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0xF0, 0x00, 0x07, 0xBC, 0x7F, 0xF3, 0xFF, 0x9F, 0x1E, 0x78, 0x3B, 0xC0, 0xEF, 0x03, 0x3C, 0x0C, 0xF0, 0x73, 0xE3, 0xCF, 0xFF, 0x1F, 0xF8, 0x3C, 0xE0, 0x03, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xC0, 0x07, 0x00, 0x3D, 0xCE, 0xE3, 0xF8, 0xF0, 0x78, 0x1E, 0x07, 0x01, 0xC0, 0xF0, 0x3C, 0x0E, 0x03, 0x80, 0xE0, 0x00, 0x1F, 0xC3, 0xFE, 0x7F, 0xFF, 0x0F, 0xF0, 0x0F, 0xE0, 0x7F, 0xC1, 0xFE, 0x03, 0xEE, 0x1E, 0xFF, 0xC7, 0xFC, 0x3F, 0x00, 0x1E, 0x1E, 0x1C, 0x7F, 0xFF, 0x3C, 0x38, 0x38, 0x38, 0x78, 0x78, 0x70, 0x7C, 0xF8, 0x78, 0x38, 0x3C, 0xE0, 0xE3, 0x83, 0x9E, 0x0E, 0x70, 0x79, 0xC1, 0xE7, 0x07, 0x3C, 0x1C, 0xF0, 0xF3, 0xE7, 0xCF, 0xFF, 0x1F, 0xF8, 0x3C, 0xE0, 0xF0, 0x77, 0x87, 0xBC, 0x38, 0xE3, 0xC7, 0x1C, 0x39, 0xE1, 0xCE, 0x0E, 0xE0, 0x77, 0x03, 0xF0, 0x0F, 0x80, 0x78, 0x03, 0xC0, 0x00, 0xF1, 0xC3, 0xF8, 0xE3, 0xFC, 0xF1, 0xDE, 0x79, 0xEF, 0x3C, 0xE7, 0xB6, 0x73, 0xDB, 0x70, 0xED, 0xB8, 0x7C, 0xF8, 0x3E, 0x7C, 0x1F, 0x3C, 0x0F, 0x1E, 0x07, 0x8E, 0x00, 0x0F, 0x1E, 0x0F, 0x3C, 0x0F, 0x38, 0x07, 0x70, 0x07, 0xF0, 0x03, 0xE0, 0x03, 0xC0, 0x07, 0xC0, 0x0F, 0xE0, 0x1E, 0xE0, 0x3C, 0xF0, 0x3C, 0xF0, 0x78, 0x78, 0x3C, 0x1C, 0x78, 0x78, 0xF0, 0xE1, 0xE3, 0xC1, 0xC7, 0x03, 0x9E, 0x07, 0x38, 0x0E, 0xE0, 0x1D, 0xC0, 0x3F, 0x00, 0x7E, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xC0, 0x07, 0x00, 0x7E, 0x00, 0xF8, 0x01, 0xE0, 0x00, 0x1F, 0xF9, 0xFF, 0xCF, 0xFC, 0x01, 0xE0, 0x3E, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3F, 0xF9, 0xFF, 0xCF, 0xFC, 0x00, 0x07, 0x87, 0xC3, 0xE3, 0xC1, 0xC0, 0xE0, 0x70, 0x38, 0x3C, 0x1C, 0x0E, 0x1E, 0x0F, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x78, 0x38, 0x1C, 0x0F, 0x87, 0xC1, 0xC0, 0x0C, 0x30, 0x86, 0x18, 0x61, 0x8C, 0x30, 0xC3, 0x0C, 0x61, 0x86, 0x18, 0x63, 0x0C, 0x30, 0xC2, 0x00, 0x00, 0x07, 0x07, 0xC3, 0xE0, 0x70, 0x38, 0x3C, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xE0, 0xF0, 0xE0, 0x70, 0x78, 0x38, 0x1C, 0x0E, 0x07, 0x07, 0x8F, 0x87, 0xC3, 0xC0, 0x3C, 0x07, 0xE0, 0xC7, 0x30, 0x7E, 0x01, 0xC0}; const GFXglyph FreeSansBoldOblique12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 7, 0, 1}, // 0x20 ' ' {0, 7, 17, 8, 3, -16}, // 0x21 '!' {15, 10, 6, 11, 4, -17}, // 0x22 '"' {23, 15, 16, 13, 1, -15}, // 0x23 '#' {53, 15, 21, 13, 1, -17}, // 0x24 '$' {93, 18, 18, 21, 3, -17}, // 0x25 '%' {134, 15, 17, 17, 2, -16}, // 0x26 '&' {166, 4, 6, 6, 4, -17}, // 0x27 ''' {169, 9, 22, 8, 2, -17}, // 0x28 '(' {194, 9, 22, 8, -1, -16}, // 0x29 ')' {219, 8, 8, 9, 3, -17}, // 0x2A '*' {227, 12, 11, 14, 2, -10}, // 0x2B '+' {244, 5, 7, 7, 1, -2}, // 0x2C ',' {249, 7, 3, 8, 2, -7}, // 0x2D '-' {252, 4, 3, 7, 2, -2}, // 0x2E '.' {254, 10, 17, 7, 0, -16}, // 0x2F '/' {276, 13, 17, 13, 2, -16}, // 0x30 '0' {304, 9, 17, 13, 4, -16}, // 0x31 '1' {324, 15, 17, 13, 1, -16}, // 0x32 '2' {356, 13, 17, 13, 2, -16}, // 0x33 '3' {384, 13, 17, 13, 1, -16}, // 0x34 '4' {412, 14, 17, 13, 1, -16}, // 0x35 '5' {442, 13, 17, 13, 2, -16}, // 0x36 '6' {470, 13, 17, 13, 3, -16}, // 0x37 '7' {498, 14, 17, 13, 1, -16}, // 0x38 '8' {528, 14, 17, 13, 2, -16}, // 0x39 '9' {558, 6, 12, 8, 3, -11}, // 0x3A ':' {567, 7, 16, 8, 2, -11}, // 0x3B ';' {581, 13, 12, 14, 2, -11}, // 0x3C '<' {601, 14, 9, 14, 1, -9}, // 0x3D '=' {617, 13, 12, 14, 1, -10}, // 0x3E '>' {637, 13, 18, 15, 4, -17}, // 0x3F '?' {667, 22, 21, 23, 2, -17}, // 0x40 '@' {725, 17, 18, 17, 0, -17}, // 0x41 'A' {764, 17, 18, 17, 2, -17}, // 0x42 'B' {803, 17, 18, 17, 3, -17}, // 0x43 'C' {842, 17, 18, 17, 2, -17}, // 0x44 'D' {881, 16, 18, 16, 2, -17}, // 0x45 'E' {917, 16, 18, 15, 2, -17}, // 0x46 'F' {953, 17, 18, 19, 3, -17}, // 0x47 'G' {992, 17, 18, 17, 2, -17}, // 0x48 'H' {1031, 7, 18, 7, 2, -17}, // 0x49 'I' {1047, 14, 18, 13, 1, -17}, // 0x4A 'J' {1079, 18, 18, 17, 2, -17}, // 0x4B 'K' {1120, 13, 18, 15, 2, -17}, // 0x4C 'L' {1150, 20, 18, 20, 2, -17}, // 0x4D 'M' {1195, 18, 18, 17, 2, -17}, // 0x4E 'N' {1236, 17, 18, 19, 3, -17}, // 0x4F 'O' {1275, 16, 18, 16, 2, -17}, // 0x50 'P' {1311, 17, 19, 19, 3, -17}, // 0x51 'Q' {1352, 17, 18, 17, 2, -17}, // 0x52 'R' {1391, 16, 18, 16, 2, -17}, // 0x53 'S' {1427, 15, 18, 15, 3, -17}, // 0x54 'T' {1461, 16, 18, 17, 3, -17}, // 0x55 'U' {1497, 15, 18, 16, 4, -17}, // 0x56 'V' {1531, 21, 18, 23, 4, -17}, // 0x57 'W' {1579, 18, 18, 16, 1, -17}, // 0x58 'X' {1620, 15, 18, 16, 4, -17}, // 0x59 'Y' {1654, 17, 18, 15, 1, -17}, // 0x5A 'Z' {1693, 10, 23, 8, 1, -17}, // 0x5B '[' {1722, 4, 23, 7, 3, -22}, // 0x5C '\' {1734, 10, 23, 8, 0, -17}, // 0x5D ']' {1763, 11, 11, 14, 3, -16}, // 0x5E '^' {1779, 15, 2, 13, -2, 4}, // 0x5F '_' {1783, 4, 3, 8, 4, -17}, // 0x60 '`' {1785, 13, 13, 13, 1, -12}, // 0x61 'a' {1807, 15, 18, 15, 1, -17}, // 0x62 'b' {1841, 13, 13, 13, 2, -12}, // 0x63 'c' {1863, 15, 18, 15, 2, -17}, // 0x64 'd' {1897, 13, 13, 13, 2, -12}, // 0x65 'e' {1919, 9, 18, 8, 2, -17}, // 0x66 'f' {1940, 15, 18, 15, 1, -12}, // 0x67 'g' {1974, 14, 18, 15, 2, -17}, // 0x68 'h' {2006, 7, 18, 7, 2, -17}, // 0x69 'i' {2022, 10, 23, 7, -1, -17}, // 0x6A 'j' {2051, 15, 18, 13, 1, -17}, // 0x6B 'k' {2085, 7, 18, 7, 2, -17}, // 0x6C 'l' {2101, 21, 13, 21, 1, -12}, // 0x6D 'm' {2136, 14, 13, 15, 2, -12}, // 0x6E 'n' {2159, 14, 13, 15, 2, -12}, // 0x6F 'o' {2182, 16, 18, 15, 0, -12}, // 0x70 'p' {2218, 14, 18, 15, 2, -12}, // 0x71 'q' {2250, 10, 13, 9, 2, -12}, // 0x72 'r' {2267, 12, 13, 13, 3, -12}, // 0x73 's' {2287, 8, 15, 8, 2, -14}, // 0x74 't' {2302, 14, 13, 15, 2, -12}, // 0x75 'u' {2325, 13, 13, 13, 3, -12}, // 0x76 'v' {2347, 17, 13, 19, 3, -12}, // 0x77 'w' {2375, 16, 13, 13, 0, -12}, // 0x78 'x' {2401, 15, 18, 13, 1, -12}, // 0x79 'y' {2435, 13, 13, 12, 1, -12}, // 0x7A 'z' {2457, 9, 23, 9, 3, -17}, // 0x7B '{' {2483, 6, 23, 7, 1, -17}, // 0x7C '|' {2501, 9, 23, 9, 0, -17}, // 0x7D '}' {2527, 12, 5, 14, 2, -7}}; // 0x7E '~' const GFXfont FreeSansBoldOblique12pt7b PROGMEM = { (uint8_t *)FreeSansBoldOblique12pt7bBitmaps, (GFXglyph *)FreeSansBoldOblique12pt7bGlyphs, 0x20, 0x7E, 29}; // Approx. 3207 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansBoldOblique18pt7b.h ================================================ const uint8_t FreeSansBoldOblique18pt7bBitmaps[] PROGMEM = { 0x06, 0x01, 0xC0, 0x7C, 0x1F, 0x0F, 0xC3, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xC0, 0xF0, 0x7C, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1C, 0x07, 0x01, 0xC0, 0x60, 0x7C, 0x1F, 0x07, 0xC3, 0xF0, 0xF8, 0x00, 0x78, 0x7B, 0xC3, 0xFE, 0x3F, 0xE1, 0xEF, 0x0F, 0x78, 0x7B, 0x83, 0x9C, 0x1C, 0xC0, 0xC0, 0x00, 0x3C, 0x38, 0x00, 0xF1, 0xE0, 0x07, 0x87, 0x00, 0x1E, 0x3C, 0x00, 0xF0, 0xE0, 0x3F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x1F, 0xFF, 0xF8, 0x0F, 0x0E, 0x00, 0x3C, 0x78, 0x00, 0xE1, 0xE0, 0x07, 0x8F, 0x00, 0x1C, 0x3C, 0x07, 0xFF, 0xFE, 0x1F, 0xFF, 0xF8, 0x7F, 0xFF, 0xE3, 0xFF, 0xFF, 0x01, 0xE3, 0xC0, 0x0F, 0x0E, 0x00, 0x3C, 0x78, 0x01, 0xE1, 0xC0, 0x07, 0x8F, 0x00, 0x3C, 0x38, 0x00, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0xFC, 0x00, 0xFF, 0xC0, 0x3F, 0xFC, 0x0F, 0xFF, 0xC3, 0xE6, 0x78, 0x78, 0xCF, 0x1E, 0x39, 0xE3, 0xC7, 0x3C, 0x78, 0xC0, 0x0F, 0x98, 0x01, 0xFF, 0x00, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x03, 0xBE, 0x00, 0x67, 0xCF, 0x8C, 0xF9, 0xF1, 0x9F, 0x3E, 0x77, 0xC7, 0xEF, 0xF8, 0x7F, 0xFE, 0x0F, 0xFF, 0x80, 0xFF, 0xE0, 0x03, 0xE0, 0x00, 0x38, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x07, 0x01, 0xE0, 0x03, 0x81, 0xFE, 0x00, 0xC0, 0xFF, 0x80, 0x70, 0x7F, 0xF0, 0x38, 0x1E, 0x3C, 0x1C, 0x0F, 0x07, 0x06, 0x03, 0x81, 0xC3, 0x80, 0xE0, 0xF1, 0xC0, 0x3C, 0x78, 0xE0, 0x0F, 0xFE, 0x30, 0x01, 0xFF, 0x1C, 0x00, 0x7F, 0x8E, 0x00, 0x07, 0x83, 0x00, 0x00, 0x01, 0x83, 0xE0, 0x00, 0xE3, 0xFE, 0x00, 0x71, 0xFF, 0x80, 0x18, 0xFF, 0xF0, 0x0C, 0x3C, 0x3C, 0x07, 0x1C, 0x07, 0x03, 0x87, 0x01, 0xC0, 0xC1, 0xE1, 0xE0, 0x60, 0x7F, 0xF8, 0x38, 0x0F, 0xFC, 0x1C, 0x03, 0xFE, 0x06, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x03, 0xFC, 0x00, 0x3F, 0xF0, 0x03, 0xFF, 0x80, 0x3F, 0x3C, 0x01, 0xF1, 0xE0, 0x0F, 0x8F, 0x00, 0x7C, 0xF0, 0x03, 0xFF, 0x80, 0x0F, 0xF8, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x7F, 0xC7, 0x8F, 0xFE, 0x3C, 0xFC, 0xFB, 0xCF, 0x83, 0xFE, 0xF8, 0x1F, 0xE7, 0xC0, 0x7E, 0x3E, 0x03, 0xE1, 0xF0, 0x1F, 0x0F, 0xE3, 0xFC, 0x7F, 0xFF, 0xE1, 0xFF, 0xFF, 0x87, 0xFE, 0x7C, 0x0F, 0xE1, 0xF0, 0x7B, 0xFF, 0xEF, 0x7B, 0x9C, 0xC0, 0x00, 0x78, 0x07, 0x80, 0x78, 0x03, 0x80, 0x3C, 0x03, 0xC0, 0x1E, 0x01, 0xE0, 0x1E, 0x00, 0xF0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x1C, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x00, 0xE0, 0x07, 0x80, 0x1C, 0x00, 0x01, 0xC0, 0x0F, 0x00, 0x38, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x01, 0xC0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0xF8, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x78, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x1E, 0x01, 0xE0, 0x1E, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x00, 0x03, 0x00, 0x70, 0x07, 0x04, 0x63, 0xFF, 0xF7, 0xFF, 0x1F, 0x83, 0xF0, 0x3B, 0x87, 0x38, 0x21, 0x00, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x7C, 0x07, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xE0, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x7C, 0x00, 0x1E, 0x00, 0x3E, 0x7C, 0xF3, 0xE7, 0xC1, 0x87, 0x0C, 0x39, 0xE3, 0x00, 0x7F, 0xDF, 0xFF, 0xFB, 0xFE, 0x7D, 0xF7, 0xBE, 0xF8, 0x00, 0x0E, 0x00, 0x18, 0x00, 0x70, 0x00, 0xC0, 0x03, 0x80, 0x06, 0x00, 0x1C, 0x00, 0x30, 0x00, 0xE0, 0x01, 0x80, 0x07, 0x00, 0x0C, 0x00, 0x38, 0x00, 0x60, 0x01, 0xC0, 0x03, 0x00, 0x0E, 0x00, 0x18, 0x00, 0x70, 0x00, 0xC0, 0x03, 0x80, 0x06, 0x00, 0x1C, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x00, 0xFC, 0x00, 0x7F, 0xC0, 0x7F, 0xF8, 0x3F, 0xFE, 0x0F, 0x8F, 0xC7, 0xC1, 0xF1, 0xE0, 0x7C, 0xF8, 0x1F, 0x3E, 0x07, 0xDF, 0x01, 0xF7, 0xC0, 0x7D, 0xF0, 0x3F, 0x7C, 0x0F, 0xBF, 0x03, 0xEF, 0x80, 0xFB, 0xE0, 0x3E, 0xF8, 0x1F, 0x3E, 0x07, 0xCF, 0x81, 0xE3, 0xE0, 0xF8, 0xFC, 0x7C, 0x1F, 0xFF, 0x07, 0xFF, 0x80, 0xFF, 0xC0, 0x0F, 0x80, 0x00, 0x00, 0x70, 0x03, 0x80, 0x3C, 0x03, 0xE0, 0xFF, 0x3F, 0xF3, 0xFF, 0x9F, 0xFC, 0x03, 0xE0, 0x1F, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x3E, 0x00, 0x00, 0x1F, 0x80, 0x07, 0xFF, 0x00, 0x7F, 0xFC, 0x07, 0xFF, 0xE0, 0x7E, 0x1F, 0x83, 0xE0, 0x7C, 0x1F, 0x03, 0xE1, 0xF0, 0x1F, 0x0F, 0x80, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0xFF, 0xE1, 0xFF, 0xFF, 0x0F, 0xFF, 0xF0, 0x7F, 0xFF, 0x80, 0x00, 0x7F, 0x00, 0x1F, 0xFC, 0x03, 0xFF, 0xE0, 0x7F, 0xFF, 0x0F, 0x83, 0xF0, 0xF0, 0x1F, 0x1F, 0x01, 0xF1, 0xE0, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0xFC, 0x00, 0xFF, 0x80, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xCF, 0x80, 0x7C, 0xF8, 0x07, 0xCF, 0x80, 0xF8, 0xFC, 0x3F, 0x8F, 0xFF, 0xF0, 0x7F, 0xFE, 0x03, 0xFF, 0xC0, 0x0F, 0xE0, 0x00, 0x00, 0x07, 0xE0, 0x01, 0xFC, 0x00, 0x7F, 0x00, 0x1F, 0xE0, 0x03, 0xFC, 0x00, 0xEF, 0x80, 0x3D, 0xF0, 0x0F, 0x7C, 0x03, 0xCF, 0x80, 0xF1, 0xF0, 0x1C, 0x3E, 0x07, 0x07, 0xC1, 0xE1, 0xF0, 0x78, 0x3E, 0x1E, 0x07, 0xC3, 0xFF, 0xFE, 0x7F, 0xFF, 0xDF, 0xFF, 0xFB, 0xFF, 0xFF, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x78, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x01, 0xFF, 0xF0, 0x3F, 0xFF, 0x03, 0xFF, 0xF0, 0x3F, 0xFF, 0x07, 0x80, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x00, 0xF7, 0xE0, 0x0F, 0xFF, 0x01, 0xFF, 0xF8, 0x1F, 0xFF, 0x83, 0xF0, 0xFC, 0x3E, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0x8F, 0x80, 0xF8, 0xF8, 0x1F, 0x8F, 0xC3, 0xF0, 0xFF, 0xFE, 0x07, 0xFF, 0xC0, 0x3F, 0xF8, 0x00, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x3F, 0xF0, 0x0F, 0xFF, 0x03, 0xFF, 0xE0, 0xF8, 0x7E, 0x3E, 0x07, 0xC7, 0x80, 0x01, 0xF0, 0x00, 0x3C, 0xFC, 0x07, 0xFF, 0xC1, 0xFF, 0xFC, 0x3F, 0xFF, 0xC7, 0xE1, 0xF8, 0xF8, 0x1F, 0x3E, 0x03, 0xE7, 0x80, 0x7C, 0xF0, 0x0F, 0x9E, 0x01, 0xE3, 0xC0, 0x7C, 0x78, 0x1F, 0x0F, 0x87, 0xE0, 0xFF, 0xF8, 0x1F, 0xFE, 0x01, 0xFF, 0x80, 0x0F, 0xC0, 0x00, 0x7F, 0xFF, 0xEF, 0xFF, 0xF9, 0xFF, 0xFF, 0x7F, 0xFF, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x07, 0x80, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x7F, 0x00, 0x1F, 0xFC, 0x07, 0xFF, 0xE0, 0xFF, 0xFF, 0x0F, 0x81, 0xF1, 0xF0, 0x0F, 0x1E, 0x00, 0xF1, 0xE0, 0x1E, 0x1F, 0x07, 0xE0, 0xFF, 0xFC, 0x07, 0xFF, 0x00, 0xFF, 0xF8, 0x1F, 0xFF, 0x83, 0xF0, 0xFC, 0x7C, 0x07, 0xC7, 0xC0, 0x7C, 0xF8, 0x07, 0xCF, 0x80, 0x7C, 0xF8, 0x0F, 0x8F, 0x80, 0xF8, 0xFC, 0x3F, 0x0F, 0xFF, 0xF0, 0x7F, 0xFE, 0x03, 0xFF, 0x80, 0x0F, 0xE0, 0x00, 0x00, 0x7E, 0x00, 0x3F, 0xF0, 0x0F, 0xFF, 0x03, 0xFF, 0xE0, 0xFC, 0x3E, 0x3F, 0x03, 0xC7, 0xC0, 0x79, 0xF0, 0x0F, 0x3E, 0x01, 0xE7, 0xC0, 0x3C, 0xF8, 0x0F, 0x9F, 0x03, 0xE3, 0xF0, 0xFC, 0x7F, 0xFF, 0x87, 0xFF, 0xF0, 0x7F, 0xFE, 0x07, 0xE7, 0x80, 0x01, 0xF0, 0x00, 0x3C, 0x7C, 0x0F, 0x8F, 0xC3, 0xE1, 0xFF, 0xF8, 0x1F, 0xFE, 0x01, 0xFF, 0x80, 0x0F, 0xC0, 0x00, 0x0F, 0x87, 0xC3, 0xC3, 0xE1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE1, 0xF0, 0xF0, 0xF8, 0x7C, 0x00, 0x07, 0xC1, 0xF0, 0x78, 0x3E, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x83, 0xE0, 0xF0, 0x7C, 0x1F, 0x00, 0xC0, 0x70, 0x18, 0x0E, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3C, 0x00, 0x3F, 0x80, 0x3F, 0xE0, 0x3F, 0xFC, 0x3F, 0xFC, 0x1F, 0xFC, 0x07, 0xFC, 0x00, 0xFC, 0x00, 0x1F, 0xF0, 0x03, 0xFF, 0x80, 0x1F, 0xFE, 0x00, 0xFF, 0xF0, 0x03, 0xFE, 0x00, 0x1F, 0xC0, 0x00, 0x78, 0x00, 0x03, 0x00, 0x1F, 0xFF, 0xF3, 0xFF, 0xFE, 0x3F, 0xFF, 0xE3, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xC7, 0xFF, 0xFC, 0xFF, 0xFF, 0x8F, 0xFF, 0xF8, 0x18, 0x00, 0x03, 0xC0, 0x00, 0x7F, 0x00, 0x0F, 0xF8, 0x01, 0xFF, 0xE0, 0x0F, 0xFF, 0x00, 0x3F, 0xF8, 0x01, 0xFF, 0x00, 0x07, 0xE0, 0x07, 0xFC, 0x07, 0xFF, 0x07, 0xFF, 0x87, 0xFF, 0x80, 0xFF, 0x80, 0x3F, 0x80, 0x07, 0x80, 0x00, 0x80, 0x00, 0x00, 0x03, 0xF8, 0x03, 0xFF, 0xC1, 0xFF, 0xF8, 0xFF, 0xFE, 0x7E, 0x1F, 0xDF, 0x03, 0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xF8, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x80, 0x1F, 0x80, 0x07, 0x80, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0xFC, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x07, 0xF0, 0x1F, 0xC0, 0x0F, 0xC0, 0x03, 0xE0, 0x0F, 0x80, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x3C, 0x0F, 0x01, 0xF1, 0xCF, 0x0F, 0x03, 0xFD, 0xC7, 0x8F, 0x03, 0xFF, 0xE1, 0xC7, 0x03, 0xE3, 0xE0, 0xE7, 0x03, 0xC0, 0xF0, 0x73, 0x83, 0xC0, 0x78, 0x3B, 0x81, 0xE0, 0x38, 0x1D, 0xC1, 0xE0, 0x1C, 0x1C, 0xC0, 0xF0, 0x1C, 0x0E, 0xE0, 0x70, 0x0E, 0x0F, 0x70, 0x78, 0x0E, 0x07, 0x38, 0x3C, 0x0F, 0x07, 0x1C, 0x1E, 0x0F, 0x87, 0x8E, 0x0F, 0x8F, 0xCF, 0x87, 0x07, 0xFF, 0xFF, 0x83, 0xC1, 0xFE, 0x7F, 0x00, 0xE0, 0x3C, 0x1F, 0x00, 0x78, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x01, 0x00, 0x03, 0xF8, 0x07, 0x80, 0x00, 0xFF, 0xFF, 0xC0, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0xC0, 0x00, 0xFF, 0x80, 0x03, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x1F, 0x7C, 0x00, 0x7E, 0xF8, 0x00, 0xF9, 0xF0, 0x03, 0xF3, 0xE0, 0x07, 0xC3, 0xE0, 0x1F, 0x87, 0xC0, 0x3E, 0x0F, 0x80, 0xF8, 0x1F, 0x01, 0xF0, 0x3E, 0x07, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF0, 0xFF, 0xFF, 0xF1, 0xF0, 0x03, 0xE7, 0xC0, 0x07, 0xCF, 0x80, 0x0F, 0xBE, 0x00, 0x1F, 0x7C, 0x00, 0x3F, 0xF0, 0x00, 0x7C, 0x07, 0xFF, 0xF0, 0x07, 0xFF, 0xFC, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0x0F, 0xC0, 0x3F, 0x0F, 0x80, 0x1F, 0x0F, 0x80, 0x1F, 0x0F, 0x80, 0x1F, 0x1F, 0x80, 0x1E, 0x1F, 0x80, 0x3E, 0x1F, 0x00, 0x7C, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x3E, 0x00, 0xFC, 0x3E, 0x00, 0x7C, 0x3E, 0x00, 0x7C, 0x7E, 0x00, 0x7C, 0x7C, 0x00, 0x7C, 0x7C, 0x00, 0xF8, 0x7C, 0x01, 0xF8, 0x7F, 0xFF, 0xF0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0xF8, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFE, 0x07, 0xE0, 0x7F, 0x0F, 0xC0, 0x3F, 0x1F, 0x80, 0x1F, 0x3F, 0x00, 0x1F, 0x3E, 0x00, 0x1F, 0x7E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x7C, 0xF8, 0x00, 0x7C, 0xFC, 0x00, 0xF8, 0xFC, 0x01, 0xF8, 0x7F, 0x07, 0xF0, 0x7F, 0xFF, 0xE0, 0x3F, 0xFF, 0xC0, 0x0F, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xFF, 0xE0, 0x07, 0xFF, 0xF8, 0x07, 0xFF, 0xFC, 0x0F, 0xFF, 0xFE, 0x0F, 0x80, 0x7E, 0x0F, 0x80, 0x3F, 0x0F, 0x80, 0x1F, 0x1F, 0x80, 0x1F, 0x1F, 0x80, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x3F, 0x00, 0x1F, 0x3E, 0x00, 0x3E, 0x3E, 0x00, 0x3E, 0x3E, 0x00, 0x3E, 0x3E, 0x00, 0x3E, 0x7E, 0x00, 0x7C, 0x7C, 0x00, 0x7C, 0x7C, 0x00, 0xF8, 0x7C, 0x01, 0xF8, 0x7C, 0x07, 0xF0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0x00, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFE, 0x0F, 0x80, 0x00, 0x0F, 0x80, 0x00, 0x0F, 0x80, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF0, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFC, 0x3F, 0xFF, 0xF0, 0x7F, 0xFF, 0xE0, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0xFE, 0x07, 0xFF, 0xFC, 0x0F, 0xFF, 0xF0, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0xF8, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFE, 0x07, 0xE0, 0x7E, 0x0F, 0x80, 0x3F, 0x1F, 0x00, 0x1F, 0x3E, 0x00, 0x1F, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x03, 0xFF, 0xF8, 0x07, 0xFF, 0xF8, 0x07, 0xFE, 0xF8, 0x07, 0xFE, 0xF8, 0x00, 0x3E, 0xF8, 0x00, 0x3E, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x7C, 0x7E, 0x00, 0xFC, 0x7F, 0x83, 0xFC, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xBC, 0x0F, 0xFF, 0x38, 0x03, 0xFC, 0x38, 0x03, 0xE0, 0x07, 0xC0, 0xF8, 0x01, 0xF0, 0x7E, 0x00, 0x7C, 0x1F, 0x00, 0x3F, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0xFC, 0x00, 0xF8, 0x3E, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0x83, 0xE0, 0x07, 0xC0, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC1, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x3F, 0x00, 0x3E, 0x0F, 0x80, 0x0F, 0x83, 0xE0, 0x07, 0xE0, 0xF8, 0x01, 0xF0, 0x3E, 0x00, 0x7C, 0x1F, 0x80, 0x1F, 0x07, 0xC0, 0x0F, 0xC1, 0xF0, 0x03, 0xF0, 0x7C, 0x00, 0xF8, 0x3F, 0x00, 0x3E, 0x00, 0x07, 0xC3, 0xF0, 0xFC, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x7E, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x3F, 0x0F, 0xC3, 0xE0, 0xF8, 0x3E, 0x0F, 0x87, 0xE1, 0xF0, 0x7C, 0x1F, 0x07, 0xC3, 0xF0, 0xFC, 0x3E, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x7C, 0x0F, 0x8F, 0x81, 0xF8, 0xF8, 0x1F, 0x0F, 0x81, 0xF0, 0xF8, 0x1F, 0x0F, 0xC3, 0xF0, 0xFF, 0xFE, 0x07, 0xFF, 0xC0, 0x3F, 0xF8, 0x01, 0xFC, 0x00, 0x07, 0xC0, 0x0F, 0xC1, 0xF0, 0x07, 0xE0, 0x7C, 0x03, 0xF0, 0x3F, 0x03, 0xF8, 0x0F, 0x81, 0xF8, 0x03, 0xE0, 0xFC, 0x00, 0xF8, 0x7E, 0x00, 0x7E, 0x3F, 0x00, 0x1F, 0x1F, 0x80, 0x07, 0xCF, 0xC0, 0x01, 0xF7, 0xE0, 0x00, 0x7F, 0xF0, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0xFE, 0xFC, 0x00, 0x3F, 0x1F, 0x80, 0x1F, 0x87, 0xE0, 0x07, 0xC0, 0xFC, 0x01, 0xF0, 0x3F, 0x00, 0x7C, 0x07, 0xE0, 0x1F, 0x01, 0xFC, 0x0F, 0xC0, 0x3F, 0x03, 0xE0, 0x0F, 0xE0, 0xF8, 0x01, 0xF8, 0x3E, 0x00, 0x3F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x0F, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x1F, 0x80, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x0F, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x07, 0xE0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xE0, 0x03, 0xF8, 0x01, 0xFC, 0x07, 0xF0, 0x07, 0xF8, 0x1F, 0xE0, 0x0F, 0xF0, 0x3F, 0xC0, 0x3F, 0xE0, 0x7F, 0x80, 0x7F, 0xC0, 0xFF, 0x01, 0xFF, 0x01, 0xFE, 0x03, 0xFE, 0x07, 0xDC, 0x07, 0x7C, 0x0F, 0xB8, 0x1E, 0xF8, 0x1F, 0x70, 0x3D, 0xF0, 0x3E, 0xF0, 0xF7, 0xC0, 0xF9, 0xE1, 0xEF, 0x81, 0xF3, 0xC7, 0x9F, 0x03, 0xE7, 0x8F, 0x3E, 0x07, 0xCF, 0x3C, 0x7C, 0x0F, 0x9E, 0x79, 0xF0, 0x3E, 0x3C, 0xE3, 0xE0, 0x7C, 0x7B, 0xC7, 0xC0, 0xF8, 0xF7, 0x8F, 0x81, 0xF1, 0xFE, 0x1E, 0x07, 0xE3, 0xFC, 0x7C, 0x0F, 0x87, 0xF0, 0xF8, 0x1F, 0x0F, 0xE1, 0xF0, 0x3E, 0x1F, 0x83, 0xE0, 0x7C, 0x3F, 0x0F, 0x81, 0xF0, 0x7E, 0x1F, 0x00, 0x03, 0xE0, 0x07, 0xC0, 0x7E, 0x00, 0xF8, 0x1F, 0xC0, 0x1F, 0x03, 0xF8, 0x03, 0xE0, 0x7F, 0x80, 0x7C, 0x0F, 0xF0, 0x1F, 0x01, 0xFF, 0x03, 0xE0, 0x7F, 0xE0, 0x7C, 0x0F, 0xBC, 0x0F, 0x81, 0xF7, 0xC1, 0xF0, 0x3E, 0xF8, 0x7C, 0x0F, 0x8F, 0x0F, 0x81, 0xF1, 0xF1, 0xF0, 0x3E, 0x3E, 0x3E, 0x07, 0xC3, 0xC7, 0xC0, 0xF8, 0x7D, 0xF0, 0x3E, 0x0F, 0xBE, 0x07, 0xC0, 0xF7, 0xC0, 0xF8, 0x1F, 0xF8, 0x1F, 0x01, 0xFE, 0x03, 0xC0, 0x3F, 0xC0, 0xF8, 0x07, 0xF8, 0x1F, 0x00, 0x7F, 0x03, 0xE0, 0x0F, 0xE0, 0x7C, 0x01, 0xF8, 0x1F, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7F, 0xFF, 0xC0, 0x7E, 0x07, 0xF0, 0x7E, 0x01, 0xF8, 0x7C, 0x00, 0x7E, 0x3E, 0x00, 0x1F, 0x3E, 0x00, 0x0F, 0x9E, 0x00, 0x07, 0xDF, 0x00, 0x03, 0xEF, 0x80, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7D, 0xF0, 0x00, 0x3E, 0xF8, 0x00, 0x1F, 0x7C, 0x00, 0x1F, 0x3E, 0x00, 0x1F, 0x9F, 0x80, 0x0F, 0x87, 0xE0, 0x0F, 0x83, 0xF8, 0x1F, 0x80, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF0, 0x7F, 0xFF, 0xF0, 0xF8, 0x07, 0xE1, 0xF0, 0x07, 0xC3, 0xE0, 0x0F, 0x8F, 0xC0, 0x1F, 0x1F, 0x00, 0x3E, 0x3E, 0x00, 0xF8, 0x7C, 0x01, 0xF0, 0xF8, 0x07, 0xC3, 0xFF, 0xFF, 0x87, 0xFF, 0xFE, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF, 0x80, 0x3E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7F, 0xFF, 0xC0, 0x7F, 0x07, 0xF0, 0x7E, 0x01, 0xF8, 0x7E, 0x00, 0x7E, 0x3E, 0x00, 0x1F, 0x3E, 0x00, 0x0F, 0x9E, 0x00, 0x07, 0xDF, 0x00, 0x03, 0xEF, 0x80, 0x01, 0xF7, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7D, 0xF0, 0x00, 0x3E, 0xF8, 0x02, 0x1F, 0x7C, 0x03, 0x9F, 0x3E, 0x03, 0xFF, 0x9F, 0x81, 0xFF, 0x87, 0xE0, 0x7F, 0x83, 0xF8, 0x3F, 0xC0, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xF0, 0x0F, 0xFF, 0xFC, 0x01, 0xFE, 0x1C, 0x00, 0x00, 0x0C, 0x00, 0x07, 0xFF, 0xF8, 0x07, 0xFF, 0xFE, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0x0F, 0x80, 0x3F, 0x0F, 0x80, 0x1F, 0x0F, 0x80, 0x1F, 0x0F, 0x80, 0x1F, 0x1F, 0x80, 0x1E, 0x1F, 0x00, 0x3E, 0x1F, 0x00, 0x7C, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xE0, 0x3F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x3E, 0x01, 0xF8, 0x3E, 0x00, 0xF8, 0x3E, 0x00, 0xF8, 0x7E, 0x00, 0xF8, 0x7C, 0x00, 0xF8, 0x7C, 0x01, 0xF0, 0x7C, 0x01, 0xF0, 0x7C, 0x01, 0xF0, 0xFC, 0x01, 0xF0, 0xF8, 0x01, 0xF0, 0xF8, 0x01, 0xF0, 0x00, 0x3F, 0xC0, 0x07, 0xFF, 0xC0, 0x3F, 0xFF, 0x81, 0xFF, 0xFF, 0x0F, 0xC0, 0xFC, 0x3E, 0x01, 0xF1, 0xF0, 0x07, 0xC7, 0xC0, 0x1F, 0x1F, 0x00, 0x00, 0x7E, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xFF, 0x80, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x03, 0xFE, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xEF, 0x80, 0x0F, 0xBE, 0x00, 0x3C, 0xFC, 0x01, 0xF3, 0xF8, 0x1F, 0x87, 0xFF, 0xFE, 0x0F, 0xFF, 0xF0, 0x1F, 0xFF, 0x00, 0x1F, 0xF0, 0x00, 0x7F, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xFC, 0x00, 0x00, 0x0F, 0x80, 0x1F, 0x1F, 0x80, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x3F, 0x1F, 0x00, 0x3E, 0x1F, 0x00, 0x3E, 0x3E, 0x00, 0x3E, 0x3E, 0x00, 0x7E, 0x3E, 0x00, 0x7C, 0x3E, 0x00, 0x7C, 0x3E, 0x00, 0x7C, 0x7C, 0x00, 0x7C, 0x7C, 0x00, 0xFC, 0x7C, 0x00, 0xF8, 0x7C, 0x00, 0xF8, 0x7C, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x01, 0xF8, 0xF8, 0x01, 0xF0, 0xF8, 0x01, 0xF0, 0xF8, 0x03, 0xE0, 0xFE, 0x0F, 0xE0, 0x7F, 0xFF, 0xC0, 0x7F, 0xFF, 0x80, 0x1F, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0xFC, 0x00, 0x7F, 0xF0, 0x03, 0xE7, 0xC0, 0x0F, 0x9F, 0x00, 0x7C, 0x7C, 0x01, 0xF1, 0xF0, 0x0F, 0x87, 0xC0, 0x3E, 0x1F, 0x01, 0xF0, 0x7C, 0x07, 0x81, 0xF0, 0x3E, 0x03, 0xC0, 0xF0, 0x0F, 0x07, 0xC0, 0x3E, 0x1E, 0x00, 0xF8, 0xF8, 0x03, 0xE3, 0xC0, 0x0F, 0x9F, 0x00, 0x3E, 0x78, 0x00, 0xFB, 0xE0, 0x01, 0xEF, 0x00, 0x07, 0xFC, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x07, 0xE0, 0x1F, 0xF8, 0x07, 0xE0, 0x3F, 0xF8, 0x0F, 0xE0, 0x3E, 0xF8, 0x0F, 0xE0, 0x7E, 0xF8, 0x1F, 0xE0, 0x7C, 0xF8, 0x1F, 0xE0, 0x7C, 0xF8, 0x3F, 0xE0, 0xF8, 0xF8, 0x3D, 0xE0, 0xF8, 0x78, 0x3D, 0xE1, 0xF0, 0x78, 0x79, 0xE1, 0xF0, 0x78, 0x79, 0xE1, 0xE0, 0x78, 0xF9, 0xE3, 0xE0, 0x78, 0xF1, 0xE3, 0xC0, 0x79, 0xF1, 0xE7, 0xC0, 0x79, 0xE1, 0xE7, 0x80, 0x79, 0xE1, 0xE7, 0x80, 0x7B, 0xC1, 0xEF, 0x80, 0x7B, 0xC1, 0xEF, 0x00, 0x7F, 0x81, 0xFF, 0x00, 0x7F, 0x81, 0xFE, 0x00, 0x7F, 0x01, 0xFE, 0x00, 0x7F, 0x01, 0xFC, 0x00, 0x7F, 0x01, 0xFC, 0x00, 0x7E, 0x01, 0xF8, 0x00, 0x3E, 0x01, 0xF8, 0x00, 0x3C, 0x01, 0xF0, 0x00, 0x03, 0xF0, 0x07, 0xE0, 0x7E, 0x01, 0xF8, 0x07, 0xE0, 0x7E, 0x00, 0xFC, 0x1F, 0x80, 0x1F, 0x83, 0xE0, 0x01, 0xF8, 0xF8, 0x00, 0x3F, 0x3F, 0x00, 0x03, 0xEF, 0xC0, 0x00, 0x7F, 0xF0, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x3E, 0xF8, 0x00, 0x0F, 0xDF, 0x80, 0x03, 0xF3, 0xF0, 0x00, 0xFC, 0x3F, 0x00, 0x3F, 0x07, 0xE0, 0x07, 0xE0, 0xFC, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x01, 0xF8, 0x1F, 0x80, 0x3F, 0x80, 0x7C, 0x00, 0xFD, 0xF8, 0x07, 0xE7, 0xE0, 0x1F, 0x1F, 0x80, 0xFC, 0x3E, 0x07, 0xE0, 0xFC, 0x1F, 0x03, 0xF0, 0xFC, 0x07, 0xC7, 0xE0, 0x1F, 0x1F, 0x00, 0x7E, 0xFC, 0x00, 0xFB, 0xE0, 0x03, 0xFF, 0x00, 0x0F, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xF0, 0x00, 0x01, 0xFE, 0x03, 0xFC, 0x07, 0xF8, 0x1F, 0xF0, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0xF8, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0xF8, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0xF0, 0x3F, 0xC0, 0x7F, 0x80, 0xFF, 0x00, 0xE7, 0x39, 0xCE, 0x31, 0x8C, 0x63, 0x1C, 0xE7, 0x39, 0xCE, 0x31, 0x8C, 0x63, 0x9C, 0xE7, 0x38, 0x01, 0xFE, 0x03, 0xFC, 0x07, 0xF8, 0x1F, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x3E, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x3E, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x1F, 0xF0, 0x3F, 0xC0, 0x7F, 0x80, 0xFF, 0x00, 0x00, 0x7C, 0x00, 0xFC, 0x01, 0xFC, 0x01, 0xFC, 0x03, 0xFC, 0x03, 0x9E, 0x07, 0x9E, 0x0F, 0x1E, 0x0F, 0x1E, 0x1E, 0x1E, 0x1C, 0x0F, 0x3C, 0x0F, 0x78, 0x0F, 0x78, 0x0F, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xF3, 0x8C, 0x71, 0x80, 0x01, 0xFE, 0x01, 0xFF, 0xE0, 0xFF, 0xF8, 0x7F, 0xFF, 0x1F, 0x0F, 0xC7, 0x81, 0xF0, 0x00, 0x7C, 0x00, 0xFE, 0x07, 0xFF, 0x87, 0xFF, 0xE3, 0xFE, 0xF9, 0xF0, 0x7C, 0xF8, 0x1F, 0x3E, 0x0F, 0xCF, 0x87, 0xF3, 0xFF, 0xF8, 0xFF, 0xFE, 0x1F, 0xEF, 0x81, 0xE3, 0xF0, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF9, 0xF8, 0x0F, 0xFF, 0xC1, 0xFF, 0xFE, 0x1F, 0xFF, 0xE1, 0xFC, 0x3F, 0x1F, 0x83, 0xF1, 0xF0, 0x1F, 0x3E, 0x01, 0xF3, 0xE0, 0x1F, 0x3C, 0x01, 0xF3, 0xC0, 0x1F, 0x3C, 0x03, 0xE7, 0xC0, 0x3E, 0x7E, 0x07, 0xC7, 0xF1, 0xFC, 0x7F, 0xFF, 0x87, 0xFF, 0xF0, 0xFB, 0xFE, 0x0F, 0x9F, 0x80, 0x00, 0xFC, 0x01, 0xFF, 0xC0, 0xFF, 0xF8, 0x7F, 0xFF, 0x3F, 0x0F, 0xCF, 0x81, 0xF7, 0xC0, 0x7D, 0xF0, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x0F, 0xBE, 0x07, 0xCF, 0xC3, 0xF1, 0xFF, 0xF8, 0x7F, 0xFC, 0x0F, 0xFE, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x3E, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x7E, 0x7C, 0x07, 0xFD, 0xF0, 0x3F, 0xFF, 0xC1, 0xFF, 0xFE, 0x0F, 0xE3, 0xF8, 0x3E, 0x07, 0xE1, 0xF0, 0x1F, 0x87, 0xC0, 0x3C, 0x3E, 0x00, 0xF0, 0xF8, 0x07, 0xC3, 0xE0, 0x1F, 0x0F, 0x80, 0x7C, 0x3E, 0x03, 0xE0, 0xF8, 0x1F, 0x83, 0xF0, 0xFE, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xE0, 0x3F, 0xFF, 0x00, 0x7E, 0x7C, 0x00, 0x00, 0xFE, 0x00, 0x7F, 0xE0, 0x3F, 0xFE, 0x0F, 0xFF, 0xE3, 0xF0, 0x7E, 0x7C, 0x07, 0xDF, 0x00, 0xFB, 0xE0, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x1F, 0x3F, 0x07, 0xE3, 0xFF, 0xF8, 0x7F, 0xFE, 0x03, 0xFF, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xF8, 0x1F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7C, 0x07, 0xC0, 0x3E, 0x0F, 0xFE, 0x7F, 0xF3, 0xFF, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x78, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0xF8, 0x07, 0xC0, 0x00, 0x00, 0x7C, 0x7C, 0x07, 0xFD, 0xF0, 0x3F, 0xF7, 0x81, 0xFF, 0xFE, 0x0F, 0xE3, 0xF8, 0x3E, 0x07, 0xE1, 0xF8, 0x0F, 0x87, 0xC0, 0x3C, 0x1E, 0x00, 0xF0, 0xF8, 0x03, 0xC3, 0xE0, 0x1F, 0x0F, 0x80, 0x78, 0x3E, 0x03, 0xE0, 0xF8, 0x1F, 0x83, 0xF0, 0xFE, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xC0, 0x3F, 0xEF, 0x00, 0x3E, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC3, 0xE0, 0x3E, 0x0F, 0x80, 0xF8, 0x3F, 0x0F, 0xC0, 0x7F, 0xFE, 0x00, 0xFF, 0xF0, 0x00, 0xFE, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0xF8, 0x0F, 0xBF, 0xE0, 0xFF, 0xFF, 0x0F, 0xFF, 0xF1, 0xFC, 0x3F, 0x1F, 0x81, 0xF1, 0xF0, 0x1F, 0x1F, 0x01, 0xF1, 0xE0, 0x1F, 0x3E, 0x03, 0xE3, 0xE0, 0x3E, 0x3E, 0x03, 0xE3, 0xE0, 0x3E, 0x7C, 0x03, 0xE7, 0xC0, 0x7C, 0x7C, 0x07, 0xC7, 0xC0, 0x7C, 0x7C, 0x07, 0xCF, 0x80, 0x78, 0x07, 0xC1, 0xF0, 0x7C, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x87, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC3, 0xE0, 0xF8, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x78, 0x01, 0xF0, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x03, 0xF0, 0x1F, 0xC0, 0x3F, 0x80, 0x7E, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x78, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x07, 0xC7, 0xE0, 0x3E, 0x7E, 0x01, 0xF7, 0xE0, 0x0F, 0xFE, 0x00, 0xFF, 0xE0, 0x07, 0xFF, 0x00, 0x3F, 0xFC, 0x01, 0xFF, 0xE0, 0x0F, 0xDF, 0x00, 0xFC, 0xFC, 0x07, 0xC3, 0xE0, 0x3E, 0x1F, 0x01, 0xF0, 0xFC, 0x0F, 0x83, 0xE0, 0xF8, 0x1F, 0x87, 0xC0, 0xFC, 0x00, 0x07, 0xC1, 0xF0, 0x7C, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x87, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC3, 0xE0, 0xF8, 0x3E, 0x00, 0x0F, 0x8F, 0x83, 0xF0, 0x3E, 0xFF, 0x3F, 0xE0, 0xF7, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0x1F, 0xC7, 0xF8, 0x7C, 0x7C, 0x0F, 0x81, 0xF1, 0xF0, 0x3E, 0x07, 0xCF, 0x81, 0xF0, 0x3E, 0x3E, 0x07, 0xC0, 0xF8, 0xF8, 0x1F, 0x03, 0xE3, 0xE0, 0x7C, 0x0F, 0x8F, 0x81, 0xF0, 0x3E, 0x7C, 0x0F, 0x81, 0xF1, 0xF0, 0x3E, 0x07, 0xC7, 0xC0, 0xF8, 0x1F, 0x1F, 0x03, 0xE0, 0x7C, 0x7C, 0x0F, 0x81, 0xE3, 0xE0, 0x7C, 0x0F, 0x8F, 0x81, 0xF0, 0x3E, 0x00, 0x0F, 0x8F, 0x80, 0xFB, 0xFE, 0x0F, 0xFF, 0xF1, 0xFF, 0xFF, 0x1F, 0xC3, 0xF1, 0xF8, 0x1F, 0x1F, 0x01, 0xF1, 0xF0, 0x1F, 0x3E, 0x01, 0xF3, 0xE0, 0x3E, 0x3E, 0x03, 0xE3, 0xE0, 0x3E, 0x3C, 0x03, 0xE7, 0xC0, 0x3E, 0x7C, 0x07, 0xC7, 0xC0, 0x7C, 0x7C, 0x07, 0xC7, 0x80, 0x7C, 0xF8, 0x07, 0x80, 0x00, 0xFE, 0x00, 0x7F, 0xF0, 0x3F, 0xFF, 0x0F, 0xFF, 0xE3, 0xF8, 0xFE, 0x7C, 0x0F, 0xDF, 0x00, 0xFB, 0xE0, 0x1F, 0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xE0, 0x1F, 0xFC, 0x03, 0xEF, 0x80, 0x7D, 0xF8, 0x1F, 0x3F, 0x07, 0xE3, 0xFF, 0xF8, 0x7F, 0xFE, 0x07, 0xFF, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xE7, 0xE0, 0x0F, 0xBF, 0xC0, 0x7D, 0xFF, 0x81, 0xFF, 0xFE, 0x07, 0xF0, 0xFC, 0x1F, 0x81, 0xF0, 0x7C, 0x07, 0xC3, 0xE0, 0x1F, 0x0F, 0x80, 0x7C, 0x3E, 0x01, 0xF0, 0xF0, 0x07, 0xC3, 0xC0, 0x3E, 0x1F, 0x00, 0xF8, 0x7E, 0x07, 0xC1, 0xFC, 0x7F, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xC0, 0xFB, 0xFE, 0x03, 0xE7, 0xE0, 0x0F, 0x80, 0x00, 0x3E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x01, 0xF1, 0xF0, 0x7F, 0xDF, 0x0F, 0xFD, 0xF1, 0xFF, 0xFE, 0x3F, 0x8F, 0xE3, 0xE0, 0x7E, 0x7C, 0x03, 0xE7, 0xC0, 0x3E, 0xF8, 0x03, 0xCF, 0x80, 0x3C, 0xF8, 0x07, 0xCF, 0x80, 0x7C, 0xF8, 0x0F, 0x8F, 0x81, 0xF8, 0xFC, 0x3F, 0x87, 0xFF, 0xF8, 0x7F, 0xFF, 0x83, 0xFF, 0xF0, 0x1F, 0x9F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x0F, 0x8E, 0x1F, 0x7C, 0x3F, 0xF0, 0xFF, 0xE1, 0xFC, 0x03, 0xF0, 0x07, 0xC0, 0x0F, 0x80, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF0, 0x03, 0xE0, 0x00, 0x01, 0xFC, 0x01, 0xFF, 0xC0, 0xFF, 0xF8, 0x7F, 0xFF, 0x3F, 0x0F, 0xCF, 0x81, 0xF3, 0xF0, 0x00, 0xFF, 0x80, 0x3F, 0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xF8, 0x03, 0xFE, 0x00, 0x1F, 0xBE, 0x03, 0xEF, 0xC1, 0xFB, 0xFF, 0xFC, 0x7F, 0xFE, 0x0F, 0xFF, 0x00, 0xFE, 0x00, 0x0F, 0x81, 0xF0, 0x7C, 0x0F, 0x81, 0xF0, 0xFF, 0xBF, 0xF7, 0xFE, 0x3E, 0x07, 0xC0, 0xF8, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0xF8, 0x1F, 0x03, 0xE0, 0x7F, 0x0F, 0xE1, 0xFC, 0x1F, 0x80, 0x1F, 0x01, 0xF1, 0xF0, 0x1F, 0x3E, 0x03, 0xE3, 0xE0, 0x3E, 0x3E, 0x03, 0xE3, 0xE0, 0x3E, 0x3E, 0x03, 0xE7, 0xC0, 0x7C, 0x7C, 0x07, 0xC7, 0xC0, 0x7C, 0x7C, 0x07, 0xC7, 0xC0, 0x7C, 0xF8, 0x0F, 0x8F, 0x81, 0xF8, 0xF8, 0x3F, 0x8F, 0xFF, 0xF8, 0xFF, 0xFF, 0x07, 0xFD, 0xF0, 0x3F, 0x1F, 0x00, 0xF8, 0x0F, 0xFE, 0x03, 0xEF, 0x81, 0xF3, 0xE0, 0x7C, 0xF8, 0x3E, 0x3E, 0x0F, 0x8F, 0x87, 0xC1, 0xE1, 0xF0, 0x78, 0xF8, 0x1E, 0x3E, 0x07, 0x9F, 0x01, 0xF7, 0x80, 0x7F, 0xE0, 0x1F, 0xF0, 0x03, 0xFC, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xF8, 0x1F, 0x07, 0xFF, 0x03, 0xE0, 0xFB, 0xE0, 0xFC, 0x1F, 0x7C, 0x1F, 0x87, 0xCF, 0x87, 0xF0, 0xF9, 0xF0, 0xFE, 0x3E, 0x3E, 0x3D, 0xC7, 0xC3, 0xC7, 0xB9, 0xF0, 0x79, 0xE7, 0x3E, 0x0F, 0x3C, 0xE7, 0x81, 0xEF, 0x1D, 0xF0, 0x3D, 0xE3, 0xBC, 0x07, 0xBC, 0x7F, 0x80, 0xFF, 0x0F, 0xE0, 0x1F, 0xE1, 0xFC, 0x03, 0xF8, 0x3F, 0x00, 0x7F, 0x07, 0xE0, 0x0F, 0xC0, 0xF8, 0x01, 0xF8, 0x1F, 0x00, 0x00, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xC0, 0x7C, 0x3E, 0x01, 0xF9, 0xF8, 0x03, 0xEF, 0xC0, 0x0F, 0xBE, 0x00, 0x1F, 0xF0, 0x00, 0x7F, 0x80, 0x01, 0xFC, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x3E, 0xF8, 0x01, 0xFB, 0xF0, 0x07, 0xC7, 0xC0, 0x3E, 0x1F, 0x81, 0xF8, 0x7E, 0x0F, 0xC0, 0xF8, 0x00, 0x1F, 0x80, 0x7C, 0x3E, 0x03, 0xE0, 0xF8, 0x0F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xE0, 0x3E, 0x0F, 0x80, 0xF8, 0x3C, 0x03, 0xE1, 0xF0, 0x07, 0x87, 0x80, 0x1F, 0x3E, 0x00, 0x7C, 0xF0, 0x01, 0xF7, 0xC0, 0x07, 0xDE, 0x00, 0x1F, 0xF0, 0x00, 0x7F, 0xC0, 0x01, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x0F, 0xFF, 0xE1, 0xFF, 0xFC, 0x3F, 0xFF, 0x87, 0xFF, 0xE0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x01, 0xFC, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x01, 0xF8, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xFF, 0xF8, 0xFF, 0xFF, 0x1F, 0xFF, 0xE3, 0xFF, 0xFC, 0x00, 0x00, 0x7C, 0x03, 0xF0, 0x1F, 0xC0, 0xFE, 0x03, 0xE0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x0F, 0x80, 0x3C, 0x01, 0xF0, 0x1F, 0x80, 0x70, 0x01, 0xF8, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xFC, 0x07, 0xE0, 0x0F, 0x80, 0x1E, 0x00, 0x03, 0x81, 0xC0, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xC0, 0xE0, 0x70, 0x38, 0x18, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x18, 0x1C, 0x0E, 0x07, 0x01, 0x80, 0x80, 0x00, 0x00, 0x01, 0xE0, 0x07, 0xC0, 0x1F, 0x80, 0xFE, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x7E, 0x00, 0x38, 0x07, 0xE0, 0x3E, 0x00, 0xF0, 0x07, 0xC0, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x1F, 0x01, 0xF8, 0x0F, 0xE0, 0x3F, 0x00, 0xF8, 0x00, 0x0F, 0x00, 0x1F, 0xC1, 0xDF, 0xF0, 0xEE, 0x3F, 0xE6, 0x07, 0xF0, 0x01, 0xE0}; const GFXglyph FreeSansBoldOblique18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 10, 0, 1}, // 0x20 ' ' {0, 10, 25, 12, 4, -24}, // 0x21 '!' {32, 13, 9, 17, 6, -25}, // 0x22 '"' {47, 22, 24, 19, 1, -23}, // 0x23 '#' {113, 19, 31, 19, 2, -26}, // 0x24 '$' {187, 26, 26, 31, 5, -25}, // 0x25 '%' {272, 21, 25, 25, 3, -24}, // 0x26 '&' {338, 5, 9, 8, 6, -25}, // 0x27 ''' {344, 13, 33, 12, 3, -25}, // 0x28 '(' {398, 13, 33, 12, -1, -25}, // 0x29 ')' {452, 12, 11, 14, 5, -25}, // 0x2A '*' {469, 18, 16, 20, 3, -15}, // 0x2B '+' {505, 7, 11, 10, 1, -4}, // 0x2C ',' {515, 10, 4, 12, 2, -10}, // 0x2D '-' {520, 6, 5, 10, 2, -4}, // 0x2E '.' {524, 15, 25, 10, 0, -24}, // 0x2F '/' {571, 18, 25, 19, 3, -24}, // 0x30 '0' {628, 13, 25, 19, 6, -24}, // 0x31 '1' {669, 21, 25, 19, 1, -24}, // 0x32 '2' {735, 20, 25, 19, 2, -24}, // 0x33 '3' {798, 19, 25, 19, 2, -24}, // 0x34 '4' {858, 20, 24, 19, 2, -23}, // 0x35 '5' {918, 19, 25, 19, 3, -24}, // 0x36 '6' {978, 19, 24, 19, 5, -23}, // 0x37 '7' {1035, 20, 25, 19, 2, -24}, // 0x38 '8' {1098, 19, 25, 19, 2, -24}, // 0x39 '9' {1158, 9, 18, 12, 4, -17}, // 0x3A ':' {1179, 10, 24, 12, 3, -17}, // 0x3B ';' {1209, 19, 17, 20, 3, -16}, // 0x3C '<' {1250, 20, 12, 20, 2, -13}, // 0x3D '=' {1280, 19, 17, 20, 1, -15}, // 0x3E '>' {1321, 18, 26, 21, 6, -25}, // 0x3F '?' {1380, 33, 31, 34, 3, -25}, // 0x40 '@' {1508, 23, 26, 25, 1, -25}, // 0x41 'A' {1583, 24, 26, 25, 3, -25}, // 0x42 'B' {1661, 24, 26, 25, 4, -25}, // 0x43 'C' {1739, 24, 26, 25, 3, -25}, // 0x44 'D' {1817, 24, 26, 23, 3, -25}, // 0x45 'E' {1895, 23, 26, 21, 3, -25}, // 0x46 'F' {1970, 24, 26, 27, 4, -25}, // 0x47 'G' {2048, 26, 26, 25, 2, -25}, // 0x48 'H' {2133, 10, 26, 10, 2, -25}, // 0x49 'I' {2166, 20, 26, 19, 2, -25}, // 0x4A 'J' {2231, 26, 26, 25, 3, -25}, // 0x4B 'K' {2316, 18, 26, 21, 3, -25}, // 0x4C 'L' {2375, 31, 26, 29, 2, -25}, // 0x4D 'M' {2476, 27, 26, 25, 2, -25}, // 0x4E 'N' {2564, 25, 26, 27, 4, -25}, // 0x4F 'O' {2646, 23, 26, 23, 3, -25}, // 0x50 'P' {2721, 25, 27, 27, 4, -25}, // 0x51 'Q' {2806, 24, 26, 25, 3, -25}, // 0x52 'R' {2884, 22, 26, 23, 3, -25}, // 0x53 'S' {2956, 21, 26, 21, 5, -25}, // 0x54 'T' {3025, 24, 26, 25, 4, -25}, // 0x55 'U' {3103, 22, 26, 23, 6, -25}, // 0x56 'V' {3175, 32, 26, 33, 6, -25}, // 0x57 'W' {3279, 27, 26, 23, 1, -25}, // 0x58 'X' {3367, 22, 26, 23, 6, -25}, // 0x59 'Y' {3439, 25, 26, 21, 1, -25}, // 0x5A 'Z' {3521, 15, 33, 12, 1, -25}, // 0x5B '[' {3583, 5, 25, 10, 5, -24}, // 0x5C '\' {3599, 15, 33, 12, -1, -25}, // 0x5D ']' {3661, 16, 15, 20, 4, -23}, // 0x5E '^' {3691, 21, 3, 19, -2, 5}, // 0x5F '_' {3699, 5, 5, 12, 6, -25}, // 0x60 '`' {3703, 18, 19, 19, 2, -18}, // 0x61 'a' {3746, 20, 26, 21, 2, -25}, // 0x62 'b' {3811, 18, 19, 19, 3, -18}, // 0x63 'c' {3854, 22, 26, 21, 3, -25}, // 0x64 'd' {3926, 19, 19, 19, 2, -18}, // 0x65 'e' {3972, 13, 26, 12, 3, -25}, // 0x66 'f' {4015, 22, 27, 21, 1, -18}, // 0x67 'g' {4090, 20, 26, 21, 2, -25}, // 0x68 'h' {4155, 10, 26, 10, 2, -25}, // 0x69 'i' {4188, 15, 34, 10, -2, -25}, // 0x6A 'j' {4252, 21, 26, 19, 2, -25}, // 0x6B 'k' {4321, 10, 26, 10, 2, -25}, // 0x6C 'l' {4354, 30, 19, 31, 2, -18}, // 0x6D 'm' {4426, 20, 19, 21, 2, -18}, // 0x6E 'n' {4474, 19, 19, 21, 3, -18}, // 0x6F 'o' {4520, 22, 27, 21, 0, -18}, // 0x70 'p' {4595, 20, 27, 21, 3, -18}, // 0x71 'q' {4663, 15, 19, 14, 2, -18}, // 0x72 'r' {4699, 18, 19, 19, 2, -18}, // 0x73 's' {4742, 11, 23, 12, 4, -22}, // 0x74 't' {4774, 20, 19, 21, 3, -18}, // 0x75 'u' {4822, 18, 19, 19, 5, -18}, // 0x76 'v' {4865, 27, 19, 27, 4, -18}, // 0x77 'w' {4930, 22, 19, 19, 1, -18}, // 0x78 'x' {4983, 22, 27, 19, 1, -18}, // 0x79 'y' {5058, 19, 19, 17, 1, -18}, // 0x7A 'z' {5104, 14, 33, 14, 2, -25}, // 0x7B '{' {5162, 9, 33, 10, 2, -25}, // 0x7C '|' {5200, 14, 33, 14, 2, -25}, // 0x7D '}' {5258, 17, 6, 20, 3, -10}}; // 0x7E '~' const GFXfont FreeSansBoldOblique18pt7b PROGMEM = { (uint8_t *)FreeSansBoldOblique18pt7bBitmaps, (GFXglyph *)FreeSansBoldOblique18pt7bGlyphs, 0x20, 0x7E, 42}; // Approx. 5943 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansBoldOblique24pt7b.h ================================================ const uint8_t FreeSansBoldOblique24pt7bBitmaps[] PROGMEM = { 0x01, 0xE0, 0x07, 0xF0, 0x1F, 0xC0, 0xFF, 0x03, 0xF8, 0x0F, 0xE0, 0x3F, 0x80, 0xFE, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xE0, 0x1F, 0x80, 0x7E, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0xFE, 0x03, 0xF8, 0x00, 0x7E, 0x0F, 0xDF, 0x83, 0xF7, 0xE0, 0xFF, 0xF0, 0x7E, 0xFC, 0x1F, 0xBF, 0x07, 0xEF, 0xC1, 0xFB, 0xE0, 0x7C, 0xF8, 0x1F, 0x3C, 0x07, 0x8F, 0x01, 0xE3, 0x80, 0x70, 0x00, 0x07, 0xC1, 0xF0, 0x00, 0x3E, 0x0F, 0x80, 0x03, 0xE0, 0xF8, 0x00, 0x1F, 0x07, 0xC0, 0x01, 0xF0, 0x7C, 0x00, 0x0F, 0x83, 0xE0, 0x00, 0xF8, 0x3E, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xE0, 0x0F, 0x83, 0xE0, 0x00, 0x7C, 0x3E, 0x00, 0x07, 0xC1, 0xF0, 0x00, 0x3E, 0x0F, 0x80, 0x03, 0xE0, 0xF8, 0x00, 0x1F, 0x07, 0xC0, 0x00, 0xF8, 0x7C, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xE0, 0x1F, 0x07, 0xC0, 0x00, 0xF8, 0x3E, 0x00, 0x0F, 0x83, 0xE0, 0x00, 0x7C, 0x1F, 0x00, 0x07, 0xC1, 0xF0, 0x00, 0x3E, 0x0F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x07, 0xC0, 0x00, 0xF8, 0x3C, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x7F, 0xFF, 0x00, 0x3F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0x07, 0xF3, 0x9F, 0xC1, 0xF8, 0xE3, 0xF0, 0x7C, 0x38, 0xFC, 0x3F, 0x0E, 0x3F, 0x0F, 0xC7, 0x8F, 0xC3, 0xF1, 0xC0, 0x00, 0xFE, 0x70, 0x00, 0x3F, 0xDC, 0x00, 0x0F, 0xFF, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x3F, 0xFE, 0x00, 0x0F, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x0F, 0xFF, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x77, 0xF8, 0x00, 0x1C, 0xFE, 0x00, 0x07, 0x3F, 0x8F, 0xE3, 0xCF, 0xE3, 0xF8, 0xE3, 0xF8, 0xFE, 0x38, 0xFC, 0x3F, 0x8E, 0x7F, 0x0F, 0xF3, 0x9F, 0xC3, 0xFD, 0xFF, 0xE0, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFC, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x03, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x07, 0x80, 0x7F, 0xE0, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0x1E, 0x01, 0xFF, 0xF0, 0x01, 0xC0, 0x3F, 0xFF, 0x80, 0x3C, 0x07, 0xE1, 0xF8, 0x07, 0x80, 0x78, 0x07, 0x80, 0xF0, 0x0F, 0x80, 0x78, 0x0E, 0x00, 0xF0, 0x07, 0x81, 0xC0, 0x0F, 0x00, 0xF8, 0x3C, 0x00, 0xF0, 0x0F, 0x07, 0x80, 0x0F, 0xC3, 0xF0, 0xF0, 0x00, 0xFF, 0xFE, 0x0E, 0x00, 0x07, 0xFF, 0xC1, 0xE0, 0x00, 0x7F, 0xF8, 0x3C, 0x00, 0x03, 0xFF, 0x07, 0x80, 0x00, 0x0F, 0xC0, 0x70, 0x00, 0x00, 0x00, 0x0E, 0x03, 0xF0, 0x00, 0x01, 0xE0, 0xFF, 0xC0, 0x00, 0x3C, 0x1F, 0xFE, 0x00, 0x03, 0x83, 0xFF, 0xE0, 0x00, 0x70, 0x7F, 0xFF, 0x00, 0x0F, 0x0F, 0xC3, 0xF0, 0x01, 0xE0, 0xF0, 0x0F, 0x00, 0x3C, 0x1F, 0x00, 0xF0, 0x03, 0x81, 0xE0, 0x0F, 0x00, 0x78, 0x1E, 0x01, 0xF0, 0x0F, 0x01, 0xE0, 0x1E, 0x01, 0xE0, 0x1F, 0x87, 0xE0, 0x1C, 0x01, 0xFF, 0xFC, 0x03, 0x80, 0x0F, 0xFF, 0x80, 0x78, 0x00, 0xFF, 0xF0, 0x0F, 0x00, 0x07, 0xFE, 0x01, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFF, 0xC0, 0x00, 0x7F, 0xFF, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x3F, 0x9F, 0xC0, 0x03, 0xF8, 0x7E, 0x00, 0x1F, 0xC3, 0xF0, 0x00, 0xFE, 0x1F, 0x00, 0x07, 0xF1, 0xF8, 0x00, 0x3F, 0xCF, 0xC0, 0x01, 0xFE, 0xFC, 0x00, 0x07, 0xFF, 0xC0, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xFF, 0x07, 0xC1, 0xFF, 0xF8, 0x3E, 0x3F, 0xFF, 0xE3, 0xE3, 0xFE, 0x3F, 0x1F, 0x1F, 0xC1, 0xFD, 0xF1, 0xFC, 0x07, 0xFF, 0x8F, 0xC0, 0x3F, 0xF8, 0xFE, 0x00, 0xFF, 0xC7, 0xF0, 0x07, 0xFC, 0x3F, 0x80, 0x1F, 0xC1, 0xFC, 0x00, 0xFE, 0x0F, 0xF0, 0x1F, 0xF8, 0x7F, 0xC1, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xCF, 0xE0, 0x7F, 0xF8, 0x7F, 0x80, 0xFF, 0x00, 0x00, 0x7E, 0xFD, 0xFF, 0xEF, 0xDF, 0xBF, 0x7C, 0xF9, 0xE3, 0xC7, 0x00, 0x00, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0xC0, 0x07, 0xC0, 0x07, 0xC0, 0x07, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0xF0, 0x01, 0xF0, 0x01, 0xF8, 0x00, 0xF8, 0x00, 0xFC, 0x00, 0x7C, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x80, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x03, 0xF0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x1E, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x1E, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x80, 0x0F, 0x80, 0x07, 0xC0, 0x07, 0xE0, 0x03, 0xE0, 0x03, 0xF0, 0x01, 0xF0, 0x01, 0xF8, 0x00, 0xF8, 0x00, 0xFC, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x07, 0x3C, 0x6F, 0xFF, 0xFF, 0xFF, 0xBF, 0xFE, 0x0F, 0xE0, 0x1F, 0xC0, 0x7F, 0x81, 0xEF, 0x87, 0x8F, 0x0E, 0x1E, 0x08, 0x10, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xC7, 0xF1, 0xF8, 0xFE, 0x3F, 0x8F, 0xE0, 0x38, 0x1C, 0x07, 0x03, 0xC0, 0xE0, 0xF0, 0xFC, 0x3C, 0x0C, 0x00, 0x7F, 0xFD, 0xFF, 0xF7, 0xFF, 0x9F, 0xFE, 0xFF, 0xFB, 0xFF, 0xE0, 0x7F, 0x7F, 0x7F, 0x7E, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xFC, 0x00, 0x3F, 0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0x3F, 0xFF, 0xF0, 0x1F, 0xC7, 0xF8, 0x1F, 0xC1, 0xFE, 0x1F, 0xC0, 0x7F, 0x0F, 0xC0, 0x3F, 0x8F, 0xE0, 0x1F, 0xC7, 0xF0, 0x0F, 0xE3, 0xF0, 0x07, 0xF3, 0xF8, 0x03, 0xF9, 0xFC, 0x01, 0xFC, 0xFC, 0x01, 0xFE, 0xFE, 0x00, 0xFE, 0x7F, 0x00, 0x7F, 0x3F, 0x80, 0x3F, 0x9F, 0xC0, 0x1F, 0xCF, 0xE0, 0x1F, 0xEF, 0xE0, 0x0F, 0xE7, 0xF0, 0x07, 0xF3, 0xF8, 0x03, 0xF9, 0xFC, 0x03, 0xF8, 0xFE, 0x01, 0xFC, 0x7F, 0x00, 0xFE, 0x3F, 0x80, 0xFE, 0x1F, 0xE0, 0x7F, 0x0F, 0xF8, 0xFF, 0x03, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x0F, 0x80, 0x07, 0xC0, 0x07, 0xE0, 0x0F, 0xF0, 0x3F, 0xF9, 0xFF, 0xF8, 0xFF, 0xFC, 0xFF, 0xFE, 0x7F, 0xFF, 0x00, 0x3F, 0x80, 0x1F, 0x80, 0x0F, 0xC0, 0x0F, 0xE0, 0x07, 0xF0, 0x03, 0xF8, 0x01, 0xF8, 0x01, 0xFC, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x00, 0x1F, 0x80, 0x1F, 0xC0, 0x0F, 0xE0, 0x07, 0xF0, 0x03, 0xF0, 0x01, 0xF8, 0x01, 0xFC, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0x0F, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0x07, 0xFC, 0x07, 0xF0, 0x1F, 0xE0, 0x7F, 0x00, 0x7F, 0x03, 0xF0, 0x03, 0xF8, 0x1F, 0x80, 0x1F, 0xC1, 0xF8, 0x00, 0xFE, 0x0F, 0xC0, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x1F, 0xF8, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x03, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x0F, 0xFF, 0x80, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xC0, 0xFE, 0x1F, 0xF0, 0x7F, 0x01, 0xFC, 0x1F, 0x80, 0x7F, 0x07, 0xE0, 0x1F, 0xC3, 0xF0, 0x07, 0xF0, 0xFC, 0x01, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x80, 0x01, 0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x1F, 0xFC, 0x00, 0x07, 0xFF, 0x80, 0x01, 0xFF, 0xE0, 0x00, 0x07, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x3F, 0x80, 0x3F, 0xCF, 0xE0, 0x0F, 0xE3, 0xF8, 0x07, 0xF8, 0xFF, 0x83, 0xFC, 0x3F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x7F, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xF8, 0x00, 0x3D, 0xFC, 0x00, 0x3C, 0xFE, 0x00, 0x3E, 0x7E, 0x00, 0x3E, 0x7F, 0x00, 0x1E, 0x3F, 0x80, 0x1E, 0x1F, 0xC0, 0x1E, 0x0F, 0xC0, 0x1F, 0x07, 0xE0, 0x1F, 0x07, 0xF0, 0x1F, 0x03, 0xF8, 0x1F, 0x01, 0xFC, 0x0F, 0x80, 0xFC, 0x0F, 0x80, 0xFE, 0x0F, 0x80, 0x7F, 0x07, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x7F, 0xFF, 0xE0, 0x0F, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xF0, 0x0F, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x80, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE3, 0xF0, 0x00, 0x7F, 0xFF, 0x80, 0x1F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xF0, 0x1F, 0xE1, 0xFF, 0x03, 0xF0, 0x1F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0xFE, 0x00, 0xFE, 0x1F, 0xC0, 0x3F, 0x83, 0xF8, 0x07, 0xF0, 0x7F, 0x83, 0xFC, 0x0F, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xF8, 0x01, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x1F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF8, 0x1F, 0xC3, 0xFC, 0x1F, 0x80, 0xFE, 0x0F, 0xC0, 0x3F, 0x0F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF8, 0xFC, 0x01, 0xF9, 0xFF, 0x80, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFC, 0x3F, 0xE1, 0xFF, 0x1F, 0xE0, 0x7F, 0x8F, 0xE0, 0x1F, 0xCF, 0xE0, 0x0F, 0xE7, 0xF0, 0x07, 0xF3, 0xF0, 0x03, 0xF9, 0xF8, 0x01, 0xF8, 0xFC, 0x01, 0xFC, 0x7E, 0x00, 0xFE, 0x3F, 0x00, 0xFE, 0x1F, 0xC0, 0xFF, 0x0F, 0xF0, 0xFF, 0x03, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0x80, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xFF, 0x80, 0x07, 0xFF, 0xF0, 0x03, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xC0, 0xFE, 0x0F, 0xF0, 0x3E, 0x01, 0xFC, 0x1F, 0x80, 0x3F, 0x07, 0xC0, 0x0F, 0xC1, 0xF0, 0x03, 0xF0, 0x7C, 0x01, 0xF8, 0x1F, 0x00, 0xFC, 0x03, 0xF0, 0x7F, 0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x07, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x81, 0xFE, 0x1F, 0xE0, 0xFE, 0x03, 0xFC, 0x3F, 0x00, 0x7F, 0x1F, 0xC0, 0x1F, 0xC7, 0xE0, 0x07, 0xF3, 0xF8, 0x01, 0xFC, 0xFE, 0x00, 0x7F, 0x3F, 0x80, 0x3F, 0x8F, 0xE0, 0x0F, 0xE3, 0xFC, 0x07, 0xF0, 0xFF, 0x87, 0xFC, 0x3F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xC0, 0x03, 0xFF, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xFC, 0x00, 0x3F, 0xFF, 0x00, 0x3F, 0xFF, 0xC0, 0x3F, 0xFF, 0xF0, 0x3F, 0xC3, 0xF8, 0x3F, 0xC0, 0xFE, 0x1F, 0xC0, 0x3F, 0x1F, 0xC0, 0x1F, 0x8F, 0xE0, 0x0F, 0xC7, 0xE0, 0x07, 0xE7, 0xF0, 0x03, 0xF3, 0xF8, 0x01, 0xF9, 0xFC, 0x01, 0xFC, 0xFE, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x3F, 0xC0, 0xFF, 0x1F, 0xF0, 0xFF, 0x87, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0x3F, 0xF3, 0xF0, 0x07, 0xE3, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x1F, 0xC0, 0x7E, 0x0F, 0xF0, 0xFF, 0x07, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0x00, 0x0F, 0xFF, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xF0, 0x7F, 0x07, 0xF0, 0x7E, 0x0F, 0xE0, 0xFE, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x07, 0xF0, 0x7F, 0x07, 0xE0, 0xFE, 0x0F, 0xE0, 0xFE, 0x00, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7E, 0x03, 0xF8, 0x0F, 0xE0, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0x80, 0xFE, 0x03, 0xF8, 0x0F, 0xE0, 0x03, 0x80, 0x1C, 0x00, 0x70, 0x03, 0xC0, 0x0E, 0x00, 0xF0, 0x0F, 0xC0, 0x3C, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xFE, 0x00, 0x07, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, 0x3F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x0F, 0xFF, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x3F, 0xFE, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0x80, 0x07, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x3F, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x80, 0x1F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFE, 0x3F, 0xFF, 0xFF, 0x80, 0x04, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x0F, 0xFF, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0x80, 0x07, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0xC0, 0x01, 0xFF, 0xF0, 0x00, 0x1F, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, 0x3F, 0xFF, 0xE0, 0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x01, 0xFF, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x01, 0xFF, 0xF0, 0x07, 0xFF, 0xF8, 0x0F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFE, 0x3F, 0xC1, 0xFF, 0x3F, 0x80, 0xFF, 0x7F, 0x00, 0x7F, 0x7E, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xFC, 0x00, 0x0F, 0xF8, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFE, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xC0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x80, 0x00, 0x01, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x3F, 0xE0, 0x1F, 0xF8, 0x00, 0x07, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x07, 0xE0, 0x00, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x00, 0x03, 0xF0, 0x0F, 0xC0, 0x00, 0x00, 0x0F, 0x80, 0xFC, 0x00, 0x00, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xF1, 0xF1, 0xF0, 0x7C, 0x00, 0xFF, 0xCF, 0x07, 0x87, 0xE0, 0x1F, 0xFF, 0xF8, 0x3C, 0x7E, 0x01, 0xF8, 0x7F, 0x81, 0xE3, 0xE0, 0x1F, 0x01, 0xF8, 0x0F, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x79, 0xF0, 0x1F, 0x00, 0x7C, 0x03, 0xDF, 0x00, 0xF0, 0x03, 0xE0, 0x1C, 0xF8, 0x0F, 0x80, 0x1E, 0x01, 0xE7, 0xC0, 0x78, 0x00, 0xF0, 0x0F, 0x3C, 0x07, 0xC0, 0x0F, 0x00, 0xF3, 0xE0, 0x3C, 0x00, 0x78, 0x07, 0x9F, 0x03, 0xE0, 0x07, 0x80, 0x78, 0xF8, 0x1F, 0x00, 0x7C, 0x07, 0xC7, 0xC0, 0xF8, 0x07, 0xC0, 0x7C, 0x3E, 0x07, 0xC0, 0x7E, 0x07, 0xC1, 0xF0, 0x3F, 0x07, 0xF8, 0xFC, 0x0F, 0x81, 0xFF, 0xFF, 0xFF, 0xC0, 0x7E, 0x07, 0xFF, 0xBF, 0xFC, 0x01, 0xF0, 0x1F, 0xF8, 0xFF, 0x80, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE0, 0x03, 0x80, 0x00, 0x01, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x03, 0xFB, 0xF8, 0x00, 0x07, 0xF3, 0xF8, 0x00, 0x07, 0xE3, 0xF8, 0x00, 0x0F, 0xE3, 0xF8, 0x00, 0x0F, 0xC3, 0xF8, 0x00, 0x1F, 0xC3, 0xF8, 0x00, 0x1F, 0x83, 0xF8, 0x00, 0x3F, 0x81, 0xFC, 0x00, 0x7F, 0x01, 0xFC, 0x00, 0x7F, 0x01, 0xFC, 0x00, 0xFE, 0x01, 0xFC, 0x00, 0xFC, 0x01, 0xFC, 0x01, 0xFF, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFE, 0x0F, 0xE0, 0x00, 0xFE, 0x1F, 0xC0, 0x00, 0xFE, 0x1F, 0xC0, 0x00, 0xFE, 0x3F, 0x80, 0x00, 0xFE, 0x3F, 0x80, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x7F, 0x01, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xFF, 0x03, 0xF8, 0x00, 0xFF, 0x03, 0xF8, 0x00, 0x7F, 0x07, 0xF0, 0x00, 0x7F, 0x07, 0xF0, 0x00, 0x7F, 0x07, 0xF0, 0x00, 0x7E, 0x07, 0xF0, 0x00, 0xFE, 0x0F, 0xF0, 0x03, 0xFC, 0x0F, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xF8, 0x1F, 0xC0, 0x07, 0xFC, 0x1F, 0xC0, 0x01, 0xFC, 0x1F, 0xC0, 0x01, 0xFC, 0x3F, 0x80, 0x01, 0xFC, 0x3F, 0x80, 0x01, 0xFC, 0x3F, 0x80, 0x01, 0xFC, 0x3F, 0x80, 0x03, 0xF8, 0x7F, 0x00, 0x07, 0xF8, 0x7F, 0x00, 0x0F, 0xF0, 0x7F, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x1F, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0x03, 0xFE, 0x07, 0xFC, 0x01, 0xFF, 0x0F, 0xF0, 0x00, 0xFF, 0x0F, 0xE0, 0x00, 0x7F, 0x1F, 0xE0, 0x00, 0x7F, 0x1F, 0xC0, 0x00, 0x7F, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xF8, 0xFE, 0x00, 0x03, 0xF8, 0xFF, 0x00, 0x07, 0xF8, 0xFF, 0x00, 0x07, 0xF0, 0x7F, 0x80, 0x1F, 0xF0, 0x7F, 0xE0, 0x7F, 0xE0, 0x3F, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xFE, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xFE, 0x03, 0xF8, 0x03, 0xFE, 0x07, 0xF0, 0x01, 0xFF, 0x07, 0xF0, 0x00, 0xFF, 0x07, 0xF0, 0x00, 0x7F, 0x07, 0xF0, 0x00, 0x7F, 0x0F, 0xF0, 0x00, 0x7F, 0x0F, 0xE0, 0x00, 0x7F, 0x0F, 0xE0, 0x00, 0x7F, 0x0F, 0xE0, 0x00, 0x7F, 0x0F, 0xE0, 0x00, 0x7F, 0x1F, 0xC0, 0x00, 0x7F, 0x1F, 0xC0, 0x00, 0xFE, 0x1F, 0xC0, 0x00, 0xFE, 0x1F, 0xC0, 0x00, 0xFE, 0x1F, 0xC0, 0x01, 0xFE, 0x3F, 0x80, 0x01, 0xFC, 0x3F, 0x80, 0x01, 0xFC, 0x3F, 0x80, 0x03, 0xF8, 0x3F, 0x80, 0x07, 0xF8, 0x7F, 0x00, 0x0F, 0xF0, 0x7F, 0x00, 0x1F, 0xF0, 0x7F, 0x00, 0x7F, 0xE0, 0x7F, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xFE, 0x03, 0xF8, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0xE0, 0x1F, 0xC0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xFE, 0x03, 0xF8, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0xC0, 0x0F, 0xE0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xF8, 0x0F, 0xFC, 0x07, 0xFC, 0x0F, 0xF8, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0x3F, 0x87, 0xF0, 0x00, 0x1F, 0xC7, 0xF0, 0x00, 0x0F, 0xE3, 0xF8, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x3F, 0xFF, 0x3F, 0x00, 0x1F, 0xFF, 0xBF, 0x80, 0x0F, 0xFF, 0x9F, 0xC0, 0x07, 0xFF, 0xCF, 0xE0, 0x03, 0xFF, 0xE7, 0xF0, 0x03, 0xFF, 0xF3, 0xF8, 0x00, 0x01, 0xF9, 0xFC, 0x00, 0x01, 0xF8, 0xFF, 0x00, 0x00, 0xFC, 0x7F, 0x80, 0x00, 0xFE, 0x3F, 0xC0, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0xFF, 0x87, 0xFC, 0x00, 0xFF, 0x81, 0xFF, 0x81, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFE, 0xF8, 0x03, 0xFF, 0xFC, 0x78, 0x00, 0x7F, 0xFC, 0x3C, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x3F, 0x80, 0x01, 0xFC, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0xFE, 0x00, 0x0F, 0xE0, 0x1F, 0xC0, 0x01, 0xFC, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0xFE, 0x00, 0x07, 0xF0, 0x1F, 0xC0, 0x00, 0xFE, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0xFF, 0x00, 0x07, 0xF0, 0x1F, 0xC0, 0x00, 0xFE, 0x03, 0xF8, 0x00, 0x1F, 0xC0, 0x7F, 0x00, 0x07, 0xF0, 0x0F, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xF8, 0x0F, 0xE0, 0x00, 0x7F, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x3F, 0x80, 0x01, 0xFC, 0x07, 0xF0, 0x00, 0x7F, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x3F, 0x80, 0x01, 0xFC, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0xFE, 0x00, 0x0F, 0xE0, 0x1F, 0xC0, 0x01, 0xFC, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0xFE, 0x00, 0x07, 0xF0, 0x1F, 0xC0, 0x00, 0xFE, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x7F, 0x00, 0x07, 0xF0, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x07, 0xF0, 0x3F, 0x80, 0xFE, 0x03, 0xF8, 0x0F, 0xE0, 0x3F, 0x81, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x0F, 0xE0, 0x3F, 0x80, 0xFE, 0x03, 0xF8, 0x0F, 0xE0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x03, 0xF8, 0x0F, 0xE0, 0x3F, 0x80, 0xFE, 0x03, 0xF8, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0xFE, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xE0, 0xFE, 0x03, 0xFC, 0x1F, 0xC0, 0x7F, 0x03, 0xF8, 0x0F, 0xE0, 0xFE, 0x01, 0xFC, 0x1F, 0xC0, 0x3F, 0x83, 0xF8, 0x0F, 0xE0, 0x7F, 0x01, 0xFC, 0x0F, 0xF0, 0xFF, 0x81, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0x80, 0x03, 0xFF, 0xE0, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x0F, 0xF0, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0x1F, 0xF0, 0x03, 0xF8, 0x01, 0xFF, 0x00, 0x1F, 0xC0, 0x1F, 0xE0, 0x00, 0xFE, 0x01, 0xFE, 0x00, 0x0F, 0xE0, 0x1F, 0xE0, 0x00, 0x7F, 0x01, 0xFE, 0x00, 0x03, 0xF8, 0x1F, 0xE0, 0x00, 0x1F, 0xC1, 0xFE, 0x00, 0x00, 0xFE, 0x1F, 0xE0, 0x00, 0x0F, 0xE3, 0xFE, 0x00, 0x00, 0x7F, 0x3F, 0xC0, 0x00, 0x03, 0xFB, 0xFC, 0x00, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xFF, 0xF8, 0x00, 0x00, 0x7F, 0xFF, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x1F, 0xFF, 0xF8, 0x00, 0x01, 0xFF, 0x9F, 0xE0, 0x00, 0x0F, 0xF8, 0xFF, 0x00, 0x00, 0x7F, 0x83, 0xFC, 0x00, 0x03, 0xF8, 0x1F, 0xF0, 0x00, 0x1F, 0xC0, 0x7F, 0x80, 0x01, 0xFC, 0x01, 0xFE, 0x00, 0x0F, 0xE0, 0x0F, 0xF0, 0x00, 0x7F, 0x00, 0x3F, 0xC0, 0x03, 0xF8, 0x01, 0xFF, 0x00, 0x3F, 0x80, 0x07, 0xF8, 0x01, 0xFC, 0x00, 0x3F, 0xE0, 0x0F, 0xE0, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0x07, 0xFC, 0x03, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x01, 0xFF, 0x80, 0x03, 0xFF, 0x80, 0xFF, 0xC0, 0x01, 0xFF, 0x80, 0x7F, 0xE0, 0x01, 0xFF, 0xC0, 0x3F, 0xF0, 0x00, 0xFF, 0xE0, 0x3F, 0xF8, 0x00, 0xFF, 0xF0, 0x1F, 0xFC, 0x00, 0x7F, 0xF8, 0x0F, 0xFE, 0x00, 0x7D, 0xF8, 0x07, 0xEF, 0x00, 0x3E, 0xFC, 0x03, 0xF7, 0x80, 0x3F, 0xFE, 0x03, 0xFB, 0xC0, 0x1F, 0x7F, 0x01, 0xFD, 0xE0, 0x1F, 0xBF, 0x00, 0xFE, 0xF0, 0x0F, 0x9F, 0x80, 0x7E, 0x78, 0x0F, 0xDF, 0xC0, 0x7F, 0x3E, 0x07, 0xCF, 0xE0, 0x3F, 0x9F, 0x07, 0xE7, 0xF0, 0x1F, 0xCF, 0x83, 0xE3, 0xF0, 0x0F, 0xE7, 0xC3, 0xF1, 0xF8, 0x07, 0xE3, 0xE1, 0xF9, 0xFC, 0x07, 0xF1, 0xF0, 0xF8, 0xFE, 0x03, 0xF8, 0xF8, 0xFC, 0x7F, 0x01, 0xFC, 0x7C, 0x7C, 0x3F, 0x00, 0xFC, 0x3E, 0x7E, 0x1F, 0x80, 0x7E, 0x1F, 0x3E, 0x1F, 0xC0, 0x7F, 0x0F, 0xBF, 0x0F, 0xE0, 0x3F, 0x87, 0xDF, 0x07, 0xE0, 0x1F, 0xC3, 0xFF, 0x83, 0xF0, 0x0F, 0xC1, 0xFF, 0xC3, 0xF8, 0x0F, 0xE0, 0xFF, 0xC1, 0xFC, 0x07, 0xF0, 0x7F, 0xE0, 0xFE, 0x03, 0xF8, 0x3F, 0xE0, 0x7E, 0x01, 0xFC, 0x1F, 0xF0, 0x3F, 0x00, 0xFC, 0x0F, 0xF0, 0x3F, 0x80, 0xFE, 0x07, 0xF8, 0x1F, 0xC0, 0x7F, 0x03, 0xF8, 0x0F, 0xC0, 0x00, 0x01, 0xFE, 0x00, 0x07, 0xE0, 0x3F, 0xC0, 0x01, 0xFC, 0x07, 0xFC, 0x00, 0x3F, 0x80, 0xFF, 0x80, 0x07, 0xF0, 0x1F, 0xF0, 0x00, 0xFC, 0x07, 0xFF, 0x00, 0x3F, 0x80, 0xFF, 0xE0, 0x07, 0xF0, 0x1F, 0xFC, 0x00, 0xFE, 0x03, 0xFF, 0xC0, 0x1F, 0x80, 0xFF, 0xF8, 0x03, 0xF0, 0x1F, 0xFF, 0x80, 0xFE, 0x03, 0xFB, 0xF0, 0x1F, 0xC0, 0x7E, 0x7E, 0x03, 0xF8, 0x0F, 0xC7, 0xE0, 0x7E, 0x03, 0xF8, 0xFC, 0x0F, 0xC0, 0x7F, 0x1F, 0x83, 0xF8, 0x0F, 0xE1, 0xF8, 0x7F, 0x01, 0xF8, 0x3F, 0x0F, 0xE0, 0x3F, 0x07, 0xF1, 0xF8, 0x0F, 0xE0, 0x7E, 0x3F, 0x01, 0xFC, 0x0F, 0xCF, 0xE0, 0x3F, 0x00, 0xFD, 0xFC, 0x07, 0xE0, 0x1F, 0xBF, 0x81, 0xFC, 0x03, 0xF7, 0xE0, 0x3F, 0x80, 0x3F, 0xFC, 0x07, 0xF0, 0x07, 0xFF, 0x80, 0xFC, 0x00, 0xFF, 0xF0, 0x1F, 0x80, 0x0F, 0xFC, 0x07, 0xF0, 0x01, 0xFF, 0x80, 0xFE, 0x00, 0x3F, 0xF0, 0x1F, 0xC0, 0x03, 0xFE, 0x03, 0xF0, 0x00, 0x7F, 0xC0, 0x7E, 0x00, 0x07, 0xF0, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x3F, 0xF0, 0x3F, 0xF8, 0x1F, 0xF0, 0x03, 0xFE, 0x07, 0xF0, 0x00, 0x7F, 0x83, 0xF8, 0x00, 0x0F, 0xF1, 0xFE, 0x00, 0x03, 0xFC, 0x7F, 0x00, 0x00, 0x7F, 0x3F, 0x80, 0x00, 0x1F, 0xCF, 0xE0, 0x00, 0x07, 0xF7, 0xF0, 0x00, 0x01, 0xFD, 0xFC, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x1F, 0xDF, 0xC0, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x03, 0xFB, 0xF8, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x3F, 0xBF, 0x80, 0x00, 0x0F, 0xEF, 0xE0, 0x00, 0x07, 0xF3, 0xF8, 0x00, 0x01, 0xFC, 0xFE, 0x00, 0x00, 0xFE, 0x3F, 0xC0, 0x00, 0x7F, 0x8F, 0xF0, 0x00, 0x1F, 0xC1, 0xFE, 0x00, 0x0F, 0xE0, 0x7F, 0xC0, 0x0F, 0xF8, 0x1F, 0xFC, 0x0F, 0xFC, 0x03, 0xFF, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFF, 0xC1, 0xFE, 0x00, 0xFF, 0x83, 0xF8, 0x00, 0xFF, 0x07, 0xF0, 0x00, 0xFE, 0x0F, 0xE0, 0x01, 0xFC, 0x1F, 0xC0, 0x03, 0xF8, 0x7F, 0x00, 0x07, 0xF0, 0xFE, 0x00, 0x1F, 0xC1, 0xFC, 0x00, 0x3F, 0x83, 0xF8, 0x00, 0xFE, 0x07, 0xF0, 0x07, 0xFC, 0x1F, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0x80, 0x0F, 0xE0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x3F, 0xF0, 0x3F, 0xF0, 0x1F, 0xF0, 0x03, 0xFE, 0x07, 0xF8, 0x00, 0x7F, 0x83, 0xFC, 0x00, 0x0F, 0xF1, 0xFE, 0x00, 0x03, 0xFC, 0x7F, 0x00, 0x00, 0x7F, 0x3F, 0x80, 0x00, 0x1F, 0xCF, 0xE0, 0x00, 0x07, 0xF3, 0xF0, 0x00, 0x01, 0xFD, 0xFC, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x1F, 0xDF, 0x80, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x03, 0xFB, 0xF8, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x3F, 0xBF, 0x80, 0x00, 0x0F, 0xEF, 0xE0, 0x01, 0x87, 0xF3, 0xF8, 0x00, 0xF1, 0xFC, 0xFE, 0x00, 0x7C, 0xFE, 0x3F, 0xC0, 0x3F, 0xFF, 0x8F, 0xF0, 0x07, 0xFF, 0xC1, 0xFE, 0x01, 0xFF, 0xE0, 0x7F, 0xC0, 0x3F, 0xF8, 0x1F, 0xFC, 0x0F, 0xFC, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0x9F, 0x80, 0x01, 0xFF, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x60, 0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xFC, 0x0F, 0xE0, 0x03, 0xFE, 0x0F, 0xF0, 0x00, 0xFF, 0x07, 0xF0, 0x00, 0x3F, 0x83, 0xF8, 0x00, 0x1F, 0xC1, 0xFC, 0x00, 0x0F, 0xC0, 0xFE, 0x00, 0x07, 0xE0, 0xFE, 0x00, 0x07, 0xF0, 0x7F, 0x00, 0x07, 0xF0, 0x3F, 0x80, 0x0F, 0xF0, 0x1F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xF0, 0x03, 0xFF, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xFF, 0x01, 0xFC, 0x00, 0x7F, 0x80, 0xFE, 0x00, 0x1F, 0xC0, 0x7F, 0x00, 0x0F, 0xE0, 0x3F, 0x80, 0x07, 0xF0, 0x1F, 0xC0, 0x03, 0xF8, 0x1F, 0xC0, 0x01, 0xFC, 0x0F, 0xE0, 0x01, 0xFC, 0x07, 0xF0, 0x00, 0xFE, 0x03, 0xF8, 0x00, 0x7F, 0x01, 0xFC, 0x00, 0x3F, 0x81, 0xFC, 0x00, 0x1F, 0xC0, 0xFE, 0x00, 0x0F, 0xE0, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xF0, 0x3F, 0xC0, 0x7F, 0xC1, 0xFE, 0x00, 0xFF, 0x07, 0xF0, 0x01, 0xFC, 0x3F, 0x80, 0x07, 0xF0, 0xFE, 0x00, 0x1F, 0xC3, 0xF8, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xF3, 0xF8, 0x00, 0x1F, 0xCF, 0xE0, 0x00, 0x7E, 0x3F, 0x80, 0x03, 0xF8, 0xFF, 0x00, 0x1F, 0xE3, 0xFF, 0x01, 0xFF, 0x07, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0x3F, 0xF0, 0x00, 0x7F, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFE, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x07, 0xF0, 0x00, 0x7F, 0x07, 0xF0, 0x00, 0xFE, 0x0F, 0xE0, 0x00, 0xFE, 0x0F, 0xE0, 0x00, 0xFE, 0x0F, 0xE0, 0x00, 0xFE, 0x0F, 0xE0, 0x00, 0xFE, 0x0F, 0xE0, 0x01, 0xFC, 0x1F, 0xC0, 0x01, 0xFC, 0x1F, 0xC0, 0x01, 0xFC, 0x1F, 0xC0, 0x01, 0xFC, 0x1F, 0xC0, 0x01, 0xFC, 0x3F, 0x80, 0x03, 0xF8, 0x3F, 0x80, 0x03, 0xF8, 0x3F, 0x80, 0x03, 0xF8, 0x3F, 0x80, 0x03, 0xF8, 0x3F, 0x80, 0x07, 0xF0, 0x7F, 0x00, 0x07, 0xF0, 0x7F, 0x00, 0x07, 0xF0, 0x7F, 0x00, 0x07, 0xF0, 0x7F, 0x00, 0x07, 0xF0, 0x7F, 0x00, 0x0F, 0xE0, 0xFE, 0x00, 0x0F, 0xE0, 0xFE, 0x00, 0x0F, 0xE0, 0xFE, 0x00, 0x0F, 0xE0, 0xFE, 0x00, 0x1F, 0xC0, 0xFE, 0x00, 0x1F, 0xC0, 0xFF, 0x00, 0x3F, 0x80, 0xFF, 0xC0, 0xFF, 0x80, 0x7F, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0xF8, 0x00, 0x0F, 0xFF, 0xE0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x03, 0xF9, 0xFC, 0x00, 0x0F, 0xE7, 0xF0, 0x00, 0x7F, 0x1F, 0xC0, 0x01, 0xFC, 0x7F, 0x00, 0x0F, 0xE1, 0xFC, 0x00, 0x3F, 0x87, 0xF0, 0x01, 0xFC, 0x1F, 0xC0, 0x07, 0xF0, 0x3F, 0x00, 0x3F, 0x80, 0xFC, 0x00, 0xFC, 0x03, 0xF0, 0x07, 0xF0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x80, 0xFE, 0x00, 0xFE, 0x03, 0xF0, 0x03, 0xF8, 0x1F, 0xC0, 0x0F, 0xE0, 0x7E, 0x00, 0x1F, 0x83, 0xF8, 0x00, 0x7E, 0x0F, 0xC0, 0x01, 0xF8, 0x7E, 0x00, 0x07, 0xE1, 0xF8, 0x00, 0x1F, 0x8F, 0xC0, 0x00, 0x7E, 0x3F, 0x00, 0x01, 0xF9, 0xF8, 0x00, 0x07, 0xE7, 0xE0, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x7F, 0x80, 0x1F, 0xFF, 0xC0, 0x0F, 0xF0, 0x03, 0xFB, 0xF8, 0x01, 0xFE, 0x00, 0x7F, 0x7F, 0x00, 0x7F, 0xC0, 0x1F, 0xCF, 0xE0, 0x0F, 0xF8, 0x03, 0xF9, 0xFC, 0x03, 0xFF, 0x00, 0xFE, 0x3F, 0x80, 0x7F, 0xE0, 0x1F, 0xC7, 0xF0, 0x1F, 0xFC, 0x07, 0xF0, 0x7E, 0x03, 0xFF, 0x80, 0xFE, 0x0F, 0xC0, 0x7D, 0xF0, 0x1F, 0x81, 0xF8, 0x1F, 0xBE, 0x07, 0xF0, 0x3F, 0x03, 0xE7, 0xC0, 0xFC, 0x07, 0xE0, 0xFC, 0xF8, 0x3F, 0x80, 0xFC, 0x1F, 0x1F, 0x07, 0xE0, 0x1F, 0x83, 0xE3, 0xE0, 0xFC, 0x03, 0xF0, 0xFC, 0x7C, 0x3F, 0x00, 0x7E, 0x1F, 0x0F, 0x87, 0xE0, 0x0F, 0xC7, 0xE1, 0xF1, 0xF8, 0x01, 0xF8, 0xF8, 0x3E, 0x3F, 0x00, 0x3F, 0x3F, 0x07, 0xCF, 0xC0, 0x07, 0xE7, 0xC0, 0xF9, 0xF8, 0x00, 0xFC, 0xF8, 0x1F, 0x3E, 0x00, 0x1F, 0xBE, 0x03, 0xEF, 0xC0, 0x01, 0xF7, 0xC0, 0x7D, 0xF0, 0x00, 0x3F, 0xF8, 0x0F, 0xFE, 0x00, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x3F, 0xF0, 0x00, 0x1F, 0xF0, 0x07, 0xFC, 0x00, 0x03, 0xFE, 0x00, 0xFF, 0x80, 0x00, 0x7F, 0x80, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x03, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x01, 0xFC, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x07, 0xFC, 0x00, 0xFF, 0x00, 0x1F, 0xE0, 0x07, 0xF8, 0x00, 0xFF, 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x07, 0xF8, 0x00, 0x1F, 0xE0, 0x7F, 0x80, 0x00, 0xFF, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x3F, 0x80, 0x00, 0x1F, 0xE3, 0xF8, 0x00, 0x00, 0x7F, 0x3F, 0xC0, 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xE7, 0xF0, 0x00, 0x00, 0xFF, 0x3F, 0xC0, 0x00, 0x0F, 0xF1, 0xFE, 0x00, 0x00, 0xFF, 0x07, 0xF8, 0x00, 0x07, 0xF0, 0x3F, 0xC0, 0x00, 0x7F, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x07, 0xF8, 0x00, 0x7F, 0x80, 0x3F, 0xC0, 0x07, 0xF8, 0x01, 0xFF, 0x00, 0x7F, 0x80, 0x07, 0xF8, 0x07, 0xFC, 0x00, 0x3F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF7, 0xF8, 0x00, 0x7F, 0xBF, 0xC0, 0x07, 0xF8, 0xFE, 0x00, 0x3F, 0x87, 0xF8, 0x03, 0xFC, 0x3F, 0xC0, 0x3F, 0xC0, 0xFE, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x3F, 0xC1, 0xFE, 0x00, 0xFE, 0x0F, 0xE0, 0x07, 0xF0, 0xFE, 0x00, 0x3F, 0x8F, 0xE0, 0x00, 0xFE, 0x7F, 0x00, 0x07, 0xF7, 0xF0, 0x00, 0x3F, 0xFF, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x3F, 0xF8, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x7F, 0xF8, 0x03, 0xFF, 0x80, 0x1F, 0xFC, 0x00, 0xFF, 0xE0, 0x0F, 0xFF, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x00, 0x01, 0xFF, 0xC0, 0x0F, 0xFE, 0x00, 0x7F, 0xF0, 0x07, 0xFF, 0x80, 0x3F, 0xFC, 0x00, 0x81, 0xC3, 0xC7, 0x8F, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0xC7, 0x8F, 0x1E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x8F, 0x1E, 0x3C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0F, 0x1E, 0x3C, 0x78, 0xF0, 0x00, 0x7F, 0xF8, 0x03, 0xFF, 0xC0, 0x1F, 0xFC, 0x00, 0xFF, 0xE0, 0x07, 0xFF, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x01, 0xFF, 0xE0, 0x0F, 0xFE, 0x00, 0x7F, 0xF0, 0x03, 0xFF, 0x80, 0x3F, 0xFC, 0x00, 0x00, 0x1F, 0x80, 0x00, 0xFE, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x80, 0x07, 0xFC, 0x00, 0x7F, 0xE0, 0x03, 0xFF, 0x80, 0x3E, 0xFC, 0x01, 0xF3, 0xE0, 0x1F, 0x1F, 0x01, 0xF8, 0xF8, 0x0F, 0x87, 0xE0, 0xFC, 0x3F, 0x07, 0xC0, 0xF8, 0x7C, 0x07, 0xC7, 0xE0, 0x3E, 0x3E, 0x01, 0xFB, 0xF0, 0x0F, 0xDF, 0x00, 0x3F, 0xF0, 0x01, 0xF0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xE0, 0xF8, 0xF0, 0xF1, 0xE1, 0xC3, 0xC3, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xF8, 0x7F, 0x03, 0xFC, 0x3F, 0x00, 0xFE, 0x1F, 0x80, 0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x7F, 0xFF, 0xC0, 0xFF, 0xFF, 0xE0, 0xFF, 0xF7, 0xF0, 0xFF, 0x83, 0xF8, 0xFF, 0x01, 0xF8, 0x7F, 0x00, 0xFC, 0x7F, 0x00, 0xFE, 0x3F, 0x80, 0x7F, 0x1F, 0xC0, 0x7F, 0x8F, 0xF0, 0xFF, 0x87, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xE0, 0xFF, 0xF7, 0xF8, 0x3F, 0xF3, 0xFC, 0x07, 0xE0, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xE0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x3F, 0x80, 0x1F, 0x9F, 0xFC, 0x03, 0xF7, 0xFF, 0xC0, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0x0F, 0xF0, 0x7F, 0x80, 0xFF, 0x0F, 0xE0, 0x1F, 0xE3, 0xF8, 0x01, 0xFC, 0x7F, 0x00, 0x3F, 0x8F, 0xC0, 0x07, 0xF1, 0xF8, 0x00, 0xFE, 0x7F, 0x00, 0x1F, 0xCF, 0xC0, 0x03, 0xF9, 0xF8, 0x00, 0xFE, 0x3F, 0x00, 0x1F, 0xC7, 0xE0, 0x03, 0xF9, 0xFC, 0x00, 0xFE, 0x3F, 0xC0, 0x3F, 0xC7, 0xF8, 0x0F, 0xF0, 0xFF, 0x83, 0xFC, 0x1F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0x1F, 0x9F, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0xFC, 0x00, 0x7F, 0xFF, 0x80, 0x7F, 0xFF, 0xE0, 0x7F, 0xFF, 0xF0, 0x7F, 0x83, 0xFC, 0x7F, 0x00, 0xFE, 0x3F, 0x00, 0x7F, 0x3F, 0x80, 0x3F, 0x9F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x3F, 0x80, 0x3F, 0x9F, 0xE0, 0x3F, 0x87, 0xF8, 0x3F, 0x83, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x7F, 0x00, 0x3F, 0xF3, 0xF8, 0x03, 0xFF, 0xDF, 0x80, 0x7F, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0xE0, 0x3F, 0xC3, 0xFF, 0x03, 0xFC, 0x0F, 0xF8, 0x3F, 0xC0, 0x3F, 0x81, 0xFC, 0x01, 0xFC, 0x1F, 0xC0, 0x07, 0xE0, 0xFE, 0x00, 0x3F, 0x07, 0xF0, 0x03, 0xF8, 0x7F, 0x00, 0x1F, 0x83, 0xF8, 0x00, 0xFC, 0x1F, 0xC0, 0x07, 0xE0, 0xFE, 0x00, 0x3F, 0x07, 0xF0, 0x03, 0xF0, 0x3F, 0x80, 0x3F, 0x81, 0xFC, 0x01, 0xFC, 0x0F, 0xF0, 0x1F, 0xE0, 0x3F, 0xC3, 0xFF, 0x01, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFC, 0x00, 0xFF, 0xCF, 0xE0, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0x7F, 0x87, 0xF8, 0x7F, 0x01, 0xFE, 0x7F, 0x00, 0x7F, 0x3F, 0x80, 0x3F, 0xBF, 0x80, 0x1F, 0xDF, 0xC0, 0x0F, 0xEF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x3F, 0x9F, 0xE0, 0x3F, 0x87, 0xF8, 0x3F, 0xC3, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0x80, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x1F, 0xF0, 0x0F, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xC0, 0x03, 0xF0, 0x01, 0xFC, 0x03, 0xFF, 0xF1, 0xFF, 0xF8, 0x7F, 0xFE, 0x1F, 0xFF, 0x80, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x7F, 0x00, 0x1F, 0xC0, 0x07, 0xE0, 0x01, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x7F, 0x00, 0x1F, 0xC0, 0x07, 0xF0, 0x01, 0xF8, 0x00, 0x7E, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x07, 0xC3, 0xF8, 0x01, 0xFF, 0x9F, 0x80, 0x1F, 0xFE, 0xFC, 0x01, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0x01, 0xFE, 0x1F, 0xF8, 0x1F, 0xE0, 0x3F, 0x80, 0xFE, 0x01, 0xFC, 0x0F, 0xE0, 0x0F, 0xE0, 0x7F, 0x00, 0x3F, 0x07, 0xF0, 0x01, 0xF8, 0x3F, 0x80, 0x0F, 0x81, 0xF8, 0x00, 0x7C, 0x1F, 0xC0, 0x07, 0xE0, 0xFE, 0x00, 0x3F, 0x07, 0xF0, 0x01, 0xF0, 0x3F, 0x80, 0x1F, 0x81, 0xFC, 0x00, 0xFC, 0x0F, 0xE0, 0x0F, 0xE0, 0x7F, 0x80, 0xFF, 0x03, 0xFE, 0x1F, 0xF0, 0x0F, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFC, 0x01, 0xFF, 0xF7, 0xE0, 0x07, 0xFE, 0x7F, 0x00, 0x0F, 0xC3, 0xF0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x01, 0xFC, 0x0F, 0xE0, 0x0F, 0xC0, 0x7F, 0x00, 0xFE, 0x03, 0xFC, 0x1F, 0xE0, 0x1F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xE0, 0x01, 0xFF, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xE0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xFE, 0x0F, 0xC0, 0x1F, 0xCF, 0xFE, 0x03, 0xFB, 0xFF, 0xE0, 0x7F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, 0x07, 0xF8, 0x7F, 0x80, 0x7F, 0x0F, 0xE0, 0x0F, 0xE1, 0xFC, 0x01, 0xFC, 0x7F, 0x00, 0x3F, 0x0F, 0xE0, 0x07, 0xE1, 0xFC, 0x01, 0xFC, 0x3F, 0x00, 0x3F, 0x87, 0xE0, 0x07, 0xF1, 0xFC, 0x00, 0xFC, 0x3F, 0x80, 0x1F, 0x87, 0xF0, 0x07, 0xF0, 0xFC, 0x00, 0xFE, 0x1F, 0x80, 0x1F, 0xC7, 0xF0, 0x03, 0xF0, 0xFE, 0x00, 0x7E, 0x1F, 0xC0, 0x1F, 0xC3, 0xF0, 0x03, 0xF8, 0xFE, 0x00, 0x7F, 0x1F, 0xC0, 0x0F, 0xC0, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0x80, 0x7E, 0x03, 0xF8, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xE0, 0x3F, 0x80, 0xFE, 0x03, 0xF8, 0x0F, 0xC0, 0x3F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7E, 0x03, 0xF8, 0x0F, 0xE0, 0x3F, 0x80, 0xFC, 0x03, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xE0, 0x1F, 0x80, 0xFE, 0x03, 0xF8, 0x00, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0xFE, 0x00, 0x1F, 0xC0, 0x03, 0xF8, 0x00, 0x7E, 0x00, 0x1F, 0xC0, 0x03, 0xF8, 0x00, 0x7F, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x7F, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x07, 0xF0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x07, 0xF0, 0x00, 0xFE, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0xFE, 0x00, 0x1F, 0xC0, 0x03, 0xF8, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x03, 0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xC0, 0x0F, 0xF8, 0x03, 0xFE, 0x00, 0x7E, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x7F, 0x00, 0xFE, 0x07, 0xE0, 0x3F, 0xC0, 0x7E, 0x07, 0xF8, 0x0F, 0xE0, 0xFF, 0x00, 0xFE, 0x1F, 0xC0, 0x0F, 0xE3, 0xF8, 0x00, 0xFC, 0x7F, 0x00, 0x0F, 0xCF, 0xE0, 0x01, 0xFD, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x01, 0xFF, 0xF8, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0xC0, 0x03, 0xFE, 0xFE, 0x00, 0x3F, 0xCF, 0xE0, 0x03, 0xF0, 0xFE, 0x00, 0x7F, 0x07, 0xF0, 0x07, 0xF0, 0x7F, 0x00, 0x7F, 0x07, 0xF8, 0x07, 0xE0, 0x3F, 0x80, 0x7E, 0x03, 0xF8, 0x0F, 0xE0, 0x3F, 0xC0, 0xFE, 0x01, 0xFC, 0x0F, 0xC0, 0x1F, 0xE0, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0x80, 0x7E, 0x03, 0xF8, 0x0F, 0xE0, 0x3F, 0x80, 0xFC, 0x03, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xE0, 0x3F, 0x80, 0xFE, 0x03, 0xF8, 0x0F, 0xC0, 0x3F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7E, 0x03, 0xF8, 0x0F, 0xE0, 0x3F, 0x80, 0xFC, 0x03, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xE0, 0x1F, 0x80, 0xFE, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0xFC, 0x03, 0xF0, 0x07, 0xE3, 0xFF, 0x0F, 0xFC, 0x07, 0xEF, 0xFF, 0x3F, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF8, 0x7F, 0xF0, 0xFF, 0x0F, 0xE0, 0x3F, 0xC0, 0x7F, 0x0F, 0xE0, 0x3F, 0x80, 0x7F, 0x1F, 0xC0, 0x3F, 0x80, 0x7E, 0x1F, 0xC0, 0x3F, 0x00, 0x7E, 0x1F, 0xC0, 0x3F, 0x00, 0xFE, 0x1F, 0x80, 0x7F, 0x00, 0xFE, 0x3F, 0x80, 0x7F, 0x00, 0xFC, 0x3F, 0x80, 0x7F, 0x00, 0xFC, 0x3F, 0x80, 0x7E, 0x01, 0xFC, 0x3F, 0x00, 0x7E, 0x01, 0xFC, 0x3F, 0x00, 0xFE, 0x01, 0xFC, 0x7F, 0x00, 0xFE, 0x01, 0xF8, 0x7F, 0x00, 0xFE, 0x01, 0xF8, 0x7F, 0x00, 0xFC, 0x03, 0xF8, 0x7E, 0x01, 0xFC, 0x03, 0xF8, 0x7E, 0x01, 0xFC, 0x03, 0xF8, 0xFE, 0x01, 0xFC, 0x03, 0xF0, 0xFE, 0x01, 0xF8, 0x03, 0xF0, 0xFE, 0x01, 0xF8, 0x07, 0xF0, 0x07, 0xF0, 0xFE, 0x00, 0xFE, 0x7F, 0xF0, 0x1F, 0x9F, 0xFF, 0x03, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFE, 0x1F, 0xF8, 0x3F, 0xC3, 0xFC, 0x03, 0xF8, 0x7F, 0x00, 0x7F, 0x0F, 0xE0, 0x0F, 0xE3, 0xF8, 0x01, 0xF8, 0x7F, 0x00, 0x3F, 0x0F, 0xC0, 0x0F, 0xE1, 0xF8, 0x01, 0xFC, 0x7F, 0x00, 0x3F, 0x8F, 0xE0, 0x07, 0xE1, 0xFC, 0x00, 0xFC, 0x3F, 0x00, 0x3F, 0x87, 0xE0, 0x07, 0xF1, 0xFC, 0x00, 0xFE, 0x3F, 0x80, 0x1F, 0x87, 0xF0, 0x03, 0xF0, 0xFC, 0x00, 0xFE, 0x3F, 0x80, 0x1F, 0xC7, 0xF0, 0x03, 0xF8, 0xFE, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0xFF, 0x00, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0x83, 0xFC, 0x1F, 0xE1, 0xFE, 0x03, 0xFC, 0xFF, 0x00, 0xFF, 0x3F, 0x80, 0x1F, 0xDF, 0xC0, 0x07, 0xF7, 0xF0, 0x01, 0xFD, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x03, 0xFB, 0xF8, 0x00, 0xFE, 0xFE, 0x00, 0x3F, 0xBF, 0x80, 0x1F, 0xCF, 0xF0, 0x0F, 0xF3, 0xFC, 0x07, 0xF8, 0x7F, 0x83, 0xFC, 0x1F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0x80, 0x0F, 0xFF, 0x80, 0x00, 0x7F, 0x00, 0x00, 0x01, 0xFC, 0x3F, 0x00, 0x0F, 0xCF, 0xFE, 0x00, 0x7E, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0x01, 0xFF, 0x87, 0xF8, 0x0F, 0xF0, 0x1F, 0xE0, 0xFF, 0x00, 0xFF, 0x07, 0xF0, 0x03, 0xF8, 0x3F, 0x80, 0x1F, 0xC1, 0xF8, 0x00, 0xFE, 0x0F, 0xC0, 0x07, 0xF0, 0xFE, 0x00, 0x3F, 0x87, 0xF0, 0x01, 0xFC, 0x3F, 0x00, 0x1F, 0xC1, 0xF8, 0x00, 0xFE, 0x1F, 0xC0, 0x07, 0xF0, 0xFE, 0x00, 0x7F, 0x07, 0xF8, 0x07, 0xF8, 0x3F, 0xC0, 0x7F, 0x81, 0xFF, 0x87, 0xF8, 0x1F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFC, 0x07, 0xF7, 0xFF, 0xC0, 0x3F, 0x1F, 0xF8, 0x01, 0xF8, 0x7F, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x87, 0xF0, 0x0F, 0xFE, 0x7F, 0x01, 0xFF, 0xF7, 0xE0, 0x3F, 0xFF, 0x7E, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0x07, 0xFE, 0x1F, 0xE0, 0x3F, 0xE3, 0xFC, 0x03, 0xFC, 0x3F, 0x80, 0x1F, 0xC7, 0xF0, 0x01, 0xFC, 0x7F, 0x00, 0x1F, 0xC7, 0xF0, 0x01, 0xF8, 0xFE, 0x00, 0x1F, 0x8F, 0xE0, 0x03, 0xF8, 0xFE, 0x00, 0x3F, 0x8F, 0xE0, 0x03, 0xF8, 0xFE, 0x00, 0x7F, 0x0F, 0xE0, 0x07, 0xF0, 0xFE, 0x00, 0xFF, 0x0F, 0xF0, 0x1F, 0xF0, 0x7F, 0x87, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0x7E, 0x03, 0xFF, 0xEF, 0xE0, 0x1F, 0xFC, 0xFE, 0x00, 0x7F, 0x0F, 0xC0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0xF0, 0x7F, 0x3F, 0x07, 0xE7, 0xE0, 0x7E, 0xFE, 0x0F, 0xFF, 0xE0, 0xFF, 0xFE, 0x0F, 0xFC, 0x00, 0xFF, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xF8, 0x00, 0x1F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xFC, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0x0F, 0xE0, 0xFF, 0x1F, 0xC0, 0x7F, 0x1F, 0xC0, 0x7F, 0x1F, 0xE0, 0x00, 0x1F, 0xFC, 0x00, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xF8, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFE, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFE, 0xFC, 0x00, 0xFE, 0xFE, 0x00, 0xFE, 0xFF, 0x03, 0xFC, 0x7F, 0xFF, 0xF8, 0x7F, 0xFF, 0xF8, 0x3F, 0xFF, 0xE0, 0x1F, 0xFF, 0xC0, 0x03, 0xFE, 0x00, 0x03, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xE0, 0x3F, 0x80, 0xFE, 0x1F, 0xFF, 0x7F, 0xFD, 0xFF, 0xFF, 0xFF, 0xC7, 0xF0, 0x1F, 0xC0, 0x7E, 0x01, 0xF8, 0x0F, 0xE0, 0x3F, 0x80, 0xFE, 0x03, 0xF0, 0x0F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xE0, 0x1F, 0x80, 0xFE, 0x03, 0xF8, 0x0F, 0xE0, 0x3F, 0xF0, 0xFF, 0xC3, 0xFF, 0x07, 0xFC, 0x0F, 0xE0, 0x0F, 0xC0, 0x0F, 0xE1, 0xF8, 0x01, 0xFC, 0x7F, 0x00, 0x3F, 0x0F, 0xE0, 0x0F, 0xE1, 0xFC, 0x01, 0xFC, 0x3F, 0x00, 0x3F, 0x87, 0xE0, 0x07, 0xE1, 0xFC, 0x00, 0xFC, 0x3F, 0x80, 0x3F, 0x87, 0xF0, 0x07, 0xF0, 0xFC, 0x00, 0xFE, 0x1F, 0x80, 0x1F, 0x87, 0xF0, 0x03, 0xF0, 0xFE, 0x00, 0xFE, 0x1F, 0x80, 0x1F, 0xC3, 0xF0, 0x03, 0xF0, 0xFE, 0x00, 0x7E, 0x1F, 0xC0, 0x1F, 0xC3, 0xF8, 0x07, 0xF8, 0x7F, 0x01, 0xFF, 0x0F, 0xF0, 0x7F, 0xC1, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0x03, 0xFF, 0xEF, 0xE0, 0x3F, 0xF9, 0xFC, 0x01, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x7F, 0x7F, 0x00, 0x3F, 0xBF, 0x80, 0x3F, 0x8F, 0xC0, 0x1F, 0xC7, 0xE0, 0x1F, 0xC3, 0xF0, 0x0F, 0xC1, 0xFC, 0x0F, 0xE0, 0xFE, 0x07, 0xE0, 0x7F, 0x07, 0xF0, 0x3F, 0x83, 0xF0, 0x0F, 0xC3, 0xF8, 0x07, 0xE1, 0xF8, 0x03, 0xF1, 0xFC, 0x01, 0xF8, 0xFC, 0x00, 0xFC, 0xFC, 0x00, 0x7E, 0x7E, 0x00, 0x3F, 0x7E, 0x00, 0x0F, 0xBF, 0x00, 0x07, 0xFF, 0x00, 0x03, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0x00, 0x7F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0xFE, 0x03, 0xF8, 0x0F, 0xFF, 0xC0, 0x7F, 0x01, 0xFF, 0xF8, 0x1F, 0xE0, 0x3F, 0x7F, 0x03, 0xFC, 0x0F, 0xEF, 0xE0, 0xFF, 0x81, 0xF9, 0xFC, 0x1F, 0xF0, 0x7F, 0x3F, 0x83, 0xFE, 0x0F, 0xC3, 0xF0, 0xFF, 0xC3, 0xF8, 0x7E, 0x1E, 0xF8, 0x7E, 0x0F, 0xC7, 0xDF, 0x1F, 0xC1, 0xF8, 0xFB, 0xE3, 0xF0, 0x3F, 0x1E, 0x7C, 0x7E, 0x07, 0xE7, 0xCF, 0x9F, 0x80, 0xFC, 0xF1, 0xF3, 0xF0, 0x1F, 0xBE, 0x3E, 0xFC, 0x03, 0xF7, 0x87, 0xDF, 0x80, 0x7E, 0xF0, 0xFF, 0xE0, 0x0F, 0xFE, 0x1F, 0xFC, 0x01, 0xFF, 0x83, 0xFF, 0x00, 0x3F, 0xF0, 0x7F, 0xE0, 0x07, 0xFC, 0x0F, 0xF8, 0x00, 0x7F, 0x81, 0xFF, 0x00, 0x0F, 0xF0, 0x3F, 0xC0, 0x01, 0xFC, 0x07, 0xF8, 0x00, 0x3F, 0x80, 0xFE, 0x00, 0x00, 0x03, 0xFC, 0x07, 0xF8, 0x1F, 0xE0, 0x7F, 0x80, 0x7F, 0x03, 0xF8, 0x03, 0xF8, 0x3F, 0x80, 0x1F, 0xE3, 0xF8, 0x00, 0x7F, 0x3F, 0x80, 0x03, 0xF9, 0xFC, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x7F, 0xFC, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x1F, 0xFE, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x1F, 0xDF, 0xC0, 0x01, 0xFC, 0xFE, 0x00, 0x1F, 0xE7, 0xF8, 0x00, 0xFE, 0x1F, 0xC0, 0x0F, 0xE0, 0xFE, 0x00, 0xFF, 0x07, 0xF8, 0x0F, 0xF0, 0x1F, 0xC0, 0xFF, 0x00, 0xFF, 0x00, 0x0F, 0xE0, 0x03, 0xF0, 0x7F, 0x00, 0x3F, 0x83, 0xF8, 0x01, 0xF8, 0x1F, 0xC0, 0x1F, 0xC0, 0xFE, 0x00, 0xFC, 0x03, 0xF8, 0x0F, 0xE0, 0x1F, 0xC0, 0x7E, 0x00, 0xFE, 0x07, 0xE0, 0x07, 0xF0, 0x3F, 0x00, 0x3F, 0x83, 0xF0, 0x01, 0xFC, 0x1F, 0x80, 0x0F, 0xE1, 0xF8, 0x00, 0x3F, 0x0F, 0xC0, 0x01, 0xF8, 0xFC, 0x00, 0x0F, 0xC7, 0xC0, 0x00, 0x7F, 0x7E, 0x00, 0x03, 0xFB, 0xE0, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x0F, 0xC0, 0x0F, 0xF0, 0x07, 0xFC, 0x01, 0xFE, 0x00, 0xFF, 0x80, 0x3E, 0x00, 0x0F, 0x80, 0x07, 0xE0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x07, 0xE0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x3F, 0x00, 0x7F, 0x80, 0x1F, 0x80, 0x07, 0xE0, 0x03, 0xFC, 0x00, 0x3F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xF8, 0x01, 0xFE, 0x00, 0x7F, 0x80, 0x0F, 0xE0, 0x01, 0xF8, 0x00, 0x00, 0x78, 0x03, 0xC0, 0x1C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x70, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x70, 0x07, 0x80, 0x3C, 0x00, 0x00, 0x7E, 0x00, 0x1F, 0xC0, 0x07, 0xF0, 0x01, 0xFE, 0x00, 0x7F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xF0, 0x00, 0xFF, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x07, 0xF8, 0x03, 0xF0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x1F, 0x80, 0x07, 0xC0, 0x01, 0xF0, 0x07, 0xFC, 0x01, 0xFE, 0x00, 0xFF, 0x80, 0x3F, 0xC0, 0x0F, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0xFF, 0x80, 0x07, 0xFF, 0x03, 0xDF, 0xFE, 0x0F, 0xF0, 0x7F, 0xFB, 0x80, 0xFF, 0xE0, 0x01, 0xFF, 0x00, 0x03, 0xF0}; const GFXglyph FreeSansBoldOblique24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 13, 0, 1}, // 0x20 ' ' {0, 14, 34, 16, 5, -33}, // 0x21 '!' {60, 18, 12, 22, 8, -33}, // 0x22 '"' {87, 29, 33, 26, 2, -31}, // 0x23 '#' {207, 26, 42, 26, 3, -35}, // 0x24 '$' {344, 36, 34, 42, 6, -32}, // 0x25 '%' {497, 29, 35, 34, 4, -33}, // 0x26 '&' {624, 7, 12, 11, 8, -33}, // 0x27 ''' {635, 17, 44, 16, 4, -33}, // 0x28 '(' {729, 17, 44, 16, 0, -34}, // 0x29 ')' {823, 15, 15, 18, 7, -33}, // 0x2A '*' {852, 24, 22, 27, 4, -21}, // 0x2B '+' {918, 10, 15, 13, 1, -6}, // 0x2C ',' {937, 14, 6, 16, 3, -15}, // 0x2D '-' {948, 8, 7, 13, 3, -6}, // 0x2E '.' {955, 20, 34, 13, 0, -32}, // 0x2F '/' {1040, 25, 35, 26, 4, -33}, // 0x30 '0' {1150, 17, 33, 26, 8, -32}, // 0x31 '1' {1221, 29, 34, 26, 1, -33}, // 0x32 '2' {1345, 26, 35, 26, 3, -33}, // 0x33 '3' {1459, 25, 32, 26, 3, -31}, // 0x34 '4' {1559, 27, 34, 26, 3, -32}, // 0x35 '5' {1674, 25, 35, 26, 4, -33}, // 0x36 '6' {1784, 26, 33, 26, 6, -32}, // 0x37 '7' {1892, 26, 35, 26, 3, -33}, // 0x38 '8' {2006, 25, 35, 26, 4, -33}, // 0x39 '9' {2116, 12, 25, 16, 5, -24}, // 0x3A ':' {2154, 14, 33, 16, 3, -24}, // 0x3B ';' {2212, 26, 23, 27, 4, -22}, // 0x3C '<' {2287, 26, 18, 27, 3, -19}, // 0x3D '=' {2346, 26, 23, 27, 1, -21}, // 0x3E '>' {2421, 24, 35, 29, 8, -34}, // 0x3F '?' {2526, 45, 41, 46, 3, -34}, // 0x40 '@' {2757, 32, 34, 34, 1, -33}, // 0x41 'A' {2893, 32, 34, 34, 4, -33}, // 0x42 'B' {3029, 32, 36, 34, 5, -34}, // 0x43 'C' {3173, 32, 34, 34, 4, -33}, // 0x44 'D' {3309, 32, 34, 31, 4, -33}, // 0x45 'E' {3445, 32, 34, 29, 3, -33}, // 0x46 'F' {3581, 33, 36, 37, 5, -34}, // 0x47 'G' {3730, 35, 34, 34, 3, -33}, // 0x48 'H' {3879, 14, 34, 13, 3, -33}, // 0x49 'I' {3939, 27, 35, 26, 3, -33}, // 0x4A 'J' {4058, 37, 34, 34, 3, -33}, // 0x4B 'K' {4216, 24, 34, 29, 4, -33}, // 0x4C 'L' {4318, 41, 34, 39, 3, -33}, // 0x4D 'M' {4493, 35, 34, 34, 3, -33}, // 0x4E 'N' {4642, 34, 36, 37, 5, -34}, // 0x4F 'O' {4795, 31, 34, 31, 4, -33}, // 0x50 'P' {4927, 34, 37, 37, 5, -34}, // 0x51 'Q' {5085, 33, 34, 34, 4, -33}, // 0x52 'R' {5226, 30, 36, 31, 4, -34}, // 0x53 'S' {5361, 28, 34, 29, 7, -33}, // 0x54 'T' {5480, 32, 35, 34, 6, -33}, // 0x55 'U' {5620, 30, 34, 31, 8, -33}, // 0x56 'V' {5748, 43, 34, 44, 8, -33}, // 0x57 'W' {5931, 37, 34, 31, 1, -33}, // 0x58 'X' {6089, 29, 34, 31, 9, -33}, // 0x59 'Y' {6213, 33, 34, 29, 1, -33}, // 0x5A 'Z' {6354, 21, 43, 16, 1, -33}, // 0x5B '[' {6467, 7, 36, 13, 6, -34}, // 0x5C '\' {6499, 21, 43, 16, -1, -33}, // 0x5D ']' {6612, 21, 20, 27, 6, -32}, // 0x5E '^' {6665, 29, 4, 26, -3, 6}, // 0x5F '_' {6680, 7, 7, 16, 8, -35}, // 0x60 '`' {6687, 25, 26, 26, 2, -24}, // 0x61 'a' {6769, 27, 35, 29, 3, -33}, // 0x62 'b' {6888, 25, 26, 26, 4, -24}, // 0x63 'c' {6970, 29, 35, 29, 4, -33}, // 0x64 'd' {7097, 25, 26, 26, 3, -24}, // 0x65 'e' {7179, 18, 34, 16, 4, -33}, // 0x66 'f' {7256, 29, 35, 29, 2, -24}, // 0x67 'g' {7383, 27, 34, 29, 3, -33}, // 0x68 'h' {7498, 14, 34, 13, 3, -33}, // 0x69 'i' {7558, 19, 44, 13, -2, -33}, // 0x6A 'j' {7663, 28, 34, 26, 3, -33}, // 0x6B 'k' {7782, 14, 34, 13, 3, -33}, // 0x6C 'l' {7842, 40, 25, 42, 3, -24}, // 0x6D 'm' {7967, 27, 25, 29, 3, -24}, // 0x6E 'n' {8052, 26, 26, 29, 4, -24}, // 0x6F 'o' {8137, 29, 35, 29, 1, -24}, // 0x70 'p' {8264, 28, 35, 29, 3, -24}, // 0x71 'q' {8387, 20, 25, 18, 3, -24}, // 0x72 'r' {8450, 24, 26, 26, 3, -24}, // 0x73 's' {8528, 14, 32, 16, 5, -30}, // 0x74 't' {8584, 27, 26, 29, 4, -24}, // 0x75 'u' {8672, 25, 25, 26, 6, -24}, // 0x76 'v' {8751, 35, 25, 37, 6, -24}, // 0x77 'w' {8861, 29, 25, 26, 1, -24}, // 0x78 'x' {8952, 29, 35, 26, 2, -24}, // 0x79 'y' {9079, 26, 25, 23, 1, -24}, // 0x7A 'z' {9161, 18, 43, 18, 4, -33}, // 0x7B '{' {9258, 13, 43, 13, 3, -33}, // 0x7C '|' {9328, 18, 43, 18, 2, -33}, // 0x7D '}' {9425, 22, 8, 27, 5, -14}}; // 0x7E '~' const GFXfont FreeSansBoldOblique24pt7b PROGMEM = { (uint8_t *)FreeSansBoldOblique24pt7bBitmaps, (GFXglyph *)FreeSansBoldOblique24pt7bGlyphs, 0x20, 0x7E, 56}; // Approx. 10119 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansBoldOblique9pt7b.h ================================================ const uint8_t FreeSansBoldOblique9pt7bBitmaps[] PROGMEM = { 0x21, 0x8E, 0x73, 0x18, 0xC6, 0x21, 0x19, 0xCE, 0x00, 0xEF, 0xDF, 0xBE, 0x68, 0x80, 0x06, 0xC1, 0x99, 0xFF, 0xBF, 0xF1, 0xB0, 0x66, 0x0C, 0xC7, 0xFC, 0xFF, 0x8C, 0x83, 0x30, 0x64, 0x00, 0x02, 0x00, 0xF0, 0x7F, 0x1D, 0x73, 0xEE, 0x78, 0x0F, 0x00, 0xF8, 0x0F, 0xC1, 0xBB, 0xA7, 0x74, 0xEF, 0xF8, 0xFE, 0x04, 0x00, 0x80, 0x3C, 0x11, 0xF8, 0x8E, 0x66, 0x31, 0x90, 0xCE, 0x83, 0xF4, 0x07, 0xB0, 0x00, 0x9E, 0x04, 0xFC, 0x26, 0x31, 0x98, 0xC4, 0x7E, 0x20, 0xF0, 0x07, 0x80, 0xFC, 0x1D, 0xC1, 0xDC, 0x1F, 0x80, 0xE0, 0x3E, 0x37, 0x77, 0xE3, 0xEE, 0x3C, 0xE3, 0xCF, 0xFE, 0x3C, 0xE0, 0xFF, 0xE8, 0x06, 0x06, 0x0C, 0x18, 0x38, 0x30, 0x70, 0x60, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x70, 0x30, 0x0C, 0x0E, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x0E, 0x0C, 0x1C, 0x18, 0x30, 0x60, 0x60, 0x32, 0xBF, 0x9C, 0xD2, 0x40, 0x0C, 0x06, 0x07, 0x1F, 0xFF, 0xF0, 0xC0, 0xE0, 0x60, 0x77, 0x72, 0x6C, 0xFF, 0xC0, 0xFC, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x0F, 0x07, 0xE3, 0x9D, 0xC7, 0x71, 0xDC, 0x7E, 0x1F, 0x8E, 0xE3, 0xB8, 0xEE, 0x73, 0xF8, 0x3C, 0x00, 0x04, 0x3B, 0xF7, 0xE1, 0xC3, 0x06, 0x1C, 0x38, 0x70, 0xC1, 0x87, 0x00, 0x0F, 0x87, 0xFC, 0xE3, 0xB8, 0x70, 0x0E, 0x03, 0x80, 0xF0, 0x38, 0x1E, 0x07, 0x01, 0xC0, 0x7F, 0xCF, 0xF8, 0x0F, 0xC7, 0xFC, 0xE3, 0xB8, 0x70, 0x1C, 0x0F, 0x03, 0xF0, 0x0E, 0x01, 0xDC, 0x3B, 0x8E, 0x7F, 0x83, 0xE0, 0x03, 0xC0, 0xE0, 0x58, 0x2E, 0x13, 0x8C, 0xE6, 0x33, 0xFE, 0xFF, 0x81, 0xC0, 0x60, 0x18, 0x0F, 0xE3, 0xFC, 0x60, 0x0C, 0x03, 0x78, 0x7F, 0x9C, 0x70, 0x0E, 0x01, 0xDC, 0x33, 0x8E, 0x7F, 0x83, 0xE0, 0x0F, 0x07, 0xE3, 0x9D, 0xC0, 0x7F, 0x1F, 0xEF, 0x3B, 0x8E, 0xE3, 0xB8, 0xCE, 0x71, 0xF8, 0x3C, 0x00, 0x7F, 0xDF, 0xF0, 0x18, 0x0C, 0x06, 0x03, 0x81, 0xC0, 0x60, 0x38, 0x0C, 0x07, 0x01, 0x80, 0x60, 0x00, 0x0F, 0x83, 0xFC, 0xE3, 0x9C, 0x73, 0x9C, 0x3F, 0x0F, 0xE3, 0x8E, 0xE1, 0xDC, 0x3B, 0x8E, 0x7F, 0xC3, 0xE0, 0x0F, 0x83, 0xF8, 0xE3, 0xB8, 0x77, 0x0E, 0xE1, 0xDC, 0x7B, 0xFE, 0x3D, 0xC0, 0x33, 0x8E, 0x7F, 0x87, 0xC0, 0x77, 0x00, 0x00, 0x0E, 0xE0, 0x39, 0xC0, 0x00, 0x01, 0xCE, 0x71, 0x19, 0x80, 0x00, 0x00, 0x70, 0xFD, 0xF8, 0x70, 0x3F, 0x03, 0xF8, 0x1E, 0x01, 0x80, 0x7F, 0xDF, 0xF0, 0x00, 0x00, 0xFF, 0xBF, 0xE0, 0x60, 0x1E, 0x07, 0xF0, 0x3F, 0x03, 0x87, 0xEF, 0xC3, 0x80, 0x00, 0x00, 0x1F, 0x1F, 0xFE, 0x1F, 0x87, 0x01, 0xC0, 0xE0, 0x70, 0x78, 0x3C, 0x0E, 0x00, 0x00, 0xE0, 0x38, 0x00, 0x00, 0xFC, 0x00, 0xFF, 0xC0, 0xF0, 0x78, 0x70, 0x07, 0x38, 0x01, 0xCC, 0x3F, 0x36, 0x31, 0x8D, 0x98, 0x63, 0xC4, 0x11, 0xF3, 0x0C, 0x6C, 0xC6, 0x73, 0x3E, 0xF8, 0xE7, 0x3C, 0x1E, 0x00, 0x03, 0xFE, 0x00, 0x3F, 0x00, 0x01, 0xE0, 0x0F, 0x00, 0xF8, 0x07, 0xC0, 0x6F, 0x03, 0x38, 0x31, 0xC3, 0x8E, 0x1F, 0xF1, 0xFF, 0x8C, 0x1E, 0xE0, 0x76, 0x03, 0x80, 0x1F, 0xF0, 0xFF, 0xC6, 0x0E, 0x70, 0x73, 0x87, 0x1F, 0xF0, 0xFF, 0x86, 0x0E, 0x70, 0x73, 0x83, 0x9C, 0x38, 0xFF, 0xC7, 0xF8, 0x00, 0x07, 0xE0, 0xFF, 0x8F, 0x1E, 0x70, 0x77, 0x00, 0x30, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x07, 0x03, 0xBC, 0x38, 0xFF, 0x83, 0xF0, 0x00, 0x1F, 0xE0, 0xFF, 0x86, 0x1E, 0x70, 0x73, 0x83, 0x9C, 0x1C, 0xC0, 0xE6, 0x07, 0x70, 0x73, 0x83, 0x9C, 0x38, 0xFF, 0x8F, 0xF0, 0x00, 0x1F, 0xF8, 0xFF, 0x86, 0x00, 0x70, 0x03, 0x80, 0x1F, 0xF0, 0xFF, 0x86, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x00, 0xFF, 0xC7, 0xFC, 0x00, 0x1F, 0xF1, 0xFF, 0x18, 0x03, 0x80, 0x38, 0x03, 0xFC, 0x3F, 0xC7, 0x00, 0x70, 0x07, 0x00, 0x70, 0x06, 0x00, 0xE0, 0x00, 0x07, 0xC1, 0xFE, 0x38, 0x77, 0x03, 0x70, 0x0E, 0x00, 0xE1, 0xEE, 0x1E, 0xE0, 0x6E, 0x0E, 0x70, 0xE7, 0xFC, 0x1F, 0x40, 0x1C, 0x1C, 0x60, 0x63, 0x83, 0x8E, 0x0E, 0x38, 0x38, 0xFF, 0xC3, 0xFF, 0x1C, 0x1C, 0x70, 0x71, 0xC1, 0xC6, 0x06, 0x18, 0x38, 0xE0, 0xE0, 0x39, 0xCE, 0x63, 0x39, 0xCE, 0x63, 0x39, 0xCE, 0x00, 0x00, 0xC0, 0x18, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x00, 0xE0, 0x1C, 0xE3, 0x9C, 0x73, 0x9C, 0x7F, 0x87, 0xC0, 0x1C, 0x3C, 0x71, 0xC1, 0x8E, 0x0E, 0x70, 0x3B, 0x80, 0xFC, 0x03, 0xF0, 0x0E, 0xE0, 0x73, 0x81, 0xC7, 0x07, 0x1C, 0x18, 0x38, 0xE0, 0xF0, 0x1C, 0x07, 0x01, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0xC0, 0x70, 0x1C, 0x07, 0x01, 0xFF, 0x7F, 0x80, 0x1E, 0x1F, 0x1E, 0x1E, 0x3E, 0x1E, 0x3E, 0x3E, 0x36, 0x3E, 0x36, 0x6E, 0x36, 0x6C, 0x76, 0xCC, 0x76, 0xDC, 0x67, 0x9C, 0x67, 0x98, 0xE7, 0x18, 0xE7, 0x18, 0x1C, 0x1C, 0x70, 0x63, 0xE1, 0x8F, 0x8E, 0x3E, 0x38, 0xDC, 0xC3, 0x33, 0x1C, 0xEC, 0x71, 0xF1, 0xC7, 0xC6, 0x1E, 0x18, 0x38, 0xE0, 0xE0, 0x07, 0xC0, 0xFF, 0x8E, 0x1E, 0xE0, 0x77, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x77, 0x03, 0xBC, 0x38, 0xFF, 0x81, 0xF0, 0x00, 0x1F, 0xF0, 0xFF, 0xC6, 0x0E, 0x70, 0x73, 0x83, 0x9C, 0x38, 0xFF, 0x87, 0xF8, 0x70, 0x03, 0x80, 0x1C, 0x00, 0xC0, 0x0E, 0x00, 0x00, 0x07, 0xC0, 0xFF, 0x8F, 0x1C, 0xE0, 0x77, 0x03, 0xB0, 0x1F, 0x80, 0xFC, 0x06, 0xE1, 0x77, 0x1F, 0x3C, 0x78, 0xFF, 0xC1, 0xF6, 0x00, 0x20, 0x1F, 0xF0, 0xFF, 0xC6, 0x0E, 0x70, 0x73, 0x83, 0x9C, 0x38, 0xFF, 0x87, 0xFC, 0x70, 0x73, 0x83, 0x9C, 0x38, 0xC1, 0xC6, 0x0F, 0x00, 0x07, 0xE0, 0xFF, 0xC7, 0x0E, 0x70, 0x73, 0x80, 0x1F, 0x80, 0x7F, 0x80, 0x7E, 0x00, 0x77, 0x03, 0xBC, 0x38, 0xFF, 0xC3, 0xF8, 0x00, 0xFF, 0xDF, 0xF8, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x06, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xC0, 0x18, 0x07, 0x00, 0x38, 0x31, 0xC1, 0x8C, 0x1C, 0xE0, 0xE7, 0x07, 0x38, 0x31, 0xC3, 0x9C, 0x1C, 0xE0, 0xE7, 0x06, 0x38, 0x70, 0xFF, 0x03, 0xE0, 0x00, 0xE0, 0xFC, 0x1D, 0x87, 0x30, 0xC6, 0x38, 0xC6, 0x19, 0xC3, 0xB0, 0x7E, 0x0F, 0x80, 0xF0, 0x1C, 0x03, 0x00, 0xE1, 0xC3, 0xF1, 0xE3, 0xB8, 0xF1, 0xDC, 0x78, 0xCE, 0x6C, 0xE7, 0x36, 0x63, 0xB3, 0x70, 0xD9, 0xB0, 0x7C, 0xD8, 0x3C, 0x78, 0x1E, 0x3C, 0x0E, 0x1C, 0x07, 0x0E, 0x00, 0x0E, 0x1C, 0x38, 0xE0, 0xE7, 0x01, 0xD8, 0x07, 0xE0, 0x0F, 0x00, 0x38, 0x01, 0xE0, 0x0F, 0xC0, 0x77, 0x01, 0x8E, 0x0E, 0x38, 0x70, 0xF0, 0xE0, 0xEE, 0x39, 0xC7, 0x39, 0xC3, 0x70, 0x7C, 0x0F, 0x80, 0xE0, 0x1C, 0x03, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x3F, 0xF3, 0xFF, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x3C, 0x07, 0x80, 0x70, 0x0F, 0xFC, 0xFF, 0xC0, 0x0F, 0x0F, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, 0x78, 0x78, 0x12, 0x4C, 0x92, 0x49, 0x26, 0xD9, 0x20, 0x1E, 0x1E, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x38, 0x30, 0xF0, 0xF0, 0x06, 0x0E, 0x0E, 0x1B, 0x33, 0x33, 0x63, 0x63, 0xFF, 0xE0, 0xCC, 0x1F, 0x8F, 0xF3, 0x1C, 0x06, 0x1F, 0x9F, 0xEE, 0x3B, 0x9C, 0xFF, 0x1D, 0xC0, 0x18, 0x03, 0x00, 0xE0, 0x1D, 0xC3, 0xFC, 0x71, 0xDC, 0x3B, 0x87, 0x70, 0xEE, 0x39, 0xCF, 0x7F, 0xCF, 0xE0, 0x0F, 0x0F, 0xF7, 0x1D, 0xC0, 0xE0, 0x38, 0x0E, 0x03, 0x8E, 0x7F, 0x0F, 0x80, 0x00, 0x60, 0x06, 0x00, 0x61, 0xEE, 0x3F, 0xE7, 0x9C, 0x71, 0xCE, 0x1C, 0xE1, 0xCE, 0x1C, 0xE3, 0x87, 0xF8, 0x7F, 0x80, 0x1F, 0x0F, 0xE7, 0x1D, 0xC7, 0xFF, 0xFF, 0xFE, 0x03, 0x8E, 0x7F, 0x0F, 0x80, 0x1C, 0xF3, 0x3F, 0xFD, 0xC7, 0x18, 0x63, 0x8E, 0x30, 0xC0, 0x0F, 0x71, 0xFE, 0x3C, 0xE3, 0x8E, 0x70, 0xE7, 0x0E, 0x70, 0xC7, 0x1C, 0x3F, 0xC3, 0xFC, 0x01, 0xCE, 0x38, 0x7F, 0x03, 0xE0, 0x18, 0x03, 0x00, 0xE0, 0x1D, 0xE3, 0xFE, 0x71, 0xCC, 0x3B, 0x86, 0x70, 0xCC, 0x39, 0x87, 0x30, 0xEE, 0x18, 0x39, 0xC0, 0x63, 0x39, 0xCE, 0x63, 0x39, 0xCE, 0x00, 0x06, 0x06, 0x00, 0x0E, 0x0E, 0x0C, 0x0C, 0x1C, 0x1C, 0x1C, 0x18, 0x18, 0x38, 0x38, 0x30, 0x70, 0xE0, 0x18, 0x03, 0x00, 0xE0, 0x1C, 0xE3, 0x38, 0x6E, 0x1F, 0x83, 0xF0, 0x7E, 0x0E, 0xE1, 0x9C, 0x73, 0x8E, 0x38, 0x39, 0xCE, 0x63, 0x39, 0xCE, 0x63, 0x39, 0xCE, 0x00, 0x3B, 0x9E, 0x3F, 0xFF, 0x39, 0xC7, 0x71, 0xC6, 0x71, 0x86, 0x71, 0x8E, 0x63, 0x8E, 0x63, 0x8C, 0xE3, 0x8C, 0xE3, 0x1C, 0x3B, 0xC7, 0xFC, 0xE3, 0xB8, 0x77, 0x0C, 0xE1, 0x98, 0x73, 0x0E, 0xE1, 0xDC, 0x30, 0x0F, 0x87, 0xF9, 0xE7, 0xB8, 0x7E, 0x0F, 0xC1, 0xF8, 0x77, 0x9E, 0x7F, 0x87, 0xC0, 0x1D, 0xE1, 0xFE, 0x1C, 0x73, 0x87, 0x38, 0x73, 0x87, 0x38, 0xE3, 0x8E, 0x7F, 0xC7, 0xF8, 0x60, 0x06, 0x00, 0x60, 0x0E, 0x00, 0x1E, 0xE7, 0xFD, 0xE7, 0x38, 0xEE, 0x1D, 0xC3, 0xB8, 0x77, 0x1C, 0x7F, 0x8F, 0xF0, 0x0E, 0x01, 0x80, 0x30, 0x06, 0x00, 0x3B, 0x36, 0x38, 0x70, 0x70, 0x70, 0x60, 0x60, 0xE0, 0xE0, 0x3E, 0x3F, 0xF8, 0xFC, 0x0F, 0xC3, 0xF8, 0x3D, 0x8E, 0xFE, 0x3E, 0x00, 0x38, 0xCF, 0xFE, 0x71, 0x86, 0x38, 0xE3, 0x8F, 0x3C, 0x31, 0xDC, 0x77, 0x19, 0x86, 0x63, 0xB8, 0xEE, 0x33, 0x9C, 0xFF, 0x1F, 0xC0, 0xE1, 0x98, 0xE6, 0x31, 0x9C, 0x66, 0x1B, 0x86, 0xC1, 0xF0, 0x78, 0x0E, 0x00, 0xE7, 0x1B, 0x9C, 0xEE, 0x73, 0x3B, 0xDC, 0xEB, 0x63, 0xAD, 0x8F, 0xBC, 0x1C, 0xF0, 0x73, 0xC1, 0xCE, 0x00, 0x1C, 0xE1, 0xCC, 0x0D, 0x80, 0xF8, 0x0F, 0x00, 0xF0, 0x1F, 0x03, 0xB8, 0x33, 0x87, 0x38, 0x70, 0xCE, 0x38, 0xC6, 0x19, 0xC3, 0x30, 0x66, 0x0F, 0x81, 0xF0, 0x3C, 0x03, 0x80, 0x60, 0x18, 0x0F, 0x01, 0xC0, 0x00, 0x1F, 0xCF, 0xF0, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0x7F, 0xBF, 0xE0, 0x0E, 0x38, 0x61, 0x83, 0x06, 0x0C, 0x78, 0xF0, 0xC1, 0x83, 0x0E, 0x1C, 0x38, 0x78, 0x70, 0x18, 0xC4, 0x21, 0x18, 0xC4, 0x21, 0x18, 0xC4, 0x23, 0x18, 0x80, 0x1C, 0x3C, 0x38, 0x70, 0xE1, 0x83, 0x06, 0x1E, 0x5C, 0x60, 0xC1, 0x83, 0x0C, 0x38, 0xE0, 0x71, 0x8E}; const GFXglyph FreeSansBoldOblique9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 5, 0, 1}, // 0x20 ' ' {0, 5, 13, 6, 2, -12}, // 0x21 '!' {9, 7, 5, 9, 3, -12}, // 0x22 '"' {14, 11, 12, 10, 1, -11}, // 0x23 '#' {31, 11, 16, 10, 1, -13}, // 0x24 '$' {53, 14, 13, 16, 2, -12}, // 0x25 '%' {76, 12, 13, 13, 2, -12}, // 0x26 '&' {96, 3, 5, 4, 3, -12}, // 0x27 ''' {98, 8, 17, 6, 2, -12}, // 0x28 '(' {115, 8, 17, 6, -2, -13}, // 0x29 ')' {132, 6, 6, 7, 3, -12}, // 0x2A '*' {137, 9, 8, 11, 2, -7}, // 0x2B '+' {146, 4, 6, 5, 0, -2}, // 0x2C ',' {149, 5, 2, 6, 1, -5}, // 0x2D '-' {151, 3, 2, 5, 1, -1}, // 0x2E '.' {152, 8, 13, 5, 0, -12}, // 0x2F '/' {165, 10, 13, 10, 1, -12}, // 0x30 '0' {182, 7, 13, 10, 3, -12}, // 0x31 '1' {194, 11, 13, 10, 1, -12}, // 0x32 '2' {212, 11, 13, 10, 1, -12}, // 0x33 '3' {230, 10, 12, 10, 1, -11}, // 0x34 '4' {245, 11, 13, 10, 1, -12}, // 0x35 '5' {263, 10, 13, 10, 2, -12}, // 0x36 '6' {280, 10, 13, 10, 2, -12}, // 0x37 '7' {297, 11, 13, 10, 1, -12}, // 0x38 '8' {315, 11, 13, 10, 1, -12}, // 0x39 '9' {333, 4, 9, 6, 2, -8}, // 0x3A ':' {338, 5, 12, 6, 1, -8}, // 0x3B ';' {346, 10, 9, 11, 1, -8}, // 0x3C '<' {358, 10, 6, 11, 1, -6}, // 0x3D '=' {366, 10, 9, 11, 1, -7}, // 0x3E '>' {378, 10, 13, 11, 3, -12}, // 0x3F '?' {395, 18, 16, 18, 1, -13}, // 0x40 '@' {431, 13, 13, 13, 0, -12}, // 0x41 'A' {453, 13, 13, 13, 1, -12}, // 0x42 'B' {475, 13, 13, 13, 2, -12}, // 0x43 'C' {497, 13, 13, 13, 1, -12}, // 0x44 'D' {519, 13, 13, 12, 1, -12}, // 0x45 'E' {541, 12, 13, 11, 1, -12}, // 0x46 'F' {561, 12, 13, 14, 2, -12}, // 0x47 'G' {581, 14, 13, 13, 1, -12}, // 0x48 'H' {604, 5, 13, 5, 1, -12}, // 0x49 'I' {613, 11, 13, 10, 1, -12}, // 0x4A 'J' {631, 14, 13, 13, 1, -12}, // 0x4B 'K' {654, 10, 13, 11, 1, -12}, // 0x4C 'L' {671, 16, 13, 15, 1, -12}, // 0x4D 'M' {697, 14, 13, 13, 1, -12}, // 0x4E 'N' {720, 13, 13, 14, 2, -12}, // 0x4F 'O' {742, 13, 13, 12, 1, -12}, // 0x50 'P' {764, 13, 14, 14, 2, -12}, // 0x51 'Q' {787, 13, 13, 13, 1, -12}, // 0x52 'R' {809, 13, 13, 12, 1, -12}, // 0x53 'S' {831, 11, 13, 11, 3, -12}, // 0x54 'T' {849, 13, 13, 13, 2, -12}, // 0x55 'U' {871, 11, 13, 12, 3, -12}, // 0x56 'V' {889, 17, 13, 17, 3, -12}, // 0x57 'W' {917, 14, 13, 12, 0, -12}, // 0x58 'X' {940, 11, 13, 12, 3, -12}, // 0x59 'Y' {958, 12, 13, 11, 1, -12}, // 0x5A 'Z' {978, 8, 17, 6, 0, -12}, // 0x5B '[' {995, 3, 17, 5, 2, -16}, // 0x5C '\' {1002, 8, 17, 6, 0, -13}, // 0x5D ']' {1019, 8, 8, 11, 2, -12}, // 0x5E '^' {1027, 11, 1, 10, -1, 4}, // 0x5F '_' {1029, 3, 2, 6, 3, -12}, // 0x60 '`' {1030, 10, 10, 10, 1, -9}, // 0x61 'a' {1043, 11, 13, 11, 1, -12}, // 0x62 'b' {1061, 10, 10, 10, 1, -9}, // 0x63 'c' {1074, 12, 13, 11, 1, -12}, // 0x64 'd' {1094, 10, 10, 10, 1, -9}, // 0x65 'e' {1107, 6, 13, 6, 2, -12}, // 0x66 'f' {1117, 12, 14, 11, 0, -9}, // 0x67 'g' {1138, 11, 13, 11, 1, -12}, // 0x68 'h' {1156, 5, 13, 5, 1, -12}, // 0x69 'i' {1165, 8, 17, 5, -1, -12}, // 0x6A 'j' {1182, 11, 13, 10, 1, -12}, // 0x6B 'k' {1200, 5, 13, 5, 1, -12}, // 0x6C 'l' {1209, 16, 10, 16, 1, -9}, // 0x6D 'm' {1229, 11, 10, 11, 1, -9}, // 0x6E 'n' {1243, 11, 10, 11, 1, -9}, // 0x6F 'o' {1257, 12, 14, 11, 0, -9}, // 0x70 'p' {1278, 11, 14, 11, 1, -9}, // 0x71 'q' {1298, 8, 10, 7, 1, -9}, // 0x72 'r' {1308, 9, 10, 10, 2, -9}, // 0x73 's' {1320, 6, 12, 6, 2, -11}, // 0x74 't' {1329, 10, 10, 11, 2, -9}, // 0x75 'u' {1342, 10, 10, 10, 2, -9}, // 0x76 'v' {1355, 14, 10, 14, 2, -9}, // 0x77 'w' {1373, 12, 10, 10, 0, -9}, // 0x78 'x' {1388, 11, 14, 10, 1, -9}, // 0x79 'y' {1408, 10, 10, 9, 0, -9}, // 0x7A 'z' {1421, 7, 17, 7, 2, -12}, // 0x7B '{' {1436, 5, 17, 5, 1, -12}, // 0x7C '|' {1447, 7, 17, 7, 0, -13}, // 0x7D '}' {1462, 8, 2, 11, 2, -4}}; // 0x7E '~' const GFXfont FreeSansBoldOblique9pt7b PROGMEM = { (uint8_t *)FreeSansBoldOblique9pt7bBitmaps, (GFXglyph *)FreeSansBoldOblique9pt7bGlyphs, 0x20, 0x7E, 22}; // Approx. 2136 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansOblique12pt7b.h ================================================ const uint8_t FreeSansOblique12pt7bBitmaps[] PROGMEM = { 0x0C, 0x61, 0x86, 0x18, 0x63, 0x0C, 0x30, 0xC2, 0x18, 0x61, 0x00, 0x00, 0xC3, 0x00, 0xCF, 0x3C, 0xE2, 0x8A, 0x20, 0x01, 0x8C, 0x03, 0x18, 0x06, 0x60, 0x18, 0xC0, 0x31, 0x83, 0xFF, 0x87, 0xFF, 0x03, 0x18, 0x0C, 0x60, 0x18, 0xC0, 0x23, 0x03, 0xFF, 0x8F, 0xFF, 0x02, 0x30, 0x0C, 0x60, 0x18, 0x80, 0x63, 0x00, 0xC6, 0x00, 0x00, 0x80, 0x3F, 0x03, 0xFC, 0x32, 0x73, 0x91, 0x99, 0x8C, 0xCC, 0x06, 0x60, 0x3E, 0x00, 0x7E, 0x01, 0xFC, 0x0C, 0xEC, 0x43, 0x62, 0x1B, 0x11, 0x9D, 0x9C, 0x7F, 0xC1, 0xF8, 0x02, 0x00, 0x10, 0x01, 0x80, 0x00, 0x00, 0x01, 0x83, 0xC0, 0x60, 0xFC, 0x18, 0x30, 0xC2, 0x0C, 0x18, 0xC1, 0x83, 0x30, 0x38, 0xCC, 0x03, 0xF1, 0x00, 0x3C, 0x40, 0x00, 0x18, 0xF0, 0x06, 0x3F, 0x01, 0x8C, 0x30, 0x23, 0x06, 0x0C, 0x60, 0xC3, 0x0E, 0x30, 0xC0, 0xFC, 0x10, 0x0F, 0x00, 0x01, 0xE0, 0x3F, 0x81, 0x8C, 0x18, 0x60, 0xC3, 0x06, 0x30, 0x1F, 0x00, 0xE0, 0x1F, 0x01, 0xDC, 0xD8, 0x6D, 0x81, 0xEC, 0x0E, 0x60, 0x73, 0x87, 0xCF, 0xE6, 0x3E, 0x38, 0xFE, 0xA0, 0x03, 0x06, 0x04, 0x0C, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x40, 0x60, 0x60, 0x20, 0x04, 0x06, 0x06, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x20, 0x60, 0xC0, 0x0C, 0x0C, 0x49, 0x7F, 0x3C, 0x3C, 0x6C, 0x00, 0x03, 0x00, 0x30, 0x03, 0x00, 0x30, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x60, 0x06, 0x00, 0xC0, 0x0C, 0x00, 0x77, 0x22, 0x6C, 0xFF, 0xF0, 0xFC, 0x00, 0x40, 0x30, 0x08, 0x06, 0x01, 0x00, 0xC0, 0x20, 0x18, 0x04, 0x02, 0x00, 0x80, 0x40, 0x10, 0x08, 0x02, 0x01, 0x00, 0xC0, 0x20, 0x00, 0x07, 0xC0, 0xFE, 0x1C, 0x73, 0x83, 0x30, 0x36, 0x03, 0x60, 0x36, 0x03, 0xC0, 0x7C, 0x07, 0xC0, 0x6C, 0x06, 0xC0, 0xEC, 0x0C, 0xE3, 0x87, 0xF0, 0x3E, 0x00, 0x02, 0x0C, 0x77, 0xEF, 0xC1, 0x83, 0x0C, 0x18, 0x30, 0x61, 0xC3, 0x06, 0x0C, 0x18, 0x60, 0x03, 0xF0, 0x1F, 0xE0, 0xE1, 0xC7, 0x03, 0x18, 0x0C, 0x00, 0x30, 0x01, 0x80, 0x0E, 0x00, 0x70, 0x07, 0x80, 0x78, 0x07, 0x80, 0x38, 0x01, 0xC0, 0x06, 0x00, 0x1F, 0xFC, 0xFF, 0xE0, 0x07, 0xC0, 0xFE, 0x1C, 0x73, 0x03, 0x30, 0x30, 0x03, 0x00, 0xE0, 0x7C, 0x07, 0xC0, 0x0E, 0x00, 0x60, 0x06, 0xC0, 0x6C, 0x0C, 0xE1, 0xC7, 0xF8, 0x3E, 0x00, 0x00, 0x60, 0x06, 0x00, 0xE0, 0x1E, 0x03, 0xE0, 0x6C, 0x0C, 0xC1, 0x8C, 0x30, 0xC6, 0x1C, 0xC1, 0x8F, 0xFF, 0xFF, 0xE0, 0x18, 0x03, 0x00, 0x30, 0x03, 0x00, 0x0F, 0xF8, 0x7F, 0xC6, 0x00, 0x30, 0x01, 0x00, 0x1B, 0xC0, 0xFF, 0x06, 0x1C, 0x60, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x0C, 0x60, 0x63, 0x86, 0x0F, 0xE0, 0x3E, 0x00, 0x03, 0xC0, 0xFE, 0x1C, 0x73, 0x83, 0x30, 0x06, 0x00, 0x67, 0x87, 0xFC, 0xF0, 0xEE, 0x06, 0xC0, 0x6C, 0x06, 0xC0, 0x4C, 0x0C, 0xE1, 0x87, 0xF8, 0x3E, 0x00, 0x3F, 0xFB, 0xFF, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x06, 0x00, 0x60, 0x06, 0x00, 0x70, 0x03, 0x00, 0x30, 0x03, 0x80, 0x18, 0x01, 0xC0, 0x0C, 0x00, 0xE0, 0x00, 0x07, 0xC0, 0xFE, 0x1C, 0x73, 0x03, 0x30, 0x33, 0x03, 0x38, 0x61, 0xFC, 0x3F, 0xC7, 0x0E, 0x60, 0x6C, 0x06, 0xC0, 0x6C, 0x0C, 0xE1, 0xC7, 0xF8, 0x3E, 0x00, 0x07, 0xC1, 0xFE, 0x38, 0x73, 0x03, 0x60, 0x36, 0x03, 0x60, 0x36, 0x07, 0x70, 0xF3, 0xFE, 0x1E, 0x60, 0x0E, 0x00, 0xCC, 0x1C, 0xE3, 0x87, 0xF0, 0x3C, 0x00, 0x39, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x39, 0xC0, 0x1C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1C, 0x20, 0x86, 0x30, 0x00, 0x00, 0x01, 0xC0, 0x3C, 0x0F, 0x81, 0xE0, 0x7C, 0x03, 0x80, 0x0F, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x38, 0x00, 0x40, 0x7F, 0xFB, 0xFF, 0x80, 0x00, 0x00, 0x0F, 0xFF, 0x7F, 0xF0, 0x20, 0x01, 0xC0, 0x07, 0xC0, 0x0F, 0x80, 0x0F, 0x00, 0x1C, 0x03, 0xE0, 0x78, 0x1F, 0x03, 0xC0, 0x38, 0x00, 0x00, 0x00, 0x0F, 0x87, 0xF9, 0xC3, 0xB0, 0x3C, 0x06, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x01, 0xC0, 0x30, 0x0C, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x06, 0x00, 0x00, 0x3F, 0x80, 0x01, 0xFF, 0xE0, 0x0F, 0x01, 0xE0, 0x38, 0x00, 0xE0, 0xE0, 0x00, 0xC3, 0x87, 0x81, 0xCE, 0x1F, 0xB1, 0x98, 0x71, 0xC3, 0x61, 0x83, 0x86, 0xC6, 0x06, 0x0F, 0x0C, 0x0C, 0x3E, 0x30, 0x30, 0x6C, 0x60, 0x61, 0xD8, 0xC1, 0x87, 0x31, 0xC7, 0x1C, 0x61, 0xF7, 0xF0, 0x63, 0xCF, 0x80, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x78, 0x00, 0x7C, 0x00, 0xFC, 0x00, 0xDC, 0x01, 0xCC, 0x01, 0x8C, 0x03, 0x8C, 0x03, 0x0C, 0x06, 0x0C, 0x0E, 0x0E, 0x0F, 0xFE, 0x1F, 0xFE, 0x18, 0x06, 0x38, 0x06, 0x30, 0x06, 0x70, 0x06, 0x60, 0x07, 0x0F, 0xF8, 0x1F, 0xF8, 0x60, 0x38, 0xC0, 0x31, 0x80, 0x63, 0x00, 0xCE, 0x03, 0x18, 0x0C, 0x3F, 0xF0, 0x7F, 0xF0, 0xC0, 0x73, 0x00, 0x66, 0x00, 0xCC, 0x01, 0x98, 0x06, 0x70, 0x1C, 0xFF, 0xF1, 0xFF, 0x80, 0x01, 0xF8, 0x07, 0xFE, 0x0E, 0x0E, 0x1C, 0x03, 0x38, 0x03, 0x30, 0x00, 0x60, 0x00, 0x60, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x06, 0xC0, 0x0C, 0xE0, 0x1C, 0x70, 0x78, 0x3F, 0xF0, 0x1F, 0x80, 0x0F, 0xF8, 0x1F, 0xFC, 0x18, 0x0E, 0x18, 0x07, 0x18, 0x03, 0x18, 0x03, 0x38, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x70, 0x06, 0x70, 0x06, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x18, 0xE0, 0x78, 0xFF, 0xE0, 0xFF, 0x80, 0x0F, 0xFF, 0x1F, 0xFE, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x38, 0x00, 0x30, 0x00, 0x3F, 0xFC, 0x3F, 0xF8, 0x70, 0x00, 0x70, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xFF, 0xF8, 0xFF, 0xF8, 0x0F, 0xFE, 0x3F, 0xFC, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x0E, 0x00, 0x18, 0x00, 0x3F, 0xF0, 0x7F, 0xE1, 0xC0, 0x03, 0x80, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x80, 0x00, 0x01, 0xF8, 0x07, 0xFE, 0x0E, 0x0F, 0x18, 0x03, 0x30, 0x03, 0x70, 0x00, 0x60, 0x00, 0x60, 0x00, 0xC0, 0x7F, 0xC0, 0x7E, 0xC0, 0x02, 0xC0, 0x06, 0xC0, 0x06, 0xE0, 0x0E, 0x60, 0x1E, 0x78, 0x3C, 0x3F, 0xE4, 0x0F, 0x84, 0x0C, 0x01, 0x8E, 0x00, 0xC6, 0x00, 0xE3, 0x00, 0x61, 0x80, 0x30, 0xC0, 0x18, 0xE0, 0x0C, 0x60, 0x0E, 0x3F, 0xFE, 0x1F, 0xFF, 0x1C, 0x01, 0x8E, 0x01, 0xC6, 0x00, 0xE3, 0x00, 0x61, 0x80, 0x31, 0xC0, 0x18, 0xC0, 0x1C, 0x60, 0x0C, 0x00, 0x0C, 0x71, 0x86, 0x18, 0x63, 0x8C, 0x30, 0xC3, 0x1C, 0x61, 0x86, 0x18, 0xE3, 0x00, 0x00, 0x18, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x38, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x38, 0x01, 0x8C, 0x0C, 0x60, 0x63, 0x07, 0x1C, 0x70, 0x7F, 0x01, 0xF0, 0x00, 0x0C, 0x03, 0x87, 0x01, 0xC1, 0x80, 0xE0, 0x60, 0x60, 0x18, 0x70, 0x06, 0x38, 0x03, 0x9C, 0x00, 0xCE, 0x00, 0x37, 0x80, 0x0F, 0x70, 0x07, 0x8C, 0x01, 0xC3, 0x80, 0x60, 0x60, 0x18, 0x1C, 0x06, 0x03, 0x03, 0x80, 0xE0, 0xC0, 0x18, 0x30, 0x07, 0x00, 0x0C, 0x03, 0x80, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x0E, 0x01, 0x80, 0x30, 0x06, 0x01, 0xC0, 0x38, 0x06, 0x00, 0xC0, 0x18, 0x07, 0x00, 0xFF, 0xFF, 0xFC, 0x0E, 0x00, 0x71, 0xE0, 0x0F, 0x1E, 0x00, 0xF1, 0xE0, 0x1E, 0x1E, 0x01, 0xE1, 0xE0, 0x36, 0x3B, 0x03, 0x63, 0x30, 0x6E, 0x33, 0x0E, 0xC3, 0x30, 0xCC, 0x33, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x31, 0xC6, 0x33, 0x18, 0x61, 0xE1, 0x8E, 0x1E, 0x18, 0xC1, 0xC1, 0x8C, 0x1C, 0x38, 0x0C, 0x01, 0x8F, 0x00, 0xC7, 0x80, 0x63, 0xE0, 0x71, 0xF0, 0x30, 0xD8, 0x18, 0xEE, 0x0C, 0x63, 0x06, 0x31, 0xC7, 0x18, 0xE3, 0x0C, 0x31, 0x8C, 0x1C, 0xC6, 0x06, 0x63, 0x03, 0xF1, 0x80, 0xF1, 0xC0, 0x78, 0xC0, 0x3C, 0x60, 0x0E, 0x00, 0x01, 0xF8, 0x03, 0xFF, 0x03, 0x83, 0xC3, 0x80, 0x63, 0x00, 0x3B, 0x80, 0x0D, 0x80, 0x06, 0xC0, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0xF8, 0x00, 0x6C, 0x00, 0x36, 0x00, 0x31, 0x80, 0x30, 0xF0, 0x78, 0x3F, 0xF0, 0x07, 0xE0, 0x00, 0x0F, 0xF8, 0x3F, 0xF8, 0x60, 0x38, 0xC0, 0x31, 0x80, 0x63, 0x00, 0xCE, 0x03, 0x18, 0x0E, 0x3F, 0xF8, 0x7F, 0xE1, 0xC0, 0x03, 0x80, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x80, 0x00, 0x00, 0xFC, 0x01, 0xFF, 0xC0, 0xF0, 0x78, 0x70, 0x06, 0x38, 0x01, 0xCC, 0x00, 0x36, 0x00, 0x0D, 0x80, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1B, 0x00, 0x06, 0xC0, 0x03, 0x38, 0x1D, 0xC6, 0x03, 0xE1, 0xE0, 0xF0, 0x3F, 0xFE, 0x03, 0xF1, 0xC0, 0x00, 0x20, 0x0F, 0xFC, 0x1F, 0xFE, 0x18, 0x07, 0x18, 0x03, 0x18, 0x03, 0x18, 0x03, 0x38, 0x06, 0x30, 0x0C, 0x3F, 0xF8, 0x3F, 0xF8, 0x70, 0x1C, 0x70, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x18, 0xE0, 0x18, 0xC0, 0x18, 0xC0, 0x1C, 0x03, 0xF8, 0x1F, 0xF8, 0x70, 0x38, 0xC0, 0x33, 0x00, 0x66, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1F, 0xC0, 0x0F, 0xF0, 0x01, 0xF0, 0x00, 0xEC, 0x00, 0xD8, 0x01, 0xB0, 0x06, 0x70, 0x38, 0x7F, 0xE0, 0x3F, 0x00, 0xFF, 0xFF, 0xFF, 0xF0, 0x70, 0x01, 0xC0, 0x06, 0x00, 0x18, 0x00, 0x60, 0x03, 0x80, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x1C, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x18, 0x03, 0x38, 0x03, 0x30, 0x07, 0x30, 0x06, 0x30, 0x06, 0x70, 0x06, 0x70, 0x0E, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0xE0, 0x0C, 0xC0, 0x1C, 0xC0, 0x18, 0xC0, 0x18, 0xC0, 0x38, 0xE0, 0x70, 0x7F, 0xE0, 0x1F, 0x80, 0xC0, 0x0F, 0xC0, 0x1B, 0x80, 0x73, 0x00, 0xC6, 0x03, 0x0C, 0x06, 0x18, 0x18, 0x30, 0x70, 0x60, 0xC0, 0xE3, 0x81, 0xC6, 0x01, 0x9C, 0x03, 0x30, 0x06, 0xE0, 0x0D, 0x80, 0x1E, 0x00, 0x3C, 0x00, 0x70, 0x00, 0xC0, 0x70, 0x1F, 0x01, 0xC0, 0x6C, 0x0F, 0x03, 0xB0, 0x3C, 0x0C, 0xC1, 0xF0, 0x73, 0x06, 0xC1, 0x8C, 0x3B, 0x06, 0x30, 0xC6, 0x30, 0xC7, 0x18, 0xC3, 0x18, 0x67, 0x0C, 0xE1, 0x98, 0x33, 0x06, 0xE0, 0xDC, 0x1B, 0x03, 0x60, 0x6C, 0x07, 0x81, 0xE0, 0x1C, 0x07, 0x80, 0x70, 0x1C, 0x01, 0x80, 0x70, 0x00, 0x07, 0x00, 0xE0, 0xE0, 0x38, 0x0C, 0x0E, 0x01, 0xC3, 0x80, 0x18, 0xE0, 0x03, 0x98, 0x00, 0x36, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x07, 0xC0, 0x01, 0xDC, 0x00, 0x73, 0x80, 0x1C, 0x30, 0x03, 0x07, 0x00, 0xC0, 0x60, 0x38, 0x0E, 0x0E, 0x00, 0xC0, 0xE0, 0x06, 0x60, 0x0C, 0x70, 0x1C, 0x70, 0x38, 0x30, 0x70, 0x38, 0x60, 0x18, 0xC0, 0x1D, 0xC0, 0x1F, 0x80, 0x0F, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x18, 0x00, 0x0F, 0xFF, 0x87, 0xFF, 0x80, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xFF, 0xF8, 0x7F, 0xFC, 0x00, 0x07, 0xC1, 0xE0, 0x60, 0x18, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x1C, 0x06, 0x01, 0x80, 0x60, 0x18, 0x0E, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x06, 0x01, 0x80, 0x60, 0x1E, 0x07, 0x80, 0x93, 0x6C, 0x92, 0x49, 0x24, 0xDB, 0x24, 0x07, 0x81, 0xE0, 0x18, 0x06, 0x01, 0x80, 0xC0, 0x30, 0x0C, 0x03, 0x01, 0xC0, 0x60, 0x18, 0x06, 0x01, 0x80, 0xE0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x60, 0x18, 0x1E, 0x0F, 0x80, 0x03, 0x01, 0xC0, 0xD8, 0x36, 0x19, 0x84, 0x63, 0x19, 0x83, 0x60, 0xC0, 0xFF, 0xFC, 0xE6, 0x23, 0x07, 0xC3, 0xFC, 0xE3, 0x98, 0x30, 0x06, 0x01, 0x87, 0xF3, 0xC6, 0xC0, 0xD8, 0x3B, 0x0E, 0x7F, 0x77, 0xCC, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x30, 0x01, 0x80, 0x0C, 0xF0, 0x7F, 0xC3, 0x87, 0x38, 0x19, 0x80, 0xCC, 0x06, 0x60, 0x32, 0x03, 0xB0, 0x19, 0xC1, 0xCE, 0x1C, 0x7F, 0xC3, 0x7C, 0x00, 0x0F, 0x83, 0xF8, 0xE3, 0xB8, 0x36, 0x07, 0xC0, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x1B, 0x86, 0x3F, 0xC3, 0xE0, 0x00, 0x0C, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x18, 0x3E, 0x61, 0xFF, 0x0E, 0x3C, 0x70, 0x71, 0x80, 0xCE, 0x07, 0x30, 0x18, 0xC0, 0x63, 0x01, 0x8C, 0x0E, 0x38, 0x78, 0x7F, 0xC0, 0xFB, 0x00, 0x07, 0xC1, 0xFE, 0x38, 0x77, 0x03, 0x60, 0x37, 0xFF, 0xFF, 0xFC, 0x00, 0xC0, 0x0C, 0x06, 0xE1, 0xC7, 0xF8, 0x3E, 0x00, 0x07, 0x0F, 0x1C, 0x18, 0x18, 0x7E, 0x7E, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60, 0xC0, 0xC0, 0x03, 0xCC, 0x3F, 0xA1, 0xC7, 0x8E, 0x0E, 0x30, 0x38, 0xC0, 0xC6, 0x03, 0x18, 0x0C, 0x60, 0x71, 0x81, 0xC7, 0x0E, 0x0F, 0xF8, 0x1E, 0x60, 0x03, 0x80, 0x0C, 0x30, 0x70, 0x7F, 0x80, 0xF8, 0x00, 0x0C, 0x00, 0xC0, 0x0C, 0x01, 0x80, 0x18, 0x01, 0x9E, 0x1F, 0xF1, 0xC7, 0x38, 0x33, 0x03, 0x30, 0x33, 0x07, 0x30, 0x66, 0x06, 0x60, 0x66, 0x06, 0x60, 0xC6, 0x0C, 0x18, 0xC0, 0x00, 0x18, 0xC6, 0x33, 0x18, 0xC6, 0x31, 0x98, 0xC6, 0x00, 0x01, 0x80, 0xC0, 0x00, 0x00, 0x00, 0x18, 0x1C, 0x0C, 0x06, 0x03, 0x01, 0x81, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x18, 0x0C, 0x06, 0x03, 0x03, 0x87, 0x83, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x18, 0x61, 0x83, 0x38, 0x33, 0x81, 0xB8, 0x0F, 0xC0, 0x77, 0x03, 0x18, 0x30, 0xC1, 0x87, 0x0C, 0x18, 0x60, 0xE3, 0x03, 0x00, 0x18, 0xC6, 0x63, 0x18, 0xC6, 0x33, 0x18, 0xC6, 0x31, 0x98, 0xC6, 0x00, 0x1B, 0xE3, 0xC3, 0xFD, 0xFC, 0xF1, 0xE1, 0x9C, 0x18, 0x33, 0x03, 0x06, 0x60, 0xC0, 0xCC, 0x18, 0x3B, 0x83, 0x06, 0x60, 0x60, 0xCC, 0x0C, 0x19, 0x83, 0x03, 0x30, 0x60, 0xE6, 0x0C, 0x18, 0x1B, 0xE1, 0xFF, 0x3C, 0x73, 0x83, 0x30, 0x33, 0x03, 0x30, 0x77, 0x06, 0x60, 0x66, 0x06, 0x60, 0x66, 0x0C, 0x60, 0xC0, 0x07, 0xC1, 0xFE, 0x38, 0x77, 0x03, 0x60, 0x3E, 0x03, 0xC0, 0x3C, 0x06, 0xC0, 0x6C, 0x0E, 0xE1, 0xC7, 0xF8, 0x3E, 0x00, 0x0C, 0xF0, 0x3F, 0xE0, 0xE1, 0xC7, 0x03, 0x1C, 0x0C, 0x60, 0x31, 0x80, 0xCE, 0x07, 0x38, 0x18, 0xE0, 0xE3, 0xC7, 0x0F, 0xF8, 0x77, 0xC1, 0x80, 0x06, 0x00, 0x18, 0x00, 0x60, 0x03, 0x80, 0x00, 0x0F, 0x98, 0xFF, 0xCE, 0x3C, 0xE0, 0xE6, 0x03, 0x70, 0x1B, 0x01, 0x98, 0x0C, 0xC0, 0x66, 0x07, 0x38, 0x78, 0xFF, 0x83, 0xCC, 0x00, 0x60, 0x07, 0x00, 0x38, 0x01, 0x80, 0x0C, 0x00, 0x1B, 0x8F, 0xCF, 0x07, 0x03, 0x01, 0x80, 0xC0, 0xE0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x0F, 0xC1, 0xFF, 0x30, 0x76, 0x03, 0x60, 0x07, 0x80, 0x3F, 0x80, 0x7E, 0x00, 0x6C, 0x06, 0xE0, 0xCF, 0xF8, 0x3E, 0x00, 0x18, 0x30, 0x67, 0xEF, 0xC6, 0x0C, 0x30, 0x60, 0xC1, 0x83, 0x0C, 0x18, 0x3C, 0x38, 0x30, 0x33, 0x03, 0x30, 0x37, 0x06, 0x60, 0x66, 0x06, 0x60, 0x66, 0x06, 0xC0, 0xEC, 0x0C, 0xC3, 0xCF, 0xFC, 0x7C, 0xC0, 0xC0, 0x78, 0x1B, 0x03, 0x60, 0xC6, 0x18, 0xC6, 0x19, 0xC3, 0x30, 0x6C, 0x0D, 0x81, 0xE0, 0x3C, 0x03, 0x00, 0xC1, 0xC3, 0xE1, 0xE1, 0xB0, 0xF0, 0xD8, 0x78, 0xCC, 0x6C, 0x66, 0x36, 0x63, 0x33, 0x30, 0x99, 0xB0, 0x58, 0xD8, 0x2C, 0x78, 0x1C, 0x3C, 0x0E, 0x1C, 0x06, 0x0E, 0x00, 0x0C, 0x1C, 0x30, 0xE0, 0xE3, 0x01, 0x98, 0x07, 0xC0, 0x0E, 0x00, 0x30, 0x01, 0xE0, 0x0F, 0x80, 0x73, 0x01, 0x8C, 0x0C, 0x38, 0x60, 0x60, 0x18, 0x0C, 0x60, 0x61, 0x83, 0x86, 0x0C, 0x1C, 0x60, 0x31, 0x80, 0xCC, 0x03, 0x30, 0x0D, 0x80, 0x36, 0x00, 0xF0, 0x03, 0x80, 0x06, 0x00, 0x30, 0x00, 0xC0, 0x06, 0x00, 0xF0, 0x03, 0x80, 0x00, 0x1F, 0xF1, 0xFF, 0x00, 0x70, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0F, 0xFC, 0xFF, 0xC0, 0x07, 0x0E, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x30, 0x60, 0xE0, 0xE0, 0x60, 0x60, 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xF0, 0x60, 0x0C, 0x30, 0x82, 0x08, 0x61, 0x84, 0x10, 0x43, 0x0C, 0x20, 0x86, 0x18, 0x41, 0x04, 0x30, 0xC2, 0x00, 0x00, 0x06, 0x07, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x06, 0x03, 0x01, 0xC0, 0xE0, 0x60, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x06, 0x03, 0x01, 0x83, 0x83, 0x80, 0x38, 0x0F, 0x82, 0x38, 0x83, 0xE0, 0x38}; const GFXglyph FreeSansOblique12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 7, 0, 1}, // 0x20 ' ' {0, 6, 18, 7, 3, -17}, // 0x21 '!' {14, 6, 6, 9, 4, -16}, // 0x22 '"' {19, 15, 18, 13, 1, -17}, // 0x23 '#' {53, 13, 21, 13, 2, -17}, // 0x24 '$' {88, 19, 17, 21, 3, -16}, // 0x25 '%' {129, 13, 17, 16, 2, -16}, // 0x26 '&' {157, 2, 6, 5, 4, -16}, // 0x27 ''' {159, 8, 23, 8, 3, -17}, // 0x28 '(' {182, 8, 23, 8, 0, -16}, // 0x29 ')' {205, 8, 8, 9, 4, -17}, // 0x2A '*' {213, 12, 11, 14, 2, -10}, // 0x2B '+' {230, 4, 6, 7, 1, -1}, // 0x2C ',' {233, 6, 2, 8, 2, -7}, // 0x2D '-' {235, 3, 2, 7, 2, -1}, // 0x2E '.' {236, 10, 18, 7, 0, -17}, // 0x2F '/' {259, 12, 17, 13, 2, -16}, // 0x30 '0' {285, 7, 17, 13, 5, -16}, // 0x31 '1' {300, 14, 17, 13, 1, -16}, // 0x32 '2' {330, 12, 17, 13, 2, -16}, // 0x33 '3' {356, 12, 17, 13, 2, -16}, // 0x34 '4' {382, 13, 17, 13, 2, -16}, // 0x35 '5' {410, 12, 17, 13, 2, -16}, // 0x36 '6' {436, 13, 17, 13, 3, -16}, // 0x37 '7' {464, 12, 17, 13, 2, -16}, // 0x38 '8' {490, 12, 17, 13, 2, -16}, // 0x39 '9' {516, 5, 12, 7, 3, -11}, // 0x3A ':' {524, 6, 16, 7, 2, -11}, // 0x3B ';' {536, 13, 12, 14, 2, -11}, // 0x3C '<' {556, 13, 6, 14, 2, -8}, // 0x3D '=' {566, 13, 12, 14, 1, -10}, // 0x3E '>' {586, 11, 18, 13, 4, -17}, // 0x3F '?' {611, 23, 21, 24, 2, -17}, // 0x40 '@' {672, 16, 18, 16, 0, -17}, // 0x41 'A' {708, 15, 18, 16, 2, -17}, // 0x42 'B' {742, 16, 18, 17, 2, -17}, // 0x43 'C' {778, 16, 18, 17, 2, -17}, // 0x44 'D' {814, 16, 18, 16, 2, -17}, // 0x45 'E' {850, 15, 18, 14, 2, -17}, // 0x46 'F' {884, 16, 18, 19, 3, -17}, // 0x47 'G' {920, 17, 18, 17, 2, -17}, // 0x48 'H' {959, 6, 18, 7, 2, -17}, // 0x49 'I' {973, 13, 18, 12, 1, -17}, // 0x4A 'J' {1003, 18, 18, 16, 2, -17}, // 0x4B 'K' {1044, 11, 18, 13, 2, -17}, // 0x4C 'L' {1069, 20, 18, 20, 2, -17}, // 0x4D 'M' {1114, 17, 18, 18, 2, -17}, // 0x4E 'N' {1153, 17, 18, 18, 2, -17}, // 0x4F 'O' {1192, 15, 18, 15, 2, -17}, // 0x50 'P' {1226, 18, 19, 19, 2, -17}, // 0x51 'Q' {1269, 16, 18, 17, 2, -17}, // 0x52 'R' {1305, 15, 18, 16, 2, -17}, // 0x53 'S' {1339, 14, 18, 15, 4, -17}, // 0x54 'T' {1371, 16, 18, 17, 3, -17}, // 0x55 'U' {1407, 15, 18, 15, 4, -17}, // 0x56 'V' {1441, 22, 18, 22, 4, -17}, // 0x57 'W' {1491, 19, 18, 16, 0, -17}, // 0x58 'X' {1534, 16, 18, 16, 4, -17}, // 0x59 'Y' {1570, 17, 18, 15, 1, -17}, // 0x5A 'Z' {1609, 10, 23, 7, 0, -17}, // 0x5B '[' {1638, 3, 18, 7, 4, -17}, // 0x5C '\' {1645, 10, 23, 7, -1, -16}, // 0x5D ']' {1674, 10, 9, 11, 2, -16}, // 0x5E '^' {1686, 14, 1, 13, -1, 4}, // 0x5F '_' {1688, 4, 4, 8, 4, -17}, // 0x60 '`' {1690, 11, 13, 13, 2, -12}, // 0x61 'a' {1708, 13, 18, 13, 1, -17}, // 0x62 'b' {1738, 11, 13, 12, 2, -12}, // 0x63 'c' {1756, 14, 18, 13, 2, -17}, // 0x64 'd' {1788, 12, 13, 13, 2, -12}, // 0x65 'e' {1808, 8, 18, 6, 2, -17}, // 0x66 'f' {1826, 14, 18, 13, 1, -12}, // 0x67 'g' {1858, 12, 18, 13, 1, -17}, // 0x68 'h' {1885, 5, 18, 5, 2, -17}, // 0x69 'i' {1897, 9, 23, 6, -1, -17}, // 0x6A 'j' {1923, 13, 18, 12, 1, -17}, // 0x6B 'k' {1953, 5, 18, 5, 2, -17}, // 0x6C 'l' {1965, 19, 13, 20, 1, -12}, // 0x6D 'm' {1996, 12, 13, 13, 1, -12}, // 0x6E 'n' {2016, 12, 13, 13, 2, -12}, // 0x6F 'o' {2036, 14, 18, 14, 0, -12}, // 0x70 'p' {2068, 13, 18, 13, 2, -12}, // 0x71 'q' {2098, 9, 13, 8, 1, -12}, // 0x72 'r' {2113, 12, 13, 12, 1, -12}, // 0x73 's' {2133, 7, 16, 6, 2, -15}, // 0x74 't' {2147, 12, 13, 13, 2, -12}, // 0x75 'u' {2167, 11, 13, 12, 3, -12}, // 0x76 'v' {2185, 17, 13, 17, 3, -12}, // 0x77 'w' {2213, 14, 13, 12, 0, -12}, // 0x78 'x' {2236, 14, 18, 11, 0, -12}, // 0x79 'y' {2268, 12, 13, 12, 1, -12}, // 0x7A 'z' {2288, 8, 23, 8, 3, -17}, // 0x7B '{' {2311, 6, 23, 6, 1, -17}, // 0x7C '|' {2329, 9, 23, 8, -1, -16}, // 0x7D '}' {2355, 11, 5, 14, 3, -10}}; // 0x7E '~' const GFXfont FreeSansOblique12pt7b PROGMEM = { (uint8_t *)FreeSansOblique12pt7bBitmaps, (GFXglyph *)FreeSansOblique12pt7bGlyphs, 0x20, 0x7E, 29}; // Approx. 3034 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansOblique18pt7b.h ================================================ const uint8_t FreeSansOblique18pt7bBitmaps[] PROGMEM = { 0x03, 0x83, 0x81, 0xC0, 0xE0, 0x70, 0x78, 0x38, 0x1C, 0x0E, 0x07, 0x07, 0x83, 0x81, 0xC0, 0xE0, 0x60, 0x30, 0x30, 0x18, 0x0C, 0x04, 0x00, 0x00, 0x01, 0xC0, 0xE0, 0x70, 0x78, 0x00, 0x71, 0xDC, 0x7F, 0x3F, 0x8E, 0xE3, 0xB8, 0xEC, 0x33, 0x0C, 0xC3, 0x00, 0x00, 0x38, 0x70, 0x01, 0xC3, 0x80, 0x0C, 0x18, 0x00, 0xE1, 0xC0, 0x06, 0x0C, 0x00, 0x70, 0xE0, 0x03, 0x87, 0x03, 0xFF, 0xFF, 0x1F, 0xFF, 0xF0, 0xFF, 0xFF, 0x80, 0x60, 0xC0, 0x07, 0x0E, 0x00, 0x30, 0x60, 0x03, 0x87, 0x00, 0x18, 0x30, 0x1F, 0xFF, 0xF8, 0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x07, 0x0E, 0x00, 0x30, 0x70, 0x03, 0x87, 0x00, 0x1C, 0x38, 0x00, 0xC1, 0x80, 0x0E, 0x1C, 0x00, 0x60, 0xC0, 0x00, 0x00, 0x0C, 0x00, 0x07, 0xF8, 0x01, 0xFF, 0xC0, 0x3F, 0xFE, 0x07, 0x99, 0xF0, 0xF1, 0x87, 0x0E, 0x18, 0x71, 0xC1, 0x87, 0x1C, 0x38, 0x01, 0xC3, 0x00, 0x1C, 0x30, 0x01, 0xE3, 0x00, 0x0F, 0xB0, 0x00, 0xFF, 0x80, 0x03, 0xFF, 0x00, 0x0F, 0xF8, 0x00, 0x6F, 0xC0, 0x06, 0x3C, 0x00, 0xC1, 0xCE, 0x0C, 0x1C, 0xE0, 0xC1, 0xCE, 0x0C, 0x38, 0xF1, 0xC3, 0x8F, 0x98, 0xF0, 0x7F, 0xFE, 0x03, 0xFF, 0xC0, 0x0F, 0xF0, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03, 0xE0, 0x03, 0x81, 0xFC, 0x00, 0xC0, 0xFF, 0x00, 0x60, 0x70, 0xE0, 0x38, 0x38, 0x18, 0x1C, 0x0C, 0x06, 0x0E, 0x03, 0x01, 0x83, 0x00, 0xC0, 0xE1, 0x80, 0x38, 0x70, 0xE0, 0x0F, 0xF8, 0x70, 0x01, 0xFC, 0x18, 0x00, 0x3E, 0x0C, 0x00, 0x00, 0x06, 0x07, 0x80, 0x03, 0x87, 0xF8, 0x00, 0xC3, 0xFE, 0x00, 0x61, 0xE1, 0xC0, 0x30, 0x60, 0x30, 0x1C, 0x30, 0x0C, 0x0E, 0x0C, 0x03, 0x03, 0x03, 0x01, 0x81, 0x80, 0xE1, 0xE0, 0xC0, 0x1F, 0xF0, 0x70, 0x07, 0xF8, 0x18, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x07, 0xF8, 0x00, 0xFF, 0xC0, 0x1E, 0x3C, 0x03, 0xC1, 0xC0, 0x38, 0x1C, 0x03, 0x81, 0xC0, 0x38, 0x38, 0x03, 0xC7, 0x00, 0x1D, 0xE0, 0x01, 0xFC, 0x00, 0x1F, 0x00, 0x07, 0xF0, 0x01, 0xF7, 0x87, 0x3C, 0x3C, 0xE7, 0x81, 0xCE, 0x70, 0x1F, 0xCE, 0x00, 0xFC, 0xE0, 0x07, 0x8E, 0x00, 0x78, 0xF0, 0x1F, 0x8F, 0x87, 0xFC, 0x7F, 0xF9, 0xC3, 0xFE, 0x1E, 0x1F, 0x80, 0xE0, 0x77, 0xFE, 0xEE, 0xCC, 0xC0, 0x00, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x80, 0x30, 0x06, 0x00, 0xE0, 0x0C, 0x01, 0xC0, 0x18, 0x03, 0x80, 0x38, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x06, 0x00, 0x70, 0x07, 0x00, 0x30, 0x03, 0x00, 0x18, 0x00, 0x01, 0x80, 0x0C, 0x00, 0xC0, 0x0E, 0x00, 0xE0, 0x06, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x01, 0xC0, 0x1C, 0x03, 0x80, 0x38, 0x03, 0x00, 0x70, 0x06, 0x00, 0xC0, 0x1C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x00, 0x06, 0x01, 0x84, 0x47, 0xF7, 0xFF, 0xCF, 0xC1, 0xE0, 0xD8, 0x67, 0x18, 0xC0, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x0F, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x3B, 0xDC, 0x21, 0x18, 0x98, 0xFF, 0xFF, 0xFF, 0xE0, 0x7F, 0xFE, 0x00, 0x06, 0x00, 0x18, 0x00, 0x30, 0x00, 0xC0, 0x01, 0x80, 0x06, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x60, 0x01, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x60, 0x00, 0xC0, 0x03, 0x00, 0x06, 0x00, 0x18, 0x00, 0x20, 0x00, 0xC0, 0x03, 0x00, 0x06, 0x00, 0x18, 0x00, 0x30, 0x00, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x7C, 0x00, 0x7F, 0xC0, 0x7F, 0xF8, 0x3E, 0x1E, 0x0F, 0x03, 0xC7, 0x80, 0x71, 0xC0, 0x1C, 0xE0, 0x07, 0x38, 0x01, 0xDE, 0x00, 0x77, 0x00, 0x1D, 0xC0, 0x0F, 0x70, 0x03, 0xFC, 0x00, 0xEE, 0x00, 0x3B, 0x80, 0x0E, 0xE0, 0x07, 0xB8, 0x01, 0xCE, 0x00, 0xF3, 0x80, 0x38, 0xF0, 0x1E, 0x1E, 0x1F, 0x07, 0xFF, 0x80, 0xFF, 0xC0, 0x0F, 0x80, 0x00, 0x00, 0xC0, 0x70, 0x3C, 0x3E, 0xFF, 0xBF, 0xEF, 0xF8, 0x1E, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x0F, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x07, 0x81, 0xC0, 0x70, 0x1C, 0x07, 0x01, 0xC0, 0xE0, 0x38, 0x00, 0x00, 0x3F, 0x00, 0x0F, 0xFC, 0x03, 0xFF, 0xE0, 0x7C, 0x1E, 0x07, 0x80, 0xF0, 0xF0, 0x07, 0x0E, 0x00, 0x70, 0xE0, 0x07, 0x00, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x0F, 0x80, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0x8F, 0xFF, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x7E, 0x00, 0x3F, 0xF0, 0x0F, 0xFF, 0x03, 0xC1, 0xF0, 0x70, 0x0E, 0x1C, 0x01, 0xC3, 0x80, 0x38, 0xE0, 0x07, 0x00, 0x01, 0xC0, 0x00, 0xF0, 0x03, 0xFC, 0x00, 0x7F, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x9C, 0x00, 0x73, 0x80, 0x1E, 0x70, 0x03, 0x8F, 0x00, 0xF1, 0xF0, 0x7C, 0x1F, 0xFF, 0x01, 0xFF, 0xC0, 0x0F, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x1F, 0x80, 0x0F, 0xE0, 0x07, 0xF0, 0x03, 0xDC, 0x01, 0xE7, 0x00, 0x71, 0xC0, 0x38, 0xF0, 0x1C, 0x38, 0x0E, 0x0E, 0x07, 0x03, 0x83, 0x80, 0xE1, 0xC0, 0x70, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x70, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x01, 0xFF, 0xF0, 0x3F, 0xFF, 0x03, 0xFF, 0xE0, 0x78, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0xFC, 0x01, 0xFF, 0xF0, 0x1F, 0xFF, 0x83, 0xE0, 0x78, 0x3C, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x8E, 0x00, 0x78, 0xE0, 0x0F, 0x0F, 0x81, 0xE0, 0x7F, 0xFC, 0x03, 0xFF, 0x80, 0x0F, 0xE0, 0x00, 0x00, 0x7E, 0x00, 0x3F, 0xF0, 0x0F, 0xFF, 0x03, 0xE1, 0xF0, 0xF0, 0x0E, 0x1C, 0x01, 0xC7, 0x00, 0x01, 0xE0, 0x00, 0x38, 0x00, 0x07, 0x1F, 0x01, 0xCF, 0xF8, 0x3B, 0xFF, 0x87, 0xE0, 0xF8, 0xF0, 0x0F, 0x3C, 0x00, 0xE7, 0x80, 0x1C, 0xE0, 0x03, 0x9C, 0x00, 0x73, 0x80, 0x1C, 0x70, 0x03, 0x8F, 0x00, 0xE0, 0xF0, 0x78, 0x1F, 0xFF, 0x01, 0xFF, 0x80, 0x0F, 0xC0, 0x00, 0x3F, 0xFF, 0xCF, 0xFF, 0xF7, 0xFF, 0xFC, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x78, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xF0, 0x00, 0x38, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x3F, 0xF0, 0x1F, 0xFF, 0x07, 0xC1, 0xF0, 0xE0, 0x0E, 0x38, 0x01, 0xC7, 0x00, 0x38, 0xE0, 0x0E, 0x1C, 0x01, 0xC3, 0xC0, 0xF0, 0x3F, 0xFC, 0x03, 0xFE, 0x01, 0xFF, 0xF0, 0x7C, 0x1E, 0x1E, 0x01, 0xE3, 0x80, 0x1C, 0xE0, 0x03, 0x9C, 0x00, 0x73, 0x80, 0x0E, 0x70, 0x03, 0x8F, 0x00, 0xF1, 0xF0, 0x7C, 0x1F, 0xFF, 0x01, 0xFF, 0xC0, 0x0F, 0xC0, 0x00, 0x00, 0x7E, 0x00, 0x3F, 0xF0, 0x1F, 0xFF, 0x07, 0xC1, 0xE0, 0xE0, 0x1E, 0x38, 0x01, 0xC7, 0x00, 0x39, 0xC0, 0x07, 0x38, 0x00, 0xE7, 0x00, 0x3C, 0xE0, 0x07, 0x9E, 0x01, 0xE3, 0xE0, 0xFC, 0x3F, 0xFB, 0x83, 0xFE, 0xF0, 0x3F, 0x1C, 0x00, 0x03, 0x80, 0x00, 0xF0, 0x00, 0x1C, 0x70, 0x07, 0x8E, 0x01, 0xE1, 0xE0, 0xF8, 0x1F, 0xFE, 0x01, 0xFF, 0x80, 0x0F, 0xC0, 0x00, 0x0E, 0x3C, 0x78, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xF1, 0xE3, 0x80, 0x07, 0x0F, 0x0F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x78, 0x70, 0x10, 0x10, 0x30, 0x20, 0xC0, 0x00, 0x00, 0x20, 0x00, 0x1C, 0x00, 0x1F, 0x80, 0x1F, 0xC0, 0x0F, 0xC0, 0x0F, 0xE0, 0x07, 0xE0, 0x03, 0xF0, 0x00, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x78, 0x00, 0x01, 0x00, 0x7F, 0xFF, 0xDF, 0xFF, 0xF7, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0xFF, 0x80, 0x10, 0x00, 0x03, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xE0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0x7E, 0x00, 0x7F, 0x00, 0x3F, 0x00, 0x07, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 0xF8, 0x0F, 0xFC, 0x1F, 0xFE, 0x3C, 0x1F, 0x78, 0x07, 0x70, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x0F, 0xE0, 0x3F, 0x80, 0x0F, 0x80, 0x03, 0xE0, 0x0F, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x3C, 0x0F, 0x01, 0xF0, 0x0F, 0x0F, 0x03, 0xFD, 0xC7, 0x8F, 0x03, 0xFE, 0xE1, 0xC7, 0x03, 0xC3, 0x60, 0xE7, 0x03, 0xC0, 0xF0, 0x77, 0x83, 0xC0, 0x70, 0x3B, 0x83, 0xC0, 0x78, 0x1D, 0xC1, 0xC0, 0x38, 0x1F, 0xC1, 0xE0, 0x1C, 0x0E, 0xE0, 0xE0, 0x1C, 0x0F, 0x70, 0x70, 0x0E, 0x07, 0x38, 0x38, 0x0E, 0x07, 0x9C, 0x1C, 0x0F, 0x07, 0x8E, 0x0F, 0x0F, 0x8F, 0x87, 0x03, 0xFD, 0xFF, 0x83, 0xC1, 0xFC, 0xFF, 0x80, 0xE0, 0x7C, 0x3F, 0x00, 0x78, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x01, 0xF8, 0x07, 0x00, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xDE, 0x00, 0x07, 0x9C, 0x00, 0x0E, 0x38, 0x00, 0x3C, 0x70, 0x00, 0x70, 0xF0, 0x01, 0xC1, 0xE0, 0x07, 0x83, 0xC0, 0x0E, 0x07, 0x80, 0x38, 0x07, 0x00, 0x70, 0x0E, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFC, 0x0F, 0xFF, 0xF8, 0x1C, 0x00, 0xF0, 0x70, 0x01, 0xE1, 0xE0, 0x01, 0xC3, 0x80, 0x03, 0x8F, 0x00, 0x07, 0x1C, 0x00, 0x0E, 0x78, 0x00, 0x1E, 0xE0, 0x00, 0x3C, 0x07, 0xFF, 0xC0, 0x3F, 0xFF, 0x81, 0xFF, 0xFC, 0x0E, 0x00, 0xF0, 0xF0, 0x03, 0x87, 0x00, 0x1C, 0x38, 0x00, 0xE1, 0xC0, 0x07, 0x0E, 0x00, 0x70, 0xF0, 0x03, 0x87, 0x00, 0x78, 0x3F, 0xFF, 0x81, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0xE0, 0x03, 0xC7, 0x00, 0x0E, 0x38, 0x00, 0x71, 0xC0, 0x03, 0x9E, 0x00, 0x1C, 0xE0, 0x00, 0xE7, 0x00, 0x0E, 0x38, 0x00, 0xF1, 0xC0, 0x0F, 0x1F, 0xFF, 0xF0, 0xFF, 0xFF, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x1F, 0x80, 0x03, 0xFF, 0x80, 0x1F, 0xFF, 0x01, 0xF8, 0x3E, 0x07, 0x80, 0x38, 0x38, 0x00, 0xF1, 0xC0, 0x01, 0xCF, 0x00, 0x07, 0x38, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x7B, 0x80, 0x01, 0xCE, 0x00, 0x0F, 0x3C, 0x00, 0x38, 0x70, 0x01, 0xE1, 0xE0, 0x0F, 0x07, 0xC0, 0xF8, 0x0F, 0xFF, 0xC0, 0x1F, 0xFC, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xE0, 0x38, 0x03, 0xE0, 0xF0, 0x03, 0xC1, 0xC0, 0x03, 0x83, 0x80, 0x03, 0x87, 0x00, 0x07, 0x1E, 0x00, 0x0E, 0x3C, 0x00, 0x1C, 0x70, 0x00, 0x38, 0xE0, 0x00, 0x71, 0xC0, 0x00, 0xE7, 0x80, 0x03, 0x8F, 0x00, 0x07, 0x1C, 0x00, 0x0E, 0x38, 0x00, 0x3C, 0x70, 0x00, 0x71, 0xE0, 0x01, 0xE3, 0x80, 0x03, 0x87, 0x00, 0x0E, 0x0E, 0x00, 0x3C, 0x1C, 0x01, 0xF0, 0x7F, 0xFF, 0xC0, 0xFF, 0xFE, 0x01, 0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF0, 0x38, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x01, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x7F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0x80, 0x07, 0xFF, 0xFC, 0x1F, 0xFF, 0xF0, 0x7F, 0xFF, 0xC1, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xC0, 0x00, 0x07, 0xFF, 0xF0, 0x1F, 0xFF, 0xC0, 0xFF, 0xFF, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1C, 0x00, 0x00, 0x70, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0xF8, 0x01, 0xFF, 0xFC, 0x03, 0xE0, 0x3E, 0x07, 0x80, 0x0E, 0x0F, 0x00, 0x0F, 0x1E, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0xF0, 0x07, 0xFE, 0xE0, 0x07, 0xFE, 0xE0, 0x07, 0xFE, 0xE0, 0x00, 0x0E, 0xE0, 0x00, 0x0E, 0xE0, 0x00, 0x0E, 0xE0, 0x00, 0x1C, 0xF0, 0x00, 0x3C, 0x70, 0x00, 0x7C, 0x78, 0x00, 0xFC, 0x3E, 0x03, 0xDC, 0x1F, 0xFF, 0x98, 0x0F, 0xFE, 0x18, 0x03, 0xF8, 0x18, 0x07, 0x00, 0x07, 0x83, 0x80, 0x03, 0xC1, 0xC0, 0x01, 0xC0, 0xE0, 0x00, 0xE0, 0xF0, 0x00, 0x70, 0x70, 0x00, 0x78, 0x38, 0x00, 0x3C, 0x1C, 0x00, 0x1C, 0x1E, 0x00, 0x0E, 0x0F, 0x00, 0x07, 0x07, 0x00, 0x07, 0x83, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE0, 0xE0, 0x00, 0x70, 0x70, 0x00, 0x78, 0x38, 0x00, 0x38, 0x1C, 0x00, 0x1C, 0x1E, 0x00, 0x0E, 0x0E, 0x00, 0x0F, 0x07, 0x00, 0x07, 0x83, 0x80, 0x03, 0x81, 0xC0, 0x01, 0xC1, 0xE0, 0x00, 0xE0, 0xE0, 0x00, 0xF0, 0x70, 0x00, 0x78, 0x00, 0x07, 0x0F, 0x0F, 0x0E, 0x0E, 0x0E, 0x0E, 0x1E, 0x1C, 0x1C, 0x1C, 0x1C, 0x3C, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x78, 0x70, 0x70, 0x70, 0x70, 0xF0, 0xF0, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x3C, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x1E, 0x1C, 0x07, 0x0E, 0x01, 0xC3, 0x80, 0x70, 0xE0, 0x3C, 0x38, 0x0E, 0x0F, 0x0F, 0x81, 0xFF, 0xC0, 0x7F, 0xE0, 0x07, 0xE0, 0x00, 0x07, 0x00, 0x07, 0x83, 0x80, 0x07, 0x81, 0xC0, 0x0F, 0x00, 0xE0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0x70, 0x0F, 0x00, 0x38, 0x0F, 0x00, 0x1C, 0x1F, 0x00, 0x1E, 0x1E, 0x00, 0x0F, 0x1E, 0x00, 0x07, 0x1E, 0x00, 0x03, 0x9F, 0x00, 0x01, 0xDF, 0xC0, 0x01, 0xFC, 0xE0, 0x00, 0xFC, 0x78, 0x00, 0x7C, 0x1C, 0x00, 0x3C, 0x0F, 0x00, 0x1C, 0x07, 0x80, 0x1E, 0x01, 0xE0, 0x0E, 0x00, 0xF0, 0x07, 0x00, 0x38, 0x03, 0x80, 0x1E, 0x01, 0xC0, 0x07, 0x01, 0xE0, 0x03, 0xC0, 0xE0, 0x00, 0xE0, 0x70, 0x00, 0x78, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x78, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xC0, 0x00, 0xF8, 0x3E, 0x00, 0x07, 0xC1, 0xF0, 0x00, 0x7E, 0x0F, 0x80, 0x03, 0xF0, 0xFC, 0x00, 0x3F, 0x07, 0x70, 0x01, 0xF8, 0x3B, 0x80, 0x1D, 0xC1, 0xDC, 0x00, 0xEE, 0x0E, 0xE0, 0x0E, 0xE0, 0xE7, 0x00, 0x77, 0x07, 0x38, 0x07, 0x38, 0x39, 0xC0, 0x31, 0xC1, 0xCE, 0x03, 0x9E, 0x1E, 0x38, 0x38, 0xE0, 0xE1, 0xC1, 0xC7, 0x07, 0x0E, 0x1C, 0x38, 0x38, 0x70, 0xE1, 0xC1, 0xC3, 0x8E, 0x1E, 0x1E, 0x1C, 0x70, 0xE0, 0xE0, 0xE7, 0x07, 0x07, 0x07, 0x38, 0x38, 0x38, 0x1F, 0x81, 0xC1, 0xC0, 0xF8, 0x1E, 0x1C, 0x07, 0xC0, 0xE0, 0xE0, 0x3C, 0x07, 0x07, 0x01, 0xE0, 0x38, 0x00, 0x07, 0x80, 0x03, 0x83, 0xE0, 0x01, 0xC1, 0xF0, 0x00, 0xE0, 0xF8, 0x00, 0xE0, 0xFE, 0x00, 0x70, 0x7F, 0x00, 0x38, 0x3B, 0xC0, 0x1C, 0x1D, 0xE0, 0x1E, 0x0E, 0x70, 0x0E, 0x0E, 0x3C, 0x07, 0x07, 0x0E, 0x03, 0x83, 0x87, 0x81, 0xC1, 0xC3, 0xC1, 0xE1, 0xE0, 0xE0, 0xE0, 0xE0, 0x78, 0x70, 0x70, 0x1C, 0x38, 0x38, 0x0F, 0x1C, 0x1C, 0x07, 0x9E, 0x1E, 0x01, 0xCE, 0x0E, 0x00, 0xF7, 0x07, 0x00, 0x3B, 0x83, 0x80, 0x1F, 0xC1, 0xC0, 0x07, 0xC1, 0xC0, 0x03, 0xE0, 0xE0, 0x01, 0xF0, 0x70, 0x00, 0x78, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x03, 0xE0, 0x7C, 0x07, 0x80, 0x1E, 0x0F, 0x00, 0x0E, 0x1C, 0x00, 0x0F, 0x3C, 0x00, 0x07, 0x38, 0x00, 0x07, 0x70, 0x00, 0x07, 0x70, 0x00, 0x07, 0x70, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xE0, 0x00, 0x0E, 0xE0, 0x00, 0x0E, 0xE0, 0x00, 0x0E, 0xE0, 0x00, 0x1C, 0xE0, 0x00, 0x1C, 0xF0, 0x00, 0x38, 0x70, 0x00, 0x78, 0x78, 0x00, 0xF0, 0x3E, 0x07, 0xE0, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0xC0, 0x7F, 0xFF, 0x81, 0xC0, 0x1F, 0x0F, 0x00, 0x3C, 0x38, 0x00, 0x70, 0xE0, 0x01, 0xC3, 0x80, 0x07, 0x1E, 0x00, 0x1C, 0x78, 0x00, 0xE1, 0xC0, 0x07, 0x87, 0x00, 0x3C, 0x1F, 0xFF, 0xE0, 0xFF, 0xFF, 0x03, 0xFF, 0xF0, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1C, 0x00, 0x00, 0x70, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7C, 0x07, 0xC0, 0x78, 0x00, 0xF0, 0x78, 0x00, 0x38, 0x78, 0x00, 0x1E, 0x78, 0x00, 0x07, 0x38, 0x00, 0x03, 0xBC, 0x00, 0x01, 0xDC, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1D, 0xC0, 0x00, 0x0E, 0xE0, 0x00, 0x0F, 0x70, 0x00, 0x07, 0x38, 0x00, 0x87, 0x9E, 0x00, 0xE7, 0x87, 0x00, 0x7F, 0x83, 0xC0, 0x1F, 0x80, 0xF8, 0x1F, 0x80, 0x3F, 0xFF, 0xE0, 0x0F, 0xFF, 0x78, 0x01, 0xFE, 0x1E, 0x00, 0x00, 0x07, 0x00, 0x00, 0x02, 0x00, 0x07, 0xFF, 0xF0, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0, 0x38, 0x00, 0xF0, 0xF0, 0x00, 0xE1, 0xC0, 0x01, 0xC3, 0x80, 0x03, 0x87, 0x00, 0x07, 0x1E, 0x00, 0x0E, 0x3C, 0x00, 0x38, 0x70, 0x00, 0xF0, 0xE0, 0x03, 0xC1, 0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x0F, 0xFF, 0xF8, 0x1C, 0x00, 0x78, 0x38, 0x00, 0x70, 0x70, 0x00, 0xE1, 0xE0, 0x01, 0xC3, 0x80, 0x03, 0x87, 0x00, 0x06, 0x0E, 0x00, 0x1C, 0x1C, 0x00, 0x38, 0x78, 0x00, 0x70, 0xE0, 0x00, 0xE1, 0xC0, 0x01, 0xE0, 0x00, 0x3F, 0xC0, 0x07, 0xFF, 0xC0, 0x3F, 0xFF, 0x81, 0xF0, 0x1E, 0x0F, 0x00, 0x3C, 0x38, 0x00, 0x71, 0xC0, 0x01, 0xC7, 0x00, 0x07, 0x1C, 0x00, 0x00, 0x78, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xFE, 0x00, 0x07, 0xFF, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xF3, 0x80, 0x01, 0xCE, 0x00, 0x07, 0x38, 0x00, 0x18, 0xE0, 0x00, 0xE3, 0xC0, 0x07, 0x07, 0x80, 0x7C, 0x1F, 0xFF, 0xE0, 0x3F, 0xFE, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x03, 0xC0, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x78, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x0E, 0x00, 0x0F, 0x0E, 0x00, 0x0F, 0x0E, 0x00, 0x0E, 0x0E, 0x00, 0x0E, 0x1E, 0x00, 0x0E, 0x1C, 0x00, 0x1E, 0x1C, 0x00, 0x1C, 0x1C, 0x00, 0x1C, 0x3C, 0x00, 0x1C, 0x3C, 0x00, 0x1C, 0x38, 0x00, 0x3C, 0x38, 0x00, 0x38, 0x38, 0x00, 0x38, 0x78, 0x00, 0x38, 0x70, 0x00, 0x78, 0x70, 0x00, 0x78, 0x70, 0x00, 0x70, 0xF0, 0x00, 0x70, 0xF0, 0x00, 0x70, 0xE0, 0x00, 0xF0, 0xE0, 0x00, 0xE0, 0xF0, 0x03, 0xE0, 0x78, 0x0F, 0xC0, 0x7F, 0xFF, 0x80, 0x1F, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0xE0, 0x00, 0x3F, 0x80, 0x03, 0xFC, 0x00, 0x1D, 0xE0, 0x01, 0xE7, 0x00, 0x0E, 0x38, 0x00, 0xE1, 0xC0, 0x07, 0x0E, 0x00, 0x70, 0x70, 0x07, 0x83, 0xC0, 0x38, 0x1E, 0x03, 0xC0, 0xF0, 0x1C, 0x03, 0x81, 0xE0, 0x1C, 0x0E, 0x00, 0xE0, 0xF0, 0x07, 0x07, 0x00, 0x3C, 0x70, 0x01, 0xE3, 0x80, 0x0F, 0x38, 0x00, 0x39, 0xC0, 0x01, 0xDC, 0x00, 0x0E, 0xE0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0xE0, 0x07, 0x80, 0x1E, 0xE0, 0x07, 0xC0, 0x1E, 0xE0, 0x0F, 0xC0, 0x1C, 0xE0, 0x0F, 0xC0, 0x3C, 0xE0, 0x1F, 0xC0, 0x38, 0xE0, 0x1D, 0xC0, 0x78, 0xE0, 0x3D, 0xC0, 0x70, 0xE0, 0x39, 0xC0, 0xF0, 0xE0, 0x79, 0xC0, 0xE0, 0xE0, 0x71, 0xC0, 0xE0, 0xE0, 0xF1, 0xC1, 0xC0, 0xE0, 0xE1, 0xC1, 0xC0, 0xE1, 0xE1, 0xC3, 0xC0, 0x61, 0xC1, 0xC3, 0x80, 0x63, 0xC1, 0xC7, 0x80, 0x63, 0x80, 0xE7, 0x00, 0x67, 0x80, 0xEF, 0x00, 0x67, 0x00, 0xEE, 0x00, 0x7F, 0x00, 0xEE, 0x00, 0x7E, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0xFC, 0x00, 0x7C, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0xF8, 0x00, 0x78, 0x00, 0xF8, 0x00, 0x78, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x03, 0xC0, 0x78, 0x00, 0xF0, 0x07, 0x80, 0x1C, 0x00, 0xF0, 0x07, 0x80, 0x0F, 0x01, 0xE0, 0x01, 0xE0, 0x78, 0x00, 0x1C, 0x1E, 0x00, 0x03, 0xC7, 0x80, 0x00, 0x39, 0xE0, 0x00, 0x07, 0xB8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xF3, 0x80, 0x00, 0x3C, 0x78, 0x00, 0x0F, 0x0F, 0x00, 0x03, 0xC0, 0xF0, 0x00, 0x70, 0x1E, 0x00, 0x1E, 0x01, 0xE0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x03, 0xC0, 0x78, 0x00, 0x78, 0x1E, 0x00, 0x0F, 0x00, 0xF0, 0x00, 0x3C, 0xE0, 0x00, 0x71, 0xE0, 0x01, 0xE3, 0xC0, 0x07, 0x83, 0xC0, 0x1E, 0x07, 0x80, 0x78, 0x07, 0x00, 0xE0, 0x0F, 0x03, 0xC0, 0x1E, 0x0F, 0x00, 0x1C, 0x3C, 0x00, 0x3C, 0xF0, 0x00, 0x39, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFE, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xF8, 0x00, 0x01, 0xF8, 0x1F, 0xC0, 0xFE, 0x07, 0x00, 0x38, 0x03, 0xC0, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x03, 0xC0, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x78, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x70, 0x03, 0xF8, 0x1F, 0xC0, 0xFE, 0x00, 0xCC, 0xCC, 0xCC, 0x46, 0x66, 0x66, 0x66, 0x66, 0x66, 0x62, 0x33, 0x33, 0x33, 0x03, 0xF8, 0x1F, 0xC0, 0xFE, 0x00, 0x70, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x1E, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x1E, 0x00, 0xE0, 0x07, 0x03, 0xF8, 0x1F, 0xC0, 0xFC, 0x00, 0x00, 0xF0, 0x03, 0xC0, 0x1F, 0x00, 0x7C, 0x03, 0xB8, 0x1C, 0xE0, 0x63, 0x83, 0x8E, 0x1C, 0x38, 0x60, 0x73, 0x81, 0xCC, 0x07, 0x70, 0x1F, 0x80, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xF1, 0xC3, 0x86, 0x0C, 0x00, 0xFE, 0x01, 0xFF, 0xE0, 0xFF, 0xFC, 0x3C, 0x0F, 0x1C, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x1F, 0x83, 0xFF, 0xE3, 0xFE, 0x39, 0xF0, 0x1E, 0xF0, 0x07, 0x38, 0x01, 0xCE, 0x00, 0xF3, 0xC0, 0xFC, 0xFF, 0xF7, 0x9F, 0xF1, 0xE1, 0xF0, 0x38, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0xF0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x71, 0xF0, 0x0E, 0xFF, 0x83, 0xFF, 0xF8, 0x7F, 0x0F, 0x0F, 0x80, 0xF1, 0xE0, 0x0E, 0x38, 0x01, 0xCF, 0x00, 0x39, 0xE0, 0x07, 0x38, 0x00, 0xE7, 0x00, 0x38, 0xE0, 0x07, 0x3C, 0x00, 0xE7, 0x80, 0x38, 0xF8, 0x0F, 0x1F, 0x87, 0xC3, 0xFF, 0xF0, 0xE7, 0xFC, 0x1C, 0x7E, 0x00, 0x01, 0xF8, 0x07, 0xFC, 0x0F, 0xFE, 0x1E, 0x0F, 0x3C, 0x07, 0x78, 0x07, 0x70, 0x07, 0x70, 0x00, 0xF0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x0E, 0xE0, 0x1C, 0xF0, 0x3C, 0x78, 0x78, 0x7F, 0xF0, 0x3F, 0xE0, 0x0F, 0x80, 0x00, 0x00, 0x70, 0x00, 0x0F, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x01, 0xE0, 0x1F, 0x1C, 0x07, 0xFD, 0xC0, 0xFF, 0xDC, 0x1E, 0x0F, 0xC3, 0xC0, 0x7C, 0x38, 0x07, 0x87, 0x00, 0x38, 0x70, 0x03, 0x8F, 0x00, 0x38, 0xE0, 0x07, 0x8E, 0x00, 0x70, 0xE0, 0x07, 0x0E, 0x00, 0xF0, 0xE0, 0x0F, 0x0F, 0x01, 0xF0, 0x78, 0x7E, 0x07, 0xFF, 0xE0, 0x3F, 0xEE, 0x01, 0xF8, 0xE0, 0x01, 0xF8, 0x03, 0xFF, 0x03, 0xFF, 0xC3, 0xC1, 0xF3, 0xC0, 0x79, 0xC0, 0x1D, 0xC0, 0x0E, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x73, 0xC0, 0x78, 0xF0, 0x78, 0x7F, 0xF8, 0x1F, 0xF8, 0x03, 0xF0, 0x00, 0x01, 0xE0, 0x7C, 0x1F, 0x83, 0x80, 0x70, 0x1C, 0x03, 0x83, 0xFC, 0x7F, 0x8F, 0xF0, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x0F, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0xE0, 0x1C, 0x00, 0x00, 0xFC, 0x60, 0x7F, 0xCC, 0x1F, 0xFF, 0x87, 0xC3, 0xF1, 0xE0, 0x3E, 0x38, 0x03, 0x8E, 0x00, 0x71, 0xC0, 0x0E, 0x38, 0x01, 0xCE, 0x00, 0x79, 0xC0, 0x0E, 0x38, 0x01, 0xC7, 0x00, 0x78, 0xE0, 0x0F, 0x1E, 0x03, 0xC1, 0xE1, 0xF8, 0x3F, 0xFF, 0x03, 0xFE, 0xE0, 0x1F, 0x1C, 0x00, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x18, 0x38, 0x07, 0x07, 0x83, 0xC0, 0x7F, 0xF8, 0x0F, 0xFC, 0x00, 0x7E, 0x00, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x0F, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0xFC, 0x0E, 0xFF, 0x87, 0xFF, 0xF1, 0xF8, 0x3C, 0x7C, 0x07, 0x1E, 0x01, 0xC7, 0x00, 0x73, 0xC0, 0x1C, 0xE0, 0x0F, 0x38, 0x03, 0x8E, 0x00, 0xE3, 0x80, 0x39, 0xE0, 0x0E, 0x70, 0x07, 0x9C, 0x01, 0xC7, 0x00, 0x71, 0xC0, 0x1C, 0xE0, 0x07, 0x38, 0x03, 0x80, 0x07, 0x07, 0x0F, 0x0E, 0x00, 0x00, 0x00, 0x1E, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, 0x38, 0x38, 0x38, 0x38, 0x78, 0x70, 0x70, 0x70, 0x70, 0xF0, 0xE0, 0xE0, 0x00, 0x3C, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x0E, 0x00, 0x38, 0x00, 0xE0, 0x03, 0x80, 0x1E, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x38, 0x00, 0xE0, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x0F, 0x00, 0x38, 0x00, 0xE0, 0x1F, 0x80, 0x7C, 0x03, 0xE0, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0xF0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x1E, 0x0E, 0x07, 0x83, 0xC1, 0xE0, 0x70, 0x70, 0x0E, 0x1C, 0x01, 0xCF, 0x00, 0x3B, 0xC0, 0x0F, 0xF8, 0x01, 0xFF, 0x80, 0x3E, 0x70, 0x07, 0x8E, 0x00, 0xE0, 0xE0, 0x38, 0x1C, 0x07, 0x03, 0xC0, 0xE0, 0x38, 0x1C, 0x07, 0x03, 0x80, 0xF0, 0xE0, 0x0E, 0x1C, 0x01, 0xE0, 0x07, 0x07, 0x0F, 0x0E, 0x0E, 0x0E, 0x0E, 0x1E, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, 0x38, 0x38, 0x38, 0x38, 0x78, 0x70, 0x70, 0x70, 0x70, 0xF0, 0xE0, 0xE0, 0x1E, 0x7C, 0x0F, 0x83, 0xBF, 0xE7, 0xF8, 0x7F, 0xFD, 0xFF, 0x8F, 0xC3, 0xF0, 0xF1, 0xE0, 0x3C, 0x0E, 0x38, 0x07, 0x01, 0xCF, 0x01, 0xE0, 0x39, 0xC0, 0x38, 0x07, 0x38, 0x07, 0x00, 0xE7, 0x00, 0xE0, 0x1C, 0xE0, 0x1C, 0x07, 0x3C, 0x07, 0x00, 0xE7, 0x00, 0xE0, 0x1C, 0xE0, 0x1C, 0x03, 0x9C, 0x03, 0x80, 0xF3, 0x80, 0x70, 0x1C, 0x70, 0x1C, 0x03, 0x9C, 0x03, 0x80, 0x73, 0x80, 0x70, 0x0E, 0x00, 0x1E, 0x3E, 0x07, 0x7F, 0xE1, 0xFF, 0xF8, 0x7E, 0x0F, 0x1F, 0x01, 0xC7, 0x80, 0x73, 0xC0, 0x1C, 0xE0, 0x07, 0x38, 0x03, 0xCE, 0x00, 0xE3, 0x80, 0x39, 0xE0, 0x0E, 0x70, 0x03, 0x9C, 0x01, 0xC7, 0x00, 0x71, 0xC0, 0x1C, 0x70, 0x07, 0x38, 0x01, 0xCE, 0x00, 0xE0, 0x01, 0xF8, 0x03, 0xFF, 0x03, 0xFF, 0xC3, 0xE1, 0xE3, 0xC0, 0x79, 0xC0, 0x1D, 0xC0, 0x0E, 0xE0, 0x07, 0x70, 0x03, 0xF0, 0x01, 0xF8, 0x01, 0xDC, 0x00, 0xEE, 0x00, 0x77, 0x00, 0x73, 0xC0, 0x78, 0xF0, 0xF8, 0x7F, 0xF8, 0x1F, 0xF8, 0x03, 0xF0, 0x00, 0x03, 0x8F, 0x80, 0x1D, 0xFF, 0x01, 0xFF, 0xFC, 0x0F, 0xC1, 0xE0, 0x7C, 0x07, 0x83, 0xC0, 0x1C, 0x1C, 0x00, 0xE1, 0xE0, 0x07, 0x0E, 0x00, 0x38, 0x70, 0x01, 0xC3, 0x80, 0x1E, 0x1C, 0x00, 0xE1, 0xE0, 0x07, 0x0F, 0x00, 0x70, 0x78, 0x07, 0x83, 0xF0, 0xF8, 0x3F, 0xFF, 0x81, 0xDF, 0xF8, 0x0E, 0x3F, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0xF8, 0xF0, 0x7F, 0xEE, 0x0F, 0xFF, 0xE1, 0xF0, 0xFE, 0x3C, 0x07, 0xE3, 0x80, 0x3E, 0x70, 0x03, 0xC7, 0x00, 0x3C, 0x70, 0x03, 0xCE, 0x00, 0x3C, 0xE0, 0x07, 0x8E, 0x00, 0x78, 0xE0, 0x07, 0x8E, 0x00, 0xF8, 0xF0, 0x1F, 0x87, 0x87, 0xF0, 0x7F, 0xF7, 0x03, 0xFE, 0x70, 0x0F, 0x8F, 0x00, 0x00, 0xF0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x01, 0xE0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x04, 0x00, 0x1E, 0x78, 0xE7, 0xC7, 0x7C, 0x3F, 0x01, 0xF0, 0x0F, 0x00, 0xF0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0x70, 0x07, 0x00, 0x38, 0x00, 0x01, 0xF8, 0x07, 0xFE, 0x0F, 0xFF, 0x1E, 0x0F, 0x3C, 0x07, 0x38, 0x07, 0x38, 0x00, 0x3C, 0x00, 0x3F, 0x80, 0x1F, 0xF8, 0x07, 0xFC, 0x00, 0x7E, 0x00, 0x0E, 0xE0, 0x0E, 0xE0, 0x1E, 0xF0, 0x3C, 0x7F, 0xF8, 0x7F, 0xF0, 0x1F, 0xC0, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x7F, 0xDF, 0xEF, 0xF8, 0x70, 0x1C, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x1E, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x0F, 0x03, 0x80, 0xFC, 0x3F, 0x07, 0x80, 0x1C, 0x03, 0xC7, 0x00, 0xE1, 0xC0, 0x38, 0xF0, 0x0E, 0x38, 0x03, 0x8E, 0x00, 0xE3, 0x80, 0x70, 0xE0, 0x1C, 0x78, 0x07, 0x1C, 0x01, 0xC7, 0x00, 0x71, 0xC0, 0x3C, 0x70, 0x0E, 0x38, 0x07, 0x8E, 0x03, 0xE3, 0x81, 0xF8, 0xFF, 0xFE, 0x1F, 0xFF, 0x03, 0xF1, 0xC0, 0xE0, 0x07, 0xE0, 0x0F, 0xE0, 0x0E, 0xE0, 0x1C, 0x70, 0x1C, 0x70, 0x38, 0x70, 0x38, 0x70, 0x70, 0x70, 0xF0, 0x70, 0xE0, 0x71, 0xC0, 0x71, 0xC0, 0x33, 0x80, 0x3B, 0x80, 0x3F, 0x00, 0x3F, 0x00, 0x3E, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0xE0, 0x1C, 0x07, 0xE0, 0x3C, 0x0E, 0xE0, 0x3C, 0x0E, 0xE0, 0x7C, 0x1C, 0xE0, 0x7C, 0x1C, 0xE0, 0xEC, 0x38, 0xE0, 0xEC, 0x38, 0x61, 0xCC, 0x70, 0x61, 0xCC, 0x70, 0x63, 0x8C, 0xE0, 0x73, 0x8C, 0xE0, 0x77, 0x0C, 0xC0, 0x77, 0x0D, 0xC0, 0x7E, 0x0D, 0x80, 0x7E, 0x0F, 0x80, 0x7C, 0x0F, 0x80, 0x7C, 0x0F, 0x00, 0x78, 0x0F, 0x00, 0x78, 0x0E, 0x00, 0x0E, 0x00, 0xE1, 0xE0, 0x38, 0x1C, 0x0E, 0x03, 0xC3, 0x80, 0x38, 0xE0, 0x07, 0xBC, 0x00, 0x77, 0x00, 0x0F, 0xC0, 0x00, 0xF0, 0x00, 0x1C, 0x00, 0x07, 0xC0, 0x01, 0xF8, 0x00, 0x77, 0x80, 0x1E, 0x70, 0x07, 0x8F, 0x00, 0xE0, 0xE0, 0x38, 0x1C, 0x0E, 0x01, 0xC3, 0x80, 0x38, 0x00, 0x0E, 0x00, 0x70, 0xF0, 0x0F, 0x07, 0x00, 0xE0, 0x70, 0x1C, 0x07, 0x01, 0xC0, 0x70, 0x38, 0x07, 0x03, 0x80, 0x70, 0x70, 0x07, 0x07, 0x00, 0x70, 0xE0, 0x03, 0x9E, 0x00, 0x39, 0xC0, 0x03, 0xB8, 0x00, 0x3B, 0x80, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xC0, 0x00, 0xF0, 0x00, 0x00, 0x07, 0xFF, 0xC0, 0xFF, 0xF8, 0x3F, 0xFF, 0x00, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0x7F, 0xFE, 0x1F, 0xFF, 0xC3, 0xFF, 0xF8, 0x00, 0x00, 0x70, 0x1F, 0x01, 0xF0, 0x3C, 0x03, 0x80, 0x38, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0xE0, 0x0E, 0x01, 0xE0, 0x3C, 0x0F, 0x80, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0x80, 0x38, 0x03, 0x80, 0x38, 0x03, 0x80, 0x38, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x0E, 0x00, 0xF8, 0x0F, 0x80, 0x78, 0x00, 0x01, 0x80, 0xC0, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x06, 0x03, 0x01, 0x81, 0xC0, 0xC0, 0x60, 0x30, 0x18, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x81, 0x80, 0xC0, 0x60, 0x30, 0x38, 0x18, 0x0C, 0x06, 0x03, 0x03, 0x01, 0x80, 0xC0, 0x00, 0x01, 0xE0, 0x1F, 0x01, 0xF0, 0x07, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x01, 0xC0, 0x1C, 0x01, 0xC0, 0x1C, 0x01, 0xC0, 0x1C, 0x01, 0xE0, 0x0F, 0x00, 0x70, 0x1F, 0x03, 0xC0, 0x78, 0x07, 0x00, 0x70, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x01, 0xC0, 0x1C, 0x03, 0xC0, 0xF8, 0x0F, 0x80, 0xE0, 0x00, 0x1C, 0x00, 0x3F, 0x00, 0x7F, 0x83, 0x63, 0xC7, 0xC1, 0xFE, 0x00, 0xFC, 0x00, 0x78}; const GFXglyph FreeSansOblique18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 10, 0, 1}, // 0x20 ' ' {0, 9, 26, 10, 4, -25}, // 0x21 '!' {30, 10, 9, 12, 6, -24}, // 0x22 '"' {42, 21, 25, 19, 2, -24}, // 0x23 '#' {108, 20, 31, 19, 2, -26}, // 0x24 '$' {186, 26, 25, 31, 5, -24}, // 0x25 '%' {268, 20, 25, 23, 3, -24}, // 0x26 '&' {331, 4, 9, 7, 6, -24}, // 0x27 ''' {336, 12, 33, 12, 4, -25}, // 0x28 '(' {386, 12, 33, 12, -1, -24}, // 0x29 ')' {436, 10, 10, 14, 6, -25}, // 0x2A '*' {449, 18, 16, 20, 3, -15}, // 0x2B '+' {485, 5, 8, 10, 2, -2}, // 0x2C ',' {490, 9, 3, 12, 3, -10}, // 0x2D '-' {494, 4, 4, 10, 3, -3}, // 0x2E '.' {496, 15, 26, 10, 0, -25}, // 0x2F '/' {545, 18, 25, 19, 3, -24}, // 0x30 '0' {602, 10, 25, 19, 7, -24}, // 0x31 '1' {634, 20, 25, 19, 2, -24}, // 0x32 '2' {697, 19, 25, 19, 2, -24}, // 0x33 '3' {757, 18, 25, 19, 2, -24}, // 0x34 '4' {814, 20, 25, 19, 2, -24}, // 0x35 '5' {877, 19, 25, 19, 3, -24}, // 0x36 '6' {937, 18, 25, 19, 5, -24}, // 0x37 '7' {994, 19, 25, 19, 3, -24}, // 0x38 '8' {1054, 19, 25, 19, 2, -24}, // 0x39 '9' {1114, 7, 19, 10, 4, -18}, // 0x3A ':' {1131, 8, 24, 10, 3, -18}, // 0x3B ';' {1155, 19, 17, 20, 3, -16}, // 0x3C '<' {1196, 18, 9, 20, 3, -12}, // 0x3D '=' {1217, 19, 17, 20, 2, -15}, // 0x3E '>' {1258, 16, 26, 19, 6, -25}, // 0x3F '?' {1310, 33, 31, 36, 3, -25}, // 0x40 '@' {1438, 23, 26, 23, 0, -25}, // 0x41 'A' {1513, 21, 26, 23, 3, -25}, // 0x42 'B' {1582, 22, 26, 25, 4, -25}, // 0x43 'C' {1654, 23, 26, 25, 3, -25}, // 0x44 'D' {1729, 23, 26, 23, 3, -25}, // 0x45 'E' {1804, 22, 26, 21, 3, -25}, // 0x46 'F' {1876, 24, 26, 27, 4, -25}, // 0x47 'G' {1954, 25, 26, 25, 3, -25}, // 0x48 'H' {2036, 8, 26, 10, 4, -25}, // 0x49 'I' {2062, 18, 26, 18, 2, -25}, // 0x4A 'J' {2121, 25, 26, 23, 3, -25}, // 0x4B 'K' {2203, 16, 26, 19, 3, -25}, // 0x4C 'L' {2255, 29, 26, 30, 3, -25}, // 0x4D 'M' {2350, 25, 26, 26, 3, -25}, // 0x4E 'N' {2432, 24, 26, 27, 4, -25}, // 0x4F 'O' {2510, 22, 26, 23, 3, -25}, // 0x50 'P' {2582, 25, 28, 27, 4, -25}, // 0x51 'Q' {2670, 23, 26, 25, 3, -25}, // 0x52 'R' {2745, 22, 26, 23, 3, -25}, // 0x53 'S' {2817, 20, 26, 21, 6, -25}, // 0x54 'T' {2882, 24, 26, 25, 4, -25}, // 0x55 'U' {2960, 21, 26, 23, 6, -25}, // 0x56 'V' {3029, 32, 26, 33, 6, -25}, // 0x57 'W' {3133, 27, 26, 23, 1, -25}, // 0x58 'X' {3221, 23, 26, 24, 6, -25}, // 0x59 'Y' {3296, 25, 26, 21, 1, -25}, // 0x5A 'Z' {3378, 13, 33, 10, 1, -25}, // 0x5B '[' {3432, 4, 26, 10, 5, -25}, // 0x5C '\' {3445, 13, 33, 10, -1, -24}, // 0x5D ']' {3499, 14, 14, 16, 3, -24}, // 0x5E '^' {3524, 21, 2, 19, -2, 5}, // 0x5F '_' {3530, 6, 5, 12, 6, -25}, // 0x60 '`' {3534, 18, 19, 19, 2, -18}, // 0x61 'a' {3577, 19, 26, 20, 2, -25}, // 0x62 'b' {3639, 16, 19, 18, 3, -18}, // 0x63 'c' {3677, 20, 26, 20, 3, -25}, // 0x64 'd' {3742, 17, 19, 19, 3, -18}, // 0x65 'e' {3783, 11, 26, 9, 2, -25}, // 0x66 'f' {3819, 19, 27, 19, 2, -18}, // 0x67 'g' {3884, 18, 26, 19, 2, -25}, // 0x68 'h' {3943, 8, 26, 8, 2, -25}, // 0x69 'i' {3969, 14, 34, 8, -2, -25}, // 0x6A 'j' {4029, 19, 26, 18, 2, -25}, // 0x6B 'k' {4091, 8, 26, 8, 2, -25}, // 0x6C 'l' {4117, 27, 19, 29, 2, -18}, // 0x6D 'm' {4182, 18, 19, 19, 2, -18}, // 0x6E 'n' {4225, 17, 19, 19, 3, -18}, // 0x6F 'o' {4266, 21, 26, 20, 0, -18}, // 0x70 'p' {4335, 20, 27, 19, 2, -18}, // 0x71 'q' {4403, 13, 19, 11, 2, -18}, // 0x72 'r' {4434, 16, 19, 18, 2, -18}, // 0x73 's' {4472, 10, 23, 9, 3, -22}, // 0x74 't' {4501, 18, 19, 19, 3, -18}, // 0x75 'u' {4544, 16, 19, 17, 4, -18}, // 0x76 'v' {4582, 24, 19, 25, 4, -18}, // 0x77 'w' {4639, 19, 19, 17, 1, -18}, // 0x78 'x' {4685, 20, 27, 17, 0, -18}, // 0x79 'y' {4753, 19, 19, 17, 1, -18}, // 0x7A 'z' {4799, 12, 33, 12, 3, -25}, // 0x7B '{' {4849, 9, 33, 9, 2, -25}, // 0x7C '|' {4887, 12, 33, 12, 0, -24}, // 0x7D '}' {4937, 16, 7, 20, 5, -15}}; // 0x7E '~' const GFXfont FreeSansOblique18pt7b PROGMEM = { (uint8_t *)FreeSansOblique18pt7bBitmaps, (GFXglyph *)FreeSansOblique18pt7bGlyphs, 0x20, 0x7E, 42}; // Approx. 5623 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansOblique24pt7b.h ================================================ const uint8_t FreeSansOblique24pt7bBitmaps[] PROGMEM = { 0x01, 0xE0, 0x3C, 0x0F, 0x81, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x38, 0x07, 0x00, 0xE0, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x1E, 0x07, 0x80, 0xF0, 0x1E, 0x00, 0x78, 0x7B, 0xC3, 0xDE, 0x1F, 0xE1, 0xEF, 0x0F, 0x78, 0x7B, 0xC3, 0xDC, 0x1C, 0xE0, 0xE7, 0x07, 0x30, 0x31, 0x81, 0x80, 0x00, 0x07, 0x81, 0xC0, 0x00, 0x78, 0x3C, 0x00, 0x07, 0x03, 0xC0, 0x00, 0xF0, 0x38, 0x00, 0x0E, 0x07, 0x80, 0x01, 0xE0, 0x70, 0x00, 0x1E, 0x0F, 0x00, 0x01, 0xC0, 0xF0, 0x00, 0x3C, 0x0E, 0x00, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFE, 0x00, 0x70, 0x3C, 0x00, 0x0F, 0x03, 0x80, 0x00, 0xF0, 0x78, 0x00, 0x0E, 0x07, 0x80, 0x01, 0xE0, 0x70, 0x00, 0x1C, 0x0F, 0x00, 0x03, 0xC0, 0xE0, 0x00, 0x3C, 0x1E, 0x00, 0x03, 0x81, 0xE0, 0x0F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xE0, 0x0F, 0x03, 0x80, 0x00, 0xE0, 0x78, 0x00, 0x1E, 0x07, 0x00, 0x01, 0xC0, 0xF0, 0x00, 0x1C, 0x0F, 0x00, 0x03, 0xC0, 0xE0, 0x00, 0x38, 0x1E, 0x00, 0x07, 0x81, 0xC0, 0x00, 0x78, 0x3C, 0x00, 0x07, 0x03, 0xC0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0x00, 0x7F, 0xFF, 0xE0, 0x1F, 0x18, 0xF8, 0x0F, 0x8E, 0x1F, 0x07, 0xC3, 0x83, 0xC1, 0xE0, 0xE0, 0xF0, 0x70, 0x38, 0x3C, 0x3C, 0x0C, 0x0F, 0x0F, 0x07, 0x00, 0x03, 0xC1, 0xC0, 0x00, 0xF0, 0x70, 0x00, 0x3E, 0x1C, 0x00, 0x0F, 0xE6, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x3F, 0xFE, 0x00, 0x03, 0xFF, 0xE0, 0x00, 0x3F, 0xFC, 0x00, 0x03, 0xFF, 0x80, 0x01, 0xC7, 0xF0, 0x00, 0x70, 0x7C, 0x00, 0x1C, 0x0F, 0x00, 0x06, 0x03, 0xCF, 0x03, 0x80, 0xF3, 0xC0, 0xE0, 0x3C, 0xF0, 0x38, 0x0E, 0x3C, 0x0E, 0x07, 0x8F, 0x03, 0x01, 0xE3, 0xE1, 0xC0, 0xF0, 0xF8, 0x70, 0x78, 0x1F, 0x9C, 0xFC, 0x03, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x1F, 0x00, 0x00, 0x70, 0x07, 0xFC, 0x00, 0x0E, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x1E, 0x1E, 0x00, 0x3C, 0x03, 0x80, 0xF0, 0x03, 0x80, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x70, 0x0E, 0x00, 0xE0, 0x07, 0x01, 0xC0, 0x0E, 0x00, 0x70, 0x3C, 0x00, 0xE0, 0x0E, 0x03, 0x80, 0x0E, 0x00, 0xE0, 0x70, 0x00, 0xF0, 0x1C, 0x0E, 0x00, 0x07, 0x87, 0xC1, 0xE0, 0x00, 0x7F, 0xF8, 0x1C, 0x00, 0x03, 0xFE, 0x03, 0x80, 0x00, 0x0F, 0x80, 0x70, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x1F, 0x00, 0x00, 0x1C, 0x07, 0xFC, 0x00, 0x03, 0x80, 0xFF, 0xE0, 0x00, 0x70, 0x1E, 0x1E, 0x00, 0x0F, 0x03, 0x80, 0xF0, 0x00, 0xE0, 0x70, 0x07, 0x00, 0x1C, 0x07, 0x00, 0x70, 0x03, 0x80, 0xE0, 0x07, 0x00, 0x70, 0x0E, 0x00, 0x70, 0x0F, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x1C, 0x00, 0xF0, 0x1C, 0x03, 0x80, 0x07, 0x87, 0xC0, 0x70, 0x00, 0x7F, 0xF8, 0x07, 0x00, 0x03, 0xFE, 0x00, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0xF8, 0x7C, 0x00, 0x78, 0x0F, 0x00, 0x1E, 0x03, 0xC0, 0x0F, 0x00, 0xF0, 0x03, 0xC0, 0x3C, 0x00, 0xF0, 0x1E, 0x00, 0x3C, 0x07, 0x80, 0x0F, 0x87, 0xC0, 0x01, 0xE3, 0xE0, 0x00, 0x7F, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFB, 0xE0, 0x70, 0xF8, 0x7C, 0x1C, 0x7C, 0x1F, 0x0E, 0x3C, 0x03, 0xE3, 0x9E, 0x00, 0x79, 0xE7, 0x80, 0x1F, 0xF3, 0xC0, 0x03, 0xF8, 0xF0, 0x00, 0xFE, 0x3C, 0x00, 0x1F, 0x0F, 0x00, 0x07, 0xC3, 0xE0, 0x03, 0xF8, 0xF8, 0x03, 0xFE, 0x3F, 0x83, 0xF7, 0xC7, 0xFF, 0xF8, 0xF0, 0xFF, 0xFC, 0x3E, 0x1F, 0xFC, 0x07, 0x81, 0xFC, 0x00, 0x00, 0x7B, 0xDF, 0xEF, 0x7B, 0xDC, 0xE7, 0x31, 0x80, 0x00, 0x0E, 0x00, 0x38, 0x00, 0xE0, 0x03, 0x80, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x1C, 0x00, 0x78, 0x00, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x0E, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x78, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x30, 0x00, 0x70, 0x00, 0xE0, 0x00, 0xC0, 0x00, 0x00, 0x30, 0x00, 0x70, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x01, 0xE0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x3C, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x07, 0x00, 0x0E, 0x00, 0x3C, 0x00, 0x70, 0x01, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x1C, 0x00, 0x78, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x00, 0x01, 0xC0, 0x07, 0x00, 0x38, 0x18, 0xE3, 0x7B, 0xBF, 0xFF, 0xF3, 0xFF, 0x01, 0xE0, 0x1F, 0xC0, 0xF7, 0x07, 0x9E, 0x1C, 0x38, 0x20, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x1C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x3E, 0x7C, 0xF9, 0xE7, 0xC1, 0x83, 0x0C, 0x18, 0x63, 0xC6, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7D, 0xF7, 0xBE, 0xF8, 0x00, 0x00, 0x18, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x30, 0x00, 0x03, 0x80, 0x00, 0x18, 0x00, 0x01, 0xC0, 0x00, 0x0C, 0x00, 0x00, 0xE0, 0x00, 0x06, 0x00, 0x00, 0x70, 0x00, 0x03, 0x00, 0x00, 0x38, 0x00, 0x01, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x60, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x01, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x60, 0x00, 0x07, 0x00, 0x00, 0x30, 0x00, 0x03, 0x80, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0xE0, 0x3F, 0x0F, 0xC0, 0xF8, 0x07, 0x81, 0xE0, 0x0F, 0x87, 0x80, 0x0F, 0x1F, 0x00, 0x1E, 0x3C, 0x00, 0x3C, 0x78, 0x00, 0x79, 0xE0, 0x00, 0xF3, 0xC0, 0x01, 0xE7, 0x80, 0x07, 0xDE, 0x00, 0x0F, 0xBC, 0x00, 0x1E, 0x78, 0x00, 0x3C, 0xF0, 0x00, 0x79, 0xE0, 0x00, 0xF7, 0x80, 0x03, 0xEF, 0x00, 0x07, 0xDE, 0x00, 0x0F, 0x3C, 0x00, 0x1E, 0x78, 0x00, 0x7C, 0xF0, 0x00, 0xF1, 0xE0, 0x03, 0xE3, 0xC0, 0x07, 0x87, 0xC0, 0x1F, 0x0F, 0x80, 0x7C, 0x0F, 0xC3, 0xF0, 0x1F, 0xFF, 0xC0, 0x1F, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x18, 0x01, 0xC0, 0x1C, 0x01, 0xE0, 0x1F, 0x0F, 0xFB, 0xFF, 0xDF, 0xFC, 0xFF, 0xE0, 0x0F, 0x00, 0x78, 0x07, 0xC0, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x07, 0xC0, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x07, 0xC0, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x07, 0xC0, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x07, 0xC0, 0x3C, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x03, 0xFF, 0xE0, 0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xE0, 0x0F, 0xC0, 0xFC, 0x03, 0xE0, 0x07, 0xC0, 0xF8, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x03, 0xC0, 0x01, 0xE0, 0xF8, 0x00, 0x3C, 0x1E, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x3F, 0xFF, 0xE0, 0x1F, 0x81, 0xF8, 0x1F, 0x00, 0x7C, 0x1F, 0x00, 0x1E, 0x0F, 0x00, 0x0F, 0x0F, 0x80, 0x07, 0x87, 0x80, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x79, 0xE0, 0x00, 0x3C, 0xF0, 0x00, 0x1E, 0x78, 0x00, 0x1E, 0x3C, 0x00, 0x0F, 0x1E, 0x00, 0x0F, 0x0F, 0x80, 0x1F, 0x83, 0xF0, 0x3F, 0x81, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xBC, 0x00, 0x0F, 0xBC, 0x00, 0x1F, 0x7C, 0x00, 0x3E, 0x78, 0x00, 0x7C, 0x78, 0x00, 0xF8, 0x78, 0x00, 0xF0, 0x78, 0x01, 0xE0, 0xF0, 0x03, 0xC0, 0xF0, 0x07, 0x80, 0xF0, 0x0F, 0x00, 0xF0, 0x1E, 0x01, 0xF0, 0x3C, 0x01, 0xE0, 0x78, 0x01, 0xE0, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x80, 0x00, 0x7F, 0xFF, 0xC0, 0x1F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xE0, 0x1E, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0xC7, 0xE0, 0x00, 0xF7, 0xFF, 0x80, 0x1F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0x80, 0xFE, 0x03, 0xF0, 0x1F, 0x00, 0x3F, 0x03, 0xC0, 0x03, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x1E, 0x1E, 0x00, 0x03, 0xC3, 0xC0, 0x00, 0xF0, 0x7C, 0x00, 0x3C, 0x0F, 0x80, 0x0F, 0x80, 0xFC, 0x07, 0xE0, 0x1F, 0xFF, 0xF8, 0x01, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0xF8, 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xFE, 0x01, 0xF8, 0x3E, 0x03, 0xE0, 0x1F, 0x07, 0xC0, 0x1F, 0x0F, 0x80, 0x0F, 0x0F, 0x00, 0x0F, 0x1F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x1F, 0x80, 0x3C, 0x7F, 0xE0, 0x3D, 0xFF, 0xF0, 0x7B, 0xFF, 0xF8, 0x7F, 0xC1, 0xF8, 0x7F, 0x00, 0x7C, 0x7E, 0x00, 0x7C, 0xFC, 0x00, 0x3C, 0xF8, 0x00, 0x3C, 0xF8, 0x00, 0x3C, 0xF0, 0x00, 0x3C, 0xF0, 0x00, 0x38, 0xF0, 0x00, 0x78, 0xF0, 0x00, 0x78, 0xF0, 0x00, 0xF0, 0xF8, 0x01, 0xF0, 0x7C, 0x03, 0xE0, 0x7E, 0x0F, 0xC0, 0x3F, 0xFF, 0xC0, 0x3F, 0xFF, 0x80, 0x0F, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x1F, 0xFF, 0xE0, 0x1F, 0x81, 0xF8, 0x1F, 0x00, 0x7C, 0x0F, 0x00, 0x1E, 0x0F, 0x00, 0x0F, 0x07, 0x80, 0x07, 0x83, 0xC0, 0x03, 0xC1, 0xE0, 0x03, 0xC0, 0xF8, 0x03, 0xC0, 0x7E, 0x07, 0xC0, 0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xF8, 0x07, 0xE0, 0x7E, 0x07, 0xC0, 0x0F, 0x07, 0x80, 0x07, 0xC7, 0xC0, 0x01, 0xE3, 0xC0, 0x00, 0xF3, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x3C, 0xF0, 0x00, 0x1C, 0x78, 0x00, 0x1E, 0x3C, 0x00, 0x0F, 0x1F, 0x00, 0x0F, 0x0F, 0xC0, 0x0F, 0x83, 0xF0, 0x3F, 0x81, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0x80, 0x0F, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0xF0, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFC, 0x07, 0xF0, 0x7E, 0x07, 0xC0, 0x3E, 0x0F, 0x80, 0x1F, 0x0F, 0x00, 0x0F, 0x1E, 0x00, 0x0F, 0x1E, 0x00, 0x0F, 0x3C, 0x00, 0x0F, 0x3C, 0x00, 0x0F, 0x3C, 0x00, 0x1F, 0x3C, 0x00, 0x1F, 0x3C, 0x00, 0x3F, 0x3E, 0x00, 0x7E, 0x3E, 0x00, 0xFE, 0x1F, 0x83, 0xFE, 0x1F, 0xFF, 0xFE, 0x0F, 0xFF, 0xBC, 0x07, 0xFE, 0x3C, 0x01, 0xF8, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF0, 0xF0, 0x01, 0xF0, 0xF0, 0x03, 0xE0, 0xF8, 0x07, 0xC0, 0xFC, 0x1F, 0xC0, 0x7F, 0xFF, 0x80, 0x3F, 0xFE, 0x00, 0x1F, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xC1, 0xF0, 0x78, 0x3E, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x1F, 0x07, 0x83, 0xE0, 0xF8, 0x00, 0x03, 0xE0, 0x7C, 0x0F, 0x03, 0xE0, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xE0, 0x7C, 0x01, 0x80, 0x30, 0x0C, 0x01, 0x80, 0x60, 0x3C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x70, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFF, 0x00, 0x03, 0xFE, 0x00, 0x03, 0xFE, 0x00, 0x07, 0xFC, 0x00, 0x07, 0xFC, 0x00, 0x0F, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x80, 0x1F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF8, 0x04, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0xC0, 0x00, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x3F, 0xF8, 0x0F, 0xFF, 0xC1, 0xFF, 0xFE, 0x1F, 0x03, 0xE3, 0xE0, 0x1F, 0x7C, 0x00, 0xF7, 0x80, 0x0F, 0x78, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x01, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0x80, 0x00, 0x78, 0x00, 0x0F, 0x80, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x0F, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x0F, 0xC0, 0x00, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF0, 0x0F, 0xC0, 0x00, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0xFC, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0xF9, 0xE1, 0xF0, 0x78, 0x03, 0xFF, 0xCF, 0x07, 0x87, 0xC0, 0x3F, 0x0F, 0xF0, 0x3C, 0x7C, 0x03, 0xE0, 0x3F, 0x01, 0xE3, 0xC0, 0x3E, 0x01, 0xF8, 0x0F, 0x3E, 0x03, 0xE0, 0x0F, 0x80, 0x79, 0xE0, 0x1E, 0x00, 0x7C, 0x03, 0xDF, 0x01, 0xE0, 0x03, 0xC0, 0x3E, 0xF0, 0x1F, 0x00, 0x3E, 0x01, 0xE7, 0x80, 0xF0, 0x01, 0xE0, 0x0F, 0x38, 0x07, 0x80, 0x0F, 0x00, 0xFB, 0xC0, 0x78, 0x00, 0xF0, 0x07, 0x9E, 0x03, 0xC0, 0x07, 0x80, 0x7C, 0xF0, 0x1E, 0x00, 0x78, 0x07, 0xC7, 0x80, 0xF0, 0x07, 0xC0, 0x7E, 0x3C, 0x07, 0x80, 0x7C, 0x07, 0xE1, 0xE0, 0x3E, 0x07, 0xE0, 0x7E, 0x0F, 0x00, 0xF8, 0x7F, 0x8F, 0xC0, 0x7C, 0x07, 0xFF, 0x7F, 0xFC, 0x01, 0xE0, 0x1F, 0xF1, 0xFF, 0x80, 0x0F, 0x00, 0x7E, 0x0F, 0xF0, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFE, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x03, 0xDF, 0x00, 0x00, 0x1E, 0x7C, 0x00, 0x00, 0x79, 0xF0, 0x00, 0x03, 0xC7, 0xC0, 0x00, 0x0F, 0x1F, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x03, 0xE0, 0xF0, 0x00, 0x0F, 0x03, 0xE0, 0x00, 0x78, 0x0F, 0x80, 0x01, 0xE0, 0x3E, 0x00, 0x0F, 0x00, 0xF8, 0x00, 0x3C, 0x03, 0xE0, 0x01, 0xE0, 0x0F, 0x80, 0x0F, 0x80, 0x1E, 0x00, 0x3C, 0x00, 0x7C, 0x01, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFC, 0x07, 0xC0, 0x01, 0xF0, 0x3E, 0x00, 0x03, 0xC0, 0xF8, 0x00, 0x0F, 0x87, 0xC0, 0x00, 0x3E, 0x1E, 0x00, 0x00, 0xF8, 0xF8, 0x00, 0x03, 0xE3, 0xC0, 0x00, 0x0F, 0x9F, 0x00, 0x00, 0x3E, 0xF8, 0x00, 0x00, 0x7B, 0xE0, 0x00, 0x01, 0xF0, 0x01, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xE0, 0x3E, 0x00, 0x1F, 0x81, 0xE0, 0x00, 0x7C, 0x0F, 0x00, 0x01, 0xE0, 0x78, 0x00, 0x0F, 0x03, 0xC0, 0x00, 0x78, 0x3C, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0x3C, 0x0F, 0x00, 0x01, 0xE0, 0x78, 0x00, 0x1E, 0x07, 0xC0, 0x03, 0xE0, 0x3F, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFE, 0x07, 0x80, 0x01, 0xF0, 0x3C, 0x00, 0x07, 0xC1, 0xE0, 0x00, 0x1E, 0x0F, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x07, 0x87, 0x80, 0x00, 0x3C, 0x3C, 0x00, 0x01, 0xE1, 0xE0, 0x00, 0x1E, 0x1F, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x0F, 0x87, 0x80, 0x00, 0xF8, 0x3C, 0x00, 0x1F, 0x81, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0xFC, 0x00, 0xFE, 0x03, 0xF0, 0x07, 0xE0, 0x03, 0xE0, 0x3E, 0x00, 0x07, 0x81, 0xF0, 0x00, 0x1E, 0x07, 0x80, 0x00, 0x3C, 0x3C, 0x00, 0x00, 0xF1, 0xF0, 0x00, 0x03, 0xC7, 0x80, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0xF0, 0x00, 0x01, 0xF3, 0xC0, 0x00, 0x07, 0x8F, 0x80, 0x00, 0x3E, 0x3E, 0x00, 0x00, 0xF0, 0x7C, 0x00, 0x07, 0xC1, 0xF0, 0x00, 0x3E, 0x03, 0xE0, 0x03, 0xF0, 0x0F, 0xE0, 0x3F, 0x80, 0x1F, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x80, 0x07, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0x80, 0x3E, 0x00, 0x3F, 0x80, 0x78, 0x00, 0x1F, 0x80, 0xF0, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0x1E, 0x07, 0xC0, 0x00, 0x3E, 0x0F, 0x00, 0x00, 0x3C, 0x1E, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x00, 0xF0, 0xF8, 0x00, 0x01, 0xE1, 0xF0, 0x00, 0x03, 0xC3, 0xC0, 0x00, 0x07, 0x87, 0x80, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x3C, 0x3E, 0x00, 0x00, 0x78, 0x7C, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x01, 0xE1, 0xE0, 0x00, 0x07, 0x87, 0xC0, 0x00, 0x0F, 0x0F, 0x80, 0x00, 0x3E, 0x1E, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x01, 0xF0, 0x78, 0x00, 0x03, 0xC1, 0xF0, 0x00, 0x0F, 0x03, 0xE0, 0x00, 0x3E, 0x07, 0x80, 0x01, 0xF8, 0x0F, 0x00, 0x0F, 0xE0, 0x1F, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xE0, 0x3E, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFF, 0x00, 0xF0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFE, 0x03, 0xE0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xF0, 0x07, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0xC0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0xC0, 0x00, 0xF8, 0x0F, 0xC0, 0x00, 0x3E, 0x07, 0x80, 0x00, 0x1F, 0x07, 0x80, 0x00, 0x07, 0x87, 0xC0, 0x00, 0x03, 0xC3, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x1F, 0xFF, 0xBC, 0x00, 0x0F, 0xFF, 0xDE, 0x00, 0x0F, 0xFF, 0xEF, 0x00, 0x07, 0xFF, 0xF7, 0x80, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x00, 0x39, 0xE0, 0x00, 0x00, 0x3C, 0xF0, 0x00, 0x00, 0x1E, 0x78, 0x00, 0x00, 0x1F, 0x3E, 0x00, 0x00, 0x0F, 0x8F, 0x00, 0x00, 0x0F, 0x87, 0xC0, 0x00, 0x0F, 0xC3, 0xF0, 0x00, 0x0F, 0xE0, 0xFC, 0x00, 0x1F, 0xF0, 0x7F, 0x80, 0x7F, 0x78, 0x1F, 0xFF, 0xFE, 0x38, 0x03, 0xFF, 0xFE, 0x1C, 0x00, 0xFF, 0xFC, 0x0E, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0xF0, 0x00, 0x03, 0xC0, 0x78, 0x00, 0x03, 0xE0, 0x7C, 0x00, 0x01, 0xF0, 0x3E, 0x00, 0x00, 0xF0, 0x1E, 0x00, 0x00, 0x78, 0x0F, 0x00, 0x00, 0x3C, 0x0F, 0x80, 0x00, 0x3E, 0x07, 0xC0, 0x00, 0x1F, 0x03, 0xC0, 0x00, 0x0F, 0x01, 0xE0, 0x00, 0x07, 0x80, 0xF0, 0x00, 0x03, 0xC0, 0xF8, 0x00, 0x03, 0xE0, 0x7C, 0x00, 0x01, 0xF0, 0x3C, 0x00, 0x00, 0xF0, 0x1F, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xFE, 0x03, 0xC0, 0x00, 0x0F, 0x01, 0xE0, 0x00, 0x07, 0x81, 0xF0, 0x00, 0x07, 0xC0, 0xF8, 0x00, 0x03, 0xE0, 0x78, 0x00, 0x01, 0xE0, 0x3C, 0x00, 0x00, 0xF0, 0x1E, 0x00, 0x00, 0x78, 0x1F, 0x00, 0x00, 0x7C, 0x0F, 0x80, 0x00, 0x3C, 0x07, 0x80, 0x00, 0x1E, 0x03, 0xC0, 0x00, 0x0F, 0x01, 0xE0, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0x07, 0xC0, 0xF0, 0x00, 0x03, 0xC0, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xE0, 0x3C, 0x07, 0x81, 0xF0, 0x3E, 0x07, 0x80, 0xF0, 0x1E, 0x07, 0xC0, 0xF8, 0x1E, 0x03, 0xC0, 0x78, 0x1F, 0x03, 0xE0, 0x78, 0x0F, 0x01, 0xE0, 0x7C, 0x0F, 0x81, 0xE0, 0x3C, 0x07, 0x81, 0xF0, 0x3E, 0x07, 0x80, 0xF0, 0x1E, 0x07, 0xC0, 0xF8, 0x1E, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0x80, 0x00, 0x03, 0xC0, 0xF0, 0x01, 0xE0, 0x78, 0x00, 0xF0, 0x78, 0x00, 0xF8, 0x3C, 0x00, 0x78, 0x1E, 0x00, 0x3C, 0x0F, 0x00, 0x3E, 0x07, 0xC0, 0x3E, 0x03, 0xF0, 0x7E, 0x00, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0x00, 0x0F, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0xC0, 0x78, 0x00, 0x07, 0xC0, 0x1E, 0x00, 0x03, 0xE0, 0x0F, 0x80, 0x03, 0xF0, 0x03, 0xE0, 0x01, 0xF8, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0x3C, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x3F, 0x00, 0x01, 0xE0, 0x1F, 0x80, 0x00, 0x78, 0x0F, 0x80, 0x00, 0x1E, 0x07, 0xC0, 0x00, 0x0F, 0x83, 0xE0, 0x00, 0x03, 0xE3, 0xF0, 0x00, 0x00, 0xF1, 0xFC, 0x00, 0x00, 0x3C, 0xFF, 0x00, 0x00, 0x0F, 0x7F, 0xE0, 0x00, 0x07, 0xFE, 0xF8, 0x00, 0x01, 0xFE, 0x1E, 0x00, 0x00, 0x7F, 0x07, 0xC0, 0x00, 0x1F, 0x80, 0xF0, 0x00, 0x0F, 0xC0, 0x3E, 0x00, 0x03, 0xE0, 0x07, 0x80, 0x00, 0xF0, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x7C, 0x00, 0x0F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x78, 0x00, 0x1F, 0x00, 0x1E, 0x00, 0x03, 0xE0, 0x07, 0x80, 0x00, 0xF8, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0xF0, 0x00, 0x07, 0xC0, 0x3C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x3E, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xE0, 0x01, 0xF8, 0x00, 0x00, 0x7E, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x0F, 0xF0, 0x00, 0x03, 0xF8, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x3F, 0xC0, 0x00, 0x1F, 0xC0, 0x7F, 0x80, 0x00, 0x7F, 0x80, 0xFF, 0x00, 0x00, 0xEF, 0x03, 0xFE, 0x00, 0x03, 0xFE, 0x07, 0xBC, 0x00, 0x0F, 0x78, 0x0F, 0x3C, 0x00, 0x1E, 0xF0, 0x1E, 0x78, 0x00, 0x79, 0xE0, 0x3C, 0xF0, 0x00, 0xF3, 0xC0, 0xF9, 0xE0, 0x03, 0xCF, 0x81, 0xE3, 0xC0, 0x07, 0x9E, 0x03, 0xC7, 0x80, 0x1E, 0x3C, 0x07, 0x8F, 0x00, 0x38, 0x78, 0x1F, 0x1E, 0x00, 0xF0, 0xF0, 0x3C, 0x1E, 0x03, 0xC3, 0xE0, 0x78, 0x3C, 0x07, 0x87, 0x80, 0xF0, 0x78, 0x1E, 0x0F, 0x01, 0xE0, 0xF0, 0x3C, 0x1E, 0x07, 0xC1, 0xE0, 0xF0, 0x7C, 0x0F, 0x03, 0xC1, 0xE0, 0xF0, 0x1E, 0x07, 0x87, 0x81, 0xE0, 0x3C, 0x0F, 0x0E, 0x03, 0xC0, 0x78, 0x0F, 0x3C, 0x07, 0x81, 0xF0, 0x1E, 0x70, 0x1F, 0x03, 0xC0, 0x3D, 0xE0, 0x3C, 0x07, 0x80, 0x7F, 0x80, 0x78, 0x0F, 0x00, 0xFF, 0x00, 0xF0, 0x3E, 0x01, 0xFC, 0x01, 0xE0, 0x78, 0x03, 0xF8, 0x07, 0xC0, 0xF0, 0x07, 0xE0, 0x0F, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xC0, 0x7E, 0x00, 0x01, 0xF0, 0x3F, 0x80, 0x00, 0x78, 0x0F, 0xE0, 0x00, 0x1E, 0x03, 0xFC, 0x00, 0x07, 0x80, 0xFF, 0x00, 0x03, 0xE0, 0x3F, 0xE0, 0x00, 0xF0, 0x1F, 0xF8, 0x00, 0x3C, 0x07, 0x9E, 0x00, 0x0F, 0x01, 0xE7, 0xC0, 0x03, 0xC0, 0x78, 0xF0, 0x01, 0xF0, 0x1E, 0x3E, 0x00, 0x78, 0x0F, 0x87, 0x80, 0x1E, 0x03, 0xC1, 0xF0, 0x07, 0x80, 0xF0, 0x7C, 0x01, 0xE0, 0x3C, 0x0F, 0x00, 0xF8, 0x1F, 0x03, 0xE0, 0x3C, 0x07, 0x80, 0x78, 0x0F, 0x01, 0xE0, 0x1F, 0x03, 0xC0, 0x78, 0x07, 0xC1, 0xF0, 0x1E, 0x00, 0xF8, 0x78, 0x0F, 0x80, 0x3E, 0x1E, 0x03, 0xC0, 0x07, 0x87, 0x80, 0xF0, 0x01, 0xF1, 0xE0, 0x3C, 0x00, 0x3C, 0xF8, 0x0F, 0x00, 0x0F, 0xBC, 0x07, 0xC0, 0x03, 0xEF, 0x01, 0xE0, 0x00, 0x7F, 0xC0, 0x78, 0x00, 0x1F, 0xF0, 0x1E, 0x00, 0x03, 0xFC, 0x0F, 0x80, 0x00, 0xFE, 0x03, 0xC0, 0x00, 0x1F, 0x80, 0xF0, 0x00, 0x07, 0xE0, 0x3C, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xFC, 0x00, 0x0F, 0xFF, 0xFF, 0x80, 0x0F, 0xF0, 0x1F, 0xC0, 0x0F, 0xC0, 0x03, 0xF0, 0x0F, 0x80, 0x00, 0xFC, 0x0F, 0x80, 0x00, 0x3E, 0x0F, 0x80, 0x00, 0x0F, 0x07, 0x80, 0x00, 0x07, 0xC7, 0xC0, 0x00, 0x01, 0xE3, 0xC0, 0x00, 0x00, 0xF3, 0xC0, 0x00, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x3D, 0xE0, 0x00, 0x00, 0x1E, 0xF0, 0x00, 0x00, 0x0F, 0x78, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x03, 0xDE, 0x00, 0x00, 0x01, 0xEF, 0x00, 0x00, 0x00, 0xF7, 0x80, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x3C, 0xF0, 0x00, 0x00, 0x3E, 0x78, 0x00, 0x00, 0x1E, 0x3E, 0x00, 0x00, 0x1F, 0x0F, 0x00, 0x00, 0x1F, 0x07, 0xC0, 0x00, 0x1F, 0x03, 0xF0, 0x00, 0x1F, 0x00, 0xFC, 0x00, 0x3F, 0x80, 0x3F, 0x80, 0x7F, 0x80, 0x1F, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0xE0, 0x3E, 0x00, 0x3F, 0x81, 0xE0, 0x00, 0x7C, 0x0F, 0x00, 0x01, 0xE0, 0xF8, 0x00, 0x0F, 0x07, 0xC0, 0x00, 0x78, 0x3C, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0x1E, 0x0F, 0x00, 0x01, 0xE0, 0xF8, 0x00, 0x0F, 0x07, 0xC0, 0x00, 0xF8, 0x3C, 0x00, 0x0F, 0x81, 0xE0, 0x01, 0xF8, 0x0F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xF0, 0x01, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xFC, 0x00, 0x0F, 0xFF, 0xFF, 0x80, 0x0F, 0xF0, 0x1F, 0xC0, 0x0F, 0xC0, 0x03, 0xF0, 0x0F, 0xC0, 0x00, 0xFC, 0x0F, 0x80, 0x00, 0x3E, 0x0F, 0x80, 0x00, 0x0F, 0x07, 0x80, 0x00, 0x07, 0xC7, 0xC0, 0x00, 0x01, 0xE3, 0xC0, 0x00, 0x00, 0xF3, 0xC0, 0x00, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x3D, 0xE0, 0x00, 0x00, 0x1E, 0xF0, 0x00, 0x00, 0x0F, 0x78, 0x00, 0x00, 0x07, 0xB8, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x03, 0xDE, 0x00, 0x00, 0x01, 0xEF, 0x00, 0x00, 0x00, 0xF7, 0x80, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x3C, 0xF0, 0x00, 0x00, 0x3C, 0x78, 0x00, 0x08, 0x3E, 0x3E, 0x00, 0x0E, 0x1E, 0x0F, 0x00, 0x0F, 0x9F, 0x07, 0xC0, 0x07, 0xFF, 0x03, 0xF0, 0x01, 0xFF, 0x00, 0xFC, 0x00, 0x7F, 0x00, 0x3F, 0x80, 0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x7E, 0x00, 0x0F, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xC0, 0x07, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFE, 0x03, 0xE0, 0x00, 0xFC, 0x0F, 0x00, 0x01, 0xF0, 0x3C, 0x00, 0x03, 0xC1, 0xF0, 0x00, 0x0F, 0x07, 0xC0, 0x00, 0x3C, 0x1E, 0x00, 0x00, 0xF0, 0x78, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0x1E, 0x0F, 0x80, 0x00, 0x78, 0x3E, 0x00, 0x03, 0xE0, 0xF0, 0x00, 0x1F, 0x03, 0xC0, 0x01, 0xF8, 0x0F, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0xF0, 0x1E, 0x00, 0x07, 0xE0, 0xF8, 0x00, 0x0F, 0x83, 0xE0, 0x00, 0x1E, 0x0F, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x01, 0xE0, 0xF0, 0x00, 0x07, 0x87, 0xC0, 0x00, 0x1E, 0x1F, 0x00, 0x00, 0xF0, 0x78, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0x0F, 0x07, 0x80, 0x00, 0x3C, 0x3E, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x03, 0xC3, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xC0, 0x1F, 0xC0, 0x7F, 0x01, 0xF0, 0x00, 0xFC, 0x0F, 0x00, 0x03, 0xE0, 0xF0, 0x00, 0x0F, 0x07, 0x00, 0x00, 0x78, 0x78, 0x00, 0x03, 0xC3, 0xC0, 0x00, 0x1E, 0x1E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x3C, 0xF0, 0x00, 0x01, 0xE7, 0x80, 0x00, 0x0F, 0x3C, 0x00, 0x00, 0x71, 0xE0, 0x00, 0x07, 0x8F, 0x00, 0x00, 0x3C, 0x7C, 0x00, 0x03, 0xC1, 0xF0, 0x00, 0x7C, 0x0F, 0xE0, 0x1F, 0xC0, 0x3F, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xF8, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFE, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x0F, 0x00, 0x00, 0x3C, 0x1E, 0x00, 0x00, 0xF8, 0x7C, 0x00, 0x01, 0xF0, 0xF8, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0x07, 0x83, 0xC0, 0x00, 0x0F, 0x0F, 0x80, 0x00, 0x3E, 0x1F, 0x00, 0x00, 0x7C, 0x3C, 0x00, 0x00, 0xF0, 0x78, 0x00, 0x01, 0xE0, 0xF0, 0x00, 0x03, 0xC3, 0xE0, 0x00, 0x0F, 0x87, 0xC0, 0x00, 0x1F, 0x0F, 0x00, 0x00, 0x3C, 0x1E, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x01, 0xF0, 0xF8, 0x00, 0x03, 0xE1, 0xF0, 0x00, 0x07, 0x83, 0xC0, 0x00, 0x0F, 0x07, 0x80, 0x00, 0x1E, 0x1F, 0x00, 0x00, 0x7C, 0x3E, 0x00, 0x00, 0xF8, 0x78, 0x00, 0x01, 0xE0, 0xF0, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0x0F, 0x83, 0xC0, 0x00, 0x1E, 0x07, 0x80, 0x00, 0x7C, 0x0F, 0x80, 0x01, 0xF0, 0x0F, 0x80, 0x07, 0xE0, 0x1F, 0xC0, 0x7F, 0x80, 0x1F, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0xF0, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x07, 0xFC, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x0F, 0xBE, 0x00, 0x00, 0x79, 0xF0, 0x00, 0x07, 0xC7, 0x80, 0x00, 0x3C, 0x3C, 0x00, 0x03, 0xE1, 0xE0, 0x00, 0x1E, 0x0F, 0x80, 0x01, 0xF0, 0x7C, 0x00, 0x0F, 0x03, 0xE0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x80, 0x78, 0x00, 0x78, 0x03, 0xC0, 0x07, 0xC0, 0x1E, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x1E, 0x00, 0x3E, 0x01, 0xF0, 0x01, 0xF0, 0x0F, 0x00, 0x07, 0x80, 0xF0, 0x00, 0x3C, 0x07, 0x80, 0x01, 0xE0, 0x78, 0x00, 0x0F, 0x07, 0xC0, 0x00, 0x7C, 0x3C, 0x00, 0x03, 0xE3, 0xE0, 0x00, 0x1F, 0x1E, 0x00, 0x00, 0xF9, 0xF0, 0x00, 0x03, 0xCF, 0x00, 0x00, 0x1E, 0xF0, 0x00, 0x00, 0xF7, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xDE, 0x00, 0x07, 0xE0, 0x00, 0xFB, 0xC0, 0x00, 0xFC, 0x00, 0x1E, 0x78, 0x00, 0x3F, 0x80, 0x07, 0xCF, 0x00, 0x07, 0xF0, 0x00, 0xF9, 0xE0, 0x01, 0xFE, 0x00, 0x3E, 0x3C, 0x00, 0x7F, 0xC0, 0x07, 0xC7, 0x80, 0x0F, 0x78, 0x01, 0xF0, 0xF0, 0x03, 0xEF, 0x00, 0x3E, 0x1E, 0x00, 0x79, 0xE0, 0x0F, 0x83, 0xC0, 0x1F, 0x3C, 0x01, 0xF0, 0x78, 0x03, 0xC7, 0x80, 0x3C, 0x0F, 0x00, 0xF8, 0xF0, 0x0F, 0x80, 0xE0, 0x1E, 0x1E, 0x01, 0xE0, 0x1C, 0x07, 0xC1, 0xC0, 0x7C, 0x03, 0x80, 0xF0, 0x3C, 0x0F, 0x00, 0x70, 0x3E, 0x07, 0x83, 0xE0, 0x0E, 0x07, 0x80, 0xF0, 0x78, 0x01, 0xC1, 0xF0, 0x1E, 0x1F, 0x00, 0x3C, 0x3C, 0x03, 0xC3, 0xE0, 0x07, 0x8F, 0x80, 0x78, 0x78, 0x00, 0xF1, 0xE0, 0x0F, 0x1F, 0x00, 0x1E, 0x7C, 0x01, 0xE3, 0xC0, 0x03, 0xCF, 0x00, 0x3C, 0xF8, 0x00, 0x7B, 0xE0, 0x07, 0x9E, 0x00, 0x0F, 0x78, 0x00, 0xF7, 0xC0, 0x01, 0xFF, 0x00, 0x1E, 0xF0, 0x00, 0x3F, 0xC0, 0x03, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x7F, 0x80, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0x7E, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x0F, 0x80, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0x00, 0x7C, 0x1F, 0x00, 0x00, 0x07, 0xC3, 0xE0, 0x00, 0x00, 0x7C, 0x7C, 0x00, 0x00, 0x03, 0xEF, 0x80, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x0F, 0xBE, 0x00, 0x00, 0x01, 0xF3, 0xE0, 0x00, 0x00, 0x3E, 0x1F, 0x00, 0x00, 0x03, 0xE1, 0xF0, 0x00, 0x00, 0x7C, 0x0F, 0x80, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0x01, 0xF0, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x03, 0xF0, 0x03, 0xF0, 0x00, 0x1F, 0x00, 0x7E, 0x00, 0x01, 0xF8, 0x0F, 0xC0, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0x00, 0x7D, 0xF0, 0x00, 0x03, 0xE7, 0xC0, 0x00, 0x1F, 0x1F, 0x80, 0x00, 0xF8, 0x3E, 0x00, 0x03, 0xE0, 0xF8, 0x00, 0x1F, 0x01, 0xF0, 0x00, 0xF8, 0x07, 0xC0, 0x07, 0xC0, 0x0F, 0x00, 0x3E, 0x00, 0x3E, 0x01, 0xF0, 0x00, 0xF8, 0x07, 0xC0, 0x01, 0xF0, 0x3E, 0x00, 0x07, 0xC1, 0xF0, 0x00, 0x0F, 0x0F, 0x80, 0x00, 0x3E, 0x7C, 0x00, 0x00, 0x79, 0xE0, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x7F, 0xC0, 0x1F, 0xF0, 0x07, 0xFC, 0x01, 0xFE, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xF0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x7C, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x7C, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x7F, 0xC0, 0x3F, 0xE0, 0x0F, 0xF8, 0x03, 0xFE, 0x00, 0xE3, 0x8E, 0x38, 0xE1, 0x86, 0x18, 0x61, 0x87, 0x1C, 0x71, 0xC7, 0x0C, 0x30, 0xC3, 0x0C, 0x38, 0xE3, 0x8E, 0x38, 0x61, 0x86, 0x18, 0x61, 0xC7, 0x1C, 0x71, 0xC0, 0x00, 0x7F, 0xC0, 0x1F, 0xF0, 0x07, 0xFC, 0x03, 0xFE, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x0F, 0x80, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x7F, 0x80, 0x3F, 0xE0, 0x0F, 0xF8, 0x03, 0xFE, 0x00, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x1F, 0xC0, 0x0E, 0xE0, 0x0E, 0x70, 0x0F, 0x38, 0x07, 0x1C, 0x07, 0x0E, 0x03, 0x83, 0x83, 0x81, 0xC3, 0xC0, 0xE1, 0xC0, 0x71, 0xC0, 0x39, 0xE0, 0x0E, 0xE0, 0x07, 0xF0, 0x03, 0xF0, 0x01, 0xC0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xF8, 0x78, 0x3C, 0x1C, 0x0E, 0x0E, 0x07, 0x00, 0x1F, 0xE0, 0x01, 0xFF, 0xF0, 0x07, 0xFF, 0xF0, 0x1F, 0xFF, 0xF0, 0x7E, 0x07, 0xE1, 0xF0, 0x07, 0xC3, 0xC0, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xF0, 0x00, 0x07, 0xE0, 0x0F, 0xFF, 0xC0, 0xFF, 0xFF, 0x07, 0xFF, 0x9E, 0x1F, 0xC0, 0x3C, 0x7C, 0x00, 0x78, 0xF0, 0x00, 0xF3, 0xC0, 0x03, 0xC7, 0x80, 0x07, 0x8F, 0x00, 0x1F, 0x1E, 0x00, 0x7E, 0x3F, 0x07, 0xFC, 0x3F, 0xFF, 0x7E, 0x7F, 0xFC, 0xFC, 0x7F, 0xF0, 0xF8, 0x3F, 0x00, 0xF0, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x83, 0xE0, 0x03, 0xC7, 0xFC, 0x01, 0xEF, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0xF7, 0x83, 0xF0, 0x7F, 0x00, 0xF8, 0x3F, 0x00, 0x3E, 0x1F, 0x00, 0x0F, 0x1F, 0x80, 0x07, 0x8F, 0x80, 0x03, 0xC7, 0x80, 0x01, 0xE3, 0xC0, 0x00, 0xF1, 0xE0, 0x00, 0x79, 0xF0, 0x00, 0x3C, 0xF0, 0x00, 0x3C, 0x78, 0x00, 0x1E, 0x3C, 0x00, 0x0F, 0x1E, 0x00, 0x0F, 0x9F, 0x00, 0x07, 0x8F, 0xC0, 0x07, 0xC7, 0xE0, 0x07, 0xC3, 0xF8, 0x07, 0xC1, 0xFE, 0x0F, 0xC1, 0xEF, 0xFF, 0xE0, 0xF3, 0xFF, 0xC0, 0x78, 0xFF, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x03, 0xFF, 0x80, 0x3F, 0xFF, 0x01, 0xFF, 0xFE, 0x0F, 0xE0, 0xF8, 0x7E, 0x01, 0xF1, 0xF0, 0x03, 0xCF, 0x80, 0x0F, 0x3C, 0x00, 0x3D, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x0F, 0x3C, 0x00, 0x3C, 0xF8, 0x01, 0xE1, 0xF0, 0x0F, 0x87, 0xE0, 0xFC, 0x0F, 0xFF, 0xE0, 0x3F, 0xFF, 0x00, 0x7F, 0xF8, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x3F, 0x07, 0x80, 0x1F, 0xF8, 0xF0, 0x0F, 0xFF, 0x3E, 0x03, 0xFF, 0xF7, 0x80, 0xFC, 0x1F, 0xF0, 0x3F, 0x00, 0xFE, 0x07, 0xC0, 0x0F, 0xC1, 0xF0, 0x01, 0xF0, 0x3C, 0x00, 0x3E, 0x0F, 0x80, 0x07, 0xC1, 0xE0, 0x00, 0x78, 0x3C, 0x00, 0x1F, 0x0F, 0x80, 0x03, 0xC1, 0xE0, 0x00, 0x78, 0x3C, 0x00, 0x0F, 0x07, 0x80, 0x01, 0xE0, 0xF0, 0x00, 0x7C, 0x1E, 0x00, 0x0F, 0x03, 0xC0, 0x03, 0xE0, 0x78, 0x00, 0x7C, 0x0F, 0x80, 0x1F, 0x80, 0xF8, 0x07, 0xF0, 0x1F, 0x83, 0xFC, 0x03, 0xFF, 0xFF, 0x80, 0x3F, 0xFE, 0xF0, 0x03, 0xFF, 0x1E, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x01, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x3F, 0xFF, 0xC0, 0xFE, 0x0F, 0xC1, 0xF0, 0x07, 0xC7, 0xC0, 0x0F, 0x8F, 0x00, 0x0F, 0x3C, 0x00, 0x1E, 0x78, 0x00, 0x3D, 0xE0, 0x00, 0x7B, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x03, 0xCF, 0x80, 0x0F, 0x0F, 0x80, 0x3E, 0x1F, 0x81, 0xF8, 0x1F, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, 0x1F, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x3E, 0x01, 0xFC, 0x07, 0xF8, 0x0F, 0xE0, 0x3E, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0xC0, 0x7F, 0xF0, 0xFF, 0xE3, 0xFF, 0xC0, 0x78, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x3E, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x0F, 0x80, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0xF0, 0x01, 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xFE, 0x3C, 0x01, 0xFF, 0xE7, 0x00, 0xFF, 0xFE, 0xE0, 0x1F, 0x83, 0xFC, 0x07, 0xC0, 0x3F, 0x81, 0xF0, 0x03, 0xF0, 0x3C, 0x00, 0x7C, 0x0F, 0x00, 0x0F, 0x81, 0xE0, 0x01, 0xF0, 0x78, 0x00, 0x3E, 0x0F, 0x00, 0x07, 0xC1, 0xE0, 0x00, 0xF0, 0x38, 0x00, 0x1E, 0x0F, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0xF8, 0x3C, 0x00, 0x1F, 0x07, 0x80, 0x03, 0xC0, 0xF0, 0x00, 0xF8, 0x1E, 0x00, 0x3F, 0x03, 0xE0, 0x07, 0xE0, 0x3E, 0x01, 0xF8, 0x07, 0xE0, 0xFF, 0x00, 0x7F, 0xFD, 0xE0, 0x0F, 0xFF, 0x3C, 0x00, 0xFF, 0xCF, 0x00, 0x07, 0xE1, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0x01, 0xE0, 0x03, 0xE0, 0x3C, 0x00, 0xF8, 0x07, 0xE0, 0x7F, 0x00, 0x7F, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x83, 0xF0, 0x0F, 0x1F, 0xF0, 0x1E, 0xFF, 0xF0, 0x3F, 0xFF, 0xE0, 0xFF, 0x87, 0xE1, 0xFC, 0x07, 0xC3, 0xF0, 0x07, 0x87, 0xC0, 0x0F, 0x1F, 0x00, 0x1E, 0x3E, 0x00, 0x3C, 0x78, 0x00, 0x78, 0xF0, 0x01, 0xE1, 0xE0, 0x03, 0xC7, 0xC0, 0x07, 0x8F, 0x00, 0x0F, 0x1E, 0x00, 0x1E, 0x3C, 0x00, 0x78, 0x78, 0x00, 0xF1, 0xE0, 0x01, 0xE3, 0xC0, 0x03, 0xC7, 0x80, 0x0F, 0x8F, 0x00, 0x1E, 0x1E, 0x00, 0x3C, 0x78, 0x00, 0x78, 0xF0, 0x00, 0xF1, 0xE0, 0x03, 0xC0, 0x01, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xF0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x7F, 0x80, 0x3F, 0xC0, 0x0F, 0xE0, 0x03, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xC0, 0x0F, 0x81, 0xE0, 0x0F, 0x80, 0xF0, 0x0F, 0x80, 0xF0, 0x1F, 0x00, 0x78, 0x1F, 0x00, 0x3C, 0x1F, 0x00, 0x1E, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x0F, 0x1E, 0x00, 0x07, 0xBF, 0x80, 0x03, 0xFF, 0xC0, 0x01, 0xFD, 0xE0, 0x01, 0xFC, 0xF8, 0x00, 0xFC, 0x3C, 0x00, 0x7C, 0x1F, 0x00, 0x3C, 0x07, 0x80, 0x1E, 0x03, 0xC0, 0x1F, 0x01, 0xF0, 0x0F, 0x00, 0x78, 0x07, 0x80, 0x3E, 0x03, 0xC0, 0x0F, 0x01, 0xE0, 0x07, 0x81, 0xE0, 0x03, 0xE0, 0xF0, 0x00, 0xF0, 0x78, 0x00, 0x7C, 0x00, 0x01, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x00, 0x00, 0x07, 0xE0, 0x1F, 0x80, 0xF9, 0xFF, 0x07, 0xFC, 0x0F, 0x3F, 0xF8, 0xFF, 0xE0, 0xF7, 0xFF, 0x9F, 0xFF, 0x0F, 0xF0, 0xFF, 0xC3, 0xF0, 0xFC, 0x07, 0xF8, 0x1F, 0x1F, 0x80, 0x3F, 0x00, 0xF1, 0xF0, 0x03, 0xE0, 0x0F, 0x1E, 0x00, 0x3C, 0x00, 0xF1, 0xE0, 0x03, 0xC0, 0x0F, 0x1E, 0x00, 0x3C, 0x00, 0xF1, 0xE0, 0x07, 0x80, 0x0F, 0x3C, 0x00, 0x78, 0x01, 0xF3, 0xC0, 0x07, 0x80, 0x1E, 0x3C, 0x00, 0x78, 0x01, 0xE3, 0xC0, 0x0F, 0x80, 0x1E, 0x3C, 0x00, 0xF0, 0x01, 0xE7, 0xC0, 0x0F, 0x00, 0x3C, 0x78, 0x00, 0xF0, 0x03, 0xC7, 0x80, 0x0F, 0x00, 0x3C, 0x78, 0x01, 0xE0, 0x03, 0xC7, 0x80, 0x1E, 0x00, 0x3C, 0xF8, 0x01, 0xE0, 0x07, 0x8F, 0x00, 0x1E, 0x00, 0x78, 0xF0, 0x01, 0xE0, 0x07, 0x8F, 0x00, 0x3C, 0x00, 0x78, 0x00, 0x07, 0xE0, 0x1F, 0x3F, 0xF0, 0x3C, 0xFF, 0xF0, 0x7B, 0xFF, 0xE0, 0xFF, 0x07, 0xE1, 0xF8, 0x07, 0xC7, 0xE0, 0x07, 0x8F, 0x80, 0x0F, 0x1F, 0x00, 0x1E, 0x3C, 0x00, 0x3C, 0x78, 0x00, 0x78, 0xF0, 0x01, 0xE3, 0xC0, 0x03, 0xC7, 0x80, 0x07, 0x8F, 0x00, 0x0F, 0x1E, 0x00, 0x3E, 0x3C, 0x00, 0x78, 0xF0, 0x00, 0xF1, 0xE0, 0x01, 0xE3, 0xC0, 0x03, 0xC7, 0x80, 0x0F, 0x8F, 0x00, 0x1E, 0x3E, 0x00, 0x3C, 0x78, 0x00, 0x78, 0xF0, 0x00, 0xF1, 0xE0, 0x03, 0xC0, 0x00, 0x1F, 0x80, 0x01, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x3F, 0xFF, 0xC0, 0xFE, 0x0F, 0xC1, 0xF0, 0x0F, 0x87, 0xC0, 0x0F, 0x8F, 0x00, 0x0F, 0x3C, 0x00, 0x1E, 0x78, 0x00, 0x3D, 0xE0, 0x00, 0x7B, 0xC0, 0x00, 0xF7, 0x80, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0x78, 0x00, 0x1E, 0xF0, 0x00, 0x3D, 0xE0, 0x00, 0xF3, 0xC0, 0x01, 0xE7, 0x80, 0x07, 0x8F, 0x80, 0x1F, 0x0F, 0x80, 0x7C, 0x1F, 0x83, 0xF8, 0x1F, 0xFF, 0xE0, 0x3F, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x3C, 0x7F, 0xE0, 0x07, 0xBF, 0xFE, 0x01, 0xFF, 0xFF, 0xC0, 0x3D, 0xE0, 0xFC, 0x07, 0xF0, 0x0F, 0x80, 0xFC, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x07, 0xC0, 0x01, 0xE0, 0xF8, 0x00, 0x3C, 0x1F, 0x00, 0x07, 0x83, 0xC0, 0x00, 0xF0, 0x78, 0x00, 0x1E, 0x1F, 0x00, 0x03, 0xC3, 0xC0, 0x00, 0xF0, 0x78, 0x00, 0x1E, 0x0F, 0x00, 0x03, 0xC3, 0xE0, 0x00, 0xF8, 0x7C, 0x00, 0x1E, 0x0F, 0x80, 0x07, 0xC1, 0xF8, 0x01, 0xF0, 0x3F, 0x80, 0x7C, 0x0F, 0xF8, 0x3F, 0x81, 0xEF, 0xFF, 0xE0, 0x3C, 0xFF, 0xF8, 0x07, 0x8F, 0xFC, 0x00, 0xF0, 0xFE, 0x00, 0x3E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0xF8, 0xF0, 0x1F, 0xFF, 0x3C, 0x0F, 0xFF, 0xDF, 0x07, 0xE0, 0xFF, 0x83, 0xE0, 0x1F, 0xE1, 0xF0, 0x03, 0xF8, 0x78, 0x00, 0xFE, 0x3C, 0x00, 0x1F, 0x8F, 0x00, 0x07, 0xC7, 0x80, 0x01, 0xF1, 0xE0, 0x00, 0x7C, 0x78, 0x00, 0x1F, 0x3C, 0x00, 0x0F, 0x8F, 0x00, 0x03, 0xE3, 0xC0, 0x00, 0xF8, 0xF0, 0x00, 0x3E, 0x3C, 0x00, 0x1F, 0x8F, 0x00, 0x0F, 0xC3, 0xC0, 0x03, 0xF0, 0xF8, 0x01, 0xFC, 0x1F, 0x00, 0xFF, 0x07, 0xE0, 0xFF, 0xC0, 0xFF, 0xFD, 0xE0, 0x1F, 0xFE, 0x78, 0x03, 0xFF, 0x3E, 0x00, 0x3F, 0x0F, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0x87, 0xCF, 0xC3, 0xCF, 0xE1, 0xEF, 0xE0, 0xFF, 0x80, 0x7F, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x3E, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x03, 0xE0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x07, 0xFF, 0x00, 0xFF, 0xFC, 0x0F, 0xFF, 0xE0, 0xFC, 0x1F, 0x87, 0x80, 0x3C, 0x7C, 0x01, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0xE0, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x07, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xBC, 0x00, 0x3D, 0xE0, 0x01, 0xEF, 0x00, 0x1F, 0x7C, 0x01, 0xF3, 0xF0, 0x1F, 0x8F, 0xFF, 0xF8, 0x7F, 0xFF, 0x80, 0xFF, 0xF0, 0x01, 0xFE, 0x00, 0x03, 0xC0, 0x1E, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC1, 0xFF, 0xEF, 0xFF, 0x7F, 0xF0, 0x78, 0x03, 0xC0, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x07, 0xC0, 0x3C, 0x01, 0xE0, 0x0F, 0xF0, 0x7F, 0x81, 0xF8, 0x07, 0xC0, 0x0F, 0x00, 0x0F, 0x0F, 0x00, 0x1E, 0x0F, 0x00, 0x1E, 0x1F, 0x00, 0x1E, 0x1E, 0x00, 0x1E, 0x1E, 0x00, 0x1E, 0x1E, 0x00, 0x3C, 0x1E, 0x00, 0x3C, 0x3E, 0x00, 0x3C, 0x3C, 0x00, 0x3C, 0x3C, 0x00, 0x3C, 0x3C, 0x00, 0x7C, 0x3C, 0x00, 0x78, 0x78, 0x00, 0x78, 0x78, 0x00, 0x78, 0x78, 0x00, 0x78, 0x78, 0x00, 0xF8, 0x78, 0x00, 0xF0, 0xF0, 0x01, 0xF0, 0xF0, 0x03, 0xF0, 0xF0, 0x07, 0xF0, 0xF8, 0x1F, 0xF0, 0xFF, 0xFF, 0xE0, 0x7F, 0xFD, 0xE0, 0x3F, 0xF1, 0xE0, 0x1F, 0xC0, 0x00, 0xF0, 0x00, 0x7F, 0xC0, 0x01, 0xEF, 0x00, 0x0F, 0xBC, 0x00, 0x3C, 0x78, 0x01, 0xE1, 0xE0, 0x07, 0x87, 0x80, 0x3C, 0x1E, 0x01, 0xF0, 0x78, 0x07, 0x81, 0xE0, 0x3E, 0x07, 0x80, 0xF0, 0x1E, 0x07, 0x80, 0x38, 0x1E, 0x00, 0xF0, 0xF0, 0x03, 0xC7, 0xC0, 0x0F, 0x1E, 0x00, 0x3C, 0xF0, 0x00, 0xF3, 0xC0, 0x03, 0xDE, 0x00, 0x07, 0x78, 0x00, 0x1F, 0xC0, 0x00, 0x7E, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0xF0, 0x07, 0xC0, 0x0F, 0x78, 0x03, 0xE0, 0x0F, 0xBC, 0x03, 0xF0, 0x07, 0x9E, 0x01, 0xF8, 0x03, 0xCF, 0x00, 0xFC, 0x03, 0xC7, 0x80, 0xFE, 0x01, 0xE3, 0xC0, 0x77, 0x01, 0xE0, 0xE0, 0x7B, 0x80, 0xF0, 0x70, 0x39, 0xC0, 0xF0, 0x38, 0x3C, 0xE0, 0x78, 0x1C, 0x1E, 0x78, 0x78, 0x0F, 0x1E, 0x3C, 0x3C, 0x07, 0x8F, 0x1E, 0x3C, 0x03, 0xC7, 0x0F, 0x1E, 0x01, 0xE7, 0x87, 0x9E, 0x00, 0xF3, 0x81, 0xCF, 0x00, 0x7B, 0xC0, 0xEF, 0x00, 0x3D, 0xC0, 0x77, 0x80, 0x1F, 0xE0, 0x3F, 0x80, 0x0F, 0xF0, 0x1F, 0xC0, 0x07, 0xF0, 0x0F, 0xC0, 0x01, 0xF8, 0x07, 0xE0, 0x00, 0xF8, 0x03, 0xE0, 0x00, 0x7C, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0xF0, 0x00, 0x00, 0x03, 0xC0, 0x07, 0xC0, 0xF8, 0x01, 0xE0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x78, 0x00, 0xF0, 0x3C, 0x00, 0x3C, 0x1F, 0x00, 0x0F, 0x8F, 0x80, 0x01, 0xE7, 0xC0, 0x00, 0x7D, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xF7, 0x80, 0x00, 0xF9, 0xF0, 0x00, 0x3C, 0x3C, 0x00, 0x1E, 0x0F, 0x80, 0x0F, 0x01, 0xE0, 0x07, 0x80, 0x7C, 0x03, 0xE0, 0x0F, 0x01, 0xF0, 0x03, 0xE0, 0xF8, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x01, 0xE0, 0x78, 0x00, 0x78, 0x0F, 0x00, 0x0F, 0x01, 0xE0, 0x03, 0xC0, 0x3C, 0x00, 0x78, 0x07, 0xC0, 0x1E, 0x00, 0x78, 0x07, 0xC0, 0x0F, 0x00, 0xF0, 0x01, 0xE0, 0x3C, 0x00, 0x3C, 0x07, 0x80, 0x07, 0x81, 0xE0, 0x00, 0xF0, 0x3C, 0x00, 0x1E, 0x0F, 0x00, 0x03, 0xC1, 0xC0, 0x00, 0x3C, 0x78, 0x00, 0x07, 0x9E, 0x00, 0x00, 0xF3, 0xC0, 0x00, 0x1E, 0xF0, 0x00, 0x03, 0xDE, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xE0, 0x00, 0x03, 0xE0, 0x00, 0x03, 0xE0, 0x00, 0x03, 0xE0, 0x00, 0x03, 0xE0, 0x00, 0x03, 0xE0, 0x00, 0x03, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x7E, 0x00, 0xFE, 0x00, 0xF0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0xC0, 0x07, 0x80, 0x07, 0x80, 0x07, 0x80, 0x07, 0x80, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0xF8, 0x00, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x7C, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0x7C, 0x00, 0x00, 0x70, 0x07, 0x00, 0x60, 0x06, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0C, 0x01, 0xC0, 0x1C, 0x01, 0xC0, 0x1C, 0x01, 0x80, 0x38, 0x03, 0x80, 0x38, 0x03, 0x00, 0x30, 0x07, 0x00, 0x70, 0x07, 0x00, 0x60, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0C, 0x01, 0xC0, 0x1C, 0x01, 0xC0, 0x1C, 0x01, 0x80, 0x38, 0x03, 0x80, 0x38, 0x03, 0x00, 0x70, 0x07, 0x00, 0x70, 0x07, 0x00, 0x60, 0x0E, 0x00, 0xE0, 0x06, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x0F, 0x00, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x3E, 0x00, 0x3C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x00, 0x1F, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x00, 0xF0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x03, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0x80, 0x07, 0x80, 0x07, 0x80, 0x0F, 0x00, 0x7F, 0x00, 0x7E, 0x00, 0xF8, 0x00, 0x0F, 0x00, 0x01, 0xFE, 0x00, 0xCF, 0xFC, 0x0E, 0xE3, 0xF0, 0xE6, 0x07, 0xFF, 0x60, 0x0F, 0xF0, 0x00, 0x1E, 0x00}; const GFXglyph FreeSansOblique24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 13, 0, 1}, // 0x20 ' ' {0, 11, 34, 13, 6, -33}, // 0x21 '!' {47, 13, 12, 17, 8, -32}, // 0x22 '"' {67, 28, 34, 26, 3, -32}, // 0x23 '#' {186, 26, 42, 26, 3, -35}, // 0x24 '$' {323, 36, 34, 42, 6, -32}, // 0x25 '%' {476, 26, 34, 31, 4, -32}, // 0x26 '&' {587, 5, 12, 9, 8, -32}, // 0x27 ''' {595, 15, 44, 16, 5, -33}, // 0x28 '(' {678, 15, 44, 16, 1, -33}, // 0x29 ')' {761, 14, 13, 18, 8, -33}, // 0x2A '*' {784, 23, 22, 27, 5, -20}, // 0x2B '+' {848, 7, 12, 13, 3, -4}, // 0x2C ',' {859, 12, 4, 16, 5, -14}, // 0x2D '-' {865, 6, 5, 13, 4, -4}, // 0x2E '.' {869, 21, 35, 13, -1, -33}, // 0x2F '/' {961, 23, 34, 26, 5, -32}, // 0x30 '0' {1059, 13, 33, 26, 10, -32}, // 0x31 '1' {1113, 27, 33, 26, 2, -32}, // 0x32 '2' {1225, 25, 34, 26, 3, -32}, // 0x33 '3' {1332, 24, 33, 26, 3, -32}, // 0x34 '4' {1431, 27, 34, 26, 3, -32}, // 0x35 '5' {1546, 24, 34, 26, 4, -32}, // 0x36 '6' {1648, 26, 33, 26, 6, -32}, // 0x37 '7' {1756, 25, 34, 26, 3, -32}, // 0x38 '8' {1863, 24, 34, 26, 4, -32}, // 0x39 '9' {1965, 10, 25, 13, 5, -24}, // 0x3A ':' {1997, 11, 32, 13, 4, -24}, // 0x3B ';' {2041, 26, 23, 27, 4, -22}, // 0x3C '<' {2116, 26, 12, 27, 3, -16}, // 0x3D '=' {2155, 26, 23, 27, 2, -21}, // 0x3E '>' {2230, 20, 35, 26, 9, -34}, // 0x3F '?' {2318, 45, 42, 48, 4, -34}, // 0x40 '@' {2555, 30, 34, 31, 1, -33}, // 0x41 'A' {2683, 29, 34, 31, 4, -33}, // 0x42 'B' {2807, 30, 36, 33, 5, -34}, // 0x43 'C' {2942, 31, 34, 33, 4, -33}, // 0x44 'D' {3074, 31, 34, 31, 4, -33}, // 0x45 'E' {3206, 30, 34, 28, 4, -33}, // 0x46 'F' {3334, 33, 36, 37, 5, -34}, // 0x47 'G' {3483, 33, 34, 34, 4, -33}, // 0x48 'H' {3624, 11, 34, 13, 5, -33}, // 0x49 'I' {3671, 25, 35, 24, 2, -33}, // 0x4A 'J' {3781, 34, 34, 31, 4, -33}, // 0x4B 'K' {3926, 22, 34, 26, 4, -33}, // 0x4C 'L' {4020, 39, 34, 40, 4, -33}, // 0x4D 'M' {4186, 34, 34, 34, 4, -33}, // 0x4E 'N' {4331, 33, 36, 36, 5, -34}, // 0x4F 'O' {4480, 29, 34, 30, 4, -33}, // 0x50 'P' {4604, 33, 38, 36, 5, -34}, // 0x51 'Q' {4761, 30, 34, 33, 4, -33}, // 0x52 'R' {4889, 29, 36, 31, 4, -34}, // 0x53 'S' {5020, 28, 34, 29, 7, -33}, // 0x54 'T' {5139, 31, 35, 34, 6, -33}, // 0x55 'U' {5275, 29, 34, 30, 8, -33}, // 0x56 'V' {5399, 43, 34, 44, 8, -33}, // 0x57 'W' {5582, 36, 34, 31, 1, -33}, // 0x58 'X' {5735, 30, 34, 32, 8, -33}, // 0x59 'Y' {5863, 34, 34, 29, 1, -33}, // 0x5A 'Z' {6008, 18, 44, 13, 1, -33}, // 0x5B '[' {6107, 6, 35, 13, 7, -33}, // 0x5C '\' {6134, 18, 44, 13, -1, -33}, // 0x5D ']' {6233, 17, 18, 22, 6, -32}, // 0x5E '^' {6272, 29, 2, 26, -3, 7}, // 0x5F '_' {6280, 8, 7, 16, 8, -34}, // 0x60 '`' {6287, 23, 27, 26, 3, -25}, // 0x61 'a' {6365, 25, 35, 26, 3, -33}, // 0x62 'b' {6475, 22, 27, 24, 4, -25}, // 0x63 'c' {6550, 27, 35, 26, 4, -33}, // 0x64 'd' {6669, 23, 27, 26, 4, -25}, // 0x65 'e' {6747, 15, 34, 12, 3, -33}, // 0x66 'f' {6811, 27, 36, 26, 2, -25}, // 0x67 'g' {6933, 23, 34, 25, 3, -33}, // 0x68 'h' {7031, 11, 34, 10, 3, -33}, // 0x69 'i' {7078, 18, 44, 11, -2, -33}, // 0x6A 'j' {7177, 25, 34, 24, 3, -33}, // 0x6B 'k' {7284, 11, 34, 10, 3, -33}, // 0x6C 'l' {7331, 36, 26, 38, 3, -25}, // 0x6D 'm' {7448, 23, 26, 25, 3, -25}, // 0x6E 'n' {7523, 23, 27, 26, 4, -25}, // 0x6F 'o' {7601, 27, 36, 26, 1, -25}, // 0x70 'p' {7723, 26, 36, 26, 3, -25}, // 0x71 'q' {7840, 17, 26, 15, 3, -25}, // 0x72 'r' {7896, 21, 27, 24, 3, -25}, // 0x73 's' {7967, 13, 32, 12, 4, -30}, // 0x74 't' {8019, 24, 26, 25, 4, -24}, // 0x75 'u' {8097, 22, 25, 23, 6, -24}, // 0x76 'v' {8166, 33, 25, 34, 6, -24}, // 0x77 'w' {8270, 26, 25, 23, 1, -24}, // 0x78 'x' {8352, 27, 35, 23, 0, -24}, // 0x79 'y' {8471, 25, 25, 23, 1, -24}, // 0x7A 'z' {8550, 16, 44, 16, 5, -33}, // 0x7B '{' {8638, 12, 44, 12, 3, -33}, // 0x7C '|' {8704, 16, 44, 16, -1, -33}, // 0x7D '}' {8792, 21, 7, 27, 6, -19}}; // 0x7E '~' const GFXfont FreeSansOblique24pt7b PROGMEM = { (uint8_t *)FreeSansOblique24pt7bBitmaps, (GFXglyph *)FreeSansOblique24pt7bGlyphs, 0x20, 0x7E, 56}; // Approx. 9483 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSansOblique9pt7b.h ================================================ const uint8_t FreeSansOblique9pt7bBitmaps[] PROGMEM = { 0x10, 0x84, 0x22, 0x10, 0x84, 0x42, 0x10, 0x08, 0x00, 0xDE, 0xE5, 0x20, 0x06, 0x40, 0x88, 0x13, 0x06, 0x43, 0xFE, 0x32, 0x04, 0x40, 0x98, 0x32, 0x1F, 0xF0, 0x98, 0x22, 0x04, 0xC0, 0x02, 0x01, 0xF8, 0x6B, 0x99, 0x33, 0x40, 0x68, 0x0F, 0x00, 0xF8, 0x07, 0xC1, 0x1B, 0x23, 0x64, 0x4E, 0x98, 0xFC, 0x04, 0x00, 0x80, 0x3C, 0x08, 0xCC, 0x23, 0x18, 0x86, 0x32, 0x0C, 0x64, 0x19, 0x90, 0x1E, 0x40, 0x01, 0x1E, 0x02, 0x66, 0x09, 0x8C, 0x23, 0x18, 0x86, 0x62, 0x07, 0x80, 0x0F, 0x06, 0x63, 0x18, 0xC6, 0x3F, 0x07, 0x03, 0xC1, 0xB3, 0xC7, 0xB0, 0xCC, 0x33, 0x3E, 0x79, 0x80, 0xFA, 0x04, 0x10, 0x60, 0x83, 0x04, 0x18, 0x30, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x10, 0x30, 0x20, 0x08, 0x18, 0x10, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x18, 0x30, 0x41, 0x82, 0x0C, 0x10, 0x40, 0x19, 0x73, 0x16, 0x48, 0x04, 0x04, 0x02, 0x1F, 0xF0, 0x80, 0x80, 0x40, 0x20, 0x6D, 0x28, 0xF0, 0xC0, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x0F, 0x19, 0xC8, 0x6C, 0x36, 0x1A, 0x0F, 0x05, 0x86, 0xC3, 0x61, 0xB1, 0x9C, 0x87, 0x80, 0x08, 0xCD, 0xE3, 0x18, 0xC4, 0x23, 0x18, 0xC4, 0x00, 0x07, 0x83, 0x1C, 0x41, 0x98, 0x30, 0x06, 0x01, 0x80, 0x60, 0x38, 0x1C, 0x06, 0x01, 0x80, 0x20, 0x0F, 0xF8, 0x0F, 0x86, 0x73, 0x0C, 0x83, 0x00, 0xC0, 0x60, 0xE0, 0x06, 0x01, 0xB0, 0x6C, 0x13, 0x8C, 0x7C, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xA0, 0x90, 0x98, 0x8C, 0x86, 0xFF, 0x81, 0x01, 0x80, 0xC0, 0x60, 0x0F, 0xC3, 0x00, 0x40, 0x08, 0x03, 0x00, 0x7F, 0x1C, 0x70, 0x06, 0x00, 0xC0, 0x1B, 0x06, 0x71, 0x87, 0xE0, 0x0F, 0x86, 0x73, 0x0D, 0x80, 0x60, 0x1F, 0xCF, 0x3B, 0x86, 0xC1, 0xB0, 0x6C, 0x33, 0x98, 0x3C, 0x00, 0x7F, 0xC0, 0x20, 0x10, 0x0C, 0x06, 0x01, 0x00, 0x80, 0x60, 0x10, 0x0C, 0x02, 0x01, 0x80, 0x40, 0x00, 0x0F, 0x86, 0x73, 0x0C, 0xC3, 0x30, 0xCC, 0x61, 0xE1, 0x86, 0x41, 0xB0, 0x6C, 0x13, 0x8C, 0x3E, 0x00, 0x0F, 0x06, 0x73, 0x0D, 0x83, 0x60, 0xD8, 0x77, 0x3C, 0xFE, 0x01, 0x80, 0x6C, 0x33, 0x98, 0x7C, 0x00, 0x30, 0x00, 0x00, 0x00, 0xC0, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x62, 0x11, 0x00, 0x00, 0x01, 0xC3, 0x8F, 0x0C, 0x07, 0x00, 0xE0, 0x1E, 0x01, 0x00, 0x7F, 0xC0, 0x00, 0x03, 0xFE, 0x40, 0x3C, 0x03, 0x80, 0x70, 0x18, 0x78, 0xE1, 0xC0, 0x00, 0x00, 0x1F, 0x30, 0xD0, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFE, 0x00, 0xC0, 0xE0, 0xC0, 0x18, 0x61, 0xD3, 0x31, 0x9C, 0xD8, 0xC2, 0x36, 0x31, 0x8F, 0x18, 0x67, 0xC6, 0x11, 0xB1, 0x8C, 0xCC, 0x67, 0x63, 0x0E, 0xF0, 0x60, 0x00, 0x1C, 0x00, 0x01, 0x81, 0x00, 0x1F, 0xC0, 0x01, 0xC0, 0x1C, 0x03, 0xC0, 0x24, 0x06, 0x60, 0x46, 0x0C, 0x61, 0x86, 0x1F, 0xE3, 0x06, 0x20, 0x26, 0x03, 0x40, 0x30, 0x1F, 0xE1, 0x87, 0x30, 0x33, 0x03, 0x30, 0x23, 0x06, 0x3F, 0xC6, 0x06, 0x60, 0x66, 0x06, 0x60, 0x66, 0x0C, 0x7F, 0x80, 0x07, 0xC1, 0x86, 0x30, 0x32, 0x03, 0x60, 0x04, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x6C, 0x06, 0xC0, 0xC6, 0x18, 0x3E, 0x00, 0x1F, 0xE0, 0xC1, 0x84, 0x06, 0x60, 0x33, 0x01, 0x98, 0x0C, 0x80, 0x64, 0x02, 0x60, 0x33, 0x01, 0x98, 0x18, 0x81, 0x87, 0xF0, 0x00, 0x1F, 0xF1, 0x80, 0x10, 0x03, 0x00, 0x30, 0x03, 0x00, 0x3F, 0xE2, 0x00, 0x60, 0x06, 0x00, 0x60, 0x04, 0x00, 0x7F, 0xC0, 0x1F, 0xF1, 0x80, 0x10, 0x03, 0x00, 0x30, 0x03, 0x00, 0x3F, 0xC2, 0x00, 0x60, 0x06, 0x00, 0x60, 0x04, 0x00, 0x40, 0x00, 0x07, 0xE0, 0xE1, 0x8C, 0x06, 0xC0, 0x36, 0x00, 0x60, 0x03, 0x07, 0xF8, 0x02, 0xC0, 0x36, 0x01, 0x98, 0x1C, 0xE1, 0xC1, 0xF2, 0x00, 0x18, 0x08, 0xC0, 0xC4, 0x06, 0x60, 0x33, 0x01, 0x18, 0x18, 0xFF, 0xC4, 0x06, 0x60, 0x23, 0x01, 0x18, 0x18, 0x80, 0xC4, 0x06, 0x00, 0x33, 0x32, 0x26, 0x66, 0x44, 0xCC, 0xC0, 0x00, 0xC0, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x30, 0x0C, 0x03, 0x30, 0xCC, 0x63, 0x18, 0x7C, 0x00, 0x18, 0x18, 0x60, 0xC1, 0x0E, 0x0C, 0x60, 0x33, 0x00, 0xD8, 0x03, 0xF0, 0x0C, 0xC0, 0x61, 0x81, 0x86, 0x06, 0x0C, 0x10, 0x30, 0x40, 0x60, 0x18, 0x0C, 0x04, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x40, 0x60, 0x30, 0x18, 0x08, 0x07, 0xF8, 0x18, 0x06, 0x18, 0x0E, 0x18, 0x0E, 0x34, 0x1E, 0x34, 0x36, 0x34, 0x34, 0x24, 0x64, 0x24, 0x6C, 0x64, 0xCC, 0x64, 0x8C, 0x65, 0x88, 0x43, 0x08, 0x43, 0x18, 0x18, 0x08, 0xE0, 0x47, 0x06, 0x6C, 0x33, 0x61, 0x99, 0x08, 0x8C, 0xC4, 0x66, 0x61, 0xB3, 0x0D, 0x18, 0x38, 0x81, 0xC4, 0x06, 0x00, 0x07, 0xC0, 0xC3, 0x8C, 0x0E, 0xC0, 0x36, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x36, 0x01, 0xB8, 0x18, 0xE1, 0x81, 0xF0, 0x00, 0x1F, 0xE1, 0x83, 0x10, 0x33, 0x03, 0x30, 0x33, 0x06, 0x3F, 0xC2, 0x00, 0x60, 0x06, 0x00, 0x60, 0x04, 0x00, 0x40, 0x00, 0x07, 0xC0, 0xC3, 0x8C, 0x0E, 0xC0, 0x36, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x36, 0x09, 0xB8, 0x78, 0xE3, 0x81, 0xF6, 0x00, 0x10, 0x1F, 0xF0, 0xC0, 0xC4, 0x06, 0x60, 0x33, 0x01, 0x18, 0x18, 0xFF, 0x04, 0x0C, 0x60, 0x63, 0x03, 0x18, 0x18, 0x80, 0xC4, 0x06, 0x00, 0x07, 0xC1, 0x87, 0x30, 0x33, 0x03, 0x30, 0x03, 0xC0, 0x0F, 0xC0, 0x1E, 0x00, 0x6C, 0x06, 0xC0, 0x46, 0x0C, 0x3F, 0x00, 0xFF, 0xC3, 0x00, 0xC0, 0x20, 0x18, 0x06, 0x01, 0x80, 0x60, 0x10, 0x0C, 0x03, 0x00, 0xC0, 0x20, 0x00, 0x30, 0x13, 0x03, 0x20, 0x36, 0x03, 0x60, 0x26, 0x06, 0x60, 0x64, 0x06, 0xC0, 0x6C, 0x04, 0xC0, 0xCE, 0x18, 0x3E, 0x00, 0xC0, 0x78, 0x0B, 0x03, 0x20, 0xC4, 0x18, 0xC6, 0x18, 0x83, 0x30, 0x64, 0x0D, 0x80, 0xA0, 0x1C, 0x03, 0x00, 0xC1, 0x83, 0xC1, 0x83, 0xC3, 0x86, 0xC2, 0x86, 0xC6, 0x84, 0xC4, 0x8C, 0xCC, 0xC8, 0xC8, 0xD8, 0xD8, 0xD0, 0xD0, 0xF0, 0x70, 0xE0, 0x60, 0xE0, 0x60, 0xE0, 0x0C, 0x0C, 0x30, 0x60, 0x63, 0x01, 0x98, 0x02, 0xC0, 0x0E, 0x00, 0x38, 0x01, 0xE0, 0x0C, 0x80, 0x33, 0x01, 0x8C, 0x0C, 0x18, 0x60, 0x60, 0xC0, 0x66, 0x0C, 0x60, 0xC2, 0x18, 0x33, 0x03, 0x60, 0x1C, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x00, 0x30, 0x00, 0x1F, 0xF0, 0x07, 0x00, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x00, 0xFF, 0xC0, 0x0E, 0x10, 0x20, 0x41, 0x02, 0x04, 0x08, 0x20, 0x40, 0x81, 0x04, 0x08, 0x10, 0x20, 0xE0, 0xAA, 0xA9, 0x55, 0x40, 0x0E, 0x08, 0x10, 0x20, 0x41, 0x02, 0x04, 0x08, 0x20, 0x40, 0x81, 0x04, 0x08, 0x10, 0xE0, 0x0C, 0x18, 0x51, 0xA2, 0x4C, 0x50, 0x80, 0xFF, 0xE0, 0xC8, 0x80, 0x0F, 0x86, 0x33, 0x0C, 0x03, 0x03, 0xDF, 0xEE, 0x0B, 0x02, 0xC1, 0x9F, 0xE0, 0x10, 0x04, 0x01, 0x00, 0xDC, 0x39, 0x88, 0x32, 0x0D, 0x83, 0x40, 0xD0, 0x64, 0x1B, 0x8C, 0xBC, 0x00, 0x1F, 0x18, 0xD8, 0x6C, 0x0C, 0x06, 0x03, 0x01, 0x86, 0x66, 0x3E, 0x00, 0x00, 0x20, 0x08, 0x01, 0x0F, 0x23, 0x14, 0xC1, 0x18, 0x26, 0x04, 0xC0, 0x98, 0x23, 0x04, 0x71, 0x87, 0xD0, 0x0F, 0x0C, 0x76, 0x0D, 0x83, 0xFF, 0xF0, 0x0C, 0x03, 0x06, 0x63, 0x0F, 0x80, 0x1C, 0xC2, 0x1E, 0x20, 0x84, 0x10, 0x41, 0x04, 0x20, 0x80, 0x0F, 0x46, 0x33, 0x0C, 0xC1, 0x60, 0xD8, 0x26, 0x09, 0x86, 0x71, 0x8F, 0xE0, 0x10, 0x04, 0xC2, 0x1F, 0x00, 0x10, 0x04, 0x01, 0x00, 0x9F, 0x39, 0x88, 0x22, 0x09, 0x02, 0x40, 0x90, 0x44, 0x12, 0x04, 0x81, 0x00, 0x10, 0x02, 0x22, 0x64, 0x44, 0x48, 0x80, 0x04, 0x00, 0x01, 0x08, 0x20, 0x82, 0x08, 0x41, 0x04, 0x10, 0x42, 0x08, 0xE0, 0x10, 0x08, 0x04, 0x04, 0x32, 0x31, 0x20, 0xA0, 0xB8, 0x6C, 0x22, 0x11, 0x90, 0xC8, 0x30, 0x11, 0x22, 0x22, 0x64, 0x44, 0x48, 0x80, 0x2F, 0x3C, 0x63, 0x8C, 0x86, 0x19, 0x08, 0x44, 0x10, 0x88, 0x21, 0x10, 0x82, 0x21, 0x04, 0x82, 0x11, 0x04, 0x20, 0x00, 0x0B, 0xF3, 0x18, 0x82, 0x20, 0x90, 0x24, 0x09, 0x04, 0x41, 0x20, 0x48, 0x10, 0x0F, 0x0C, 0x76, 0x0D, 0x83, 0xC0, 0xF0, 0x3C, 0x1B, 0x06, 0xE3, 0x0F, 0x00, 0x17, 0xC3, 0x1C, 0x41, 0x98, 0x32, 0x06, 0x40, 0xC8, 0x33, 0x06, 0x71, 0x8B, 0xC1, 0x00, 0x20, 0x08, 0x01, 0x00, 0x00, 0x1E, 0xCC, 0x66, 0x09, 0x82, 0xC0, 0xB0, 0x4C, 0x13, 0x04, 0x63, 0x0F, 0xC0, 0x20, 0x08, 0x02, 0x00, 0x80, 0x2C, 0x60, 0x81, 0x04, 0x08, 0x10, 0x20, 0x81, 0x00, 0x1E, 0x33, 0x63, 0x60, 0x70, 0x1E, 0x03, 0xC3, 0xC6, 0x7C, 0x22, 0xF2, 0x44, 0x44, 0xCC, 0xCE, 0x21, 0x20, 0x90, 0x48, 0x24, 0x12, 0x13, 0x09, 0x84, 0xE6, 0x3E, 0x00, 0xC1, 0xE1, 0xB0, 0xC8, 0xC4, 0x43, 0x61, 0xA0, 0xF0, 0x70, 0x18, 0x00, 0xC7, 0x1E, 0x38, 0xB3, 0xCD, 0x96, 0x4C, 0xB6, 0x6D, 0xB1, 0x4D, 0x0E, 0x78, 0x63, 0x83, 0x1C, 0x00, 0x10, 0xC3, 0x10, 0x24, 0x07, 0x80, 0xE0, 0x1C, 0x07, 0x81, 0x90, 0x23, 0x08, 0x20, 0x30, 0x46, 0x18, 0x42, 0x08, 0xC1, 0x10, 0x24, 0x07, 0x80, 0xE0, 0x1C, 0x03, 0x00, 0x60, 0x08, 0x03, 0x01, 0xC0, 0x00, 0x3F, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x7F, 0x00, 0x18, 0x88, 0x42, 0x10, 0x88, 0xC3, 0x18, 0x88, 0x42, 0x18, 0xE0, 0x11, 0x22, 0x22, 0x24, 0x44, 0x4C, 0x88, 0x88, 0x00, 0x38, 0xC2, 0x10, 0x88, 0xC6, 0x18, 0x88, 0x42, 0x10, 0x88, 0xC0, 0x70, 0x4E, 0x41, 0xC0}; const GFXglyph FreeSansOblique9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 5, 0, 1}, // 0x20 ' ' {0, 5, 13, 5, 2, -12}, // 0x21 '!' {9, 5, 4, 6, 3, -12}, // 0x22 '"' {12, 11, 13, 10, 1, -12}, // 0x23 '#' {30, 11, 16, 10, 1, -13}, // 0x24 '$' {52, 15, 13, 16, 2, -12}, // 0x25 '%' {77, 10, 13, 12, 2, -12}, // 0x26 '&' {94, 2, 4, 3, 3, -12}, // 0x27 ''' {95, 7, 17, 6, 2, -12}, // 0x28 '(' {110, 7, 17, 6, -1, -12}, // 0x29 ')' {125, 6, 5, 7, 3, -12}, // 0x2A '*' {129, 9, 8, 11, 2, -7}, // 0x2B '+' {138, 3, 5, 5, 1, -1}, // 0x2C ',' {140, 4, 1, 6, 2, -4}, // 0x2D '-' {141, 2, 1, 5, 2, 0}, // 0x2E '.' {142, 8, 13, 5, 0, -12}, // 0x2F '/' {155, 9, 13, 10, 2, -12}, // 0x30 '0' {170, 5, 13, 10, 4, -12}, // 0x31 '1' {179, 11, 13, 10, 1, -12}, // 0x32 '2' {197, 10, 13, 10, 1, -12}, // 0x33 '3' {214, 9, 13, 10, 1, -12}, // 0x34 '4' {229, 11, 13, 10, 1, -12}, // 0x35 '5' {247, 10, 13, 10, 2, -12}, // 0x36 '6' {264, 10, 13, 10, 2, -12}, // 0x37 '7' {281, 10, 13, 10, 1, -12}, // 0x38 '8' {298, 10, 13, 10, 1, -12}, // 0x39 '9' {315, 4, 9, 5, 2, -8}, // 0x3A ':' {320, 5, 12, 5, 1, -8}, // 0x3B ';' {328, 9, 9, 11, 2, -8}, // 0x3C '<' {339, 10, 4, 11, 1, -5}, // 0x3D '=' {344, 9, 9, 11, 1, -7}, // 0x3E '>' {355, 9, 13, 10, 3, -12}, // 0x3F '?' {370, 18, 16, 18, 1, -12}, // 0x40 '@' {406, 12, 13, 12, 0, -12}, // 0x41 'A' {426, 12, 13, 12, 1, -12}, // 0x42 'B' {446, 12, 13, 13, 2, -12}, // 0x43 'C' {466, 13, 13, 13, 1, -12}, // 0x44 'D' {488, 12, 13, 12, 1, -12}, // 0x45 'E' {508, 12, 13, 11, 1, -12}, // 0x46 'F' {528, 13, 13, 14, 2, -12}, // 0x47 'G' {550, 13, 13, 13, 1, -12}, // 0x48 'H' {572, 4, 13, 5, 2, -12}, // 0x49 'I' {579, 10, 13, 9, 1, -12}, // 0x4A 'J' {596, 14, 13, 12, 1, -12}, // 0x4B 'K' {619, 9, 13, 10, 1, -12}, // 0x4C 'L' {634, 16, 13, 15, 1, -12}, // 0x4D 'M' {660, 13, 13, 13, 1, -12}, // 0x4E 'N' {682, 13, 13, 14, 2, -12}, // 0x4F 'O' {704, 12, 13, 12, 1, -12}, // 0x50 'P' {724, 13, 14, 14, 2, -12}, // 0x51 'Q' {747, 13, 13, 13, 1, -12}, // 0x52 'R' {769, 12, 13, 12, 1, -12}, // 0x53 'S' {789, 10, 13, 11, 3, -12}, // 0x54 'T' {806, 12, 13, 13, 2, -12}, // 0x55 'U' {826, 11, 13, 12, 3, -12}, // 0x56 'V' {844, 16, 13, 17, 3, -12}, // 0x57 'W' {870, 14, 13, 12, 0, -12}, // 0x58 'X' {893, 12, 13, 12, 3, -12}, // 0x59 'Y' {913, 12, 13, 11, 1, -12}, // 0x5A 'Z' {933, 7, 17, 5, 0, -12}, // 0x5B '[' {948, 2, 13, 5, 3, -12}, // 0x5C '\' {952, 7, 17, 5, 0, -12}, // 0x5D ']' {967, 7, 7, 8, 2, -12}, // 0x5E '^' {974, 11, 1, 10, -1, 3}, // 0x5F '_' {976, 3, 3, 6, 3, -12}, // 0x60 '`' {978, 10, 10, 10, 1, -9}, // 0x61 'a' {991, 10, 13, 10, 1, -12}, // 0x62 'b' {1008, 9, 10, 9, 1, -9}, // 0x63 'c' {1020, 11, 13, 10, 1, -12}, // 0x64 'd' {1038, 10, 10, 10, 1, -9}, // 0x65 'e' {1051, 6, 13, 5, 1, -12}, // 0x66 'f' {1061, 10, 14, 10, 0, -9}, // 0x67 'g' {1079, 10, 13, 10, 1, -12}, // 0x68 'h' {1096, 4, 13, 4, 1, -12}, // 0x69 'i' {1103, 6, 17, 4, -1, -12}, // 0x6A 'j' {1116, 9, 13, 9, 1, -12}, // 0x6B 'k' {1131, 4, 13, 4, 1, -12}, // 0x6C 'l' {1138, 15, 10, 15, 1, -9}, // 0x6D 'm' {1157, 10, 11, 10, 1, -10}, // 0x6E 'n' {1171, 10, 10, 10, 1, -9}, // 0x6F 'o' {1184, 11, 14, 10, 0, -9}, // 0x70 'p' {1204, 10, 14, 10, 1, -9}, // 0x71 'q' {1222, 7, 10, 6, 1, -9}, // 0x72 'r' {1231, 8, 10, 9, 1, -9}, // 0x73 's' {1241, 4, 12, 5, 2, -11}, // 0x74 't' {1247, 9, 10, 10, 2, -9}, // 0x75 'u' {1259, 9, 10, 9, 2, -9}, // 0x76 'v' {1271, 13, 10, 13, 2, -9}, // 0x77 'w' {1288, 11, 10, 9, 0, -9}, // 0x78 'x' {1302, 11, 14, 9, 0, -9}, // 0x79 'y' {1322, 9, 10, 9, 1, -9}, // 0x7A 'z' {1334, 5, 17, 6, 2, -12}, // 0x7B '{' {1345, 4, 17, 5, 1, -12}, // 0x7C '|' {1354, 5, 17, 6, 0, -12}, // 0x7D '}' {1365, 9, 3, 11, 2, -7}}; // 0x7E '~' const GFXfont FreeSansOblique9pt7b PROGMEM = { (uint8_t *)FreeSansOblique9pt7bBitmaps, (GFXglyph *)FreeSansOblique9pt7bGlyphs, 0x20, 0x7E, 22}; // Approx. 2041 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerif12pt7b.h ================================================ const uint8_t FreeSerif12pt7bBitmaps[] PROGMEM = { 0xFF, 0xFE, 0xA8, 0x3F, 0xCF, 0x3C, 0xF3, 0x8A, 0x20, 0x0C, 0x40, 0xC4, 0x08, 0x40, 0x8C, 0x08, 0xC7, 0xFF, 0x18, 0x81, 0x88, 0x10, 0x81, 0x08, 0xFF, 0xE1, 0x18, 0x31, 0x03, 0x10, 0x31, 0x02, 0x10, 0x04, 0x07, 0xC6, 0x5B, 0x12, 0xC4, 0xB1, 0x0F, 0x41, 0xF0, 0x1E, 0x01, 0xE0, 0x58, 0x13, 0x84, 0xE1, 0x3C, 0x4F, 0x96, 0x3F, 0x01, 0x00, 0x00, 0x04, 0x03, 0x83, 0x03, 0x9F, 0x81, 0xC2, 0x20, 0x60, 0x90, 0x38, 0x24, 0x0C, 0x12, 0x03, 0x0D, 0x00, 0xC6, 0x47, 0x9E, 0x23, 0x10, 0x09, 0x84, 0x04, 0xE1, 0x03, 0x30, 0x40, 0x8C, 0x20, 0x43, 0x08, 0x10, 0xC4, 0x08, 0x1E, 0x00, 0x03, 0xC0, 0x02, 0x30, 0x03, 0x08, 0x01, 0x84, 0x00, 0xC4, 0x00, 0x7C, 0xF8, 0x1C, 0x38, 0x1E, 0x08, 0x33, 0x0C, 0x31, 0xC4, 0x10, 0x74, 0x18, 0x3A, 0x0C, 0x0E, 0x07, 0x03, 0x83, 0xC3, 0xE2, 0x7E, 0x3E, 0xFF, 0xA0, 0x04, 0x21, 0x08, 0x61, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC1, 0x04, 0x18, 0x20, 0x40, 0x81, 0x81, 0x02, 0x04, 0x18, 0x20, 0x83, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0x86, 0x10, 0x84, 0x20, 0x30, 0xB3, 0xD7, 0x54, 0x38, 0x7C, 0xD3, 0x30, 0x30, 0x10, 0x04, 0x00, 0x80, 0x10, 0x02, 0x00, 0x41, 0xFF, 0xC1, 0x00, 0x20, 0x04, 0x00, 0x80, 0x10, 0x00, 0xDF, 0x95, 0x00, 0xFC, 0xFC, 0x06, 0x0C, 0x10, 0x60, 0xC1, 0x06, 0x0C, 0x10, 0x60, 0xC1, 0x06, 0x0C, 0x10, 0x60, 0xC0, 0x1E, 0x0C, 0xC6, 0x19, 0x86, 0xC0, 0xB0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xD8, 0x66, 0x18, 0xCC, 0x1E, 0x00, 0x11, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0xFC, 0x1E, 0x18, 0xC4, 0x1A, 0x06, 0x01, 0x80, 0x60, 0x10, 0x0C, 0x02, 0x01, 0x00, 0xC0, 0x60, 0x30, 0x18, 0x1F, 0xF8, 0x1E, 0x18, 0xE8, 0x18, 0x06, 0x01, 0x00, 0x80, 0xF0, 0x7E, 0x03, 0xC0, 0x70, 0x0C, 0x03, 0x00, 0xC0, 0x6E, 0x11, 0xF8, 0x01, 0x00, 0xC0, 0x70, 0x2C, 0x0B, 0x04, 0xC2, 0x30, 0x8C, 0x43, 0x20, 0xC8, 0x33, 0xFF, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x00, 0x03, 0xF1, 0x00, 0x40, 0x18, 0x0F, 0x80, 0xF8, 0x0E, 0x01, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x20, 0x1B, 0x8C, 0x7C, 0x00, 0x01, 0xC3, 0xC1, 0xC0, 0xC0, 0x70, 0x18, 0x0E, 0xF3, 0xCE, 0xC1, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xD8, 0x36, 0x08, 0xC6, 0x1E, 0x00, 0x3F, 0xD0, 0x38, 0x08, 0x06, 0x01, 0x80, 0x40, 0x10, 0x0C, 0x02, 0x00, 0x80, 0x20, 0x10, 0x04, 0x01, 0x00, 0x80, 0x20, 0x1F, 0x18, 0x6C, 0x0F, 0x03, 0xC0, 0xF8, 0x67, 0x30, 0xF0, 0x1E, 0x09, 0xE6, 0x3B, 0x07, 0xC0, 0xF0, 0x3C, 0x0D, 0x86, 0x1F, 0x00, 0x1E, 0x08, 0xC6, 0x1B, 0x02, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xE0, 0xDC, 0x73, 0xEC, 0x06, 0x01, 0x80, 0xC0, 0x70, 0x38, 0x38, 0x18, 0x00, 0xFC, 0x00, 0x3F, 0xCC, 0xC0, 0x00, 0x00, 0x06, 0x77, 0x12, 0x40, 0x00, 0x00, 0x07, 0x01, 0xE0, 0x78, 0x1E, 0x07, 0x00, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x07, 0x00, 0x10, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x80, 0x0E, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x30, 0x0E, 0x07, 0x81, 0xE0, 0x78, 0x0E, 0x00, 0x00, 0x00, 0x7C, 0x86, 0x83, 0xC3, 0x03, 0x03, 0x06, 0x0C, 0x08, 0x08, 0x10, 0x10, 0x00, 0x00, 0x30, 0x30, 0x30, 0x03, 0xF0, 0x06, 0x06, 0x06, 0x00, 0x86, 0x00, 0x26, 0x0E, 0xD3, 0x0C, 0xC7, 0x0C, 0x63, 0x84, 0x31, 0xC6, 0x18, 0xE3, 0x08, 0x71, 0x8C, 0x4C, 0xC6, 0x46, 0x3D, 0xC1, 0x80, 0x00, 0x30, 0x10, 0x07, 0xF0, 0x00, 0x80, 0x00, 0x60, 0x00, 0x70, 0x00, 0x38, 0x00, 0x2E, 0x00, 0x13, 0x00, 0x19, 0xC0, 0x08, 0x60, 0x04, 0x38, 0x04, 0x0C, 0x03, 0xFF, 0x03, 0x03, 0x81, 0x00, 0xE1, 0x80, 0x70, 0xC0, 0x3D, 0xF0, 0x3F, 0xFF, 0x83, 0x0C, 0x30, 0x63, 0x06, 0x30, 0x63, 0x06, 0x30, 0xC3, 0xF0, 0x30, 0xE3, 0x06, 0x30, 0x33, 0x03, 0x30, 0x33, 0x07, 0x30, 0xEF, 0xFC, 0x07, 0xE2, 0x38, 0x3C, 0xC0, 0x3B, 0x00, 0x36, 0x00, 0x38, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x47, 0x03, 0x03, 0xF8, 0xFF, 0xC0, 0x30, 0x78, 0x30, 0x1C, 0x30, 0x0E, 0x30, 0x06, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0C, 0x30, 0x78, 0xFF, 0xC0, 0xFF, 0xFC, 0xC0, 0x33, 0x00, 0x4C, 0x00, 0x30, 0x00, 0xC0, 0x43, 0x03, 0x0F, 0xFC, 0x30, 0x30, 0xC0, 0x43, 0x00, 0x0C, 0x00, 0x30, 0x08, 0xC0, 0x23, 0x03, 0xBF, 0xFE, 0xFF, 0xFC, 0xC0, 0x33, 0x00, 0x4C, 0x00, 0x30, 0x00, 0xC0, 0x43, 0x03, 0x0F, 0xFC, 0x30, 0x30, 0xC0, 0x43, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x3F, 0x00, 0x07, 0xE4, 0x1C, 0x3C, 0x30, 0x0C, 0x60, 0x0C, 0x60, 0x04, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x3F, 0xC0, 0x0C, 0xC0, 0x0C, 0xC0, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x30, 0x0C, 0x1C, 0x1C, 0x07, 0xE0, 0xFC, 0x3F, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x3F, 0xFC, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0xFC, 0x3F, 0xFC, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x3F, 0x3F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xC8, 0xF0, 0xFC, 0xFE, 0x30, 0x38, 0x30, 0x20, 0x30, 0x40, 0x30, 0x80, 0x33, 0x00, 0x36, 0x00, 0x3E, 0x00, 0x37, 0x00, 0x33, 0x80, 0x31, 0xC0, 0x30, 0xE0, 0x30, 0x70, 0x30, 0x38, 0x30, 0x3C, 0xFC, 0x7F, 0xFC, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x26, 0x00, 0x8C, 0x07, 0x7F, 0xFE, 0xF8, 0x01, 0xE7, 0x00, 0x70, 0xE0, 0x0E, 0x1E, 0x03, 0xC2, 0xC0, 0x58, 0x5C, 0x1B, 0x09, 0x82, 0x61, 0x38, 0x4C, 0x27, 0x11, 0x84, 0x72, 0x30, 0x8E, 0xC6, 0x10, 0xD0, 0xC2, 0x1E, 0x18, 0x41, 0x83, 0x1C, 0x30, 0x67, 0xC4, 0x3F, 0xF0, 0x1F, 0x78, 0x0E, 0x3C, 0x04, 0x3E, 0x04, 0x2E, 0x04, 0x27, 0x04, 0x23, 0x84, 0x23, 0xC4, 0x21, 0xE4, 0x20, 0xE4, 0x20, 0x74, 0x20, 0x3C, 0x20, 0x1C, 0x20, 0x0C, 0x70, 0x0C, 0xF8, 0x04, 0x07, 0xC0, 0x30, 0x60, 0xC0, 0x63, 0x00, 0x66, 0x00, 0xD8, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1B, 0x00, 0x66, 0x00, 0xC6, 0x03, 0x06, 0x0C, 0x03, 0xE0, 0xFF, 0x83, 0x0E, 0x30, 0x73, 0x03, 0x30, 0x33, 0x03, 0x30, 0x63, 0x0E, 0x3F, 0x83, 0x00, 0x30, 0x03, 0x00, 0x30, 0x03, 0x00, 0x30, 0x0F, 0xC0, 0x0F, 0xE0, 0x18, 0x30, 0x30, 0x18, 0x60, 0x0C, 0x60, 0x0C, 0xC0, 0x06, 0xC0, 0x06, 0xC0, 0x06, 0xC0, 0x06, 0xC0, 0x06, 0xC0, 0x06, 0x60, 0x0C, 0x60, 0x0C, 0x30, 0x18, 0x18, 0x30, 0x07, 0xC0, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1F, 0xFF, 0x80, 0x61, 0xC0, 0xC1, 0xC1, 0x81, 0x83, 0x03, 0x06, 0x06, 0x0C, 0x1C, 0x18, 0x70, 0x3F, 0x80, 0x67, 0x00, 0xC7, 0x01, 0x8F, 0x03, 0x0F, 0x06, 0x0E, 0x0C, 0x0E, 0x7E, 0x0F, 0x1F, 0x46, 0x19, 0x81, 0x30, 0x27, 0x02, 0xF0, 0x0F, 0x00, 0xF8, 0x07, 0xC0, 0x38, 0x03, 0xC0, 0x34, 0x06, 0x80, 0xDC, 0x32, 0x7C, 0xFF, 0xFF, 0x86, 0x0E, 0x0C, 0x1C, 0x18, 0x10, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x07, 0xE0, 0xFC, 0x1F, 0x30, 0x0E, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x18, 0x08, 0x1C, 0x18, 0x07, 0xE0, 0xFE, 0x0F, 0x9C, 0x03, 0x0E, 0x01, 0x83, 0x00, 0x81, 0xC0, 0x40, 0x60, 0x40, 0x38, 0x20, 0x0C, 0x30, 0x07, 0x10, 0x01, 0x98, 0x00, 0xE8, 0x00, 0x34, 0x00, 0x1E, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x00, 0xFC, 0xFC, 0x3D, 0xE1, 0xC0, 0x63, 0x83, 0x01, 0x86, 0x0E, 0x04, 0x1C, 0x18, 0x10, 0x70, 0x70, 0x80, 0xC3, 0xC2, 0x03, 0x8B, 0x08, 0x06, 0x6E, 0x40, 0x1D, 0x19, 0x00, 0x74, 0x78, 0x00, 0xE1, 0xE0, 0x03, 0x83, 0x80, 0x0E, 0x0C, 0x00, 0x10, 0x10, 0x00, 0x40, 0x40, 0x7F, 0x1F, 0x9E, 0x03, 0x07, 0x03, 0x01, 0xC3, 0x00, 0x71, 0x00, 0x19, 0x00, 0x0F, 0x00, 0x03, 0x80, 0x01, 0xE0, 0x01, 0xB0, 0x01, 0x9C, 0x00, 0x87, 0x00, 0x81, 0xC0, 0x80, 0xE0, 0xC0, 0x79, 0xF8, 0x7F, 0xFE, 0x1F, 0x78, 0x0C, 0x38, 0x08, 0x1C, 0x18, 0x0E, 0x10, 0x06, 0x20, 0x07, 0x60, 0x03, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x07, 0xE0, 0x7F, 0xFB, 0x00, 0xC8, 0x07, 0x20, 0x38, 0x01, 0xC0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0x38, 0x05, 0xC0, 0x3E, 0x01, 0xBF, 0xFE, 0xFE, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0xF0, 0xC1, 0x81, 0x03, 0x06, 0x04, 0x0C, 0x18, 0x10, 0x30, 0x60, 0x40, 0xC1, 0x81, 0x03, 0x06, 0xF8, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC7, 0xF0, 0x0C, 0x07, 0x01, 0x60, 0xD8, 0x23, 0x18, 0xC4, 0x1B, 0x06, 0x80, 0xC0, 0xFF, 0xF0, 0xC7, 0x0C, 0x30, 0x3E, 0x31, 0x8C, 0x30, 0x0C, 0x03, 0x07, 0xC6, 0x33, 0x0C, 0xC3, 0x31, 0xC7, 0xB8, 0x20, 0x38, 0x06, 0x01, 0x80, 0x60, 0x18, 0x06, 0xF1, 0xC6, 0x61, 0xD8, 0x36, 0x0D, 0x83, 0x60, 0xD8, 0x26, 0x19, 0x84, 0x3E, 0x00, 0x1E, 0x23, 0x63, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0x72, 0x3C, 0x00, 0x80, 0xE0, 0x18, 0x06, 0x01, 0x80, 0x61, 0xD8, 0x8E, 0x61, 0xB0, 0x6C, 0x1B, 0x06, 0xC1, 0xB0, 0x6E, 0x19, 0xCE, 0x3D, 0xC0, 0x1E, 0x08, 0xE4, 0x1B, 0xFE, 0xC0, 0x30, 0x0C, 0x03, 0x81, 0x60, 0x9C, 0x41, 0xE0, 0x0F, 0x08, 0xC4, 0x06, 0x03, 0x01, 0x81, 0xF0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60, 0xFC, 0x00, 0x1F, 0x03, 0x1F, 0x60, 0xC6, 0x0C, 0x60, 0xC3, 0x18, 0x1F, 0x02, 0x00, 0x40, 0x07, 0xFC, 0x40, 0x24, 0x02, 0xC0, 0x2C, 0x04, 0xE0, 0x83, 0xF0, 0x30, 0x1E, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0D, 0xE1, 0xCE, 0x30, 0xC6, 0x18, 0xC3, 0x18, 0x63, 0x0C, 0x61, 0x8C, 0x31, 0x86, 0x79, 0xE0, 0x31, 0x80, 0x00, 0x09, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xDF, 0x0C, 0x30, 0x00, 0x00, 0x31, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xF2, 0xF0, 0x20, 0x1C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0xFB, 0x08, 0x62, 0x0C, 0x81, 0xE0, 0x3E, 0x06, 0xE0, 0xCE, 0x18, 0xC3, 0x0E, 0xF3, 0xE0, 0x13, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0xF8, 0xF7, 0x8F, 0x0E, 0x3C, 0xE3, 0x0C, 0x18, 0xC3, 0x06, 0x30, 0xC1, 0x8C, 0x30, 0x63, 0x0C, 0x18, 0xC3, 0x06, 0x30, 0xC1, 0x8C, 0x30, 0x67, 0x9E, 0x3C, 0xF7, 0x87, 0x18, 0xC3, 0x18, 0x63, 0x0C, 0x61, 0x8C, 0x31, 0x86, 0x30, 0xC6, 0x19, 0xE7, 0x80, 0x1E, 0x18, 0xE4, 0x1B, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0x60, 0x9C, 0x41, 0xE0, 0x77, 0x87, 0x18, 0xC3, 0x98, 0x33, 0x06, 0x60, 0xCC, 0x19, 0x83, 0x30, 0xC7, 0x10, 0xDC, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x07, 0xE0, 0x1E, 0x8C, 0xE6, 0x1B, 0x06, 0xC1, 0xB0, 0x6C, 0x1B, 0x06, 0xE1, 0x98, 0xE3, 0xD8, 0x06, 0x01, 0x80, 0x60, 0x18, 0x1F, 0x37, 0x7B, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x7C, 0x7B, 0x0E, 0x1C, 0x1E, 0x0F, 0x07, 0xC3, 0x87, 0x8A, 0xE0, 0x21, 0x8F, 0x98, 0x61, 0x86, 0x18, 0x61, 0x86, 0x19, 0x38, 0xE3, 0x98, 0x66, 0x19, 0x86, 0x61, 0x98, 0x66, 0x19, 0x86, 0x61, 0x9C, 0xE3, 0xDC, 0xF8, 0xEE, 0x08, 0xC1, 0x18, 0x41, 0x88, 0x32, 0x03, 0x40, 0x68, 0x06, 0x00, 0xC0, 0x10, 0x00, 0xF3, 0xE7, 0x61, 0x83, 0x70, 0xC2, 0x30, 0xC2, 0x30, 0xC4, 0x19, 0x64, 0x19, 0x68, 0x0E, 0x38, 0x0E, 0x38, 0x0C, 0x30, 0x04, 0x10, 0xFB, 0xC6, 0x30, 0x64, 0x0F, 0x00, 0xC0, 0x0C, 0x03, 0xC0, 0x98, 0x21, 0x8C, 0x3B, 0xCF, 0x80, 0xF8, 0xEE, 0x08, 0xC1, 0x18, 0x41, 0x88, 0x31, 0x03, 0x40, 0x68, 0x06, 0x00, 0xC0, 0x08, 0x02, 0x00, 0x40, 0x10, 0x1E, 0x03, 0x80, 0x7F, 0x90, 0xE0, 0x30, 0x18, 0x0E, 0x03, 0x01, 0xC0, 0xE0, 0x30, 0x5C, 0x3F, 0xF8, 0x19, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0xB0, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x61, 0x80, 0xFF, 0xFF, 0x80, 0xC3, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x06, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xCC, 0x00, 0x38, 0x06, 0x62, 0x41, 0xC0}; const GFXglyph FreeSerif12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 6, 0, 1}, // 0x20 ' ' {0, 2, 16, 8, 3, -15}, // 0x21 '!' {4, 6, 6, 10, 1, -15}, // 0x22 '"' {9, 12, 16, 12, 0, -15}, // 0x23 '#' {33, 10, 18, 12, 1, -16}, // 0x24 '$' {56, 18, 17, 20, 1, -16}, // 0x25 '%' {95, 17, 16, 19, 1, -15}, // 0x26 '&' {129, 2, 6, 5, 1, -15}, // 0x27 ''' {131, 6, 20, 8, 1, -15}, // 0x28 '(' {146, 6, 20, 8, 1, -15}, // 0x29 ')' {161, 8, 10, 12, 3, -14}, // 0x2A '*' {171, 11, 11, 14, 1, -10}, // 0x2B '+' {187, 3, 6, 6, 2, -2}, // 0x2C ',' {190, 6, 1, 8, 1, -5}, // 0x2D '-' {191, 2, 3, 6, 2, -2}, // 0x2E '.' {192, 7, 17, 7, 0, -16}, // 0x2F '/' {207, 10, 17, 12, 1, -16}, // 0x30 '0' {229, 6, 17, 12, 3, -16}, // 0x31 '1' {242, 10, 15, 12, 1, -14}, // 0x32 '2' {261, 10, 16, 12, 1, -15}, // 0x33 '3' {281, 10, 16, 12, 1, -15}, // 0x34 '4' {301, 10, 17, 12, 1, -16}, // 0x35 '5' {323, 10, 17, 12, 1, -16}, // 0x36 '6' {345, 10, 16, 12, 0, -15}, // 0x37 '7' {365, 10, 17, 12, 1, -16}, // 0x38 '8' {387, 10, 18, 12, 1, -16}, // 0x39 '9' {410, 2, 12, 6, 2, -11}, // 0x3A ':' {413, 4, 15, 6, 2, -11}, // 0x3B ';' {421, 12, 13, 14, 1, -12}, // 0x3C '<' {441, 12, 6, 14, 1, -8}, // 0x3D '=' {450, 12, 13, 14, 1, -11}, // 0x3E '>' {470, 8, 17, 11, 2, -16}, // 0x3F '?' {487, 17, 16, 21, 2, -15}, // 0x40 '@' {521, 17, 16, 17, 0, -15}, // 0x41 'A' {555, 12, 16, 15, 1, -15}, // 0x42 'B' {579, 15, 16, 16, 1, -15}, // 0x43 'C' {609, 16, 16, 17, 0, -15}, // 0x44 'D' {641, 14, 16, 15, 0, -15}, // 0x45 'E' {669, 14, 16, 14, 0, -15}, // 0x46 'F' {697, 16, 16, 17, 1, -15}, // 0x47 'G' {729, 16, 16, 17, 0, -15}, // 0x48 'H' {761, 6, 16, 8, 1, -15}, // 0x49 'I' {773, 8, 16, 9, 0, -15}, // 0x4A 'J' {789, 16, 16, 17, 1, -15}, // 0x4B 'K' {821, 15, 16, 15, 0, -15}, // 0x4C 'L' {851, 19, 16, 21, 1, -15}, // 0x4D 'M' {889, 16, 16, 17, 1, -15}, // 0x4E 'N' {921, 15, 16, 17, 1, -15}, // 0x4F 'O' {951, 12, 16, 14, 0, -15}, // 0x50 'P' {975, 16, 20, 17, 1, -15}, // 0x51 'Q' {1015, 15, 16, 16, 0, -15}, // 0x52 'R' {1045, 11, 16, 13, 0, -15}, // 0x53 'S' {1067, 15, 16, 15, 0, -15}, // 0x54 'T' {1097, 16, 16, 17, 1, -15}, // 0x55 'U' {1129, 17, 16, 17, 0, -15}, // 0x56 'V' {1163, 22, 16, 23, 0, -15}, // 0x57 'W' {1207, 17, 16, 17, 0, -15}, // 0x58 'X' {1241, 16, 16, 17, 0, -15}, // 0x59 'Y' {1273, 14, 16, 15, 1, -15}, // 0x5A 'Z' {1301, 5, 20, 8, 2, -15}, // 0x5B '[' {1314, 7, 17, 7, 0, -16}, // 0x5C '\' {1329, 5, 20, 8, 1, -15}, // 0x5D ']' {1342, 10, 9, 11, 1, -15}, // 0x5E '^' {1354, 12, 1, 12, 0, 3}, // 0x5F '_' {1356, 5, 4, 6, 0, -15}, // 0x60 '`' {1359, 10, 11, 10, 1, -10}, // 0x61 'a' {1373, 10, 17, 12, 1, -16}, // 0x62 'b' {1395, 8, 11, 11, 1, -10}, // 0x63 'c' {1406, 10, 17, 12, 1, -16}, // 0x64 'd' {1428, 10, 11, 11, 1, -10}, // 0x65 'e' {1442, 9, 17, 9, 0, -16}, // 0x66 'f' {1462, 12, 16, 11, 0, -10}, // 0x67 'g' {1486, 11, 17, 12, 0, -16}, // 0x68 'h' {1510, 5, 16, 7, 0, -15}, // 0x69 'i' {1520, 6, 21, 8, 0, -15}, // 0x6A 'j' {1536, 11, 17, 12, 1, -16}, // 0x6B 'k' {1560, 5, 17, 6, 0, -16}, // 0x6C 'l' {1571, 18, 11, 19, 0, -10}, // 0x6D 'm' {1596, 11, 11, 12, 0, -10}, // 0x6E 'n' {1612, 10, 11, 12, 1, -10}, // 0x6F 'o' {1626, 11, 16, 12, 0, -10}, // 0x70 'p' {1648, 10, 16, 12, 1, -10}, // 0x71 'q' {1668, 8, 11, 8, 0, -10}, // 0x72 'r' {1679, 7, 11, 9, 1, -10}, // 0x73 's' {1689, 6, 13, 7, 1, -12}, // 0x74 't' {1699, 10, 11, 12, 1, -10}, // 0x75 'u' {1713, 11, 11, 11, 0, -10}, // 0x76 'v' {1729, 16, 11, 16, 0, -10}, // 0x77 'w' {1751, 11, 11, 12, 0, -10}, // 0x78 'x' {1767, 11, 16, 11, 0, -10}, // 0x79 'y' {1789, 10, 11, 10, 0, -10}, // 0x7A 'z' {1803, 5, 21, 12, 2, -16}, // 0x7B '{' {1817, 1, 17, 5, 2, -16}, // 0x7C '|' {1820, 5, 21, 12, 5, -15}, // 0x7D '}' {1834, 12, 3, 12, 0, -6}}; // 0x7E '~' const GFXfont FreeSerif12pt7b PROGMEM = {(uint8_t *)FreeSerif12pt7bBitmaps, (GFXglyph *)FreeSerif12pt7bGlyphs, 0x20, 0x7E, 29}; // Approx. 2511 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerif18pt7b.h ================================================ const uint8_t FreeSerif18pt7bBitmaps[] PROGMEM = { 0x6F, 0xFF, 0xFF, 0xFE, 0x66, 0x66, 0x66, 0x64, 0x40, 0x00, 0x6F, 0xF6, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x46, 0x42, 0x42, 0x42, 0x03, 0x06, 0x01, 0x83, 0x00, 0xC1, 0x80, 0x61, 0xC0, 0x30, 0xC0, 0x38, 0x60, 0x18, 0x30, 0xFF, 0xFF, 0x7F, 0xFF, 0x83, 0x06, 0x01, 0x86, 0x00, 0xC3, 0x00, 0xC1, 0x87, 0xFF, 0xFF, 0xFF, 0xFE, 0x18, 0x30, 0x0C, 0x18, 0x06, 0x18, 0x06, 0x0C, 0x03, 0x06, 0x01, 0x83, 0x00, 0xC1, 0x80, 0x60, 0xC0, 0x02, 0x00, 0x10, 0x03, 0xE0, 0x64, 0xE6, 0x23, 0x61, 0x1B, 0x08, 0x58, 0x42, 0xE2, 0x03, 0x90, 0x1F, 0x80, 0x7E, 0x00, 0xFC, 0x01, 0xF0, 0x0F, 0xC0, 0x4E, 0x02, 0x38, 0x10, 0xE0, 0x87, 0x04, 0x3C, 0x21, 0xE1, 0x1B, 0xC9, 0xCF, 0xFC, 0x1F, 0x80, 0x10, 0x00, 0x80, 0x07, 0x80, 0x20, 0x0F, 0xF0, 0x70, 0x0F, 0x07, 0xD0, 0x0F, 0x02, 0x18, 0x07, 0x01, 0x18, 0x07, 0x00, 0x8C, 0x03, 0x80, 0x4C, 0x01, 0x80, 0x44, 0x00, 0xC0, 0x26, 0x00, 0x60, 0x22, 0x0F, 0x30, 0x33, 0x1F, 0xCC, 0x73, 0x1E, 0x37, 0xF1, 0x8E, 0x19, 0xE1, 0x8E, 0x04, 0x00, 0x86, 0x02, 0x00, 0xC7, 0x01, 0x00, 0xC3, 0x80, 0x80, 0x61, 0x80, 0x80, 0x60, 0xC0, 0x40, 0x30, 0x60, 0x40, 0x30, 0x38, 0xE0, 0x30, 0x0F, 0xE0, 0x18, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x61, 0x80, 0x00, 0x60, 0x60, 0x00, 0x30, 0x30, 0x00, 0x18, 0x18, 0x00, 0x0C, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x03, 0x8E, 0x00, 0x01, 0xCE, 0x00, 0x00, 0x7C, 0x3F, 0xC0, 0x38, 0x07, 0x80, 0x3E, 0x03, 0x80, 0x77, 0x01, 0x80, 0x73, 0xC0, 0x80, 0xF0, 0xF0, 0xC0, 0x70, 0x7C, 0xC0, 0x78, 0x1E, 0x40, 0x3C, 0x07, 0xC0, 0x1E, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x0F, 0xC0, 0xFF, 0x0D, 0xF0, 0xC7, 0xFC, 0x7F, 0xC1, 0xFC, 0x1F, 0x80, 0x3C, 0x00, 0xFF, 0xFE, 0x92, 0x40, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0x60, 0x70, 0x30, 0x18, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x0C, 0x06, 0x03, 0x80, 0xC0, 0x60, 0x18, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x80, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x60, 0x18, 0x0C, 0x07, 0x01, 0x80, 0xC0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x60, 0x30, 0x38, 0x18, 0x0C, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x0C, 0x00, 0xC0, 0x0C, 0x0C, 0x46, 0xE4, 0xF7, 0x5E, 0x1F, 0x00, 0xC0, 0x17, 0x8E, 0x4E, 0xE4, 0xFC, 0xC6, 0x0C, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x6F, 0xFF, 0x11, 0x24, 0x80, 0xFF, 0xFF, 0x6F, 0xF6, 0x00, 0xC0, 0x60, 0x18, 0x06, 0x03, 0x80, 0xC0, 0x30, 0x1C, 0x06, 0x01, 0x80, 0xE0, 0x30, 0x0C, 0x07, 0x01, 0x80, 0x60, 0x38, 0x0C, 0x03, 0x01, 0xC0, 0x60, 0x18, 0x0E, 0x03, 0x00, 0x03, 0xE0, 0x0E, 0x70, 0x1C, 0x38, 0x38, 0x1C, 0x38, 0x1C, 0x78, 0x1E, 0x70, 0x0E, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0x70, 0x0E, 0x70, 0x0E, 0x78, 0x1E, 0x38, 0x1C, 0x38, 0x1C, 0x1C, 0x38, 0x0C, 0x30, 0x03, 0xC0, 0x06, 0x03, 0x83, 0xE3, 0x38, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x81, 0xE1, 0xFF, 0x07, 0xC0, 0x1F, 0xF0, 0x3F, 0xF8, 0x70, 0xF8, 0x60, 0x3C, 0xC0, 0x3C, 0x80, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x18, 0x00, 0x18, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x01, 0x10, 0x02, 0x3F, 0xFE, 0x7F, 0xFC, 0xFF, 0xFC, 0x0F, 0xC0, 0xFF, 0x0C, 0x3C, 0x80, 0xE4, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x04, 0x00, 0x40, 0x04, 0x00, 0xF8, 0x1F, 0xE0, 0x0F, 0x00, 0x1C, 0x00, 0xE0, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x06, 0x00, 0x60, 0x03, 0x78, 0x73, 0xFF, 0x0F, 0xC0, 0x00, 0x30, 0x00, 0x30, 0x00, 0x70, 0x00, 0xF0, 0x00, 0xB0, 0x01, 0x30, 0x03, 0x30, 0x06, 0x30, 0x04, 0x30, 0x08, 0x30, 0x18, 0x30, 0x10, 0x30, 0x20, 0x30, 0x60, 0x30, 0xC0, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x7F, 0xC3, 0xFE, 0x1F, 0xE1, 0x80, 0x08, 0x00, 0xC0, 0x07, 0xC0, 0x7F, 0x81, 0xFF, 0x00, 0xFC, 0x01, 0xE0, 0x07, 0x80, 0x1C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x06, 0x00, 0x60, 0x07, 0x78, 0x73, 0xFF, 0x0F, 0xC0, 0x00, 0x0E, 0x00, 0xF8, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x7C, 0x00, 0x79, 0xF0, 0x7F, 0xFC, 0xF8, 0x3C, 0xF0, 0x1E, 0xF0, 0x1F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0x70, 0x0F, 0x78, 0x0F, 0x78, 0x0E, 0x3C, 0x1E, 0x1E, 0x3C, 0x0F, 0xF8, 0x07, 0xE0, 0x3F, 0xFD, 0xFF, 0xF7, 0xFF, 0xF0, 0x06, 0x80, 0x18, 0x00, 0x60, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0xE0, 0x03, 0x00, 0x0C, 0x00, 0x70, 0x01, 0x80, 0x06, 0x00, 0x38, 0x00, 0xC0, 0x03, 0x00, 0x1C, 0x00, 0x60, 0x00, 0x0F, 0x83, 0xFC, 0x70, 0xE6, 0x07, 0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x03, 0x70, 0x67, 0x8C, 0x3D, 0x81, 0xF0, 0x0F, 0x81, 0x7C, 0x21, 0xE6, 0x0E, 0xC0, 0x7C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x36, 0x06, 0x70, 0xE3, 0xFC, 0x0F, 0x80, 0x07, 0xC0, 0x1F, 0xF0, 0x3C, 0x78, 0x38, 0x3C, 0x78, 0x1E, 0x70, 0x1E, 0xF0, 0x0E, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF8, 0x0F, 0x78, 0x0F, 0x3C, 0x3F, 0x1F, 0xEE, 0x0F, 0x9E, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x70, 0x00, 0x6F, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x06, 0xFF, 0x60, 0x67, 0xBC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xEF, 0x78, 0x42, 0x22, 0x20, 0x00, 0x00, 0xC0, 0x00, 0xF0, 0x01, 0xF8, 0x01, 0xF8, 0x01, 0xF8, 0x01, 0xF0, 0x03, 0xF0, 0x03, 0xF0, 0x00, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xC0, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x80, 0x00, 0x3C, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xC0, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xF8, 0x01, 0xF8, 0x01, 0xF8, 0x01, 0xF8, 0x00, 0xF0, 0x00, 0x30, 0x00, 0x00, 0x1F, 0x81, 0xFF, 0x18, 0x7D, 0x81, 0xEC, 0x07, 0xF0, 0x3F, 0x81, 0xE0, 0x0F, 0x00, 0x70, 0x03, 0x80, 0x38, 0x01, 0x80, 0x08, 0x00, 0xC0, 0x04, 0x00, 0x20, 0x02, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x3C, 0x01, 0xE0, 0x07, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xC0, 0x07, 0x80, 0xF0, 0x0F, 0x00, 0x38, 0x1C, 0x00, 0x1C, 0x38, 0x00, 0x0C, 0x38, 0x00, 0x06, 0x70, 0x1E, 0x02, 0x70, 0x3F, 0xE3, 0xF0, 0x71, 0xE1, 0xE0, 0xE0, 0xC1, 0xE0, 0xC0, 0xC1, 0xE0, 0xC1, 0xC1, 0xE1, 0x81, 0xC1, 0xE1, 0x81, 0x83, 0xE1, 0x83, 0x82, 0xE1, 0x83, 0x86, 0x71, 0xC7, 0x8C, 0x70, 0xF9, 0xF8, 0x38, 0xF0, 0xF0, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x70, 0x03, 0xFF, 0xE0, 0x00, 0x7F, 0x00, 0x00, 0x10, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x5C, 0x00, 0x00, 0xDE, 0x00, 0x00, 0x8E, 0x00, 0x01, 0x8F, 0x00, 0x01, 0x87, 0x00, 0x03, 0x07, 0x80, 0x03, 0x03, 0x80, 0x02, 0x03, 0xC0, 0x06, 0x03, 0xC0, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x0C, 0x01, 0xE0, 0x18, 0x00, 0xF0, 0x18, 0x00, 0xF0, 0x30, 0x00, 0x78, 0x30, 0x00, 0x78, 0x70, 0x00, 0x7C, 0xFC, 0x01, 0xFF, 0xFF, 0xFC, 0x03, 0xFF, 0xF8, 0x1E, 0x0F, 0xC1, 0xE0, 0x3C, 0x1E, 0x01, 0xE1, 0xE0, 0x1E, 0x1E, 0x01, 0xE1, 0xE0, 0x1E, 0x1E, 0x03, 0xC1, 0xE0, 0x78, 0x1F, 0xFE, 0x01, 0xFF, 0xF0, 0x1E, 0x07, 0xC1, 0xE0, 0x1E, 0x1E, 0x00, 0xF1, 0xE0, 0x0F, 0x1E, 0x00, 0xF1, 0xE0, 0x0F, 0x1E, 0x00, 0xF1, 0xE0, 0x1E, 0x1E, 0x07, 0xE3, 0xFF, 0xF8, 0xFF, 0xFE, 0x00, 0x00, 0xFE, 0x08, 0x0F, 0xFF, 0x60, 0xFC, 0x1F, 0x87, 0xC0, 0x1E, 0x3C, 0x00, 0x38, 0xF0, 0x00, 0x67, 0x80, 0x01, 0x9E, 0x00, 0x02, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x02, 0x1F, 0x00, 0x38, 0x3F, 0x03, 0x80, 0x7F, 0xFC, 0x00, 0x3F, 0x80, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x78, 0x3F, 0x80, 0xF0, 0x0F, 0x81, 0xE0, 0x0F, 0x83, 0xC0, 0x0F, 0x07, 0x80, 0x0F, 0x0F, 0x00, 0x1E, 0x1E, 0x00, 0x1E, 0x3C, 0x00, 0x3C, 0x78, 0x00, 0x78, 0xF0, 0x00, 0xF1, 0xE0, 0x01, 0xE3, 0xC0, 0x03, 0xC7, 0x80, 0x07, 0x8F, 0x00, 0x1E, 0x1E, 0x00, 0x3C, 0x3C, 0x00, 0xF0, 0x78, 0x01, 0xE0, 0xF0, 0x0F, 0x81, 0xE0, 0x7E, 0x07, 0xFF, 0xF0, 0x3F, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x87, 0xFF, 0xF8, 0x3C, 0x01, 0x83, 0xC0, 0x08, 0x3C, 0x00, 0x83, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x02, 0x03, 0xC0, 0x60, 0x3F, 0xFE, 0x03, 0xFF, 0xE0, 0x3C, 0x06, 0x03, 0xC0, 0x20, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xC0, 0x01, 0x3C, 0x00, 0x23, 0xC0, 0x06, 0x3C, 0x01, 0xE7, 0xFF, 0xFE, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xBF, 0xFF, 0xCF, 0x00, 0x67, 0x80, 0x13, 0xC0, 0x09, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x02, 0x1E, 0x03, 0x0F, 0xFF, 0x87, 0xFF, 0xC3, 0xC0, 0x61, 0xE0, 0x10, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x03, 0xF0, 0x03, 0xFC, 0x00, 0x00, 0xFE, 0x04, 0x07, 0xFF, 0xB8, 0x1F, 0x03, 0xF0, 0xF8, 0x01, 0xE3, 0xE0, 0x01, 0xC7, 0x80, 0x01, 0x9E, 0x00, 0x01, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x07, 0xFF, 0x00, 0x07, 0xDE, 0x00, 0x07, 0xBC, 0x00, 0x0F, 0x78, 0x00, 0x1E, 0x78, 0x00, 0x3C, 0xF0, 0x00, 0x78, 0xF0, 0x00, 0xF1, 0xF0, 0x01, 0xE1, 0xF0, 0x03, 0xC1, 0xF8, 0x1F, 0x00, 0xFF, 0xFC, 0x00, 0x3F, 0x80, 0xFF, 0x03, 0xFD, 0xF8, 0x07, 0xE3, 0xC0, 0x0F, 0x0F, 0x00, 0x3C, 0x3C, 0x00, 0xF0, 0xF0, 0x03, 0xC3, 0xC0, 0x0F, 0x0F, 0x00, 0x3C, 0x3C, 0x00, 0xF0, 0xF0, 0x03, 0xC3, 0xFF, 0xFF, 0x0F, 0xFF, 0xFC, 0x3C, 0x00, 0xF0, 0xF0, 0x03, 0xC3, 0xC0, 0x0F, 0x0F, 0x00, 0x3C, 0x3C, 0x00, 0xF0, 0xF0, 0x03, 0xC3, 0xC0, 0x0F, 0x0F, 0x00, 0x3C, 0x3C, 0x00, 0xF1, 0xF8, 0x07, 0xEF, 0xF0, 0x3F, 0xC0, 0xFF, 0xBF, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC3, 0xF3, 0xFE, 0x0F, 0xF0, 0x7E, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC6, 0x38, 0xF3, 0x8F, 0xF0, 0x7C, 0x00, 0xFF, 0x07, 0xFC, 0xFC, 0x03, 0xC0, 0xF0, 0x07, 0x01, 0xE0, 0x1C, 0x03, 0xC0, 0x60, 0x07, 0x81, 0x80, 0x0F, 0x06, 0x00, 0x1E, 0x18, 0x00, 0x3C, 0x60, 0x00, 0x79, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x03, 0xDF, 0x00, 0x07, 0x8F, 0x00, 0x0F, 0x0F, 0x00, 0x1E, 0x0F, 0x00, 0x3C, 0x0F, 0x00, 0x78, 0x0F, 0x00, 0xF0, 0x1F, 0x01, 0xE0, 0x1F, 0x03, 0xC0, 0x1F, 0x0F, 0xC0, 0x3F, 0x3F, 0xC1, 0xFF, 0x80, 0xFF, 0x00, 0x0F, 0xC0, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x04, 0xF0, 0x01, 0x1E, 0x00, 0x63, 0xC0, 0x3C, 0xFF, 0xFF, 0xBF, 0xFF, 0xE0, 0xFC, 0x00, 0x03, 0xF9, 0xF0, 0x00, 0x1F, 0x87, 0x80, 0x01, 0xF8, 0x3E, 0x00, 0x0F, 0xC1, 0xF0, 0x00, 0x5E, 0x0B, 0xC0, 0x06, 0xF0, 0x5E, 0x00, 0x37, 0x82, 0x78, 0x03, 0x3C, 0x13, 0xC0, 0x19, 0xE0, 0x8F, 0x01, 0x8F, 0x04, 0x78, 0x0C, 0x78, 0x21, 0xE0, 0xC3, 0xC1, 0x0F, 0x06, 0x1E, 0x08, 0x3C, 0x60, 0xF0, 0x41, 0xE3, 0x07, 0x82, 0x07, 0xB0, 0x3C, 0x10, 0x3D, 0x81, 0xE0, 0x81, 0xF8, 0x0F, 0x04, 0x07, 0xC0, 0x78, 0x20, 0x3C, 0x03, 0xC1, 0x00, 0xE0, 0x1E, 0x1C, 0x06, 0x01, 0xFB, 0xF8, 0x10, 0x1F, 0xE0, 0xFC, 0x00, 0xFE, 0x78, 0x00, 0x70, 0x78, 0x00, 0x40, 0xF8, 0x00, 0x81, 0xF8, 0x01, 0x02, 0xF8, 0x02, 0x04, 0xF8, 0x04, 0x08, 0xF0, 0x08, 0x11, 0xF0, 0x10, 0x21, 0xF0, 0x20, 0x41, 0xF0, 0x40, 0x81, 0xF0, 0x81, 0x01, 0xF1, 0x02, 0x01, 0xE2, 0x04, 0x03, 0xE4, 0x08, 0x03, 0xE8, 0x10, 0x03, 0xF0, 0x20, 0x03, 0xE0, 0x40, 0x03, 0xC0, 0x80, 0x03, 0x81, 0x00, 0x07, 0x07, 0x00, 0x06, 0x3F, 0x80, 0x04, 0x00, 0x00, 0xFE, 0x00, 0x07, 0xFF, 0x00, 0x3E, 0x0F, 0x80, 0xF0, 0x07, 0x83, 0xC0, 0x07, 0x87, 0x80, 0x07, 0x1E, 0x00, 0x0F, 0x3C, 0x00, 0x1E, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0x78, 0x00, 0x3C, 0xF0, 0x00, 0x78, 0xE0, 0x01, 0xE1, 0xE0, 0x03, 0xC1, 0xE0, 0x0F, 0x01, 0xF0, 0x7C, 0x00, 0xFF, 0xE0, 0x00, 0x7F, 0x00, 0xFF, 0xF8, 0x1F, 0xFF, 0x83, 0xC1, 0xF0, 0xF0, 0x1E, 0x3C, 0x07, 0xCF, 0x00, 0xF3, 0xC0, 0x3C, 0xF0, 0x0F, 0x3C, 0x03, 0xCF, 0x01, 0xF3, 0xC0, 0x78, 0xF0, 0x7C, 0x3F, 0xFE, 0x0F, 0xFE, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x07, 0xFF, 0x00, 0x3E, 0x0F, 0x80, 0xF0, 0x07, 0x83, 0xC0, 0x07, 0x87, 0x80, 0x0F, 0x1E, 0x00, 0x0F, 0x3C, 0x00, 0x1E, 0xF0, 0x00, 0x1D, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0x70, 0x00, 0x1C, 0xF0, 0x00, 0x79, 0xE0, 0x00, 0xF1, 0xE0, 0x03, 0xC1, 0xC0, 0x07, 0x01, 0xC0, 0x1C, 0x01, 0xE0, 0xF0, 0x00, 0x7F, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0xC0, 0xFF, 0xF0, 0x03, 0xFF, 0xF0, 0x0F, 0x07, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x07, 0x80, 0xF0, 0x3C, 0x07, 0x81, 0xE0, 0x78, 0x0F, 0x0F, 0x80, 0x7F, 0xF8, 0x03, 0xFE, 0x00, 0x1E, 0x78, 0x00, 0xF1, 0xE0, 0x07, 0x87, 0x80, 0x3C, 0x3C, 0x01, 0xE0, 0xF0, 0x0F, 0x03, 0xC0, 0x78, 0x0F, 0x03, 0xC0, 0x7C, 0x3F, 0x01, 0xF3, 0xFC, 0x07, 0xE0, 0x07, 0x84, 0x1F, 0xFC, 0x3C, 0x3E, 0x30, 0x0E, 0x70, 0x06, 0x70, 0x06, 0x70, 0x02, 0x78, 0x00, 0x7C, 0x00, 0x3F, 0x00, 0x1F, 0xC0, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x80, 0x0F, 0x80, 0x0F, 0xC0, 0x0F, 0xE0, 0x0F, 0x70, 0x1E, 0x78, 0x3C, 0x4F, 0xF8, 0x43, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xF0, 0x7C, 0x0F, 0x03, 0x80, 0xF0, 0x10, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x1F, 0x80, 0x03, 0xFC, 0x00, 0xFF, 0x01, 0xFD, 0xF8, 0x01, 0xC3, 0xC0, 0x02, 0x0F, 0x00, 0x08, 0x3C, 0x00, 0x20, 0xF0, 0x00, 0x83, 0xC0, 0x02, 0x0F, 0x00, 0x08, 0x3C, 0x00, 0x20, 0xF0, 0x00, 0x83, 0xC0, 0x02, 0x0F, 0x00, 0x08, 0x3C, 0x00, 0x20, 0xF0, 0x00, 0x83, 0xC0, 0x02, 0x0F, 0x00, 0x08, 0x3C, 0x00, 0x20, 0xF0, 0x00, 0x81, 0xE0, 0x04, 0x07, 0x80, 0x30, 0x0F, 0x81, 0x80, 0x1F, 0xFC, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0xC0, 0x7F, 0x3E, 0x00, 0x1E, 0x1E, 0x00, 0x0C, 0x0E, 0x00, 0x18, 0x0F, 0x00, 0x18, 0x07, 0x00, 0x10, 0x07, 0x80, 0x30, 0x07, 0x80, 0x30, 0x03, 0xC0, 0x60, 0x03, 0xC0, 0x60, 0x01, 0xE0, 0x40, 0x01, 0xE0, 0xC0, 0x00, 0xF0, 0xC0, 0x00, 0xF1, 0x80, 0x00, 0x71, 0x80, 0x00, 0x7B, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x08, 0x00, 0xFF, 0x9F, 0xF0, 0x3F, 0x9F, 0x03, 0xE0, 0x07, 0x07, 0x80, 0xF0, 0x03, 0x03, 0xC0, 0x78, 0x01, 0x80, 0xE0, 0x1E, 0x00, 0x80, 0x78, 0x0F, 0x00, 0xC0, 0x1C, 0x03, 0x80, 0x60, 0x0F, 0x01, 0xE0, 0x20, 0x07, 0x81, 0xF0, 0x30, 0x01, 0xC0, 0xBC, 0x18, 0x00, 0xF0, 0xDE, 0x08, 0x00, 0x78, 0x67, 0x0C, 0x00, 0x1E, 0x23, 0xC4, 0x00, 0x0F, 0x31, 0xE6, 0x00, 0x03, 0x90, 0x7B, 0x00, 0x01, 0xF8, 0x3D, 0x00, 0x00, 0xFC, 0x0F, 0x80, 0x00, 0x3C, 0x07, 0xC0, 0x00, 0x1E, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0xE0, 0x00, 0x03, 0x00, 0x70, 0x00, 0x01, 0x80, 0x10, 0x00, 0x00, 0x80, 0x08, 0x00, 0x7F, 0xE0, 0xFF, 0x0F, 0xC0, 0x1E, 0x03, 0xE0, 0x0E, 0x00, 0xF0, 0x06, 0x00, 0x3C, 0x06, 0x00, 0x0F, 0x06, 0x00, 0x07, 0x86, 0x00, 0x01, 0xE6, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0x78, 0x00, 0x01, 0x9E, 0x00, 0x01, 0x87, 0x80, 0x01, 0x83, 0xE0, 0x01, 0x80, 0xF0, 0x01, 0x80, 0x3C, 0x01, 0x80, 0x1F, 0x01, 0xC0, 0x07, 0xC1, 0xE0, 0x03, 0xF3, 0xFE, 0x0F, 0xFE, 0xFF, 0xC0, 0xFF, 0x7E, 0x00, 0x1C, 0x1E, 0x00, 0x18, 0x1F, 0x00, 0x30, 0x0F, 0x00, 0x60, 0x07, 0x80, 0x60, 0x03, 0xC0, 0xC0, 0x03, 0xE1, 0x80, 0x01, 0xE1, 0x80, 0x00, 0xF3, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7E, 0x00, 0x01, 0xFF, 0x80, 0x3F, 0xFF, 0xF1, 0xFF, 0xFF, 0x9C, 0x00, 0x78, 0xC0, 0x07, 0x84, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x78, 0x00, 0x47, 0x80, 0x06, 0x78, 0x00, 0x33, 0x80, 0x07, 0x3F, 0xFF, 0xFB, 0xFF, 0xFF, 0xC0, 0xFF, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x07, 0xF0, 0xC0, 0x18, 0x06, 0x01, 0x80, 0x70, 0x0C, 0x03, 0x00, 0xE0, 0x18, 0x06, 0x01, 0xC0, 0x30, 0x0C, 0x03, 0x80, 0x60, 0x18, 0x07, 0x00, 0xC0, 0x30, 0x0E, 0x01, 0x80, 0x60, 0x1C, 0x03, 0xFE, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x1F, 0xF0, 0x03, 0x80, 0x0F, 0x00, 0x1F, 0x00, 0x76, 0x00, 0xCE, 0x03, 0x8C, 0x06, 0x1C, 0x1C, 0x18, 0x30, 0x30, 0xE0, 0x31, 0x80, 0x67, 0x00, 0x6C, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xC0, 0xE0, 0x70, 0x18, 0x0C, 0x03, 0x1F, 0x03, 0x8C, 0x38, 0x31, 0xC1, 0x8E, 0x0C, 0x00, 0x60, 0x0F, 0x01, 0x98, 0x30, 0xC3, 0x86, 0x38, 0x31, 0xC1, 0x8E, 0x0C, 0x78, 0xE5, 0xFB, 0xCF, 0x0C, 0x00, 0x00, 0x38, 0x00, 0xF8, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x39, 0xF0, 0x3B, 0xFC, 0x3C, 0x3E, 0x38, 0x0E, 0x38, 0x0F, 0x38, 0x07, 0x38, 0x07, 0x38, 0x07, 0x38, 0x07, 0x38, 0x07, 0x38, 0x06, 0x38, 0x0E, 0x38, 0x0C, 0x3C, 0x1C, 0x1F, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x7F, 0xE3, 0x87, 0xD8, 0x0F, 0x60, 0x1B, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0E, 0x00, 0x3C, 0x01, 0x78, 0x19, 0xFF, 0xC3, 0xFE, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x7C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x07, 0x9C, 0x1F, 0xDC, 0x38, 0x7C, 0x70, 0x3C, 0x70, 0x1C, 0x60, 0x1C, 0xE0, 0x1C, 0xE0, 0x1C, 0xE0, 0x1C, 0xE0, 0x1C, 0xE0, 0x1C, 0xF0, 0x1C, 0x70, 0x1C, 0x7C, 0x3E, 0x3F, 0xDF, 0x0F, 0x90, 0x0F, 0x81, 0xFF, 0x08, 0x3C, 0x80, 0xE7, 0xFF, 0x7F, 0xFF, 0x00, 0x18, 0x00, 0xC0, 0x07, 0x00, 0x38, 0x03, 0xE0, 0x37, 0x83, 0x3F, 0xF0, 0xFF, 0x03, 0xF0, 0x01, 0xF0, 0x3F, 0xC3, 0x8E, 0x18, 0x00, 0xC0, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x03, 0xFE, 0x1F, 0xF0, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0x70, 0x07, 0xC0, 0xFF, 0x80, 0x0F, 0xC0, 0x1F, 0xFF, 0x38, 0xFF, 0x70, 0x70, 0x70, 0x70, 0x70, 0x30, 0x70, 0x30, 0x70, 0x30, 0x38, 0x20, 0x1C, 0x60, 0x0F, 0x80, 0x10, 0x00, 0x20, 0x00, 0x60, 0x00, 0x7F, 0xE0, 0x3F, 0xFC, 0x1F, 0xFE, 0x20, 0x06, 0x40, 0x02, 0xC0, 0x02, 0xC0, 0x04, 0xF0, 0x18, 0x7F, 0xF0, 0x1F, 0x80, 0x00, 0x00, 0x38, 0x00, 0xF8, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0xF0, 0x3B, 0xF8, 0x3E, 0x3C, 0x3C, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x7C, 0x3E, 0xFE, 0x7F, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x04, 0x3C, 0x7C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x3C, 0xFF, 0x03, 0x03, 0xC1, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xC3, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x37, 0x3B, 0xF8, 0xF8, 0x00, 0x00, 0x1C, 0x00, 0x3E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x3F, 0x8E, 0x0F, 0x07, 0x06, 0x03, 0x86, 0x01, 0xC4, 0x00, 0xE4, 0x00, 0x7E, 0x00, 0x3F, 0x80, 0x1D, 0xC0, 0x0E, 0x70, 0x07, 0x1C, 0x03, 0x8F, 0x01, 0xC3, 0xC0, 0xE0, 0xF0, 0xF8, 0x3C, 0xFE, 0x7F, 0x80, 0x00, 0x1C, 0x7C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x3C, 0xFF, 0x38, 0xF0, 0x7C, 0x3E, 0xFE, 0x7F, 0x83, 0xE3, 0xF0, 0xE0, 0xE0, 0x70, 0x1C, 0x38, 0x1C, 0x07, 0x0E, 0x07, 0x01, 0xC3, 0x81, 0xC0, 0x70, 0xE0, 0x70, 0x1C, 0x38, 0x1C, 0x07, 0x0E, 0x07, 0x01, 0xC3, 0x81, 0xC0, 0x70, 0xE0, 0x70, 0x1C, 0x38, 0x1C, 0x07, 0x0E, 0x07, 0x01, 0xC3, 0x81, 0xE0, 0x73, 0xF9, 0xFC, 0x7F, 0x38, 0xF0, 0xFB, 0xF8, 0x3E, 0x3C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x78, 0x3C, 0xFE, 0x7F, 0x07, 0xE0, 0x1F, 0xF8, 0x3C, 0x7C, 0x78, 0x3E, 0x70, 0x1E, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF8, 0x0F, 0x78, 0x0E, 0x7C, 0x1C, 0x3E, 0x3C, 0x0F, 0xF0, 0x07, 0xC0, 0x18, 0xF0, 0xFB, 0xFC, 0x3E, 0x1E, 0x38, 0x0E, 0x38, 0x0F, 0x38, 0x07, 0x38, 0x07, 0x38, 0x07, 0x38, 0x07, 0x38, 0x07, 0x38, 0x06, 0x38, 0x0E, 0x38, 0x0C, 0x3E, 0x1C, 0x3B, 0xF8, 0x39, 0xE0, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x7C, 0x00, 0xFF, 0x00, 0x07, 0xC4, 0x1F, 0xEC, 0x3C, 0x3C, 0x70, 0x1C, 0x70, 0x1C, 0x60, 0x1C, 0xE0, 0x1C, 0xE0, 0x1C, 0xE0, 0x1C, 0xE0, 0x1C, 0xE0, 0x1C, 0xF0, 0x1C, 0x70, 0x1C, 0x78, 0x3C, 0x3F, 0xDC, 0x1F, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x3E, 0x00, 0xFF, 0x19, 0xFF, 0x7C, 0xF3, 0x9C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x1F, 0x07, 0xF0, 0x3E, 0x58, 0x7C, 0x0F, 0x03, 0xC0, 0x7C, 0x07, 0x80, 0xF8, 0x1F, 0x81, 0xF8, 0x1E, 0x03, 0xC0, 0xF0, 0x3E, 0x1A, 0x7C, 0x10, 0x30, 0x70, 0xFE, 0xFE, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x79, 0x7E, 0x3C, 0xF8, 0x7C, 0x38, 0x3C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x3C, 0x7C, 0x1F, 0xDF, 0x0F, 0x18, 0xFE, 0x1F, 0x7C, 0x06, 0x38, 0x04, 0x1C, 0x04, 0x1C, 0x0C, 0x0E, 0x08, 0x0E, 0x18, 0x07, 0x10, 0x07, 0x10, 0x07, 0x20, 0x03, 0xA0, 0x03, 0xE0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x80, 0xFC, 0x7F, 0x1F, 0x78, 0x3C, 0x06, 0x38, 0x1C, 0x04, 0x38, 0x1C, 0x04, 0x1C, 0x1C, 0x0C, 0x1C, 0x0E, 0x08, 0x1C, 0x1E, 0x18, 0x0E, 0x17, 0x10, 0x0E, 0x37, 0x10, 0x07, 0x23, 0x30, 0x07, 0x63, 0xA0, 0x07, 0x43, 0xE0, 0x03, 0xC1, 0xC0, 0x03, 0x81, 0xC0, 0x01, 0x80, 0x80, 0x01, 0x00, 0x80, 0x7F, 0x7E, 0x1E, 0x0C, 0x07, 0x8C, 0x01, 0xC4, 0x00, 0x76, 0x00, 0x3E, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x03, 0xE0, 0x01, 0x70, 0x01, 0x1C, 0x01, 0x8F, 0x01, 0x83, 0x80, 0x80, 0xE0, 0xC0, 0x79, 0xF0, 0xFF, 0xFE, 0x0F, 0x7C, 0x06, 0x38, 0x06, 0x1C, 0x04, 0x1C, 0x0C, 0x0E, 0x0C, 0x0E, 0x08, 0x0F, 0x18, 0x07, 0x10, 0x07, 0x90, 0x03, 0xB0, 0x03, 0xA0, 0x01, 0xE0, 0x01, 0xE0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x80, 0x00, 0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x7E, 0x00, 0x7C, 0x00, 0x78, 0x00, 0x7F, 0xF9, 0xFF, 0xE6, 0x07, 0x10, 0x38, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xE0, 0x07, 0x01, 0x38, 0x0D, 0xC0, 0x3F, 0xFF, 0xBF, 0xFE, 0x07, 0x0E, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x60, 0x60, 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x0E, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x70, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x08, 0x06, 0x06, 0x08, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x70, 0xE0, 0x3E, 0x00, 0x7F, 0x87, 0xE3, 0xFE, 0x00, 0x7C}; const GFXglyph FreeSerif18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 9, 0, 1}, // 0x20 ' ' {0, 4, 24, 12, 5, -23}, // 0x21 '!' {12, 8, 9, 14, 3, -23}, // 0x22 '"' {21, 17, 23, 17, 0, -22}, // 0x23 '#' {70, 13, 27, 17, 2, -24}, // 0x24 '$' {114, 25, 23, 29, 2, -22}, // 0x25 '%' {186, 25, 25, 27, 1, -24}, // 0x26 '&' {265, 3, 9, 7, 2, -23}, // 0x27 ''' {269, 9, 30, 12, 2, -23}, // 0x28 '(' {303, 9, 30, 12, 1, -22}, // 0x29 ')' {337, 12, 14, 18, 3, -23}, // 0x2A '*' {358, 16, 18, 20, 2, -17}, // 0x2B '+' {394, 4, 9, 9, 2, -3}, // 0x2C ',' {399, 8, 2, 12, 1, -8}, // 0x2D '-' {401, 4, 4, 9, 2, -3}, // 0x2E '.' {403, 10, 24, 10, 0, -23}, // 0x2F '/' {433, 16, 24, 18, 1, -23}, // 0x30 '0' {481, 10, 24, 18, 3, -23}, // 0x31 '1' {511, 16, 24, 17, 1, -23}, // 0x32 '2' {559, 13, 24, 17, 2, -23}, // 0x33 '3' {598, 16, 23, 18, 0, -22}, // 0x34 '4' {644, 13, 24, 17, 2, -23}, // 0x35 '5' {683, 16, 24, 18, 1, -23}, // 0x36 '6' {731, 14, 23, 18, 1, -22}, // 0x37 '7' {772, 12, 25, 18, 2, -24}, // 0x38 '8' {810, 16, 26, 17, 1, -24}, // 0x39 '9' {862, 4, 17, 9, 2, -16}, // 0x3A ':' {871, 5, 22, 9, 2, -16}, // 0x3B ';' {885, 18, 18, 20, 1, -17}, // 0x3C '<' {926, 18, 9, 20, 1, -12}, // 0x3D '=' {947, 18, 18, 20, 1, -17}, // 0x3E '>' {988, 13, 25, 16, 2, -24}, // 0x3F '?' {1029, 24, 25, 30, 3, -24}, // 0x40 '@' {1104, 24, 23, 25, 1, -22}, // 0x41 'A' {1173, 20, 23, 22, 1, -22}, // 0x42 'B' {1231, 22, 24, 23, 1, -23}, // 0x43 'C' {1297, 23, 23, 25, 1, -22}, // 0x44 'D' {1364, 20, 23, 21, 2, -22}, // 0x45 'E' {1422, 17, 23, 20, 2, -22}, // 0x46 'F' {1471, 23, 24, 25, 1, -23}, // 0x47 'G' {1540, 22, 23, 25, 2, -22}, // 0x48 'H' {1604, 9, 23, 11, 2, -22}, // 0x49 'I' {1630, 12, 23, 13, 0, -22}, // 0x4A 'J' {1665, 23, 23, 25, 2, -22}, // 0x4B 'K' {1732, 19, 23, 21, 2, -22}, // 0x4C 'L' {1787, 29, 23, 31, 1, -22}, // 0x4D 'M' {1871, 23, 23, 25, 1, -22}, // 0x4E 'N' {1938, 23, 24, 25, 1, -23}, // 0x4F 'O' {2007, 18, 23, 20, 1, -22}, // 0x50 'P' {2059, 23, 30, 25, 1, -23}, // 0x51 'Q' {2146, 21, 23, 23, 2, -22}, // 0x52 'R' {2207, 16, 24, 19, 1, -23}, // 0x53 'S' {2255, 20, 23, 21, 1, -22}, // 0x54 'T' {2313, 22, 23, 25, 2, -22}, // 0x55 'U' {2377, 24, 23, 25, 0, -22}, // 0x56 'V' {2446, 33, 23, 33, 0, -22}, // 0x57 'W' {2541, 25, 23, 25, 0, -22}, // 0x58 'X' {2613, 24, 23, 25, 1, -22}, // 0x59 'Y' {2682, 21, 23, 21, 0, -22}, // 0x5A 'Z' {2743, 7, 28, 12, 3, -22}, // 0x5B '[' {2768, 10, 24, 10, 0, -23}, // 0x5C '\' {2798, 7, 28, 12, 2, -22}, // 0x5D ']' {2823, 15, 13, 16, 1, -22}, // 0x5E '^' {2848, 18, 2, 17, 0, 3}, // 0x5F '_' {2853, 8, 6, 9, 1, -23}, // 0x60 '`' {2859, 13, 16, 15, 2, -15}, // 0x61 'a' {2885, 16, 25, 17, 1, -24}, // 0x62 'b' {2935, 14, 16, 16, 1, -15}, // 0x63 'c' {2963, 16, 25, 17, 1, -24}, // 0x64 'd' {3013, 13, 16, 16, 1, -15}, // 0x65 'e' {3039, 13, 25, 13, 0, -24}, // 0x66 'f' {3080, 16, 24, 16, 1, -15}, // 0x67 'g' {3128, 16, 25, 17, 1, -24}, // 0x68 'h' {3178, 8, 24, 10, 0, -23}, // 0x69 'i' {3202, 9, 32, 12, 0, -23}, // 0x6A 'j' {3238, 17, 25, 18, 1, -24}, // 0x6B 'k' {3292, 8, 25, 9, 0, -24}, // 0x6C 'l' {3317, 26, 16, 27, 1, -15}, // 0x6D 'm' {3369, 16, 16, 17, 1, -15}, // 0x6E 'n' {3401, 16, 16, 17, 1, -15}, // 0x6F 'o' {3433, 16, 24, 17, 1, -15}, // 0x70 'p' {3481, 16, 24, 17, 1, -15}, // 0x71 'q' {3529, 11, 16, 12, 1, -15}, // 0x72 'r' {3551, 10, 16, 13, 1, -15}, // 0x73 's' {3571, 8, 19, 10, 2, -18}, // 0x74 't' {3590, 16, 16, 17, 1, -15}, // 0x75 'u' {3622, 16, 16, 16, 0, -15}, // 0x76 'v' {3654, 24, 16, 24, 0, -15}, // 0x77 'w' {3702, 17, 16, 17, 0, -15}, // 0x78 'x' {3736, 16, 24, 16, 0, -15}, // 0x79 'y' {3784, 14, 16, 15, 0, -15}, // 0x7A 'z' {3812, 8, 30, 17, 3, -23}, // 0x7B '{' {3842, 2, 24, 7, 2, -23}, // 0x7C '|' {3848, 8, 30, 17, 6, -22}, // 0x7D '}' {3878, 16, 4, 17, 1, -10}}; // 0x7E '~' const GFXfont FreeSerif18pt7b PROGMEM = {(uint8_t *)FreeSerif18pt7bBitmaps, (GFXglyph *)FreeSerif18pt7bGlyphs, 0x20, 0x7E, 42}; // Approx. 4558 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerif24pt7b.h ================================================ const uint8_t FreeSerif24pt7bBitmaps[] PROGMEM = { 0x77, 0xBF, 0xFF, 0xFF, 0xFF, 0xFB, 0x9C, 0xE7, 0x39, 0xCE, 0x61, 0x08, 0x42, 0x10, 0x84, 0x00, 0x00, 0xEF, 0xFF, 0xEE, 0x60, 0x6F, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0x60, 0x66, 0x06, 0x60, 0x66, 0x06, 0x60, 0x66, 0x06, 0x00, 0xE0, 0x70, 0x01, 0xC0, 0xE0, 0x03, 0x81, 0xC0, 0x07, 0x03, 0x80, 0x0E, 0x06, 0x00, 0x18, 0x0C, 0x00, 0x30, 0x38, 0x00, 0xE0, 0x70, 0x01, 0xC0, 0xE0, 0x03, 0x81, 0xC1, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xF0, 0x18, 0x0C, 0x00, 0x70, 0x38, 0x00, 0xE0, 0x70, 0x01, 0xC0, 0xE0, 0x03, 0x81, 0xC0, 0x07, 0x03, 0x80, 0x0C, 0x06, 0x07, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xC0, 0xE0, 0x70, 0x01, 0xC0, 0xE0, 0x03, 0x81, 0xC0, 0x06, 0x03, 0x80, 0x0C, 0x06, 0x00, 0x38, 0x1C, 0x00, 0x70, 0x38, 0x00, 0xE0, 0x70, 0x01, 0xC0, 0xE0, 0x03, 0x81, 0xC0, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0xFC, 0x01, 0xE4, 0xF8, 0x70, 0x87, 0x9C, 0x10, 0x77, 0x02, 0x06, 0xE0, 0x40, 0xDC, 0x08, 0x0B, 0x81, 0x00, 0x78, 0x20, 0x07, 0x84, 0x00, 0xFC, 0x80, 0x0F, 0xF0, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x00, 0x3F, 0xC0, 0x05, 0xFC, 0x00, 0x8F, 0x80, 0x10, 0xF8, 0x02, 0x0F, 0x00, 0x40, 0xF0, 0x08, 0x1E, 0x01, 0x03, 0xE0, 0x20, 0x7C, 0x04, 0x0F, 0xC0, 0x83, 0xBC, 0x10, 0xE3, 0xE2, 0x78, 0x3F, 0xFE, 0x00, 0xFE, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x01, 0xF0, 0x00, 0xC0, 0x03, 0xFC, 0x01, 0xE0, 0x03, 0xC7, 0x81, 0xE0, 0x03, 0xC0, 0x7F, 0x60, 0x03, 0xC0, 0x20, 0x70, 0x01, 0xE0, 0x10, 0x30, 0x01, 0xE0, 0x08, 0x38, 0x00, 0xE0, 0x04, 0x18, 0x00, 0xF0, 0x02, 0x1C, 0x00, 0x78, 0x02, 0x0C, 0x00, 0x38, 0x01, 0x0E, 0x00, 0x1C, 0x01, 0x86, 0x00, 0x0E, 0x00, 0x86, 0x00, 0x07, 0x00, 0x87, 0x03, 0xE1, 0x80, 0xC3, 0x07, 0xFC, 0xE1, 0xC3, 0x87, 0xC6, 0x3F, 0xC1, 0x87, 0x81, 0x8F, 0x81, 0xC7, 0x80, 0x40, 0x00, 0xC3, 0xC0, 0x20, 0x00, 0xE3, 0xC0, 0x10, 0x00, 0x61, 0xC0, 0x08, 0x00, 0x61, 0xE0, 0x04, 0x00, 0x70, 0xF0, 0x06, 0x00, 0x30, 0x70, 0x02, 0x00, 0x38, 0x38, 0x03, 0x00, 0x18, 0x1C, 0x01, 0x00, 0x1C, 0x0E, 0x01, 0x80, 0x0C, 0x07, 0x01, 0x80, 0x0E, 0x01, 0xC3, 0x80, 0x06, 0x00, 0x7F, 0x80, 0x06, 0x00, 0x1F, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x70, 0xE0, 0x00, 0x00, 0xE0, 0x60, 0x00, 0x00, 0xC0, 0x30, 0x00, 0x01, 0xC0, 0x30, 0x00, 0x01, 0xC0, 0x30, 0x00, 0x01, 0xC0, 0x30, 0x00, 0x01, 0xC0, 0x70, 0x00, 0x01, 0xE0, 0xE0, 0x00, 0x01, 0xE1, 0xC0, 0x00, 0x00, 0xF3, 0x80, 0x00, 0x00, 0xFF, 0x0F, 0xFC, 0x00, 0xFC, 0x03, 0xF0, 0x00, 0xF8, 0x01, 0xE0, 0x01, 0xFC, 0x01, 0xC0, 0x07, 0x7C, 0x01, 0xC0, 0x0F, 0x3E, 0x01, 0x80, 0x1E, 0x3E, 0x03, 0x00, 0x3C, 0x1F, 0x03, 0x00, 0x7C, 0x1F, 0x06, 0x00, 0x78, 0x0F, 0x86, 0x00, 0x78, 0x07, 0xCC, 0x00, 0xF8, 0x07, 0xE8, 0x00, 0xF8, 0x03, 0xF8, 0x00, 0xF8, 0x01, 0xF0, 0x00, 0xF8, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0xFC, 0x01, 0xFC, 0x01, 0xFE, 0x01, 0x7E, 0x03, 0xBF, 0x86, 0x7F, 0x0F, 0x1F, 0xFE, 0x3F, 0xFC, 0x0F, 0xF8, 0x0F, 0xE0, 0x03, 0xF0, 0x6F, 0xFF, 0xFF, 0x66, 0x66, 0x66, 0x00, 0x10, 0x02, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0E, 0x00, 0xC0, 0x1C, 0x03, 0x80, 0x38, 0x03, 0x80, 0x78, 0x07, 0x00, 0x70, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x07, 0x00, 0x70, 0x07, 0x80, 0x38, 0x03, 0x80, 0x38, 0x01, 0xC0, 0x0C, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 0xC0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x07, 0x00, 0x30, 0x03, 0x80, 0x1C, 0x01, 0xC0, 0x1C, 0x01, 0xE0, 0x0E, 0x00, 0xE0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0E, 0x00, 0xE0, 0x1E, 0x01, 0xC0, 0x1C, 0x01, 0xC0, 0x38, 0x03, 0x00, 0x70, 0x0E, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x40, 0x08, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x43, 0x86, 0xE1, 0x0F, 0xF1, 0x1F, 0xF9, 0x3E, 0x3D, 0x78, 0x07, 0xC0, 0x01, 0x00, 0x07, 0xC0, 0x19, 0x30, 0xF9, 0x1E, 0xF1, 0x0F, 0xE1, 0x07, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x73, 0xEF, 0xFF, 0x7C, 0x10, 0x42, 0x08, 0xC6, 0x00, 0xFF, 0xFF, 0xFC, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x38, 0x00, 0xE0, 0x03, 0x80, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x0E, 0x00, 0x38, 0x01, 0xE0, 0x07, 0x00, 0x1C, 0x00, 0xF0, 0x03, 0x80, 0x0E, 0x00, 0x78, 0x01, 0xC0, 0x07, 0x00, 0x3C, 0x00, 0xE0, 0x03, 0x80, 0x1E, 0x00, 0x70, 0x01, 0xC0, 0x0F, 0x00, 0x38, 0x00, 0x00, 0xFC, 0x00, 0x0E, 0x1C, 0x00, 0x70, 0x38, 0x03, 0x80, 0x70, 0x1E, 0x01, 0xE0, 0xF0, 0x03, 0x83, 0xC0, 0x0F, 0x0F, 0x00, 0x3C, 0x7C, 0x00, 0xF9, 0xE0, 0x01, 0xE7, 0x80, 0x07, 0xBE, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x01, 0xFF, 0x80, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x01, 0xFF, 0x80, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x01, 0xF7, 0x80, 0x07, 0x9E, 0x00, 0x1E, 0x7C, 0x00, 0xF8, 0xF0, 0x03, 0xC3, 0xC0, 0x0F, 0x07, 0x00, 0x38, 0x1E, 0x01, 0xE0, 0x38, 0x07, 0x00, 0x70, 0x38, 0x00, 0xE1, 0xC0, 0x00, 0xFC, 0x00, 0x00, 0x80, 0x1C, 0x03, 0xE0, 0x7F, 0x0C, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x3F, 0x0F, 0xFF, 0x01, 0xF8, 0x00, 0x3F, 0xF0, 0x07, 0xFF, 0xE0, 0x70, 0x3F, 0x83, 0x00, 0x7C, 0x30, 0x01, 0xF1, 0x00, 0x0F, 0x98, 0x00, 0x3C, 0x80, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x43, 0x00, 0x02, 0x30, 0x00, 0x23, 0xFF, 0xFF, 0x3F, 0xFF, 0xF3, 0xFF, 0xFF, 0x80, 0x03, 0xF8, 0x03, 0xFF, 0x01, 0x83, 0xE0, 0x80, 0x3C, 0x40, 0x0F, 0x10, 0x01, 0xC8, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x78, 0x00, 0x7F, 0x80, 0x7F, 0xF0, 0x01, 0xFE, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x70, 0x06, 0x3F, 0x07, 0x0F, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x03, 0x00, 0x00, 0x38, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xDC, 0x00, 0x0C, 0xE0, 0x00, 0x47, 0x00, 0x06, 0x38, 0x00, 0x61, 0xC0, 0x06, 0x0E, 0x00, 0x30, 0x70, 0x03, 0x03, 0x80, 0x30, 0x1C, 0x01, 0x80, 0xE0, 0x18, 0x07, 0x01, 0x80, 0x38, 0x08, 0x01, 0xC0, 0xC0, 0x0E, 0x0C, 0x00, 0x70, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x40, 0x7F, 0xF8, 0x1F, 0xFE, 0x03, 0xFF, 0xC0, 0xC0, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x1C, 0x00, 0x07, 0xF8, 0x00, 0xFF, 0xC0, 0x3F, 0xFE, 0x00, 0xFF, 0xE0, 0x01, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x30, 0x00, 0x0E, 0x00, 0x01, 0x80, 0x00, 0x71, 0xE0, 0x1C, 0x3F, 0x07, 0x07, 0xFF, 0x80, 0x3F, 0x80, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xC7, 0xE0, 0x3E, 0xFF, 0xC3, 0xF8, 0x3F, 0x1F, 0x80, 0x7C, 0xF8, 0x03, 0xF7, 0xC0, 0x0F, 0xBE, 0x00, 0x7F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x03, 0xFF, 0x00, 0x1F, 0x78, 0x00, 0xFB, 0xE0, 0x07, 0x9F, 0x00, 0x3C, 0x78, 0x03, 0xE3, 0xE0, 0x1E, 0x0F, 0x81, 0xE0, 0x3E, 0x1E, 0x00, 0xFF, 0xE0, 0x00, 0xFC, 0x00, 0x3F, 0xFF, 0xF3, 0xFF, 0xFF, 0x3F, 0xFF, 0xE7, 0x00, 0x0E, 0x40, 0x00, 0xEC, 0x00, 0x1C, 0x80, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xC0, 0x00, 0x03, 0xF0, 0x03, 0xFF, 0x03, 0xC1, 0xE0, 0xC0, 0x1C, 0x70, 0x07, 0x18, 0x00, 0xEE, 0x00, 0x3B, 0x80, 0x0E, 0xF0, 0x03, 0xBC, 0x00, 0xE7, 0x80, 0x71, 0xF0, 0x38, 0x3E, 0x1C, 0x07, 0xEE, 0x00, 0xFE, 0x00, 0x1F, 0xC0, 0x03, 0xF8, 0x03, 0xFF, 0x01, 0xC7, 0xE0, 0xE0, 0xFC, 0x70, 0x0F, 0x98, 0x01, 0xEE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x01, 0xF8, 0x00, 0x7E, 0x00, 0x1F, 0xC0, 0x07, 0x70, 0x03, 0x9E, 0x00, 0xE3, 0xE0, 0xF0, 0x7F, 0xF0, 0x07, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x3F, 0xF0, 0x03, 0xC3, 0xE0, 0x3C, 0x0F, 0x83, 0xC0, 0x3C, 0x3E, 0x00, 0xF1, 0xE0, 0x07, 0xCF, 0x00, 0x3E, 0xF8, 0x00, 0xF7, 0xC0, 0x07, 0xFE, 0x00, 0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xF0, 0x03, 0xEF, 0x80, 0x1F, 0x7C, 0x00, 0xF9, 0xF0, 0x0F, 0xC7, 0xE1, 0xFC, 0x1F, 0xF9, 0xE0, 0x3F, 0x1F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x78, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x00, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xBF, 0xFF, 0xB8, 0x39, 0xF7, 0xDF, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0xEF, 0xFF, 0x7C, 0x10, 0x42, 0x08, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x0F, 0xFE, 0x0C, 0x1F, 0x88, 0x03, 0xEC, 0x01, 0xF7, 0x00, 0x7F, 0xC0, 0x3F, 0xE0, 0x1F, 0x70, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xC0, 0x01, 0xE0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x70, 0x00, 0x70, 0x00, 0x30, 0x00, 0x10, 0x00, 0x18, 0x00, 0x08, 0x00, 0x04, 0x00, 0x06, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x03, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0xFC, 0x07, 0xC0, 0x01, 0xE0, 0x00, 0xE0, 0x07, 0xC0, 0x00, 0x30, 0x0F, 0x00, 0x00, 0x18, 0x1E, 0x00, 0x00, 0x0C, 0x1E, 0x00, 0x00, 0x04, 0x3C, 0x00, 0xF8, 0x06, 0x3C, 0x01, 0xFD, 0xC2, 0x78, 0x03, 0xC7, 0xC3, 0x78, 0x07, 0x07, 0x81, 0xF0, 0x0E, 0x03, 0x81, 0xF0, 0x0E, 0x03, 0x81, 0xF0, 0x1C, 0x07, 0x81, 0xF0, 0x1C, 0x07, 0x01, 0xF0, 0x38, 0x07, 0x01, 0xF0, 0x38, 0x07, 0x03, 0xF0, 0x38, 0x0F, 0x02, 0xF0, 0x38, 0x0E, 0x02, 0xF0, 0x38, 0x1E, 0x04, 0x78, 0x38, 0x1E, 0x0C, 0x78, 0x1C, 0x6E, 0x18, 0x38, 0x1F, 0xC7, 0xF0, 0x3C, 0x0F, 0x03, 0xE0, 0x1E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x60, 0x00, 0xFC, 0x03, 0xE0, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0D, 0xF0, 0x00, 0x00, 0x0D, 0xF0, 0x00, 0x00, 0x18, 0xF0, 0x00, 0x00, 0x18, 0xF8, 0x00, 0x00, 0x38, 0x78, 0x00, 0x00, 0x30, 0x7C, 0x00, 0x00, 0x30, 0x7C, 0x00, 0x00, 0x60, 0x3E, 0x00, 0x00, 0x60, 0x3E, 0x00, 0x00, 0xE0, 0x1E, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x01, 0x80, 0x0F, 0x80, 0x01, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFF, 0xC0, 0x03, 0x00, 0x07, 0xC0, 0x07, 0x00, 0x07, 0xC0, 0x06, 0x00, 0x03, 0xE0, 0x06, 0x00, 0x03, 0xE0, 0x0E, 0x00, 0x01, 0xF0, 0x0C, 0x00, 0x01, 0xF0, 0x1C, 0x00, 0x01, 0xF8, 0x3C, 0x00, 0x01, 0xF8, 0x7E, 0x00, 0x01, 0xFC, 0xFF, 0x80, 0x0F, 0xFF, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0x80, 0x1F, 0x01, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x7C, 0x00, 0xF8, 0x0F, 0x80, 0x1F, 0x81, 0xF0, 0x01, 0xF0, 0x3E, 0x00, 0x3E, 0x07, 0xC0, 0x07, 0xC0, 0xF8, 0x00, 0xF8, 0x1F, 0x00, 0x1F, 0x03, 0xE0, 0x07, 0xC0, 0x7C, 0x01, 0xF0, 0x0F, 0x80, 0xFC, 0x01, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xC0, 0x07, 0xC0, 0x7F, 0x00, 0xF8, 0x01, 0xF0, 0x1F, 0x00, 0x1F, 0x03, 0xE0, 0x03, 0xE0, 0x7C, 0x00, 0x3E, 0x0F, 0x80, 0x07, 0xC1, 0xF0, 0x00, 0xF8, 0x3E, 0x00, 0x1F, 0x07, 0xC0, 0x03, 0xE0, 0xF8, 0x00, 0xF8, 0x1F, 0x00, 0x1F, 0x03, 0xE0, 0x07, 0xC0, 0x7C, 0x07, 0xF0, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x20, 0x07, 0xFF, 0xEE, 0x01, 0xF8, 0x1F, 0xE0, 0x3E, 0x00, 0x7E, 0x07, 0x80, 0x01, 0xE0, 0xF0, 0x00, 0x1E, 0x1F, 0x00, 0x00, 0xE3, 0xE0, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x67, 0xC0, 0x00, 0x02, 0x7C, 0x00, 0x00, 0x27, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x02, 0x0F, 0x80, 0x00, 0xE0, 0x7E, 0x00, 0x1C, 0x03, 0xF8, 0x0F, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0xFF, 0xC0, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0x3E, 0x03, 0xFC, 0x00, 0x7C, 0x00, 0xFC, 0x00, 0xF8, 0x00, 0x7E, 0x01, 0xF0, 0x00, 0x7E, 0x03, 0xE0, 0x00, 0x7C, 0x07, 0xC0, 0x00, 0x7C, 0x0F, 0x80, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0xF8, 0x3E, 0x00, 0x01, 0xF0, 0x7C, 0x00, 0x03, 0xF0, 0xF8, 0x00, 0x03, 0xE1, 0xF0, 0x00, 0x07, 0xC3, 0xE0, 0x00, 0x0F, 0x87, 0xC0, 0x00, 0x1F, 0x0F, 0x80, 0x00, 0x3E, 0x1F, 0x00, 0x00, 0x7C, 0x3E, 0x00, 0x00, 0xF8, 0x7C, 0x00, 0x01, 0xF0, 0xF8, 0x00, 0x07, 0xC1, 0xF0, 0x00, 0x0F, 0x83, 0xE0, 0x00, 0x1E, 0x07, 0xC0, 0x00, 0x7C, 0x0F, 0x80, 0x01, 0xF0, 0x1F, 0x00, 0x03, 0xE0, 0x3E, 0x00, 0x1F, 0x80, 0x7C, 0x00, 0x7C, 0x00, 0xF8, 0x0F, 0xF0, 0x07, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0x7C, 0x00, 0x1C, 0x0F, 0x80, 0x01, 0x81, 0xF0, 0x00, 0x30, 0x3E, 0x00, 0x02, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x20, 0x0F, 0x80, 0x04, 0x01, 0xF0, 0x01, 0x80, 0x3E, 0x00, 0x70, 0x07, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xC0, 0x1F, 0x00, 0x38, 0x03, 0xE0, 0x03, 0x00, 0x7C, 0x00, 0x20, 0x0F, 0x80, 0x04, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x03, 0x1F, 0x00, 0x00, 0x43, 0xE0, 0x00, 0x18, 0x7C, 0x00, 0x07, 0x0F, 0x80, 0x01, 0xC1, 0xF0, 0x00, 0xF8, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x1F, 0x00, 0x07, 0x1F, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x1F, 0x00, 0x01, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x08, 0x1F, 0x00, 0x08, 0x1F, 0x00, 0x18, 0x1F, 0x00, 0x38, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF8, 0x1F, 0x00, 0x38, 0x1F, 0x00, 0x18, 0x1F, 0x00, 0x08, 0x1F, 0x00, 0x08, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x08, 0x00, 0xFF, 0xFE, 0x70, 0x07, 0xE0, 0x1F, 0xE0, 0x1F, 0x00, 0x0F, 0xC0, 0x78, 0x00, 0x07, 0x81, 0xE0, 0x00, 0x07, 0x07, 0xC0, 0x00, 0x0E, 0x1F, 0x00, 0x00, 0x0C, 0x3E, 0x00, 0x00, 0x08, 0xF8, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x01, 0xFD, 0xF0, 0x00, 0x01, 0xF3, 0xE0, 0x00, 0x03, 0xE7, 0xC0, 0x00, 0x07, 0xCF, 0x80, 0x00, 0x0F, 0x8F, 0x80, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x3E, 0x3E, 0x00, 0x00, 0x7C, 0x3E, 0x00, 0x00, 0xF8, 0x7C, 0x00, 0x01, 0xF0, 0x7C, 0x00, 0x03, 0xE0, 0xFC, 0x00, 0x07, 0xC0, 0xFC, 0x00, 0x0F, 0x80, 0x7C, 0x00, 0x3F, 0x00, 0x7F, 0x01, 0xFC, 0x00, 0x3F, 0xFF, 0xC0, 0x00, 0x0F, 0xF8, 0x00, 0xFF, 0xE0, 0x1F, 0xFC, 0xFE, 0x00, 0x1F, 0xC1, 0xF0, 0x00, 0x3E, 0x07, 0xC0, 0x00, 0xF8, 0x1F, 0x00, 0x03, 0xE0, 0x7C, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0x3E, 0x07, 0xC0, 0x00, 0xF8, 0x1F, 0x00, 0x03, 0xE0, 0x7C, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0x3E, 0x07, 0xC0, 0x00, 0xF8, 0x1F, 0x00, 0x03, 0xE0, 0x7C, 0x00, 0x0F, 0x81, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xF8, 0x1F, 0x00, 0x03, 0xE0, 0x7C, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0x3E, 0x07, 0xC0, 0x00, 0xF8, 0x1F, 0x00, 0x03, 0xE0, 0x7C, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0x3E, 0x07, 0xC0, 0x00, 0xF8, 0x1F, 0x00, 0x03, 0xE0, 0x7C, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0x3E, 0x07, 0xC0, 0x00, 0xF8, 0x1F, 0x00, 0x03, 0xE0, 0xFE, 0x00, 0x1F, 0xCF, 0xFE, 0x01, 0xFF, 0xC0, 0xFF, 0xF8, 0xFE, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x0F, 0xE3, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0xFE, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3C, 0x0E, 0x1E, 0x0F, 0x8F, 0x07, 0xCF, 0x01, 0xFF, 0x00, 0x7E, 0x00, 0xFF, 0xF8, 0x3F, 0xFC, 0x3F, 0xC0, 0x07, 0xE0, 0x0F, 0x80, 0x07, 0x80, 0x0F, 0x80, 0x07, 0x00, 0x0F, 0x80, 0x0E, 0x00, 0x0F, 0x80, 0x1C, 0x00, 0x0F, 0x80, 0x38, 0x00, 0x0F, 0x80, 0x70, 0x00, 0x0F, 0x80, 0xE0, 0x00, 0x0F, 0x81, 0xC0, 0x00, 0x0F, 0x83, 0x80, 0x00, 0x0F, 0x87, 0x00, 0x00, 0x0F, 0x9E, 0x00, 0x00, 0x0F, 0xBC, 0x00, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x0F, 0xDF, 0x80, 0x00, 0x0F, 0x8F, 0xC0, 0x00, 0x0F, 0x87, 0xE0, 0x00, 0x0F, 0x83, 0xF0, 0x00, 0x0F, 0x81, 0xF8, 0x00, 0x0F, 0x80, 0xFC, 0x00, 0x0F, 0x80, 0x7E, 0x00, 0x0F, 0x80, 0x3F, 0x00, 0x0F, 0x80, 0x3F, 0x80, 0x0F, 0x80, 0x1F, 0x80, 0x0F, 0x80, 0x0F, 0xC0, 0x0F, 0x80, 0x07, 0xE0, 0x0F, 0x80, 0x07, 0xF0, 0x1F, 0xC0, 0x07, 0xFC, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x01, 0x1F, 0x00, 0x00, 0xC7, 0xC0, 0x00, 0x21, 0xF0, 0x00, 0x18, 0x7C, 0x00, 0x0E, 0x1F, 0x00, 0x1F, 0x8F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF0, 0xFF, 0x80, 0x00, 0x03, 0xFE, 0x7F, 0x80, 0x00, 0x07, 0xF0, 0x3F, 0x00, 0x00, 0x1F, 0xC0, 0x7E, 0x00, 0x00, 0x3F, 0x80, 0xFE, 0x00, 0x00, 0xFF, 0x01, 0xFC, 0x00, 0x01, 0xBE, 0x03, 0x7C, 0x00, 0x03, 0x7C, 0x06, 0xF8, 0x00, 0x0E, 0xF8, 0x0D, 0xF8, 0x00, 0x19, 0xF0, 0x19, 0xF0, 0x00, 0x73, 0xE0, 0x33, 0xF0, 0x00, 0xC7, 0xC0, 0x63, 0xE0, 0x03, 0x8F, 0x80, 0xC7, 0xE0, 0x06, 0x1F, 0x01, 0x87, 0xC0, 0x1C, 0x3E, 0x03, 0x0F, 0xC0, 0x30, 0x7C, 0x06, 0x0F, 0x80, 0x60, 0xF8, 0x0C, 0x1F, 0x81, 0x81, 0xF0, 0x18, 0x1F, 0x03, 0x03, 0xE0, 0x30, 0x3F, 0x0C, 0x07, 0xC0, 0x60, 0x3E, 0x18, 0x0F, 0x80, 0xC0, 0x7C, 0x70, 0x1F, 0x01, 0x80, 0x7C, 0xC0, 0x3E, 0x03, 0x00, 0xFB, 0x80, 0x7C, 0x06, 0x00, 0xFE, 0x00, 0xF8, 0x0C, 0x01, 0xFC, 0x01, 0xF0, 0x18, 0x03, 0xF0, 0x03, 0xE0, 0x30, 0x03, 0xE0, 0x07, 0xC0, 0x60, 0x07, 0x80, 0x0F, 0x81, 0xE0, 0x07, 0x00, 0x1F, 0x07, 0xE0, 0x0C, 0x00, 0xFF, 0x3F, 0xF0, 0x08, 0x07, 0xFF, 0x80, 0xFF, 0x00, 0x03, 0xFF, 0x3F, 0x80, 0x00, 0xFC, 0x1F, 0xC0, 0x00, 0x78, 0x0F, 0xC0, 0x00, 0x30, 0x0F, 0xE0, 0x00, 0x30, 0x0F, 0xF0, 0x00, 0x30, 0x0D, 0xF8, 0x00, 0x30, 0x0D, 0xFC, 0x00, 0x30, 0x0C, 0xFC, 0x00, 0x30, 0x0C, 0x7E, 0x00, 0x30, 0x0C, 0x3F, 0x00, 0x30, 0x0C, 0x1F, 0x80, 0x30, 0x0C, 0x1F, 0xC0, 0x30, 0x0C, 0x0F, 0xE0, 0x30, 0x0C, 0x07, 0xE0, 0x30, 0x0C, 0x03, 0xF0, 0x30, 0x0C, 0x01, 0xF8, 0x30, 0x0C, 0x01, 0xFC, 0x30, 0x0C, 0x00, 0xFE, 0x30, 0x0C, 0x00, 0x7E, 0x30, 0x0C, 0x00, 0x3F, 0x30, 0x0C, 0x00, 0x1F, 0xB0, 0x0C, 0x00, 0x0F, 0xF0, 0x0C, 0x00, 0x0F, 0xF0, 0x0C, 0x00, 0x07, 0xF0, 0x0C, 0x00, 0x03, 0xF0, 0x0C, 0x00, 0x01, 0xF0, 0x0C, 0x00, 0x00, 0xF0, 0x1E, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x70, 0xFF, 0xC0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x10, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x1F, 0x03, 0xE0, 0x01, 0xF0, 0x03, 0xE0, 0x0F, 0x80, 0x07, 0xC0, 0x7C, 0x00, 0x0F, 0x01, 0xE0, 0x00, 0x1E, 0x0F, 0x80, 0x00, 0x7C, 0x3C, 0x00, 0x00, 0xF1, 0xF0, 0x00, 0x03, 0xE7, 0xC0, 0x00, 0x0F, 0x9E, 0x00, 0x00, 0x1E, 0xF8, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7D, 0xF0, 0x00, 0x03, 0xE7, 0xC0, 0x00, 0x0F, 0x9F, 0x00, 0x00, 0x3E, 0x3C, 0x00, 0x00, 0xF0, 0xF8, 0x00, 0x07, 0xC1, 0xE0, 0x00, 0x1E, 0x07, 0xC0, 0x00, 0xF8, 0x0F, 0x80, 0x07, 0xC0, 0x1F, 0x00, 0x3E, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0x80, 0x7C, 0x1F, 0xC0, 0xF8, 0x07, 0xC1, 0xF0, 0x07, 0xC3, 0xE0, 0x0F, 0x87, 0xC0, 0x0F, 0x8F, 0x80, 0x1F, 0x1F, 0x00, 0x3E, 0x3E, 0x00, 0x7C, 0x7C, 0x00, 0xF8, 0xF8, 0x01, 0xF1, 0xF0, 0x07, 0xC3, 0xE0, 0x0F, 0x87, 0xC0, 0x3E, 0x0F, 0x81, 0xF8, 0x1F, 0xFF, 0xC0, 0x3F, 0xFE, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x07, 0xC0, 0xF8, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x00, 0x7C, 0x03, 0xE0, 0x00, 0x7C, 0x07, 0x80, 0x00, 0x78, 0x1F, 0x00, 0x00, 0xF8, 0x3C, 0x00, 0x00, 0xF0, 0xF8, 0x00, 0x01, 0xF1, 0xF0, 0x00, 0x03, 0xE3, 0xC0, 0x00, 0x03, 0xCF, 0x80, 0x00, 0x07, 0xDF, 0x00, 0x00, 0x0F, 0xBE, 0x00, 0x00, 0x1F, 0x7C, 0x00, 0x00, 0x3E, 0xF8, 0x00, 0x00, 0x7D, 0xF0, 0x00, 0x00, 0xFB, 0xE0, 0x00, 0x01, 0xF7, 0xC0, 0x00, 0x03, 0xEF, 0x80, 0x00, 0x07, 0xCF, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x3E, 0x3E, 0x00, 0x00, 0x7C, 0x3C, 0x00, 0x01, 0xF0, 0x7C, 0x00, 0x03, 0xE0, 0x78, 0x00, 0x0F, 0x80, 0x78, 0x00, 0x1E, 0x00, 0x78, 0x00, 0x78, 0x00, 0x7C, 0x03, 0xE0, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x1F, 0x03, 0xF8, 0x01, 0xF0, 0x0F, 0x80, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x03, 0xE0, 0x1F, 0x00, 0x3E, 0x01, 0xF0, 0x03, 0xE0, 0x1F, 0x00, 0x3E, 0x01, 0xF0, 0x03, 0xE0, 0x1F, 0x00, 0x3E, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x0F, 0x80, 0x1F, 0x07, 0xF0, 0x01, 0xFF, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x01, 0xF1, 0xF0, 0x00, 0x1F, 0x1F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x07, 0xC0, 0x01, 0xF0, 0x3E, 0x00, 0x1F, 0x03, 0xF0, 0x01, 0xF0, 0x1F, 0x80, 0x1F, 0x00, 0xFC, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7E, 0x01, 0xF0, 0x03, 0xF0, 0x1F, 0x00, 0x1F, 0x83, 0xF8, 0x00, 0xFC, 0xFF, 0xF0, 0x0F, 0xF0, 0x03, 0xF0, 0x20, 0x7F, 0xF3, 0x07, 0xC1, 0xF8, 0x78, 0x03, 0xC3, 0x80, 0x0E, 0x3C, 0x00, 0x31, 0xE0, 0x01, 0xCF, 0x00, 0x06, 0x7C, 0x00, 0x33, 0xE0, 0x01, 0x9F, 0x80, 0x00, 0x7E, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xE0, 0x00, 0xFF, 0xC0, 0x01, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x0F, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xEF, 0x00, 0x1F, 0x3C, 0x01, 0xF1, 0xF8, 0x1F, 0x0C, 0xFF, 0xF0, 0x40, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x7C, 0x07, 0xF0, 0x0F, 0x80, 0x3C, 0x01, 0xF0, 0x07, 0x00, 0x3E, 0x00, 0x60, 0x07, 0xC0, 0x08, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0x3F, 0xE0, 0x00, 0xFC, 0x0F, 0x80, 0x00, 0x78, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x20, 0x07, 0xC0, 0x00, 0x60, 0x07, 0xC0, 0x00, 0x60, 0x03, 0xE0, 0x00, 0xC0, 0x03, 0xF0, 0x01, 0xC0, 0x01, 0xFC, 0x07, 0x80, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0xFF, 0xF8, 0x01, 0xFF, 0x3F, 0xC0, 0x00, 0x7E, 0x0F, 0x80, 0x00, 0x3C, 0x0F, 0xC0, 0x00, 0x38, 0x07, 0xC0, 0x00, 0x38, 0x07, 0xC0, 0x00, 0x30, 0x03, 0xE0, 0x00, 0x70, 0x03, 0xE0, 0x00, 0x60, 0x01, 0xF0, 0x00, 0x60, 0x01, 0xF0, 0x00, 0xE0, 0x01, 0xF8, 0x00, 0xC0, 0x00, 0xF8, 0x01, 0xC0, 0x00, 0xF8, 0x01, 0x80, 0x00, 0x7C, 0x01, 0x80, 0x00, 0x7C, 0x03, 0x80, 0x00, 0x3E, 0x03, 0x00, 0x00, 0x3E, 0x07, 0x00, 0x00, 0x1F, 0x06, 0x00, 0x00, 0x1F, 0x06, 0x00, 0x00, 0x1F, 0x8E, 0x00, 0x00, 0x0F, 0x8C, 0x00, 0x00, 0x0F, 0x9C, 0x00, 0x00, 0x07, 0xD8, 0x00, 0x00, 0x07, 0xD8, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xF1, 0xFF, 0xF0, 0x1F, 0xF3, 0xF8, 0x07, 0xF8, 0x00, 0x7C, 0x1F, 0x80, 0x3F, 0x00, 0x03, 0x80, 0xF8, 0x01, 0xF0, 0x00, 0x30, 0x0F, 0x80, 0x1F, 0x00, 0x03, 0x00, 0x7C, 0x00, 0xF8, 0x00, 0x30, 0x07, 0xC0, 0x0F, 0x80, 0x06, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0x60, 0x03, 0xE0, 0x07, 0xC0, 0x06, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xC0, 0x01, 0xF0, 0x07, 0xE0, 0x0C, 0x00, 0x1F, 0x00, 0xFE, 0x01, 0xC0, 0x01, 0xF0, 0x0D, 0xE0, 0x18, 0x00, 0x0F, 0x80, 0xDF, 0x01, 0x80, 0x00, 0xF8, 0x19, 0xF0, 0x30, 0x00, 0x07, 0xC1, 0x8F, 0x83, 0x00, 0x00, 0x7C, 0x38, 0xF8, 0x30, 0x00, 0x07, 0xC3, 0x0F, 0x86, 0x00, 0x00, 0x3E, 0x30, 0x7C, 0x60, 0x00, 0x03, 0xE7, 0x07, 0xCE, 0x00, 0x00, 0x3E, 0x60, 0x3E, 0xC0, 0x00, 0x01, 0xF6, 0x03, 0xEC, 0x00, 0x00, 0x1F, 0xE0, 0x3F, 0xC0, 0x00, 0x01, 0xFC, 0x01, 0xF8, 0x00, 0x00, 0x0F, 0xC0, 0x1F, 0x80, 0x00, 0x00, 0xF8, 0x01, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x78, 0x00, 0xF0, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x60, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x7F, 0xFE, 0x03, 0xFF, 0x8F, 0xF8, 0x00, 0x7E, 0x01, 0xFC, 0x00, 0x1C, 0x00, 0x7E, 0x00, 0x1C, 0x00, 0x1F, 0x00, 0x0C, 0x00, 0x07, 0xC0, 0x0E, 0x00, 0x03, 0xF0, 0x0E, 0x00, 0x00, 0xF8, 0x0E, 0x00, 0x00, 0x3E, 0x06, 0x00, 0x00, 0x1F, 0x86, 0x00, 0x00, 0x07, 0xC7, 0x00, 0x00, 0x01, 0xF7, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x03, 0x9F, 0x00, 0x00, 0x01, 0x8F, 0xC0, 0x00, 0x01, 0x83, 0xF0, 0x00, 0x01, 0xC0, 0xF8, 0x00, 0x01, 0xC0, 0x7E, 0x00, 0x01, 0xC0, 0x1F, 0x80, 0x01, 0xC0, 0x07, 0xC0, 0x00, 0xC0, 0x03, 0xF0, 0x00, 0xE0, 0x00, 0xFC, 0x00, 0xE0, 0x00, 0x7F, 0x00, 0xF0, 0x00, 0x1F, 0x80, 0xFC, 0x00, 0x1F, 0xF3, 0xFF, 0x80, 0x7F, 0xFE, 0xFF, 0xF8, 0x03, 0xFF, 0x3F, 0xE0, 0x00, 0x7C, 0x1F, 0xC0, 0x00, 0x78, 0x0F, 0xC0, 0x00, 0x70, 0x07, 0xE0, 0x00, 0x60, 0x03, 0xF0, 0x00, 0xE0, 0x01, 0xF0, 0x01, 0xC0, 0x01, 0xF8, 0x01, 0x80, 0x00, 0xFC, 0x03, 0x80, 0x00, 0x7C, 0x07, 0x00, 0x00, 0x7E, 0x06, 0x00, 0x00, 0x3F, 0x0E, 0x00, 0x00, 0x1F, 0x1C, 0x00, 0x00, 0x1F, 0x98, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xF8, 0xF0, 0x00, 0x3E, 0x38, 0x00, 0x0F, 0x86, 0x00, 0x03, 0xF0, 0xC0, 0x00, 0x7C, 0x10, 0x00, 0x1F, 0x02, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x01, 0x0F, 0x80, 0x00, 0x63, 0xF0, 0x00, 0x0C, 0xFC, 0x00, 0x03, 0xBF, 0x00, 0x00, 0xE7, 0xC0, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xF0, 0xFF, 0xF0, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0F, 0x07, 0xFC, 0xE0, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xE0, 0x03, 0x80, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x03, 0x80, 0x0E, 0x00, 0x38, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x0E, 0x00, 0x38, 0x00, 0xE0, 0x01, 0xC0, 0x07, 0x00, 0x1E, 0x00, 0x38, 0x00, 0xE0, 0x03, 0xC0, 0x07, 0xFF, 0x83, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x3F, 0xFC, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0x80, 0x03, 0xDC, 0x00, 0x39, 0xC0, 0x07, 0x9E, 0x00, 0x70, 0xE0, 0x0F, 0x0F, 0x00, 0xE0, 0x70, 0x1E, 0x07, 0x81, 0xC0, 0x38, 0x3C, 0x03, 0xC3, 0x80, 0x1C, 0x78, 0x01, 0xE7, 0x00, 0x0E, 0xF0, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x3C, 0x0F, 0x81, 0xF0, 0x1E, 0x03, 0xC0, 0x38, 0x07, 0x03, 0xF0, 0x07, 0x0E, 0x03, 0x81, 0xC1, 0xE0, 0x30, 0x78, 0x0E, 0x1E, 0x03, 0x83, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x73, 0x80, 0x70, 0xE0, 0x70, 0x38, 0x38, 0x0E, 0x1C, 0x03, 0x8F, 0x00, 0xE3, 0xC0, 0x38, 0xF0, 0x0E, 0x3E, 0x07, 0x8F, 0xC3, 0xE1, 0xFF, 0x3F, 0x1F, 0x07, 0x80, 0x06, 0x00, 0x01, 0xF0, 0x00, 0x3F, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x7E, 0x01, 0xEF, 0xFC, 0x0F, 0xC3, 0xF0, 0x7C, 0x07, 0x83, 0xC0, 0x3E, 0x1E, 0x00, 0xF0, 0xF0, 0x07, 0xC7, 0x80, 0x1E, 0x3C, 0x00, 0xF1, 0xE0, 0x07, 0x8F, 0x00, 0x3C, 0x78, 0x01, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x70, 0xF0, 0x03, 0x87, 0x80, 0x38, 0x3C, 0x01, 0xC1, 0xE0, 0x1C, 0x0F, 0xC1, 0xC0, 0x1F, 0xFC, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0xFF, 0xE0, 0x38, 0x3E, 0x0E, 0x03, 0xE3, 0x80, 0x7C, 0xE0, 0x07, 0x18, 0x00, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x1B, 0xC0, 0x02, 0x7C, 0x01, 0x87, 0xE0, 0x60, 0x7F, 0xF8, 0x07, 0xFE, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0F, 0x80, 0x00, 0xFE, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x7C, 0x78, 0x07, 0xFD, 0xE0, 0x3C, 0x3F, 0x81, 0xC0, 0x3E, 0x0E, 0x00, 0xF8, 0x38, 0x01, 0xE1, 0xE0, 0x07, 0x87, 0x00, 0x1E, 0x3C, 0x00, 0x78, 0xF0, 0x01, 0xE3, 0xC0, 0x07, 0x8F, 0x00, 0x1E, 0x3C, 0x00, 0x78, 0xF0, 0x01, 0xE3, 0xE0, 0x07, 0x87, 0x80, 0x1E, 0x1F, 0x00, 0x78, 0x3E, 0x03, 0xE0, 0xFC, 0x1F, 0xF0, 0xFF, 0xDF, 0x00, 0xFC, 0x60, 0x03, 0xF8, 0x03, 0xFF, 0x01, 0xC1, 0xE0, 0xC0, 0x3C, 0x70, 0x0F, 0x98, 0x01, 0xE7, 0xFF, 0xFB, 0xFF, 0xFE, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x05, 0xE0, 0x02, 0x7C, 0x01, 0x8F, 0xC1, 0xC3, 0xFF, 0xE0, 0x7F, 0xF0, 0x07, 0xF0, 0x00, 0x00, 0x7E, 0x00, 0xFF, 0xC0, 0xE3, 0xE0, 0x60, 0x70, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x07, 0xFF, 0x83, 0xFF, 0xC0, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x3F, 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x3F, 0xF0, 0x03, 0xC7, 0xFE, 0x3C, 0x1F, 0xF1, 0xC0, 0x70, 0x1E, 0x03, 0xC0, 0xF0, 0x0E, 0x07, 0x80, 0x70, 0x3C, 0x03, 0x81, 0xE0, 0x1C, 0x07, 0x80, 0xC0, 0x3E, 0x0E, 0x00, 0x78, 0xE0, 0x01, 0xFC, 0x00, 0x18, 0x00, 0x01, 0x80, 0x00, 0x18, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0xFF, 0xC0, 0x3F, 0xFF, 0x80, 0xFF, 0xFE, 0x0C, 0x00, 0x38, 0xC0, 0x00, 0x4C, 0x00, 0x02, 0x60, 0x00, 0x17, 0x00, 0x01, 0x38, 0x00, 0x09, 0xE0, 0x00, 0x87, 0xC0, 0x38, 0x1F, 0xFF, 0x00, 0x3F, 0xC0, 0x00, 0x06, 0x00, 0x00, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x87, 0xE0, 0x1E, 0x7F, 0xC0, 0x7B, 0x0F, 0x81, 0xF8, 0x1E, 0x07, 0x80, 0x3C, 0x1E, 0x00, 0xF0, 0x78, 0x03, 0xC1, 0xE0, 0x0F, 0x07, 0x80, 0x3C, 0x1E, 0x00, 0xF0, 0x78, 0x03, 0xC1, 0xE0, 0x0F, 0x07, 0x80, 0x3C, 0x1E, 0x00, 0xF0, 0x78, 0x03, 0xC1, 0xE0, 0x0F, 0x07, 0x80, 0x3C, 0x1E, 0x00, 0xF0, 0x78, 0x03, 0xC3, 0xF0, 0x1F, 0x9F, 0xF1, 0xFF, 0x0E, 0x03, 0xE0, 0x7C, 0x0F, 0x80, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x70, 0x7E, 0x1F, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x07, 0xE7, 0xFF, 0x00, 0xE0, 0x1F, 0x01, 0xF0, 0x1F, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x70, 0x3F, 0x07, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xE0, 0x0E, 0xE0, 0xEF, 0x1C, 0xFF, 0x87, 0xE0, 0x06, 0x00, 0x00, 0x7C, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x7F, 0xE1, 0xE0, 0x3E, 0x03, 0xC0, 0x70, 0x07, 0x81, 0x80, 0x0F, 0x06, 0x00, 0x1E, 0x18, 0x00, 0x3C, 0x60, 0x00, 0x79, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x03, 0xDE, 0x00, 0x07, 0x9E, 0x00, 0x0F, 0x3E, 0x00, 0x1E, 0x3E, 0x00, 0x3C, 0x3E, 0x00, 0x78, 0x3C, 0x00, 0xF0, 0x3C, 0x01, 0xE0, 0x7C, 0x03, 0xC0, 0x7C, 0x0F, 0xC0, 0xFE, 0x7F, 0xE3, 0xFF, 0x03, 0x03, 0xE1, 0xFC, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x07, 0xE7, 0xFF, 0x1E, 0x1F, 0x01, 0xF8, 0x1F, 0xCF, 0xF0, 0xFF, 0x80, 0xFF, 0x0F, 0x70, 0xF8, 0x0F, 0x81, 0xF8, 0x0F, 0x01, 0xE0, 0x1E, 0x00, 0xF0, 0x3C, 0x03, 0xC0, 0x1E, 0x07, 0x80, 0x78, 0x03, 0xC0, 0xF0, 0x0F, 0x00, 0x78, 0x1E, 0x01, 0xE0, 0x0F, 0x03, 0xC0, 0x3C, 0x01, 0xE0, 0x78, 0x07, 0x80, 0x3C, 0x0F, 0x00, 0xF0, 0x07, 0x81, 0xE0, 0x1E, 0x00, 0xF0, 0x3C, 0x03, 0xC0, 0x1E, 0x07, 0x80, 0x78, 0x03, 0xC0, 0xF0, 0x0F, 0x00, 0x78, 0x1E, 0x01, 0xE0, 0x0F, 0x03, 0xC0, 0x3C, 0x01, 0xE0, 0x78, 0x07, 0x80, 0x3C, 0x1F, 0x81, 0xF8, 0x0F, 0xCF, 0xFC, 0xFF, 0xC7, 0xFE, 0x1E, 0x1F, 0x83, 0xF9, 0xFF, 0x03, 0xFC, 0x3E, 0x07, 0xC0, 0x7C, 0x1E, 0x00, 0xF0, 0x78, 0x03, 0xC1, 0xE0, 0x0F, 0x07, 0x80, 0x3C, 0x1E, 0x00, 0xF0, 0x78, 0x03, 0xC1, 0xE0, 0x0F, 0x07, 0x80, 0x3C, 0x1E, 0x00, 0xF0, 0x78, 0x03, 0xC1, 0xE0, 0x0F, 0x07, 0x80, 0x3C, 0x1E, 0x00, 0xF0, 0x78, 0x03, 0xC1, 0xE0, 0x0F, 0x0F, 0xC0, 0x7E, 0x7F, 0xC3, 0xFC, 0x01, 0xFE, 0x00, 0x1F, 0xFE, 0x00, 0xF0, 0x7C, 0x0F, 0x80, 0xF8, 0x3C, 0x01, 0xF1, 0xE0, 0x03, 0xE7, 0x80, 0x0F, 0xBE, 0x00, 0x3F, 0xF8, 0x00, 0x7F, 0xE0, 0x01, 0xFF, 0x80, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xF0, 0x01, 0xE7, 0xC0, 0x07, 0x9F, 0x80, 0x3E, 0x3E, 0x00, 0xF0, 0x7C, 0x07, 0x80, 0xF8, 0x3C, 0x01, 0xFF, 0xE0, 0x00, 0xFC, 0x00, 0x0E, 0x3F, 0x07, 0xF7, 0xFE, 0x07, 0xE0, 0xF8, 0x3E, 0x03, 0xE1, 0xE0, 0x0F, 0x0F, 0x00, 0x7C, 0x78, 0x03, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x78, 0xF0, 0x03, 0xC7, 0x80, 0x1E, 0x3C, 0x00, 0xF1, 0xE0, 0x07, 0x8F, 0x00, 0x38, 0x78, 0x03, 0xC3, 0xC0, 0x1E, 0x1E, 0x00, 0xE0, 0xF8, 0x0E, 0x07, 0xE0, 0xE0, 0x3D, 0xFE, 0x01, 0xE7, 0xC0, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x1F, 0x80, 0x03, 0xFF, 0x80, 0x00, 0x01, 0xF8, 0x20, 0x3F, 0xF3, 0x03, 0xC1, 0xF8, 0x3C, 0x07, 0xC3, 0xC0, 0x1E, 0x1C, 0x00, 0xF1, 0xE0, 0x07, 0x8E, 0x00, 0x3C, 0xF0, 0x01, 0xE7, 0x80, 0x0F, 0x3C, 0x00, 0x79, 0xE0, 0x03, 0xCF, 0x00, 0x1E, 0x78, 0x00, 0xF3, 0xE0, 0x07, 0x9F, 0x00, 0x3C, 0x7C, 0x01, 0xE3, 0xE0, 0x1F, 0x0F, 0xC1, 0xF8, 0x3F, 0xF3, 0xC0, 0x7E, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x03, 0xF8, 0x00, 0x7F, 0xE0, 0x06, 0x3C, 0xFC, 0xFE, 0xFA, 0x78, 0xF8, 0x71, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x01, 0xF8, 0x0F, 0xFC, 0x00, 0x1F, 0x91, 0x87, 0x98, 0x1D, 0xC0, 0x6E, 0x03, 0x70, 0x0B, 0xC0, 0x5F, 0x80, 0x7E, 0x01, 0xFC, 0x07, 0xF0, 0x0F, 0xE0, 0x3F, 0x00, 0x7E, 0x01, 0xF0, 0x07, 0xC0, 0x3E, 0x01, 0xF8, 0x0D, 0xE0, 0xC8, 0xF8, 0x00, 0x04, 0x00, 0xC0, 0x0C, 0x01, 0xC0, 0x3C, 0x07, 0xFC, 0xFF, 0xC3, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xE2, 0x1F, 0xC0, 0xF8, 0xFC, 0x0F, 0xE1, 0xF0, 0x0F, 0x83, 0xC0, 0x1E, 0x0F, 0x00, 0x78, 0x3C, 0x01, 0xE0, 0xF0, 0x07, 0x83, 0xC0, 0x1E, 0x0F, 0x00, 0x78, 0x3C, 0x01, 0xE0, 0xF0, 0x07, 0x83, 0xC0, 0x1E, 0x0F, 0x00, 0x78, 0x3C, 0x01, 0xE0, 0xF0, 0x07, 0x83, 0xC0, 0x1E, 0x0F, 0x00, 0x78, 0x3C, 0x01, 0xE0, 0xF8, 0x0F, 0x81, 0xF0, 0xFF, 0x03, 0xFE, 0x7F, 0x07, 0xE1, 0xC0, 0xFF, 0x81, 0xFC, 0xFC, 0x01, 0xC1, 0xE0, 0x07, 0x07, 0x80, 0x18, 0x0F, 0x00, 0x60, 0x3C, 0x01, 0x00, 0x78, 0x0C, 0x01, 0xE0, 0x30, 0x07, 0x81, 0x80, 0x0F, 0x06, 0x00, 0x3C, 0x10, 0x00, 0x78, 0xC0, 0x01, 0xE3, 0x00, 0x03, 0x98, 0x00, 0x0F, 0x60, 0x00, 0x3D, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x30, 0x00, 0x00, 0x40, 0x00, 0xFF, 0x8F, 0xF8, 0x3F, 0x7E, 0x07, 0xE0, 0x0E, 0x3E, 0x03, 0xC0, 0x0C, 0x1E, 0x03, 0xE0, 0x0C, 0x1E, 0x01, 0xE0, 0x0C, 0x1E, 0x01, 0xE0, 0x18, 0x0F, 0x00, 0xF0, 0x18, 0x0F, 0x01, 0xF0, 0x10, 0x07, 0x81, 0xF0, 0x30, 0x07, 0x81, 0x78, 0x30, 0x07, 0x83, 0x78, 0x60, 0x03, 0xC3, 0x38, 0x60, 0x03, 0xC6, 0x3C, 0x40, 0x01, 0xC6, 0x3C, 0xC0, 0x01, 0xEC, 0x1E, 0xC0, 0x01, 0xEC, 0x1F, 0x80, 0x00, 0xF8, 0x0F, 0x80, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x70, 0x0F, 0x00, 0x00, 0x70, 0x07, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x20, 0x02, 0x00, 0x7F, 0xE7, 0xF0, 0x7E, 0x0F, 0x00, 0xF8, 0x38, 0x01, 0xE0, 0xC0, 0x07, 0xC6, 0x00, 0x0F, 0x30, 0x00, 0x1E, 0xC0, 0x00, 0x7E, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xDE, 0x00, 0x06, 0x7C, 0x00, 0x30, 0xF0, 0x01, 0xC1, 0xE0, 0x06, 0x07, 0xC0, 0x30, 0x0F, 0x01, 0xC0, 0x1E, 0x0F, 0x00, 0xFC, 0xFE, 0x07, 0xFC, 0xFF, 0xC0, 0xFC, 0xFC, 0x01, 0xE1, 0xE0, 0x03, 0x07, 0x80, 0x18, 0x0F, 0x00, 0x60, 0x3C, 0x01, 0x80, 0x78, 0x0C, 0x01, 0xE0, 0x30, 0x03, 0xC0, 0xC0, 0x0F, 0x06, 0x00, 0x3E, 0x18, 0x00, 0x78, 0x40, 0x01, 0xF3, 0x00, 0x03, 0xCC, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x40, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x80, 0x01, 0xFC, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7F, 0xFF, 0x9F, 0xFF, 0xE6, 0x00, 0xF1, 0x00, 0x78, 0x40, 0x3E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xE0, 0x01, 0xF0, 0x04, 0x78, 0x01, 0x3E, 0x00, 0xDF, 0x00, 0x37, 0x80, 0x1F, 0xFF, 0xFE, 0xFF, 0xFF, 0x80, 0x01, 0xE0, 0x78, 0x1C, 0x07, 0x80, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x70, 0x1C, 0x0E, 0x00, 0x70, 0x07, 0x00, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x01, 0xC0, 0x1E, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x0F, 0x00, 0x70, 0x0F, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x1C, 0x01, 0xC0, 0x0E, 0x07, 0x01, 0xC0, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x3C, 0x07, 0x03, 0xC0, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFF, 0x80, 0xC7, 0x0F, 0x87, 0xB8, 0x0F, 0xFC, 0x00, 0x07, 0xC0}; const GFXglyph FreeSerif24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 12, 0, 1}, // 0x20 ' ' {0, 5, 32, 16, 6, -31}, // 0x21 '!' {20, 12, 12, 19, 4, -31}, // 0x22 '"' {38, 23, 31, 23, 0, -30}, // 0x23 '#' {128, 19, 37, 24, 2, -33}, // 0x24 '$' {216, 33, 32, 39, 3, -30}, // 0x25 '%' {348, 32, 33, 37, 2, -31}, // 0x26 '&' {480, 4, 12, 9, 3, -31}, // 0x27 ''' {486, 12, 40, 16, 2, -31}, // 0x28 '(' {546, 12, 40, 16, 2, -30}, // 0x29 ')' {606, 16, 19, 24, 4, -30}, // 0x2A '*' {644, 23, 23, 27, 2, -22}, // 0x2B '+' {711, 6, 11, 12, 2, -4}, // 0x2C ',' {720, 11, 2, 16, 2, -10}, // 0x2D '-' {723, 5, 5, 12, 3, -3}, // 0x2E '.' {727, 14, 32, 14, 0, -30}, // 0x2F '/' {783, 22, 33, 23, 1, -31}, // 0x30 '0' {874, 13, 32, 24, 5, -31}, // 0x31 '1' {926, 21, 31, 23, 1, -30}, // 0x32 '2' {1008, 18, 32, 23, 2, -30}, // 0x33 '3' {1080, 21, 31, 24, 1, -30}, // 0x34 '4' {1162, 19, 33, 24, 2, -31}, // 0x35 '5' {1241, 21, 33, 23, 2, -31}, // 0x36 '6' {1328, 20, 31, 24, 1, -30}, // 0x37 '7' {1406, 18, 33, 23, 3, -31}, // 0x38 '8' {1481, 21, 33, 24, 1, -31}, // 0x39 '9' {1568, 5, 22, 12, 4, -20}, // 0x3A ':' {1582, 6, 27, 12, 3, -20}, // 0x3B ';' {1603, 24, 25, 27, 1, -24}, // 0x3C '<' {1678, 24, 11, 27, 1, -16}, // 0x3D '=' {1711, 24, 25, 27, 2, -23}, // 0x3E '>' {1786, 17, 32, 21, 3, -31}, // 0x3F '?' {1854, 32, 33, 41, 4, -31}, // 0x40 '@' {1986, 32, 32, 34, 1, -31}, // 0x41 'A' {2114, 27, 31, 30, 0, -30}, // 0x42 'B' {2219, 28, 33, 31, 2, -31}, // 0x43 'C' {2335, 31, 31, 34, 1, -30}, // 0x44 'D' {2456, 27, 31, 29, 2, -30}, // 0x45 'E' {2561, 24, 31, 27, 2, -30}, // 0x46 'F' {2654, 31, 33, 35, 2, -31}, // 0x47 'G' {2782, 30, 31, 34, 2, -30}, // 0x48 'H' {2899, 13, 31, 15, 1, -30}, // 0x49 'I' {2950, 17, 32, 18, 0, -30}, // 0x4A 'J' {3018, 32, 31, 33, 1, -30}, // 0x4B 'K' {3142, 26, 31, 29, 2, -30}, // 0x4C 'L' {3243, 39, 31, 41, 1, -30}, // 0x4D 'M' {3395, 32, 32, 34, 1, -30}, // 0x4E 'N' {3523, 30, 33, 34, 2, -31}, // 0x4F 'O' {3647, 23, 31, 27, 2, -30}, // 0x50 'P' {3737, 31, 40, 34, 2, -31}, // 0x51 'Q' {3892, 28, 31, 31, 2, -30}, // 0x52 'R' {4001, 21, 33, 25, 2, -31}, // 0x53 'S' {4088, 27, 31, 28, 1, -30}, // 0x54 'T' {4193, 32, 32, 34, 1, -30}, // 0x55 'U' {4321, 32, 32, 33, 0, -30}, // 0x56 'V' {4449, 44, 32, 45, 0, -30}, // 0x57 'W' {4625, 33, 31, 34, 0, -30}, // 0x58 'X' {4753, 32, 31, 33, 0, -30}, // 0x59 'Y' {4877, 27, 31, 29, 1, -30}, // 0x5A 'Z' {4982, 9, 38, 16, 4, -30}, // 0x5B '[' {5025, 14, 32, 14, 0, -30}, // 0x5C '\' {5081, 9, 38, 16, 3, -30}, // 0x5D ']' {5124, 20, 17, 22, 1, -30}, // 0x5E '^' {5167, 24, 2, 23, 0, 5}, // 0x5F '_' {5173, 10, 8, 12, 1, -31}, // 0x60 '`' {5183, 18, 21, 20, 1, -20}, // 0x61 'a' {5231, 21, 32, 24, 1, -31}, // 0x62 'b' {5315, 19, 21, 21, 1, -20}, // 0x63 'c' {5365, 22, 32, 23, 1, -31}, // 0x64 'd' {5453, 18, 21, 21, 1, -20}, // 0x65 'e' {5501, 17, 33, 18, 0, -32}, // 0x66 'f' {5572, 21, 31, 22, 1, -20}, // 0x67 'g' {5654, 22, 32, 23, 0, -31}, // 0x68 'h' {5742, 11, 32, 13, 0, -31}, // 0x69 'i' {5786, 12, 42, 16, 0, -31}, // 0x6A 'j' {5849, 23, 32, 24, 1, -31}, // 0x6B 'k' {5941, 11, 32, 12, 0, -31}, // 0x6C 'l' {5985, 35, 21, 37, 1, -20}, // 0x6D 'm' {6077, 22, 21, 23, 0, -20}, // 0x6E 'n' {6135, 22, 21, 23, 1, -20}, // 0x6F 'o' {6193, 21, 31, 24, 1, -20}, // 0x70 'p' {6275, 21, 31, 23, 1, -20}, // 0x71 'q' {6357, 15, 21, 16, 1, -20}, // 0x72 'r' {6397, 13, 21, 17, 2, -20}, // 0x73 's' {6432, 12, 26, 13, 1, -25}, // 0x74 't' {6471, 22, 21, 23, 1, -20}, // 0x75 'u' {6529, 22, 22, 22, 0, -20}, // 0x76 'v' {6590, 32, 22, 32, 0, -20}, // 0x77 'w' {6678, 22, 21, 23, 0, -20}, // 0x78 'x' {6736, 22, 31, 22, 0, -20}, // 0x79 'y' {6822, 18, 21, 20, 1, -20}, // 0x7A 'z' {6870, 11, 41, 23, 5, -31}, // 0x7B '{' {6927, 3, 32, 9, 3, -30}, // 0x7C '|' {6939, 11, 41, 23, 7, -31}, // 0x7D '}' {6996, 22, 5, 23, 1, -13}}; // 0x7E '~' const GFXfont FreeSerif24pt7b PROGMEM = {(uint8_t *)FreeSerif24pt7bBitmaps, (GFXglyph *)FreeSerif24pt7bGlyphs, 0x20, 0x7E, 56}; // Approx. 7682 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerif9pt7b.h ================================================ const uint8_t FreeSerif9pt7bBitmaps[] PROGMEM = { 0xFF, 0xEA, 0x03, 0xDE, 0xF7, 0x20, 0x11, 0x09, 0x04, 0x82, 0x4F, 0xF9, 0x10, 0x89, 0xFF, 0x24, 0x12, 0x09, 0x0C, 0x80, 0x10, 0x7C, 0xD6, 0xD2, 0xD0, 0xF0, 0x38, 0x1E, 0x17, 0x93, 0x93, 0xD6, 0x7C, 0x10, 0x38, 0x43, 0x3C, 0x39, 0x21, 0x8A, 0x0C, 0x50, 0x65, 0x39, 0xCB, 0x20, 0xB9, 0x05, 0x88, 0x4C, 0x44, 0x64, 0x21, 0xC0, 0x0E, 0x00, 0xC8, 0x06, 0x40, 0x32, 0x01, 0xA0, 0x07, 0x78, 0x31, 0x87, 0x88, 0x46, 0x86, 0x34, 0x30, 0xC1, 0xC7, 0x17, 0xCF, 0x00, 0xFE, 0x08, 0x88, 0x84, 0x63, 0x18, 0xC6, 0x10, 0x82, 0x08, 0x20, 0x82, 0x08, 0x21, 0x0C, 0x63, 0x18, 0xC4, 0x22, 0x22, 0x00, 0x63, 0x9A, 0xDC, 0x72, 0xB6, 0x08, 0x08, 0x04, 0x02, 0x01, 0x0F, 0xF8, 0x40, 0x20, 0x10, 0x08, 0x00, 0xD8, 0xF0, 0xF0, 0x08, 0x84, 0x22, 0x10, 0x8C, 0x42, 0x31, 0x00, 0x1C, 0x31, 0x98, 0xD8, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xD8, 0xC4, 0x61, 0xC0, 0x13, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x67, 0x80, 0x3C, 0x4E, 0x86, 0x06, 0x06, 0x04, 0x0C, 0x08, 0x10, 0x20, 0x41, 0xFE, 0x3C, 0xC6, 0x06, 0x04, 0x1C, 0x3E, 0x07, 0x03, 0x03, 0x03, 0x06, 0xF8, 0x04, 0x18, 0x71, 0x64, 0xC9, 0xA3, 0x46, 0xFE, 0x18, 0x30, 0x60, 0x0F, 0x10, 0x20, 0x3C, 0x0E, 0x07, 0x03, 0x03, 0x03, 0x02, 0x04, 0xF8, 0x07, 0x1C, 0x30, 0x60, 0x60, 0xDC, 0xE6, 0xC3, 0xC3, 0xC3, 0x43, 0x66, 0x3C, 0x7F, 0x82, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x3C, 0x8F, 0x1E, 0x3E, 0x4F, 0x06, 0x36, 0xC7, 0x8F, 0x1B, 0x33, 0xC0, 0x3C, 0x66, 0xC2, 0xC3, 0xC3, 0xC3, 0xC3, 0x63, 0x3F, 0x06, 0x06, 0x0C, 0x38, 0x60, 0xF0, 0x0F, 0xD8, 0x00, 0x03, 0x28, 0x01, 0x87, 0x0E, 0x1C, 0x0C, 0x03, 0x80, 0x70, 0x0E, 0x00, 0x80, 0xFF, 0x80, 0x00, 0x00, 0x0F, 0xF8, 0x80, 0x1C, 0x01, 0xC0, 0x1C, 0x01, 0xC0, 0xE0, 0xE0, 0xE0, 0xC0, 0x00, 0x79, 0x1A, 0x18, 0x30, 0x60, 0x83, 0x04, 0x10, 0x20, 0x40, 0x03, 0x00, 0x0F, 0x83, 0x8C, 0x60, 0x26, 0x02, 0xC7, 0x9C, 0xC9, 0xD8, 0x9D, 0x99, 0xD9, 0x26, 0xEC, 0x60, 0x03, 0x04, 0x0F, 0x80, 0x02, 0x00, 0x10, 0x01, 0xC0, 0x16, 0x00, 0x98, 0x04, 0xC0, 0x43, 0x03, 0xF8, 0x20, 0x61, 0x03, 0x18, 0x1D, 0xE1, 0xF0, 0xFF, 0x86, 0x1C, 0xC1, 0x98, 0x33, 0x0C, 0x7E, 0x0C, 0x31, 0x83, 0x30, 0x66, 0x0C, 0xC3, 0x7F, 0xC0, 0x1F, 0x26, 0x1D, 0x81, 0xE0, 0x1C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x0C, 0x00, 0xC1, 0x8F, 0xC0, 0xFF, 0x03, 0x1C, 0x30, 0x63, 0x07, 0x30, 0x33, 0x03, 0x30, 0x33, 0x03, 0x30, 0x33, 0x06, 0x30, 0xCF, 0xF0, 0xFF, 0x98, 0x26, 0x01, 0x80, 0x61, 0x1F, 0xC6, 0x11, 0x80, 0x60, 0x18, 0x16, 0x0F, 0xFE, 0xFF, 0xB0, 0x58, 0x0C, 0x06, 0x13, 0xF9, 0x84, 0xC0, 0x60, 0x30, 0x18, 0x1E, 0x00, 0x1F, 0x23, 0x0E, 0x60, 0x26, 0x00, 0xC0, 0x0C, 0x0F, 0xC0, 0x6C, 0x06, 0xC0, 0x66, 0x06, 0x30, 0x60, 0xF8, 0xF1, 0xEC, 0x19, 0x83, 0x30, 0x66, 0x0C, 0xFF, 0x98, 0x33, 0x06, 0x60, 0xCC, 0x19, 0x83, 0x78, 0xF0, 0xF6, 0x66, 0x66, 0x66, 0x66, 0x6F, 0x3C, 0x61, 0x86, 0x18, 0x61, 0x86, 0x18, 0x6D, 0xBC, 0xF3, 0xE6, 0x08, 0x61, 0x06, 0x20, 0x64, 0x07, 0x80, 0x6C, 0x06, 0x60, 0x63, 0x06, 0x18, 0x60, 0xCF, 0x3F, 0xF0, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x16, 0x0B, 0xFE, 0xF0, 0x0E, 0x70, 0x38, 0xE0, 0x71, 0xE1, 0x62, 0xC2, 0xC5, 0xC9, 0x89, 0x93, 0x13, 0x26, 0x23, 0x8C, 0x47, 0x18, 0x84, 0x33, 0x88, 0xF0, 0xE0, 0xEE, 0x09, 0xC1, 0x2C, 0x25, 0xC4, 0x9C, 0x91, 0x92, 0x1A, 0x41, 0xC8, 0x19, 0x03, 0x70, 0x20, 0x1F, 0x06, 0x31, 0x83, 0x20, 0x2C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x68, 0x09, 0x83, 0x18, 0xC1, 0xF0, 0xFE, 0x31, 0x98, 0x6C, 0x36, 0x1B, 0x19, 0xF8, 0xC0, 0x60, 0x30, 0x18, 0x1E, 0x00, 0x1F, 0x06, 0x31, 0x83, 0x20, 0x2C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x68, 0x19, 0x83, 0x18, 0xC0, 0xE0, 0x0E, 0x00, 0xE0, 0x07, 0xFE, 0x0C, 0x61, 0x86, 0x30, 0xC6, 0x18, 0xC6, 0x1F, 0x83, 0x70, 0x67, 0x0C, 0x71, 0x87, 0x78, 0x70, 0x1D, 0x31, 0x98, 0x4C, 0x07, 0x80, 0xE0, 0x1C, 0x07, 0x01, 0xA0, 0xD8, 0xCB, 0xC0, 0xFF, 0xF8, 0xCE, 0x18, 0x83, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x07, 0x80, 0xF0, 0xEC, 0x09, 0x81, 0x30, 0x26, 0x04, 0xC0, 0x98, 0x13, 0x02, 0x60, 0x4C, 0x08, 0xC2, 0x0F, 0x80, 0xF8, 0x77, 0x02, 0x30, 0x23, 0x04, 0x18, 0x41, 0x84, 0x0C, 0x80, 0xC8, 0x07, 0x00, 0x70, 0x02, 0x00, 0x20, 0xFB, 0xE7, 0xB0, 0xC0, 0x8C, 0x20, 0x86, 0x18, 0x41, 0x8C, 0x40, 0xCB, 0x20, 0x65, 0x90, 0x1A, 0x70, 0x0E, 0x38, 0x03, 0x1C, 0x01, 0x04, 0x00, 0x82, 0x00, 0xFC, 0xF9, 0x83, 0x06, 0x10, 0x19, 0x00, 0xD0, 0x03, 0x00, 0x1C, 0x01, 0x30, 0x11, 0xC1, 0x86, 0x08, 0x19, 0xE3, 0xF0, 0xF8, 0xF6, 0x06, 0x30, 0x41, 0x88, 0x1D, 0x00, 0xD0, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0xF0, 0x3F, 0xCC, 0x11, 0x06, 0x01, 0x80, 0x70, 0x0C, 0x03, 0x00, 0xE0, 0x38, 0x06, 0x05, 0xC1, 0x7F, 0xE0, 0xFB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB8, 0x82, 0x10, 0x82, 0x10, 0x86, 0x10, 0x86, 0x10, 0xED, 0xB6, 0xDB, 0x6D, 0xB6, 0xF8, 0x18, 0x1C, 0x34, 0x26, 0x62, 0x42, 0xC1, 0xFF, 0x80, 0x84, 0x20, 0x79, 0x98, 0x30, 0xE6, 0xD9, 0xB3, 0x3F, 0x20, 0x70, 0x18, 0x0C, 0x06, 0x03, 0x71, 0xCC, 0xC3, 0x61, 0xB0, 0xD8, 0x6C, 0x63, 0xE0, 0x3C, 0xCF, 0x06, 0x0C, 0x18, 0x18, 0x9E, 0x01, 0x03, 0x80, 0xC0, 0x60, 0x31, 0xD9, 0x9D, 0x86, 0xC3, 0x61, 0xB0, 0xCC, 0x63, 0xF0, 0x3C, 0x46, 0xFE, 0xC0, 0xC0, 0xE1, 0x62, 0x3C, 0x1E, 0x41, 0x83, 0x06, 0x1E, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x0F, 0x00, 0x3C, 0x19, 0xF6, 0x31, 0x8C, 0x1E, 0x08, 0x04, 0x01, 0xFC, 0x40, 0xB0, 0x2E, 0x11, 0xF8, 0x20, 0x70, 0x18, 0x0C, 0x06, 0x03, 0x71, 0xCC, 0xC6, 0x63, 0x31, 0x98, 0xCC, 0x6F, 0x78, 0x60, 0x02, 0xE6, 0x66, 0x66, 0xF0, 0x18, 0x00, 0x33, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8B, 0x80, 0x20, 0x70, 0x18, 0x0C, 0x06, 0x03, 0x3D, 0x88, 0xD8, 0x78, 0x36, 0x19, 0x8C, 0x6F, 0x78, 0x2E, 0x66, 0x66, 0x66, 0x66, 0x66, 0xF0, 0xEE, 0x71, 0xCE, 0x66, 0x31, 0x98, 0xC6, 0x63, 0x19, 0x8C, 0x66, 0x31, 0xBD, 0xEF, 0xEE, 0x39, 0x98, 0xCC, 0x66, 0x33, 0x19, 0x8D, 0xEF, 0x3E, 0x31, 0xB0, 0x78, 0x3C, 0x1E, 0x0D, 0x8C, 0x7C, 0xEE, 0x39, 0x98, 0x6C, 0x36, 0x1B, 0x0D, 0x8C, 0xFC, 0x60, 0x30, 0x18, 0x1E, 0x00, 0x3D, 0x31, 0xB0, 0xD8, 0x6C, 0x36, 0x1B, 0x8C, 0xFE, 0x03, 0x01, 0x80, 0xC0, 0xF0, 0x6D, 0xC6, 0x18, 0x61, 0x86, 0x3C, 0x76, 0x38, 0x58, 0x3E, 0x38, 0xFE, 0x27, 0x98, 0xC6, 0x31, 0x8C, 0x38, 0xE7, 0x31, 0x98, 0xCC, 0x66, 0x33, 0x19, 0x8C, 0x7F, 0xF3, 0x61, 0x22, 0x32, 0x14, 0x1C, 0x08, 0x08, 0xEF, 0x36, 0x61, 0x62, 0x22, 0x32, 0x35, 0x41, 0x9C, 0x18, 0x81, 0x08, 0xF7, 0x12, 0x0E, 0x03, 0x01, 0xC1, 0x21, 0x09, 0xCF, 0xF3, 0x61, 0x62, 0x32, 0x34, 0x14, 0x1C, 0x08, 0x08, 0x08, 0x10, 0xE0, 0xFD, 0x18, 0x60, 0x83, 0x0C, 0x70, 0xFE, 0x19, 0x8C, 0x63, 0x18, 0xC4, 0x61, 0x8C, 0x63, 0x18, 0xC3, 0xFF, 0xF0, 0xC3, 0x18, 0xC6, 0x31, 0x84, 0x33, 0x18, 0xC6, 0x31, 0x98, 0x70, 0x24, 0xC1, 0xC0}; const GFXglyph FreeSerif9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 5, 0, 1}, // 0x20 ' ' {0, 2, 12, 6, 2, -11}, // 0x21 '!' {3, 5, 4, 7, 1, -11}, // 0x22 '"' {6, 9, 12, 9, 0, -11}, // 0x23 '#' {20, 8, 14, 9, 1, -12}, // 0x24 '$' {34, 13, 12, 15, 1, -11}, // 0x25 '%' {54, 13, 13, 14, 1, -12}, // 0x26 '&' {76, 2, 4, 4, 1, -11}, // 0x27 ''' {77, 5, 15, 6, 1, -11}, // 0x28 '(' {87, 5, 15, 6, 0, -11}, // 0x29 ')' {97, 6, 8, 9, 3, -11}, // 0x2A '*' {103, 9, 9, 10, 0, -8}, // 0x2B '+' {114, 2, 3, 4, 2, 0}, // 0x2C ',' {115, 4, 1, 6, 1, -3}, // 0x2D '-' {116, 2, 2, 5, 1, -1}, // 0x2E '.' {117, 5, 12, 5, 0, -11}, // 0x2F '/' {125, 9, 13, 9, 0, -12}, // 0x30 '0' {140, 5, 13, 9, 2, -12}, // 0x31 '1' {149, 8, 12, 9, 1, -11}, // 0x32 '2' {161, 8, 12, 9, 0, -11}, // 0x33 '3' {173, 7, 12, 9, 1, -11}, // 0x34 '4' {184, 8, 12, 9, 0, -11}, // 0x35 '5' {196, 8, 13, 9, 1, -12}, // 0x36 '6' {209, 8, 12, 9, 0, -11}, // 0x37 '7' {221, 7, 13, 9, 1, -12}, // 0x38 '8' {233, 8, 14, 9, 1, -12}, // 0x39 '9' {247, 2, 8, 5, 1, -7}, // 0x3A ':' {249, 3, 10, 5, 1, -7}, // 0x3B ';' {253, 9, 9, 10, 1, -8}, // 0x3C '<' {264, 9, 5, 10, 1, -6}, // 0x3D '=' {270, 10, 9, 10, 0, -8}, // 0x3E '>' {282, 7, 13, 8, 1, -12}, // 0x3F '?' {294, 12, 13, 16, 2, -12}, // 0x40 '@' {314, 13, 12, 13, 0, -11}, // 0x41 'A' {334, 11, 12, 11, 0, -11}, // 0x42 'B' {351, 11, 12, 12, 1, -11}, // 0x43 'C' {368, 12, 12, 13, 0, -11}, // 0x44 'D' {386, 10, 12, 11, 1, -11}, // 0x45 'E' {401, 9, 12, 10, 1, -11}, // 0x46 'F' {415, 12, 12, 13, 1, -11}, // 0x47 'G' {433, 11, 12, 13, 1, -11}, // 0x48 'H' {450, 4, 12, 6, 1, -11}, // 0x49 'I' {456, 6, 12, 7, 0, -11}, // 0x4A 'J' {465, 12, 12, 13, 1, -11}, // 0x4B 'K' {483, 10, 12, 11, 1, -11}, // 0x4C 'L' {498, 15, 12, 16, 0, -11}, // 0x4D 'M' {521, 11, 12, 13, 1, -11}, // 0x4E 'N' {538, 11, 13, 13, 1, -12}, // 0x4F 'O' {556, 9, 12, 10, 1, -11}, // 0x50 'P' {570, 11, 16, 13, 1, -12}, // 0x51 'Q' {592, 11, 12, 12, 1, -11}, // 0x52 'R' {609, 9, 12, 10, 0, -11}, // 0x53 'S' {623, 11, 12, 11, 0, -11}, // 0x54 'T' {640, 11, 12, 13, 1, -11}, // 0x55 'U' {657, 12, 12, 13, 0, -11}, // 0x56 'V' {675, 17, 12, 17, 0, -11}, // 0x57 'W' {701, 13, 12, 13, 0, -11}, // 0x58 'X' {721, 12, 12, 13, 0, -11}, // 0x59 'Y' {739, 11, 12, 11, 0, -11}, // 0x5A 'Z' {756, 3, 15, 6, 2, -11}, // 0x5B '[' {762, 5, 12, 5, 0, -11}, // 0x5C '\' {770, 3, 15, 6, 1, -11}, // 0x5D ']' {776, 8, 7, 8, 0, -11}, // 0x5E '^' {783, 9, 1, 9, 0, 2}, // 0x5F '_' {785, 4, 3, 5, 0, -11}, // 0x60 '`' {787, 7, 8, 8, 1, -7}, // 0x61 'a' {794, 9, 13, 9, 0, -12}, // 0x62 'b' {809, 7, 8, 8, 0, -7}, // 0x63 'c' {816, 9, 13, 9, 0, -12}, // 0x64 'd' {831, 8, 8, 8, 0, -7}, // 0x65 'e' {839, 7, 13, 7, 1, -12}, // 0x66 'f' {851, 10, 12, 8, 0, -7}, // 0x67 'g' {866, 9, 13, 9, 0, -12}, // 0x68 'h' {881, 4, 11, 5, 1, -10}, // 0x69 'i' {887, 5, 15, 6, 0, -10}, // 0x6A 'j' {897, 9, 13, 9, 1, -12}, // 0x6B 'k' {912, 4, 13, 5, 1, -12}, // 0x6C 'l' {919, 14, 8, 14, 0, -7}, // 0x6D 'm' {933, 9, 8, 9, 0, -7}, // 0x6E 'n' {942, 9, 8, 9, 0, -7}, // 0x6F 'o' {951, 9, 12, 9, 0, -7}, // 0x70 'p' {965, 9, 12, 9, 0, -7}, // 0x71 'q' {979, 6, 8, 6, 0, -7}, // 0x72 'r' {985, 6, 8, 7, 1, -7}, // 0x73 's' {991, 5, 9, 5, 0, -8}, // 0x74 't' {997, 9, 8, 9, 0, -7}, // 0x75 'u' {1006, 8, 8, 8, 0, -7}, // 0x76 'v' {1014, 12, 8, 12, 0, -7}, // 0x77 'w' {1026, 9, 8, 9, 0, -7}, // 0x78 'x' {1035, 8, 12, 8, 0, -7}, // 0x79 'y' {1047, 7, 8, 7, 1, -7}, // 0x7A 'z' {1054, 5, 16, 9, 1, -12}, // 0x7B '{' {1064, 1, 12, 4, 1, -11}, // 0x7C '|' {1066, 5, 16, 9, 3, -11}, // 0x7D '}' {1076, 9, 3, 9, 0, -5}}; // 0x7E '~' const GFXfont FreeSerif9pt7b PROGMEM = {(uint8_t *)FreeSerif9pt7bBitmaps, (GFXglyph *)FreeSerif9pt7bGlyphs, 0x20, 0x7E, 22}; // Approx. 1752 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifBold12pt7b.h ================================================ const uint8_t FreeSerifBold12pt7bBitmaps[] PROGMEM = { 0x7F, 0xFF, 0x77, 0x66, 0x22, 0x00, 0x6F, 0xF7, 0xE3, 0xF1, 0xF8, 0xFC, 0x7E, 0x3A, 0x09, 0x04, 0x0C, 0x40, 0xCC, 0x0C, 0xC0, 0x8C, 0x18, 0xC7, 0xFF, 0x18, 0xC1, 0x88, 0x19, 0x81, 0x98, 0xFF, 0xE3, 0x18, 0x31, 0x83, 0x18, 0x33, 0x03, 0x30, 0x08, 0x01, 0x00, 0xFC, 0x24, 0xEC, 0x8D, 0x90, 0xBA, 0x07, 0xC0, 0x7E, 0x07, 0xF0, 0x7F, 0x07, 0xF0, 0x9F, 0x11, 0xE2, 0x3E, 0x46, 0xE9, 0xC7, 0xC0, 0x20, 0x04, 0x00, 0x1E, 0x0C, 0x0E, 0x7F, 0x07, 0x10, 0x83, 0xC4, 0x40, 0xE1, 0x30, 0x38, 0x88, 0x0E, 0x26, 0x03, 0x91, 0x1E, 0x78, 0x8E, 0x40, 0x27, 0x10, 0x11, 0xC4, 0x0C, 0xE1, 0x02, 0x38, 0x81, 0x0E, 0x20, 0x43, 0x90, 0x20, 0x78, 0x03, 0xE0, 0x01, 0x9E, 0x00, 0xE3, 0x80, 0x38, 0xE0, 0x0F, 0x30, 0x03, 0xF0, 0x00, 0x78, 0x7C, 0x1F, 0x06, 0x1B, 0xE1, 0x1C, 0x7C, 0x8F, 0x1F, 0x23, 0xC3, 0xF0, 0xF8, 0x7C, 0x3E, 0x0F, 0x97, 0xC7, 0xFC, 0xFE, 0x3E, 0xFF, 0xFE, 0x90, 0x00, 0x31, 0x0C, 0x31, 0x86, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x86, 0x18, 0x60, 0xC1, 0x02, 0x04, 0x03, 0x06, 0x0C, 0x30, 0x61, 0x87, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0x86, 0x38, 0xC2, 0x10, 0x80, 0x1C, 0x6E, 0xFA, 0xEF, 0xF1, 0xC7, 0xFF, 0xAF, 0xBB, 0x1C, 0x04, 0x00, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x0F, 0xFF, 0xFF, 0xF0, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x6F, 0xF7, 0x11, 0x24, 0xFF, 0xFF, 0xC0, 0x6F, 0xF6, 0x03, 0x07, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, 0xC0, 0x0E, 0x07, 0x71, 0xC7, 0x38, 0xEF, 0x1D, 0xE3, 0xFC, 0x7F, 0x8F, 0xF1, 0xFE, 0x3F, 0xC7, 0xF8, 0xF7, 0x1C, 0xE3, 0x8E, 0xE0, 0xF8, 0x06, 0x0F, 0x1F, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0xF9, 0xFF, 0x0F, 0x03, 0xFC, 0x7F, 0xC4, 0x3E, 0x01, 0xE0, 0x1E, 0x01, 0xE0, 0x1C, 0x03, 0x80, 0x30, 0x06, 0x00, 0xC1, 0x18, 0x13, 0xFE, 0x7F, 0xEF, 0xFE, 0x1F, 0x0C, 0xFA, 0x0F, 0x01, 0xE0, 0x38, 0x0E, 0x03, 0xE0, 0x3E, 0x03, 0xE0, 0x3C, 0x03, 0x80, 0x70, 0x0D, 0xC1, 0xBC, 0x43, 0xF0, 0x03, 0x80, 0xE0, 0x78, 0x3E, 0x17, 0x89, 0xE2, 0x79, 0x1E, 0x87, 0xA1, 0xEF, 0xFF, 0xFF, 0xFF, 0xC1, 0xE0, 0x78, 0x1E, 0x3F, 0xE7, 0xF8, 0xFF, 0x10, 0x04, 0x00, 0xF8, 0x1F, 0xC7, 0xFC, 0x1F, 0xC0, 0x78, 0x07, 0x00, 0x60, 0x0D, 0xC1, 0x3C, 0x43, 0xF0, 0x00, 0xE0, 0xF0, 0x38, 0x1E, 0x07, 0x80, 0xF0, 0x3F, 0xE7, 0x9E, 0xF1, 0xFE, 0x3F, 0xC7, 0xF8, 0xF7, 0x1E, 0xE3, 0x8E, 0x60, 0xF8, 0x7F, 0xEF, 0xFD, 0xFF, 0xA0, 0x68, 0x0C, 0x03, 0x80, 0x60, 0x0C, 0x03, 0x00, 0x60, 0x0C, 0x03, 0x00, 0x60, 0x1C, 0x03, 0x00, 0x60, 0x1F, 0x0E, 0x73, 0x87, 0x70, 0xEF, 0x1D, 0xF3, 0x1F, 0x81, 0xF8, 0x1F, 0xCC, 0xFB, 0x8F, 0xF0, 0xFE, 0x1F, 0xC3, 0x9C, 0xF1, 0xF8, 0x1F, 0x06, 0x71, 0xC7, 0x78, 0xEF, 0x1F, 0xE3, 0xFC, 0x7F, 0x8F, 0x79, 0xE7, 0xFC, 0x0F, 0x01, 0xC0, 0x78, 0x1C, 0x0F, 0x07, 0x00, 0x6F, 0xF6, 0x00, 0x06, 0xFF, 0x60, 0x6F, 0xF6, 0x00, 0x06, 0xFF, 0x71, 0x22, 0xC0, 0x00, 0x04, 0x00, 0x70, 0x07, 0xC0, 0xFC, 0x0F, 0x80, 0xF8, 0x0F, 0x80, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0x00, 0x03, 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x1F, 0x01, 0xF0, 0x1F, 0x03, 0xF0, 0x3E, 0x00, 0xE0, 0x02, 0x00, 0x00, 0x3E, 0x11, 0xEC, 0x3F, 0x8F, 0xE3, 0xC0, 0xF0, 0x78, 0x18, 0x08, 0x02, 0x00, 0x00, 0x00, 0x1C, 0x07, 0x81, 0xE0, 0x30, 0x03, 0xF0, 0x0E, 0x18, 0x18, 0x04, 0x30, 0x66, 0x70, 0xDB, 0x61, 0x99, 0xE3, 0x19, 0xE3, 0x31, 0xE6, 0x31, 0xE6, 0x31, 0xE6, 0xF2, 0x66, 0xB2, 0x73, 0x3C, 0x38, 0x00, 0x1E, 0x04, 0x03, 0xF8, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x1B, 0xC0, 0x09, 0xE0, 0x0C, 0xF8, 0x04, 0x3C, 0x02, 0x1F, 0x03, 0xFF, 0x81, 0x03, 0xC1, 0x80, 0xF0, 0x80, 0x7D, 0xF0, 0xFF, 0xFF, 0xC0, 0xF3, 0xC3, 0xC7, 0x8F, 0x1E, 0x3C, 0x78, 0xF1, 0xE3, 0xCE, 0x0F, 0xF0, 0x3C, 0x70, 0xF0, 0xE3, 0xC3, 0xCF, 0x0F, 0x3C, 0x3C, 0xF0, 0xE3, 0xC7, 0xBF, 0xF8, 0x07, 0xE2, 0x38, 0x7C, 0xE0, 0x3B, 0xC0, 0x37, 0x00, 0x7E, 0x00, 0x7C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x03, 0x80, 0x07, 0x80, 0x27, 0x00, 0xC7, 0x86, 0x03, 0xF0, 0xFF, 0xE0, 0x1E, 0x1E, 0x0F, 0x07, 0x87, 0x81, 0xE3, 0xC0, 0xF1, 0xE0, 0x3C, 0xF0, 0x1E, 0x78, 0x0F, 0x3C, 0x07, 0x9E, 0x03, 0xCF, 0x01, 0xE7, 0x80, 0xE3, 0xC0, 0xF1, 0xE0, 0xF0, 0xF0, 0xE1, 0xFF, 0xC0, 0xFF, 0xFC, 0x78, 0x38, 0xF0, 0x31, 0xE0, 0x23, 0xC4, 0x07, 0x88, 0x0F, 0x30, 0x1F, 0xE0, 0x3C, 0xC0, 0x78, 0x80, 0xF1, 0x01, 0xE0, 0x23, 0xC0, 0x47, 0x81, 0x8F, 0x07, 0x7F, 0xFE, 0xFF, 0xFC, 0xF0, 0x73, 0xC0, 0xCF, 0x01, 0x3C, 0x40, 0xF1, 0x03, 0xCC, 0x0F, 0xF0, 0x3C, 0xC0, 0xF1, 0x03, 0xC4, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x3F, 0xC0, 0x07, 0xE2, 0x1C, 0x3E, 0x38, 0x0E, 0x78, 0x06, 0x70, 0x06, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x7F, 0xF0, 0x1E, 0x70, 0x1E, 0x78, 0x1E, 0x38, 0x1E, 0x1E, 0x1E, 0x07, 0xF0, 0xFE, 0xFF, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x7F, 0xFC, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0xFE, 0xFF, 0xFF, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xFF, 0x0F, 0xF0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0xE3, 0xCE, 0x38, 0xE3, 0x83, 0xE0, 0xFE, 0x7F, 0x3C, 0x0E, 0x1E, 0x04, 0x0F, 0x04, 0x07, 0x84, 0x03, 0xCC, 0x01, 0xEE, 0x00, 0xFF, 0x00, 0x7F, 0xC0, 0x3C, 0xF0, 0x1E, 0x7C, 0x0F, 0x1F, 0x07, 0x87, 0xC3, 0xC1, 0xF1, 0xE0, 0x7D, 0xFC, 0xFF, 0xFE, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x01, 0x78, 0x0D, 0xE0, 0x67, 0x83, 0xBF, 0xFE, 0xFC, 0x01, 0xF3, 0xC0, 0x3E, 0x3E, 0x03, 0xE2, 0xE0, 0x5E, 0x2F, 0x05, 0xE2, 0xF0, 0x5E, 0x27, 0x09, 0xE2, 0x78, 0x9E, 0x23, 0x91, 0xE2, 0x3D, 0x1E, 0x23, 0xF1, 0xE2, 0x1E, 0x1E, 0x21, 0xE1, 0xE2, 0x0C, 0x1E, 0x20, 0xC1, 0xEF, 0x88, 0x3F, 0xF8, 0x1E, 0xF8, 0x18, 0xF8, 0x11, 0xF8, 0x22, 0xF8, 0x45, 0xF0, 0x89, 0xF1, 0x11, 0xF2, 0x21, 0xF4, 0x41, 0xF8, 0x81, 0xF1, 0x01, 0xE2, 0x03, 0xC4, 0x03, 0x8C, 0x03, 0x7C, 0x02, 0x07, 0xF0, 0x0F, 0x1E, 0x0E, 0x03, 0x8F, 0x01, 0xE7, 0x00, 0x77, 0x80, 0x3F, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xEE, 0x00, 0xE7, 0x80, 0xF1, 0xC0, 0x70, 0x70, 0x70, 0x0F, 0xE0, 0xFF, 0x87, 0x9E, 0x78, 0xF7, 0x8F, 0x78, 0xF7, 0x8F, 0x78, 0xF7, 0x9E, 0x7F, 0x87, 0x80, 0x78, 0x07, 0x80, 0x78, 0x07, 0x80, 0x78, 0x0F, 0xE0, 0x07, 0xF0, 0x0F, 0x1E, 0x0E, 0x07, 0x8F, 0x01, 0xE7, 0x00, 0xF7, 0x80, 0x3F, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xEE, 0x00, 0xE7, 0x00, 0xF1, 0xC0, 0x70, 0x70, 0x70, 0x1C, 0xF0, 0x03, 0xE0, 0x01, 0xF8, 0x00, 0x3E, 0x00, 0x07, 0xE0, 0xFF, 0xE0, 0x3C, 0x78, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x38, 0x3C, 0x70, 0x3F, 0xC0, 0x3D, 0xE0, 0x3C, 0xF0, 0x3C, 0xF8, 0x3C, 0x78, 0x3C, 0x3C, 0x3C, 0x3E, 0xFF, 0x1F, 0x1F, 0x27, 0x0E, 0x60, 0x6E, 0x06, 0xF0, 0x2F, 0x80, 0x7F, 0x07, 0xFC, 0x1F, 0xE0, 0x7E, 0x01, 0xF8, 0x07, 0xC0, 0x7C, 0x06, 0xF0, 0xC9, 0xF8, 0xFF, 0xFF, 0xC7, 0x9F, 0x0F, 0x1C, 0x1E, 0x10, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x07, 0xF8, 0xFE, 0x1E, 0xF0, 0x09, 0xE0, 0x13, 0xC0, 0x27, 0x80, 0x4F, 0x00, 0x9E, 0x01, 0x3C, 0x02, 0x78, 0x04, 0xF0, 0x09, 0xE0, 0x13, 0xC0, 0x27, 0x80, 0x47, 0x81, 0x07, 0x84, 0x07, 0xF0, 0xFF, 0x0F, 0x9E, 0x03, 0x0F, 0x00, 0x83, 0xC0, 0x81, 0xE0, 0x40, 0xF8, 0x60, 0x3C, 0x20, 0x1E, 0x10, 0x07, 0x90, 0x03, 0xC8, 0x00, 0xF4, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0xFE, 0x7F, 0x9E, 0xF8, 0x3C, 0x08, 0xF0, 0x78, 0x31, 0xE0, 0xF0, 0x41, 0xE0, 0xF0, 0x83, 0xC3, 0xE3, 0x07, 0x85, 0xC4, 0x07, 0x93, 0xC8, 0x0F, 0x27, 0xB0, 0x0E, 0x47, 0x40, 0x1F, 0x0F, 0x80, 0x3E, 0x1F, 0x00, 0x38, 0x1C, 0x00, 0x70, 0x38, 0x00, 0xE0, 0x30, 0x00, 0x80, 0x40, 0xFF, 0x9F, 0x9F, 0x07, 0x07, 0x83, 0x03, 0xE3, 0x00, 0xF9, 0x00, 0x3D, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xE0, 0x00, 0xF8, 0x00, 0xBE, 0x00, 0x8F, 0x00, 0x83, 0xC0, 0xC1, 0xF0, 0xE0, 0xFD, 0xF8, 0xFF, 0xFF, 0x1F, 0x7C, 0x06, 0x3C, 0x04, 0x3E, 0x0C, 0x1E, 0x08, 0x0F, 0x10, 0x0F, 0x30, 0x07, 0xA0, 0x07, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x0F, 0xF0, 0x7F, 0xFC, 0xE0, 0xF1, 0x83, 0xE2, 0x07, 0x84, 0x1E, 0x00, 0x7C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x80, 0x1E, 0x00, 0x7C, 0x08, 0xF0, 0x13, 0xC0, 0x6F, 0x81, 0x9E, 0x07, 0x7F, 0xFE, 0xFF, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xF0, 0xC0, 0x60, 0x60, 0x60, 0x30, 0x30, 0x30, 0x18, 0x18, 0x18, 0x0C, 0x0C, 0x0C, 0x06, 0x06, 0x06, 0x03, 0xF9, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCF, 0xF0, 0x0C, 0x07, 0x81, 0xE0, 0xCC, 0x33, 0x18, 0x66, 0x1B, 0x87, 0xC0, 0xC0, 0xFF, 0xF0, 0xC7, 0x1C, 0x30, 0x1F, 0x0E, 0x71, 0xCF, 0x39, 0xE0, 0x3C, 0x1F, 0x8E, 0xF3, 0x9E, 0xF3, 0xDE, 0x79, 0xFF, 0x80, 0xF8, 0x07, 0x80, 0x78, 0x07, 0x80, 0x78, 0x07, 0xB8, 0x7D, 0xE7, 0x8E, 0x78, 0xF7, 0x8F, 0x78, 0xF7, 0x8F, 0x78, 0xF7, 0x8E, 0x79, 0xC4, 0x78, 0x1F, 0x1D, 0xDC, 0xFE, 0x7F, 0x07, 0x83, 0xC1, 0xE0, 0x78, 0x3C, 0x47, 0xC0, 0x03, 0xE0, 0x1E, 0x01, 0xE0, 0x1E, 0x01, 0xE1, 0xDE, 0x7B, 0xE7, 0x1E, 0xF1, 0xEF, 0x1E, 0xF1, 0xEF, 0x1E, 0xF1, 0xE7, 0x1E, 0x7B, 0xE1, 0xDF, 0x1F, 0x0C, 0x67, 0x1B, 0xC7, 0xFF, 0xFC, 0x0F, 0x03, 0xC0, 0x78, 0x4E, 0x21, 0xF0, 0x1E, 0x3B, 0x7B, 0x78, 0x78, 0xFC, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0xFC, 0x3E, 0x0E, 0x7F, 0xCE, 0x79, 0xEF, 0x3C, 0xE7, 0x0F, 0xC1, 0x00, 0x60, 0x1C, 0x03, 0xFE, 0x7F, 0xE3, 0xFF, 0x80, 0xF0, 0x33, 0xFC, 0xF8, 0x07, 0x80, 0x78, 0x07, 0x80, 0x78, 0x07, 0xB8, 0x7D, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xEF, 0xFF, 0x31, 0xE7, 0x8C, 0x03, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0xBF, 0x06, 0x0F, 0x0F, 0x06, 0x00, 0x1F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xCF, 0xCE, 0x7C, 0xF8, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0xF9, 0xE1, 0x8F, 0x10, 0x79, 0x03, 0xD8, 0x1F, 0xE0, 0xF7, 0x87, 0x9E, 0x3C, 0x71, 0xE3, 0xDF, 0xBF, 0xF9, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0xBF, 0xFB, 0xCF, 0x0F, 0xBE, 0x79, 0xE7, 0x8F, 0x3C, 0xF1, 0xE7, 0x9E, 0x3C, 0xF3, 0xC7, 0x9E, 0x78, 0xF3, 0xCF, 0x1E, 0x79, 0xE3, 0xCF, 0x3C, 0x7B, 0xFF, 0xDF, 0x80, 0xFB, 0x87, 0xDE, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0xFF, 0xF0, 0x1F, 0x07, 0x71, 0xC7, 0x78, 0xFF, 0x1F, 0xE3, 0xFC, 0x7F, 0x8F, 0x71, 0xC7, 0x70, 0x7C, 0x00, 0xFB, 0x87, 0xDE, 0x78, 0xE7, 0x8F, 0x78, 0xF7, 0x8F, 0x78, 0xF7, 0x8F, 0x78, 0xE7, 0x9E, 0x7F, 0x87, 0x80, 0x78, 0x07, 0x80, 0x78, 0x0F, 0xC0, 0x1E, 0x23, 0x9E, 0x71, 0xEF, 0x1E, 0xF1, 0xEF, 0x1E, 0xF1, 0xEF, 0x1E, 0x71, 0xE7, 0x9E, 0x1F, 0xE0, 0x1E, 0x01, 0xE0, 0x1E, 0x01, 0xE0, 0x3F, 0xF9, 0xDF, 0xF7, 0xDD, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x0F, 0xC0, 0x3D, 0x43, 0xC3, 0xE0, 0xFC, 0x7E, 0x1F, 0x87, 0x83, 0xC2, 0xBC, 0x08, 0x18, 0x38, 0x78, 0xFC, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x79, 0x3E, 0xFB, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x3F, 0xF0, 0xFC, 0xEF, 0x08, 0xE1, 0x1E, 0x41, 0xC8, 0x3D, 0x03, 0xC0, 0x78, 0x0E, 0x00, 0xC0, 0x10, 0x00, 0xFD, 0xF7, 0xBC, 0x71, 0x9E, 0x38, 0x87, 0x1E, 0x43, 0xCF, 0x40, 0xEB, 0xA0, 0x7C, 0xF0, 0x1C, 0x70, 0x0E, 0x38, 0x06, 0x08, 0x01, 0x04, 0x00, 0xFC, 0xF7, 0x84, 0x3C, 0x81, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x80, 0xBC, 0x13, 0xC2, 0x1E, 0xFB, 0xF0, 0xFC, 0xEF, 0x08, 0xE1, 0x1E, 0x43, 0xC8, 0x3A, 0x07, 0xC0, 0x78, 0x0E, 0x01, 0xC0, 0x18, 0x02, 0x00, 0x41, 0xC8, 0x3A, 0x03, 0x80, 0xFF, 0xB1, 0xE8, 0x70, 0x3C, 0x1E, 0x07, 0x83, 0xC1, 0xE0, 0x78, 0xBC, 0x2F, 0xF8, 0x07, 0x0E, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0xE0, 0x18, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1E, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xE0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x18, 0x07, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x70, 0xE0, 0x70, 0x1F, 0x8B, 0x3F, 0x01, 0xC0}; const GFXglyph FreeSerifBold12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 6, 0, 1}, // 0x20 ' ' {0, 4, 16, 8, 2, -15}, // 0x21 '!' {8, 9, 7, 13, 2, -15}, // 0x22 '"' {16, 12, 16, 12, 0, -15}, // 0x23 '#' {40, 11, 20, 12, 1, -17}, // 0x24 '$' {68, 18, 16, 24, 3, -15}, // 0x25 '%' {104, 18, 16, 20, 1, -15}, // 0x26 '&' {140, 3, 7, 7, 2, -15}, // 0x27 ''' {143, 6, 21, 8, 1, -16}, // 0x28 '(' {159, 6, 21, 8, 1, -16}, // 0x29 ')' {175, 9, 10, 12, 2, -15}, // 0x2A '*' {187, 12, 12, 16, 2, -11}, // 0x2B '+' {205, 4, 8, 6, 1, -3}, // 0x2C ',' {209, 6, 3, 8, 1, -6}, // 0x2D '-' {212, 4, 4, 6, 1, -3}, // 0x2E '.' {214, 8, 17, 7, -1, -15}, // 0x2F '/' {231, 11, 16, 12, 1, -15}, // 0x30 '0' {253, 9, 16, 12, 1, -15}, // 0x31 '1' {271, 12, 16, 12, 0, -15}, // 0x32 '2' {295, 11, 16, 12, 1, -15}, // 0x33 '3' {317, 10, 16, 12, 1, -15}, // 0x34 '4' {337, 11, 16, 12, 1, -15}, // 0x35 '5' {359, 11, 16, 12, 1, -15}, // 0x36 '6' {381, 11, 16, 12, 0, -15}, // 0x37 '7' {403, 11, 16, 12, 1, -15}, // 0x38 '8' {425, 11, 16, 12, 1, -15}, // 0x39 '9' {447, 4, 11, 8, 2, -10}, // 0x3A ':' {453, 4, 15, 8, 2, -10}, // 0x3B ';' {461, 14, 14, 16, 1, -12}, // 0x3C '<' {486, 14, 8, 16, 1, -9}, // 0x3D '=' {500, 14, 14, 16, 1, -12}, // 0x3E '>' {525, 10, 16, 12, 1, -15}, // 0x3F '?' {545, 16, 16, 22, 3, -15}, // 0x40 '@' {577, 17, 16, 17, 0, -15}, // 0x41 'A' {611, 14, 16, 16, 1, -15}, // 0x42 'B' {639, 15, 16, 17, 1, -15}, // 0x43 'C' {669, 17, 16, 18, 0, -15}, // 0x44 'D' {703, 15, 16, 16, 1, -15}, // 0x45 'E' {733, 14, 16, 15, 1, -15}, // 0x46 'F' {761, 16, 16, 19, 1, -15}, // 0x47 'G' {793, 16, 16, 19, 2, -15}, // 0x48 'H' {825, 8, 16, 9, 1, -15}, // 0x49 'I' {841, 12, 18, 12, 0, -15}, // 0x4A 'J' {868, 17, 16, 19, 2, -15}, // 0x4B 'K' {902, 14, 16, 16, 2, -15}, // 0x4C 'L' {930, 20, 16, 23, 1, -15}, // 0x4D 'M' {970, 15, 16, 17, 1, -15}, // 0x4E 'N' {1000, 17, 16, 19, 1, -15}, // 0x4F 'O' {1034, 12, 16, 15, 2, -15}, // 0x50 'P' {1058, 17, 20, 19, 1, -15}, // 0x51 'Q' {1101, 16, 16, 17, 1, -15}, // 0x52 'R' {1133, 12, 16, 14, 1, -15}, // 0x53 'S' {1157, 15, 16, 15, 0, -15}, // 0x54 'T' {1187, 15, 16, 17, 1, -15}, // 0x55 'U' {1217, 17, 17, 17, 0, -15}, // 0x56 'V' {1254, 23, 16, 24, 0, -15}, // 0x57 'W' {1300, 17, 16, 17, 0, -15}, // 0x58 'X' {1334, 16, 16, 17, 1, -15}, // 0x59 'Y' {1366, 15, 16, 16, 0, -15}, // 0x5A 'Z' {1396, 5, 20, 8, 2, -15}, // 0x5B '[' {1409, 8, 17, 7, -1, -15}, // 0x5C '\' {1426, 5, 20, 8, 2, -15}, // 0x5D ']' {1439, 10, 9, 14, 2, -15}, // 0x5E '^' {1451, 12, 1, 12, 0, 4}, // 0x5F '_' {1453, 5, 4, 8, 0, -16}, // 0x60 '`' {1456, 11, 11, 12, 1, -10}, // 0x61 'a' {1472, 12, 16, 13, 1, -15}, // 0x62 'b' {1496, 9, 11, 10, 1, -10}, // 0x63 'c' {1509, 12, 16, 13, 1, -15}, // 0x64 'd' {1533, 10, 11, 11, 1, -10}, // 0x65 'e' {1547, 8, 16, 9, 1, -15}, // 0x66 'f' {1563, 11, 16, 12, 1, -10}, // 0x67 'g' {1585, 12, 16, 13, 1, -15}, // 0x68 'h' {1609, 6, 16, 7, 1, -15}, // 0x69 'i' {1621, 8, 21, 10, 0, -15}, // 0x6A 'j' {1642, 13, 16, 13, 1, -15}, // 0x6B 'k' {1668, 6, 16, 7, 1, -15}, // 0x6C 'l' {1680, 19, 11, 20, 1, -10}, // 0x6D 'm' {1707, 12, 11, 13, 1, -10}, // 0x6E 'n' {1724, 11, 11, 12, 1, -10}, // 0x6F 'o' {1740, 12, 16, 13, 1, -10}, // 0x70 'p' {1764, 12, 16, 13, 1, -10}, // 0x71 'q' {1788, 10, 11, 10, 1, -10}, // 0x72 'r' {1802, 8, 11, 10, 1, -10}, // 0x73 's' {1813, 8, 15, 8, 1, -14}, // 0x74 't' {1828, 12, 11, 14, 1, -10}, // 0x75 'u' {1845, 11, 11, 12, 0, -10}, // 0x76 'v' {1861, 17, 11, 17, 0, -10}, // 0x77 'w' {1885, 12, 11, 12, 0, -10}, // 0x78 'x' {1902, 11, 16, 12, 0, -10}, // 0x79 'y' {1924, 10, 11, 11, 1, -10}, // 0x7A 'z' {1938, 8, 21, 9, 0, -16}, // 0x7B '{' {1959, 2, 17, 5, 2, -15}, // 0x7C '|' {1964, 8, 21, 9, 2, -16}, // 0x7D '}' {1985, 11, 4, 12, 1, -7}}; // 0x7E '~' const GFXfont FreeSerifBold12pt7b PROGMEM = { (uint8_t *)FreeSerifBold12pt7bBitmaps, (GFXglyph *)FreeSerifBold12pt7bGlyphs, 0x20, 0x7E, 29}; // Approx. 2663 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifBold18pt7b.h ================================================ const uint8_t FreeSerifBold18pt7bBitmaps[] PROGMEM = { 0x7B, 0xEF, 0xFF, 0xFF, 0xF7, 0x9E, 0x71, 0xC7, 0x0C, 0x20, 0x82, 0x00, 0x00, 0x07, 0x3E, 0xFF, 0xFF, 0xDC, 0x60, 0x37, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xB8, 0x3D, 0xC0, 0xCC, 0x06, 0x20, 0x31, 0x01, 0x80, 0x03, 0x8E, 0x00, 0xC3, 0x80, 0x30, 0xE0, 0x1C, 0x38, 0x07, 0x0E, 0x01, 0xC3, 0x87, 0xFF, 0xFD, 0xFF, 0xFF, 0x7F, 0xFF, 0xC1, 0x87, 0x00, 0xE1, 0xC0, 0x38, 0x70, 0x0E, 0x1C, 0x03, 0x86, 0x0F, 0xFF, 0xF3, 0xFF, 0xFC, 0xFF, 0xFF, 0x07, 0x0E, 0x01, 0xC3, 0x80, 0x70, 0xE0, 0x1C, 0x30, 0x07, 0x0C, 0x01, 0x87, 0x00, 0x61, 0xC0, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0xFF, 0x03, 0x27, 0x8C, 0x47, 0x38, 0x86, 0x71, 0x0C, 0xF2, 0x09, 0xF4, 0x03, 0xF8, 0x03, 0xF8, 0x07, 0xFC, 0x03, 0xFC, 0x03, 0xFE, 0x01, 0xFE, 0x03, 0xFC, 0x04, 0xFC, 0x08, 0xFA, 0x10, 0xF4, 0x21, 0xEC, 0x43, 0xD8, 0x8F, 0x3D, 0x3C, 0x3F, 0xF0, 0x1F, 0x00, 0x08, 0x00, 0x10, 0x00, 0x03, 0xC0, 0x18, 0x01, 0xFE, 0x0F, 0x00, 0x7C, 0xFF, 0xC0, 0x1F, 0x0F, 0x90, 0x07, 0xC1, 0x06, 0x00, 0xF0, 0x21, 0x80, 0x3E, 0x04, 0x30, 0x07, 0x81, 0x8C, 0x00, 0xF0, 0x21, 0x80, 0x1E, 0x0C, 0x60, 0x03, 0xC1, 0x18, 0x1E, 0x3C, 0xE3, 0x0F, 0xE7, 0xF8, 0xC3, 0xE6, 0x3C, 0x18, 0xF8, 0x40, 0x06, 0x3E, 0x08, 0x01, 0x87, 0x81, 0x00, 0x31, 0xF0, 0x20, 0x0C, 0x3E, 0x04, 0x01, 0x87, 0x81, 0x00, 0x60, 0xF0, 0x60, 0x18, 0x1E, 0x08, 0x03, 0x03, 0xC7, 0x00, 0xC0, 0x3F, 0xC0, 0x18, 0x03, 0xE0, 0x00, 0x7E, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x38, 0xF8, 0x00, 0x1E, 0x1F, 0x00, 0x07, 0x83, 0xC0, 0x01, 0xF0, 0xF0, 0x00, 0x7C, 0x38, 0x00, 0x1F, 0x9C, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFE, 0x0F, 0xF0, 0x3F, 0x80, 0xF0, 0x1F, 0xF0, 0x18, 0x1C, 0xFE, 0x0C, 0x0E, 0x1F, 0xC3, 0x07, 0x87, 0xF1, 0x81, 0xE0, 0xFE, 0x40, 0xF8, 0x1F, 0xF0, 0x3F, 0x07, 0xF8, 0x0F, 0xC0, 0xFE, 0x03, 0xF8, 0x1F, 0xC0, 0xFE, 0x07, 0xF8, 0x9F, 0xE3, 0xFF, 0xE7, 0xFF, 0x9F, 0xF0, 0xFF, 0xC3, 0xF8, 0x0F, 0x80, 0x3C, 0x00, 0x6F, 0xFF, 0xFF, 0x66, 0x66, 0x00, 0x81, 0x81, 0x81, 0x81, 0x80, 0xC0, 0xE0, 0x70, 0x70, 0x38, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x0E, 0x07, 0x03, 0x80, 0xE0, 0x70, 0x18, 0x06, 0x01, 0x00, 0x40, 0x10, 0x04, 0x80, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x60, 0x38, 0x1C, 0x07, 0x03, 0x81, 0xC0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xE0, 0x70, 0x38, 0x38, 0x1C, 0x0C, 0x0C, 0x06, 0x04, 0x04, 0x04, 0x00, 0x03, 0x00, 0x1E, 0x00, 0x78, 0x1D, 0xE6, 0xFB, 0x3D, 0xED, 0xF3, 0xFF, 0x01, 0xC0, 0x7F, 0xF3, 0xED, 0xFF, 0x33, 0xD9, 0xE6, 0x07, 0x80, 0x1E, 0x00, 0x30, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x73, 0xEF, 0xFF, 0xFD, 0xF0, 0xC2, 0x18, 0xC6, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0x7B, 0xFF, 0xFF, 0xFD, 0xE0, 0x00, 0xE0, 0x3C, 0x07, 0x00, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x00, 0x03, 0xC0, 0x0E, 0x70, 0x1E, 0x78, 0x3C, 0x3C, 0x3C, 0x3C, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x3C, 0x3C, 0x3C, 0x3C, 0x1E, 0x78, 0x0E, 0x70, 0x03, 0xC0, 0x00, 0xC0, 0x3C, 0x0F, 0xC3, 0xFC, 0x4F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x1F, 0xEF, 0xFF, 0x03, 0xE0, 0x0F, 0xF8, 0x1F, 0xFC, 0x3F, 0xFC, 0x30, 0xFE, 0x60, 0x7E, 0x40, 0x3E, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x78, 0x00, 0x70, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x01, 0x0C, 0x03, 0x1F, 0xFF, 0x1F, 0xFF, 0x3F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFE, 0x03, 0xF0, 0x0F, 0xF8, 0x3F, 0xFC, 0x21, 0xFE, 0x40, 0xFE, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xFC, 0x03, 0xFE, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0E, 0x70, 0x0E, 0xFC, 0x1C, 0xFE, 0x38, 0x7F, 0xE0, 0x3F, 0x80, 0x00, 0x38, 0x00, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x1F, 0x80, 0x5F, 0x00, 0xBE, 0x02, 0x7C, 0x08, 0xF8, 0x31, 0xF0, 0x43, 0xE1, 0x07, 0xC4, 0x0F, 0x88, 0x1F, 0x20, 0x3E, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x0F, 0xFE, 0x1F, 0xF8, 0x7F, 0xF0, 0xFF, 0xE1, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x3F, 0x80, 0xFF, 0xC1, 0xFF, 0xC3, 0xFF, 0xC3, 0xFF, 0x80, 0x3F, 0x80, 0x0F, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x18, 0x00, 0x37, 0x80, 0x4F, 0x81, 0x9F, 0xC6, 0x3F, 0xF8, 0x1F, 0x80, 0x00, 0x07, 0x00, 0x7C, 0x01, 0xF0, 0x03, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x7E, 0x00, 0x7F, 0xF0, 0x7F, 0xFC, 0xFC, 0x7E, 0xFC, 0x7E, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0x7C, 0x3F, 0x7C, 0x3E, 0x3C, 0x3E, 0x3E, 0x3C, 0x1E, 0x78, 0x07, 0xE0, 0x7F, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFE, 0xFF, 0xFC, 0xC0, 0x1C, 0x80, 0x18, 0x80, 0x38, 0x00, 0x38, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0x80, 0x03, 0x80, 0x07, 0x80, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x0F, 0xE0, 0x38, 0x78, 0x70, 0x3C, 0xF0, 0x1E, 0xF0, 0x1E, 0xF8, 0x1E, 0xF8, 0x1E, 0xFE, 0x3C, 0x7F, 0xB0, 0x7F, 0xE0, 0x3F, 0xF0, 0x0F, 0xF8, 0x1F, 0xFC, 0x39, 0xFE, 0x70, 0xFF, 0xF0, 0x3F, 0xF0, 0x3F, 0xF0, 0x1F, 0xF0, 0x1F, 0xF0, 0x1E, 0x78, 0x3E, 0x7C, 0x7C, 0x3F, 0xF8, 0x0F, 0xE0, 0x07, 0xE0, 0x1E, 0x78, 0x3C, 0x7C, 0x7C, 0x3C, 0x7C, 0x3E, 0xFC, 0x3E, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0x7E, 0x3F, 0x7E, 0x3F, 0x3F, 0xFE, 0x0F, 0xFE, 0x00, 0x7E, 0x00, 0x7C, 0x00, 0xF8, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xC0, 0x0F, 0x80, 0x3E, 0x00, 0xE0, 0x00, 0x7B, 0xFF, 0xFF, 0xFD, 0xE0, 0x00, 0x00, 0x07, 0xBF, 0xFF, 0xFF, 0xDE, 0x39, 0xFB, 0xF7, 0xEF, 0xC7, 0x00, 0x00, 0x00, 0x01, 0xE7, 0xEF, 0xFF, 0xFF, 0xBF, 0x06, 0x08, 0x30, 0xC2, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x0F, 0x80, 0x07, 0xF0, 0x03, 0xFC, 0x01, 0xFE, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x03, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0x7C, 0x00, 0x01, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x18, 0x00, 0x03, 0xE0, 0x00, 0x7F, 0x00, 0x07, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x0F, 0xE0, 0x07, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x00, 0xFE, 0x00, 0x1F, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0xFF, 0xC7, 0x1F, 0xB8, 0x3E, 0xF0, 0xFF, 0xC3, 0xFF, 0x0F, 0xD8, 0x3F, 0x00, 0xF8, 0x07, 0xC0, 0x1E, 0x00, 0x60, 0x03, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x03, 0xE0, 0x1F, 0x80, 0x7E, 0x01, 0xF8, 0x01, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xE0, 0x07, 0xC0, 0xF0, 0x0F, 0x00, 0x38, 0x1E, 0x00, 0x0C, 0x3C, 0x07, 0x06, 0x38, 0x1F, 0x72, 0x78, 0x3C, 0xF3, 0x78, 0x78, 0xE1, 0xF0, 0x70, 0xE1, 0xF0, 0xF0, 0xE1, 0xF0, 0xE0, 0xC1, 0xF1, 0xE1, 0xC1, 0xF1, 0xC1, 0xC1, 0xF1, 0xC3, 0x82, 0xF1, 0xC3, 0x86, 0x71, 0xC7, 0x8C, 0x79, 0xFB, 0xF8, 0x78, 0xF1, 0xF0, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0xC0, 0x78, 0x03, 0xFF, 0xE0, 0x00, 0x7F, 0x80, 0x00, 0x10, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x78, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xBF, 0x00, 0x01, 0xBF, 0x00, 0x01, 0x1F, 0x00, 0x03, 0x1F, 0x80, 0x02, 0x1F, 0x80, 0x06, 0x0F, 0xC0, 0x06, 0x0F, 0xC0, 0x04, 0x07, 0xE0, 0x0F, 0xFF, 0xE0, 0x0F, 0xFF, 0xE0, 0x18, 0x03, 0xF0, 0x18, 0x03, 0xF0, 0x30, 0x01, 0xF8, 0x30, 0x01, 0xF8, 0x70, 0x01, 0xFC, 0xFE, 0x0F, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0xFE, 0x0F, 0xE1, 0xF8, 0x3F, 0x07, 0xC1, 0xF8, 0x3F, 0x0F, 0xC1, 0xF8, 0x7E, 0x0F, 0xC3, 0xF0, 0x7E, 0x1F, 0x87, 0xE0, 0xFC, 0x7C, 0x07, 0xFF, 0x00, 0x3F, 0xFF, 0x01, 0xF8, 0xFE, 0x0F, 0xC1, 0xF8, 0x7E, 0x0F, 0xC3, 0xF0, 0x3F, 0x1F, 0x81, 0xF8, 0xFC, 0x0F, 0xC7, 0xE0, 0x7E, 0x3F, 0x03, 0xF1, 0xF8, 0x3F, 0x0F, 0xC3, 0xF0, 0xFF, 0xFF, 0x1F, 0xFF, 0xC0, 0x00, 0x7E, 0x04, 0x07, 0xFF, 0x18, 0x1F, 0x07, 0xF0, 0x7C, 0x03, 0xE1, 0xF0, 0x03, 0xC7, 0xC0, 0x03, 0x9F, 0x80, 0x03, 0x3F, 0x00, 0x06, 0x7C, 0x00, 0x05, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x23, 0xF0, 0x00, 0xC3, 0xF0, 0x07, 0x03, 0xF0, 0x3C, 0x01, 0xFF, 0xE0, 0x00, 0xFF, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0x7E, 0x1F, 0x80, 0xFC, 0x1F, 0x81, 0xF8, 0x1F, 0x83, 0xF0, 0x1F, 0x07, 0xE0, 0x3F, 0x0F, 0xC0, 0x7E, 0x1F, 0x80, 0x7E, 0x3F, 0x00, 0xFC, 0x7E, 0x01, 0xF8, 0xFC, 0x03, 0xF1, 0xF8, 0x07, 0xE3, 0xF0, 0x0F, 0xC7, 0xE0, 0x1F, 0x8F, 0xC0, 0x3F, 0x1F, 0x80, 0x7C, 0x3F, 0x01, 0xF8, 0x7E, 0x03, 0xE0, 0xFC, 0x0F, 0x81, 0xF8, 0x1F, 0x03, 0xF0, 0xFC, 0x0F, 0xFF, 0xE0, 0x7F, 0xFF, 0x00, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x0F, 0xC0, 0x78, 0x7E, 0x01, 0xC3, 0xF0, 0x06, 0x1F, 0x80, 0x10, 0xFC, 0x10, 0x87, 0xE0, 0x80, 0x3F, 0x0C, 0x01, 0xF8, 0xE0, 0x0F, 0xFF, 0x00, 0x7F, 0xF8, 0x03, 0xF1, 0xC0, 0x1F, 0x86, 0x00, 0xFC, 0x10, 0x07, 0xE0, 0x80, 0x3F, 0x00, 0x09, 0xF8, 0x00, 0xCF, 0xC0, 0x0C, 0x7E, 0x00, 0x63, 0xF0, 0x0F, 0x1F, 0x81, 0xFB, 0xFF, 0xFF, 0xDF, 0xFF, 0xFC, 0xFF, 0xFF, 0xEF, 0xFF, 0xFC, 0xFC, 0x0F, 0x9F, 0x80, 0x73, 0xF0, 0x06, 0x7E, 0x00, 0x4F, 0xC1, 0x09, 0xF8, 0x20, 0x3F, 0x0C, 0x07, 0xE3, 0x80, 0xFF, 0xF0, 0x1F, 0xFE, 0x03, 0xF1, 0xC0, 0x7E, 0x18, 0x0F, 0xC1, 0x01, 0xF8, 0x20, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x1F, 0xE0, 0x07, 0xFF, 0x00, 0x00, 0x7E, 0x02, 0x01, 0xFF, 0xE3, 0x01, 0xF0, 0x3F, 0x81, 0xF0, 0x07, 0xC1, 0xF0, 0x01, 0xE1, 0xF0, 0x00, 0x71, 0xF8, 0x00, 0x18, 0xFC, 0x00, 0x0C, 0x7C, 0x00, 0x02, 0x7E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xF0, 0x0F, 0xFF, 0xF8, 0x01, 0xFE, 0x7C, 0x00, 0x7E, 0x3F, 0x00, 0x3F, 0x1F, 0x80, 0x1F, 0x87, 0xC0, 0x0F, 0xC1, 0xF0, 0x07, 0xE0, 0xFC, 0x03, 0xF0, 0x1F, 0x83, 0xF0, 0x07, 0xFF, 0xE0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0xC3, 0xFF, 0x7F, 0x81, 0xFE, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0xFC, 0x7F, 0x81, 0xFE, 0xFF, 0xC3, 0xFF, 0xFF, 0xEF, 0xF0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x1F, 0xE7, 0xFF, 0x07, 0xFF, 0x01, 0xFE, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x70, 0xFC, 0xF8, 0xFC, 0xF8, 0xF8, 0xF0, 0xF8, 0x71, 0xF0, 0x7F, 0xE0, 0x1F, 0x80, 0xFF, 0xC3, 0xFF, 0x3F, 0xC0, 0x3E, 0x0F, 0xC0, 0x1C, 0x07, 0xE0, 0x18, 0x03, 0xF0, 0x18, 0x01, 0xF8, 0x18, 0x00, 0xFC, 0x18, 0x00, 0x7E, 0x18, 0x00, 0x3F, 0x18, 0x00, 0x1F, 0x9C, 0x00, 0x0F, 0xDF, 0x00, 0x07, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x01, 0xF9, 0xF8, 0x00, 0xFC, 0xFE, 0x00, 0x7E, 0x3F, 0x80, 0x3F, 0x0F, 0xE0, 0x1F, 0x83, 0xF8, 0x0F, 0xC0, 0xFC, 0x07, 0xE0, 0x7F, 0x03, 0xF0, 0x1F, 0xC1, 0xF8, 0x07, 0xF1, 0xFE, 0x03, 0xFD, 0xFF, 0x8F, 0xFF, 0xFF, 0xE0, 0x03, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x01, 0x3F, 0x00, 0x19, 0xF8, 0x00, 0xCF, 0xC0, 0x0C, 0x7E, 0x00, 0x63, 0xF0, 0x0F, 0x1F, 0x81, 0xFB, 0xFF, 0xFF, 0xDF, 0xFF, 0xFE, 0xFF, 0x80, 0x03, 0xFE, 0x7F, 0x00, 0x07, 0xF8, 0x7E, 0x00, 0x0F, 0xE0, 0xFE, 0x00, 0x3F, 0xC1, 0x7C, 0x00, 0x5F, 0x82, 0xFC, 0x01, 0xBF, 0x05, 0xF8, 0x02, 0x7E, 0x09, 0xF8, 0x0C, 0xFC, 0x13, 0xF0, 0x11, 0xF8, 0x23, 0xE0, 0x23, 0xF0, 0x47, 0xE0, 0xC7, 0xE0, 0x87, 0xC1, 0x0F, 0xC1, 0x0F, 0xC6, 0x1F, 0x82, 0x0F, 0x88, 0x3F, 0x04, 0x1F, 0xB0, 0x7E, 0x08, 0x3F, 0x60, 0xFC, 0x10, 0x3E, 0x81, 0xF8, 0x20, 0x7F, 0x03, 0xF0, 0x40, 0x7C, 0x07, 0xE0, 0x80, 0xF8, 0x0F, 0xC1, 0x00, 0xE0, 0x1F, 0x82, 0x01, 0xC0, 0x3F, 0x0E, 0x03, 0x80, 0xFF, 0x7F, 0x82, 0x03, 0xFF, 0xFE, 0x00, 0xFE, 0xFE, 0x00, 0x70, 0xFE, 0x00, 0x40, 0xFE, 0x00, 0x81, 0xFC, 0x01, 0x03, 0xFC, 0x02, 0x05, 0xFC, 0x04, 0x09, 0xFC, 0x08, 0x11, 0xFC, 0x10, 0x23, 0xF8, 0x20, 0x43, 0xF8, 0x40, 0x83, 0xF8, 0x81, 0x03, 0xF9, 0x02, 0x03, 0xFA, 0x04, 0x03, 0xF4, 0x08, 0x07, 0xF8, 0x10, 0x07, 0xF0, 0x20, 0x07, 0xE0, 0x40, 0x07, 0xC0, 0x80, 0x07, 0x81, 0x00, 0x0F, 0x02, 0x00, 0x0E, 0x0E, 0x00, 0x0C, 0x7F, 0x00, 0x08, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xF0, 0x7C, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x07, 0xC1, 0xF0, 0x01, 0xF1, 0xF8, 0x00, 0xFC, 0xFC, 0x00, 0x7E, 0x7C, 0x00, 0x1F, 0x7E, 0x00, 0x0F, 0xFF, 0x00, 0x07, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x01, 0xFF, 0xE0, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0x7C, 0x00, 0x1F, 0x3E, 0x00, 0x1F, 0x9F, 0x80, 0x0F, 0xC7, 0xC0, 0x07, 0xC1, 0xF0, 0x07, 0xC0, 0xFC, 0x07, 0xE0, 0x3F, 0x07, 0xC0, 0x07, 0xFF, 0xC0, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0xFC, 0x0F, 0xFF, 0xE0, 0xFC, 0x7E, 0x1F, 0x87, 0xE3, 0xF0, 0x7E, 0x7E, 0x0F, 0xCF, 0xC1, 0xF9, 0xF8, 0x3F, 0x3F, 0x07, 0xE7, 0xE0, 0xFC, 0xFC, 0x3F, 0x1F, 0x8F, 0xC3, 0xFF, 0xF0, 0x7F, 0xF8, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x1F, 0xE0, 0x07, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xF0, 0x7C, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x07, 0xC1, 0xF0, 0x01, 0xF1, 0xF8, 0x00, 0xFC, 0xFC, 0x00, 0x7E, 0x7C, 0x00, 0x1F, 0x7E, 0x00, 0x0F, 0xFF, 0x00, 0x07, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x01, 0xFF, 0xE0, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0x7C, 0x00, 0x1F, 0x3E, 0x00, 0x0F, 0x9F, 0x80, 0x0F, 0xC7, 0xC0, 0x07, 0xC1, 0xF0, 0x07, 0xC0, 0x78, 0x03, 0xC0, 0x1E, 0x07, 0xC0, 0x03, 0xFF, 0x80, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFF, 0xF8, 0x00, 0x0F, 0xE0, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0xFC, 0x3F, 0x01, 0xF8, 0x3F, 0x03, 0xF0, 0x3F, 0x07, 0xE0, 0x7E, 0x0F, 0xC0, 0xFC, 0x1F, 0x81, 0xF8, 0x3F, 0x03, 0xF0, 0x7E, 0x07, 0xC0, 0xFC, 0x1F, 0x81, 0xF8, 0x7E, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x0F, 0xDF, 0xC0, 0x1F, 0x9F, 0x80, 0x3F, 0x1F, 0x80, 0x7E, 0x3F, 0x80, 0xFC, 0x3F, 0x81, 0xF8, 0x3F, 0x03, 0xF0, 0x7F, 0x07, 0xE0, 0x7F, 0x1F, 0xE0, 0x7F, 0x7F, 0xE0, 0xFF, 0x07, 0xC2, 0x1F, 0xF2, 0x3C, 0x3E, 0x70, 0x0E, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x02, 0xF8, 0x00, 0xFE, 0x00, 0xFF, 0x80, 0x7F, 0xE0, 0x3F, 0xF8, 0x1F, 0xFC, 0x0F, 0xFE, 0x03, 0xFE, 0x00, 0xFF, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x0F, 0xC0, 0x0F, 0xE0, 0x0E, 0xF0, 0x1E, 0xF8, 0x3C, 0x9F, 0xF8, 0x87, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7E, 0x3F, 0x83, 0xF0, 0x7C, 0x1F, 0x81, 0xC0, 0xFC, 0x06, 0x07, 0xE0, 0x20, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x0F, 0xF0, 0x01, 0xFF, 0xE0, 0xFF, 0xC1, 0xFD, 0xFE, 0x01, 0xC3, 0xF0, 0x02, 0x0F, 0xC0, 0x08, 0x3F, 0x00, 0x20, 0xFC, 0x00, 0x83, 0xF0, 0x02, 0x0F, 0xC0, 0x08, 0x3F, 0x00, 0x20, 0xFC, 0x00, 0x83, 0xF0, 0x02, 0x0F, 0xC0, 0x08, 0x3F, 0x00, 0x20, 0xFC, 0x00, 0x83, 0xF0, 0x02, 0x0F, 0xC0, 0x08, 0x3F, 0x00, 0x20, 0xFC, 0x00, 0x83, 0xF0, 0x02, 0x0F, 0xC0, 0x18, 0x1F, 0x80, 0x40, 0x7E, 0x03, 0x00, 0xFC, 0x18, 0x01, 0xFF, 0xC0, 0x00, 0xFC, 0x00, 0xFF, 0xF0, 0x7F, 0x3F, 0xC0, 0x1E, 0x1F, 0x80, 0x0C, 0x1F, 0x80, 0x08, 0x0F, 0xC0, 0x18, 0x0F, 0xC0, 0x18, 0x07, 0xE0, 0x10, 0x07, 0xE0, 0x30, 0x07, 0xE0, 0x20, 0x03, 0xF0, 0x60, 0x03, 0xF0, 0x60, 0x01, 0xF8, 0x40, 0x01, 0xF8, 0xC0, 0x00, 0xF8, 0x80, 0x00, 0xFC, 0x80, 0x00, 0xFD, 0x80, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x0C, 0x00, 0xFF, 0xE7, 0xFF, 0x0F, 0xCF, 0xE0, 0x7F, 0x00, 0xE1, 0xF8, 0x0F, 0xC0, 0x30, 0x7E, 0x03, 0xF0, 0x0C, 0x1F, 0x80, 0x7C, 0x02, 0x03, 0xE0, 0x1F, 0x81, 0x80, 0xFC, 0x07, 0xE0, 0x60, 0x3F, 0x03, 0xF8, 0x10, 0x07, 0xC0, 0xBF, 0x0C, 0x01, 0xF8, 0x2F, 0xC3, 0x00, 0x7E, 0x19, 0xF0, 0x80, 0x0F, 0x84, 0x7C, 0x60, 0x03, 0xF3, 0x0F, 0x98, 0x00, 0xFC, 0xC3, 0xE4, 0x00, 0x1F, 0x20, 0xFB, 0x00, 0x07, 0xF8, 0x1F, 0xC0, 0x00, 0xFC, 0x07, 0xE0, 0x00, 0x3F, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x3E, 0x00, 0x01, 0xE0, 0x0F, 0x00, 0x00, 0x78, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x70, 0x00, 0x03, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x06, 0x00, 0x00, 0x20, 0x00, 0x80, 0x00, 0xFF, 0xF3, 0xFE, 0x7F, 0x80, 0x78, 0x3F, 0x80, 0x70, 0x1F, 0xC0, 0x60, 0x0F, 0xC0, 0xC0, 0x0F, 0xE1, 0x80, 0x07, 0xF1, 0x00, 0x03, 0xF3, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x9F, 0x80, 0x01, 0x8F, 0xC0, 0x03, 0x0F, 0xE0, 0x06, 0x07, 0xE0, 0x06, 0x07, 0xF0, 0x0C, 0x03, 0xF8, 0x1C, 0x03, 0xF8, 0x3C, 0x03, 0xFC, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0x7F, 0x80, 0x1E, 0x3F, 0x80, 0x1C, 0x1F, 0x80, 0x18, 0x1F, 0xC0, 0x10, 0x0F, 0xC0, 0x30, 0x07, 0xE0, 0x20, 0x07, 0xE0, 0x60, 0x03, 0xF0, 0xC0, 0x03, 0xF0, 0x80, 0x01, 0xF9, 0x80, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x7F, 0xFF, 0xF3, 0xFF, 0xFF, 0x9F, 0x01, 0xF8, 0xE0, 0x1F, 0x86, 0x01, 0xFC, 0x20, 0x0F, 0xC1, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xF8, 0x00, 0x1F, 0x80, 0x01, 0xFC, 0x01, 0x0F, 0xC0, 0x18, 0xFC, 0x00, 0xC7, 0xE0, 0x06, 0x7E, 0x00, 0x77, 0xF0, 0x07, 0x3F, 0x00, 0xFB, 0xFF, 0xFF, 0xDF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xE0, 0x1E, 0x01, 0xC0, 0x38, 0x07, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x1C, 0x03, 0x80, 0x70, 0x07, 0x00, 0xE0, 0x1C, 0x01, 0xC0, 0x38, 0x07, 0x00, 0x70, 0x0E, 0x01, 0xC0, 0x1C, 0x03, 0x80, 0x70, 0x0F, 0x00, 0xE0, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0x03, 0x80, 0x0F, 0x00, 0x1F, 0x00, 0x7E, 0x00, 0xEE, 0x03, 0x9C, 0x07, 0x1C, 0x1C, 0x38, 0x38, 0x38, 0xE0, 0x71, 0xC0, 0x77, 0x00, 0xEE, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xE0, 0xF0, 0x78, 0x3C, 0x0E, 0x07, 0x0F, 0xE0, 0x3F, 0xF0, 0x78, 0xF8, 0x78, 0x7C, 0x78, 0x7C, 0x38, 0x7C, 0x00, 0x7C, 0x03, 0xFC, 0x1E, 0x7C, 0x7C, 0x7C, 0xFC, 0x7C, 0xFC, 0x7C, 0xFC, 0xFC, 0xFF, 0xFD, 0x7F, 0x7F, 0x3C, 0x3C, 0xFC, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0xF8, 0x1F, 0x7F, 0x87, 0xE3, 0xF1, 0xF0, 0x7E, 0x7C, 0x0F, 0x9F, 0x03, 0xF7, 0xC0, 0xFD, 0xF0, 0x3F, 0x7C, 0x0F, 0xDF, 0x03, 0xF7, 0xC0, 0xFD, 0xF0, 0x3E, 0x7C, 0x1F, 0x1F, 0x8F, 0xC6, 0x7F, 0xC1, 0x07, 0xC0, 0x07, 0xC0, 0x7F, 0xC3, 0xC7, 0x9F, 0x1E, 0x78, 0x7B, 0xE1, 0xCF, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3F, 0x00, 0x7C, 0x00, 0xFC, 0x61, 0xFF, 0x03, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x07, 0x9F, 0x07, 0xF7, 0xC3, 0xE3, 0xF1, 0xF8, 0x7C, 0x7C, 0x1F, 0x3F, 0x07, 0xCF, 0xC1, 0xF3, 0xF0, 0x7C, 0xFC, 0x1F, 0x3F, 0x07, 0xCF, 0xC1, 0xF1, 0xF0, 0x7C, 0x7E, 0x1F, 0x0F, 0x8F, 0xC1, 0xFD, 0xFC, 0x3E, 0x70, 0x0F, 0xC0, 0x7F, 0xC3, 0xC7, 0x1E, 0x1E, 0xF8, 0x7B, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0xC0, 0x1F, 0x03, 0x7E, 0x18, 0xFF, 0xC1, 0xFE, 0x03, 0xF0, 0x0F, 0x83, 0xF8, 0xF3, 0xBE, 0xF7, 0xDC, 0xF8, 0x1F, 0x03, 0xE0, 0xFF, 0x1F, 0xE1, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x07, 0xF8, 0x0F, 0xC0, 0x1F, 0xFF, 0xDF, 0x1F, 0xFF, 0x07, 0x8F, 0x83, 0xE7, 0xC1, 0xF3, 0xE0, 0xF9, 0xF0, 0x7C, 0x78, 0x3C, 0x1E, 0x3E, 0x03, 0xFC, 0x03, 0x00, 0x07, 0x00, 0x07, 0x80, 0x03, 0xFF, 0xF1, 0xFF, 0xFE, 0x7F, 0xFF, 0x8F, 0xFF, 0xF8, 0x01, 0xFC, 0x00, 0x7F, 0x00, 0x73, 0xFF, 0xF0, 0x7F, 0xC0, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x7C, 0x3E, 0xFF, 0x1F, 0xCF, 0xCF, 0x83, 0xE7, 0xC1, 0xF3, 0xE0, 0xF9, 0xF0, 0x7C, 0xF8, 0x3E, 0x7C, 0x1F, 0x3E, 0x0F, 0x9F, 0x07, 0xCF, 0x83, 0xE7, 0xC1, 0xF3, 0xE0, 0xF9, 0xF0, 0x7D, 0xFC, 0x7F, 0x39, 0xFB, 0xF7, 0xE7, 0x80, 0x00, 0x00, 0xFC, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x3E, 0x7C, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x7F, 0x03, 0xC0, 0xFC, 0x1F, 0x83, 0xF0, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7D, 0xCF, 0xF9, 0xEE, 0x7C, 0xFF, 0x0F, 0x80, 0xFC, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x7F, 0x9F, 0x07, 0x87, 0xC1, 0x81, 0xF0, 0xC0, 0x7C, 0x60, 0x1F, 0x30, 0x07, 0xDE, 0x01, 0xFF, 0xC0, 0x7F, 0xF0, 0x1F, 0x3E, 0x07, 0xCF, 0xC1, 0xF1, 0xF8, 0x7C, 0x3E, 0x1F, 0x07, 0xC7, 0xC1, 0xFB, 0xF9, 0xFF, 0xFC, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x3E, 0x7C, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x3E, 0x7C, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x7F, 0xFC, 0x7C, 0x1F, 0x0F, 0xBF, 0xCF, 0xF1, 0xF8, 0xFF, 0x3F, 0x3E, 0x0F, 0x83, 0xE7, 0xC1, 0xF0, 0x7C, 0xF8, 0x3E, 0x0F, 0x9F, 0x07, 0xC1, 0xF3, 0xE0, 0xF8, 0x3E, 0x7C, 0x1F, 0x07, 0xCF, 0x83, 0xE0, 0xF9, 0xF0, 0x7C, 0x1F, 0x3E, 0x0F, 0x83, 0xE7, 0xC1, 0xF0, 0x7C, 0xF8, 0x3E, 0x0F, 0x9F, 0x07, 0xC1, 0xF7, 0xF1, 0xFC, 0x7F, 0xFC, 0x7C, 0x3E, 0xFF, 0x1F, 0xCF, 0xCF, 0x83, 0xE7, 0xC1, 0xF3, 0xE0, 0xF9, 0xF0, 0x7C, 0xF8, 0x3E, 0x7C, 0x1F, 0x3E, 0x0F, 0x9F, 0x07, 0xCF, 0x83, 0xE7, 0xC1, 0xF3, 0xE0, 0xF9, 0xF0, 0x7D, 0xFC, 0x7F, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0x8F, 0x8F, 0x87, 0xE7, 0xC1, 0xF7, 0xE0, 0xFF, 0xF0, 0x7F, 0xF8, 0x3F, 0xFC, 0x1F, 0xFE, 0x0F, 0xFF, 0x07, 0xEF, 0x83, 0xE7, 0xC1, 0xF1, 0xF1, 0xF0, 0x7F, 0xF0, 0x0F, 0xE0, 0xFE, 0x7C, 0x07, 0xDF, 0xE0, 0xFE, 0x3E, 0x1F, 0x07, 0xE3, 0xE0, 0x7C, 0x7C, 0x0F, 0xCF, 0x81, 0xF9, 0xF0, 0x3F, 0x3E, 0x07, 0xE7, 0xC0, 0xFC, 0xF8, 0x1F, 0x9F, 0x03, 0xE3, 0xE0, 0xFC, 0x7E, 0x3F, 0x0F, 0xBF, 0xC1, 0xF3, 0xE0, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7E, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xC1, 0x0F, 0xF9, 0x8F, 0xCD, 0xCF, 0xC3, 0xE7, 0xC1, 0xF7, 0xE0, 0xFB, 0xF0, 0x7D, 0xF8, 0x3E, 0xFC, 0x1F, 0x7E, 0x0F, 0xBF, 0x07, 0xDF, 0x83, 0xE7, 0xE1, 0xF1, 0xF1, 0xF8, 0x7F, 0x7C, 0x1F, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x01, 0xF8, 0x01, 0xFE, 0xFC, 0x73, 0xEF, 0xDF, 0xFE, 0xFC, 0xF7, 0xC3, 0xBE, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x1F, 0xE0, 0x1E, 0x23, 0xFE, 0x70, 0xEE, 0x06, 0xE0, 0x2F, 0x80, 0xFF, 0x07, 0xFC, 0x3F, 0xE0, 0xFF, 0x81, 0xF8, 0x07, 0xC0, 0x7E, 0x0E, 0xBF, 0xC8, 0xF8, 0x04, 0x03, 0x01, 0xC0, 0xF0, 0x7C, 0x3F, 0xEF, 0xF9, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x5F, 0x37, 0xF8, 0xFE, 0x1E, 0x00, 0xFC, 0x7F, 0x1F, 0x07, 0xC7, 0xC1, 0xF1, 0xF0, 0x7C, 0x7C, 0x1F, 0x1F, 0x07, 0xC7, 0xC1, 0xF1, 0xF0, 0x7C, 0x7C, 0x1F, 0x1F, 0x07, 0xC7, 0xC1, 0xF1, 0xF0, 0x7C, 0x7C, 0x1F, 0x1F, 0x8F, 0xC3, 0xFD, 0xFC, 0x7C, 0x60, 0xFF, 0x9F, 0xBF, 0x83, 0x0F, 0x81, 0x87, 0xE0, 0x81, 0xF0, 0x40, 0xF8, 0x40, 0x3E, 0x20, 0x1F, 0x30, 0x07, 0xD0, 0x03, 0xF8, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x01, 0x00, 0xFF, 0x3F, 0xCF, 0x7E, 0x1F, 0x06, 0x3E, 0x0F, 0x06, 0x3E, 0x0F, 0x84, 0x1F, 0x0F, 0x8C, 0x1F, 0x1F, 0x88, 0x0F, 0x17, 0xC8, 0x0F, 0x97, 0xD8, 0x0F, 0xB3, 0xD0, 0x07, 0xE3, 0xF0, 0x07, 0xE3, 0xE0, 0x03, 0xC1, 0xE0, 0x03, 0xC1, 0xE0, 0x03, 0x81, 0xC0, 0x01, 0x80, 0xC0, 0x01, 0x80, 0x80, 0xFF, 0x3F, 0x7E, 0x0C, 0x3E, 0x08, 0x3F, 0x18, 0x1F, 0x30, 0x0F, 0xE0, 0x0F, 0xC0, 0x07, 0xE0, 0x03, 0xE0, 0x03, 0xF0, 0x05, 0xF8, 0x0C, 0xF8, 0x18, 0xFC, 0x30, 0x7E, 0x70, 0x7E, 0xFC, 0xFF, 0xFF, 0x3F, 0x7E, 0x0C, 0x7C, 0x0C, 0x3E, 0x08, 0x3E, 0x08, 0x1E, 0x18, 0x1F, 0x10, 0x0F, 0x30, 0x0F, 0xA0, 0x0F, 0xA0, 0x07, 0xE0, 0x07, 0xC0, 0x03, 0xC0, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00, 0x61, 0x00, 0xF2, 0x00, 0xF6, 0x00, 0xFC, 0x00, 0x78, 0x00, 0x7F, 0xFD, 0xFF, 0xF7, 0x0F, 0xD0, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x3E, 0x01, 0xF8, 0x0F, 0xC1, 0x3E, 0x05, 0xF8, 0x7F, 0xFF, 0xFF, 0xFF, 0x01, 0xE0, 0xF8, 0x3E, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x07, 0x87, 0x80, 0x1E, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF8, 0x0F, 0x80, 0x78, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xF0, 0x0F, 0x80, 0xF0, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x03, 0xC0, 0x0F, 0x0F, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x03, 0xE0, 0xF8, 0x3C, 0x00, 0x3E, 0x00, 0x7F, 0xC6, 0xFF, 0xFF, 0x61, 0xFE, 0x00, 0x7C}; const GFXglyph FreeSerifBold18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 9, 0, 1}, // 0x20 ' ' {0, 6, 24, 12, 3, -23}, // 0x21 '!' {18, 13, 10, 19, 3, -23}, // 0x22 '"' {35, 18, 24, 17, 0, -23}, // 0x23 '#' {89, 15, 28, 17, 1, -25}, // 0x24 '$' {142, 27, 24, 35, 4, -23}, // 0x25 '%' {223, 26, 25, 29, 2, -23}, // 0x26 '&' {305, 4, 10, 10, 3, -23}, // 0x27 ''' {310, 9, 30, 12, 2, -23}, // 0x28 '(' {344, 9, 30, 12, 1, -23}, // 0x29 ')' {378, 14, 15, 18, 2, -23}, // 0x2A '*' {405, 19, 19, 24, 2, -17}, // 0x2B '+' {451, 6, 12, 9, 1, -5}, // 0x2C ',' {460, 8, 4, 12, 2, -9}, // 0x2D '-' {464, 6, 6, 9, 1, -5}, // 0x2E '.' {469, 11, 25, 10, -1, -23}, // 0x2F '/' {504, 16, 24, 18, 1, -23}, // 0x30 '0' {552, 12, 24, 18, 3, -23}, // 0x31 '1' {588, 16, 24, 17, 1, -23}, // 0x32 '2' {636, 16, 24, 18, 0, -23}, // 0x33 '3' {684, 15, 24, 18, 1, -23}, // 0x34 '4' {729, 15, 24, 18, 1, -23}, // 0x35 '5' {774, 16, 24, 18, 1, -23}, // 0x36 '6' {822, 16, 24, 17, 1, -23}, // 0x37 '7' {870, 16, 24, 17, 1, -23}, // 0x38 '8' {918, 16, 24, 18, 1, -23}, // 0x39 '9' {966, 6, 16, 12, 3, -15}, // 0x3A ':' {978, 7, 22, 12, 2, -15}, // 0x3B ';' {998, 19, 20, 24, 2, -18}, // 0x3C '<' {1046, 19, 12, 24, 2, -14}, // 0x3D '=' {1075, 19, 20, 24, 3, -18}, // 0x3E '>' {1123, 14, 24, 18, 2, -23}, // 0x3F '?' {1165, 24, 25, 33, 4, -23}, // 0x40 '@' {1240, 24, 24, 25, 1, -23}, // 0x41 'A' {1312, 21, 24, 23, 1, -23}, // 0x42 'B' {1375, 23, 25, 25, 1, -23}, // 0x43 'C' {1447, 23, 24, 26, 1, -23}, // 0x44 'D' {1516, 21, 24, 23, 2, -23}, // 0x45 'E' {1579, 19, 24, 22, 2, -23}, // 0x46 'F' {1636, 25, 25, 27, 1, -23}, // 0x47 'G' {1715, 24, 24, 27, 2, -23}, // 0x48 'H' {1787, 11, 24, 14, 2, -23}, // 0x49 'I' {1820, 16, 27, 18, 0, -23}, // 0x4A 'J' {1874, 25, 24, 27, 2, -23}, // 0x4B 'K' {1949, 21, 24, 23, 2, -23}, // 0x4C 'L' {2012, 31, 24, 33, 1, -23}, // 0x4D 'M' {2105, 23, 24, 25, 1, -23}, // 0x4E 'N' {2174, 25, 25, 27, 1, -23}, // 0x4F 'O' {2253, 19, 24, 22, 2, -23}, // 0x50 'P' {2310, 25, 30, 27, 1, -23}, // 0x51 'Q' {2404, 23, 24, 25, 2, -23}, // 0x52 'R' {2473, 16, 25, 20, 2, -23}, // 0x53 'S' {2523, 21, 24, 23, 1, -23}, // 0x54 'T' {2586, 22, 25, 25, 2, -23}, // 0x55 'U' {2655, 24, 24, 25, 0, -23}, // 0x56 'V' {2727, 34, 25, 34, 0, -23}, // 0x57 'W' {2834, 24, 24, 25, 1, -23}, // 0x58 'X' {2906, 24, 24, 25, 1, -23}, // 0x59 'Y' {2978, 21, 24, 23, 1, -23}, // 0x5A 'Z' {3041, 8, 29, 12, 2, -23}, // 0x5B '[' {3070, 11, 25, 10, -1, -23}, // 0x5C '\' {3105, 8, 29, 12, 2, -23}, // 0x5D ']' {3134, 15, 13, 20, 3, -23}, // 0x5E '^' {3159, 18, 3, 17, 0, 3}, // 0x5F '_' {3166, 8, 6, 12, 0, -23}, // 0x60 '`' {3172, 16, 16, 18, 1, -15}, // 0x61 'a' {3204, 18, 24, 19, 1, -23}, // 0x62 'b' {3258, 14, 16, 15, 1, -15}, // 0x63 'c' {3286, 18, 24, 19, 1, -23}, // 0x64 'd' {3340, 14, 16, 16, 1, -15}, // 0x65 'e' {3368, 11, 24, 14, 2, -23}, // 0x66 'f' {3401, 17, 23, 17, 1, -15}, // 0x67 'g' {3450, 17, 24, 19, 1, -23}, // 0x68 'h' {3501, 7, 24, 10, 2, -23}, // 0x69 'i' {3522, 11, 31, 14, 0, -23}, // 0x6A 'j' {3565, 18, 24, 19, 1, -23}, // 0x6B 'k' {3619, 7, 24, 10, 1, -23}, // 0x6C 'l' {3640, 27, 16, 29, 1, -15}, // 0x6D 'm' {3694, 17, 16, 19, 1, -15}, // 0x6E 'n' {3728, 17, 16, 18, 1, -15}, // 0x6F 'o' {3762, 19, 23, 19, 0, -15}, // 0x70 'p' {3817, 17, 23, 19, 1, -15}, // 0x71 'q' {3866, 13, 16, 15, 1, -15}, // 0x72 'r' {3892, 12, 16, 14, 1, -15}, // 0x73 's' {3916, 10, 21, 12, 1, -20}, // 0x74 't' {3943, 18, 16, 20, 1, -15}, // 0x75 'u' {3979, 17, 16, 17, 0, -15}, // 0x76 'v' {4013, 24, 16, 25, 0, -15}, // 0x77 'w' {4061, 16, 16, 18, 1, -15}, // 0x78 'x' {4093, 16, 23, 17, 0, -15}, // 0x79 'y' {4139, 14, 16, 16, 0, -15}, // 0x7A 'z' {4167, 11, 31, 14, 1, -24}, // 0x7B '{' {4210, 3, 25, 8, 2, -23}, // 0x7C '|' {4220, 11, 31, 14, 3, -24}, // 0x7D '}' {4263, 16, 5, 18, 1, -11}}; // 0x7E '~' const GFXfont FreeSerifBold18pt7b PROGMEM = { (uint8_t *)FreeSerifBold18pt7bBitmaps, (GFXglyph *)FreeSerifBold18pt7bGlyphs, 0x20, 0x7E, 42}; // Approx. 4945 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifBold24pt7b.h ================================================ const uint8_t FreeSerifBold24pt7bBitmaps[] PROGMEM = { 0x3C, 0x7E, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x7E, 0x7C, 0x7C, 0x3C, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x18, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, 0x70, 0x07, 0x7C, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xC0, 0x3E, 0xE0, 0x0E, 0x70, 0x07, 0x38, 0x03, 0x9C, 0x01, 0xC4, 0x00, 0xE2, 0x00, 0x20, 0x00, 0xF0, 0x70, 0x01, 0xC0, 0xE0, 0x03, 0x81, 0xC0, 0x0F, 0x07, 0x80, 0x1E, 0x0F, 0x00, 0x3C, 0x1E, 0x00, 0x78, 0x3C, 0x00, 0xF0, 0x78, 0x01, 0xC0, 0xE0, 0x03, 0x81, 0xC0, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xE0, 0x78, 0x3C, 0x00, 0xF0, 0x78, 0x01, 0xC0, 0xE0, 0x03, 0x81, 0xC0, 0x0F, 0x07, 0x80, 0x1E, 0x0F, 0x00, 0x3C, 0x1E, 0x0F, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0x03, 0x81, 0xC0, 0x0F, 0x07, 0x80, 0x1E, 0x0F, 0x00, 0x3C, 0x1E, 0x00, 0x78, 0x3C, 0x00, 0xF0, 0x78, 0x01, 0xE0, 0xE0, 0x03, 0x81, 0xC0, 0x07, 0x07, 0x80, 0x1E, 0x0F, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x7F, 0xF0, 0x0F, 0x37, 0xE0, 0xE1, 0x8F, 0x8E, 0x0C, 0x3C, 0x70, 0x60, 0xE7, 0x83, 0x03, 0x3C, 0x18, 0x19, 0xF0, 0xC0, 0x4F, 0xC6, 0x02, 0x7F, 0xF0, 0x03, 0xFF, 0x80, 0x0F, 0xFE, 0x00, 0x3F, 0xFC, 0x00, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x1F, 0xFE, 0x00, 0x3F, 0xF8, 0x01, 0xFF, 0xC0, 0x0C, 0xFF, 0x00, 0x63, 0xFA, 0x03, 0x0F, 0xD0, 0x18, 0x3E, 0x80, 0xC1, 0xF6, 0x06, 0x0F, 0xB8, 0x30, 0x79, 0xC1, 0x87, 0xCF, 0x0C, 0x3C, 0x7E, 0x67, 0xC0, 0xFF, 0xF8, 0x00, 0xFE, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x3E, 0x00, 0x0C, 0x00, 0x0F, 0xF0, 0x03, 0x80, 0x07, 0xE7, 0x03, 0xE0, 0x01, 0xF8, 0x7F, 0xFC, 0x00, 0x3E, 0x07, 0xF7, 0x00, 0x0F, 0xC0, 0x80, 0xE0, 0x03, 0xF0, 0x10, 0x38, 0x00, 0x7E, 0x02, 0x07, 0x00, 0x0F, 0x80, 0x41, 0xC0, 0x03, 0xF0, 0x10, 0x30, 0x00, 0x7E, 0x02, 0x0E, 0x00, 0x0F, 0x80, 0xC1, 0x80, 0x01, 0xF0, 0x10, 0x70, 0x00, 0x3E, 0x06, 0x1C, 0x00, 0x07, 0xC1, 0x83, 0x80, 0x00, 0x7C, 0x60, 0xE0, 0x1F, 0x07, 0xF8, 0x18, 0x0F, 0xF8, 0x7C, 0x07, 0x07, 0xF1, 0x00, 0x00, 0xC1, 0xF8, 0x10, 0x00, 0x38, 0x3F, 0x02, 0x00, 0x06, 0x0F, 0xC0, 0x40, 0x01, 0xC3, 0xF0, 0x08, 0x00, 0x30, 0x7E, 0x01, 0x00, 0x0E, 0x1F, 0x80, 0x40, 0x03, 0x83, 0xF0, 0x08, 0x00, 0x60, 0x7E, 0x01, 0x00, 0x1C, 0x0F, 0x80, 0x40, 0x03, 0x01, 0xF0, 0x18, 0x00, 0xE0, 0x3E, 0x02, 0x00, 0x18, 0x03, 0xC0, 0xC0, 0x07, 0x00, 0x7C, 0x70, 0x00, 0xC0, 0x07, 0xFC, 0x00, 0x38, 0x00, 0x7E, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x07, 0x8F, 0xE0, 0x00, 0x03, 0xC1, 0xF8, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x7C, 0x07, 0xC0, 0x00, 0x1F, 0x01, 0xF0, 0x00, 0x07, 0xE0, 0x7C, 0x00, 0x01, 0xF8, 0x1E, 0x00, 0x00, 0x7F, 0x07, 0x80, 0x00, 0x1F, 0xE3, 0x80, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x1F, 0xE0, 0x3F, 0xF0, 0x07, 0xFC, 0x01, 0xF0, 0x07, 0xFF, 0x00, 0x78, 0x07, 0xBF, 0xE0, 0x1C, 0x03, 0x87, 0xFC, 0x07, 0x01, 0xE0, 0xFF, 0x81, 0x80, 0xF0, 0x3F, 0xE0, 0xC0, 0x7C, 0x07, 0xFC, 0x30, 0x1F, 0x00, 0xFF, 0x98, 0x0F, 0xC0, 0x3F, 0xFC, 0x03, 0xF0, 0x07, 0xFF, 0x00, 0xFE, 0x00, 0xFF, 0x80, 0x3F, 0x80, 0x3F, 0xF0, 0x0F, 0xF0, 0x07, 0xFE, 0x03, 0xFC, 0x00, 0xFF, 0x81, 0x7F, 0x80, 0x3F, 0xF8, 0xDF, 0xF0, 0x1F, 0xFF, 0xE3, 0xFF, 0x0E, 0xFF, 0xF8, 0xFF, 0xFE, 0x1F, 0xFC, 0x0F, 0xFE, 0x03, 0xFE, 0x00, 0xFE, 0x00, 0x3E, 0x00, 0x77, 0xFF, 0xFF, 0xFF, 0xEE, 0x73, 0x9C, 0xE2, 0x00, 0x00, 0x00, 0x03, 0x00, 0x60, 0x1C, 0x03, 0x80, 0x70, 0x06, 0x00, 0xE0, 0x1C, 0x01, 0xC0, 0x3C, 0x03, 0xC0, 0x78, 0x07, 0x80, 0x78, 0x07, 0x80, 0xF8, 0x0F, 0x80, 0xF8, 0x0F, 0x80, 0xF8, 0x0F, 0x80, 0xF8, 0x0F, 0x80, 0xF8, 0x0F, 0x80, 0x78, 0x07, 0x80, 0x78, 0x03, 0xC0, 0x3C, 0x01, 0xC0, 0x1C, 0x00, 0xE0, 0x0E, 0x00, 0x70, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x03, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x06, 0x00, 0x70, 0x03, 0x80, 0x38, 0x03, 0xC0, 0x3C, 0x03, 0xE0, 0x1E, 0x01, 0xE0, 0x1E, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xE0, 0x1E, 0x01, 0xE0, 0x3C, 0x03, 0xC0, 0x38, 0x03, 0x80, 0x70, 0x07, 0x00, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x0C, 0x00, 0x80, 0x00, 0x01, 0xC0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x3C, 0x78, 0xEF, 0x9C, 0x7B, 0xF7, 0x3F, 0xFE, 0xDF, 0x8F, 0xFF, 0xC0, 0x7F, 0x00, 0x3F, 0xC0, 0x7E, 0xBF, 0x3F, 0x77, 0xEF, 0x9C, 0xFF, 0xC7, 0x1E, 0x63, 0xE3, 0x80, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x01, 0xC0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x7E, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0x07, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, 0x00, 0x1E, 0x00, 0x7C, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x7C, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x7C, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x7C, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x0F, 0x3C, 0x00, 0x78, 0x78, 0x03, 0xE1, 0xF0, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x83, 0xF0, 0x3F, 0x0F, 0xC0, 0xFC, 0x7F, 0x03, 0xF9, 0xFC, 0x0F, 0xE7, 0xF0, 0x3F, 0xBF, 0xC0, 0xFE, 0xFF, 0x03, 0xFF, 0xFC, 0x0F, 0xFF, 0xF0, 0x3F, 0xFF, 0xC0, 0xFF, 0xFF, 0x03, 0xFF, 0xFC, 0x0F, 0xFF, 0xF0, 0x3F, 0xFF, 0xC0, 0xFF, 0xFF, 0x03, 0xFF, 0xFC, 0x0F, 0xFF, 0xF0, 0x3F, 0x9F, 0xC0, 0xFE, 0x7F, 0x03, 0xF9, 0xFC, 0x0F, 0xE3, 0xF0, 0x3F, 0x0F, 0xC0, 0xFC, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x80, 0xF8, 0x7C, 0x01, 0xE1, 0xE0, 0x03, 0xCF, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x1F, 0x80, 0x1F, 0xE0, 0x1F, 0xF8, 0x1D, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x7F, 0x80, 0x3F, 0xF8, 0xFF, 0xFF, 0xC0, 0x00, 0xFC, 0x00, 0x1F, 0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0xFF, 0x81, 0xFF, 0xFC, 0x1C, 0x1F, 0xF1, 0xC0, 0x7F, 0x8C, 0x01, 0xFC, 0x40, 0x0F, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x38, 0x01, 0x03, 0x80, 0x18, 0x38, 0x00, 0x81, 0x80, 0x1C, 0x1F, 0xFF, 0xE1, 0xFF, 0xFF, 0x1F, 0xFF, 0xF9, 0xFF, 0xFF, 0x9F, 0xFF, 0xFC, 0xFF, 0xFF, 0xE0, 0x00, 0xFE, 0x00, 0x3F, 0xFC, 0x03, 0xFF, 0xF0, 0x30, 0xFF, 0xC2, 0x01, 0xFE, 0x30, 0x0F, 0xF1, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0xC0, 0x03, 0xFF, 0x00, 0x3F, 0xFC, 0x00, 0x7F, 0xF0, 0x00, 0xFF, 0x80, 0x03, 0xFE, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xC7, 0x80, 0x0E, 0x7F, 0x00, 0xE3, 0xFC, 0x06, 0x1F, 0xF8, 0xE0, 0x7F, 0xFC, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0xFF, 0x00, 0x0D, 0xF8, 0x00, 0xEF, 0xC0, 0x06, 0x7E, 0x00, 0x63, 0xF0, 0x07, 0x1F, 0x80, 0x30, 0xFC, 0x03, 0x07, 0xE0, 0x38, 0x3F, 0x03, 0x81, 0xF8, 0x18, 0x0F, 0xC1, 0xC0, 0x7E, 0x1C, 0x03, 0xF0, 0xC0, 0x1F, 0x8E, 0x00, 0xFC, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x07, 0xFF, 0xF0, 0x7F, 0xFF, 0x0F, 0xFF, 0xE0, 0xFF, 0xFE, 0x0F, 0xFF, 0xE1, 0xFF, 0xFC, 0x18, 0x00, 0x01, 0x80, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0x3F, 0x80, 0x03, 0xFF, 0x80, 0x7F, 0xFE, 0x07, 0xFF, 0xF0, 0x7F, 0xFF, 0x87, 0xFF, 0xFC, 0x7F, 0xFF, 0xC0, 0x07, 0xFC, 0x00, 0x1F, 0xE0, 0x00, 0x7E, 0x00, 0x03, 0xE0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xC0, 0x00, 0x0C, 0x78, 0x00, 0x8F, 0xE0, 0x18, 0xFF, 0x87, 0x0F, 0xFF, 0xE0, 0x7F, 0xF8, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x38, 0x00, 0x1F, 0x00, 0x07, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xFF, 0x01, 0xFF, 0xFE, 0x1F, 0xF1, 0xFC, 0xFF, 0x07, 0xE7, 0xF8, 0x3F, 0xBF, 0xC1, 0xFD, 0xFE, 0x07, 0xFF, 0xF0, 0x3F, 0xFF, 0x81, 0xFF, 0xFC, 0x0F, 0xFF, 0xE0, 0x7F, 0xFF, 0x03, 0xFB, 0xF8, 0x1F, 0xDF, 0xC0, 0xFE, 0xFE, 0x07, 0xE3, 0xF0, 0x3F, 0x1F, 0xC1, 0xF0, 0x7E, 0x0F, 0x01, 0xF0, 0xF8, 0x03, 0xC7, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0xFF, 0xF9, 0xFF, 0xFF, 0xDF, 0xFF, 0xFE, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x3F, 0xFF, 0xF9, 0x80, 0x07, 0x98, 0x00, 0x3C, 0xC0, 0x03, 0xE4, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x07, 0xC0, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x01, 0xFE, 0x00, 0x38, 0x7C, 0x07, 0x80, 0xF0, 0x78, 0x07, 0xC3, 0xC0, 0x1F, 0x3E, 0x00, 0xF9, 0xF0, 0x07, 0xCF, 0xC0, 0x3E, 0x7E, 0x01, 0xF3, 0xF8, 0x0F, 0x1F, 0xE0, 0xF8, 0x7F, 0xC7, 0x83, 0xFF, 0xF0, 0x0F, 0xFE, 0x00, 0x7F, 0xFC, 0x01, 0xFF, 0xF0, 0x03, 0xFF, 0xC0, 0x1F, 0xFF, 0x03, 0xBF, 0xFC, 0x7C, 0x7F, 0xE7, 0xC1, 0xFF, 0x3E, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x00, 0x7F, 0xF8, 0x03, 0xFF, 0xC0, 0x0F, 0xFE, 0x00, 0x7F, 0xF0, 0x03, 0xE7, 0x80, 0x1F, 0x3E, 0x01, 0xF0, 0xF8, 0x0F, 0x83, 0xE1, 0xF8, 0x0F, 0xFF, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x1C, 0x3C, 0x00, 0xF0, 0x78, 0x07, 0x81, 0xF8, 0x3E, 0x07, 0xE1, 0xF8, 0x0F, 0xC7, 0xE0, 0x3F, 0x3F, 0x80, 0xFE, 0xFE, 0x03, 0xFB, 0xF8, 0x0F, 0xFF, 0xE0, 0x3F, 0xFF, 0x80, 0xFF, 0xFE, 0x03, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0x3F, 0xDF, 0xC0, 0xFF, 0x7F, 0x03, 0xFC, 0xFC, 0x0F, 0xF3, 0xFC, 0x7F, 0x83, 0xFF, 0xFE, 0x07, 0xF7, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x01, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0x80, 0x00, 0x00, 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, 0x3C, 0x3F, 0x3F, 0xDF, 0xEF, 0xF7, 0xF9, 0xF8, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7F, 0x7F, 0xBF, 0xFF, 0xFF, 0xFB, 0xFC, 0xFE, 0x07, 0x03, 0x01, 0x81, 0x81, 0x81, 0x83, 0x81, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xC0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x1F, 0xF0, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x07, 0xFF, 0x03, 0x87, 0xE1, 0xC0, 0xFC, 0xF0, 0x3F, 0xBE, 0x07, 0xEF, 0xC1, 0xFF, 0xF0, 0x7F, 0xFC, 0x1F, 0xDF, 0x07, 0xF7, 0x81, 0xFC, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x07, 0xE0, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x70, 0x00, 0x18, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x1F, 0x80, 0x0F, 0xF0, 0x03, 0xFC, 0x00, 0xFF, 0x00, 0x3F, 0xC0, 0x07, 0xE0, 0x00, 0xF0, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x1F, 0x00, 0xF0, 0x00, 0x3E, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x03, 0x80, 0x3C, 0x00, 0x00, 0xE0, 0x3C, 0x00, 0x00, 0x30, 0x3E, 0x00, 0x00, 0x0C, 0x3E, 0x00, 0x3C, 0x37, 0x1F, 0x00, 0x7E, 0xF1, 0x9F, 0x00, 0x7C, 0xF8, 0xCF, 0x80, 0x78, 0x7C, 0x37, 0xC0, 0x7C, 0x3C, 0x1F, 0xC0, 0x3C, 0x1E, 0x0F, 0xE0, 0x3C, 0x0F, 0x07, 0xF0, 0x3E, 0x0F, 0x03, 0xF8, 0x1E, 0x07, 0x81, 0xFC, 0x0F, 0x03, 0xC0, 0xFE, 0x0F, 0x03, 0xE0, 0x7F, 0x07, 0x81, 0xE0, 0x6F, 0x83, 0xC1, 0xF0, 0x37, 0xC1, 0xE1, 0x78, 0x31, 0xF0, 0xF9, 0xBC, 0x18, 0xF8, 0x3F, 0x9E, 0x38, 0x3C, 0x0F, 0x0F, 0xF8, 0x1F, 0x00, 0x01, 0xF0, 0x07, 0x80, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0xC0, 0x01, 0xF8, 0x03, 0xE0, 0x00, 0x3F, 0xFF, 0xC0, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x37, 0xF8, 0x00, 0x00, 0x33, 0xF8, 0x00, 0x00, 0x33, 0xFC, 0x00, 0x00, 0x61, 0xFC, 0x00, 0x00, 0x61, 0xFE, 0x00, 0x00, 0xC1, 0xFE, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0x01, 0x80, 0x7F, 0x00, 0x01, 0x80, 0x7F, 0x80, 0x03, 0x80, 0x7F, 0x80, 0x03, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xC0, 0x07, 0x00, 0x3F, 0xC0, 0x06, 0x00, 0x1F, 0xE0, 0x0E, 0x00, 0x1F, 0xE0, 0x0C, 0x00, 0x0F, 0xF0, 0x0C, 0x00, 0x0F, 0xF0, 0x1C, 0x00, 0x0F, 0xF8, 0x1C, 0x00, 0x0F, 0xF8, 0x7E, 0x00, 0x0F, 0xFC, 0xFF, 0x80, 0x7F, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xE0, 0x1F, 0xF8, 0x7F, 0x00, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x01, 0xFE, 0x0F, 0xF0, 0x1F, 0xE0, 0xFF, 0x01, 0xFE, 0x0F, 0xF0, 0x1F, 0xE0, 0xFF, 0x01, 0xFE, 0x0F, 0xF0, 0x1F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0x00, 0xFF, 0x0F, 0xC0, 0x0F, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xC0, 0x0F, 0xF0, 0xFF, 0x00, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x1F, 0xE0, 0xFF, 0x01, 0xFE, 0x0F, 0xF0, 0x0F, 0xF0, 0xFF, 0x00, 0xFF, 0x0F, 0xF0, 0x0F, 0xF0, 0xFF, 0x00, 0xFF, 0x0F, 0xF0, 0x0F, 0xF0, 0xFF, 0x00, 0xFF, 0x0F, 0xF0, 0x0F, 0xE0, 0xFF, 0x01, 0xFE, 0x0F, 0xF0, 0x1F, 0xC0, 0xFF, 0x87, 0xF0, 0x3F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0x08, 0x01, 0xFF, 0xF0, 0x60, 0x0F, 0xC1, 0xF9, 0x80, 0xFC, 0x01, 0xFE, 0x07, 0xE0, 0x01, 0xF8, 0x3F, 0x00, 0x03, 0xE1, 0xFC, 0x00, 0x07, 0x87, 0xE0, 0x00, 0x1E, 0x3F, 0x80, 0x00, 0x38, 0xFE, 0x00, 0x00, 0x67, 0xF8, 0x00, 0x01, 0x9F, 0xC0, 0x00, 0x02, 0x7F, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x87, 0xF0, 0x00, 0x07, 0x0F, 0xE0, 0x00, 0x38, 0x1F, 0x80, 0x01, 0xC0, 0x3F, 0x00, 0x1E, 0x00, 0x7F, 0x01, 0xE0, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0xFF, 0xFF, 0xE0, 0x00, 0x3F, 0xFF, 0xFE, 0x00, 0x0F, 0xF8, 0x7F, 0x80, 0x0F, 0xF0, 0x1F, 0xC0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x07, 0xF0, 0x0F, 0xF0, 0x03, 0xF8, 0x0F, 0xF0, 0x03, 0xFC, 0x0F, 0xF0, 0x01, 0xFC, 0x0F, 0xF0, 0x01, 0xFE, 0x0F, 0xF0, 0x01, 0xFE, 0x0F, 0xF0, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0xFE, 0x0F, 0xF0, 0x00, 0xFE, 0x0F, 0xF0, 0x01, 0xFE, 0x0F, 0xF0, 0x01, 0xFC, 0x0F, 0xF0, 0x01, 0xFC, 0x0F, 0xF0, 0x03, 0xF8, 0x0F, 0xF0, 0x03, 0xF0, 0x0F, 0xF0, 0x07, 0xE0, 0x0F, 0xF0, 0x0F, 0xC0, 0x0F, 0xF8, 0x3F, 0x80, 0x1F, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFC, 0x1F, 0xE0, 0x1F, 0xC1, 0xFE, 0x00, 0x3C, 0x1F, 0xE0, 0x01, 0xC1, 0xFE, 0x00, 0x0C, 0x1F, 0xE0, 0x00, 0xC1, 0xFE, 0x00, 0x04, 0x1F, 0xE0, 0x20, 0x41, 0xFE, 0x02, 0x00, 0x1F, 0xE0, 0x60, 0x01, 0xFE, 0x06, 0x00, 0x1F, 0xE0, 0xE0, 0x01, 0xFE, 0x1E, 0x00, 0x1F, 0xFF, 0xE0, 0x01, 0xFF, 0xFE, 0x00, 0x1F, 0xE3, 0xE0, 0x01, 0xFE, 0x0E, 0x00, 0x1F, 0xE0, 0x60, 0x01, 0xFE, 0x06, 0x00, 0x1F, 0xE0, 0x20, 0x01, 0xFE, 0x02, 0x00, 0x1F, 0xE0, 0x00, 0x11, 0xFE, 0x00, 0x03, 0x1F, 0xE0, 0x00, 0x71, 0xFE, 0x00, 0x07, 0x1F, 0xE0, 0x00, 0xE1, 0xFE, 0x00, 0x1E, 0x1F, 0xE0, 0x03, 0xE3, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xC7, 0xFC, 0x07, 0xE3, 0xFC, 0x00, 0xF1, 0xFE, 0x00, 0x38, 0xFF, 0x00, 0x0C, 0x7F, 0x80, 0x06, 0x3F, 0xC0, 0x01, 0x1F, 0xE0, 0x20, 0x8F, 0xF0, 0x10, 0x07, 0xF8, 0x18, 0x03, 0xFC, 0x0C, 0x01, 0xFE, 0x0E, 0x00, 0xFF, 0x1F, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0x1F, 0xE3, 0xE0, 0x0F, 0xF0, 0x70, 0x07, 0xF8, 0x18, 0x03, 0xFC, 0x0C, 0x01, 0xFE, 0x02, 0x00, 0xFF, 0x01, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xFF, 0xFC, 0x00, 0x00, 0x0F, 0xF0, 0x08, 0x00, 0x3F, 0xFE, 0x0C, 0x00, 0x3F, 0x07, 0xC6, 0x00, 0x7E, 0x00, 0xFF, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x7E, 0x00, 0x07, 0xC0, 0x7F, 0x00, 0x01, 0xE0, 0x3F, 0x00, 0x00, 0x70, 0x3F, 0x80, 0x00, 0x38, 0x1F, 0xC0, 0x00, 0x0C, 0x1F, 0xE0, 0x00, 0x06, 0x0F, 0xE0, 0x00, 0x01, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x0F, 0xF0, 0x03, 0xFF, 0xFF, 0xF8, 0x00, 0x3F, 0xF1, 0xFC, 0x00, 0x0F, 0xF0, 0xFF, 0x00, 0x07, 0xF8, 0x7F, 0x80, 0x03, 0xFC, 0x1F, 0xC0, 0x01, 0xFE, 0x0F, 0xE0, 0x00, 0xFF, 0x03, 0xF8, 0x00, 0x7F, 0x80, 0xFC, 0x00, 0x3F, 0xC0, 0x3F, 0x00, 0x1F, 0xE0, 0x0F, 0xC0, 0x0F, 0xF0, 0x03, 0xF8, 0x1F, 0xF0, 0x00, 0x7F, 0xFF, 0xC0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xFC, 0x1F, 0xFF, 0x9F, 0xF8, 0x03, 0xFF, 0x07, 0xF8, 0x00, 0xFF, 0x03, 0xFC, 0x00, 0x7F, 0x81, 0xFE, 0x00, 0x3F, 0xC0, 0xFF, 0x00, 0x1F, 0xE0, 0x7F, 0x80, 0x0F, 0xF0, 0x3F, 0xC0, 0x07, 0xF8, 0x1F, 0xE0, 0x03, 0xFC, 0x0F, 0xF0, 0x01, 0xFE, 0x07, 0xF8, 0x00, 0xFF, 0x03, 0xFC, 0x00, 0x7F, 0x81, 0xFE, 0x00, 0x3F, 0xC0, 0xFF, 0x00, 0x1F, 0xE0, 0x7F, 0x80, 0x0F, 0xF0, 0x3F, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xFC, 0x0F, 0xF0, 0x01, 0xFE, 0x07, 0xF8, 0x00, 0xFF, 0x03, 0xFC, 0x00, 0x7F, 0x81, 0xFE, 0x00, 0x3F, 0xC0, 0xFF, 0x00, 0x1F, 0xE0, 0x7F, 0x80, 0x0F, 0xF0, 0x3F, 0xC0, 0x07, 0xF8, 0x1F, 0xE0, 0x03, 0xFC, 0x0F, 0xF0, 0x01, 0xFE, 0x07, 0xF8, 0x00, 0xFF, 0x03, 0xFC, 0x00, 0x7F, 0x81, 0xFE, 0x00, 0x3F, 0xC0, 0xFF, 0x00, 0x1F, 0xE0, 0xFF, 0xC0, 0x1F, 0xF9, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0xFE, 0x7F, 0xE0, 0x7F, 0x80, 0xFF, 0x01, 0xFE, 0x03, 0xFC, 0x07, 0xF8, 0x0F, 0xF0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x80, 0xFF, 0x01, 0xFE, 0x03, 0xFC, 0x07, 0xF8, 0x0F, 0xF0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x80, 0xFF, 0x01, 0xFE, 0x03, 0xFC, 0x07, 0xF8, 0x0F, 0xF0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x80, 0xFF, 0x01, 0xFE, 0x03, 0xFC, 0x0F, 0xFC, 0x7F, 0xFF, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xC0, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x78, 0x1F, 0xE3, 0xF0, 0x7F, 0x8F, 0xC1, 0xFC, 0x3F, 0x07, 0xF0, 0xFC, 0x1F, 0xC1, 0xE0, 0xFE, 0x07, 0xC3, 0xF0, 0x0F, 0xFF, 0x80, 0x07, 0xF0, 0x00, 0xFF, 0xFC, 0x1F, 0xFF, 0x0F, 0xFC, 0x00, 0xFF, 0x01, 0xFE, 0x00, 0x1E, 0x00, 0x7F, 0x80, 0x07, 0x00, 0x1F, 0xE0, 0x03, 0x80, 0x07, 0xF8, 0x01, 0xC0, 0x01, 0xFE, 0x00, 0xE0, 0x00, 0x7F, 0x80, 0x70, 0x00, 0x1F, 0xE0, 0x38, 0x00, 0x07, 0xF8, 0x1C, 0x00, 0x01, 0xFE, 0x0E, 0x00, 0x00, 0x7F, 0x87, 0x00, 0x00, 0x1F, 0xE3, 0xC0, 0x00, 0x07, 0xF9, 0xF8, 0x00, 0x01, 0xFE, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0xC0, 0x00, 0x1F, 0xFF, 0xF8, 0x00, 0x07, 0xFD, 0xFF, 0x00, 0x01, 0xFE, 0x7F, 0xE0, 0x00, 0x7F, 0x8F, 0xF8, 0x00, 0x1F, 0xE1, 0xFF, 0x00, 0x07, 0xF8, 0x3F, 0xE0, 0x01, 0xFE, 0x07, 0xFC, 0x00, 0x7F, 0x81, 0xFF, 0x80, 0x1F, 0xE0, 0x3F, 0xE0, 0x07, 0xF8, 0x07, 0xFC, 0x01, 0xFE, 0x00, 0xFF, 0x80, 0x7F, 0x80, 0x1F, 0xF0, 0x1F, 0xE0, 0x07, 0xFE, 0x07, 0xF8, 0x00, 0xFF, 0x83, 0xFF, 0x00, 0x3F, 0xF3, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x01, 0x1F, 0xE0, 0x00, 0x31, 0xFE, 0x00, 0x03, 0x1F, 0xE0, 0x00, 0x71, 0xFE, 0x00, 0x07, 0x1F, 0xE0, 0x00, 0xE1, 0xFE, 0x00, 0x1E, 0x1F, 0xE0, 0x07, 0xE3, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFE, 0x7F, 0xF0, 0x00, 0x01, 0xFF, 0xE1, 0xFF, 0x00, 0x00, 0x3F, 0xF0, 0x1F, 0xE0, 0x00, 0x0F, 0xFC, 0x03, 0xFC, 0x00, 0x01, 0xFF, 0x80, 0x7F, 0xC0, 0x00, 0x2F, 0xF0, 0x0B, 0xF8, 0x00, 0x0D, 0xFE, 0x01, 0x7F, 0x80, 0x01, 0xBF, 0xC0, 0x27, 0xF0, 0x00, 0x67, 0xF8, 0x04, 0xFF, 0x00, 0x0C, 0xFF, 0x00, 0x8F, 0xE0, 0x03, 0x1F, 0xE0, 0x11, 0xFE, 0x00, 0x63, 0xFC, 0x02, 0x3F, 0xC0, 0x08, 0x7F, 0x80, 0x43, 0xF8, 0x03, 0x0F, 0xF0, 0x08, 0x7F, 0x80, 0x61, 0xFE, 0x01, 0x07, 0xF0, 0x18, 0x3F, 0xC0, 0x20, 0xFF, 0x03, 0x07, 0xF8, 0x04, 0x0F, 0xE0, 0xC0, 0xFF, 0x00, 0x81, 0xFE, 0x18, 0x1F, 0xE0, 0x10, 0x3F, 0xC6, 0x03, 0xFC, 0x02, 0x03, 0xF8, 0xC0, 0x7F, 0x80, 0x40, 0x7F, 0x98, 0x0F, 0xF0, 0x08, 0x07, 0xF6, 0x01, 0xFE, 0x01, 0x00, 0xFF, 0xC0, 0x3F, 0xC0, 0x20, 0x0F, 0xF0, 0x07, 0xF8, 0x04, 0x01, 0xFE, 0x00, 0xFF, 0x00, 0x80, 0x1F, 0x80, 0x1F, 0xE0, 0x10, 0x03, 0xF0, 0x03, 0xFC, 0x02, 0x00, 0x7E, 0x00, 0x7F, 0x80, 0x40, 0x07, 0x80, 0x0F, 0xF0, 0x0C, 0x00, 0xF0, 0x01, 0xFE, 0x07, 0xC0, 0x0C, 0x00, 0x7F, 0xE7, 0xFF, 0x01, 0x80, 0x3F, 0xFF, 0xFF, 0xC0, 0x03, 0xFE, 0xFF, 0xC0, 0x01, 0xF0, 0xFF, 0xC0, 0x01, 0xC0, 0xFF, 0xC0, 0x01, 0x80, 0xFF, 0x80, 0x03, 0x01, 0xFF, 0x80, 0x06, 0x03, 0xFF, 0x80, 0x0C, 0x07, 0xFF, 0x80, 0x18, 0x0D, 0xFF, 0x80, 0x30, 0x19, 0xFF, 0x00, 0x60, 0x31, 0xFF, 0x00, 0xC0, 0x61, 0xFF, 0x01, 0x80, 0xC1, 0xFF, 0x03, 0x01, 0x83, 0xFF, 0x06, 0x03, 0x03, 0xFE, 0x0C, 0x06, 0x03, 0xFE, 0x18, 0x0C, 0x03, 0xFE, 0x30, 0x18, 0x03, 0xFE, 0x60, 0x30, 0x03, 0xFE, 0xC0, 0x60, 0x07, 0xFD, 0x80, 0xC0, 0x07, 0xFF, 0x01, 0x80, 0x07, 0xFE, 0x03, 0x00, 0x07, 0xFC, 0x06, 0x00, 0x07, 0xF8, 0x0C, 0x00, 0x07, 0xF0, 0x18, 0x00, 0x0F, 0xE0, 0x30, 0x00, 0x0F, 0xC0, 0x60, 0x00, 0x0F, 0x80, 0xC0, 0x00, 0x0F, 0x01, 0xC0, 0x00, 0x0E, 0x0F, 0xC0, 0x00, 0x1C, 0x7F, 0xE0, 0x00, 0x18, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0x3F, 0x07, 0xF0, 0x00, 0x7E, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x7E, 0x00, 0x1F, 0xC0, 0x7F, 0x00, 0x07, 0xF0, 0x3F, 0x00, 0x03, 0xF8, 0x3F, 0x80, 0x00, 0xFE, 0x3F, 0xC0, 0x00, 0x7F, 0x1F, 0xE0, 0x00, 0x3F, 0xCF, 0xE0, 0x00, 0x0F, 0xEF, 0xF0, 0x00, 0x07, 0xF7, 0xF8, 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0x3F, 0xFF, 0xC0, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x03, 0xFD, 0xFC, 0x00, 0x01, 0xFC, 0xFE, 0x00, 0x01, 0xFE, 0x7F, 0x80, 0x00, 0xFF, 0x1F, 0xC0, 0x00, 0x7F, 0x0F, 0xE0, 0x00, 0x3F, 0x83, 0xF8, 0x00, 0x3F, 0x80, 0xFC, 0x00, 0x1F, 0x80, 0x3F, 0x00, 0x1F, 0x80, 0x0F, 0xC0, 0x1F, 0x80, 0x03, 0xF8, 0x3F, 0x80, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0x01, 0xFE, 0x1F, 0xE0, 0x7F, 0x81, 0xFC, 0x1F, 0xE0, 0x7F, 0x87, 0xF8, 0x0F, 0xE1, 0xFE, 0x03, 0xFC, 0x7F, 0x80, 0xFF, 0x1F, 0xE0, 0x3F, 0xC7, 0xF8, 0x0F, 0xF1, 0xFE, 0x03, 0xFC, 0x7F, 0x80, 0xFF, 0x1F, 0xE0, 0x3F, 0x87, 0xF8, 0x1F, 0xE1, 0xFE, 0x07, 0xF0, 0x7F, 0x87, 0xF8, 0x1F, 0xFF, 0xF8, 0x07, 0xFF, 0xF8, 0x01, 0xFE, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFF, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0x3F, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x7E, 0x00, 0x1F, 0xC0, 0x7F, 0x00, 0x07, 0xF0, 0x3F, 0x00, 0x03, 0xF8, 0x3F, 0x80, 0x00, 0xFE, 0x1F, 0xC0, 0x00, 0x7F, 0x1F, 0xE0, 0x00, 0x3F, 0xCF, 0xE0, 0x00, 0x0F, 0xE7, 0xF0, 0x00, 0x07, 0xF7, 0xF8, 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0x3F, 0xFF, 0xC0, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x03, 0xFD, 0xFC, 0x00, 0x01, 0xFC, 0xFE, 0x00, 0x01, 0xFE, 0x7F, 0x80, 0x00, 0xFF, 0x1F, 0xC0, 0x00, 0x7F, 0x0F, 0xE0, 0x00, 0x3F, 0x83, 0xF8, 0x00, 0x3F, 0x80, 0xFC, 0x00, 0x1F, 0x80, 0x3F, 0x00, 0x1F, 0x80, 0x0F, 0xC0, 0x1F, 0x80, 0x03, 0xF0, 0x1F, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0xFF, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xF8, 0x00, 0x7F, 0xC3, 0xFC, 0x00, 0xFF, 0x01, 0xFC, 0x01, 0xFE, 0x03, 0xFC, 0x03, 0xFC, 0x03, 0xF8, 0x07, 0xF8, 0x07, 0xF8, 0x0F, 0xF0, 0x0F, 0xF0, 0x1F, 0xE0, 0x1F, 0xE0, 0x3F, 0xC0, 0x3F, 0xC0, 0x7F, 0x80, 0x7F, 0x80, 0xFF, 0x00, 0xFF, 0x01, 0xFE, 0x01, 0xFC, 0x03, 0xFC, 0x07, 0xF8, 0x07, 0xF8, 0x1F, 0xE0, 0x0F, 0xF0, 0xFF, 0x00, 0x1F, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0xE0, 0x00, 0x7F, 0x9F, 0xE0, 0x00, 0xFF, 0x3F, 0xC0, 0x01, 0xFE, 0x3F, 0xC0, 0x03, 0xFC, 0x7F, 0xC0, 0x07, 0xF8, 0x7F, 0xC0, 0x0F, 0xF0, 0x7F, 0x80, 0x1F, 0xE0, 0xFF, 0x80, 0x3F, 0xC0, 0xFF, 0x80, 0x7F, 0x80, 0xFF, 0x00, 0xFF, 0x01, 0xFF, 0x01, 0xFE, 0x01, 0xFF, 0x03, 0xFC, 0x01, 0xFF, 0x0F, 0xFC, 0x03, 0xFE, 0x7F, 0xFE, 0x03, 0xFF, 0x03, 0xF8, 0x10, 0x7F, 0xF9, 0x87, 0xC1, 0xFC, 0x78, 0x03, 0xE7, 0x80, 0x0F, 0x3C, 0x00, 0x3B, 0xE0, 0x01, 0xDF, 0x00, 0x06, 0xF8, 0x00, 0x37, 0xE0, 0x00, 0xBF, 0x80, 0x01, 0xFF, 0x00, 0x0F, 0xFE, 0x00, 0x3F, 0xFC, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xF0, 0x1F, 0xFF, 0xC0, 0x7F, 0xFF, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xE0, 0x03, 0xFF, 0x80, 0x07, 0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0xC0, 0x01, 0xEE, 0x00, 0x0F, 0x78, 0x00, 0xF3, 0xE0, 0x0F, 0x9F, 0xC0, 0xF8, 0x8F, 0xFF, 0x04, 0x0F, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xC3, 0xFF, 0x03, 0xFC, 0x0F, 0xE0, 0x3F, 0xC0, 0x7C, 0x03, 0xFC, 0x03, 0xC0, 0x3F, 0xC0, 0x38, 0x03, 0xFC, 0x01, 0x80, 0x3F, 0xC0, 0x10, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xFF, 0xC0, 0xFF, 0xFE, 0x07, 0xFC, 0xFF, 0xC0, 0x07, 0xC1, 0xFE, 0x00, 0x0E, 0x07, 0xF8, 0x00, 0x18, 0x1F, 0xE0, 0x00, 0x60, 0x7F, 0x80, 0x01, 0x81, 0xFE, 0x00, 0x06, 0x07, 0xF8, 0x00, 0x18, 0x1F, 0xE0, 0x00, 0x60, 0x7F, 0x80, 0x01, 0x81, 0xFE, 0x00, 0x06, 0x07, 0xF8, 0x00, 0x18, 0x1F, 0xE0, 0x00, 0x60, 0x7F, 0x80, 0x01, 0x81, 0xFE, 0x00, 0x06, 0x07, 0xF8, 0x00, 0x18, 0x1F, 0xE0, 0x00, 0x60, 0x7F, 0x80, 0x01, 0x81, 0xFE, 0x00, 0x06, 0x07, 0xF8, 0x00, 0x18, 0x1F, 0xE0, 0x00, 0x60, 0x7F, 0x80, 0x01, 0x81, 0xFE, 0x00, 0x06, 0x07, 0xF8, 0x00, 0x18, 0x1F, 0xE0, 0x00, 0x60, 0x7F, 0x80, 0x03, 0x00, 0xFF, 0x00, 0x0C, 0x03, 0xFC, 0x00, 0x30, 0x07, 0xF0, 0x01, 0x80, 0x0F, 0xE0, 0x0E, 0x00, 0x1F, 0xE0, 0xF0, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0x9F, 0xFC, 0x00, 0x1F, 0x07, 0xFC, 0x00, 0x07, 0x01, 0xFE, 0x00, 0x03, 0x00, 0x7F, 0x80, 0x03, 0x80, 0x3F, 0xC0, 0x01, 0x80, 0x1F, 0xE0, 0x00, 0xC0, 0x07, 0xF8, 0x00, 0xC0, 0x03, 0xFC, 0x00, 0x60, 0x00, 0xFF, 0x00, 0x30, 0x00, 0x7F, 0x80, 0x30, 0x00, 0x1F, 0xE0, 0x18, 0x00, 0x0F, 0xF0, 0x18, 0x00, 0x07, 0xF8, 0x0C, 0x00, 0x01, 0xFE, 0x06, 0x00, 0x00, 0xFF, 0x06, 0x00, 0x00, 0x3F, 0xC3, 0x00, 0x00, 0x1F, 0xE3, 0x80, 0x00, 0x0F, 0xF1, 0x80, 0x00, 0x03, 0xFC, 0xC0, 0x00, 0x01, 0xFE, 0xC0, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0xFF, 0xF8, 0x7F, 0xFF, 0x0F, 0xFB, 0xFF, 0x00, 0xFF, 0xC0, 0x1F, 0x0F, 0xF0, 0x03, 0xFC, 0x00, 0x70, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0x81, 0xFE, 0x00, 0x7F, 0x80, 0x1C, 0x0F, 0xF0, 0x03, 0xFC, 0x00, 0xC0, 0x3F, 0x80, 0x0F, 0xE0, 0x06, 0x01, 0xFE, 0x00, 0x7F, 0x00, 0x70, 0x0F, 0xF0, 0x07, 0xFC, 0x03, 0x00, 0x3F, 0x80, 0x3F, 0xE0, 0x18, 0x01, 0xFE, 0x01, 0xFF, 0x01, 0xC0, 0x0F, 0xF0, 0x1B, 0xFC, 0x0C, 0x00, 0x3F, 0x80, 0xCF, 0xE0, 0x60, 0x01, 0xFE, 0x06, 0x7F, 0x07, 0x00, 0x0F, 0xF0, 0x63, 0xFC, 0x30, 0x00, 0x3F, 0x83, 0x0F, 0xE1, 0x80, 0x01, 0xFE, 0x30, 0x7F, 0x1C, 0x00, 0x07, 0xF1, 0x81, 0xFC, 0xC0, 0x00, 0x3F, 0x8C, 0x0F, 0xE6, 0x00, 0x01, 0xFE, 0xC0, 0x7F, 0x70, 0x00, 0x07, 0xF6, 0x01, 0xFB, 0x00, 0x00, 0x3F, 0xE0, 0x0F, 0xF8, 0x00, 0x01, 0xFF, 0x00, 0x7F, 0xC0, 0x00, 0x07, 0xF8, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xE0, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0xFF, 0x3F, 0xF8, 0x01, 0xF8, 0x1F, 0xF8, 0x01, 0xE0, 0x0F, 0xF8, 0x01, 0xC0, 0x0F, 0xF8, 0x01, 0x80, 0x07, 0xFC, 0x03, 0x80, 0x03, 0xFE, 0x07, 0x00, 0x03, 0xFE, 0x06, 0x00, 0x01, 0xFF, 0x0C, 0x00, 0x00, 0xFF, 0x9C, 0x00, 0x00, 0xFF, 0x98, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x19, 0xFE, 0x00, 0x00, 0x31, 0xFF, 0x00, 0x00, 0x70, 0xFF, 0x80, 0x00, 0x60, 0x7F, 0x80, 0x00, 0xC0, 0x7F, 0xC0, 0x01, 0xC0, 0x3F, 0xE0, 0x03, 0x80, 0x1F, 0xE0, 0x07, 0x00, 0x1F, 0xF0, 0x07, 0x00, 0x0F, 0xF8, 0x0F, 0x00, 0x0F, 0xF8, 0x3F, 0x80, 0x1F, 0xFC, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0x7F, 0xF0, 0x00, 0x7E, 0x1F, 0xF0, 0x00, 0x38, 0x1F, 0xF0, 0x00, 0x38, 0x0F, 0xF0, 0x00, 0x70, 0x0F, 0xF8, 0x00, 0x60, 0x07, 0xF8, 0x00, 0x60, 0x07, 0xFC, 0x00, 0xC0, 0x03, 0xFC, 0x01, 0xC0, 0x01, 0xFE, 0x01, 0x80, 0x01, 0xFE, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x86, 0x00, 0x00, 0x7F, 0x8E, 0x00, 0x00, 0x7F, 0xCC, 0x00, 0x00, 0x3F, 0xD8, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xFC, 0x3F, 0x80, 0x7F, 0xC3, 0xE0, 0x07, 0xF8, 0x38, 0x00, 0xFF, 0x83, 0x80, 0x0F, 0xF0, 0x30, 0x01, 0xFE, 0x07, 0x00, 0x3F, 0xE0, 0x60, 0x03, 0xFC, 0x06, 0x00, 0x7F, 0xC0, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xF8, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x3F, 0xC0, 0x01, 0x07, 0xFC, 0x00, 0x30, 0xFF, 0x80, 0x03, 0x0F, 0xF0, 0x00, 0x31, 0xFF, 0x00, 0x07, 0x1F, 0xE0, 0x00, 0xF3, 0xFE, 0x00, 0x1E, 0x7F, 0xC0, 0x03, 0xE7, 0xF8, 0x01, 0xFE, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xF0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xFF, 0xFF, 0xF8, 0xF0, 0x01, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x7C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x1E, 0xFF, 0xFF, 0xFC, 0x1F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3F, 0xFF, 0xFF, 0xF8, 0x00, 0x78, 0x00, 0x07, 0xC0, 0x00, 0x3F, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xE0, 0x01, 0xEF, 0x00, 0x0F, 0x3C, 0x00, 0xF1, 0xE0, 0x07, 0x87, 0x80, 0x78, 0x3C, 0x03, 0xC0, 0xF0, 0x3C, 0x07, 0x81, 0xE0, 0x1E, 0x1E, 0x00, 0xF0, 0xF0, 0x07, 0xCF, 0x00, 0x1E, 0x78, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0x1F, 0x03, 0xF0, 0x7E, 0x03, 0xE0, 0x3E, 0x01, 0xE0, 0x1E, 0x00, 0xE0, 0x03, 0xFC, 0x00, 0x3F, 0xFC, 0x03, 0xE1, 0xF8, 0x0F, 0x03, 0xF0, 0x7C, 0x07, 0xC1, 0xF8, 0x1F, 0x87, 0xE0, 0x7E, 0x1F, 0x81, 0xF8, 0x3C, 0x07, 0xE0, 0x00, 0x1F, 0x80, 0x01, 0xFE, 0x00, 0x3F, 0xF8, 0x03, 0xE7, 0xE0, 0x3E, 0x1F, 0x83, 0xF0, 0x7E, 0x1F, 0x81, 0xF8, 0x7E, 0x07, 0xE3, 0xF8, 0x1F, 0x8F, 0xE0, 0x7E, 0x3F, 0x83, 0xF8, 0xFF, 0x1F, 0xE1, 0xFF, 0xDF, 0xF7, 0xFE, 0x3F, 0x07, 0xE0, 0xF8, 0xFF, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xC7, 0xF0, 0x07, 0xEF, 0xFE, 0x03, 0xFC, 0x3F, 0x81, 0xFC, 0x0F, 0xE0, 0xFC, 0x03, 0xF0, 0x7E, 0x01, 0xFC, 0x3F, 0x00, 0xFE, 0x1F, 0x80, 0x3F, 0x8F, 0xC0, 0x1F, 0xC7, 0xE0, 0x0F, 0xE3, 0xF0, 0x07, 0xF1, 0xF8, 0x03, 0xF8, 0xFC, 0x01, 0xFC, 0x7E, 0x00, 0xFE, 0x3F, 0x00, 0x7F, 0x1F, 0x80, 0x3F, 0x0F, 0xC0, 0x1F, 0x87, 0xE0, 0x1F, 0xC3, 0xF0, 0x0F, 0xC1, 0xF8, 0x07, 0xE0, 0xFE, 0x07, 0xE0, 0x73, 0x87, 0xE0, 0x30, 0xFF, 0xC0, 0x10, 0x1F, 0x80, 0x00, 0x00, 0xFC, 0x00, 0x7F, 0xE0, 0x3E, 0x3E, 0x0F, 0x83, 0xE3, 0xE0, 0x7C, 0x7C, 0x0F, 0x9F, 0x01, 0xF3, 0xE0, 0x1C, 0x7C, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xF0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x21, 0xFE, 0x0C, 0x3F, 0xFF, 0x01, 0xFF, 0x80, 0x0F, 0xC0, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x03, 0xF1, 0xF8, 0x07, 0xFD, 0xF8, 0x1F, 0xC7, 0xF8, 0x1F, 0x83, 0xF8, 0x3F, 0x01, 0xF8, 0x7F, 0x01, 0xF8, 0x7E, 0x01, 0xF8, 0x7E, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0x7E, 0x01, 0xF8, 0x7F, 0x01, 0xF8, 0x3F, 0x03, 0xF8, 0x3F, 0x03, 0xF8, 0x1F, 0x87, 0xFC, 0x0F, 0xFD, 0xFF, 0x03, 0xF1, 0xC0, 0x03, 0xF0, 0x03, 0xFF, 0x01, 0xE1, 0xE0, 0xF8, 0x7C, 0x3C, 0x0F, 0x1F, 0x03, 0xE7, 0xC0, 0xFB, 0xF0, 0x3E, 0xFC, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x1F, 0x80, 0x07, 0xF0, 0x0C, 0xFC, 0x06, 0x3F, 0xC3, 0x07, 0xFF, 0x80, 0xFF, 0xC0, 0x0F, 0xC0, 0x00, 0xFC, 0x01, 0xFF, 0x81, 0xF1, 0xC1, 0xF0, 0xF0, 0xF8, 0xF8, 0xFC, 0x7C, 0x7E, 0x1C, 0x3F, 0x00, 0x1F, 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x1F, 0xFF, 0x0F, 0xFF, 0x80, 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x1F, 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x1F, 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x7F, 0x80, 0xFF, 0xF8, 0x00, 0x07, 0xF0, 0x03, 0xFF, 0xFC, 0xF8, 0x7F, 0xBE, 0x07, 0x87, 0xC0, 0xF9, 0xF8, 0x1F, 0xBF, 0x03, 0xF7, 0xE0, 0x7E, 0xFC, 0x0F, 0xDF, 0x81, 0xF9, 0xF0, 0x3F, 0x3E, 0x07, 0xC3, 0xE1, 0xF8, 0x3C, 0x7E, 0x01, 0xFF, 0x00, 0x60, 0x00, 0x38, 0x00, 0x0F, 0x00, 0x01, 0xF0, 0x00, 0x7F, 0xFF, 0x0F, 0xFF, 0xF9, 0xFF, 0xFF, 0x9F, 0xFF, 0xF9, 0xFF, 0xFF, 0x0F, 0xFF, 0xEF, 0x00, 0x3F, 0xC0, 0x03, 0xF8, 0x00, 0x7F, 0x00, 0x1C, 0xF8, 0x07, 0x0F, 0xFF, 0xC0, 0x7F, 0xC0, 0xFF, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x87, 0xE0, 0x1F, 0x9F, 0xF0, 0x1F, 0xBF, 0xF8, 0x1F, 0xF1, 0xF8, 0x1F, 0xC0, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x3F, 0xC1, 0xFE, 0xFF, 0xE3, 0xFF, 0x0F, 0x07, 0xE1, 0xFE, 0x3F, 0xC7, 0xF8, 0x7F, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC3, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE1, 0xFE, 0xFF, 0xE0, 0x00, 0x70, 0x07, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x07, 0xF0, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x01, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xDC, 0x3F, 0xF8, 0xFB, 0xE3, 0xEF, 0x0F, 0xBC, 0x7C, 0x7F, 0xE0, 0x7E, 0x00, 0xFF, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xE1, 0xFF, 0x83, 0xF0, 0x3F, 0x01, 0xF8, 0x0E, 0x00, 0xFC, 0x06, 0x00, 0x7E, 0x06, 0x00, 0x3F, 0x06, 0x00, 0x1F, 0x86, 0x00, 0x0F, 0xC7, 0x00, 0x07, 0xE7, 0x80, 0x03, 0xF7, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7E, 0x7F, 0x00, 0x3F, 0x1F, 0xC0, 0x1F, 0x8F, 0xE0, 0x0F, 0xC3, 0xF8, 0x07, 0xE0, 0xFE, 0x03, 0xF0, 0x7F, 0x81, 0xF8, 0x1F, 0xC0, 0xFC, 0x0F, 0xF0, 0xFF, 0x07, 0xFD, 0xFF, 0xC7, 0xFF, 0xFF, 0x87, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x0F, 0xF7, 0xFF, 0x00, 0x07, 0xE0, 0x3F, 0x07, 0xFC, 0xFF, 0x87, 0xFC, 0x0F, 0xEF, 0xFE, 0x7F, 0xF0, 0x3F, 0xC3, 0xFF, 0x1F, 0x81, 0xFC, 0x0F, 0xE0, 0x7E, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x7E, 0x03, 0xF0, 0x1F, 0x83, 0xF0, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0xFC, 0x07, 0xE0, 0x3F, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x3F, 0x01, 0xF8, 0x0F, 0xC1, 0xF8, 0x0F, 0xC0, 0x7E, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x7E, 0x03, 0xF0, 0x1F, 0x83, 0xF0, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0xFC, 0x07, 0xE0, 0x3F, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x3F, 0x01, 0xF8, 0x0F, 0xC1, 0xF8, 0x0F, 0xC0, 0x7E, 0x1F, 0xE0, 0xFF, 0x07, 0xFB, 0xFF, 0x8F, 0xFC, 0x7F, 0xE0, 0x00, 0x07, 0xE0, 0xFF, 0x9F, 0xF0, 0x3F, 0xBF, 0xF8, 0x1F, 0xF1, 0xF8, 0x1F, 0xC0, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x3F, 0xC1, 0xFE, 0xFF, 0xE3, 0xFF, 0x01, 0xFC, 0x00, 0x3F, 0xF8, 0x03, 0xE3, 0xE0, 0x3E, 0x0F, 0x83, 0xF0, 0x7E, 0x1F, 0x01, 0xF1, 0xF8, 0x0F, 0xCF, 0xC0, 0x7E, 0xFE, 0x03, 0xFF, 0xF0, 0x1F, 0xFF, 0x80, 0xFF, 0xFC, 0x07, 0xFF, 0xE0, 0x3F, 0xFF, 0x01, 0xFF, 0xF8, 0x0F, 0xFF, 0xC0, 0x7F, 0x7E, 0x03, 0xF3, 0xF0, 0x1F, 0x8F, 0x80, 0xF8, 0x7E, 0x0F, 0xC1, 0xF0, 0x7C, 0x07, 0xC7, 0xC0, 0x1F, 0xFC, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xC0, 0xFF, 0xBF, 0xF0, 0x3F, 0xF1, 0xF8, 0x1F, 0xC0, 0xFC, 0x1F, 0xC0, 0xFC, 0x1F, 0x80, 0xFE, 0x1F, 0x80, 0x7E, 0x1F, 0x80, 0x7F, 0x1F, 0x80, 0x7F, 0x1F, 0x80, 0x7F, 0x1F, 0x80, 0x7F, 0x1F, 0x80, 0x7F, 0x1F, 0x80, 0x7F, 0x1F, 0x80, 0x7F, 0x1F, 0x80, 0x7F, 0x1F, 0x80, 0x7F, 0x1F, 0x80, 0x7E, 0x1F, 0x80, 0x7E, 0x1F, 0x80, 0xFE, 0x1F, 0x80, 0xFC, 0x1F, 0xC1, 0xF8, 0x1F, 0xE3, 0xF8, 0x1F, 0xBF, 0xE0, 0x1F, 0x8F, 0xC0, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0xF8, 0x00, 0x00, 0xF8, 0x08, 0x07, 0xFE, 0x18, 0x0F, 0xC7, 0x38, 0x1F, 0x83, 0xF8, 0x3F, 0x01, 0xF8, 0x3F, 0x01, 0xF8, 0x7F, 0x01, 0xF8, 0x7E, 0x01, 0xF8, 0x7E, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0xFE, 0x01, 0xF8, 0x7E, 0x01, 0xF8, 0x7F, 0x01, 0xF8, 0x7F, 0x01, 0xF8, 0x3F, 0x83, 0xF8, 0x1F, 0xC7, 0xF8, 0x0F, 0xFD, 0xF8, 0x03, 0xF1, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xFF, 0x00, 0x07, 0x9F, 0xF3, 0xF8, 0xFE, 0xFF, 0x8F, 0xFF, 0xF1, 0xFE, 0x7E, 0x3F, 0x87, 0x87, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x7F, 0x80, 0x3F, 0xFC, 0x00, 0x0F, 0x84, 0x3F, 0xF8, 0xE1, 0xF3, 0x80, 0xEF, 0x00, 0xDE, 0x01, 0xBE, 0x01, 0x7E, 0x00, 0xFF, 0x01, 0xFF, 0x81, 0xFF, 0xC3, 0xFF, 0xC3, 0xFF, 0xC1, 0xFF, 0x80, 0xFF, 0x80, 0x7F, 0x80, 0x7F, 0x80, 0x7F, 0x00, 0x7E, 0x00, 0xFE, 0x01, 0xDF, 0x0F, 0x37, 0xFC, 0x43, 0xF0, 0x01, 0x00, 0x0C, 0x00, 0x70, 0x01, 0xC0, 0x0F, 0x00, 0x7C, 0x03, 0xF0, 0x1F, 0xC0, 0xFF, 0xF3, 0xFF, 0xC3, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x23, 0xF0, 0x8F, 0xE6, 0x1F, 0xF0, 0x7F, 0x80, 0xF8, 0x00, 0xFF, 0x87, 0xFC, 0x1F, 0xC0, 0xFE, 0x07, 0xE0, 0x3F, 0x03, 0xF0, 0x1F, 0x81, 0xF8, 0x0F, 0xC0, 0xFC, 0x07, 0xE0, 0x7E, 0x03, 0xF0, 0x3F, 0x01, 0xF8, 0x1F, 0x80, 0xFC, 0x0F, 0xC0, 0x7E, 0x07, 0xE0, 0x3F, 0x03, 0xF0, 0x1F, 0x81, 0xF8, 0x0F, 0xC0, 0xFC, 0x07, 0xE0, 0x7E, 0x03, 0xF0, 0x3F, 0x01, 0xF8, 0x1F, 0x80, 0xFC, 0x0F, 0xC0, 0x7E, 0x07, 0xE0, 0x7F, 0x03, 0xF8, 0x7F, 0xC0, 0xFF, 0xEF, 0xF8, 0x3F, 0xE7, 0xC0, 0x0F, 0xC2, 0x00, 0xFF, 0xF1, 0xFC, 0xFF, 0x01, 0xE3, 0xFC, 0x03, 0x07, 0xF0, 0x0C, 0x1F, 0xC0, 0x60, 0x3F, 0x81, 0x80, 0xFE, 0x04, 0x01, 0xF8, 0x30, 0x07, 0xF0, 0xC0, 0x1F, 0xC6, 0x00, 0x3F, 0x98, 0x00, 0xFE, 0x40, 0x01, 0xFB, 0x00, 0x07, 0xFC, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE7, 0xFF, 0x3F, 0xBF, 0xE0, 0xFE, 0x07, 0x0F, 0xE0, 0x7F, 0x03, 0x83, 0xF0, 0x1F, 0x81, 0x81, 0xFC, 0x0F, 0xC0, 0xC0, 0xFE, 0x07, 0xF0, 0x40, 0x3F, 0x03, 0xF8, 0x60, 0x1F, 0xC3, 0xFC, 0x30, 0x07, 0xE1, 0xFE, 0x10, 0x03, 0xF0, 0x9F, 0x98, 0x01, 0xFC, 0xCF, 0xCC, 0x00, 0x7E, 0x67, 0xEC, 0x00, 0x3F, 0xE1, 0xFE, 0x00, 0x1F, 0xF0, 0xFE, 0x00, 0x07, 0xF0, 0x7F, 0x00, 0x03, 0xF8, 0x3F, 0x80, 0x00, 0xFC, 0x0F, 0x80, 0x00, 0x7C, 0x07, 0xC0, 0x00, 0x3E, 0x03, 0xE0, 0x00, 0x0F, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x70, 0x00, 0x03, 0x80, 0x38, 0x00, 0x00, 0x80, 0x08, 0x00, 0xFF, 0xF3, 0xFD, 0xFF, 0x03, 0xC3, 0xFC, 0x0E, 0x07, 0xF0, 0x30, 0x1F, 0xE1, 0x80, 0x3F, 0x8C, 0x00, 0x7F, 0x70, 0x01, 0xFF, 0x80, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x1B, 0xF8, 0x00, 0xCF, 0xF0, 0x06, 0x1F, 0xC0, 0x38, 0x3F, 0x80, 0xC0, 0xFF, 0x07, 0x01, 0xFC, 0x3C, 0x07, 0xFB, 0xFC, 0x7F, 0xF0, 0xFF, 0xE3, 0xFB, 0xFC, 0x07, 0x8F, 0xE0, 0x18, 0x7F, 0x01, 0x81, 0xF8, 0x0C, 0x0F, 0xE0, 0x60, 0x7F, 0x06, 0x01, 0xF8, 0x30, 0x0F, 0xE1, 0x80, 0x7F, 0x18, 0x01, 0xF8, 0xC0, 0x0F, 0xE6, 0x00, 0x3F, 0x60, 0x01, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x00, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x03, 0x82, 0x00, 0x3E, 0x30, 0x01, 0xF1, 0x00, 0x0F, 0x98, 0x00, 0x3F, 0x80, 0x00, 0xF0, 0x00, 0x00, 0x7F, 0xFF, 0xEF, 0xFF, 0xFD, 0xE0, 0x7F, 0x30, 0x1F, 0xC6, 0x07, 0xF8, 0x80, 0xFE, 0x00, 0x3F, 0xC0, 0x07, 0xF0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xFC, 0x00, 0x7F, 0x00, 0x1F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x03, 0x3F, 0xC0, 0x67, 0xF0, 0x19, 0xFE, 0x07, 0x3F, 0x83, 0xEF, 0xFF, 0xFD, 0xFF, 0xFF, 0x80, 0x00, 0x7C, 0x07, 0xE0, 0x3E, 0x00, 0xF8, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0xF8, 0x03, 0xC0, 0x3C, 0x01, 0xF0, 0x00, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x3E, 0x00, 0xF8, 0x01, 0xF8, 0x01, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF8, 0x01, 0xF8, 0x01, 0xF0, 0x07, 0xC0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0x7C, 0x00, 0xF0, 0x00, 0xF0, 0x03, 0xE0, 0x3C, 0x01, 0xF0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x01, 0xF0, 0x07, 0xC0, 0x7E, 0x03, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0xFF, 0xC0, 0x47, 0xFF, 0xC3, 0x9F, 0xFF, 0xFF, 0x70, 0x7F, 0xF8, 0x80, 0x7F, 0xC0, 0x00, 0x3E, 0x00}; const GFXglyph FreeSerifBold24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 12, 0, 1}, // 0x20 ' ' {0, 8, 34, 16, 4, -32}, // 0x21 '!' {34, 17, 13, 26, 4, -32}, // 0x22 '"' {62, 23, 33, 23, 0, -32}, // 0x23 '#' {157, 21, 39, 24, 1, -34}, // 0x24 '$' {260, 35, 34, 47, 6, -32}, // 0x25 '%' {409, 34, 34, 39, 3, -32}, // 0x26 '&' {554, 5, 13, 13, 4, -32}, // 0x27 ''' {563, 12, 41, 16, 2, -32}, // 0x28 '(' {625, 12, 41, 16, 1, -32}, // 0x29 ')' {687, 18, 21, 24, 3, -32}, // 0x2A '*' {735, 26, 25, 32, 3, -24}, // 0x2B '+' {817, 8, 15, 12, 2, -6}, // 0x2C ',' {832, 11, 5, 16, 2, -12}, // 0x2D '-' {839, 8, 8, 12, 2, -6}, // 0x2E '.' {847, 15, 33, 13, -1, -32}, // 0x2F '/' {909, 22, 34, 23, 1, -32}, // 0x30 '0' {1003, 18, 33, 23, 3, -32}, // 0x31 '1' {1078, 21, 33, 24, 1, -32}, // 0x32 '2' {1165, 21, 34, 24, 1, -32}, // 0x33 '3' {1255, 21, 33, 24, 1, -32}, // 0x34 '4' {1342, 20, 32, 23, 2, -31}, // 0x35 '5' {1422, 21, 34, 24, 1, -32}, // 0x36 '6' {1512, 21, 32, 23, 1, -31}, // 0x37 '7' {1596, 21, 34, 23, 1, -32}, // 0x38 '8' {1686, 22, 34, 23, 1, -32}, // 0x39 '9' {1780, 8, 24, 16, 4, -22}, // 0x3A ':' {1804, 9, 31, 16, 3, -22}, // 0x3B ';' {1839, 26, 26, 32, 3, -24}, // 0x3C '<' {1924, 26, 17, 32, 3, -20}, // 0x3D '=' {1980, 26, 26, 32, 3, -24}, // 0x3E '>' {2065, 18, 34, 24, 3, -32}, // 0x3F '?' {2142, 33, 34, 44, 5, -32}, // 0x40 '@' {2283, 32, 33, 34, 1, -32}, // 0x41 'A' {2415, 28, 32, 31, 1, -31}, // 0x42 'B' {2527, 30, 34, 33, 2, -32}, // 0x43 'C' {2655, 32, 32, 34, 1, -31}, // 0x44 'D' {2783, 28, 32, 32, 2, -31}, // 0x45 'E' {2895, 25, 32, 29, 2, -31}, // 0x46 'F' {2995, 33, 34, 36, 2, -32}, // 0x47 'G' {3136, 33, 32, 37, 2, -31}, // 0x48 'H' {3268, 15, 32, 18, 2, -31}, // 0x49 'I' {3328, 22, 37, 24, 0, -31}, // 0x4A 'J' {3430, 34, 32, 36, 2, -31}, // 0x4B 'K' {3566, 28, 32, 31, 2, -31}, // 0x4C 'L' {3678, 43, 32, 45, 0, -31}, // 0x4D 'M' {3850, 31, 32, 34, 1, -31}, // 0x4E 'N' {3974, 33, 34, 37, 2, -32}, // 0x4F 'O' {4115, 26, 32, 30, 2, -31}, // 0x50 'P' {4219, 33, 41, 37, 2, -32}, // 0x51 'Q' {4389, 31, 32, 34, 2, -31}, // 0x52 'R' {4513, 21, 34, 27, 3, -32}, // 0x53 'S' {4603, 28, 32, 30, 1, -31}, // 0x54 'T' {4715, 30, 33, 34, 2, -31}, // 0x55 'U' {4839, 33, 32, 33, 0, -31}, // 0x56 'V' {4971, 45, 33, 46, 1, -31}, // 0x57 'W' {5157, 32, 32, 34, 1, -31}, // 0x58 'X' {5285, 32, 32, 33, 1, -31}, // 0x59 'Y' {5413, 28, 32, 30, 1, -31}, // 0x5A 'Z' {5525, 11, 39, 16, 3, -31}, // 0x5B '[' {5579, 15, 33, 13, -1, -32}, // 0x5C '\' {5641, 11, 39, 16, 2, -31}, // 0x5D ']' {5695, 21, 17, 27, 3, -31}, // 0x5E '^' {5740, 24, 3, 23, 0, 5}, // 0x5F '_' {5749, 11, 9, 16, 0, -33}, // 0x60 '`' {5762, 22, 24, 23, 1, -22}, // 0x61 'a' {5828, 25, 33, 26, 0, -31}, // 0x62 'b' {5932, 19, 24, 20, 1, -22}, // 0x63 'c' {5989, 24, 33, 26, 1, -31}, // 0x64 'd' {6088, 18, 24, 21, 1, -22}, // 0x65 'e' {6142, 17, 33, 18, 1, -32}, // 0x66 'f' {6213, 19, 32, 24, 2, -22}, // 0x67 'g' {6289, 24, 32, 26, 0, -31}, // 0x68 'h' {6385, 11, 33, 14, 1, -32}, // 0x69 'i' {6431, 14, 42, 18, 0, -32}, // 0x6A 'j' {6505, 25, 32, 26, 0, -31}, // 0x6B 'k' {6605, 11, 32, 13, 0, -31}, // 0x6C 'l' {6649, 37, 23, 39, 0, -22}, // 0x6D 'm' {6756, 24, 23, 26, 0, -22}, // 0x6E 'n' {6825, 21, 24, 24, 1, -22}, // 0x6F 'o' {6888, 24, 32, 26, 0, -22}, // 0x70 'p' {6984, 24, 32, 26, 1, -22}, // 0x71 'q' {7080, 19, 23, 20, 0, -22}, // 0x72 'r' {7135, 15, 24, 19, 2, -22}, // 0x73 's' {7180, 14, 31, 16, 1, -29}, // 0x74 't' {7235, 25, 23, 27, 0, -21}, // 0x75 'u' {7307, 22, 23, 23, 0, -21}, // 0x76 'v' {7371, 33, 23, 33, 0, -21}, // 0x77 'w' {7466, 22, 22, 24, 1, -21}, // 0x78 'x' {7527, 21, 31, 23, 0, -21}, // 0x79 'y' {7609, 19, 22, 21, 1, -21}, // 0x7A 'z' {7662, 14, 42, 19, 1, -33}, // 0x7B '{' {7736, 4, 33, 10, 3, -32}, // 0x7C '|' {7753, 14, 42, 19, 4, -33}, // 0x7D '}' {7827, 22, 7, 24, 1, -14}}; // 0x7E '~' const GFXfont FreeSerifBold24pt7b PROGMEM = { (uint8_t *)FreeSerifBold24pt7bBitmaps, (GFXglyph *)FreeSerifBold24pt7bGlyphs, 0x20, 0x7E, 56}; // Approx. 8519 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifBold9pt7b.h ================================================ const uint8_t FreeSerifBold9pt7bBitmaps[] PROGMEM = { 0xFF, 0xF4, 0x92, 0x1F, 0xF0, 0xCF, 0x3C, 0xE3, 0x88, 0x13, 0x09, 0x84, 0xC2, 0x47, 0xF9, 0x90, 0xC8, 0x4C, 0xFF, 0x13, 0x09, 0x0C, 0x86, 0x40, 0x10, 0x38, 0xD6, 0x92, 0xD2, 0xF0, 0x7C, 0x3E, 0x17, 0x93, 0x93, 0xD6, 0x7C, 0x10, 0x3C, 0x21, 0xCF, 0x0E, 0x24, 0x30, 0xA0, 0xC5, 0x03, 0x34, 0xE7, 0x26, 0x40, 0xB9, 0x04, 0xC4, 0x23, 0x30, 0x8C, 0x84, 0x1C, 0x0F, 0x00, 0xCC, 0x06, 0x60, 0x3E, 0x00, 0xE7, 0x8F, 0x18, 0x9C, 0x8C, 0xE4, 0xE3, 0xC7, 0x9E, 0x3C, 0x72, 0xFD, 0xE0, 0xFF, 0x80, 0x32, 0x44, 0xCC, 0xCC, 0xCC, 0xC4, 0x62, 0x10, 0x84, 0x22, 0x33, 0x33, 0x33, 0x32, 0x64, 0x80, 0x31, 0x6B, 0xB1, 0x8E, 0xD6, 0x8C, 0x00, 0x08, 0x04, 0x02, 0x01, 0x0F, 0xF8, 0x40, 0x20, 0x10, 0x08, 0x00, 0xDF, 0x95, 0x00, 0xFF, 0xFF, 0x80, 0x0C, 0x21, 0x86, 0x10, 0xC3, 0x08, 0x61, 0x84, 0x30, 0xC0, 0x1C, 0x33, 0x98, 0xDC, 0x7E, 0x3F, 0x1F, 0x8F, 0xC7, 0xE3, 0xB1, 0x98, 0xC3, 0x80, 0x08, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0xBF, 0x3C, 0x3F, 0x23, 0xC0, 0xE0, 0x70, 0x30, 0x38, 0x18, 0x18, 0x18, 0x5F, 0xDF, 0xE0, 0x7C, 0x8E, 0x0E, 0x0E, 0x0C, 0x1E, 0x07, 0x03, 0x03, 0x02, 0xE6, 0xF8, 0x06, 0x0E, 0x0E, 0x3E, 0x2E, 0x4E, 0x8E, 0x8E, 0xFF, 0xFF, 0x0E, 0x0E, 0x3F, 0x7E, 0x40, 0x40, 0xF8, 0xFC, 0x1E, 0x06, 0x02, 0x02, 0xE4, 0xF8, 0x07, 0x1C, 0x30, 0x70, 0xFC, 0xE6, 0xE7, 0xE7, 0xE7, 0x67, 0x66, 0x3C, 0x7F, 0x3F, 0xA0, 0xD0, 0x40, 0x60, 0x30, 0x10, 0x18, 0x0C, 0x04, 0x06, 0x03, 0x00, 0x3C, 0xC6, 0xC6, 0xC6, 0xFC, 0x7C, 0x3E, 0xCF, 0xC7, 0xC7, 0xC6, 0x7C, 0x3E, 0x33, 0xB8, 0xDC, 0x7E, 0x3F, 0x1D, 0xCE, 0x7F, 0x07, 0x07, 0x0F, 0x1C, 0x00, 0xFF, 0x80, 0x3F, 0xE0, 0xFF, 0x80, 0x37, 0xE5, 0x40, 0x00, 0x00, 0x70, 0x78, 0x78, 0x78, 0x38, 0x03, 0x80, 0x3C, 0x03, 0xC0, 0x30, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0xC0, 0x3C, 0x03, 0xC0, 0x1C, 0x01, 0xC1, 0xE1, 0xE1, 0xE0, 0xE0, 0x00, 0x00, 0x3D, 0x9F, 0x3E, 0x70, 0xE1, 0x04, 0x08, 0x00, 0x70, 0xE1, 0xC0, 0x0F, 0x81, 0x83, 0x18, 0xC4, 0x89, 0x9C, 0x4C, 0xE4, 0x67, 0x22, 0x39, 0x22, 0x4F, 0xE3, 0x00, 0x0C, 0x10, 0x1F, 0x00, 0x02, 0x00, 0x30, 0x01, 0xC0, 0x0E, 0x00, 0xB8, 0x05, 0xC0, 0x4F, 0x02, 0x38, 0x3F, 0xE1, 0x07, 0x18, 0x3D, 0xE3, 0xF0, 0xFF, 0x87, 0x1C, 0xE3, 0x9C, 0x73, 0x9C, 0x7F, 0x0E, 0x71, 0xC7, 0x38, 0xE7, 0x1C, 0xE7, 0x7F, 0xC0, 0x1F, 0x26, 0x1D, 0xC1, 0xB0, 0x1E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x0E, 0x04, 0xE1, 0x0F, 0xC0, 0xFF, 0x0E, 0x71, 0xC7, 0x38, 0x77, 0x0E, 0xE1, 0xDC, 0x3B, 0x87, 0x70, 0xCE, 0x39, 0xC6, 0x7F, 0x80, 0xFF, 0xCE, 0x19, 0xC1, 0x38, 0x87, 0x30, 0xFE, 0x1C, 0xC3, 0x88, 0x70, 0x2E, 0x0D, 0xC3, 0x7F, 0xE0, 0xFF, 0xDC, 0x37, 0x05, 0xC4, 0x73, 0x1F, 0xC7, 0x31, 0xC4, 0x70, 0x1C, 0x07, 0x03, 0xE0, 0x1F, 0x23, 0x0E, 0x70, 0x6E, 0x02, 0xE0, 0x0E, 0x00, 0xE1, 0xFE, 0x0E, 0x60, 0xE7, 0x0E, 0x38, 0xE0, 0xF8, 0xF9, 0xF7, 0x0E, 0x70, 0xE7, 0x0E, 0x70, 0xE7, 0xFE, 0x70, 0xE7, 0x0E, 0x70, 0xE7, 0x0E, 0x70, 0xEF, 0x9F, 0xFB, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9D, 0xF0, 0x1F, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0xCE, 0xCC, 0x78, 0xF9, 0xF3, 0x82, 0x1C, 0x20, 0xE2, 0x07, 0x20, 0x3F, 0x01, 0xDC, 0x0E, 0x70, 0x73, 0xC3, 0x8F, 0x1C, 0x3D, 0xF3, 0xF0, 0xF8, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x2E, 0x09, 0xC3, 0x7F, 0xE0, 0xF8, 0x0F, 0x3C, 0x1E, 0x3C, 0x1E, 0x2E, 0x2E, 0x2E, 0x2E, 0x26, 0x4E, 0x27, 0x4E, 0x27, 0x4E, 0x23, 0x8E, 0x23, 0x8E, 0x21, 0x0E, 0x71, 0x1F, 0xF0, 0xEE, 0x09, 0xE1, 0x3E, 0x25, 0xE4, 0x9E, 0x91, 0xD2, 0x1E, 0x43, 0xC8, 0x39, 0x03, 0x70, 0x20, 0x1F, 0x83, 0x0C, 0x70, 0xEE, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x77, 0x0E, 0x30, 0xC1, 0xF8, 0xFF, 0x1C, 0xE7, 0x1D, 0xC7, 0x71, 0xDC, 0xE7, 0xF1, 0xC0, 0x70, 0x1C, 0x07, 0x03, 0xE0, 0x0F, 0x83, 0x9C, 0x70, 0xE6, 0x06, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x76, 0x06, 0x30, 0xC1, 0x98, 0x0F, 0x00, 0x78, 0x03, 0xE0, 0xFF, 0x07, 0x38, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x38, 0x7E, 0x07, 0x70, 0x77, 0x87, 0x3C, 0x71, 0xEF, 0x8F, 0x39, 0x47, 0xC1, 0xC0, 0xF0, 0x7C, 0x3E, 0x0F, 0x83, 0xC3, 0xC6, 0xBC, 0xFF, 0xFC, 0xE3, 0x8E, 0x10, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x01, 0xF0, 0xF8, 0xEE, 0x09, 0xC1, 0x38, 0x27, 0x04, 0xE0, 0x9C, 0x13, 0x82, 0x70, 0x4E, 0x08, 0xE2, 0x0F, 0x80, 0xFC, 0x7B, 0xC1, 0x0E, 0x08, 0x70, 0x81, 0xC4, 0x0E, 0x20, 0x7A, 0x01, 0xD0, 0x0E, 0x80, 0x38, 0x01, 0xC0, 0x04, 0x00, 0x20, 0x00, 0xFD, 0xFB, 0xDC, 0x38, 0x43, 0x87, 0x10, 0xE1, 0xC4, 0x38, 0xF2, 0x07, 0x2E, 0x81, 0xD3, 0xA0, 0x34, 0x70, 0x0E, 0x1C, 0x03, 0x87, 0x00, 0x60, 0x80, 0x10, 0x20, 0xFE, 0xF3, 0xC3, 0x0F, 0x10, 0x39, 0x00, 0xF0, 0x03, 0x80, 0x1E, 0x01, 0x70, 0x09, 0xC0, 0x8F, 0x08, 0x3D, 0xF3, 0xF0, 0xFC, 0x7B, 0xC1, 0x8E, 0x08, 0x38, 0x81, 0xE8, 0x07, 0x40, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x1F, 0x00, 0xFF, 0xD8, 0x72, 0x1E, 0x43, 0x80, 0xE0, 0x1C, 0x07, 0x01, 0xC0, 0x38, 0x2E, 0x0F, 0x83, 0x7F, 0xE0, 0xFC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xF0, 0xC1, 0x06, 0x18, 0x20, 0xC3, 0x04, 0x18, 0x60, 0x83, 0x0C, 0xF3, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0xF0, 0x18, 0x1C, 0x34, 0x26, 0x62, 0x43, 0xC1, 0xFF, 0x80, 0xC6, 0x30, 0x7C, 0x63, 0xB1, 0xC0, 0xE1, 0xF3, 0x3B, 0x9D, 0xCE, 0xFF, 0x80, 0xF0, 0x1C, 0x07, 0x01, 0xDC, 0x7B, 0x9C, 0x77, 0x1D, 0xC7, 0x71, 0xDC, 0x77, 0x39, 0x3C, 0x3C, 0xED, 0x9F, 0x0E, 0x1C, 0x38, 0x39, 0x3C, 0x07, 0x80, 0xE0, 0x38, 0xEE, 0x77, 0xB8, 0xEE, 0x3B, 0x8E, 0xE3, 0xB8, 0xE7, 0x78, 0xEF, 0x3C, 0x66, 0xE6, 0xFE, 0xE0, 0xE0, 0xE0, 0x72, 0x3C, 0x3E, 0xED, 0xC7, 0xC7, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC7, 0xC0, 0x31, 0xDF, 0xBF, 0x7E, 0xE7, 0x90, 0x60, 0xFC, 0xFE, 0x0C, 0x17, 0xC0, 0xF0, 0x1C, 0x07, 0x01, 0xDC, 0x7B, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x3B, 0xFF, 0x73, 0x9D, 0xE7, 0x39, 0xCE, 0x73, 0x9D, 0xF0, 0x1C, 0x71, 0xCF, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x7D, 0xBE, 0xF0, 0x1C, 0x07, 0x01, 0xCE, 0x71, 0x1C, 0x87, 0x41, 0xF8, 0x77, 0x1C, 0xE7, 0x1B, 0xEF, 0xF3, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9D, 0xF0, 0xF7, 0x38, 0xF7, 0xB9, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0xFF, 0xFE, 0xF7, 0x1E, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0xFF, 0xC0, 0x3E, 0x31, 0xB8, 0xFC, 0x7E, 0x3F, 0x1F, 0x8E, 0xC6, 0x3E, 0x00, 0xF7, 0x1E, 0xE7, 0x1D, 0xC7, 0x71, 0xDC, 0x77, 0x1D, 0xCE, 0x7F, 0x1C, 0x07, 0x01, 0xC0, 0xF8, 0x00, 0x3C, 0x9C, 0xEE, 0x3B, 0x8E, 0xE3, 0xB8, 0xEE, 0x39, 0xCE, 0x3F, 0x80, 0xE0, 0x38, 0x0E, 0x07, 0xC0, 0xF7, 0x7B, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xF8, 0x7E, 0x73, 0xC7, 0x8E, 0x39, 0xB0, 0x10, 0xCF, 0x9C, 0x71, 0xC7, 0x1C, 0x71, 0xD3, 0x80, 0xF7, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x3F, 0xC0, 0xFB, 0xB8, 0x8C, 0x87, 0x43, 0xC0, 0xE0, 0x70, 0x10, 0x08, 0x00, 0xF7, 0xB6, 0x31, 0x73, 0xA3, 0x3A, 0x3D, 0xA3, 0xDC, 0x18, 0xC1, 0x88, 0x10, 0x80, 0xFB, 0xB8, 0x8E, 0x83, 0x81, 0xC0, 0xF0, 0x98, 0xCE, 0xEF, 0x80, 0xF7, 0x62, 0x72, 0x34, 0x34, 0x3C, 0x18, 0x18, 0x10, 0x10, 0x10, 0xE0, 0xE0, 0xFF, 0x1C, 0x70, 0xE3, 0x87, 0x1C, 0x71, 0xFE, 0x19, 0x8C, 0x63, 0x18, 0xCC, 0x61, 0x8C, 0x63, 0x18, 0xC3, 0xFF, 0xF8, 0xC3, 0x18, 0xC6, 0x31, 0x86, 0x33, 0x18, 0xC6, 0x31, 0x98, 0xF0, 0x8E}; const GFXglyph FreeSerifBold9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 5, 0, 1}, // 0x20 ' ' {0, 3, 12, 6, 1, -11}, // 0x21 '!' {5, 6, 5, 10, 2, -11}, // 0x22 '"' {9, 9, 13, 9, 0, -12}, // 0x23 '#' {24, 8, 14, 9, 1, -12}, // 0x24 '$' {38, 14, 12, 18, 2, -11}, // 0x25 '%' {59, 13, 12, 15, 1, -11}, // 0x26 '&' {79, 2, 5, 5, 1, -11}, // 0x27 ''' {81, 4, 15, 6, 1, -11}, // 0x28 '(' {89, 4, 15, 6, 1, -11}, // 0x29 ')' {97, 7, 7, 9, 2, -11}, // 0x2A '*' {104, 9, 9, 12, 1, -8}, // 0x2B '+' {115, 3, 6, 4, 1, -2}, // 0x2C ',' {118, 4, 2, 6, 1, -4}, // 0x2D '-' {119, 3, 3, 4, 1, -2}, // 0x2E '.' {121, 6, 13, 5, 0, -11}, // 0x2F '/' {131, 9, 12, 9, 0, -11}, // 0x30 '0' {145, 6, 12, 9, 1, -11}, // 0x31 '1' {154, 9, 12, 9, 0, -11}, // 0x32 '2' {168, 8, 12, 9, 0, -11}, // 0x33 '3' {180, 8, 12, 9, 1, -11}, // 0x34 '4' {192, 8, 12, 9, 1, -11}, // 0x35 '5' {204, 8, 12, 9, 1, -11}, // 0x36 '6' {216, 9, 12, 9, 0, -11}, // 0x37 '7' {230, 8, 12, 9, 1, -11}, // 0x38 '8' {242, 9, 12, 9, 0, -11}, // 0x39 '9' {256, 3, 9, 6, 1, -8}, // 0x3A ':' {260, 3, 12, 6, 2, -8}, // 0x3B ';' {265, 10, 10, 12, 1, -9}, // 0x3C '<' {278, 10, 5, 12, 1, -6}, // 0x3D '=' {285, 10, 10, 12, 1, -8}, // 0x3E '>' {298, 7, 12, 9, 1, -11}, // 0x3F '?' {309, 13, 12, 17, 2, -11}, // 0x40 '@' {329, 13, 12, 13, 0, -11}, // 0x41 'A' {349, 11, 12, 12, 0, -11}, // 0x42 'B' {366, 11, 12, 13, 1, -11}, // 0x43 'C' {383, 11, 12, 13, 1, -11}, // 0x44 'D' {400, 11, 12, 12, 1, -11}, // 0x45 'E' {417, 10, 12, 11, 1, -11}, // 0x46 'F' {432, 12, 12, 14, 1, -11}, // 0x47 'G' {450, 12, 12, 14, 1, -11}, // 0x48 'H' {468, 5, 12, 7, 1, -11}, // 0x49 'I' {476, 8, 14, 9, 0, -11}, // 0x4A 'J' {490, 13, 12, 14, 1, -11}, // 0x4B 'K' {510, 11, 12, 12, 1, -11}, // 0x4C 'L' {527, 16, 12, 17, 0, -11}, // 0x4D 'M' {551, 11, 12, 13, 1, -11}, // 0x4E 'N' {568, 12, 12, 14, 1, -11}, // 0x4F 'O' {586, 10, 12, 11, 1, -11}, // 0x50 'P' {601, 12, 15, 14, 1, -11}, // 0x51 'Q' {624, 12, 12, 13, 1, -11}, // 0x52 'R' {642, 8, 12, 10, 1, -11}, // 0x53 'S' {654, 12, 12, 12, 0, -11}, // 0x54 'T' {672, 11, 12, 13, 1, -11}, // 0x55 'U' {689, 13, 13, 13, 0, -11}, // 0x56 'V' {711, 18, 12, 18, 0, -11}, // 0x57 'W' {738, 13, 12, 13, 0, -11}, // 0x58 'X' {758, 13, 12, 13, 0, -11}, // 0x59 'Y' {778, 11, 12, 12, 1, -11}, // 0x5A 'Z' {795, 4, 15, 6, 1, -11}, // 0x5B '[' {803, 6, 13, 5, 0, -11}, // 0x5C '\' {813, 4, 15, 6, 1, -11}, // 0x5D ']' {821, 8, 7, 10, 1, -11}, // 0x5E '^' {828, 9, 1, 9, 0, 3}, // 0x5F '_' {830, 4, 3, 6, 0, -12}, // 0x60 '`' {832, 9, 9, 9, 0, -8}, // 0x61 'a' {843, 10, 12, 10, 0, -11}, // 0x62 'b' {858, 7, 9, 8, 0, -8}, // 0x63 'c' {866, 10, 12, 10, 0, -11}, // 0x64 'd' {881, 8, 9, 8, 0, -8}, // 0x65 'e' {890, 7, 12, 7, 0, -11}, // 0x66 'f' {901, 7, 13, 9, 1, -8}, // 0x67 'g' {913, 10, 12, 10, 0, -11}, // 0x68 'h' {928, 5, 12, 5, 0, -11}, // 0x69 'i' {936, 6, 16, 7, 0, -11}, // 0x6A 'j' {948, 10, 12, 10, 0, -11}, // 0x6B 'k' {963, 5, 12, 5, 0, -11}, // 0x6C 'l' {971, 15, 9, 15, 0, -8}, // 0x6D 'm' {988, 10, 9, 10, 0, -8}, // 0x6E 'n' {1000, 9, 9, 9, 0, -8}, // 0x6F 'o' {1011, 10, 13, 10, 0, -8}, // 0x70 'p' {1028, 10, 13, 10, 0, -8}, // 0x71 'q' {1045, 8, 9, 8, 0, -8}, // 0x72 'r' {1054, 5, 9, 7, 1, -8}, // 0x73 's' {1060, 6, 11, 6, 0, -10}, // 0x74 't' {1069, 10, 9, 10, 0, -8}, // 0x75 'u' {1081, 9, 9, 9, 0, -8}, // 0x76 'v' {1092, 12, 9, 13, 0, -8}, // 0x77 'w' {1106, 9, 9, 9, 0, -8}, // 0x78 'x' {1117, 8, 13, 9, 0, -8}, // 0x79 'y' {1130, 7, 9, 8, 1, -8}, // 0x7A 'z' {1138, 5, 16, 7, 0, -12}, // 0x7B '{' {1148, 1, 13, 4, 1, -11}, // 0x7C '|' {1150, 5, 16, 7, 2, -12}, // 0x7D '}' {1160, 8, 2, 9, 1, -4}}; // 0x7E '~' const GFXfont FreeSerifBold9pt7b PROGMEM = { (uint8_t *)FreeSerifBold9pt7bBitmaps, (GFXglyph *)FreeSerifBold9pt7bGlyphs, 0x20, 0x7E, 22}; // Approx. 1834 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifBoldItalic12pt7b.h ================================================ const uint8_t FreeSerifBoldItalic12pt7bBitmaps[] PROGMEM = { 0x07, 0x07, 0x07, 0x0F, 0x0E, 0x0E, 0x0C, 0x0C, 0x08, 0x18, 0x10, 0x00, 0x00, 0x60, 0xF0, 0xF0, 0x60, 0x61, 0xF1, 0xF8, 0xF8, 0x6C, 0x34, 0x12, 0x08, 0x01, 0x8C, 0x06, 0x60, 0x31, 0x80, 0xCC, 0x06, 0x30, 0xFF, 0xF0, 0xC6, 0x03, 0x18, 0x0C, 0xC0, 0x63, 0x0F, 0xFF, 0x0C, 0x60, 0x33, 0x01, 0x8C, 0x06, 0x30, 0x19, 0x80, 0x00, 0x80, 0x08, 0x07, 0xC1, 0x96, 0x31, 0x33, 0x13, 0x3A, 0x23, 0xE0, 0x1E, 0x01, 0xF0, 0x07, 0x80, 0x7C, 0x05, 0xC4, 0xCC, 0x48, 0xCC, 0x8C, 0xF8, 0x83, 0x30, 0x1E, 0x01, 0x00, 0x00, 0x02, 0x07, 0x83, 0x03, 0x9F, 0x81, 0xC4, 0x20, 0x71, 0x10, 0x3C, 0x44, 0x0E, 0x22, 0x03, 0x88, 0x80, 0xE4, 0x40, 0x1E, 0x31, 0xE0, 0x08, 0xE4, 0x06, 0x71, 0x01, 0x3C, 0x40, 0x8E, 0x10, 0x23, 0x88, 0x10, 0xE2, 0x04, 0x39, 0x02, 0x07, 0x80, 0x00, 0xF0, 0x01, 0x98, 0x03, 0x98, 0x03, 0x98, 0x03, 0xB0, 0x03, 0xE0, 0x03, 0x80, 0x0F, 0x9F, 0x19, 0xCE, 0x31, 0xCC, 0x61, 0xC8, 0xE1, 0xC8, 0xE0, 0xF0, 0xE0, 0xE0, 0xF0, 0x70, 0x78, 0x79, 0x3F, 0xBE, 0x7F, 0xED, 0x20, 0x02, 0x08, 0x20, 0xC3, 0x0E, 0x18, 0x30, 0xE1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x20, 0x40, 0x80, 0x81, 0x01, 0x00, 0x10, 0x10, 0x20, 0x20, 0x40, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x70, 0xE1, 0x83, 0x0C, 0x18, 0x61, 0x86, 0x00, 0x00, 0x0C, 0x33, 0x6C, 0x9B, 0xAE, 0x1C, 0x3F, 0xEC, 0x9B, 0x36, 0x0C, 0x02, 0x00, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x0F, 0xFF, 0xFF, 0xF0, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x31, 0xCE, 0x31, 0x08, 0x98, 0xFF, 0xFF, 0xC0, 0x6F, 0xF6, 0x01, 0x80, 0x60, 0x30, 0x0C, 0x07, 0x01, 0x80, 0xE0, 0x30, 0x1C, 0x06, 0x01, 0x80, 0xC0, 0x30, 0x18, 0x06, 0x03, 0x00, 0x03, 0x81, 0xC8, 0x71, 0x1C, 0x33, 0x86, 0xE1, 0xDC, 0x3B, 0x87, 0xE0, 0xFC, 0x3B, 0x87, 0x70, 0xEC, 0x39, 0x87, 0x31, 0xC2, 0x30, 0x3C, 0x00, 0x01, 0xC3, 0xF0, 0x38, 0x0E, 0x03, 0x81, 0xE0, 0x70, 0x1C, 0x0F, 0x03, 0x80, 0xE0, 0x38, 0x1E, 0x07, 0x01, 0xC0, 0xF0, 0xFF, 0x80, 0x07, 0x81, 0xF8, 0x47, 0x90, 0x70, 0x0E, 0x01, 0xC0, 0x30, 0x0E, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x40, 0x8F, 0xF3, 0xFC, 0xFF, 0x80, 0x07, 0xC3, 0x3C, 0x03, 0x80, 0x70, 0x0C, 0x03, 0x81, 0xC0, 0xFC, 0x07, 0xC0, 0x78, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x30, 0xE7, 0x10, 0x7C, 0x00, 0x00, 0x10, 0x01, 0x80, 0x3C, 0x03, 0xE0, 0x2E, 0x02, 0x70, 0x23, 0x82, 0x38, 0x21, 0xC2, 0x0E, 0x1F, 0xF9, 0xFF, 0xC0, 0x38, 0x01, 0xC0, 0x1C, 0x00, 0xE0, 0x07, 0xF0, 0x7E, 0x0F, 0xE0, 0x80, 0x08, 0x01, 0xE0, 0x1F, 0x83, 0xF8, 0x03, 0xC0, 0x1C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x08, 0x61, 0x8F, 0x30, 0x7C, 0x00, 0x00, 0x60, 0x78, 0x1C, 0x0F, 0x01, 0xC0, 0x70, 0x1F, 0xC3, 0x8C, 0xE1, 0xDC, 0x3B, 0x87, 0x61, 0xEC, 0x3D, 0x87, 0x31, 0xE2, 0x38, 0x3C, 0x00, 0x3F, 0xEF, 0xF9, 0xFF, 0x60, 0xC8, 0x18, 0x06, 0x00, 0x80, 0x30, 0x0C, 0x01, 0x80, 0x60, 0x1C, 0x03, 0x00, 0xC0, 0x18, 0x06, 0x00, 0x03, 0x81, 0x88, 0x61, 0x8C, 0x31, 0x86, 0x38, 0xC7, 0xB0, 0x78, 0x0F, 0x86, 0x71, 0x87, 0x60, 0x6C, 0x0D, 0x81, 0xB0, 0x63, 0x18, 0x3E, 0x00, 0x07, 0x81, 0xC8, 0x71, 0x8E, 0x33, 0xC6, 0x70, 0xCE, 0x39, 0xC7, 0x38, 0xE3, 0x38, 0x3F, 0x01, 0xC0, 0x38, 0x0E, 0x03, 0x81, 0xC0, 0xE0, 0x00, 0x0C, 0x3C, 0x78, 0x60, 0x00, 0x00, 0x00, 0x61, 0xE3, 0xC3, 0x00, 0x0E, 0x0F, 0x0F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x18, 0x10, 0x20, 0x40, 0x00, 0x10, 0x07, 0x01, 0xF0, 0x7C, 0x3F, 0x0F, 0x80, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x07, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0x07, 0x00, 0x3F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xE0, 0x1F, 0x07, 0xE0, 0xF8, 0x1F, 0x01, 0xE0, 0x0C, 0x00, 0x00, 0x1E, 0x19, 0x8C, 0xE6, 0x70, 0x38, 0x38, 0x1C, 0x18, 0x18, 0x08, 0x08, 0x00, 0x00, 0x03, 0x03, 0xC1, 0xE0, 0x60, 0x00, 0x03, 0xF0, 0x07, 0x06, 0x06, 0x00, 0x86, 0x0E, 0x66, 0x0D, 0xDB, 0x0C, 0xE7, 0x06, 0x33, 0x83, 0x31, 0xC3, 0x18, 0xE1, 0x8C, 0x70, 0xCC, 0x4C, 0x66, 0x46, 0x1F, 0xC1, 0x80, 0x00, 0x30, 0x10, 0x07, 0xF0, 0x00, 0x10, 0x00, 0x30, 0x00, 0x70, 0x00, 0x70, 0x00, 0xF0, 0x01, 0xF0, 0x01, 0x78, 0x03, 0x78, 0x02, 0x38, 0x04, 0x38, 0x0C, 0x38, 0x0F, 0xF8, 0x18, 0x3C, 0x30, 0x3C, 0x20, 0x3C, 0x60, 0x3C, 0xF8, 0x7F, 0x1F, 0xFC, 0x07, 0x9E, 0x07, 0x0F, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x1E, 0x0E, 0x3C, 0x0F, 0xE0, 0x1E, 0x3C, 0x1E, 0x1E, 0x1C, 0x1E, 0x3C, 0x1E, 0x3C, 0x1E, 0x3C, 0x3E, 0x38, 0x3C, 0x7C, 0x78, 0xFF, 0xE0, 0x01, 0xF2, 0x0E, 0x1C, 0x38, 0x18, 0xE0, 0x33, 0xC0, 0x4F, 0x00, 0x9E, 0x00, 0x7C, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x1E, 0x04, 0x1E, 0x30, 0x0F, 0x80, 0x1F, 0xFC, 0x01, 0xE3, 0xC0, 0x70, 0x78, 0x1C, 0x0E, 0x0F, 0x03, 0xC3, 0xC0, 0xF0, 0xE0, 0x3C, 0x38, 0x0F, 0x1E, 0x03, 0xC7, 0x81, 0xF1, 0xC0, 0x78, 0xF0, 0x1E, 0x3C, 0x0F, 0x0F, 0x03, 0xC3, 0x81, 0xC1, 0xE1, 0xE0, 0xFF, 0xE0, 0x00, 0x1F, 0xFF, 0x83, 0xC1, 0xC1, 0xC0, 0x40, 0xE0, 0x20, 0xF0, 0x00, 0x78, 0xC0, 0x38, 0x40, 0x1F, 0xE0, 0x1E, 0x70, 0x0F, 0x18, 0x07, 0x08, 0x03, 0x84, 0x03, 0xC0, 0x61, 0xE0, 0x20, 0xE0, 0x30, 0xF8, 0x78, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x07, 0x87, 0x07, 0x02, 0x07, 0x02, 0x0F, 0x00, 0x0F, 0x18, 0x0E, 0x10, 0x0F, 0xF0, 0x1E, 0x70, 0x1E, 0x30, 0x1C, 0x20, 0x1C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x7C, 0x00, 0xFE, 0x00, 0x01, 0xF9, 0x03, 0xC3, 0x83, 0x81, 0xC3, 0x80, 0x43, 0xC0, 0x23, 0xC0, 0x01, 0xE0, 0x01, 0xF0, 0x00, 0xF0, 0x3F, 0xF8, 0x0F, 0x3C, 0x07, 0x9E, 0x03, 0xCF, 0x01, 0xC3, 0x80, 0xE1, 0xE0, 0xF0, 0x78, 0x70, 0x0F, 0xE0, 0x00, 0x1F, 0xE7, 0xF0, 0x78, 0x3C, 0x07, 0x83, 0xC0, 0x70, 0x3C, 0x0F, 0x03, 0x80, 0xF0, 0x78, 0x0E, 0x07, 0x80, 0xE0, 0x70, 0x1F, 0xFF, 0x01, 0xE0, 0xF0, 0x1C, 0x0F, 0x03, 0xC0, 0xE0, 0x3C, 0x1E, 0x03, 0xC1, 0xE0, 0x38, 0x1E, 0x07, 0xC3, 0xE0, 0xFE, 0x7F, 0x00, 0x1F, 0xC1, 0xE0, 0x70, 0x1C, 0x0F, 0x03, 0xC0, 0xE0, 0x38, 0x1E, 0x07, 0x81, 0xC0, 0x70, 0x3C, 0x0F, 0x03, 0x81, 0xF0, 0xFE, 0x00, 0x01, 0xFC, 0x03, 0xC0, 0x0F, 0x00, 0x38, 0x00, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x70, 0x01, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xE0, 0x07, 0x80, 0x1E, 0x0E, 0x70, 0x3B, 0xC0, 0xCE, 0x01, 0xF0, 0x00, 0x1F, 0xEF, 0x83, 0xC1, 0x81, 0xC1, 0x80, 0xE1, 0x80, 0xF1, 0x80, 0x79, 0x00, 0x39, 0x00, 0x1F, 0x80, 0x1F, 0xE0, 0x0F, 0x70, 0x07, 0x3C, 0x07, 0x8E, 0x03, 0xC7, 0x01, 0xE3, 0xC0, 0xE0, 0xE0, 0xF8, 0x78, 0xFE, 0xFE, 0x00, 0x1F, 0xE0, 0x0F, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0x80, 0x07, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x70, 0x00, 0xE0, 0x03, 0xC0, 0x27, 0x00, 0xCE, 0x03, 0x3C, 0x1E, 0xFF, 0xFC, 0x0F, 0x80, 0x7E, 0x0F, 0x00, 0xF0, 0x1E, 0x03, 0xE0, 0x3C, 0x0F, 0x80, 0xB8, 0x17, 0x01, 0x70, 0x5E, 0x02, 0xF1, 0xBC, 0x05, 0xE2, 0x70, 0x11, 0xC8, 0xE0, 0x23, 0xB3, 0xC0, 0x47, 0x47, 0x81, 0x0F, 0x8E, 0x02, 0x1E, 0x1C, 0x04, 0x38, 0x78, 0x08, 0x70, 0xF0, 0x30, 0xC3, 0xE0, 0xF9, 0x8F, 0xE0, 0x1F, 0x03, 0xE0, 0xF0, 0x38, 0x1E, 0x02, 0x03, 0xE0, 0xC0, 0xBC, 0x10, 0x13, 0xC2, 0x02, 0x78, 0x40, 0x47, 0x90, 0x10, 0xF2, 0x02, 0x0F, 0x40, 0x41, 0xE8, 0x18, 0x1E, 0x02, 0x03, 0xC0, 0x40, 0x38, 0x08, 0x06, 0x03, 0x00, 0x40, 0x10, 0x08, 0x00, 0x01, 0xF8, 0x07, 0x1C, 0x0E, 0x0E, 0x1E, 0x0F, 0x3C, 0x0F, 0x3C, 0x0F, 0x78, 0x0F, 0x78, 0x0F, 0xF8, 0x1F, 0xF0, 0x1E, 0xF0, 0x1E, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x78, 0x70, 0x70, 0x38, 0xE0, 0x1F, 0x80, 0x1F, 0xFC, 0x07, 0x9E, 0x07, 0x0F, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0E, 0x1E, 0x0E, 0x3C, 0x1F, 0xF0, 0x1E, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x38, 0x00, 0x7C, 0x00, 0xFE, 0x00, 0x01, 0xF8, 0x07, 0x1C, 0x0E, 0x0E, 0x1E, 0x0F, 0x3C, 0x0F, 0x3C, 0x0F, 0x78, 0x0F, 0x78, 0x1F, 0xF8, 0x1F, 0xF0, 0x1E, 0xF0, 0x1E, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x78, 0x70, 0x70, 0x39, 0xC0, 0x0E, 0x00, 0x08, 0x02, 0x3F, 0x04, 0x7F, 0xF8, 0x83, 0xF0, 0x1F, 0xF8, 0x07, 0x9E, 0x07, 0x8F, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x1E, 0x0E, 0x3C, 0x1F, 0xF0, 0x1E, 0xF0, 0x1C, 0xF0, 0x3C, 0xF0, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x7C, 0x3C, 0xFE, 0x3E, 0x07, 0x91, 0xC7, 0x18, 0x73, 0x82, 0x38, 0x23, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x01, 0xE0, 0x1E, 0x40, 0xE4, 0x0E, 0x60, 0xCE, 0x1C, 0x9F, 0x00, 0x7F, 0xFE, 0xE7, 0x9D, 0x0E, 0x16, 0x3C, 0x20, 0x78, 0x40, 0xE0, 0x01, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0xFF, 0x00, 0x7F, 0x1F, 0x3C, 0x0E, 0x38, 0x04, 0x38, 0x0C, 0x78, 0x08, 0x78, 0x08, 0x70, 0x08, 0x70, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x20, 0xF0, 0x20, 0xF0, 0x20, 0xF0, 0x40, 0x78, 0xC0, 0x3F, 0x00, 0xFF, 0x1F, 0x3C, 0x06, 0x3C, 0x04, 0x3C, 0x08, 0x3C, 0x08, 0x3C, 0x10, 0x1C, 0x20, 0x1C, 0x20, 0x1E, 0x40, 0x1E, 0x80, 0x1E, 0x80, 0x1F, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x08, 0x00, 0xFE, 0x7C, 0x79, 0xE1, 0xC1, 0x8F, 0x0E, 0x08, 0x78, 0x70, 0x43, 0xC7, 0x84, 0x1E, 0x3E, 0x20, 0x72, 0xF2, 0x03, 0x97, 0x90, 0x1D, 0x1D, 0x00, 0xE8, 0xE8, 0x07, 0x87, 0x80, 0x3C, 0x3C, 0x01, 0xC1, 0xC0, 0x0E, 0x0E, 0x00, 0x20, 0x60, 0x01, 0x02, 0x00, 0x1F, 0xCF, 0x83, 0xC1, 0x81, 0xE1, 0x80, 0x71, 0x80, 0x39, 0x80, 0x1F, 0x80, 0x07, 0x80, 0x03, 0x80, 0x01, 0xE0, 0x01, 0xF0, 0x00, 0xB8, 0x00, 0x9C, 0x00, 0x8F, 0x00, 0x83, 0x80, 0xC1, 0xC0, 0xE0, 0xF0, 0xF9, 0xFE, 0x00, 0xFE, 0x7C, 0xE0, 0x63, 0x81, 0x0F, 0x08, 0x1C, 0x40, 0x71, 0x01, 0xE8, 0x03, 0xC0, 0x0E, 0x00, 0x38, 0x01, 0xE0, 0x07, 0x80, 0x1C, 0x00, 0x70, 0x03, 0xC0, 0x0F, 0x00, 0xFF, 0x00, 0x1F, 0xFE, 0x38, 0x78, 0x60, 0xF1, 0x83, 0xC2, 0x0F, 0x00, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF8, 0x01, 0xE0, 0x47, 0x81, 0x1F, 0x06, 0x3C, 0x3C, 0xFF, 0xF0, 0x07, 0xC1, 0x80, 0xE0, 0x30, 0x0C, 0x03, 0x01, 0xC0, 0x60, 0x18, 0x06, 0x03, 0x80, 0xC0, 0x30, 0x0C, 0x07, 0x01, 0xC0, 0x60, 0x18, 0x0E, 0x03, 0xE0, 0xC3, 0x06, 0x18, 0x61, 0x83, 0x0C, 0x30, 0xC1, 0x86, 0x18, 0x60, 0xC3, 0x0F, 0x81, 0xC0, 0xE0, 0x60, 0x30, 0x18, 0x1C, 0x0C, 0x06, 0x03, 0x03, 0x81, 0x80, 0xC0, 0x60, 0x70, 0x38, 0x18, 0x0C, 0x0E, 0x1F, 0x00, 0x0C, 0x07, 0x81, 0xE0, 0xDC, 0x33, 0x18, 0xC6, 0x1B, 0x06, 0xC0, 0xC0, 0xFF, 0xF0, 0xC7, 0x0C, 0x30, 0x07, 0x70, 0xCE, 0x1C, 0xE3, 0x8E, 0x70, 0xC7, 0x0C, 0x71, 0xCE, 0x1C, 0xE1, 0x8E, 0x79, 0xE9, 0xA7, 0x1C, 0x02, 0x07, 0xC0, 0x38, 0x06, 0x01, 0xC0, 0x38, 0x06, 0x71, 0xF7, 0x38, 0xE7, 0x1C, 0xC3, 0xB8, 0x77, 0x1C, 0xE3, 0xB8, 0xE7, 0x18, 0xE6, 0x0F, 0x80, 0x07, 0x0C, 0xCE, 0x66, 0x07, 0x03, 0x83, 0x81, 0xC0, 0xE0, 0x70, 0xBC, 0x87, 0x80, 0x00, 0x08, 0x03, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x70, 0x01, 0xC0, 0x77, 0x03, 0x3C, 0x18, 0xE0, 0xE3, 0x87, 0x0E, 0x1C, 0x70, 0x71, 0xC3, 0x87, 0x0E, 0x3C, 0x38, 0xE8, 0xE5, 0xA1, 0xE7, 0x00, 0x07, 0x0C, 0xCE, 0x66, 0x37, 0x33, 0xBB, 0xB1, 0xE0, 0xE0, 0x70, 0xB8, 0x87, 0x80, 0x00, 0x38, 0x01, 0xB0, 0x0C, 0xC0, 0x30, 0x01, 0xC0, 0x07, 0x00, 0x7E, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x30, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x03, 0x80, 0x0E, 0x00, 0x38, 0x00, 0xC0, 0x33, 0x00, 0xD8, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x73, 0xC7, 0x1C, 0x38, 0xE1, 0xCF, 0x06, 0x70, 0x1E, 0x01, 0x00, 0x1C, 0x00, 0xF8, 0x07, 0xF0, 0xC7, 0x8C, 0x0C, 0x60, 0x63, 0x86, 0x07, 0xE0, 0x01, 0x00, 0xF8, 0x01, 0x80, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x31, 0xC3, 0xBE, 0x1E, 0x70, 0xE3, 0x8F, 0x38, 0x71, 0xC3, 0x8E, 0x1C, 0xE1, 0xC7, 0x0E, 0x3A, 0x71, 0xD3, 0x0F, 0x00, 0x1C, 0x71, 0xC0, 0x00, 0x6F, 0x8E, 0x31, 0xC7, 0x18, 0x63, 0x8E, 0xBC, 0xE0, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x00, 0x00, 0x0F, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x0E, 0x01, 0xC0, 0x38, 0x06, 0x01, 0xC3, 0x38, 0x6E, 0x07, 0x80, 0x01, 0x00, 0xF8, 0x01, 0xC0, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x33, 0xE3, 0x8C, 0x1C, 0xC0, 0xE4, 0x06, 0x40, 0x7E, 0x03, 0xF0, 0x1D, 0x81, 0xCE, 0x0E, 0x72, 0x71, 0xA3, 0x8E, 0x00, 0x06, 0x7C, 0x70, 0xE1, 0xC3, 0x0E, 0x1C, 0x38, 0x61, 0xC3, 0x87, 0x0C, 0x38, 0x72, 0xE9, 0xE0, 0x3C, 0x73, 0xC7, 0x7D, 0x71, 0xE7, 0x9C, 0xF1, 0xCE, 0x3C, 0xF3, 0x8E, 0x39, 0xC3, 0x8E, 0x71, 0xC3, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xD7, 0x1C, 0x7B, 0x8E, 0x1C, 0x3C, 0xF1, 0xD7, 0x1E, 0x73, 0xCE, 0x3C, 0xE3, 0x8E, 0x39, 0xC7, 0x9C, 0x71, 0xC7, 0x1D, 0x71, 0xEE, 0x1C, 0x0F, 0x06, 0x63, 0x9D, 0xC7, 0x71, 0xF8, 0x7E, 0x3F, 0x8E, 0xE3, 0xB9, 0xC6, 0x60, 0xF0, 0x0F, 0x38, 0x1F, 0x70, 0x71, 0xC1, 0xC7, 0x0E, 0x1C, 0x38, 0xF0, 0xE3, 0x83, 0x8E, 0x1C, 0x70, 0x71, 0xC1, 0xCE, 0x07, 0xE0, 0x38, 0x00, 0xE0, 0x03, 0x80, 0x3F, 0x00, 0x07, 0x70, 0xCE, 0x18, 0xE3, 0x8E, 0x70, 0xE7, 0x1C, 0xF1, 0xCE, 0x1C, 0xE3, 0x8E, 0x38, 0xE7, 0x87, 0xB0, 0x07, 0x00, 0x70, 0x0F, 0x03, 0xF8, 0x0D, 0xDF, 0x71, 0xAC, 0xF0, 0x38, 0x0E, 0x03, 0x81, 0xC0, 0x70, 0x1C, 0x0E, 0x00, 0x1D, 0x99, 0x8C, 0x46, 0x23, 0x80, 0xE0, 0x70, 0x1C, 0x06, 0x23, 0x19, 0x17, 0x00, 0x0C, 0x10, 0xE3, 0xF3, 0x86, 0x1C, 0x38, 0x71, 0xC3, 0x87, 0x0E, 0x9E, 0x38, 0x00, 0xF8, 0xE3, 0x8E, 0x38, 0xC3, 0x9C, 0x71, 0xC7, 0x18, 0x71, 0x87, 0x38, 0xE3, 0x8E, 0xFA, 0xF3, 0xAE, 0x3C, 0xF0, 0xDC, 0x33, 0x0C, 0xC2, 0x31, 0x8C, 0xC3, 0x60, 0xF0, 0x38, 0x0C, 0x02, 0x00, 0xE0, 0x86, 0xE3, 0x0C, 0xC6, 0x19, 0x9C, 0x23, 0x78, 0xC7, 0xF9, 0x0E, 0x74, 0x1C, 0xF0, 0x31, 0xC0, 0x43, 0x00, 0x84, 0x00, 0x0E, 0x31, 0xF3, 0x83, 0xA0, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x0B, 0x02, 0x5D, 0x3C, 0xF1, 0xC3, 0x00, 0x04, 0x67, 0x8C, 0x79, 0x87, 0x10, 0xE2, 0x1C, 0x81, 0x90, 0x3A, 0x07, 0x80, 0xF0, 0x1C, 0x03, 0x00, 0x40, 0x08, 0x32, 0x07, 0x80, 0x3F, 0xCF, 0xE6, 0x30, 0x08, 0x04, 0x02, 0x01, 0x00, 0xC0, 0x30, 0x1E, 0x0F, 0x98, 0x76, 0x07, 0x00, 0x01, 0xE0, 0x70, 0x1C, 0x03, 0x80, 0x60, 0x1C, 0x03, 0x80, 0x60, 0x0C, 0x03, 0x80, 0xF0, 0x3C, 0x07, 0x00, 0x40, 0x0C, 0x01, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x30, 0x03, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xE0, 0x18, 0x06, 0x01, 0x80, 0xE0, 0x38, 0x0C, 0x03, 0x00, 0xC0, 0x10, 0x1F, 0x07, 0x03, 0x80, 0xE0, 0x30, 0x0C, 0x07, 0x01, 0x80, 0xE0, 0xE0, 0x00, 0x38, 0x0F, 0xCD, 0x1F, 0x80, 0xE0}; const GFXglyph FreeSerifBoldItalic12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 6, 0, 1}, // 0x20 ' ' {0, 8, 17, 9, 2, -15}, // 0x21 '!' {17, 9, 7, 13, 4, -15}, // 0x22 '"' {25, 14, 16, 12, -1, -15}, // 0x23 '#' {53, 12, 20, 12, 0, -17}, // 0x24 '$' {83, 18, 18, 20, 1, -16}, // 0x25 '%' {124, 16, 17, 19, 0, -15}, // 0x26 '&' {158, 3, 7, 7, 3, -15}, // 0x27 ''' {161, 7, 21, 8, 1, -15}, // 0x28 '(' {180, 7, 21, 8, -1, -15}, // 0x29 ')' {199, 10, 10, 12, 1, -15}, // 0x2A '*' {212, 12, 12, 14, 1, -11}, // 0x2B '+' {230, 5, 8, 6, -2, -3}, // 0x2C ',' {235, 6, 3, 8, 0, -6}, // 0x2D '-' {238, 4, 4, 6, 0, -2}, // 0x2E '.' {240, 10, 16, 8, 0, -15}, // 0x2F '/' {260, 11, 17, 12, 0, -15}, // 0x30 '0' {284, 10, 17, 12, 0, -15}, // 0x31 '1' {306, 11, 17, 12, 0, -15}, // 0x32 '2' {330, 11, 17, 12, 0, -15}, // 0x33 '3' {354, 13, 16, 12, 0, -15}, // 0x34 '4' {380, 12, 17, 12, 0, -15}, // 0x35 '5' {406, 11, 17, 12, 1, -15}, // 0x36 '6' {430, 11, 16, 12, 2, -15}, // 0x37 '7' {452, 11, 17, 12, 0, -15}, // 0x38 '8' {476, 11, 17, 12, 0, -15}, // 0x39 '9' {500, 7, 12, 6, 0, -10}, // 0x3A ':' {511, 8, 15, 6, -1, -10}, // 0x3B ';' {526, 12, 13, 14, 1, -12}, // 0x3C '<' {546, 12, 6, 14, 2, -8}, // 0x3D '=' {555, 13, 13, 14, 1, -12}, // 0x3E '>' {577, 9, 17, 12, 2, -15}, // 0x3F '?' {597, 17, 16, 20, 1, -15}, // 0x40 '@' {631, 16, 17, 17, 0, -15}, // 0x41 'A' {665, 16, 17, 15, 0, -15}, // 0x42 'B' {699, 15, 17, 15, 1, -15}, // 0x43 'C' {731, 18, 17, 17, 0, -15}, // 0x44 'D' {770, 17, 17, 15, 0, -15}, // 0x45 'E' {807, 16, 17, 15, 0, -15}, // 0x46 'F' {841, 17, 17, 17, 1, -15}, // 0x47 'G' {878, 20, 17, 18, 0, -15}, // 0x48 'H' {921, 10, 17, 9, 0, -15}, // 0x49 'I' {943, 14, 18, 12, 0, -15}, // 0x4A 'J' {975, 17, 17, 16, 0, -15}, // 0x4B 'K' {1012, 15, 17, 15, 0, -15}, // 0x4C 'L' {1044, 23, 17, 21, 0, -15}, // 0x4D 'M' {1093, 19, 17, 17, 0, -15}, // 0x4E 'N' {1134, 16, 17, 16, 1, -15}, // 0x4F 'O' {1168, 16, 17, 14, 0, -15}, // 0x50 'P' {1202, 16, 21, 16, 1, -15}, // 0x51 'Q' {1244, 16, 17, 16, 0, -15}, // 0x52 'R' {1278, 12, 17, 12, 0, -15}, // 0x53 'S' {1304, 15, 17, 14, 2, -15}, // 0x54 'T' {1336, 16, 17, 17, 3, -15}, // 0x55 'U' {1370, 16, 16, 17, 3, -15}, // 0x56 'V' {1402, 21, 16, 22, 3, -15}, // 0x57 'W' {1444, 17, 17, 17, 0, -15}, // 0x58 'X' {1481, 14, 17, 15, 3, -15}, // 0x59 'Y' {1511, 15, 17, 13, 0, -15}, // 0x5A 'Z' {1543, 10, 20, 8, -1, -15}, // 0x5B '[' {1568, 6, 16, 10, 3, -15}, // 0x5C '\' {1580, 9, 20, 8, -1, -15}, // 0x5D ']' {1603, 10, 9, 14, 2, -15}, // 0x5E '^' {1615, 12, 1, 12, 0, 4}, // 0x5F '_' {1617, 5, 4, 8, 2, -15}, // 0x60 '`' {1620, 12, 12, 12, 0, -10}, // 0x61 'a' {1638, 11, 18, 12, 1, -16}, // 0x62 'b' {1663, 9, 12, 10, 1, -10}, // 0x63 'c' {1677, 14, 18, 12, 0, -16}, // 0x64 'd' {1709, 9, 12, 10, 1, -10}, // 0x65 'e' {1723, 14, 22, 12, -2, -16}, // 0x66 'f' {1762, 13, 16, 12, -1, -10}, // 0x67 'g' {1788, 13, 18, 13, 0, -16}, // 0x68 'h' {1818, 6, 17, 7, 1, -15}, // 0x69 'i' {1831, 11, 21, 8, -2, -15}, // 0x6A 'j' {1860, 13, 18, 12, 0, -16}, // 0x6B 'k' {1890, 7, 18, 7, 1, -16}, // 0x6C 'l' {1906, 18, 12, 18, 0, -10}, // 0x6D 'm' {1933, 12, 12, 13, 0, -10}, // 0x6E 'n' {1951, 10, 12, 11, 1, -10}, // 0x6F 'o' {1966, 14, 16, 12, -2, -10}, // 0x70 'p' {1994, 12, 16, 12, 0, -10}, // 0x71 'q' {2018, 10, 11, 10, 0, -10}, // 0x72 'r' {2032, 9, 12, 9, 0, -10}, // 0x73 's' {2046, 7, 15, 7, 1, -13}, // 0x74 't' {2060, 12, 12, 13, 1, -10}, // 0x75 'u' {2078, 10, 11, 11, 1, -10}, // 0x76 'v' {2092, 15, 11, 16, 1, -10}, // 0x77 'w' {2113, 13, 12, 11, -1, -10}, // 0x78 'x' {2133, 11, 16, 10, -1, -10}, // 0x79 'y' {2155, 10, 13, 10, 0, -10}, // 0x7A 'z' {2172, 11, 21, 8, 0, -16}, // 0x7B '{' {2201, 2, 16, 6, 3, -15}, // 0x7C '|' {2205, 10, 21, 8, -3, -16}, // 0x7D '}' {2232, 11, 4, 14, 1, -7}}; // 0x7E '~' const GFXfont FreeSerifBoldItalic12pt7b PROGMEM = { (uint8_t *)FreeSerifBoldItalic12pt7bBitmaps, (GFXglyph *)FreeSerifBoldItalic12pt7bGlyphs, 0x20, 0x7E, 29}; // Approx. 2910 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifBoldItalic18pt7b.h ================================================ const uint8_t FreeSerifBoldItalic18pt7bBitmaps[] PROGMEM = { 0x01, 0xC0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0x80, 0xF0, 0x3C, 0x07, 0x80, 0xE0, 0x1C, 0x03, 0x00, 0x60, 0x0C, 0x03, 0x00, 0x60, 0x08, 0x00, 0x00, 0x00, 0x00, 0x07, 0x81, 0xF8, 0x3F, 0x07, 0xE0, 0x78, 0x00, 0x38, 0x1D, 0xE0, 0xF7, 0x83, 0xDC, 0x0E, 0x70, 0x39, 0xC0, 0xE6, 0x03, 0x18, 0x0C, 0x40, 0x23, 0x01, 0x80, 0x00, 0x38, 0x60, 0x07, 0x0E, 0x00, 0x70, 0xC0, 0x06, 0x1C, 0x00, 0xE1, 0xC0, 0x0E, 0x38, 0x01, 0xC3, 0x81, 0xFF, 0xFF, 0x1F, 0xFF, 0xE1, 0xFF, 0xFE, 0x03, 0x86, 0x00, 0x30, 0xE0, 0x07, 0x0E, 0x00, 0x71, 0xC0, 0x0E, 0x1C, 0x0F, 0xFF, 0xF8, 0xFF, 0xFF, 0x0F, 0xFF, 0xF0, 0x1C, 0x30, 0x01, 0x87, 0x00, 0x38, 0x70, 0x03, 0x0E, 0x00, 0x70, 0xE0, 0x07, 0x0C, 0x00, 0xE1, 0xC0, 0x00, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x7E, 0x00, 0xFF, 0xC0, 0xF3, 0x70, 0x71, 0x9C, 0x70, 0xC6, 0x38, 0x43, 0x1C, 0x61, 0x0F, 0x30, 0x87, 0xD8, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x01, 0xFC, 0x00, 0xDF, 0x10, 0x47, 0x88, 0x63, 0xCC, 0x31, 0xE6, 0x10, 0xF3, 0x98, 0x71, 0xCC, 0x78, 0x7E, 0x78, 0x07, 0xF8, 0x03, 0xF0, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x03, 0xC0, 0x18, 0x01, 0xFE, 0x0F, 0x00, 0x7C, 0xFF, 0xC0, 0x1F, 0x0F, 0x98, 0x07, 0xC1, 0x06, 0x00, 0xF8, 0x21, 0x80, 0x3E, 0x04, 0x30, 0x07, 0xC1, 0x8C, 0x00, 0xF0, 0x21, 0x80, 0x1E, 0x0C, 0x60, 0x03, 0xC1, 0x0C, 0x00, 0x78, 0xC3, 0x03, 0xC7, 0xF8, 0x61, 0xFC, 0x7C, 0x18, 0x7C, 0xC0, 0x06, 0x1F, 0x08, 0x00, 0xC7, 0xC1, 0x00, 0x30, 0xF0, 0x20, 0x06, 0x3E, 0x04, 0x01, 0x87, 0xC1, 0x00, 0x30, 0xF0, 0x20, 0x0C, 0x1E, 0x0C, 0x03, 0x03, 0xC1, 0x00, 0x60, 0x3C, 0xC0, 0x18, 0x07, 0xF8, 0x03, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x1E, 0x38, 0x00, 0x0E, 0x0E, 0x00, 0x0F, 0x07, 0x00, 0x07, 0x83, 0x80, 0x03, 0xC3, 0x80, 0x01, 0xE3, 0x80, 0x00, 0xF7, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7F, 0x0F, 0xF0, 0xE7, 0x81, 0xE0, 0xE3, 0xE0, 0xE0, 0xE1, 0xF0, 0x60, 0xE0, 0x7C, 0x60, 0xF0, 0x3E, 0x20, 0x78, 0x1F, 0xB0, 0x3C, 0x07, 0xF0, 0x1F, 0x03, 0xF0, 0x0F, 0x80, 0xFC, 0x03, 0xF0, 0x7F, 0x8D, 0xFF, 0xEF, 0xFC, 0x7F, 0xE3, 0xFC, 0x0F, 0xC0, 0x78, 0x00, 0x3B, 0xDE, 0xE7, 0x39, 0x8C, 0x46, 0x00, 0x00, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x1C, 0x07, 0x01, 0xE0, 0x38, 0x0F, 0x01, 0xC0, 0x38, 0x0F, 0x01, 0xE0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x06, 0x00, 0xC0, 0x08, 0x00, 0x80, 0x10, 0x00, 0x06, 0x00, 0x40, 0x04, 0x00, 0x80, 0x18, 0x01, 0x00, 0x30, 0x06, 0x00, 0xC0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x01, 0xE0, 0x3C, 0x07, 0x00, 0xE0, 0x3C, 0x07, 0x00, 0xE0, 0x38, 0x06, 0x01, 0xC0, 0x70, 0x18, 0x06, 0x01, 0x80, 0x00, 0x07, 0x00, 0x38, 0x01, 0xC1, 0x8E, 0x3E, 0x23, 0xF9, 0x3F, 0xEB, 0xE0, 0xE0, 0xFF, 0xF7, 0x93, 0xF8, 0x9F, 0x8E, 0x60, 0x70, 0x03, 0x80, 0x08, 0x00, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0x1C, 0x7C, 0xF9, 0xF1, 0xE1, 0xC3, 0x0C, 0x30, 0xC2, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xE0, 0x7B, 0xFF, 0xFF, 0x78, 0x00, 0x1C, 0x00, 0xE0, 0x03, 0x80, 0x1E, 0x00, 0x70, 0x01, 0xC0, 0x0E, 0x00, 0x38, 0x01, 0xC0, 0x07, 0x00, 0x38, 0x00, 0xE0, 0x07, 0x80, 0x1C, 0x00, 0x70, 0x03, 0x80, 0x0E, 0x00, 0x70, 0x01, 0xC0, 0x0E, 0x00, 0x38, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0xE0, 0x00, 0x00, 0xF0, 0x07, 0x30, 0x1C, 0x30, 0x78, 0x60, 0xE0, 0xE3, 0xC1, 0xCF, 0x83, 0x9E, 0x0F, 0x3C, 0x1E, 0xF8, 0x3D, 0xE0, 0x7B, 0xC1, 0xFF, 0x83, 0xFF, 0x07, 0xBC, 0x0F, 0x78, 0x3E, 0xF0, 0x7D, 0xE0, 0xF3, 0x81, 0xE7, 0x07, 0x8E, 0x0F, 0x0C, 0x3C, 0x18, 0x70, 0x19, 0xC0, 0x1E, 0x00, 0x00, 0x06, 0x01, 0xF8, 0x1F, 0xF0, 0x03, 0xE0, 0x07, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x1E, 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x0F, 0xC0, 0xFF, 0xF0, 0x00, 0xF8, 0x01, 0xFC, 0x03, 0xFE, 0x06, 0x3F, 0x08, 0x1F, 0x18, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x30, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x02, 0x0C, 0x06, 0x08, 0x0C, 0x1F, 0xFC, 0x3F, 0xFC, 0x7F, 0xF8, 0xFF, 0xF8, 0x00, 0xF0, 0x07, 0xF8, 0x1F, 0xF0, 0x61, 0xF0, 0x81, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0E, 0x00, 0x3C, 0x00, 0xE0, 0x07, 0xC0, 0x3F, 0xC0, 0x1F, 0x80, 0x0F, 0x80, 0x1F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xC0, 0x07, 0x9C, 0x0E, 0x3C, 0x38, 0x7F, 0xE0, 0x7E, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x80, 0x07, 0xE0, 0x02, 0xF8, 0x01, 0x3C, 0x00, 0x9F, 0x00, 0x47, 0xC0, 0x31, 0xE0, 0x18, 0x78, 0x0C, 0x3E, 0x06, 0x0F, 0x83, 0x03, 0xC1, 0x80, 0xF0, 0x7F, 0xFF, 0x1F, 0xFF, 0xCF, 0xFF, 0xF0, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x07, 0xC0, 0x01, 0xFF, 0x00, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x60, 0x00, 0x30, 0x00, 0x10, 0x00, 0x1F, 0x00, 0x0F, 0xE0, 0x0F, 0xF8, 0x07, 0xFE, 0x00, 0x3F, 0x00, 0x07, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x03, 0x00, 0x03, 0x87, 0x83, 0x83, 0xE3, 0x81, 0xFF, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x03, 0x80, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x1F, 0xF0, 0x1F, 0xFE, 0x0F, 0xCF, 0x07, 0xC3, 0xC7, 0xE1, 0xE3, 0xE0, 0xF1, 0xF0, 0x78, 0xF8, 0x3C, 0x78, 0x3E, 0x3C, 0x1F, 0x1E, 0x0F, 0x0F, 0x0F, 0x83, 0x87, 0x81, 0xE7, 0x80, 0x7F, 0x80, 0x0F, 0x80, 0x00, 0x3F, 0xFF, 0x3F, 0xFE, 0x3F, 0xFE, 0x7F, 0xFC, 0x60, 0x1C, 0x80, 0x38, 0x80, 0x30, 0x00, 0x70, 0x00, 0x60, 0x00, 0xE0, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0x80, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x38, 0x00, 0x70, 0x00, 0xF0, 0x00, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0xFF, 0x00, 0xE1, 0xC0, 0xE0, 0xF0, 0xF0, 0x38, 0x78, 0x1C, 0x3C, 0x0E, 0x1F, 0x07, 0x0F, 0x87, 0x07, 0xE7, 0x01, 0xFF, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x3F, 0xE0, 0x73, 0xF0, 0x70, 0xFC, 0x70, 0x3E, 0x70, 0x0F, 0x38, 0x07, 0x9C, 0x03, 0xCE, 0x01, 0xE7, 0x00, 0xE1, 0xC0, 0xE0, 0x70, 0xE0, 0x0F, 0xC0, 0x00, 0x00, 0xF8, 0x01, 0xFF, 0x01, 0xF3, 0xC1, 0xF0, 0xE1, 0xF0, 0x70, 0xF0, 0x3C, 0xF8, 0x1E, 0x7C, 0x0F, 0x3C, 0x0F, 0x9E, 0x07, 0xCF, 0x03, 0xE7, 0x83, 0xF3, 0xC1, 0xF0, 0xF1, 0xF8, 0x3F, 0xF8, 0x0F, 0xFC, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x3C, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0xF0, 0x00, 0xC0, 0x00, 0x00, 0x07, 0x83, 0xF0, 0xFC, 0x3F, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3F, 0x0F, 0xC3, 0xF0, 0x78, 0x00, 0x03, 0xC0, 0xFC, 0x1F, 0x83, 0xF0, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x03, 0xC0, 0x7C, 0x0F, 0x80, 0xF0, 0x0E, 0x01, 0x80, 0x30, 0x0C, 0x03, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x7C, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x3E, 0x00, 0x0F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFF, 0x00, 0x0F, 0xC0, 0x00, 0xF0, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x38, 0x00, 0x0F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xFC, 0x00, 0x3F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xF0, 0x00, 0xFC, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFC, 0x03, 0xFC, 0x00, 0xFC, 0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x07, 0xC0, 0xFF, 0x0E, 0x3C, 0x70, 0xF3, 0xC7, 0x8C, 0x3C, 0x01, 0xE0, 0x1F, 0x00, 0xF0, 0x07, 0x80, 0x78, 0x07, 0x80, 0x30, 0x03, 0x00, 0x10, 0x01, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0x78, 0x00, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0xF8, 0x01, 0xF0, 0x1E, 0x01, 0xE0, 0x03, 0x81, 0xC0, 0x00, 0xE1, 0xC0, 0x18, 0x38, 0xE0, 0x3F, 0xCC, 0xE0, 0x3C, 0xE7, 0x70, 0x3C, 0x71, 0xF0, 0x1C, 0x30, 0xF8, 0x1E, 0x38, 0x7C, 0x0E, 0x1C, 0x3E, 0x0F, 0x0E, 0x1F, 0x07, 0x0E, 0x0F, 0x83, 0x87, 0x0D, 0xC1, 0xC7, 0x86, 0x70, 0xE5, 0xC6, 0x38, 0x7C, 0xFE, 0x1C, 0x1C, 0x3E, 0x07, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x78, 0x00, 0x40, 0x1F, 0x00, 0xE0, 0x03, 0xFF, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x03, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x17, 0xC0, 0x00, 0x67, 0x80, 0x00, 0x8F, 0x00, 0x03, 0x1F, 0x00, 0x0C, 0x3E, 0x00, 0x10, 0x7C, 0x00, 0x60, 0xF8, 0x00, 0x81, 0xF0, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0xE0, 0x18, 0x07, 0xC0, 0x60, 0x0F, 0x81, 0xC0, 0x1F, 0x03, 0x00, 0x3E, 0x0E, 0x00, 0x7C, 0x3C, 0x00, 0xFC, 0xFE, 0x0F, 0xFE, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xFC, 0x01, 0xF8, 0x7E, 0x01, 0xF8, 0x3F, 0x01, 0xF0, 0x3F, 0x01, 0xF0, 0x3F, 0x01, 0xF0, 0x3F, 0x03, 0xE0, 0x3F, 0x03, 0xE0, 0x7E, 0x03, 0xE0, 0xFC, 0x03, 0xE3, 0xF0, 0x07, 0xFF, 0x80, 0x07, 0xC3, 0xE0, 0x07, 0xC1, 0xF8, 0x0F, 0xC0, 0xF8, 0x0F, 0x80, 0xFC, 0x0F, 0x80, 0xFC, 0x0F, 0x80, 0xFC, 0x1F, 0x80, 0xFC, 0x1F, 0x01, 0xFC, 0x1F, 0x01, 0xF8, 0x1F, 0x03, 0xF0, 0x3F, 0x0F, 0xE0, 0x7F, 0xFF, 0xC0, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0x82, 0x01, 0xFF, 0xE8, 0x07, 0xE0, 0xF0, 0x3F, 0x80, 0xE0, 0xFE, 0x00, 0xC1, 0xF8, 0x01, 0x87, 0xE0, 0x02, 0x1F, 0x80, 0x04, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xE0, 0x01, 0x07, 0xE0, 0x06, 0x07, 0xE0, 0x18, 0x07, 0xE0, 0xE0, 0x07, 0xFF, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xFE, 0x00, 0x1F, 0x87, 0xE0, 0x07, 0xE0, 0x7C, 0x01, 0xF0, 0x1F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x0F, 0x80, 0x3F, 0x03, 0xE0, 0x0F, 0xC0, 0xF8, 0x03, 0xF0, 0x3E, 0x00, 0xFC, 0x1F, 0x00, 0x3F, 0x07, 0xC0, 0x0F, 0xC1, 0xF0, 0x07, 0xF0, 0xFC, 0x01, 0xF8, 0x3E, 0x00, 0x7E, 0x0F, 0x80, 0x3F, 0x83, 0xE0, 0x0F, 0xC1, 0xF8, 0x07, 0xF0, 0x7C, 0x01, 0xF8, 0x1F, 0x00, 0xFC, 0x07, 0xC0, 0x7E, 0x03, 0xF0, 0x7E, 0x01, 0xFF, 0xFF, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0x03, 0xFF, 0xFC, 0x07, 0xE0, 0x78, 0x0F, 0xC0, 0x60, 0x1F, 0x00, 0x40, 0x3E, 0x00, 0x80, 0x7C, 0x01, 0x01, 0xF8, 0x10, 0x03, 0xE0, 0x60, 0x07, 0xC3, 0x80, 0x0F, 0xFF, 0x00, 0x3F, 0xFE, 0x00, 0x7C, 0x38, 0x00, 0xF8, 0x30, 0x03, 0xF0, 0x60, 0x07, 0xC0, 0x80, 0x0F, 0x81, 0x00, 0x1F, 0x00, 0x10, 0x7E, 0x00, 0x60, 0xF8, 0x01, 0xC1, 0xF0, 0x07, 0x03, 0xE0, 0x1E, 0x0F, 0xC0, 0xFC, 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFE, 0x03, 0xFF, 0xFC, 0x07, 0xE0, 0x78, 0x0F, 0xC0, 0x60, 0x1F, 0x00, 0x40, 0x3E, 0x00, 0x80, 0x7C, 0x01, 0x01, 0xF8, 0x20, 0x03, 0xE0, 0xC0, 0x07, 0xC3, 0x80, 0x0F, 0xFE, 0x00, 0x3F, 0xFC, 0x00, 0x7C, 0x38, 0x00, 0xF8, 0x30, 0x03, 0xF0, 0x60, 0x07, 0xC0, 0x80, 0x0F, 0x81, 0x00, 0x1F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x1F, 0xC2, 0x00, 0xFF, 0xF6, 0x01, 0xF8, 0x3C, 0x03, 0xE0, 0x1C, 0x0F, 0xC0, 0x0C, 0x0F, 0xC0, 0x08, 0x1F, 0x80, 0x08, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFC, 0x03, 0xFF, 0xFC, 0x00, 0xFC, 0xFC, 0x00, 0xF8, 0xFC, 0x00, 0xF8, 0xFC, 0x00, 0xF8, 0xFC, 0x00, 0xF0, 0x7C, 0x01, 0xF0, 0x7E, 0x01, 0xF0, 0x3E, 0x01, 0xF0, 0x1F, 0x83, 0xE0, 0x0F, 0xFF, 0x80, 0x01, 0xFC, 0x00, 0x07, 0xFF, 0x3F, 0xF8, 0x0F, 0xE0, 0x7F, 0x00, 0x7E, 0x01, 0xF8, 0x03, 0xF0, 0x0F, 0x80, 0x1F, 0x00, 0x7C, 0x00, 0xF8, 0x07, 0xE0, 0x07, 0xC0, 0x3E, 0x00, 0x7E, 0x01, 0xF0, 0x03, 0xE0, 0x0F, 0x80, 0x1F, 0x00, 0xF8, 0x00, 0xF8, 0x07, 0xC0, 0x0F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xF0, 0x03, 0xE0, 0x1F, 0x00, 0x3F, 0x00, 0xF8, 0x01, 0xF0, 0x07, 0xC0, 0x0F, 0x80, 0x7E, 0x00, 0x7C, 0x03, 0xE0, 0x07, 0xE0, 0x1F, 0x00, 0x3E, 0x00, 0xF8, 0x01, 0xF0, 0x0F, 0xC0, 0x0F, 0x80, 0x7C, 0x00, 0xFC, 0x03, 0xE0, 0x0F, 0xE0, 0x3F, 0x80, 0xFF, 0xC7, 0xFF, 0x00, 0x07, 0xFE, 0x03, 0xF8, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x03, 0xF0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x0F, 0xC0, 0x3F, 0x80, 0xFF, 0xC0, 0x00, 0x3F, 0xF0, 0x01, 0xFE, 0x00, 0x0F, 0xC0, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0xC0, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x61, 0xF0, 0x0F, 0x3F, 0x00, 0xE7, 0xE0, 0x07, 0xFC, 0x00, 0x3F, 0x00, 0x00, 0x07, 0xFF, 0x3F, 0x80, 0xFE, 0x07, 0x80, 0x7E, 0x03, 0x00, 0x3F, 0x03, 0x00, 0x1F, 0x03, 0x00, 0x0F, 0x83, 0x00, 0x07, 0xC3, 0x00, 0x07, 0xE3, 0x00, 0x03, 0xE3, 0x00, 0x01, 0xF3, 0x00, 0x00, 0xFB, 0x80, 0x00, 0xFB, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3E, 0xF8, 0x00, 0x3F, 0x7C, 0x00, 0x1F, 0x1F, 0x00, 0x0F, 0x8F, 0x80, 0x07, 0xC7, 0xE0, 0x07, 0xE1, 0xF0, 0x03, 0xE0, 0xFC, 0x01, 0xF0, 0x3E, 0x00, 0xF8, 0x1F, 0x00, 0xFC, 0x07, 0xC0, 0xFE, 0x07, 0xF0, 0xFF, 0xCF, 0xFC, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0x7E, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x3E, 0x00, 0x11, 0xF0, 0x00, 0xC7, 0xC0, 0x06, 0x1F, 0x00, 0x38, 0x7C, 0x01, 0xE3, 0xF0, 0x3F, 0x9F, 0xFF, 0xFC, 0xFF, 0xFF, 0xF0, 0x07, 0xF8, 0x00, 0x7F, 0x80, 0xFC, 0x00, 0x3F, 0x80, 0x3E, 0x00, 0x3F, 0x80, 0x1F, 0x00, 0x3F, 0x80, 0x1F, 0x80, 0x1F, 0xC0, 0x0F, 0xE0, 0x1B, 0xE0, 0x07, 0xF0, 0x0D, 0xF0, 0x02, 0xF8, 0x0D, 0xF0, 0x03, 0x7C, 0x0C, 0xF8, 0x01, 0xBE, 0x06, 0x7C, 0x00, 0xDF, 0x06, 0x7C, 0x00, 0xCF, 0x83, 0x3E, 0x00, 0x67, 0xC3, 0x1F, 0x00, 0x31, 0xE3, 0x0F, 0x80, 0x38, 0xF9, 0x8F, 0x80, 0x18, 0x7D, 0x87, 0xC0, 0x0C, 0x3F, 0x83, 0xE0, 0x06, 0x1F, 0xC1, 0xF0, 0x06, 0x0F, 0xC1, 0xF0, 0x03, 0x07, 0xC0, 0xF8, 0x01, 0x83, 0xE0, 0x7C, 0x01, 0xC0, 0xE0, 0x7E, 0x00, 0xE0, 0x70, 0x3F, 0x00, 0xF8, 0x30, 0x3F, 0x80, 0xFF, 0x10, 0x7F, 0xF0, 0x00, 0x07, 0xF0, 0x0F, 0xE0, 0x3E, 0x00, 0x78, 0x07, 0xE0, 0x06, 0x00, 0x7C, 0x00, 0xC0, 0x1F, 0xC0, 0x10, 0x03, 0xF8, 0x06, 0x00, 0x6F, 0x80, 0xC0, 0x19, 0xF0, 0x10, 0x03, 0x3F, 0x02, 0x00, 0x63, 0xE0, 0xC0, 0x0C, 0x7C, 0x18, 0x03, 0x07, 0xC2, 0x00, 0x60, 0xF8, 0x40, 0x0C, 0x0F, 0x98, 0x03, 0x81, 0xF3, 0x00, 0x60, 0x3F, 0x40, 0x0C, 0x03, 0xF8, 0x01, 0x80, 0x7F, 0x00, 0x60, 0x07, 0xC0, 0x0C, 0x00, 0xF8, 0x01, 0x80, 0x0F, 0x00, 0x70, 0x01, 0xE0, 0x0E, 0x00, 0x18, 0x03, 0xE0, 0x03, 0x00, 0x02, 0x00, 0x60, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0xC0, 0x07, 0xC3, 0xE0, 0x1F, 0x03, 0xC0, 0x7C, 0x03, 0xC1, 0xF0, 0x07, 0x87, 0xE0, 0x0F, 0x8F, 0x80, 0x1F, 0x3F, 0x00, 0x3E, 0x7C, 0x00, 0x7D, 0xF8, 0x01, 0xFB, 0xE0, 0x03, 0xF7, 0xC0, 0x07, 0xDF, 0x80, 0x1F, 0xBF, 0x00, 0x3F, 0x7C, 0x00, 0x7C, 0xF8, 0x01, 0xF9, 0xF0, 0x03, 0xE3, 0xE0, 0x0F, 0xC7, 0xC0, 0x1F, 0x07, 0x80, 0x7C, 0x0F, 0x81, 0xF0, 0x0F, 0x87, 0xC0, 0x0F, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x07, 0xE3, 0xF0, 0x0F, 0x83, 0xE0, 0x1F, 0x07, 0xE0, 0x3E, 0x0F, 0xC0, 0x7C, 0x1F, 0x81, 0xF0, 0x3F, 0x03, 0xE0, 0xFE, 0x07, 0xC1, 0xF8, 0x0F, 0x87, 0xF0, 0x3E, 0x1F, 0xC0, 0x7F, 0xFE, 0x00, 0xFF, 0xF0, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0xC0, 0x07, 0xC3, 0xE0, 0x1F, 0x03, 0xC0, 0x7C, 0x03, 0xC1, 0xF0, 0x07, 0x87, 0xE0, 0x0F, 0x8F, 0x80, 0x1F, 0x3F, 0x00, 0x3E, 0x7C, 0x00, 0x7D, 0xF8, 0x01, 0xFB, 0xF0, 0x03, 0xF7, 0xC0, 0x07, 0xDF, 0x80, 0x0F, 0xBF, 0x00, 0x3F, 0x7C, 0x00, 0x7C, 0xF8, 0x01, 0xF9, 0xF0, 0x03, 0xE3, 0xE0, 0x07, 0xC7, 0xC0, 0x1F, 0x07, 0x80, 0x7C, 0x0F, 0x01, 0xF0, 0x0F, 0x07, 0x80, 0x07, 0xFE, 0x00, 0x03, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x3C, 0x00, 0x20, 0xFF, 0xC1, 0x87, 0xFF, 0xFE, 0x1E, 0xFF, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xFC, 0x01, 0xF8, 0x7E, 0x01, 0xF8, 0x3F, 0x01, 0xF8, 0x3F, 0x01, 0xF0, 0x3F, 0x01, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xE0, 0x7E, 0x03, 0xE0, 0xFE, 0x03, 0xE1, 0xF8, 0x07, 0xFF, 0xF0, 0x07, 0xFF, 0x80, 0x07, 0xDF, 0xC0, 0x0F, 0xCF, 0xC0, 0x0F, 0xCF, 0xC0, 0x0F, 0x8F, 0xE0, 0x0F, 0x87, 0xE0, 0x1F, 0x87, 0xE0, 0x1F, 0x03, 0xF0, 0x1F, 0x03, 0xF0, 0x1F, 0x03, 0xF0, 0x3F, 0x01, 0xF8, 0x7F, 0x01, 0xF8, 0xFF, 0xE1, 0xFE, 0x00, 0xF8, 0x40, 0xFF, 0xB0, 0x38, 0x3C, 0x1C, 0x07, 0x0F, 0x01, 0xC3, 0xC0, 0x20, 0xF0, 0x08, 0x3E, 0x02, 0x0F, 0xC0, 0x03, 0xF8, 0x00, 0x7F, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x00, 0x03, 0xC4, 0x00, 0xF1, 0x00, 0x3C, 0x60, 0x0F, 0x38, 0x07, 0x8F, 0x83, 0xC2, 0x3F, 0xE0, 0x83, 0xF0, 0x00, 0x3F, 0xFF, 0xF9, 0xFF, 0xFF, 0xCF, 0x1F, 0x1E, 0x70, 0xF8, 0x77, 0x0F, 0x83, 0x30, 0x7C, 0x09, 0x03, 0xE0, 0x40, 0x3F, 0x02, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x7E, 0x00, 0x07, 0xF0, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF0, 0xFF, 0x1F, 0xC0, 0x3E, 0x1F, 0x80, 0x1C, 0x1F, 0x80, 0x18, 0x1F, 0x00, 0x18, 0x1F, 0x00, 0x18, 0x1F, 0x00, 0x30, 0x3F, 0x00, 0x30, 0x3E, 0x00, 0x30, 0x3E, 0x00, 0x30, 0x7E, 0x00, 0x60, 0x7C, 0x00, 0x60, 0x7C, 0x00, 0x60, 0x7C, 0x00, 0xC0, 0x7C, 0x00, 0xC0, 0xF8, 0x00, 0xC0, 0xF8, 0x00, 0xC0, 0xF8, 0x01, 0x80, 0xF8, 0x01, 0x80, 0xF8, 0x03, 0x80, 0xF8, 0x03, 0x00, 0x7C, 0x06, 0x00, 0x7E, 0x1E, 0x00, 0x3F, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0xFF, 0xE0, 0x7F, 0x3F, 0x80, 0x1C, 0x1F, 0x80, 0x18, 0x1F, 0x80, 0x18, 0x1F, 0x80, 0x30, 0x1F, 0x80, 0x30, 0x0F, 0x80, 0x60, 0x0F, 0x80, 0x40, 0x0F, 0x80, 0xC0, 0x0F, 0x81, 0x80, 0x0F, 0x81, 0x00, 0x0F, 0xC3, 0x00, 0x0F, 0xC6, 0x00, 0x07, 0xC6, 0x00, 0x07, 0xCC, 0x00, 0x07, 0xC8, 0x00, 0x07, 0xD8, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xCF, 0xF8, 0x7E, 0x7F, 0x07, 0xE0, 0x38, 0x7C, 0x07, 0x80, 0x60, 0xF8, 0x0F, 0x00, 0x81, 0xF0, 0x1E, 0x03, 0x03, 0xE0, 0x3E, 0x04, 0x07, 0xE0, 0xFC, 0x18, 0x07, 0xC1, 0xF8, 0x20, 0x0F, 0x87, 0xF0, 0xC0, 0x1F, 0x0B, 0xE1, 0x00, 0x3E, 0x37, 0xC6, 0x00, 0x7C, 0x47, 0x88, 0x00, 0xF9, 0x8F, 0x30, 0x01, 0xF2, 0x1F, 0x40, 0x03, 0xEC, 0x3E, 0x80, 0x03, 0xF0, 0x7F, 0x00, 0x07, 0xE0, 0xFC, 0x00, 0x0F, 0x81, 0xF8, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0x3C, 0x07, 0xC0, 0x00, 0x78, 0x07, 0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00, 0xC0, 0x18, 0x00, 0x01, 0x80, 0x30, 0x00, 0x02, 0x00, 0x40, 0x00, 0x0F, 0xFE, 0x3F, 0x81, 0xFC, 0x07, 0x80, 0x7C, 0x03, 0x00, 0x3F, 0x03, 0x00, 0x0F, 0x83, 0x80, 0x07, 0xC1, 0x80, 0x03, 0xE1, 0x80, 0x00, 0xF9, 0x80, 0x00, 0x7D, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xCF, 0x00, 0x00, 0xC7, 0xC0, 0x00, 0xC3, 0xE0, 0x00, 0xC1, 0xF0, 0x00, 0xC0, 0x7C, 0x00, 0xE0, 0x3E, 0x00, 0xE0, 0x1F, 0x00, 0xF8, 0x1F, 0xE0, 0xFF, 0x1F, 0xF8, 0x00, 0xFF, 0xC3, 0xF9, 0xF8, 0x07, 0x87, 0xC0, 0x38, 0x3E, 0x01, 0x81, 0xF0, 0x18, 0x07, 0xC0, 0x80, 0x3E, 0x0C, 0x01, 0xF0, 0xC0, 0x07, 0xC4, 0x00, 0x3E, 0x60, 0x01, 0xF6, 0x00, 0x07, 0xA0, 0x00, 0x3F, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x7E, 0x00, 0x07, 0xF0, 0x00, 0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xF8, 0x3F, 0xFF, 0xC3, 0xE0, 0x7E, 0x1C, 0x07, 0xE0, 0xC0, 0x3E, 0x0C, 0x03, 0xF0, 0x40, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x01, 0xF8, 0x00, 0x1F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x83, 0xE0, 0x0C, 0x3F, 0x00, 0xC3, 0xF0, 0x0E, 0x1F, 0x00, 0xF1, 0xF8, 0x1F, 0x9F, 0xFF, 0xF8, 0xFF, 0xFF, 0xC0, 0x01, 0xFC, 0x0F, 0xE0, 0x3C, 0x00, 0xE0, 0x03, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xC0, 0x07, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0x80, 0x0E, 0x00, 0x38, 0x01, 0xE0, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x03, 0xC0, 0x0F, 0x00, 0x38, 0x00, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x70, 0x01, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xFF, 0x03, 0xF8, 0x00, 0xE0, 0x38, 0x07, 0x01, 0xC0, 0x70, 0x0C, 0x03, 0x80, 0xE0, 0x38, 0x07, 0x01, 0xC0, 0x70, 0x0C, 0x03, 0x80, 0xE0, 0x38, 0x07, 0x01, 0xC0, 0x70, 0x0C, 0x03, 0x80, 0xE0, 0x38, 0x07, 0x01, 0xC0, 0x03, 0xFC, 0x0F, 0xF0, 0x03, 0x80, 0x0E, 0x00, 0x38, 0x01, 0xE0, 0x07, 0x80, 0x1C, 0x00, 0x70, 0x03, 0xC0, 0x0F, 0x00, 0x38, 0x00, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x70, 0x01, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x00, 0x1C, 0x00, 0xF0, 0x03, 0xC0, 0xFE, 0x03, 0xF8, 0x00, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0xE0, 0x07, 0xE0, 0x0E, 0x70, 0x0E, 0x70, 0x1C, 0x78, 0x1C, 0x38, 0x3C, 0x3C, 0x38, 0x1C, 0x78, 0x1E, 0x70, 0x0E, 0xF0, 0x0E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xE1, 0xE3, 0xC1, 0xC1, 0xC0, 0xC0, 0x00, 0xF7, 0x80, 0xFD, 0xE0, 0x7C, 0xF0, 0x3C, 0x3C, 0x1E, 0x0F, 0x0F, 0x83, 0x83, 0xC1, 0xE1, 0xE0, 0x78, 0x78, 0x1C, 0x3E, 0x0F, 0x0F, 0x03, 0xC3, 0xC1, 0xF0, 0xF0, 0xFC, 0xFE, 0x6F, 0x6F, 0xF3, 0xF1, 0xF8, 0xF8, 0x3C, 0x1C, 0x00, 0x01, 0xE0, 0x1F, 0xC0, 0x07, 0xC0, 0x07, 0xC0, 0x07, 0x80, 0x07, 0x80, 0x0F, 0x80, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x3C, 0x1E, 0xFE, 0x1F, 0x9F, 0x1F, 0x0F, 0x1E, 0x0F, 0x3E, 0x0F, 0x3C, 0x0F, 0x3C, 0x1F, 0x78, 0x1E, 0x78, 0x1E, 0x78, 0x3C, 0x78, 0x3C, 0xF0, 0x78, 0xF0, 0xF0, 0xF1, 0xE0, 0x7F, 0xC0, 0x3F, 0x00, 0x01, 0xF0, 0x3F, 0xC3, 0xCE, 0x3C, 0xF3, 0xC7, 0x1E, 0x01, 0xE0, 0x0F, 0x00, 0xF8, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x03, 0x78, 0x31, 0xE3, 0x0F, 0xF0, 0x1E, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x01, 0xEF, 0x00, 0x7F, 0xE0, 0x3E, 0x7C, 0x07, 0x8F, 0x01, 0xE1, 0xE0, 0x78, 0x3C, 0x0F, 0x0F, 0x83, 0xC1, 0xE0, 0x78, 0x3C, 0x1E, 0x0F, 0x83, 0xC1, 0xF0, 0x78, 0x7C, 0x0F, 0x0F, 0x91, 0xE3, 0xF6, 0x3F, 0xDF, 0x83, 0xF3, 0xE0, 0x3C, 0x38, 0x00, 0x01, 0xE0, 0x3F, 0x83, 0xCE, 0x3C, 0x73, 0xC3, 0x9E, 0x1D, 0xE1, 0xCF, 0x1C, 0xFB, 0xC7, 0xF8, 0x3C, 0x01, 0xE0, 0x0F, 0x02, 0x78, 0x31, 0xE3, 0x0F, 0xF0, 0x1E, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x1D, 0xC0, 0x01, 0xCE, 0x00, 0x1C, 0x70, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x03, 0xE0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x0E, 0x70, 0x00, 0x77, 0x80, 0x03, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x7F, 0xFC, 0x1F, 0x1F, 0x87, 0xC3, 0xC1, 0xF0, 0x78, 0x3C, 0x1F, 0x07, 0x83, 0xE0, 0xF0, 0xF8, 0x0E, 0x3E, 0x01, 0xFF, 0x80, 0x3F, 0xC0, 0x0C, 0x00, 0x03, 0xC0, 0x00, 0x7F, 0x80, 0x0F, 0xFE, 0x00, 0x7F, 0xF0, 0x70, 0xFF, 0x1C, 0x03, 0xE3, 0x80, 0x3C, 0x70, 0x07, 0x0F, 0x03, 0xE0, 0xFF, 0xF0, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0xF8, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x0F, 0x0E, 0x07, 0x9F, 0x83, 0xDF, 0xC3, 0xE9, 0xE1, 0xE8, 0xF0, 0xF8, 0xF8, 0x7C, 0x78, 0x7C, 0x3C, 0x3E, 0x3E, 0x1E, 0x1E, 0x1F, 0x0F, 0x0F, 0x0F, 0x87, 0x87, 0xCB, 0xC3, 0xCB, 0xE1, 0xE9, 0xE0, 0xFC, 0xF0, 0x38, 0x00, 0x03, 0x03, 0xC1, 0xE0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x07, 0x3F, 0x87, 0x83, 0xC1, 0xE0, 0xF0, 0xF0, 0x78, 0x3C, 0x1E, 0x1E, 0x0F, 0x27, 0x17, 0x93, 0xF1, 0xF8, 0x70, 0x00, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xFE, 0x00, 0x3E, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x7C, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0xF8, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x01, 0xF0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0xE3, 0xC0, 0xE7, 0x80, 0xFF, 0x00, 0x7C, 0x00, 0x1F, 0xC0, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x0F, 0x3F, 0x87, 0x87, 0x83, 0xC3, 0x03, 0xE3, 0x01, 0xE3, 0x00, 0xF3, 0x00, 0x7B, 0x80, 0x7B, 0xC0, 0x3F, 0xE0, 0x1E, 0xF0, 0x1F, 0x78, 0x0F, 0x1E, 0x07, 0x8F, 0x13, 0xC7, 0x93, 0xE1, 0xF9, 0xE0, 0xF8, 0xF0, 0x38, 0x00, 0x1F, 0xC0, 0xF8, 0x1F, 0x03, 0xC0, 0x78, 0x1F, 0x03, 0xE0, 0x78, 0x0F, 0x01, 0xE0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x3C, 0x0F, 0x81, 0xE0, 0x3C, 0x8F, 0x31, 0xEC, 0x3F, 0x07, 0xC0, 0x70, 0x00, 0x01, 0x87, 0x07, 0x0F, 0xE7, 0xE7, 0xE0, 0xF3, 0xF9, 0xF8, 0x3D, 0x9E, 0x9E, 0x0F, 0x47, 0xC7, 0x83, 0xE1, 0xD1, 0xE1, 0xF8, 0xF8, 0xF0, 0x7C, 0x3C, 0x3C, 0x1F, 0x0F, 0x1F, 0x0F, 0x87, 0xC7, 0x83, 0xE1, 0xE1, 0xE0, 0xF0, 0x78, 0x78, 0x3C, 0x1E, 0x3C, 0x1F, 0x0F, 0x0F, 0x27, 0x83, 0xC3, 0xD1, 0xE0, 0xF0, 0xFC, 0xF8, 0x78, 0x1C, 0x00, 0x01, 0x8F, 0x0F, 0xE7, 0xE0, 0xF3, 0xF8, 0x3C, 0x9E, 0x0F, 0x47, 0x87, 0xA3, 0xC1, 0xE8, 0xF0, 0x7C, 0x3C, 0x1E, 0x1E, 0x0F, 0x87, 0x83, 0xE1, 0xE0, 0xF0, 0xF8, 0x3C, 0x3C, 0x1F, 0x0F, 0x27, 0x83, 0xD1, 0xE0, 0xFC, 0x78, 0x1C, 0x00, 0x01, 0xF0, 0x0E, 0x30, 0x38, 0x70, 0xF0, 0xF3, 0xC1, 0xE7, 0x83, 0xDE, 0x07, 0xBC, 0x1F, 0xF8, 0x3F, 0xE0, 0x7B, 0xC0, 0xF7, 0x83, 0xCF, 0x07, 0x9E, 0x1E, 0x1C, 0x38, 0x1C, 0xE0, 0x1F, 0x00, 0x00, 0xE3, 0x80, 0xFD, 0xF8, 0x0F, 0xFF, 0x81, 0xE8, 0xF0, 0x3E, 0x1E, 0x07, 0x83, 0xC0, 0xF0, 0x78, 0x3E, 0x1F, 0x07, 0x83, 0xC0, 0xF0, 0x78, 0x1E, 0x1F, 0x07, 0x83, 0xC0, 0xF0, 0xF8, 0x1E, 0x1E, 0x03, 0xC7, 0x80, 0xFF, 0xE0, 0x1E, 0xF0, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xEF, 0x07, 0xFF, 0x0F, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x3C, 0x1E, 0x7C, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0xF0, 0x7C, 0xF0, 0x78, 0xF0, 0xF8, 0xF0, 0xF8, 0xF1, 0xF0, 0xFE, 0xF0, 0x7E, 0xF0, 0x39, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x1F, 0xF8, 0x03, 0x9C, 0x7F, 0x7C, 0x3D, 0xF8, 0x7A, 0xE0, 0xF8, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x7C, 0x00, 0x07, 0x18, 0xFF, 0xC7, 0x1C, 0x70, 0x63, 0x81, 0x1E, 0x08, 0xF8, 0x07, 0xE0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0x84, 0x3C, 0x20, 0xE1, 0x87, 0x1C, 0x70, 0x9E, 0x00, 0x00, 0x80, 0x60, 0x30, 0x1C, 0x1F, 0x1F, 0xF7, 0xFC, 0x78, 0x1E, 0x07, 0x83, 0xC0, 0xF0, 0x3C, 0x1F, 0x07, 0x81, 0xE0, 0x79, 0x3C, 0x4F, 0x23, 0xF0, 0xFC, 0x1C, 0x00, 0x0F, 0x0F, 0x3F, 0x87, 0x8F, 0x83, 0xC7, 0xC1, 0xE3, 0xE1, 0xE1, 0xE0, 0xF0, 0xF0, 0x78, 0xF8, 0x78, 0x78, 0x3C, 0x3C, 0x3E, 0x1E, 0x1F, 0x1E, 0x1F, 0x0F, 0x17, 0x97, 0x9B, 0xCB, 0xF9, 0xF9, 0xF8, 0xF8, 0x78, 0x38, 0x00, 0x18, 0x37, 0xC3, 0xDE, 0x1E, 0x78, 0x73, 0xC1, 0x9E, 0x08, 0xF0, 0xC7, 0x84, 0x3C, 0x41, 0xE4, 0x0F, 0x40, 0x7C, 0x03, 0xC0, 0x1C, 0x00, 0xC0, 0x04, 0x00, 0x38, 0x10, 0xDF, 0x06, 0x3D, 0xE0, 0xC7, 0xBC, 0x38, 0x73, 0xC7, 0x06, 0x79, 0xF0, 0x8F, 0x3E, 0x11, 0xEB, 0xC4, 0x3F, 0x79, 0x07, 0xCF, 0x60, 0xF9, 0xE8, 0x1E, 0x3E, 0x03, 0x87, 0x80, 0x70, 0xF0, 0x0C, 0x0C, 0x01, 0x01, 0x00, 0x03, 0x83, 0x87, 0xF1, 0xF0, 0x3C, 0xF8, 0x0F, 0x60, 0x03, 0xD0, 0x00, 0xF8, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1F, 0x00, 0x0F, 0xC0, 0x02, 0xF1, 0x39, 0x3C, 0xCF, 0xCF, 0xE3, 0xE1, 0xF0, 0x70, 0x38, 0x00, 0x01, 0x83, 0x07, 0xE3, 0xC1, 0xF1, 0xE0, 0x78, 0xF0, 0x3E, 0x18, 0x1F, 0x08, 0x07, 0x84, 0x03, 0xC6, 0x01, 0xE2, 0x00, 0xFB, 0x00, 0x3D, 0x00, 0x1F, 0x80, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xE0, 0x00, 0x60, 0x00, 0x60, 0x0E, 0x60, 0x0F, 0xE0, 0x07, 0xE0, 0x01, 0xC0, 0x00, 0x1F, 0xFC, 0x3F, 0xF8, 0x7F, 0xE1, 0x81, 0x82, 0x06, 0x00, 0x08, 0x00, 0x20, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x40, 0x01, 0x80, 0x07, 0xC0, 0x1F, 0x86, 0x3F, 0x8E, 0xCF, 0x9C, 0x07, 0x30, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0xF8, 0x03, 0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x01, 0xE0, 0x03, 0xC0, 0x1F, 0x00, 0x7E, 0x00, 0x30, 0x00, 0x60, 0x00, 0xE0, 0x01, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x0F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0xF0, 0x00, 0x70, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1C, 0x00, 0x18, 0x00, 0x10, 0x00, 0xF0, 0x03, 0xF0, 0x0F, 0x00, 0x1E, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x70, 0x01, 0xE0, 0x0F, 0x80, 0x7C, 0x00, 0x3E, 0x00, 0x7F, 0xC6, 0xFF, 0xFF, 0x61, 0xFE, 0x00, 0x7C}; const GFXglyph FreeSerifBoldItalic18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 9, 0, 1}, // 0x20 ' ' {0, 11, 25, 14, 2, -23}, // 0x21 '!' {35, 14, 10, 19, 4, -23}, // 0x22 '"' {53, 20, 25, 17, -1, -24}, // 0x23 '#' {116, 17, 29, 18, 0, -25}, // 0x24 '$' {178, 27, 25, 29, 1, -23}, // 0x25 '%' {263, 25, 25, 27, 0, -23}, // 0x26 '&' {342, 5, 10, 10, 4, -23}, // 0x27 ''' {349, 11, 30, 12, 1, -23}, // 0x28 '(' {391, 11, 30, 12, -2, -23}, // 0x29 ')' {433, 13, 15, 18, 2, -23}, // 0x2A '*' {458, 17, 17, 20, 1, -16}, // 0x2B '+' {495, 7, 11, 9, -2, -4}, // 0x2C ',' {505, 9, 4, 12, 0, -9}, // 0x2D '-' {510, 6, 5, 9, 0, -3}, // 0x2E '.' {514, 14, 25, 12, 0, -23}, // 0x2F '/' {558, 15, 25, 18, 1, -23}, // 0x30 '0' {605, 15, 25, 17, 0, -23}, // 0x31 '1' {652, 16, 25, 18, 0, -23}, // 0x32 '2' {702, 15, 25, 17, 1, -23}, // 0x33 '3' {749, 18, 24, 17, 0, -23}, // 0x34 '4' {803, 17, 25, 18, 0, -23}, // 0x35 '5' {857, 17, 25, 18, 1, -23}, // 0x36 '6' {911, 16, 24, 17, 3, -23}, // 0x37 '7' {959, 17, 25, 18, 0, -23}, // 0x38 '8' {1013, 17, 25, 18, 0, -23}, // 0x39 '9' {1067, 10, 17, 9, 0, -15}, // 0x3A ':' {1089, 11, 22, 9, -1, -15}, // 0x3B ';' {1120, 18, 19, 20, 1, -18}, // 0x3C '<' {1163, 18, 10, 20, 2, -13}, // 0x3D '=' {1186, 18, 19, 20, 2, -18}, // 0x3E '>' {1229, 13, 25, 17, 3, -23}, // 0x3F '?' {1270, 25, 25, 29, 2, -23}, // 0x40 '@' {1349, 23, 25, 24, 0, -23}, // 0x41 'A' {1421, 24, 25, 22, 0, -23}, // 0x42 'B' {1496, 23, 25, 22, 1, -23}, // 0x43 'C' {1568, 26, 25, 25, 0, -23}, // 0x44 'D' {1650, 23, 25, 22, 0, -23}, // 0x45 'E' {1722, 23, 25, 21, 0, -23}, // 0x46 'F' {1794, 24, 25, 25, 2, -23}, // 0x47 'G' {1869, 29, 25, 26, 0, -23}, // 0x48 'H' {1960, 15, 25, 13, 0, -23}, // 0x49 'I' {2007, 20, 27, 17, 0, -23}, // 0x4A 'J' {2075, 25, 25, 23, 0, -23}, // 0x4B 'K' {2154, 22, 25, 21, 0, -23}, // 0x4C 'L' {2223, 33, 25, 31, 0, -23}, // 0x4D 'M' {2327, 27, 25, 25, 0, -23}, // 0x4E 'N' {2412, 23, 25, 24, 1, -23}, // 0x4F 'O' {2484, 23, 25, 21, 0, -23}, // 0x50 'P' {2556, 23, 31, 24, 1, -23}, // 0x51 'Q' {2646, 24, 25, 23, 0, -23}, // 0x52 'R' {2721, 18, 25, 18, 0, -23}, // 0x53 'S' {2778, 21, 25, 21, 3, -23}, // 0x54 'T' {2844, 24, 25, 25, 4, -23}, // 0x55 'U' {2919, 24, 25, 25, 4, -23}, // 0x56 'V' {2994, 31, 25, 32, 4, -23}, // 0x57 'W' {3091, 25, 25, 24, 0, -23}, // 0x58 'X' {3170, 21, 25, 22, 4, -23}, // 0x59 'Y' {3236, 21, 25, 20, 0, -23}, // 0x5A 'Z' {3302, 14, 30, 12, -1, -23}, // 0x5B '[' {3355, 10, 25, 14, 4, -23}, // 0x5C '\' {3387, 14, 30, 12, -2, -23}, // 0x5D ']' {3440, 16, 13, 20, 2, -23}, // 0x5E '^' {3466, 18, 3, 17, 0, 3}, // 0x5F '_' {3473, 7, 6, 12, 3, -23}, // 0x60 '`' {3479, 18, 17, 18, 0, -15}, // 0x61 'a' {3518, 16, 26, 17, 1, -24}, // 0x62 'b' {3570, 13, 17, 15, 1, -15}, // 0x63 'c' {3598, 19, 25, 18, 1, -23}, // 0x64 'd' {3658, 13, 17, 15, 1, -15}, // 0x65 'e' {3686, 21, 32, 17, -3, -24}, // 0x66 'f' {3770, 19, 23, 17, -1, -15}, // 0x67 'g' {3825, 17, 25, 19, 1, -23}, // 0x68 'h' {3879, 9, 25, 10, 1, -23}, // 0x69 'i' {3908, 16, 31, 12, -3, -23}, // 0x6A 'j' {3970, 17, 25, 18, 1, -23}, // 0x6B 'k' {4024, 11, 25, 10, 1, -23}, // 0x6C 'l' {4059, 26, 17, 27, 0, -15}, // 0x6D 'm' {4115, 18, 17, 18, 0, -15}, // 0x6E 'n' {4154, 15, 17, 17, 1, -15}, // 0x6F 'o' {4186, 19, 23, 17, -2, -15}, // 0x70 'p' {4241, 16, 23, 17, 1, -15}, // 0x71 'q' {4287, 15, 16, 14, 0, -15}, // 0x72 'r' {4317, 13, 17, 12, 0, -15}, // 0x73 's' {4345, 10, 22, 10, 1, -20}, // 0x74 't' {4373, 17, 17, 19, 1, -15}, // 0x75 'u' {4410, 13, 16, 15, 2, -15}, // 0x76 'v' {4436, 19, 16, 23, 3, -15}, // 0x77 'w' {4474, 18, 17, 17, -1, -15}, // 0x78 'x' {4513, 17, 23, 15, -2, -15}, // 0x79 'y' {4562, 15, 19, 14, 0, -15}, // 0x7A 'z' {4598, 15, 32, 12, 0, -24}, // 0x7B '{' {4658, 3, 25, 9, 4, -23}, // 0x7C '|' {4668, 15, 32, 12, -5, -24}, // 0x7D '}' {4728, 16, 5, 20, 2, -11}}; // 0x7E '~' const GFXfont FreeSerifBoldItalic18pt7b PROGMEM = { (uint8_t *)FreeSerifBoldItalic18pt7bBitmaps, (GFXglyph *)FreeSerifBoldItalic18pt7bGlyphs, 0x20, 0x7E, 42}; // Approx. 5410 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifBoldItalic24pt7b.h ================================================ const uint8_t FreeSerifBoldItalic24pt7bBitmaps[] PROGMEM = { 0x00, 0x3C, 0x00, 0xFC, 0x01, 0xF8, 0x07, 0xF0, 0x0F, 0xE0, 0x1F, 0xC0, 0x3F, 0x00, 0x7E, 0x00, 0xF8, 0x01, 0xF0, 0x07, 0xC0, 0x0F, 0x80, 0x1E, 0x00, 0x3C, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x00, 0x0E, 0x00, 0x18, 0x00, 0x30, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xF0, 0x0F, 0xF0, 0x1F, 0xE0, 0x3F, 0xC0, 0x3F, 0x00, 0x3C, 0x00, 0x1C, 0x01, 0xC7, 0xC0, 0x7D, 0xF8, 0x1F, 0xBF, 0x03, 0xF7, 0xC0, 0x7C, 0xF8, 0x0F, 0x9E, 0x01, 0xE3, 0xC0, 0x3C, 0x70, 0x07, 0x1E, 0x00, 0xE3, 0x80, 0x38, 0x70, 0x07, 0x0C, 0x00, 0xC0, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0x70, 0x38, 0x00, 0x1E, 0x0F, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0x70, 0x38, 0x00, 0x1E, 0x0F, 0x00, 0x03, 0x81, 0xC0, 0x00, 0xF0, 0x78, 0x00, 0x1E, 0x0F, 0x00, 0x07, 0x83, 0xC0, 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x00, 0xE0, 0x70, 0x00, 0x3C, 0x1E, 0x00, 0x07, 0x83, 0xC0, 0x00, 0xE0, 0x70, 0x00, 0x3C, 0x1E, 0x00, 0x07, 0x83, 0xC0, 0x00, 0xE0, 0x70, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x00, 0x38, 0x1C, 0x00, 0x0F, 0x07, 0x80, 0x01, 0xE0, 0xF0, 0x00, 0x38, 0x1C, 0x00, 0x0F, 0x07, 0x80, 0x01, 0xC0, 0xE0, 0x00, 0x78, 0x3C, 0x00, 0x0F, 0x07, 0x80, 0x01, 0xC0, 0xE0, 0x00, 0x78, 0x3C, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0xF8, 0x01, 0xF1, 0x9E, 0x01, 0xC1, 0x8F, 0x03, 0x83, 0x8F, 0x03, 0x83, 0x06, 0x07, 0x83, 0x06, 0x07, 0x87, 0x06, 0x07, 0xC7, 0x04, 0x07, 0xE6, 0x04, 0x07, 0xFE, 0x00, 0x03, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xF0, 0x00, 0x3B, 0xF8, 0x20, 0x31, 0xF8, 0x20, 0x30, 0xF8, 0x60, 0x70, 0xF8, 0x60, 0x60, 0xF8, 0x60, 0x60, 0xF8, 0xF0, 0xE0, 0xF0, 0xF0, 0xE1, 0xE0, 0x78, 0xC3, 0xE0, 0x3C, 0xC7, 0xC0, 0x0F, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x01, 0x80, 0x00, 0x03, 0x80, 0x00, 0x03, 0x80, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x70, 0x00, 0xFF, 0x80, 0x1C, 0x00, 0x3F, 0x38, 0x1F, 0x00, 0x0F, 0xC7, 0xFF, 0xE0, 0x03, 0xF0, 0x3F, 0xB8, 0x00, 0x7E, 0x04, 0x07, 0x00, 0x1F, 0x80, 0x81, 0xC0, 0x03, 0xF0, 0x10, 0x38, 0x00, 0xFC, 0x02, 0x0E, 0x00, 0x1F, 0x80, 0x81, 0x80, 0x03, 0xF0, 0x10, 0x70, 0x00, 0x7C, 0x06, 0x1C, 0x00, 0x0F, 0x80, 0x83, 0x80, 0x01, 0xF0, 0x30, 0xE0, 0x00, 0x1E, 0x0C, 0x1C, 0x07, 0xC3, 0xE3, 0x07, 0x03, 0xFC, 0x3F, 0xC0, 0xC0, 0xFC, 0x43, 0xE0, 0x38, 0x3E, 0x0C, 0x00, 0x0E, 0x0F, 0xC0, 0x80, 0x01, 0xC3, 0xF0, 0x10, 0x00, 0x70, 0xFC, 0x02, 0x00, 0x0C, 0x1F, 0x80, 0x40, 0x03, 0x83, 0xE0, 0x08, 0x00, 0x60, 0xFC, 0x02, 0x00, 0x1C, 0x1F, 0x80, 0x40, 0x07, 0x03, 0xE0, 0x10, 0x00, 0xE0, 0x7C, 0x02, 0x00, 0x38, 0x0F, 0x80, 0xC0, 0x06, 0x01, 0xF0, 0x30, 0x01, 0xC0, 0x1F, 0x0C, 0x00, 0x30, 0x01, 0xFF, 0x00, 0x0E, 0x00, 0x1F, 0x80, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x01, 0xF1, 0xE0, 0x00, 0x00, 0xF0, 0x78, 0x00, 0x00, 0xF0, 0x3C, 0x00, 0x00, 0x78, 0x1E, 0x00, 0x00, 0x7C, 0x0F, 0x00, 0x00, 0x3E, 0x0F, 0x80, 0x00, 0x1F, 0x07, 0x80, 0x00, 0x0F, 0x87, 0x80, 0x00, 0x07, 0xC7, 0x80, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x07, 0xFE, 0x03, 0xCF, 0xC0, 0xFE, 0x03, 0xC7, 0xE0, 0x3C, 0x07, 0xC3, 0xF0, 0x1C, 0x07, 0xC0, 0xFC, 0x0C, 0x03, 0xC0, 0x7E, 0x0E, 0x03, 0xE0, 0x3F, 0x0E, 0x01, 0xF0, 0x1F, 0xC6, 0x01, 0xF8, 0x07, 0xF6, 0x00, 0xFC, 0x03, 0xFF, 0x00, 0x7E, 0x00, 0xFF, 0x00, 0x3F, 0x80, 0x7F, 0x80, 0x1F, 0xC0, 0x1F, 0xC0, 0x07, 0xF0, 0x0F, 0xF0, 0x13, 0xFE, 0x0F, 0xFE, 0x18, 0xFF, 0xFE, 0xFF, 0xF8, 0x3F, 0xFE, 0x3F, 0xF8, 0x07, 0xF8, 0x03, 0xF0, 0x00, 0x1C, 0x7D, 0xFB, 0xF7, 0xCF, 0x9E, 0x3C, 0x71, 0xE3, 0x87, 0x0C, 0x00, 0x00, 0x04, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x3C, 0x01, 0xE0, 0x0F, 0x80, 0x3C, 0x00, 0xF0, 0x07, 0xC0, 0x1E, 0x00, 0x78, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x30, 0x00, 0xE0, 0x01, 0x80, 0x06, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x60, 0x01, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x08, 0x00, 0x30, 0x00, 0x40, 0x01, 0x80, 0x06, 0x00, 0x1C, 0x00, 0x30, 0x00, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x38, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1E, 0x00, 0x78, 0x03, 0xE0, 0x0F, 0x80, 0x3C, 0x01, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0xF0, 0x03, 0x80, 0x1E, 0x00, 0xF0, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x06, 0x00, 0x30, 0x00, 0x80, 0x00, 0x00, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x07, 0x0E, 0x1D, 0xF1, 0xC7, 0xFF, 0x11, 0xFF, 0xE2, 0x3F, 0x7E, 0x4F, 0xC0, 0x3E, 0x00, 0x07, 0xC0, 0x3F, 0x27, 0xEF, 0xC4, 0x7F, 0xF8, 0x8F, 0xFE, 0x38, 0xFB, 0x87, 0x0E, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0x70, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x07, 0xE1, 0xFC, 0x7F, 0x1F, 0xC3, 0xF0, 0x7C, 0x0E, 0x03, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x1C, 0x04, 0x00, 0x7F, 0xF7, 0xFF, 0x7F, 0xEF, 0xFE, 0xFF, 0xE0, 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x07, 0xC0, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00, 0x1E, 0x00, 0x07, 0xC0, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x00, 0xE3, 0x80, 0x0F, 0x07, 0x00, 0x7C, 0x1C, 0x03, 0xE0, 0x78, 0x0F, 0x81, 0xE0, 0x7C, 0x07, 0x83, 0xF0, 0x1F, 0x0F, 0xC0, 0xFC, 0x7E, 0x03, 0xF1, 0xF8, 0x0F, 0xCF, 0xE0, 0x3F, 0x3F, 0x00, 0xFD, 0xFC, 0x07, 0xF7, 0xF0, 0x1F, 0xDF, 0xC0, 0x7F, 0x7E, 0x01, 0xFB, 0xF8, 0x0F, 0xEF, 0xE0, 0x3F, 0xBF, 0x80, 0xFE, 0xFC, 0x03, 0xF3, 0xF0, 0x1F, 0xCF, 0xC0, 0x7F, 0x3F, 0x01, 0xF8, 0xFC, 0x07, 0xE3, 0xE0, 0x3F, 0x0F, 0x80, 0xFC, 0x1E, 0x07, 0xE0, 0x78, 0x1F, 0x00, 0xE0, 0x78, 0x03, 0x83, 0xC0, 0x07, 0x1E, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x70, 0x01, 0xFE, 0x01, 0xFF, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0x80, 0x01, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0x80, 0x01, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x1F, 0xF8, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0x80, 0x01, 0xFF, 0x80, 0x0F, 0xFF, 0x00, 0x7F, 0xFE, 0x03, 0x83, 0xF8, 0x0C, 0x07, 0xF0, 0x60, 0x1F, 0xC3, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x06, 0x03, 0x80, 0x10, 0x1C, 0x00, 0xC0, 0xE0, 0x06, 0x07, 0xFF, 0xF8, 0x3F, 0xFF, 0xE1, 0xFF, 0xFF, 0x0F, 0xFF, 0xFC, 0x3F, 0xFF, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x60, 0xFE, 0x03, 0x01, 0xFC, 0x08, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x07, 0xF8, 0x00, 0x7F, 0xF0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x3C, 0x1C, 0x01, 0xF0, 0xF8, 0x07, 0x83, 0xF0, 0x3C, 0x0F, 0xE1, 0xE0, 0x1F, 0xFE, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xFC, 0x00, 0x06, 0xFC, 0x00, 0x06, 0x7E, 0x00, 0x06, 0x3F, 0x00, 0x06, 0x3F, 0x00, 0x06, 0x1F, 0x80, 0x06, 0x0F, 0xC0, 0x06, 0x07, 0xE0, 0x03, 0x07, 0xE0, 0x03, 0x03, 0xF0, 0x03, 0x01, 0xF8, 0x03, 0x01, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x7E, 0x03, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xFC, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x03, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0x80, 0x0F, 0xFF, 0xC0, 0x00, 0xFF, 0xE0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x78, 0x03, 0xC0, 0xFC, 0x07, 0x80, 0xFC, 0x0F, 0x00, 0xFE, 0x1E, 0x00, 0x7F, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x01, 0xFF, 0xF0, 0x07, 0xFF, 0xF0, 0x0F, 0xE1, 0xF0, 0x3F, 0x81, 0xF0, 0x7F, 0x03, 0xF0, 0xFC, 0x07, 0xE3, 0xF8, 0x0F, 0xC7, 0xF0, 0x1F, 0x8F, 0xC0, 0x7F, 0x1F, 0x80, 0xFE, 0x3F, 0x01, 0xFC, 0x7C, 0x03, 0xF0, 0xF8, 0x0F, 0xE1, 0xF0, 0x1F, 0xC1, 0xE0, 0x3F, 0x03, 0xC0, 0xFC, 0x07, 0x81, 0xF0, 0x07, 0x87, 0xC0, 0x07, 0xFF, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x3F, 0xFF, 0xE0, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0x07, 0x00, 0x1C, 0x08, 0x00, 0x78, 0x30, 0x01, 0xE0, 0x40, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x03, 0xFE, 0x00, 0x3C, 0x78, 0x03, 0xC1, 0xE0, 0x3C, 0x07, 0x81, 0xE0, 0x3C, 0x1F, 0x01, 0xE0, 0xF8, 0x0F, 0x07, 0xC0, 0x78, 0x3F, 0x03, 0xC1, 0xF8, 0x3C, 0x0F, 0xE1, 0xE0, 0x3F, 0x9E, 0x01, 0xFF, 0xC0, 0x07, 0xFC, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x1F, 0xFC, 0x03, 0xCF, 0xF0, 0x3C, 0x3F, 0x83, 0xC0, 0xFC, 0x3C, 0x03, 0xF1, 0xE0, 0x1F, 0x9E, 0x00, 0x7C, 0xF0, 0x03, 0xE7, 0x80, 0x1F, 0x3C, 0x00, 0xF9, 0xE0, 0x07, 0x87, 0x00, 0x3C, 0x3C, 0x03, 0xC0, 0xF0, 0x3C, 0x03, 0xC3, 0xC0, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0xE0, 0x03, 0xF1, 0xE0, 0x0F, 0xC1, 0xC0, 0x3F, 0x03, 0xC0, 0xFE, 0x07, 0x81, 0xF8, 0x0F, 0x87, 0xF0, 0x1F, 0x0F, 0xC0, 0x3E, 0x3F, 0x80, 0xFC, 0x7F, 0x01, 0xF8, 0xFC, 0x03, 0xF1, 0xF8, 0x07, 0xE3, 0xF0, 0x1F, 0xC7, 0xE0, 0x3F, 0x8F, 0xC0, 0x7E, 0x0F, 0x81, 0xFC, 0x1F, 0x03, 0xF8, 0x1F, 0x0F, 0xE0, 0x1F, 0xFF, 0xC0, 0x1F, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7E, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x01, 0xE0, 0x1F, 0x81, 0xFE, 0x0F, 0xF0, 0x7F, 0x81, 0xF8, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7E, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x07, 0xE0, 0x1E, 0x00, 0x00, 0x78, 0x01, 0xF8, 0x07, 0xF8, 0x0F, 0xF0, 0x1F, 0xE0, 0x1F, 0x80, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x1F, 0x80, 0x3F, 0x80, 0x7F, 0x00, 0xFE, 0x00, 0xFC, 0x00, 0xF8, 0x00, 0xE0, 0x01, 0xC0, 0x07, 0x00, 0x0C, 0x00, 0x30, 0x01, 0xC0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x7F, 0x00, 0x03, 0xFF, 0x00, 0x0F, 0xFC, 0x00, 0x3F, 0xF0, 0x01, 0xFF, 0xC0, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x00, 0xFF, 0x80, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xFE, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x3F, 0xF0, 0x00, 0x0F, 0xFC, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x3F, 0xF0, 0x00, 0x0F, 0xFC, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x7F, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0x00, 0x00, 0xFF, 0x00, 0x03, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0x7F, 0xE0, 0x01, 0xFF, 0x80, 0x0F, 0xFE, 0x00, 0x3F, 0xF0, 0x00, 0xFF, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0xF8, 0x01, 0xFF, 0x80, 0xF1, 0xF0, 0x38, 0x3E, 0x1E, 0x0F, 0xC7, 0xC3, 0xF1, 0xF0, 0xFC, 0x7C, 0x3F, 0x0E, 0x0F, 0xC0, 0x07, 0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x01, 0xF8, 0x00, 0xFF, 0x00, 0x3F, 0xC0, 0x0F, 0xF0, 0x01, 0xF8, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x3F, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x7C, 0x00, 0x03, 0x80, 0x7C, 0x00, 0x00, 0xE0, 0x7C, 0x00, 0x00, 0x38, 0x3C, 0x00, 0xF0, 0x4C, 0x3E, 0x00, 0xFD, 0xE7, 0x1E, 0x00, 0xF3, 0xF1, 0x9F, 0x00, 0xF1, 0xF0, 0xEF, 0x80, 0xF0, 0x78, 0x3F, 0x80, 0xF0, 0x3C, 0x1F, 0xC0, 0x78, 0x1E, 0x0F, 0xE0, 0x78, 0x1E, 0x07, 0xF0, 0x3C, 0x0F, 0x03, 0xF8, 0x3E, 0x07, 0x81, 0xFC, 0x1E, 0x07, 0x81, 0xFE, 0x0F, 0x03, 0xC0, 0xDF, 0x07, 0x83, 0xC0, 0x6F, 0x83, 0xC3, 0xE0, 0x63, 0xE1, 0xF3, 0xF0, 0x71, 0xF0, 0x7E, 0x78, 0x70, 0xF8, 0x1E, 0x3F, 0xF0, 0x3E, 0x00, 0x07, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x03, 0x80, 0x03, 0xF0, 0x07, 0xC0, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0x7E, 0x00, 0x00, 0x06, 0xFC, 0x00, 0x00, 0x19, 0xF8, 0x00, 0x00, 0x63, 0xF8, 0x00, 0x00, 0xC7, 0xF0, 0x00, 0x03, 0x07, 0xE0, 0x00, 0x06, 0x0F, 0xC0, 0x00, 0x18, 0x1F, 0x80, 0x00, 0x60, 0x3F, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x03, 0x00, 0xFE, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0xF8, 0x00, 0x60, 0x03, 0xF0, 0x00, 0xC0, 0x07, 0xE0, 0x03, 0x00, 0x0F, 0xE0, 0x0E, 0x00, 0x1F, 0xC0, 0x18, 0x00, 0x3F, 0x80, 0x70, 0x00, 0x7F, 0x01, 0xC0, 0x00, 0xFE, 0x03, 0x80, 0x01, 0xFE, 0x1F, 0x80, 0x07, 0xFE, 0x7F, 0xC0, 0x3F, 0xFF, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xE0, 0x00, 0xFE, 0x1F, 0xE0, 0x01, 0xFC, 0x1F, 0xE0, 0x03, 0xF8, 0x1F, 0xE0, 0x0F, 0xE0, 0x3F, 0xC0, 0x1F, 0xC0, 0x7F, 0x80, 0x3F, 0x80, 0xFF, 0x00, 0x7F, 0x01, 0xFE, 0x01, 0xFC, 0x03, 0xF8, 0x03, 0xF8, 0x0F, 0xF0, 0x07, 0xF0, 0x1F, 0xC0, 0x0F, 0xC0, 0x7F, 0x00, 0x3F, 0x87, 0xF0, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0xFE, 0x1F, 0xC0, 0x03, 0xF8, 0x0F, 0xE0, 0x07, 0xF0, 0x0F, 0xE0, 0x0F, 0xE0, 0x1F, 0xC0, 0x1F, 0xC0, 0x3F, 0xC0, 0x7F, 0x00, 0x7F, 0x80, 0xFE, 0x00, 0xFF, 0x01, 0xFC, 0x01, 0xFE, 0x03, 0xF0, 0x07, 0xFC, 0x0F, 0xE0, 0x0F, 0xF0, 0x1F, 0xC0, 0x3F, 0xE0, 0x3F, 0x80, 0x7F, 0x80, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x0F, 0xF8, 0x07, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x01, 0xFE, 0x08, 0x00, 0x7F, 0xFE, 0xC0, 0x0F, 0xF0, 0x7E, 0x00, 0xFE, 0x01, 0xF0, 0x1F, 0xE0, 0x07, 0x01, 0xFE, 0x00, 0x38, 0x1F, 0xE0, 0x00, 0xC0, 0xFE, 0x00, 0x06, 0x0F, 0xF0, 0x00, 0x30, 0xFF, 0x00, 0x01, 0x07, 0xF8, 0x00, 0x08, 0x7F, 0x80, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x60, 0x7F, 0x00, 0x06, 0x03, 0xFC, 0x00, 0x70, 0x0F, 0xE0, 0x07, 0x00, 0x1F, 0xC0, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x3F, 0xFF, 0xFE, 0x00, 0x00, 0xFE, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x3F, 0x00, 0x03, 0xF8, 0x07, 0xF0, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x1F, 0xC0, 0x07, 0xF0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x1F, 0xC0, 0x1F, 0xC0, 0x03, 0xFC, 0x03, 0xF8, 0x00, 0x7F, 0x80, 0x7F, 0x00, 0x0F, 0xF0, 0x0F, 0xC0, 0x01, 0xFE, 0x03, 0xF8, 0x00, 0x3F, 0xC0, 0x7F, 0x00, 0x07, 0xF8, 0x0F, 0xE0, 0x01, 0xFF, 0x03, 0xF8, 0x00, 0x3F, 0xE0, 0x7F, 0x00, 0x07, 0xF8, 0x0F, 0xE0, 0x00, 0xFF, 0x01, 0xFC, 0x00, 0x3F, 0xE0, 0x7F, 0x00, 0x07, 0xF8, 0x0F, 0xE0, 0x01, 0xFF, 0x01, 0xFC, 0x00, 0x3F, 0xC0, 0x3F, 0x00, 0x0F, 0xF0, 0x0F, 0xE0, 0x01, 0xFC, 0x01, 0xFC, 0x00, 0x7F, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x0F, 0xE0, 0x0F, 0xF0, 0x01, 0xFE, 0x07, 0xF8, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0xF8, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0x00, 0x3F, 0xC0, 0x7E, 0x00, 0x3F, 0x80, 0x1E, 0x00, 0x3F, 0x80, 0x0E, 0x00, 0x7F, 0x00, 0x06, 0x00, 0x7F, 0x00, 0x04, 0x00, 0x7F, 0x00, 0x04, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x80, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFE, 0x00, 0x01, 0xFC, 0x3E, 0x00, 0x03, 0xF8, 0x1E, 0x00, 0x03, 0xF8, 0x0C, 0x00, 0x03, 0xF8, 0x0C, 0x00, 0x03, 0xF8, 0x0C, 0x00, 0x07, 0xF0, 0x08, 0x00, 0x07, 0xF0, 0x00, 0x08, 0x07, 0xF0, 0x00, 0x18, 0x07, 0xE0, 0x00, 0x30, 0x0F, 0xE0, 0x00, 0x30, 0x0F, 0xE0, 0x00, 0x70, 0x0F, 0xE0, 0x01, 0xE0, 0x1F, 0xC0, 0x07, 0xE0, 0x1F, 0xE0, 0x3F, 0xE0, 0x3F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0xFF, 0x03, 0xF0, 0x01, 0xFC, 0x01, 0xE0, 0x03, 0xF8, 0x01, 0xC0, 0x0F, 0xE0, 0x01, 0x80, 0x1F, 0xC0, 0x02, 0x00, 0x3F, 0x80, 0x04, 0x00, 0x7F, 0x00, 0x00, 0x01, 0xFC, 0x03, 0x00, 0x03, 0xF8, 0x04, 0x00, 0x07, 0xF0, 0x18, 0x00, 0x0F, 0xC0, 0xF0, 0x00, 0x3F, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0xFE, 0x1F, 0x00, 0x03, 0xF8, 0x1E, 0x00, 0x07, 0xF0, 0x18, 0x00, 0x0F, 0xE0, 0x30, 0x00, 0x1F, 0xC0, 0x60, 0x00, 0x7F, 0x00, 0x80, 0x00, 0xFE, 0x01, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x02, 0x00, 0x0F, 0xFF, 0xEE, 0x00, 0x3F, 0xC0, 0xFC, 0x00, 0x7F, 0x00, 0x7C, 0x01, 0xFE, 0x00, 0x3C, 0x03, 0xFC, 0x00, 0x38, 0x07, 0xF8, 0x00, 0x18, 0x07, 0xF0, 0x00, 0x18, 0x0F, 0xF0, 0x00, 0x10, 0x1F, 0xE0, 0x00, 0x10, 0x1F, 0xE0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0x00, 0x07, 0xFC, 0xFF, 0x00, 0x03, 0xF8, 0xFF, 0x00, 0x03, 0xF8, 0xFF, 0x00, 0x03, 0xF0, 0xFF, 0x00, 0x03, 0xF0, 0xFF, 0x00, 0x07, 0xF0, 0x7F, 0x00, 0x07, 0xF0, 0x7F, 0x00, 0x07, 0xE0, 0x7F, 0x80, 0x07, 0xE0, 0x3F, 0x80, 0x0F, 0xE0, 0x1F, 0xC0, 0x0F, 0xC0, 0x0F, 0xE0, 0x0F, 0xC0, 0x07, 0xF0, 0x3F, 0x80, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x01, 0xFF, 0xFC, 0x7F, 0xFE, 0x00, 0xFF, 0xC0, 0x3F, 0xF0, 0x00, 0xFE, 0x00, 0x3F, 0xC0, 0x01, 0xFC, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x01, 0xFC, 0x00, 0x0F, 0xC0, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0x03, 0xF8, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0x1F, 0xC0, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x7F, 0x00, 0x03, 0xF0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0x1F, 0xC0, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x00, 0xFF, 0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x7F, 0x80, 0x07, 0xFC, 0x01, 0xFF, 0x00, 0x3F, 0xFF, 0x1F, 0xFF, 0xC0, 0x00, 0x01, 0xFF, 0xF8, 0x03, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xF0, 0x03, 0xFF, 0xF0, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x07, 0x03, 0xF0, 0x01, 0xF0, 0xFE, 0x00, 0x3E, 0x1F, 0xC0, 0x07, 0xC3, 0xF0, 0x00, 0xF8, 0xFC, 0x00, 0x0F, 0x3F, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0xFF, 0xC0, 0x1F, 0xF8, 0x0F, 0xC0, 0x03, 0xF8, 0x01, 0xC0, 0x00, 0xFE, 0x00, 0xE0, 0x00, 0x3F, 0x80, 0x70, 0x00, 0x1F, 0xC0, 0x38, 0x00, 0x07, 0xF0, 0x1C, 0x00, 0x01, 0xFC, 0x0E, 0x00, 0x00, 0x7F, 0x07, 0x00, 0x00, 0x3F, 0x83, 0x80, 0x00, 0x0F, 0xE1, 0xC0, 0x00, 0x03, 0xF8, 0xE0, 0x00, 0x00, 0xFC, 0x60, 0x00, 0x00, 0x7F, 0x7C, 0x00, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x03, 0xFB, 0xF8, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x3F, 0x9F, 0xC0, 0x00, 0x0F, 0xE3, 0xF8, 0x00, 0x07, 0xF0, 0xFE, 0x00, 0x01, 0xFC, 0x1F, 0xC0, 0x00, 0x7F, 0x07, 0xF0, 0x00, 0x1F, 0x80, 0xFE, 0x00, 0x0F, 0xE0, 0x3F, 0x80, 0x03, 0xF8, 0x0F, 0xE0, 0x00, 0xFE, 0x01, 0xFC, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0x1F, 0xE0, 0x0F, 0xE0, 0x0F, 0xF8, 0x07, 0xFC, 0x0F, 0xFF, 0xC7, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x04, 0x1F, 0xC0, 0x00, 0x60, 0xFC, 0x00, 0x06, 0x0F, 0xE0, 0x00, 0x30, 0x7F, 0x00, 0x03, 0x83, 0xF8, 0x00, 0x7C, 0x3F, 0x80, 0x0F, 0xC1, 0xFE, 0x03, 0xFE, 0x1F, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x3F, 0xF0, 0x03, 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x00, 0x0F, 0xF8, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x80, 0x03, 0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x6F, 0xC0, 0x03, 0xFF, 0x00, 0x06, 0xFC, 0x00, 0x37, 0xF0, 0x00, 0x6F, 0xE0, 0x06, 0x7E, 0x00, 0x04, 0xFE, 0x00, 0xEF, 0xE0, 0x00, 0xCF, 0xE0, 0x0C, 0xFE, 0x00, 0x0C, 0xFE, 0x01, 0x8F, 0xE0, 0x00, 0xCF, 0xE0, 0x38, 0xFC, 0x00, 0x18, 0x7E, 0x03, 0x1F, 0xC0, 0x01, 0x87, 0xE0, 0x61, 0xFC, 0x00, 0x18, 0x7E, 0x0E, 0x1F, 0xC0, 0x01, 0x87, 0xE0, 0xC3, 0xF8, 0x00, 0x30, 0x7F, 0x18, 0x3F, 0x80, 0x03, 0x07, 0xF3, 0x83, 0xF8, 0x00, 0x30, 0x7F, 0x30, 0x3F, 0x00, 0x06, 0x07, 0xF7, 0x07, 0xF0, 0x00, 0x60, 0x3F, 0xE0, 0x7F, 0x00, 0x06, 0x03, 0xFC, 0x07, 0xF0, 0x00, 0xE0, 0x3F, 0xC0, 0x7E, 0x00, 0x0C, 0x03, 0xF8, 0x0F, 0xE0, 0x00, 0xC0, 0x3F, 0x00, 0xFE, 0x00, 0x0C, 0x03, 0xF0, 0x0F, 0xE0, 0x01, 0xC0, 0x3E, 0x01, 0xFC, 0x00, 0x1C, 0x03, 0xC0, 0x1F, 0xC0, 0x07, 0xE0, 0x3C, 0x03, 0xFE, 0x00, 0xFF, 0xC1, 0x81, 0xFF, 0xFC, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x1F, 0xF8, 0x03, 0xF8, 0x00, 0x3F, 0x00, 0x0F, 0xE0, 0x00, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0x00, 0x03, 0xFC, 0x00, 0x38, 0x00, 0x1F, 0xE0, 0x01, 0x80, 0x01, 0xBF, 0x80, 0x0C, 0x00, 0x0D, 0xFC, 0x00, 0x60, 0x00, 0x67, 0xF0, 0x07, 0x00, 0x02, 0x3F, 0x80, 0x30, 0x00, 0x30, 0xFE, 0x01, 0x80, 0x01, 0x87, 0xF0, 0x0C, 0x00, 0x0C, 0x1F, 0xC0, 0xC0, 0x00, 0xC0, 0xFE, 0x06, 0x00, 0x06, 0x07, 0xF8, 0x30, 0x00, 0x30, 0x1F, 0xC1, 0x80, 0x01, 0x80, 0xFF, 0x18, 0x00, 0x18, 0x03, 0xF8, 0xC0, 0x00, 0xC0, 0x1F, 0xC6, 0x00, 0x06, 0x00, 0x7F, 0x60, 0x00, 0x60, 0x03, 0xFB, 0x00, 0x03, 0x00, 0x0F, 0xF8, 0x00, 0x18, 0x00, 0x7F, 0xC0, 0x01, 0xC0, 0x01, 0xFC, 0x00, 0x0C, 0x00, 0x0F, 0xE0, 0x00, 0x60, 0x00, 0x3F, 0x00, 0x03, 0x00, 0x01, 0xF0, 0x00, 0x38, 0x00, 0x07, 0x80, 0x01, 0xC0, 0x00, 0x3C, 0x00, 0x3F, 0x00, 0x01, 0xE0, 0x03, 0xFF, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0x7E, 0x1F, 0x80, 0x01, 0xF0, 0x0F, 0x80, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x1F, 0x80, 0xFE, 0x00, 0x3F, 0x03, 0xF8, 0x00, 0x7E, 0x07, 0xF0, 0x00, 0xFE, 0x1F, 0xC0, 0x01, 0xFC, 0x7F, 0x80, 0x03, 0xF8, 0xFE, 0x00, 0x07, 0xF3, 0xFC, 0x00, 0x1F, 0xE7, 0xF0, 0x00, 0x3F, 0xDF, 0xE0, 0x00, 0x7F, 0xBF, 0xC0, 0x00, 0xFE, 0x7F, 0x80, 0x03, 0xFC, 0xFE, 0x00, 0x07, 0xFB, 0xFC, 0x00, 0x0F, 0xF7, 0xF8, 0x00, 0x3F, 0xCF, 0xF0, 0x00, 0x7F, 0x9F, 0xC0, 0x00, 0xFE, 0x3F, 0x80, 0x03, 0xFC, 0x7F, 0x00, 0x07, 0xF0, 0xFE, 0x00, 0x1F, 0xC0, 0xFC, 0x00, 0x3F, 0x81, 0xF8, 0x00, 0xFE, 0x03, 0xF0, 0x03, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x03, 0xE0, 0x1F, 0x00, 0x03, 0xE0, 0xFC, 0x00, 0x03, 0xFF, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xE0, 0x00, 0xFE, 0x1F, 0xE0, 0x01, 0xFC, 0x1F, 0xE0, 0x03, 0xF0, 0x1F, 0xC0, 0x0F, 0xE0, 0x3F, 0xC0, 0x1F, 0xC0, 0x7F, 0x80, 0x3F, 0x80, 0xFF, 0x00, 0x7E, 0x01, 0xFE, 0x01, 0xFC, 0x03, 0xFC, 0x03, 0xF8, 0x0F, 0xF8, 0x07, 0xF0, 0x1F, 0xE0, 0x0F, 0xC0, 0x7F, 0x80, 0x3F, 0x81, 0xFE, 0x00, 0x7F, 0x07, 0xF8, 0x00, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x7E, 0x1F, 0x80, 0x01, 0xF0, 0x0F, 0x80, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x80, 0x1F, 0x80, 0xFE, 0x00, 0x3F, 0x03, 0xF8, 0x00, 0x7E, 0x07, 0xF0, 0x00, 0xFE, 0x1F, 0xC0, 0x01, 0xFC, 0x7F, 0x80, 0x03, 0xF8, 0xFE, 0x00, 0x07, 0xF3, 0xFC, 0x00, 0x1F, 0xE7, 0xF8, 0x00, 0x3F, 0xDF, 0xE0, 0x00, 0x7F, 0xBF, 0xC0, 0x00, 0xFF, 0x7F, 0x80, 0x01, 0xFC, 0xFE, 0x00, 0x07, 0xFB, 0xFC, 0x00, 0x0F, 0xF7, 0xF8, 0x00, 0x1F, 0xCF, 0xF0, 0x00, 0x7F, 0x9F, 0xC0, 0x00, 0xFE, 0x3F, 0x80, 0x01, 0xFC, 0x7F, 0x00, 0x07, 0xF0, 0xFE, 0x00, 0x0F, 0xE1, 0xFC, 0x00, 0x3F, 0x81, 0xF8, 0x00, 0x7E, 0x03, 0xF0, 0x01, 0xF8, 0x03, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x1F, 0x80, 0x03, 0xE0, 0x7E, 0x00, 0x03, 0xF3, 0xF0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xC0, 0x7F, 0xE0, 0x03, 0x03, 0xFF, 0xF8, 0x1C, 0x0F, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFF, 0xC0, 0xE0, 0x3F, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFF, 0xFF, 0xC0, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0x3F, 0xC3, 0xFC, 0x00, 0x3F, 0x81, 0xFE, 0x00, 0x3F, 0x80, 0xFF, 0x00, 0x7F, 0x80, 0xFF, 0x00, 0x7F, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0xFF, 0x00, 0xFF, 0x01, 0xFE, 0x00, 0xFE, 0x01, 0xFE, 0x00, 0xFE, 0x03, 0xFC, 0x00, 0xFE, 0x07, 0xF8, 0x01, 0xFC, 0x1F, 0xF0, 0x01, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0xFE, 0x00, 0x03, 0xFD, 0xFE, 0x00, 0x03, 0xF8, 0xFF, 0x00, 0x03, 0xF8, 0xFF, 0x00, 0x03, 0xF8, 0xFF, 0x00, 0x07, 0xF8, 0x7F, 0x80, 0x07, 0xF0, 0x7F, 0x80, 0x07, 0xF0, 0x3F, 0x80, 0x07, 0xF0, 0x3F, 0xC0, 0x0F, 0xE0, 0x3F, 0xC0, 0x0F, 0xE0, 0x1F, 0xC0, 0x0F, 0xE0, 0x1F, 0xE0, 0x1F, 0xE0, 0x1F, 0xE0, 0x1F, 0xE0, 0x0F, 0xF0, 0x3F, 0xF0, 0x0F, 0xF8, 0xFF, 0xFC, 0x0F, 0xFE, 0x00, 0x1F, 0x83, 0x00, 0x7F, 0xF7, 0x00, 0xF8, 0x7E, 0x01, 0xE0, 0x1E, 0x03, 0xC0, 0x0E, 0x03, 0xC0, 0x0E, 0x07, 0xC0, 0x0E, 0x07, 0xC0, 0x04, 0x07, 0xC0, 0x04, 0x07, 0xE0, 0x04, 0x07, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xE0, 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xF8, 0x20, 0x00, 0xF8, 0x20, 0x00, 0xF8, 0x20, 0x00, 0xF8, 0x70, 0x00, 0xF8, 0x70, 0x00, 0xF0, 0x78, 0x01, 0xF0, 0x78, 0x03, 0xE0, 0x7E, 0x07, 0xC0, 0x47, 0xFF, 0x80, 0xC0, 0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFC, 0xFE, 0x3F, 0x8F, 0x9E, 0x07, 0xF0, 0xF3, 0x81, 0xFC, 0x0E, 0x60, 0x3F, 0x81, 0x98, 0x07, 0xF0, 0x13, 0x00, 0xFC, 0x02, 0x00, 0x3F, 0x80, 0x40, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xFF, 0xC0, 0x00, 0x7F, 0xFF, 0x03, 0xFF, 0x0F, 0xFC, 0x00, 0xFC, 0x07, 0xF0, 0x00, 0x38, 0x07, 0xF0, 0x00, 0x38, 0x07, 0xF0, 0x00, 0x30, 0x0F, 0xE0, 0x00, 0x30, 0x0F, 0xE0, 0x00, 0x70, 0x0F, 0xE0, 0x00, 0x60, 0x0F, 0xE0, 0x00, 0x60, 0x1F, 0xC0, 0x00, 0xE0, 0x1F, 0xC0, 0x00, 0xC0, 0x1F, 0xC0, 0x00, 0xC0, 0x3F, 0x80, 0x00, 0xC0, 0x3F, 0x80, 0x01, 0x80, 0x3F, 0x80, 0x01, 0x80, 0x3F, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x01, 0x80, 0x7F, 0x00, 0x03, 0x00, 0x7F, 0x00, 0x03, 0x00, 0x7E, 0x00, 0x03, 0x00, 0xFE, 0x00, 0x06, 0x00, 0xFE, 0x00, 0x06, 0x00, 0xFC, 0x00, 0x06, 0x00, 0xFC, 0x00, 0x0E, 0x00, 0xFC, 0x00, 0x0C, 0x00, 0xFC, 0x00, 0x1C, 0x00, 0xFC, 0x00, 0x18, 0x00, 0x7E, 0x00, 0x38, 0x00, 0x7E, 0x00, 0x70, 0x00, 0x3F, 0x81, 0xE0, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFF, 0xFC, 0x03, 0xFE, 0x7F, 0xE0, 0x01, 0xF8, 0x7F, 0x80, 0x01, 0xC0, 0xFF, 0x00, 0x03, 0x80, 0xFE, 0x00, 0x0E, 0x01, 0xFC, 0x00, 0x18, 0x03, 0xF8, 0x00, 0x70, 0x07, 0xF0, 0x00, 0xC0, 0x0F, 0xF0, 0x03, 0x80, 0x1F, 0xE0, 0x0E, 0x00, 0x1F, 0xC0, 0x18, 0x00, 0x3F, 0x80, 0x70, 0x00, 0x7F, 0x00, 0xC0, 0x00, 0xFE, 0x03, 0x00, 0x01, 0xFC, 0x0E, 0x00, 0x03, 0xF8, 0x18, 0x00, 0x07, 0xF8, 0x60, 0x00, 0x07, 0xF1, 0xC0, 0x00, 0x0F, 0xE3, 0x00, 0x00, 0x1F, 0xCC, 0x00, 0x00, 0x3F, 0xB8, 0x00, 0x00, 0x7F, 0x60, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xFF, 0xF8, 0xFF, 0xF0, 0xFF, 0x9F, 0xF8, 0x1F, 0xE0, 0x0F, 0x87, 0xF8, 0x07, 0xE0, 0x07, 0x03, 0xF8, 0x03, 0xF0, 0x03, 0x80, 0xFE, 0x01, 0xF8, 0x01, 0x80, 0x7F, 0x00, 0xFC, 0x00, 0xC0, 0x3F, 0x80, 0x7F, 0x00, 0xC0, 0x1F, 0xC0, 0x7F, 0x80, 0x60, 0x0F, 0xE0, 0x3F, 0xC0, 0x60, 0x07, 0xF0, 0x37, 0xE0, 0x30, 0x03, 0xF8, 0x1B, 0xF0, 0x30, 0x00, 0xFC, 0x19, 0xF8, 0x18, 0x00, 0x7E, 0x0C, 0xFE, 0x18, 0x00, 0x3F, 0x84, 0x7F, 0x0C, 0x00, 0x1F, 0xC6, 0x3F, 0x8C, 0x00, 0x0F, 0xE2, 0x1F, 0xC6, 0x00, 0x07, 0xF3, 0x07, 0xE6, 0x00, 0x03, 0xF9, 0x83, 0xF3, 0x00, 0x01, 0xFD, 0x81, 0xFB, 0x00, 0x00, 0x7E, 0xC0, 0xFD, 0x80, 0x00, 0x3F, 0xC0, 0x7F, 0x80, 0x00, 0x1F, 0xE0, 0x3F, 0xC0, 0x00, 0x0F, 0xE0, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x0F, 0xE0, 0x00, 0x03, 0xF0, 0x07, 0xE0, 0x00, 0x01, 0xF8, 0x01, 0xF0, 0x00, 0x00, 0x78, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x78, 0x00, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x03, 0xFF, 0xF0, 0xFF, 0xC0, 0x3F, 0xE0, 0x0F, 0xC0, 0x03, 0xF8, 0x01, 0xE0, 0x00, 0xFE, 0x00, 0xE0, 0x00, 0x3F, 0x80, 0x70, 0x00, 0x07, 0xE0, 0x18, 0x00, 0x01, 0xFC, 0x0C, 0x00, 0x00, 0x7F, 0x06, 0x00, 0x00, 0x0F, 0xC3, 0x00, 0x00, 0x03, 0xF9, 0x80, 0x00, 0x00, 0xFE, 0xC0, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x77, 0xF0, 0x00, 0x00, 0x39, 0xFC, 0x00, 0x00, 0x1C, 0x3F, 0x00, 0x00, 0x06, 0x0F, 0xE0, 0x00, 0x03, 0x03, 0xF8, 0x00, 0x01, 0x80, 0x7E, 0x00, 0x00, 0xE0, 0x1F, 0xC0, 0x00, 0x70, 0x07, 0xF0, 0x00, 0x38, 0x01, 0xFC, 0x00, 0x1E, 0x00, 0x7F, 0x80, 0x1F, 0xC0, 0x1F, 0xF0, 0x0F, 0xFC, 0x3F, 0xFF, 0x80, 0xFF, 0xF8, 0x3F, 0xF3, 0xFC, 0x00, 0xFC, 0x1F, 0xC0, 0x07, 0x81, 0xFC, 0x00, 0x70, 0x0F, 0xC0, 0x0E, 0x00, 0xFE, 0x00, 0xC0, 0x0F, 0xE0, 0x1C, 0x00, 0x7E, 0x03, 0x80, 0x07, 0xF0, 0x30, 0x00, 0x7F, 0x06, 0x00, 0x03, 0xF0, 0xE0, 0x00, 0x3F, 0x8C, 0x00, 0x03, 0xF9, 0x80, 0x00, 0x1F, 0xB0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFF, 0x03, 0xF8, 0x0F, 0xF0, 0x7C, 0x01, 0xFE, 0x07, 0x80, 0x3F, 0xC0, 0x70, 0x03, 0xF8, 0x06, 0x00, 0x7F, 0x80, 0xC0, 0x0F, 0xF0, 0x08, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0xC0, 0xFF, 0x00, 0x0C, 0x1F, 0xE0, 0x01, 0x81, 0xFE, 0x00, 0x38, 0x3F, 0xC0, 0x07, 0x87, 0xF8, 0x01, 0xF0, 0xFF, 0x00, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xE0, 0x0F, 0xFC, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xFE, 0x01, 0xFF, 0xC0, 0x00, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x1C, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x07, 0x00, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x01, 0xC0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x0F, 0x00, 0x78, 0x00, 0x7F, 0xE0, 0x0F, 0xFC, 0x00, 0x0F, 0x80, 0x01, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x78, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xE0, 0x07, 0xFC, 0x01, 0xFF, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xEF, 0x00, 0x1E, 0x78, 0x00, 0xF1, 0xE0, 0x0F, 0x0F, 0x00, 0x78, 0x3C, 0x07, 0xC1, 0xE0, 0x3C, 0x07, 0x83, 0xE0, 0x3C, 0x1E, 0x00, 0xF1, 0xF0, 0x07, 0x8F, 0x00, 0x1E, 0xF8, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0x3E, 0x0F, 0x83, 0xF0, 0x3E, 0x07, 0x80, 0xF0, 0x0E, 0x01, 0xC0, 0x00, 0x3C, 0x0C, 0x03, 0xF9, 0xF0, 0x1F, 0x3F, 0x80, 0xF8, 0x7E, 0x07, 0xC1, 0xF8, 0x3F, 0x07, 0xC0, 0xF8, 0x1F, 0x07, 0xE0, 0x7C, 0x3F, 0x01, 0xF0, 0xFC, 0x0F, 0x87, 0xE0, 0x3E, 0x1F, 0x80, 0xF8, 0x7E, 0x03, 0xC3, 0xF8, 0x1F, 0x0F, 0xC0, 0x7C, 0x3F, 0x03, 0xF0, 0xFC, 0x0F, 0x83, 0xF0, 0x7E, 0x3F, 0xC2, 0xF8, 0xBF, 0x9B, 0xE4, 0x7F, 0xCF, 0xE0, 0xFE, 0x3F, 0x01, 0xE0, 0x78, 0x00, 0x00, 0x7C, 0x00, 0x3F, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0x7E, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x3E, 0x3E, 0x01, 0xF9, 0xFC, 0x07, 0xEF, 0xF8, 0x1F, 0x47, 0xF0, 0x7E, 0x0F, 0xC3, 0xF8, 0x3F, 0x0F, 0xC0, 0xFC, 0x3F, 0x03, 0xF1, 0xF8, 0x0F, 0xC7, 0xE0, 0x3F, 0x1F, 0x01, 0xF8, 0x7C, 0x07, 0xE3, 0xF0, 0x1F, 0x8F, 0xC0, 0xFC, 0x3E, 0x03, 0xF1, 0xF8, 0x0F, 0x87, 0xE0, 0x7C, 0x1F, 0x03, 0xE0, 0xFC, 0x0F, 0x03, 0xF0, 0x78, 0x0F, 0xC7, 0xC0, 0x1F, 0xFE, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x3F, 0xE0, 0x1E, 0x3C, 0x0F, 0x0F, 0x07, 0x87, 0xC3, 0xE1, 0xF1, 0xF0, 0x38, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x03, 0x3F, 0x00, 0xCF, 0xE0, 0x61, 0xFC, 0x70, 0x3F, 0xF8, 0x07, 0xFC, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x0F, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x80, 0x07, 0x9F, 0x80, 0x0F, 0xFF, 0xC0, 0x0F, 0x9F, 0xE0, 0x0F, 0x87, 0xF0, 0x0F, 0x83, 0xF0, 0x0F, 0xC1, 0xF8, 0x07, 0xC0, 0xFC, 0x07, 0xE0, 0x7C, 0x07, 0xE0, 0x7E, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x1F, 0x81, 0xF8, 0x0F, 0x80, 0xFC, 0x0F, 0xC0, 0xFE, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x3F, 0x03, 0xF0, 0x1F, 0x83, 0xF8, 0x0F, 0xC1, 0xF8, 0xC7, 0xE1, 0xFC, 0xC3, 0xF9, 0xBE, 0xC0, 0xFF, 0x9F, 0xC0, 0x7F, 0x8F, 0xC0, 0x0F, 0x83, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x3F, 0xE0, 0x1E, 0x3C, 0x0F, 0x0F, 0x07, 0x83, 0xC3, 0xE0, 0xF1, 0xF0, 0x3C, 0xFC, 0x1E, 0x3F, 0x0F, 0x9F, 0x83, 0xC7, 0xE3, 0xE1, 0xFB, 0xE0, 0xFF, 0xE0, 0x3F, 0xC0, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x03, 0x3F, 0x01, 0x8F, 0xC0, 0xC1, 0xF8, 0x70, 0x7F, 0xF8, 0x07, 0xFC, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x03, 0xCE, 0x00, 0x00, 0x78, 0xF0, 0x00, 0x0F, 0x8F, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x1F, 0x06, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x06, 0x1F, 0x00, 0x00, 0xF1, 0xE0, 0x00, 0x0F, 0x3E, 0x00, 0x00, 0xF3, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x7F, 0xF0, 0x00, 0x7E, 0x3F, 0xE0, 0x7C, 0x0F, 0xF0, 0x7E, 0x07, 0xC0, 0x7E, 0x03, 0xE0, 0x3F, 0x01, 0xF0, 0x1F, 0x01, 0xF8, 0x0F, 0x80, 0xFC, 0x07, 0xC0, 0xFC, 0x01, 0xE0, 0xFC, 0x00, 0x78, 0xFC, 0x00, 0x1F, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x1C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xF8, 0x00, 0x07, 0xFF, 0x80, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x77, 0xFF, 0x80, 0xF0, 0x7F, 0xC0, 0xF0, 0x07, 0xE0, 0xF0, 0x01, 0xF0, 0x78, 0x00, 0xF8, 0x3C, 0x00, 0x78, 0x1F, 0x00, 0x7C, 0x07, 0xC0, 0x78, 0x01, 0xFF, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x04, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x87, 0xC0, 0x3E, 0x1F, 0xC0, 0xFC, 0x7F, 0x81, 0xF9, 0x9F, 0x03, 0xE6, 0x3E, 0x07, 0xD8, 0x7C, 0x1F, 0xA0, 0xF8, 0x3F, 0x83, 0xF0, 0x7F, 0x07, 0xE0, 0xFC, 0x0F, 0xC3, 0xF8, 0x3F, 0x07, 0xE0, 0x7E, 0x0F, 0xC0, 0xFC, 0x3F, 0x03, 0xF0, 0x7E, 0x07, 0xE0, 0xFC, 0x0F, 0xC1, 0xF0, 0x3F, 0x17, 0xE0, 0x7E, 0x6F, 0xC0, 0xF9, 0x9F, 0x01, 0xF6, 0x3E, 0x03, 0xF8, 0xFC, 0x07, 0xF1, 0xC0, 0x07, 0x80, 0x01, 0xE0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC7, 0xFC, 0x1F, 0xC0, 0xF8, 0x0F, 0x81, 0xF8, 0x1F, 0x81, 0xF0, 0x1F, 0x03, 0xF0, 0x3E, 0x03, 0xE0, 0x3E, 0x07, 0xE0, 0x7C, 0x07, 0xC0, 0xFC, 0x2F, 0x84, 0xF8, 0xCF, 0x98, 0xFF, 0x0F, 0xE0, 0x78, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7E, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x3F, 0x00, 0x60, 0xF8, 0x03, 0xC3, 0xC0, 0x0F, 0x1F, 0x00, 0x3C, 0xF8, 0x00, 0x7F, 0xC0, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFC, 0x00, 0x07, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xE3, 0xFF, 0x03, 0xE0, 0xFC, 0x07, 0xE0, 0xF0, 0x07, 0xE0, 0xE0, 0x07, 0xC1, 0xC0, 0x0F, 0xC3, 0x80, 0x0F, 0xC7, 0x00, 0x0F, 0x8E, 0x00, 0x0F, 0xBE, 0x00, 0x1F, 0xFE, 0x00, 0x1F, 0xFE, 0x00, 0x1F, 0xFE, 0x00, 0x1F, 0x3E, 0x00, 0x3F, 0x3F, 0x00, 0x3F, 0x1F, 0x00, 0x3E, 0x1F, 0x00, 0x7E, 0x1F, 0x04, 0x7E, 0x1F, 0x8C, 0x7E, 0x0F, 0x98, 0x7C, 0x0F, 0xF0, 0xFC, 0x07, 0xE0, 0xE0, 0x03, 0xC0, 0x00, 0x08, 0x0F, 0xC7, 0xFE, 0x07, 0xF0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7C, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0x80, 0x7C, 0x07, 0xE0, 0x3E, 0x01, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xC0, 0x3E, 0x03, 0xF0, 0x1F, 0x80, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x8F, 0x8C, 0x7C, 0x43, 0xE4, 0x1F, 0xE0, 0xFE, 0x03, 0xC0, 0x00, 0x00, 0x70, 0x78, 0x0F, 0x83, 0xFE, 0x3F, 0x87, 0xF8, 0x1F, 0xCF, 0xF1, 0xFF, 0x03, 0xF1, 0x3E, 0x73, 0xE0, 0x7E, 0x47, 0xD8, 0x7C, 0x0F, 0xD0, 0xFB, 0x1F, 0x81, 0xF4, 0x3E, 0xC3, 0xF0, 0x3E, 0x87, 0xF0, 0x7C, 0x0F, 0xE0, 0xFE, 0x1F, 0x81, 0xF4, 0x1F, 0x83, 0xF0, 0x3F, 0x07, 0xE0, 0x7C, 0x07, 0xE0, 0xFC, 0x1F, 0x81, 0xF8, 0x1F, 0x83, 0xF0, 0x3F, 0x07, 0xE0, 0x7C, 0x07, 0xE0, 0xFC, 0x0F, 0x80, 0xF8, 0x1F, 0x03, 0xF0, 0x3F, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0xFC, 0x0F, 0x88, 0xF8, 0x1F, 0x81, 0xF3, 0x3F, 0x03, 0xE0, 0x3E, 0x47, 0xE0, 0xFC, 0x07, 0xF0, 0xFC, 0x1F, 0x80, 0xFE, 0x18, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x70, 0xF8, 0x7F, 0xC3, 0xF8, 0x1F, 0x8F, 0xF0, 0x3F, 0x33, 0xE0, 0x7C, 0x87, 0xC1, 0xF9, 0x0F, 0x83, 0xF4, 0x1F, 0x07, 0xD0, 0x3E, 0x0F, 0xE0, 0xFC, 0x3F, 0x81, 0xF8, 0x7F, 0x03, 0xE0, 0xFC, 0x0F, 0xC1, 0xF8, 0x1F, 0x87, 0xE0, 0x3E, 0x0F, 0xC0, 0xFC, 0x1F, 0x81, 0xF0, 0x3E, 0x03, 0xE0, 0xFC, 0x0F, 0xC9, 0xF8, 0x1F, 0x33, 0xE0, 0x3E, 0x47, 0xC0, 0x7F, 0x1F, 0x80, 0xFE, 0x38, 0x00, 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x0E, 0x38, 0x03, 0xC1, 0xC0, 0x78, 0x1E, 0x0F, 0x81, 0xF0, 0xF0, 0x1F, 0x1F, 0x01, 0xF3, 0xE0, 0x1F, 0x3E, 0x03, 0xF7, 0xC0, 0x3F, 0x7C, 0x03, 0xF7, 0xC0, 0x3E, 0xFC, 0x03, 0xEF, 0xC0, 0x7E, 0xF8, 0x07, 0xCF, 0x80, 0x7C, 0xF8, 0x0F, 0x8F, 0x80, 0xF8, 0xF8, 0x1F, 0x07, 0x81, 0xE0, 0x78, 0x3C, 0x03, 0xC7, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x0F, 0x1F, 0x00, 0x3F, 0xE7, 0xF8, 0x01, 0xF9, 0xFF, 0x00, 0x1F, 0x47, 0xF0, 0x07, 0xF0, 0x7E, 0x00, 0xFE, 0x0F, 0xC0, 0x1F, 0x81, 0xF8, 0x03, 0xF0, 0x3F, 0x00, 0xFC, 0x07, 0xE0, 0x1F, 0x81, 0xFC, 0x03, 0xE0, 0x3F, 0x00, 0x7C, 0x07, 0xE0, 0x1F, 0x81, 0xFC, 0x03, 0xF0, 0x3F, 0x00, 0x7C, 0x07, 0xE0, 0x0F, 0x81, 0xF8, 0x03, 0xF0, 0x3E, 0x00, 0x7E, 0x0F, 0xC0, 0x0F, 0x81, 0xF0, 0x01, 0xF0, 0x7C, 0x00, 0x7F, 0x1F, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xF3, 0xE0, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0xF9, 0xF0, 0x1F, 0x1F, 0xC0, 0xF8, 0x7E, 0x07, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xF8, 0x1F, 0x87, 0xE0, 0x7C, 0x3F, 0x01, 0xF0, 0xFC, 0x0F, 0xC7, 0xE0, 0x3E, 0x1F, 0x80, 0xF8, 0x7E, 0x07, 0xE3, 0xF0, 0x1F, 0x8F, 0xC0, 0x7C, 0x3F, 0x03, 0xF0, 0xFC, 0x0F, 0xC3, 0xF0, 0x7E, 0x0F, 0xC3, 0xF8, 0x3F, 0x9B, 0xE0, 0x7F, 0xDF, 0x01, 0xFE, 0x7C, 0x01, 0xF1, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3E, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xF8, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0x71, 0xE1, 0xFF, 0x3E, 0x07, 0xE7, 0xF0, 0x7E, 0xFF, 0x07, 0xE9, 0xE0, 0x7D, 0x0E, 0x07, 0xD0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0x80, 0x01, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF1, 0x07, 0xFF, 0x0F, 0x0F, 0x0E, 0x07, 0x1E, 0x06, 0x1E, 0x06, 0x1F, 0x02, 0x1F, 0x02, 0x1F, 0x80, 0x0F, 0xC0, 0x0F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xF8, 0x01, 0xFC, 0x00, 0xFC, 0x40, 0x7C, 0x40, 0x7C, 0x60, 0x3C, 0xE0, 0x38, 0xF0, 0x38, 0xF8, 0xF0, 0xDF, 0xC0, 0x00, 0x20, 0x03, 0x00, 0x38, 0x03, 0x80, 0x3C, 0x03, 0xE0, 0x7F, 0x07, 0xFF, 0x3F, 0xF8, 0x7C, 0x07, 0xE0, 0x3F, 0x01, 0xF0, 0x0F, 0x80, 0xFC, 0x07, 0xC0, 0x3E, 0x03, 0xF0, 0x1F, 0x80, 0xF8, 0x07, 0xC0, 0x7E, 0x03, 0xF1, 0x1F, 0x08, 0xF8, 0x87, 0xC8, 0x3F, 0xC1, 0xFC, 0x07, 0x80, 0x00, 0x00, 0x40, 0x00, 0x1F, 0x03, 0xF7, 0xF8, 0x0F, 0x87, 0xE0, 0x3E, 0x1F, 0x81, 0xF8, 0x7E, 0x07, 0xC1, 0xF0, 0x1F, 0x07, 0xC0, 0xFC, 0x3F, 0x03, 0xE0, 0xF8, 0x0F, 0x83, 0xE0, 0x7E, 0x0F, 0x81, 0xF8, 0x7E, 0x0F, 0xC1, 0xF0, 0x3F, 0x07, 0xC1, 0xFC, 0x1F, 0x07, 0xE0, 0xF8, 0x2F, 0x83, 0xE1, 0x3C, 0x6F, 0x8D, 0xF1, 0x3E, 0x67, 0xC8, 0xFF, 0x1F, 0xE3, 0xF8, 0x7F, 0x07, 0xC0, 0xF0, 0x00, 0x06, 0x07, 0x1F, 0x07, 0xBF, 0x83, 0xE7, 0xC1, 0xF3, 0xE0, 0xF9, 0xF8, 0x3C, 0x7C, 0x0C, 0x3E, 0x06, 0x1F, 0x03, 0x0F, 0x83, 0x07, 0xC1, 0x83, 0xE1, 0x81, 0xF1, 0x80, 0xF9, 0x80, 0x7C, 0xC0, 0x3E, 0xC0, 0x1F, 0xC0, 0x0F, 0xC0, 0x07, 0xC0, 0x03, 0xC0, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x06, 0x01, 0x81, 0xC7, 0xC0, 0x30, 0x7F, 0xF8, 0x0E, 0x0F, 0x9F, 0x01, 0xC1, 0xF3, 0xE0, 0x78, 0x3E, 0x7C, 0x1F, 0x03, 0xCF, 0xC3, 0xE0, 0x30, 0xF8, 0xFC, 0x06, 0x1F, 0x1F, 0xC0, 0x83, 0xE7, 0xF8, 0x30, 0x7C, 0xFF, 0x04, 0x0F, 0xB7, 0xE1, 0x81, 0xF6, 0xFC, 0x60, 0x3F, 0x8F, 0x98, 0x07, 0xE1, 0xF3, 0x00, 0xFC, 0x3E, 0xC0, 0x1F, 0x07, 0xF0, 0x03, 0xE0, 0xFC, 0x00, 0x78, 0x1F, 0x80, 0x0F, 0x03, 0xE0, 0x01, 0xC0, 0x78, 0x00, 0x30, 0x0E, 0x00, 0x06, 0x01, 0x80, 0x00, 0x00, 0xF0, 0x1E, 0x0F, 0xF0, 0x3E, 0x01, 0xF8, 0x7F, 0x01, 0xF8, 0xFF, 0x00, 0xF9, 0x8E, 0x00, 0xFB, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xBF, 0x00, 0x01, 0xBF, 0x08, 0x73, 0x1F, 0x18, 0xFF, 0x1F, 0x30, 0xFE, 0x1F, 0xE0, 0xFC, 0x0F, 0xC0, 0x78, 0x07, 0x80, 0x00, 0x30, 0x1C, 0x0F, 0xF0, 0x7C, 0x07, 0xE0, 0xF8, 0x0F, 0xC1, 0xF0, 0x0F, 0xC1, 0xE0, 0x1F, 0x81, 0xC0, 0x3F, 0x03, 0x00, 0x3E, 0x06, 0x00, 0x7E, 0x08, 0x00, 0xFC, 0x30, 0x01, 0xF8, 0x60, 0x01, 0xF1, 0x80, 0x03, 0xE3, 0x00, 0x07, 0xCC, 0x00, 0x0F, 0xD8, 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x01, 0xC1, 0x80, 0x07, 0xE6, 0x00, 0x0F, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xE1, 0xFF, 0xF8, 0x3F, 0xFF, 0x07, 0xFF, 0xC0, 0x80, 0x70, 0x30, 0x1C, 0x04, 0x07, 0x00, 0x00, 0xC0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0x60, 0x00, 0x18, 0x00, 0x06, 0x00, 0x01, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0xE0, 0x00, 0xFE, 0x00, 0x1F, 0xE0, 0xC7, 0xFC, 0x3D, 0xCF, 0xC7, 0x90, 0xF8, 0xF0, 0x07, 0x9C, 0x00, 0x3E, 0x00, 0x00, 0x01, 0xF0, 0x00, 0xFC, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x3E, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x03, 0xF0, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x03, 0xFF, 0x01, 0x3F, 0xFE, 0x1D, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0x00, 0x1F, 0xF0, 0x00, 0x1F, 0x00}; const GFXglyph FreeSerifBoldItalic24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 12, 0, 1}, // 0x20 ' ' {0, 15, 33, 18, 3, -31}, // 0x21 '!' {62, 19, 13, 26, 6, -31}, // 0x22 '"' {93, 27, 33, 23, -2, -32}, // 0x23 '#' {205, 24, 39, 24, -1, -33}, // 0x24 '$' {322, 35, 32, 39, 2, -30}, // 0x25 '%' {462, 33, 33, 37, 0, -31}, // 0x26 '&' {599, 7, 13, 13, 6, -31}, // 0x27 ''' {611, 14, 41, 16, 1, -31}, // 0x28 '(' {683, 14, 41, 16, -2, -31}, // 0x29 ')' {755, 19, 20, 23, 3, -31}, // 0x2A '*' {803, 22, 23, 27, 2, -22}, // 0x2B '+' {867, 10, 15, 12, -3, -5}, // 0x2C ',' {886, 12, 5, 16, 0, -12}, // 0x2D '-' {894, 8, 7, 12, 0, -5}, // 0x2E '.' {901, 19, 33, 16, 0, -31}, // 0x2F '/' {980, 22, 33, 23, 1, -31}, // 0x30 '0' {1071, 20, 32, 23, 0, -31}, // 0x31 '1' {1151, 22, 32, 23, 1, -31}, // 0x32 '2' {1239, 22, 33, 24, 0, -31}, // 0x33 '3' {1330, 25, 32, 23, 0, -31}, // 0x34 '4' {1430, 24, 32, 24, 0, -30}, // 0x35 '5' {1526, 23, 32, 24, 1, -30}, // 0x36 '6' {1618, 23, 31, 23, 3, -30}, // 0x37 '7' {1708, 21, 33, 23, 1, -31}, // 0x38 '8' {1795, 23, 33, 23, 0, -31}, // 0x39 '9' {1890, 13, 22, 12, 0, -20}, // 0x3A ':' {1926, 15, 30, 12, -2, -20}, // 0x3B ';' {1983, 24, 25, 27, 1, -23}, // 0x3C '<' {2058, 24, 14, 27, 3, -18}, // 0x3D '=' {2100, 24, 25, 27, 3, -23}, // 0x3E '>' {2175, 18, 33, 24, 4, -31}, // 0x3F '?' {2250, 33, 33, 39, 3, -31}, // 0x40 '@' {2387, 31, 32, 33, 0, -31}, // 0x41 'A' {2511, 31, 31, 30, 0, -30}, // 0x42 'B' {2632, 29, 33, 29, 2, -31}, // 0x43 'C' {2752, 35, 31, 34, 0, -30}, // 0x44 'D' {2888, 32, 31, 30, 0, -30}, // 0x45 'E' {3012, 31, 31, 29, 0, -30}, // 0x46 'F' {3133, 32, 33, 33, 2, -31}, // 0x47 'G' {3265, 39, 31, 35, 0, -30}, // 0x48 'H' {3417, 21, 31, 18, 0, -30}, // 0x49 'I' {3499, 27, 36, 23, 0, -30}, // 0x4A 'J' {3621, 34, 31, 31, 0, -30}, // 0x4B 'K' {3753, 29, 31, 29, 0, -30}, // 0x4C 'L' {3866, 44, 32, 41, 0, -30}, // 0x4D 'M' {4042, 37, 32, 33, 0, -30}, // 0x4E 'N' {4190, 31, 33, 32, 2, -31}, // 0x4F 'O' {4318, 31, 31, 28, 0, -30}, // 0x50 'P' {4439, 31, 42, 32, 2, -31}, // 0x51 'Q' {4602, 32, 31, 31, 0, -30}, // 0x52 'R' {4726, 24, 33, 24, 0, -31}, // 0x53 'S' {4825, 27, 31, 28, 4, -30}, // 0x54 'T' {4930, 32, 32, 34, 5, -30}, // 0x55 'U' {5058, 31, 32, 33, 6, -30}, // 0x56 'V' {5182, 41, 32, 44, 6, -30}, // 0x57 'W' {5346, 34, 31, 33, 0, -30}, // 0x58 'X' {5478, 28, 31, 30, 6, -30}, // 0x59 'Y' {5587, 28, 31, 26, 0, -30}, // 0x5A 'Z' {5696, 19, 38, 16, -2, -30}, // 0x5B '[' {5787, 13, 33, 19, 6, -31}, // 0x5C '\' {5841, 19, 38, 16, -3, -30}, // 0x5D ']' {5932, 21, 17, 27, 3, -30}, // 0x5E '^' {5977, 24, 3, 23, 0, 5}, // 0x5F '_' {5986, 10, 9, 16, 4, -32}, // 0x60 '`' {5998, 22, 23, 24, 1, -21}, // 0x61 'a' {6062, 22, 33, 23, 1, -31}, // 0x62 'b' {6153, 18, 23, 20, 1, -21}, // 0x63 'c' {6205, 25, 34, 24, 1, -32}, // 0x64 'd' {6312, 18, 23, 20, 1, -21}, // 0x65 'e' {6364, 28, 41, 23, -4, -31}, // 0x66 'f' {6508, 25, 31, 23, -1, -21}, // 0x67 'g' {6605, 23, 34, 26, 1, -32}, // 0x68 'h' {6703, 12, 33, 14, 2, -31}, // 0x69 'i' {6753, 22, 42, 16, -4, -31}, // 0x6A 'j' {6869, 24, 34, 24, 1, -32}, // 0x6B 'k' {6971, 13, 34, 14, 2, -32}, // 0x6C 'l' {7027, 35, 23, 36, 0, -21}, // 0x6D 'm' {7128, 23, 23, 25, 0, -21}, // 0x6E 'n' {7195, 20, 23, 22, 1, -21}, // 0x6F 'o' {7253, 27, 31, 23, -4, -21}, // 0x70 'p' {7358, 22, 31, 23, 1, -21}, // 0x71 'q' {7444, 20, 22, 19, 0, -21}, // 0x72 'r' {7499, 16, 23, 17, 0, -21}, // 0x73 's' {7545, 13, 29, 13, 2, -27}, // 0x74 't' {7593, 22, 23, 25, 2, -21}, // 0x75 'u' {7657, 17, 23, 21, 3, -21}, // 0x76 'v' {7706, 27, 23, 31, 3, -21}, // 0x77 'w' {7784, 24, 23, 22, -1, -21}, // 0x78 'x' {7853, 23, 31, 20, -3, -21}, // 0x79 'y' {7943, 19, 25, 19, 0, -20}, // 0x7A 'z' {8003, 20, 41, 16, 0, -31}, // 0x7B '{' {8106, 4, 33, 13, 5, -31}, // 0x7C '|' {8123, 20, 41, 16, -6, -31}, // 0x7D '}' {8226, 21, 7, 27, 3, -14}}; // 0x7E '~' const GFXfont FreeSerifBoldItalic24pt7b PROGMEM = { (uint8_t *)FreeSerifBoldItalic24pt7bBitmaps, (GFXglyph *)FreeSerifBoldItalic24pt7bGlyphs, 0x20, 0x7E, 56}; // Approx. 8917 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifBoldItalic9pt7b.h ================================================ const uint8_t FreeSerifBoldItalic9pt7bBitmaps[] PROGMEM = { 0x0C, 0x31, 0xC6, 0x18, 0x41, 0x08, 0x20, 0x0E, 0x38, 0xE0, 0xCF, 0x38, 0xA2, 0x88, 0x02, 0x40, 0xC8, 0x13, 0x06, 0x43, 0xFC, 0x32, 0x06, 0x40, 0x98, 0x7F, 0x84, 0xC0, 0x90, 0x32, 0x04, 0xC0, 0x01, 0x01, 0xF0, 0x4B, 0x99, 0x33, 0x24, 0x78, 0x07, 0x80, 0x38, 0x0B, 0x89, 0x31, 0x26, 0x64, 0xC7, 0x30, 0x3C, 0x04, 0x00, 0x38, 0x41, 0x9F, 0x06, 0x48, 0x31, 0x60, 0xCD, 0x03, 0x2C, 0x07, 0x27, 0x81, 0x39, 0x05, 0xC4, 0x26, 0x10, 0x98, 0x84, 0x66, 0x10, 0xE0, 0x03, 0x80, 0x22, 0x03, 0x10, 0x19, 0x00, 0xF0, 0x0F, 0x3C, 0xF8, 0xCC, 0xC4, 0xE7, 0x47, 0x3E, 0x38, 0xE1, 0xE7, 0x97, 0xCF, 0x00, 0xFA, 0x80, 0x08, 0x88, 0x84, 0x62, 0x10, 0x84, 0x21, 0x08, 0x41, 0x00, 0x20, 0x84, 0x10, 0x84, 0x21, 0x08, 0xC6, 0x23, 0x11, 0x00, 0x18, 0x18, 0xD6, 0x38, 0x18, 0xF7, 0x18, 0x18, 0x08, 0x04, 0x02, 0x01, 0x0F, 0xF8, 0x40, 0x20, 0x10, 0x08, 0x00, 0x6D, 0x95, 0x00, 0xFF, 0xC0, 0xFF, 0x80, 0x06, 0x0C, 0x30, 0x60, 0x83, 0x04, 0x18, 0x20, 0xC1, 0x06, 0x00, 0x0F, 0x0C, 0x8C, 0x6E, 0x37, 0x1B, 0x1F, 0x8F, 0xC7, 0xC7, 0x63, 0xB1, 0x89, 0x83, 0x80, 0x06, 0x1E, 0x0E, 0x0E, 0x0C, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x38, 0x38, 0xFC, 0x1F, 0x13, 0xD0, 0xE0, 0x70, 0x38, 0x38, 0x18, 0x18, 0x18, 0x08, 0x08, 0x4F, 0xCF, 0xE0, 0x1F, 0x11, 0xC0, 0xE0, 0x60, 0xC1, 0xF0, 0x38, 0x0C, 0x06, 0x03, 0x01, 0x19, 0x8F, 0x00, 0x00, 0x80, 0xC0, 0xE1, 0xE0, 0xB0, 0x98, 0x9C, 0x8C, 0xFF, 0x07, 0x03, 0x01, 0x80, 0x0F, 0x88, 0x08, 0x07, 0x83, 0xE0, 0x78, 0x1C, 0x06, 0x03, 0x01, 0x80, 0x9C, 0x87, 0x80, 0x03, 0x87, 0x07, 0x07, 0x07, 0x03, 0xE3, 0x99, 0xCC, 0xC6, 0x63, 0x33, 0x89, 0x87, 0x80, 0x3F, 0xBF, 0x90, 0x80, 0xC0, 0x40, 0x60, 0x20, 0x30, 0x30, 0x10, 0x18, 0x08, 0x00, 0x1E, 0x13, 0x31, 0x31, 0x3A, 0x1C, 0x1C, 0x6E, 0xC6, 0xC6, 0xC6, 0x44, 0x38, 0x0E, 0x1C, 0x8C, 0x6C, 0x36, 0x3B, 0x1D, 0x8E, 0x7E, 0x0E, 0x07, 0x07, 0x0E, 0x0C, 0x00, 0x39, 0xCE, 0x00, 0x03, 0x9C, 0xE0, 0x39, 0xCE, 0x00, 0x01, 0x8C, 0x22, 0x20, 0x00, 0x01, 0xC3, 0xC7, 0x8E, 0x06, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0x40, 0xFF, 0x80, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x60, 0x1E, 0x03, 0xC0, 0x78, 0x1C, 0x3C, 0x78, 0xF0, 0x40, 0x00, 0x1C, 0x27, 0x37, 0x07, 0x0E, 0x1C, 0x30, 0x60, 0x40, 0x00, 0xE0, 0xE0, 0xE0, 0x0F, 0x80, 0xC3, 0x08, 0x04, 0xC3, 0x3C, 0x24, 0xE2, 0x27, 0x33, 0x39, 0x11, 0xC9, 0x93, 0x77, 0x18, 0x00, 0x70, 0x40, 0xFC, 0x00, 0x00, 0x80, 0x18, 0x01, 0x80, 0x38, 0x05, 0x80, 0x5C, 0x09, 0xC1, 0x1C, 0x1F, 0xC2, 0x0C, 0x20, 0xC4, 0x0E, 0xF3, 0xF0, 0x3F, 0xE0, 0xC7, 0x0C, 0x71, 0xC7, 0x1C, 0xE1, 0xF0, 0x39, 0xC3, 0x8E, 0x38, 0xE3, 0x0E, 0x71, 0xE7, 0x1C, 0xFF, 0x00, 0x07, 0xD1, 0xC7, 0x38, 0x27, 0x02, 0x70, 0x0F, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0x60, 0x87, 0x18, 0x1E, 0x00, 0x3F, 0xE0, 0x30, 0xE0, 0xC1, 0x87, 0x07, 0x1C, 0x1C, 0x60, 0x73, 0x81, 0xCE, 0x07, 0x38, 0x38, 0xC0, 0xE7, 0x07, 0x1C, 0x78, 0xFF, 0x80, 0x1F, 0xF8, 0x61, 0xC3, 0x04, 0x38, 0x81, 0xCC, 0x0F, 0xE0, 0xE2, 0x07, 0x10, 0x38, 0x81, 0x81, 0x1C, 0x18, 0xE3, 0x8F, 0xFC, 0x00, 0x3F, 0xF8, 0x61, 0xC3, 0x04, 0x38, 0x81, 0xCC, 0x0F, 0xE0, 0xE2, 0x07, 0x10, 0x38, 0x81, 0x80, 0x1C, 0x00, 0xE0, 0x0F, 0x80, 0x00, 0x07, 0x91, 0xC7, 0x38, 0x27, 0x00, 0x70, 0x0F, 0x00, 0xE1, 0xFE, 0x0E, 0xE0, 0xCE, 0x0C, 0x60, 0xC7, 0x1C, 0x1F, 0x00, 0x1F, 0x7E, 0x1C, 0x38, 0x30, 0x60, 0xE1, 0xC1, 0xC3, 0x83, 0x06, 0x0F, 0xFC, 0x1C, 0x38, 0x38, 0x70, 0x60, 0xC1, 0xC3, 0x83, 0x87, 0x0F, 0x9F, 0x00, 0x3F, 0x0C, 0x0C, 0x1C, 0x1C, 0x18, 0x38, 0x38, 0x38, 0x30, 0x70, 0x70, 0xF8, 0x07, 0xC0, 0xE0, 0x38, 0x0C, 0x07, 0x01, 0xC0, 0x70, 0x18, 0x0E, 0x03, 0x80, 0xC3, 0x30, 0xDC, 0x1E, 0x00, 0x1F, 0x78, 0x71, 0x83, 0x18, 0x39, 0x81, 0xD0, 0x0D, 0x00, 0xFC, 0x07, 0x60, 0x3B, 0x81, 0x8C, 0x1C, 0x70, 0xE1, 0x8F, 0xBE, 0x00, 0x1F, 0x00, 0xC0, 0x0C, 0x01, 0xC0, 0x1C, 0x01, 0x80, 0x38, 0x03, 0x80, 0x38, 0x03, 0x01, 0x70, 0x37, 0x0E, 0xFF, 0xE0, 0x1E, 0x07, 0x87, 0x07, 0x83, 0x83, 0x82, 0xC3, 0xC1, 0x62, 0xE0, 0xB1, 0x70, 0x99, 0x30, 0x4D, 0xB8, 0x27, 0x9C, 0x13, 0x8C, 0x11, 0xC6, 0x0C, 0xC7, 0x0F, 0x47, 0xC0, 0x3C, 0x3C, 0x38, 0x20, 0xE0, 0x85, 0xC4, 0x13, 0x10, 0x4E, 0x42, 0x3A, 0x08, 0x78, 0x21, 0xE0, 0x83, 0x84, 0x0C, 0x18, 0x10, 0x00, 0x40, 0x07, 0xC1, 0xCE, 0x38, 0x73, 0x87, 0x70, 0x77, 0x07, 0xF0, 0xFE, 0x0E, 0xE0, 0xEE, 0x1C, 0xE1, 0xC6, 0x38, 0x3E, 0x00, 0x3F, 0xC0, 0xC7, 0x0C, 0x71, 0xC7, 0x1C, 0x71, 0x8E, 0x3F, 0xC3, 0x80, 0x30, 0x03, 0x00, 0x70, 0x07, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0xCE, 0x38, 0x73, 0x87, 0x70, 0x77, 0x07, 0xF0, 0x7E, 0x0E, 0xE0, 0xEE, 0x0C, 0xE1, 0xC6, 0x38, 0x36, 0x01, 0x80, 0x3C, 0x2D, 0xFC, 0x3F, 0xC0, 0xE7, 0x0C, 0x71, 0xC7, 0x1C, 0x71, 0x8E, 0x3F, 0x83, 0xB8, 0x3B, 0x83, 0x3C, 0x71, 0xC7, 0x1C, 0xF9, 0xF0, 0x0C, 0x89, 0x8C, 0x46, 0x23, 0x80, 0xE0, 0x78, 0x0E, 0x03, 0x21, 0x90, 0xCC, 0xC9, 0xC0, 0x7F, 0xE9, 0xDF, 0x31, 0x4E, 0x21, 0xC0, 0x38, 0x06, 0x01, 0xC0, 0x38, 0x06, 0x00, 0xC0, 0x38, 0x0F, 0xC0, 0x7C, 0xF3, 0x82, 0x30, 0x27, 0x04, 0x70, 0x46, 0x04, 0xE0, 0x4E, 0x08, 0xE0, 0x8E, 0x08, 0xE1, 0x0F, 0x30, 0x3C, 0x00, 0xFC, 0x73, 0x82, 0x38, 0x23, 0x84, 0x38, 0x83, 0x90, 0x39, 0x01, 0xA0, 0x1C, 0x01, 0xC0, 0x18, 0x01, 0x00, 0xF9, 0xF7, 0x30, 0xE2, 0x30, 0xC2, 0x38, 0xC4, 0x3B, 0xC4, 0x3A, 0xE8, 0x3C, 0xE8, 0x3C, 0xF0, 0x18, 0xF0, 0x18, 0x60, 0x10, 0x60, 0x10, 0x40, 0x3F, 0x78, 0x61, 0x83, 0x98, 0x1D, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x01, 0x60, 0x0B, 0x80, 0x9C, 0x08, 0x60, 0xC3, 0x8F, 0x7E, 0x00, 0xF9, 0xE6, 0x18, 0xC2, 0x1C, 0x81, 0xA0, 0x34, 0x07, 0x00, 0xC0, 0x18, 0x07, 0x00, 0xE0, 0x1C, 0x0F, 0xC0, 0x3F, 0xE6, 0x19, 0x87, 0x21, 0xC0, 0x30, 0x0E, 0x03, 0x80, 0x60, 0x1C, 0x07, 0x05, 0xC1, 0x38, 0xEF, 0xFC, 0x0E, 0x08, 0x18, 0x18, 0x18, 0x10, 0x30, 0x30, 0x30, 0x20, 0x60, 0x60, 0x60, 0x40, 0xF0, 0xC6, 0x10, 0xC6, 0x10, 0x86, 0x30, 0x86, 0x30, 0x1E, 0x0C, 0x18, 0x20, 0xC1, 0x83, 0x04, 0x18, 0x30, 0x60, 0x83, 0x06, 0x3C, 0x00, 0x18, 0x1C, 0x34, 0x26, 0x66, 0x43, 0xC3, 0xFF, 0x80, 0xC6, 0x30, 0x0D, 0x9D, 0x8C, 0xCC, 0x6E, 0x26, 0x33, 0x19, 0xBE, 0x66, 0x00, 0x00, 0x78, 0x18, 0x30, 0x30, 0x3E, 0x73, 0x63, 0x63, 0x63, 0xC6, 0xC6, 0xCC, 0x70, 0x0F, 0x3B, 0x70, 0x70, 0xE0, 0xE0, 0xE2, 0xE4, 0x78, 0x00, 0x00, 0xF0, 0x1C, 0x06, 0x01, 0x83, 0xE3, 0x30, 0xCC, 0x63, 0x19, 0xCC, 0x63, 0x38, 0xCF, 0x1D, 0x80, 0x0E, 0x75, 0xCB, 0xBE, 0xDE, 0x38, 0x72, 0x78, 0x00, 0xE0, 0x34, 0x0C, 0x01, 0x80, 0x30, 0x1F, 0x01, 0x80, 0x30, 0x06, 0x01, 0xC0, 0x30, 0x06, 0x00, 0xC0, 0x30, 0x06, 0x04, 0x80, 0xE0, 0x00, 0x1C, 0x19, 0xD8, 0xCC, 0x66, 0x60, 0xE1, 0x80, 0xF0, 0x7E, 0x43, 0x21, 0x8F, 0x00, 0x00, 0x1E, 0x07, 0x03, 0x01, 0x80, 0xD8, 0xFC, 0x76, 0x33, 0x19, 0x99, 0xCC, 0xD6, 0x77, 0x30, 0x39, 0xC0, 0x0F, 0x31, 0x8C, 0xC6, 0x31, 0xAE, 0x00, 0x03, 0x81, 0xC0, 0x00, 0x00, 0xE0, 0x30, 0x18, 0x18, 0x0C, 0x06, 0x03, 0x03, 0x01, 0x80, 0xC2, 0xC1, 0xC0, 0x00, 0x0F, 0x00, 0xC0, 0x60, 0x18, 0x06, 0xF3, 0x90, 0xC8, 0x34, 0x0F, 0x06, 0xC1, 0x98, 0x66, 0xB9, 0xC0, 0x03, 0xCC, 0x63, 0x39, 0x8C, 0x66, 0x31, 0x8E, 0x70, 0x7B, 0x99, 0xAF, 0xCE, 0x66, 0x63, 0x67, 0x33, 0x31, 0x99, 0x8C, 0xCC, 0xE7, 0xC6, 0x30, 0x73, 0x7F, 0x73, 0x73, 0x63, 0x67, 0xE6, 0xC7, 0xC6, 0x1E, 0x33, 0x63, 0x63, 0xC3, 0xC6, 0xC6, 0xCC, 0x78, 0x1D, 0xC3, 0xB1, 0xCC, 0x63, 0x19, 0xCE, 0x63, 0x18, 0xCC, 0x3E, 0x1C, 0x06, 0x03, 0xE0, 0x0D, 0x99, 0x8C, 0xCC, 0x6E, 0x76, 0x33, 0x19, 0x9C, 0x7C, 0x06, 0x07, 0x07, 0xC0, 0x76, 0x3A, 0x30, 0x70, 0x60, 0x60, 0x60, 0xE0, 0x3D, 0x14, 0x58, 0x38, 0x60, 0xA2, 0xF0, 0x08, 0xCC, 0xF6, 0x31, 0x98, 0xC6, 0x35, 0xC0, 0xE3, 0x63, 0x66, 0x66, 0x66, 0xCC, 0xCC, 0xFE, 0xEC, 0xE6, 0xCD, 0x8B, 0x26, 0x8E, 0x18, 0x20, 0xE4, 0xD9, 0x36, 0xE5, 0xDA, 0x77, 0x19, 0xC6, 0x61, 0x10, 0x39, 0xC7, 0xB0, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xE1, 0x5A, 0x67, 0x00, 0x39, 0x8C, 0xC3, 0x21, 0xA0, 0xD0, 0x68, 0x38, 0x0C, 0x04, 0x04, 0x14, 0x0C, 0x00, 0x3E, 0x46, 0x0C, 0x08, 0x10, 0x20, 0x70, 0x1A, 0x0E, 0x03, 0x0E, 0x0C, 0x0C, 0x08, 0x18, 0x18, 0x10, 0x60, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, 0x30, 0xFF, 0xF0, 0x0C, 0x06, 0x06, 0x06, 0x04, 0x0C, 0x0C, 0x0C, 0x06, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0xE0, 0x71, 0x8F}; const GFXglyph FreeSerifBoldItalic9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 5, 0, 1}, // 0x20 ' ' {0, 6, 13, 7, 1, -11}, // 0x21 '!' {10, 6, 5, 10, 3, -11}, // 0x22 '"' {14, 11, 13, 9, -1, -12}, // 0x23 '#' {32, 11, 15, 9, -1, -12}, // 0x24 '$' {53, 14, 13, 15, 1, -11}, // 0x25 '%' {76, 13, 13, 14, 0, -11}, // 0x26 '&' {98, 2, 5, 5, 3, -11}, // 0x27 ''' {100, 5, 16, 6, 1, -11}, // 0x28 '(' {110, 5, 16, 6, -1, -11}, // 0x29 ')' {120, 8, 8, 9, 1, -11}, // 0x2A '*' {128, 9, 9, 10, 0, -8}, // 0x2B '+' {139, 3, 6, 5, -1, -2}, // 0x2C ',' {142, 5, 2, 6, 0, -4}, // 0x2D '-' {144, 3, 3, 4, 0, -1}, // 0x2E '.' {146, 7, 12, 6, 0, -11}, // 0x2F '/' {157, 9, 13, 9, 0, -11}, // 0x30 '0' {172, 8, 13, 9, 0, -11}, // 0x31 '1' {185, 9, 13, 9, 0, -11}, // 0x32 '2' {200, 9, 13, 9, 0, -11}, // 0x33 '3' {215, 9, 12, 9, 0, -11}, // 0x34 '4' {229, 9, 13, 9, 0, -11}, // 0x35 '5' {244, 9, 13, 9, 1, -11}, // 0x36 '6' {259, 9, 12, 9, 1, -11}, // 0x37 '7' {273, 8, 13, 9, 0, -11}, // 0x38 '8' {286, 9, 13, 9, 0, -11}, // 0x39 '9' {301, 5, 9, 5, 0, -7}, // 0x3A ':' {307, 5, 11, 5, 0, -7}, // 0x3B ';' {314, 9, 10, 10, 1, -9}, // 0x3C '<' {326, 9, 5, 10, 1, -6}, // 0x3D '=' {332, 9, 10, 10, 1, -9}, // 0x3E '>' {344, 8, 13, 9, 1, -11}, // 0x3F '?' {357, 13, 13, 15, 1, -12}, // 0x40 '@' {379, 12, 13, 13, 0, -11}, // 0x41 'A' {399, 12, 13, 12, 0, -11}, // 0x42 'B' {419, 12, 13, 11, 1, -11}, // 0x43 'C' {439, 14, 13, 13, 0, -11}, // 0x44 'D' {462, 13, 13, 11, 0, -11}, // 0x45 'E' {484, 13, 13, 11, 0, -11}, // 0x46 'F' {506, 12, 13, 13, 1, -11}, // 0x47 'G' {526, 15, 13, 14, 0, -11}, // 0x48 'H' {551, 8, 13, 7, 0, -11}, // 0x49 'I' {564, 10, 14, 9, 0, -11}, // 0x4A 'J' {582, 13, 13, 12, 0, -11}, // 0x4B 'K' {604, 12, 13, 11, 0, -11}, // 0x4C 'L' {624, 17, 13, 16, 0, -11}, // 0x4D 'M' {652, 14, 13, 13, 0, -11}, // 0x4E 'N' {675, 12, 13, 12, 1, -11}, // 0x4F 'O' {695, 12, 13, 11, 0, -11}, // 0x50 'P' {715, 12, 16, 12, 1, -11}, // 0x51 'Q' {739, 12, 13, 12, 0, -11}, // 0x52 'R' {759, 9, 13, 9, 0, -11}, // 0x53 'S' {774, 11, 13, 11, 2, -11}, // 0x54 'T' {792, 12, 13, 13, 2, -11}, // 0x55 'U' {812, 12, 12, 13, 2, -11}, // 0x56 'V' {830, 16, 12, 17, 2, -11}, // 0x57 'W' {854, 13, 13, 13, 0, -11}, // 0x58 'X' {876, 11, 13, 11, 2, -11}, // 0x59 'Y' {894, 11, 13, 10, 0, -11}, // 0x5A 'Z' {912, 8, 15, 6, -1, -11}, // 0x5B '[' {927, 5, 12, 7, 2, -11}, // 0x5C '\' {935, 7, 15, 6, -1, -11}, // 0x5D ']' {949, 8, 7, 10, 1, -11}, // 0x5E '^' {956, 9, 1, 9, 0, 3}, // 0x5F '_' {958, 4, 3, 6, 2, -11}, // 0x60 '`' {960, 9, 9, 9, 0, -7}, // 0x61 'a' {971, 8, 14, 9, 0, -12}, // 0x62 'b' {985, 8, 9, 8, 0, -7}, // 0x63 'c' {994, 10, 14, 9, 0, -12}, // 0x64 'd' {1012, 7, 9, 7, 0, -7}, // 0x65 'e' {1020, 11, 17, 9, -2, -12}, // 0x66 'f' {1044, 9, 12, 9, 0, -7}, // 0x67 'g' {1058, 9, 14, 10, 0, -12}, // 0x68 'h' {1074, 5, 13, 5, 1, -11}, // 0x69 'i' {1083, 9, 16, 6, -1, -11}, // 0x6A 'j' {1101, 10, 14, 9, 0, -12}, // 0x6B 'k' {1119, 5, 14, 5, 1, -12}, // 0x6C 'l' {1128, 13, 9, 14, 0, -7}, // 0x6D 'm' {1143, 8, 9, 9, 0, -7}, // 0x6E 'n' {1152, 8, 9, 9, 0, -7}, // 0x6F 'o' {1161, 10, 12, 9, -2, -7}, // 0x70 'p' {1176, 9, 12, 9, 0, -7}, // 0x71 'q' {1190, 8, 8, 7, 0, -7}, // 0x72 'r' {1198, 6, 9, 6, 0, -7}, // 0x73 's' {1205, 5, 12, 5, 1, -10}, // 0x74 't' {1213, 8, 9, 10, 1, -7}, // 0x75 'u' {1222, 7, 8, 8, 1, -7}, // 0x76 'v' {1229, 10, 8, 12, 1, -7}, // 0x77 'w' {1239, 10, 9, 9, -1, -7}, // 0x78 'x' {1251, 9, 12, 8, -1, -7}, // 0x79 'y' {1265, 8, 9, 7, 0, -7}, // 0x7A 'z' {1274, 8, 16, 6, 0, -12}, // 0x7B '{' {1290, 1, 12, 5, 2, -11}, // 0x7C '|' {1292, 8, 16, 6, -2, -12}, // 0x7D '}' {1308, 8, 2, 10, 1, -4}}; // 0x7E '~' const GFXfont FreeSerifBoldItalic9pt7b PROGMEM = { (uint8_t *)FreeSerifBoldItalic9pt7bBitmaps, (GFXglyph *)FreeSerifBoldItalic9pt7bGlyphs, 0x20, 0x7E, 22}; // Approx. 1982 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifItalic12pt7b.h ================================================ const uint8_t FreeSerifItalic12pt7bBitmaps[] PROGMEM = { 0x0C, 0x31, 0xC6, 0x18, 0x43, 0x0C, 0x20, 0x84, 0x10, 0x03, 0x0C, 0x30, 0x66, 0xCD, 0x12, 0x24, 0x51, 0x00, 0x03, 0x10, 0x11, 0x80, 0x8C, 0x0C, 0x40, 0x46, 0x1F, 0xFC, 0x21, 0x01, 0x18, 0x18, 0x80, 0x84, 0x3F, 0xF8, 0x62, 0x02, 0x30, 0x31, 0x01, 0x08, 0x08, 0xC0, 0x00, 0x40, 0x08, 0x07, 0xC0, 0xCA, 0x18, 0xA1, 0x92, 0x19, 0x01, 0xD0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x2E, 0x02, 0x64, 0x46, 0x44, 0x64, 0x46, 0x64, 0xC1, 0xF0, 0x08, 0x00, 0x80, 0x00, 0x08, 0x0F, 0x0C, 0x0C, 0x7C, 0x0C, 0x22, 0x06, 0x12, 0x06, 0x09, 0x03, 0x09, 0x01, 0x84, 0x80, 0xC4, 0x8F, 0x3C, 0x4C, 0x40, 0x4C, 0x20, 0x4E, 0x10, 0x26, 0x08, 0x23, 0x08, 0x11, 0x84, 0x10, 0xC4, 0x08, 0x3C, 0x00, 0x00, 0xE0, 0x02, 0x60, 0x0C, 0xC0, 0x19, 0x80, 0x36, 0x00, 0x70, 0x00, 0xC0, 0x07, 0x9F, 0x33, 0x08, 0xC3, 0x13, 0x06, 0x46, 0x0D, 0x0C, 0x0C, 0x18, 0x1C, 0x1C, 0x5C, 0x9F, 0x1E, 0xFA, 0xA0, 0x02, 0x08, 0x20, 0xC3, 0x06, 0x18, 0x30, 0xE1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x80, 0x81, 0x00, 0x08, 0x10, 0x10, 0x20, 0x40, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x70, 0xC1, 0x83, 0x0C, 0x10, 0x41, 0x04, 0x00, 0x18, 0x18, 0x18, 0x93, 0x74, 0x38, 0xD7, 0x93, 0x18, 0x18, 0x04, 0x00, 0x80, 0x10, 0x02, 0x00, 0x41, 0xFF, 0xC1, 0x00, 0x20, 0x04, 0x00, 0x80, 0x10, 0x00, 0x6C, 0x95, 0x00, 0xF8, 0xFC, 0x00, 0x40, 0x18, 0x02, 0x00, 0xC0, 0x30, 0x06, 0x01, 0x80, 0x20, 0x0C, 0x01, 0x00, 0x60, 0x18, 0x03, 0x00, 0xC0, 0x10, 0x06, 0x00, 0x07, 0x81, 0x98, 0x61, 0x18, 0x33, 0x06, 0xC0, 0xD8, 0x1B, 0x03, 0xE0, 0xF8, 0x1F, 0x03, 0x60, 0x6C, 0x19, 0x83, 0x10, 0xC3, 0x30, 0x3C, 0x00, 0x01, 0x87, 0xC0, 0xC0, 0x60, 0x30, 0x18, 0x18, 0x0C, 0x06, 0x07, 0x03, 0x01, 0x80, 0xC0, 0xC0, 0x60, 0x30, 0xFE, 0x00, 0x0F, 0x0C, 0x64, 0x0C, 0x03, 0x00, 0xC0, 0x20, 0x18, 0x0C, 0x02, 0x01, 0x00, 0x80, 0x40, 0x20, 0x10, 0x2F, 0xF0, 0x07, 0x86, 0x30, 0x0C, 0x03, 0x01, 0x81, 0x81, 0xF0, 0x1E, 0x03, 0x80, 0x60, 0x18, 0x06, 0x01, 0x00, 0xCC, 0x63, 0xE0, 0x00, 0x20, 0x0C, 0x03, 0x80, 0xA0, 0x2C, 0x09, 0x82, 0x30, 0x84, 0x31, 0x8C, 0x33, 0x06, 0x7F, 0xE0, 0x30, 0x06, 0x00, 0x80, 0x30, 0x03, 0xE1, 0x80, 0x20, 0x06, 0x00, 0xF0, 0x0F, 0x00, 0x60, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x40, 0x18, 0x02, 0x30, 0x87, 0xE0, 0x00, 0x70, 0x3C, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x7F, 0x07, 0x18, 0x60, 0xCE, 0x0C, 0xC0, 0xCC, 0x0C, 0xC0, 0xCC, 0x18, 0x41, 0x86, 0x30, 0x3E, 0x00, 0x7F, 0xF0, 0x18, 0x03, 0x00, 0xC0, 0x10, 0x06, 0x01, 0x80, 0x30, 0x0C, 0x01, 0x00, 0x60, 0x08, 0x03, 0x00, 0xC0, 0x10, 0x06, 0x00, 0x0F, 0x83, 0x18, 0xC1, 0x98, 0x33, 0x06, 0x71, 0x87, 0x60, 0x70, 0x17, 0x0C, 0x71, 0x07, 0x60, 0x6C, 0x0D, 0x81, 0xB0, 0x63, 0x1C, 0x3E, 0x00, 0x07, 0x83, 0x18, 0xC1, 0x18, 0x36, 0x06, 0xC0, 0xD8, 0x1B, 0x07, 0x60, 0xE6, 0x38, 0x7F, 0x00, 0xC0, 0x30, 0x0C, 0x07, 0x03, 0xC0, 0xC0, 0x00, 0x33, 0x30, 0x00, 0x00, 0xCC, 0xC0, 0x18, 0xC6, 0x00, 0x00, 0x00, 0x03, 0x18, 0x44, 0x40, 0x00, 0x00, 0x03, 0x00, 0xF0, 0x38, 0x1E, 0x07, 0x80, 0xE0, 0x0F, 0x00, 0x1C, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x00, 0x10, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x00, 0x0C, 0x00, 0xF0, 0x01, 0xC0, 0x07, 0x80, 0x1E, 0x00, 0x70, 0x0F, 0x03, 0xC1, 0xE0, 0x78, 0x0E, 0x00, 0x80, 0x00, 0x3E, 0x21, 0x90, 0x60, 0x30, 0x38, 0x38, 0x30, 0x30, 0x20, 0x20, 0x10, 0x00, 0x00, 0x06, 0x03, 0x01, 0x80, 0x07, 0xE0, 0x1C, 0x18, 0x30, 0x04, 0x60, 0x02, 0x61, 0xDA, 0xC3, 0x31, 0xC6, 0x31, 0xC4, 0x31, 0xCC, 0x31, 0xCC, 0x21, 0xCC, 0x62, 0x6C, 0xE4, 0x67, 0x38, 0x30, 0x00, 0x1C, 0x08, 0x07, 0xF0, 0x00, 0x20, 0x00, 0xC0, 0x03, 0x80, 0x0B, 0x00, 0x16, 0x00, 0x4E, 0x00, 0x9C, 0x02, 0x18, 0x08, 0x30, 0x1F, 0xE0, 0x40, 0xC1, 0x81, 0xC2, 0x03, 0x8C, 0x07, 0x3C, 0x1F, 0x80, 0x1F, 0xF0, 0x1C, 0x60, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x38, 0x60, 0xC3, 0x03, 0xF0, 0x1C, 0x30, 0x60, 0x61, 0x81, 0x86, 0x06, 0x38, 0x18, 0xC0, 0xC3, 0x06, 0x3F, 0xF0, 0x01, 0xF9, 0x06, 0x0F, 0x1C, 0x06, 0x38, 0x02, 0x30, 0x02, 0x60, 0x00, 0x60, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x08, 0x60, 0x10, 0x30, 0x60, 0x1F, 0x80, 0x1F, 0xF0, 0x07, 0x0C, 0x06, 0x06, 0x06, 0x06, 0x06, 0x03, 0x0E, 0x03, 0x0C, 0x03, 0x0C, 0x03, 0x1C, 0x03, 0x1C, 0x07, 0x18, 0x06, 0x18, 0x06, 0x38, 0x0C, 0x30, 0x18, 0x30, 0x70, 0xFF, 0x80, 0x1F, 0xFF, 0x07, 0x07, 0x06, 0x02, 0x06, 0x02, 0x06, 0x00, 0x0E, 0x10, 0x0C, 0x30, 0x0F, 0xF0, 0x1C, 0x20, 0x18, 0x20, 0x18, 0x00, 0x18, 0x00, 0x38, 0x04, 0x30, 0x08, 0x30, 0x38, 0xFF, 0xF8, 0x1F, 0xFF, 0x07, 0x07, 0x07, 0x02, 0x06, 0x02, 0x06, 0x00, 0x0E, 0x10, 0x0C, 0x30, 0x0F, 0xF0, 0x1C, 0x20, 0x1C, 0x20, 0x18, 0x00, 0x18, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0xFC, 0x00, 0x01, 0xF1, 0x06, 0x0F, 0x18, 0x07, 0x38, 0x02, 0x30, 0x02, 0x60, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xC0, 0x7F, 0xC0, 0x1C, 0xC0, 0x1C, 0xC0, 0x18, 0xC0, 0x18, 0x60, 0x18, 0x30, 0x38, 0x0F, 0xC0, 0x1F, 0xC7, 0xE0, 0xE0, 0x70, 0x18, 0x0E, 0x03, 0x01, 0x80, 0x60, 0x30, 0x1C, 0x0E, 0x03, 0x01, 0x80, 0x7F, 0xF0, 0x1C, 0x06, 0x03, 0x01, 0xC0, 0x60, 0x30, 0x0C, 0x06, 0x03, 0x81, 0xC0, 0x60, 0x38, 0x0C, 0x06, 0x07, 0xE3, 0xF0, 0x1F, 0x83, 0x81, 0x80, 0xC0, 0x60, 0x70, 0x30, 0x18, 0x1C, 0x0C, 0x06, 0x03, 0x03, 0x81, 0x80, 0xC1, 0xF8, 0x03, 0xF0, 0x0C, 0x00, 0xC0, 0x1C, 0x01, 0x80, 0x18, 0x03, 0x80, 0x30, 0x03, 0x00, 0x30, 0x07, 0x00, 0x60, 0x06, 0x0C, 0xE0, 0xCC, 0x07, 0x80, 0x1F, 0xCF, 0x83, 0x83, 0x81, 0x81, 0x00, 0xC3, 0x00, 0x62, 0x00, 0x72, 0x00, 0x36, 0x00, 0x1E, 0x00, 0x1D, 0x80, 0x0C, 0xE0, 0x06, 0x30, 0x03, 0x1C, 0x03, 0x87, 0x01, 0x81, 0x80, 0xC0, 0xE1, 0xF9, 0xFC, 0x1F, 0xC0, 0x1C, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x38, 0x00, 0xC0, 0x03, 0x00, 0x1C, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x38, 0x0C, 0xC0, 0x23, 0x03, 0xBF, 0xFE, 0x0F, 0x00, 0x78, 0x38, 0x07, 0x81, 0xC0, 0x38, 0x0E, 0x02, 0xC0, 0x70, 0x3E, 0x05, 0xC1, 0x70, 0x2E, 0x13, 0x01, 0x31, 0x98, 0x11, 0x89, 0xC0, 0x8C, 0x8C, 0x04, 0x6C, 0x60, 0x23, 0x43, 0x02, 0x1C, 0x38, 0x10, 0xE1, 0x81, 0x86, 0x1C, 0x1F, 0x23, 0xF8, 0x1E, 0x07, 0xC1, 0xC0, 0x60, 0x70, 0x10, 0x1C, 0x0C, 0x05, 0x82, 0x02, 0x60, 0x80, 0x9C, 0x60, 0x23, 0x10, 0x10, 0xC4, 0x04, 0x19, 0x01, 0x06, 0xC0, 0x40, 0xE0, 0x20, 0x38, 0x08, 0x0E, 0x06, 0x01, 0x03, 0xE0, 0x40, 0x01, 0xF0, 0x0C, 0x10, 0x30, 0x10, 0xC0, 0x33, 0x00, 0x6E, 0x00, 0xD8, 0x01, 0xF0, 0x03, 0xC0, 0x0D, 0x80, 0x1B, 0x00, 0x76, 0x00, 0xCC, 0x03, 0x08, 0x0C, 0x18, 0x70, 0x0F, 0x80, 0x1F, 0xF0, 0x1C, 0x60, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x38, 0x30, 0xC1, 0x83, 0x0E, 0x1F, 0xE0, 0x60, 0x01, 0x80, 0x06, 0x00, 0x38, 0x00, 0xC0, 0x03, 0x00, 0x3F, 0x00, 0x01, 0xF0, 0x06, 0x10, 0x30, 0x30, 0xC0, 0x33, 0x00, 0x66, 0x00, 0xD8, 0x01, 0xB0, 0x03, 0xE0, 0x0F, 0x80, 0x1B, 0x00, 0x36, 0x00, 0xCC, 0x03, 0x98, 0x06, 0x18, 0x18, 0x18, 0xC0, 0x0E, 0x00, 0x20, 0x01, 0xF8, 0x36, 0x7F, 0x80, 0x1F, 0xF0, 0x1C, 0x60, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x38, 0x70, 0xC3, 0x83, 0xF8, 0x1D, 0xC0, 0x63, 0x01, 0x8C, 0x06, 0x18, 0x38, 0x60, 0xC1, 0xC3, 0x03, 0x3F, 0x0F, 0x07, 0x90, 0xC7, 0x18, 0x21, 0x82, 0x18, 0x01, 0xC0, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x00, 0xC4, 0x0C, 0x40, 0xC6, 0x08, 0xE1, 0x89, 0xE0, 0x7F, 0xFE, 0xC7, 0x1D, 0x0C, 0x14, 0x18, 0x20, 0x70, 0x00, 0xE0, 0x01, 0x80, 0x03, 0x00, 0x0E, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x01, 0xC0, 0x03, 0x00, 0x0E, 0x00, 0x7F, 0x80, 0x7E, 0x1F, 0x38, 0x0C, 0x38, 0x0C, 0x30, 0x08, 0x30, 0x08, 0x70, 0x08, 0x70, 0x10, 0x60, 0x10, 0x60, 0x10, 0xE0, 0x10, 0xC0, 0x20, 0xC0, 0x20, 0xC0, 0x60, 0xC0, 0x40, 0x61, 0x80, 0x3F, 0x00, 0xFC, 0x3E, 0xE0, 0x18, 0xC0, 0x21, 0x80, 0xC3, 0x81, 0x07, 0x04, 0x0E, 0x08, 0x0C, 0x20, 0x18, 0x80, 0x31, 0x00, 0x64, 0x00, 0xF0, 0x01, 0xE0, 0x01, 0x80, 0x02, 0x00, 0x04, 0x00, 0xFD, 0xF8, 0xF7, 0x07, 0x06, 0x30, 0x60, 0x63, 0x07, 0x04, 0x30, 0x70, 0x83, 0x8F, 0x08, 0x38, 0xB1, 0x03, 0x93, 0x10, 0x19, 0x32, 0x01, 0xA3, 0x20, 0x1A, 0x34, 0x01, 0xC3, 0x40, 0x1C, 0x38, 0x01, 0x83, 0x00, 0x18, 0x30, 0x01, 0x02, 0x00, 0x1F, 0x9F, 0x0E, 0x06, 0x06, 0x04, 0x07, 0x08, 0x03, 0x10, 0x03, 0x20, 0x03, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x03, 0xC0, 0x06, 0xE0, 0x0C, 0x60, 0x18, 0x60, 0x30, 0x70, 0x70, 0x78, 0xF8, 0xFC, 0xFC, 0xFB, 0x81, 0x8C, 0x08, 0x60, 0x83, 0x8C, 0x0C, 0xC0, 0x64, 0x03, 0xC0, 0x0C, 0x00, 0xE0, 0x07, 0x00, 0x30, 0x01, 0x80, 0x1C, 0x00, 0xC0, 0x1F, 0xC0, 0x1F, 0xFE, 0x30, 0x38, 0xC0, 0xF1, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x38, 0x00, 0xE0, 0x01, 0xC0, 0x47, 0x01, 0x1C, 0x06, 0x7F, 0xF8, 0x07, 0x04, 0x08, 0x08, 0x08, 0x18, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0xE0, 0xC0, 0xC0, 0x40, 0x60, 0x20, 0x30, 0x30, 0x18, 0x18, 0x08, 0x0C, 0x04, 0x06, 0x06, 0x03, 0x03, 0x0E, 0x04, 0x08, 0x10, 0x60, 0x81, 0x02, 0x04, 0x18, 0x20, 0x40, 0x81, 0x02, 0x08, 0x10, 0x20, 0x47, 0x80, 0x0C, 0x03, 0x81, 0xE0, 0x4C, 0x33, 0x08, 0x66, 0x19, 0x03, 0xC0, 0xC0, 0xFF, 0xF0, 0xCE, 0x63, 0x07, 0xA0, 0xCE, 0x18, 0x63, 0x04, 0x60, 0xC6, 0x0C, 0xC0, 0xCC, 0x18, 0xC3, 0x8C, 0x5A, 0x79, 0xC0, 0x38, 0x06, 0x01, 0x80, 0x40, 0x30, 0x0C, 0xE3, 0xCC, 0xC3, 0x70, 0xD8, 0x36, 0x19, 0x06, 0xC3, 0x30, 0x8C, 0xC3, 0xE0, 0x0F, 0x0C, 0xCC, 0x6C, 0x06, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x73, 0x1E, 0x00, 0x00, 0x70, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x02, 0x03, 0xF0, 0x31, 0x83, 0x08, 0x30, 0xC3, 0x06, 0x18, 0x31, 0x81, 0x8C, 0x18, 0x61, 0xCB, 0x16, 0x8F, 0x38, 0x07, 0x19, 0x31, 0x63, 0x62, 0xEC, 0xD0, 0xC0, 0xC0, 0xE6, 0x78, 0x00, 0x38, 0x01, 0x30, 0x0C, 0x00, 0x20, 0x01, 0x80, 0x06, 0x00, 0xFE, 0x00, 0x40, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x80, 0x06, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x04, 0x00, 0x30, 0x00, 0xC0, 0x02, 0x00, 0x90, 0x03, 0x80, 0x00, 0x07, 0xC0, 0xC7, 0x18, 0x61, 0x86, 0x18, 0xE1, 0x8C, 0x07, 0x80, 0x80, 0x1C, 0x00, 0xF0, 0x33, 0x84, 0x18, 0x80, 0x88, 0x08, 0x61, 0x03, 0xE0, 0x1C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x18, 0x01, 0x8E, 0x1B, 0x61, 0xC6, 0x38, 0x63, 0x8C, 0x30, 0xC3, 0x0C, 0x60, 0xC6, 0x1A, 0x61, 0xA4, 0x1C, 0x18, 0xC6, 0x00, 0x0B, 0xC6, 0x23, 0x18, 0x8C, 0x63, 0x5C, 0x01, 0x80, 0xC0, 0x60, 0x00, 0x00, 0x0C, 0x1E, 0x02, 0x03, 0x01, 0x80, 0xC0, 0x40, 0x60, 0x30, 0x18, 0x08, 0x0C, 0x06, 0x02, 0x1B, 0x0F, 0x00, 0x1C, 0x01, 0x80, 0x30, 0x06, 0x01, 0x80, 0x33, 0xC6, 0x30, 0x88, 0x32, 0x06, 0x80, 0xF0, 0x1B, 0x06, 0x60, 0xC4, 0x18, 0xD2, 0x0C, 0x3C, 0x61, 0x86, 0x18, 0xC3, 0x0C, 0x21, 0x86, 0x18, 0x43, 0x2D, 0x38, 0x78, 0xE7, 0x0D, 0xB5, 0x8D, 0x1C, 0xC7, 0x0C, 0x63, 0x8E, 0x31, 0x86, 0x30, 0xC3, 0x18, 0xC1, 0x0C, 0x61, 0x84, 0xB0, 0xC6, 0xB0, 0x63, 0x80, 0x78, 0xE1, 0xB6, 0x14, 0x63, 0x84, 0x38, 0xC3, 0x0C, 0x70, 0x86, 0x18, 0x61, 0x96, 0x1A, 0xC1, 0xC0, 0x0F, 0x06, 0x63, 0x0D, 0x83, 0x60, 0xF0, 0x3C, 0x1B, 0x06, 0xC3, 0x39, 0x87, 0x80, 0x1E, 0xF0, 0x39, 0xC1, 0x86, 0x0C, 0x30, 0xC1, 0x86, 0x0C, 0x30, 0xC3, 0x06, 0x18, 0x60, 0xC6, 0x07, 0xC0, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x1F, 0x00, 0x07, 0x81, 0x9C, 0x63, 0x98, 0x76, 0x0C, 0xC1, 0xB0, 0x76, 0x0E, 0xC3, 0x98, 0xB1, 0xE6, 0x00, 0x80, 0x30, 0x06, 0x00, 0xC0, 0xFC, 0x79, 0x8F, 0xC5, 0x07, 0x03, 0x01, 0x80, 0xC0, 0xC0, 0x60, 0x30, 0x10, 0x00, 0x1E, 0x98, 0xCC, 0x27, 0x11, 0x80, 0xE0, 0x39, 0x0C, 0x86, 0x62, 0x2E, 0x00, 0x08, 0x67, 0xCC, 0x30, 0xC6, 0x18, 0x61, 0x8C, 0x34, 0xE0, 0xF0, 0xCC, 0x19, 0x83, 0x30, 0xC6, 0x18, 0x87, 0x31, 0x66, 0x3C, 0xCB, 0x1A, 0x6B, 0x8E, 0x00, 0x70, 0xCC, 0x33, 0x04, 0xC2, 0x18, 0x86, 0x41, 0x90, 0x68, 0x1C, 0x06, 0x01, 0x00, 0x61, 0x0F, 0x84, 0x36, 0x30, 0xDC, 0xC1, 0x35, 0x08, 0xD4, 0x23, 0x91, 0x0E, 0x48, 0x30, 0xE0, 0xC3, 0x02, 0x08, 0x00, 0x0C, 0x63, 0x4A, 0x07, 0x00, 0x70, 0x06, 0x00, 0x20, 0x07, 0x00, 0xB0, 0x0B, 0x21, 0x14, 0xE1, 0x80, 0x38, 0x63, 0x0C, 0x30, 0x86, 0x10, 0xC4, 0x0C, 0x81, 0xA0, 0x34, 0x07, 0x00, 0x60, 0x08, 0x02, 0x00, 0x40, 0x10, 0x04, 0x07, 0x00, 0x1F, 0x90, 0x80, 0x80, 0xC0, 0xC0, 0x40, 0x60, 0x60, 0x60, 0x38, 0x3E, 0x03, 0xA0, 0x60, 0x00, 0x83, 0x81, 0x01, 0x80, 0xC0, 0x40, 0x60, 0x30, 0x10, 0x10, 0x1C, 0x06, 0x03, 0x03, 0x01, 0x80, 0xC0, 0x40, 0x60, 0x30, 0x18, 0x07, 0x00, 0xFF, 0xFF, 0x07, 0x00, 0xC0, 0x60, 0x30, 0x10, 0x18, 0x0C, 0x06, 0x06, 0x03, 0x01, 0x80, 0x60, 0x40, 0x60, 0x30, 0x10, 0x18, 0x0C, 0x06, 0x06, 0x06, 0x00, 0x78, 0x18, 0x8C, 0x0F, 0x00}; const GFXglyph FreeSerifItalic12pt7bGlyphs[] PROGMEM = { {0, 0, 0, 6, 0, 1}, // 0x20 ' ' {0, 6, 16, 8, 1, -15}, // 0x21 '!' {12, 7, 6, 8, 3, -15}, // 0x22 '"' {18, 13, 16, 12, 0, -15}, // 0x23 '#' {44, 12, 20, 12, 0, -17}, // 0x24 '$' {74, 17, 17, 20, 2, -16}, // 0x25 '%' {111, 15, 16, 19, 2, -15}, // 0x26 '&' {141, 2, 6, 5, 4, -15}, // 0x27 ''' {143, 7, 20, 8, 1, -15}, // 0x28 '(' {161, 7, 20, 8, 0, -15}, // 0x29 ')' {179, 8, 10, 12, 4, -15}, // 0x2A '*' {189, 11, 11, 16, 2, -10}, // 0x2B '+' {205, 3, 6, 6, 0, -2}, // 0x2C ',' {208, 5, 1, 8, 1, -5}, // 0x2D '-' {209, 2, 3, 6, 1, -2}, // 0x2E '.' {210, 11, 16, 7, 0, -15}, // 0x2F '/' {232, 11, 17, 12, 1, -16}, // 0x30 '0' {256, 9, 17, 12, 1, -16}, // 0x31 '1' {276, 10, 15, 12, 1, -14}, // 0x32 '2' {295, 10, 16, 12, 1, -15}, // 0x33 '3' {315, 11, 16, 12, 0, -15}, // 0x34 '4' {337, 11, 16, 12, 0, -15}, // 0x35 '5' {359, 12, 17, 12, 1, -16}, // 0x36 '6' {385, 11, 16, 12, 2, -15}, // 0x37 '7' {407, 11, 17, 12, 1, -16}, // 0x38 '8' {431, 11, 17, 12, 1, -16}, // 0x39 '9' {455, 4, 11, 6, 1, -10}, // 0x3A ':' {461, 5, 14, 6, 0, -10}, // 0x3B ';' {470, 12, 13, 14, 1, -12}, // 0x3C '<' {490, 12, 6, 16, 2, -8}, // 0x3D '=' {499, 12, 13, 14, 2, -12}, // 0x3E '>' {519, 9, 16, 11, 3, -15}, // 0x3F '?' {537, 16, 16, 19, 2, -15}, // 0x40 '@' {569, 15, 15, 16, 0, -14}, // 0x41 'A' {598, 14, 16, 14, 0, -15}, // 0x42 'B' {626, 16, 16, 15, 1, -15}, // 0x43 'C' {658, 16, 16, 17, 0, -15}, // 0x44 'D' {690, 16, 16, 14, 0, -15}, // 0x45 'E' {722, 16, 16, 14, 0, -15}, // 0x46 'F' {754, 16, 16, 17, 1, -15}, // 0x47 'G' {786, 19, 16, 17, 0, -15}, // 0x48 'H' {824, 9, 16, 8, 0, -15}, // 0x49 'I' {842, 12, 16, 10, 0, -15}, // 0x4A 'J' {866, 17, 16, 15, 0, -15}, // 0x4B 'K' {900, 14, 16, 14, 0, -15}, // 0x4C 'L' {928, 21, 16, 20, 0, -15}, // 0x4D 'M' {970, 18, 16, 16, 0, -15}, // 0x4E 'N' {1006, 15, 16, 16, 1, -15}, // 0x4F 'O' {1036, 14, 16, 14, 0, -15}, // 0x50 'P' {1064, 15, 20, 16, 1, -15}, // 0x51 'Q' {1102, 14, 16, 15, 0, -15}, // 0x52 'R' {1130, 12, 16, 11, 0, -15}, // 0x53 'S' {1154, 15, 16, 14, 2, -15}, // 0x54 'T' {1184, 16, 16, 17, 3, -15}, // 0x55 'U' {1216, 15, 16, 16, 3, -15}, // 0x56 'V' {1246, 20, 16, 21, 3, -15}, // 0x57 'W' {1286, 16, 16, 16, 0, -15}, // 0x58 'X' {1318, 13, 16, 14, 3, -15}, // 0x59 'Y' {1344, 15, 16, 14, 0, -15}, // 0x5A 'Z' {1374, 8, 20, 9, 1, -15}, // 0x5B '[' {1394, 8, 16, 12, 3, -15}, // 0x5C '\' {1410, 7, 20, 9, 1, -15}, // 0x5D ']' {1428, 10, 9, 10, 0, -15}, // 0x5E '^' {1440, 12, 1, 12, 0, 3}, // 0x5F '_' {1442, 4, 4, 6, 3, -15}, // 0x60 '`' {1444, 12, 11, 12, 0, -10}, // 0x61 'a' {1461, 10, 16, 11, 1, -15}, // 0x62 'b' {1481, 9, 11, 10, 1, -10}, // 0x63 'c' {1494, 13, 16, 12, 0, -15}, // 0x64 'd' {1520, 8, 11, 10, 1, -10}, // 0x65 'e' {1531, 14, 22, 10, -2, -16}, // 0x66 'f' {1570, 12, 16, 11, -1, -10}, // 0x67 'g' {1594, 12, 16, 12, 0, -15}, // 0x68 'h' {1618, 5, 16, 6, 1, -15}, // 0x69 'i' {1628, 9, 21, 7, -2, -15}, // 0x6A 'j' {1652, 11, 16, 11, 0, -15}, // 0x6B 'k' {1674, 6, 16, 6, 1, -15}, // 0x6C 'l' {1686, 17, 11, 17, 0, -10}, // 0x6D 'm' {1710, 12, 11, 12, 0, -10}, // 0x6E 'n' {1727, 10, 11, 11, 1, -10}, // 0x6F 'o' {1741, 13, 16, 11, -2, -10}, // 0x70 'p' {1767, 11, 16, 12, 0, -10}, // 0x71 'q' {1789, 9, 11, 9, 0, -10}, // 0x72 'r' {1802, 9, 11, 8, 0, -10}, // 0x73 's' {1815, 6, 13, 6, 1, -12}, // 0x74 't' {1825, 11, 11, 12, 1, -10}, // 0x75 'u' {1841, 10, 11, 11, 1, -10}, // 0x76 'v' {1855, 14, 11, 16, 2, -10}, // 0x77 'w' {1875, 12, 11, 10, -1, -10}, // 0x78 'x' {1892, 11, 16, 11, 0, -10}, // 0x79 'y' {1914, 9, 13, 9, 0, -10}, // 0x7A 'z' {1929, 9, 21, 10, 1, -16}, // 0x7B '{' {1953, 1, 16, 7, 3, -15}, // 0x7C '|' {1955, 9, 21, 10, 0, -16}, // 0x7D '}' {1979, 11, 3, 13, 1, -6}}; // 0x7E '~' const GFXfont FreeSerifItalic12pt7b PROGMEM = { (uint8_t *)FreeSerifItalic12pt7bBitmaps, (GFXglyph *)FreeSerifItalic12pt7bGlyphs, 0x20, 0x7E, 29}; // Approx. 2656 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifItalic18pt7b.h ================================================ const uint8_t FreeSerifItalic18pt7bBitmaps[] PROGMEM = { 0x01, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0x81, 0xE0, 0x70, 0x1C, 0x06, 0x01, 0x80, 0xC0, 0x30, 0x0C, 0x02, 0x01, 0x80, 0x40, 0x10, 0x00, 0x00, 0x01, 0x80, 0xF0, 0x3C, 0x06, 0x00, 0x38, 0x77, 0x8F, 0x78, 0xF7, 0x0E, 0x60, 0xE6, 0x0C, 0xC1, 0x8C, 0x18, 0x81, 0x00, 0x00, 0x60, 0xC0, 0x0C, 0x38, 0x03, 0x86, 0x00, 0x60, 0xC0, 0x0C, 0x38, 0x03, 0x06, 0x00, 0x60, 0xC0, 0xFF, 0xFF, 0x1F, 0xFF, 0xE0, 0x61, 0xC0, 0x1C, 0x30, 0x03, 0x06, 0x00, 0x61, 0xC0, 0x18, 0x30, 0x3F, 0xFF, 0xC7, 0xFF, 0xF8, 0x18, 0x30, 0x03, 0x0E, 0x00, 0xE1, 0x80, 0x18, 0x30, 0x03, 0x0C, 0x00, 0xC1, 0x80, 0x18, 0x70, 0x00, 0x00, 0x08, 0x00, 0x30, 0x00, 0x40, 0x0F, 0xC0, 0x61, 0xE1, 0x86, 0xC6, 0x0D, 0x8C, 0x1A, 0x18, 0x24, 0x38, 0xC0, 0x39, 0x80, 0x7F, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xDC, 0x03, 0x38, 0x06, 0x32, 0x0C, 0x64, 0x18, 0xDC, 0x71, 0xB8, 0xC6, 0x39, 0x8C, 0x3F, 0x30, 0x1F, 0x80, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0x07, 0x80, 0x60, 0x0F, 0xE0, 0xE0, 0x0F, 0x0F, 0xB0, 0x0E, 0x04, 0x30, 0x07, 0x02, 0x18, 0x07, 0x01, 0x18, 0x03, 0x00, 0x8C, 0x01, 0x80, 0x8C, 0x00, 0xC0, 0x4C, 0x00, 0x60, 0x66, 0x1F, 0x30, 0x66, 0x1F, 0xCC, 0x63, 0x1C, 0x67, 0xE3, 0x1C, 0x19, 0xE1, 0x1C, 0x04, 0x01, 0x8C, 0x02, 0x00, 0x8E, 0x01, 0x00, 0xC7, 0x00, 0x80, 0xC3, 0x00, 0x80, 0x61, 0x80, 0xC0, 0x60, 0xC0, 0xC0, 0x20, 0x70, 0xE0, 0x30, 0x1F, 0xC0, 0x10, 0x07, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xFC, 0x00, 0x07, 0x18, 0x00, 0x18, 0x60, 0x00, 0xE1, 0x80, 0x03, 0x8C, 0x00, 0x0E, 0x60, 0x00, 0x3B, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x7F, 0x1F, 0xC3, 0x3C, 0x1C, 0x38, 0x70, 0x61, 0xE1, 0xE3, 0x87, 0x07, 0x8C, 0x3C, 0x0F, 0x60, 0xF0, 0x3D, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3E, 0x07, 0xC0, 0x7C, 0x77, 0x84, 0xFF, 0x8F, 0xE1, 0xF8, 0x0F, 0x00, 0x3B, 0xDE, 0xE7, 0x33, 0x18, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0x60, 0x70, 0x38, 0x18, 0x0C, 0x0E, 0x07, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x01, 0x00, 0x80, 0x40, 0x30, 0x08, 0x04, 0x02, 0x00, 0x04, 0x01, 0x00, 0x80, 0x60, 0x10, 0x08, 0x04, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x0E, 0x07, 0x03, 0x81, 0x80, 0xC0, 0xE0, 0x60, 0x30, 0x30, 0x18, 0x18, 0x08, 0x08, 0x08, 0x08, 0x00, 0x06, 0x00, 0x60, 0x06, 0x0C, 0x43, 0xE4, 0xF1, 0x58, 0x0E, 0x00, 0xF0, 0x74, 0xEE, 0x47, 0xC4, 0x30, 0x60, 0x06, 0x00, 0x60, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x31, 0xCE, 0x31, 0x08, 0x98, 0xFF, 0xFF, 0x6F, 0xF6, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x30, 0x00, 0x70, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0x80, 0x03, 0x00, 0x07, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x30, 0x00, 0x70, 0x00, 0x60, 0x00, 0xE0, 0x00, 0x00, 0x78, 0x00, 0xC3, 0x00, 0xC1, 0xC0, 0xC0, 0x60, 0xE0, 0x30, 0xE0, 0x1C, 0x70, 0x0E, 0x70, 0x07, 0x38, 0x03, 0xBC, 0x01, 0xDC, 0x01, 0xEE, 0x00, 0xFF, 0x00, 0x7F, 0x80, 0x3B, 0x80, 0x1D, 0xC0, 0x1E, 0xE0, 0x0E, 0x70, 0x0F, 0x38, 0x07, 0x1C, 0x07, 0x06, 0x03, 0x83, 0x83, 0x80, 0xC3, 0x00, 0x1F, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0x70, 0x07, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x01, 0xC0, 0x1C, 0x01, 0xC0, 0x38, 0x03, 0x80, 0x38, 0x03, 0x80, 0x70, 0x07, 0x00, 0x70, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x1E, 0x0F, 0xF8, 0x01, 0xF0, 0x07, 0xFC, 0x0C, 0x3E, 0x10, 0x1F, 0x20, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x30, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x04, 0x30, 0x0C, 0x7F, 0xF8, 0xFF, 0xF0, 0x00, 0x7C, 0x00, 0xFF, 0x00, 0xC3, 0xC0, 0x80, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xF0, 0x03, 0xFC, 0x00, 0x1F, 0x00, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x07, 0x00, 0x03, 0x07, 0x87, 0x03, 0xFF, 0x00, 0xFC, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0xC0, 0x01, 0xE0, 0x01, 0xF0, 0x01, 0xB0, 0x01, 0xB8, 0x01, 0x9C, 0x01, 0x8C, 0x00, 0x86, 0x00, 0x87, 0x00, 0x83, 0x80, 0x81, 0x80, 0x81, 0xC0, 0xC0, 0xE0, 0xC0, 0x70, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0x80, 0x01, 0xFF, 0x01, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x06, 0x00, 0x07, 0x00, 0x0F, 0xC0, 0x0F, 0xF0, 0x00, 0xF8, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x08, 0x00, 0x18, 0x00, 0x30, 0x00, 0x30, 0x70, 0xE0, 0xFF, 0x80, 0x7E, 0x00, 0x00, 0x03, 0x80, 0x1F, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x3D, 0xF0, 0x1F, 0xFE, 0x1F, 0x0F, 0x8E, 0x03, 0xC7, 0x00, 0xF7, 0x00, 0x7B, 0x80, 0x3D, 0x80, 0x1E, 0xC0, 0x0F, 0x60, 0x0F, 0xB0, 0x07, 0x98, 0x03, 0xC4, 0x03, 0xC3, 0x03, 0xC0, 0xC3, 0x80, 0x1F, 0x00, 0x3F, 0xFF, 0x7F, 0xFE, 0x40, 0x0E, 0x80, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x00, 0x30, 0x00, 0x70, 0x00, 0x60, 0x00, 0xC0, 0x01, 0xC0, 0x01, 0x80, 0x03, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x70, 0x00, 0x60, 0x00, 0xE0, 0x00, 0x00, 0xF8, 0x03, 0x0E, 0x06, 0x06, 0x0C, 0x03, 0x0C, 0x03, 0x0C, 0x03, 0x0C, 0x03, 0x0E, 0x06, 0x07, 0x8E, 0x07, 0xD8, 0x03, 0xE0, 0x07, 0xF0, 0x1C, 0xF8, 0x30, 0x3C, 0x60, 0x1C, 0x60, 0x0E, 0xC0, 0x06, 0xC0, 0x06, 0xC0, 0x06, 0xC0, 0x06, 0xE0, 0x0C, 0x60, 0x18, 0x38, 0x30, 0x0F, 0xC0, 0x01, 0xF8, 0x07, 0x8C, 0x0E, 0x06, 0x1E, 0x02, 0x3C, 0x03, 0x3C, 0x03, 0x78, 0x03, 0x78, 0x03, 0x78, 0x03, 0x78, 0x07, 0x78, 0x07, 0x78, 0x07, 0x3C, 0x0E, 0x3E, 0x1E, 0x1F, 0xEE, 0x07, 0x9C, 0x00, 0x38, 0x00, 0x78, 0x00, 0x70, 0x01, 0xE0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xE0, 0x00, 0x0C, 0x3C, 0x78, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1E, 0x18, 0x00, 0x07, 0x03, 0xC1, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x81, 0xC0, 0xE0, 0x30, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0xF0, 0x01, 0xF8, 0x01, 0xF8, 0x01, 0xF0, 0x01, 0xF0, 0x03, 0xF0, 0x03, 0xF0, 0x00, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xC0, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xC0, 0x00, 0x3C, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3F, 0x00, 0x03, 0xC0, 0x01, 0xF0, 0x01, 0xF8, 0x01, 0xF8, 0x01, 0xF0, 0x01, 0xF0, 0x03, 0xF0, 0x03, 0xF0, 0x00, 0xF0, 0x00, 0x20, 0x00, 0x00, 0x0F, 0x81, 0x86, 0x30, 0x33, 0x03, 0x30, 0x30, 0x03, 0x00, 0x60, 0x0E, 0x01, 0xC0, 0x38, 0x06, 0x00, 0xC0, 0x08, 0x01, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xF0, 0x0F, 0x00, 0x60, 0x00, 0x00, 0x7F, 0x00, 0x03, 0xFF, 0xE0, 0x07, 0x80, 0xF0, 0x0E, 0x00, 0x38, 0x1C, 0x00, 0x0C, 0x38, 0x0E, 0x06, 0x70, 0x3F, 0xE2, 0x70, 0x71, 0xE3, 0xF0, 0x60, 0xE1, 0xE0, 0xC0, 0xC1, 0xE0, 0xC0, 0xC1, 0xE1, 0x81, 0xC1, 0xE1, 0x81, 0xC1, 0xE1, 0x81, 0x82, 0xE1, 0x83, 0x82, 0x71, 0x83, 0x86, 0x71, 0xC7, 0x8C, 0x38, 0xF9, 0xF8, 0x3C, 0xF0, 0xF0, 0x1E, 0x00, 0x00, 0x0F, 0x80, 0x30, 0x03, 0xFF, 0xE0, 0x00, 0x7F, 0x00, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x5E, 0x00, 0x04, 0xF0, 0x00, 0x63, 0x80, 0x02, 0x1C, 0x00, 0x20, 0xE0, 0x01, 0x07, 0x00, 0x10, 0x3C, 0x01, 0xFF, 0xE0, 0x0F, 0xFF, 0x00, 0xC0, 0x38, 0x04, 0x01, 0xC0, 0x60, 0x0E, 0x06, 0x00, 0x78, 0x30, 0x03, 0xC3, 0x00, 0x1E, 0x38, 0x00, 0xFB, 0xF0, 0x1F, 0xE0, 0x07, 0xFF, 0x80, 0x0F, 0xFF, 0x00, 0x78, 0x3C, 0x03, 0xC0, 0xF0, 0x1E, 0x07, 0x80, 0xE0, 0x3C, 0x07, 0x01, 0xE0, 0x78, 0x1E, 0x03, 0x83, 0xE0, 0x1F, 0xF8, 0x01, 0xFF, 0xC0, 0x0F, 0x0F, 0x00, 0x70, 0x3C, 0x03, 0x80, 0xF0, 0x3C, 0x07, 0x81, 0xC0, 0x3C, 0x0E, 0x01, 0xE0, 0xF0, 0x0F, 0x07, 0x80, 0xF0, 0x38, 0x0F, 0x81, 0xC1, 0xF8, 0x1F, 0xFF, 0x83, 0xFF, 0xE0, 0x00, 0x00, 0x3F, 0x08, 0x07, 0xFF, 0xC0, 0xF8, 0x3E, 0x0F, 0x00, 0x70, 0xF0, 0x03, 0x8F, 0x00, 0x08, 0xF0, 0x00, 0x47, 0x80, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x03, 0x80, 0x02, 0x1E, 0x00, 0x20, 0x78, 0x02, 0x03, 0xE0, 0x60, 0x07, 0xFE, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xFF, 0xC0, 0x00, 0xFF, 0xFC, 0x00, 0x78, 0x1F, 0x00, 0x3C, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x0E, 0x00, 0x78, 0x07, 0x00, 0x1E, 0x07, 0x80, 0x0F, 0x03, 0x80, 0x07, 0x81, 0xC0, 0x03, 0xC1, 0xE0, 0x01, 0xE0, 0xF0, 0x00, 0xF0, 0x70, 0x00, 0x78, 0x38, 0x00, 0x78, 0x3C, 0x00, 0x3C, 0x1E, 0x00, 0x3E, 0x0E, 0x00, 0x1E, 0x0F, 0x00, 0x1E, 0x07, 0x80, 0x1E, 0x03, 0x80, 0x3E, 0x01, 0xC0, 0x7E, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xFC, 0x07, 0xFF, 0xF0, 0x1E, 0x01, 0xC0, 0x78, 0x02, 0x01, 0xE0, 0x08, 0x07, 0x00, 0x00, 0x1C, 0x08, 0x00, 0xF0, 0x60, 0x03, 0x83, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xF0, 0x01, 0xE0, 0xC0, 0x07, 0x03, 0x00, 0x1C, 0x08, 0x00, 0xF0, 0x20, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x78, 0x00, 0x81, 0xE0, 0x06, 0x07, 0x00, 0x38, 0x1C, 0x03, 0xC0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xFC, 0x07, 0xFF, 0xF0, 0x1E, 0x01, 0xC0, 0x78, 0x02, 0x01, 0xE0, 0x08, 0x07, 0x00, 0x20, 0x1C, 0x00, 0x00, 0xF0, 0x20, 0x03, 0x81, 0x80, 0x0E, 0x0C, 0x00, 0x7F, 0xF0, 0x01, 0xFF, 0xC0, 0x07, 0x03, 0x00, 0x1C, 0x0C, 0x00, 0xF0, 0x20, 0x03, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xF8, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x3F, 0x02, 0x01, 0xFF, 0x88, 0x0F, 0x81, 0xF0, 0x3C, 0x01, 0xE0, 0xF0, 0x01, 0xC3, 0xC0, 0x01, 0x0F, 0x80, 0x02, 0x1E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x00, 0x3F, 0xFE, 0x00, 0x1E, 0x3C, 0x00, 0x38, 0x78, 0x00, 0x70, 0xF0, 0x00, 0xE0, 0xE0, 0x01, 0xC1, 0xE0, 0x07, 0x01, 0xE0, 0x0E, 0x01, 0xF0, 0x3C, 0x01, 0xFF, 0xF0, 0x00, 0xFF, 0x00, 0x00, 0x07, 0xFC, 0x3F, 0xE0, 0x3E, 0x00, 0xF0, 0x07, 0x80, 0x1C, 0x00, 0xF0, 0x03, 0x80, 0x1C, 0x00, 0xF0, 0x03, 0x80, 0x1E, 0x00, 0x70, 0x03, 0x80, 0x1E, 0x00, 0x70, 0x03, 0x80, 0x1E, 0x00, 0x70, 0x03, 0x80, 0x1F, 0xFF, 0xF0, 0x03, 0xFF, 0xFE, 0x00, 0x70, 0x03, 0xC0, 0x0E, 0x00, 0x70, 0x03, 0xC0, 0x0E, 0x00, 0x70, 0x03, 0xC0, 0x0E, 0x00, 0x78, 0x03, 0xC0, 0x0E, 0x00, 0x78, 0x01, 0xC0, 0x0E, 0x00, 0x78, 0x01, 0xC0, 0x0E, 0x00, 0x78, 0x03, 0xE0, 0x3F, 0xE1, 0xFF, 0x00, 0x07, 0xFC, 0x07, 0xC0, 0x1E, 0x00, 0x78, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0xF0, 0x03, 0x80, 0x0E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x00, 0x1C, 0x00, 0xF0, 0x03, 0x80, 0x0E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x00, 0x1C, 0x00, 0xF0, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0x80, 0x0F, 0x00, 0x07, 0x80, 0x03, 0x80, 0x01, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0x80, 0x01, 0xC0, 0x01, 0xE0, 0x00, 0xE0, 0x00, 0x70, 0x1E, 0x78, 0x0F, 0x38, 0x07, 0xF8, 0x01, 0xF0, 0x00, 0x07, 0xFC, 0x7F, 0x80, 0xF8, 0x0F, 0x00, 0x38, 0x07, 0x00, 0x3C, 0x07, 0x00, 0x1C, 0x06, 0x00, 0x0E, 0x06, 0x00, 0x07, 0x0C, 0x00, 0x07, 0x8C, 0x00, 0x03, 0x9C, 0x00, 0x01, 0xD8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x73, 0x80, 0x00, 0x39, 0xE0, 0x00, 0x3C, 0x78, 0x00, 0x1C, 0x1C, 0x00, 0x0E, 0x0F, 0x00, 0x07, 0x03, 0x80, 0x07, 0x81, 0xE0, 0x03, 0x80, 0x70, 0x01, 0xC0, 0x3C, 0x01, 0xE0, 0x1F, 0x03, 0xFE, 0x3F, 0xE0, 0x07, 0xFC, 0x00, 0x1F, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x07, 0x80, 0x00, 0x78, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x0F, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x11, 0xE0, 0x03, 0x1E, 0x00, 0x61, 0xC0, 0x06, 0x1C, 0x01, 0xE3, 0xFF, 0xFC, 0xFF, 0xFF, 0xC0, 0x07, 0xF0, 0x00, 0x7E, 0x03, 0xE0, 0x01, 0xF0, 0x03, 0xC0, 0x03, 0xE0, 0x07, 0x80, 0x0F, 0x80, 0x1F, 0x00, 0x37, 0x00, 0x2E, 0x00, 0x5E, 0x00, 0x5C, 0x01, 0xB8, 0x01, 0xB8, 0x06, 0x70, 0x02, 0x78, 0x09, 0xE0, 0x04, 0x70, 0x33, 0xC0, 0x08, 0xE0, 0xC7, 0x00, 0x31, 0xC1, 0x0E, 0x00, 0x43, 0x86, 0x3C, 0x00, 0x87, 0x18, 0x70, 0x03, 0x0E, 0x20, 0xE0, 0x06, 0x1C, 0xC3, 0xC0, 0x08, 0x3B, 0x07, 0x80, 0x10, 0x7C, 0x0E, 0x00, 0x60, 0x78, 0x1C, 0x00, 0x80, 0xE0, 0x78, 0x03, 0x01, 0x80, 0xF0, 0x07, 0x03, 0x03, 0xE0, 0x3F, 0x84, 0x1F, 0xF0, 0x00, 0x07, 0xC0, 0x3F, 0xC0, 0x78, 0x03, 0xE0, 0x0E, 0x00, 0x70, 0x03, 0xC0, 0x18, 0x01, 0xF0, 0x0E, 0x00, 0x6C, 0x03, 0x00, 0x1B, 0x80, 0xC0, 0x0C, 0xE0, 0x30, 0x03, 0x18, 0x1C, 0x00, 0xC7, 0x06, 0x00, 0x30, 0xC1, 0x80, 0x18, 0x38, 0xE0, 0x06, 0x06, 0x30, 0x01, 0x81, 0x8C, 0x00, 0xC0, 0x73, 0x00, 0x30, 0x0D, 0xC0, 0x0C, 0x03, 0xE0, 0x03, 0x00, 0x78, 0x01, 0x80, 0x1E, 0x00, 0x60, 0x07, 0x00, 0x38, 0x00, 0xC0, 0x0E, 0x00, 0x30, 0x0F, 0xE0, 0x04, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0xE0, 0x07, 0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0x78, 0x01, 0xC1, 0xE0, 0x03, 0xC7, 0x80, 0x07, 0x9F, 0x00, 0x0F, 0x3C, 0x00, 0x1E, 0xF8, 0x00, 0x3D, 0xE0, 0x00, 0xFF, 0xC0, 0x01, 0xEF, 0x80, 0x03, 0xDE, 0x00, 0x0F, 0xBC, 0x00, 0x1E, 0x78, 0x00, 0x7C, 0xF0, 0x00, 0xF1, 0xE0, 0x03, 0xC1, 0xC0, 0x0F, 0x03, 0xC0, 0x3C, 0x03, 0xC1, 0xF0, 0x03, 0xFF, 0x80, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x0E, 0x0F, 0x80, 0x78, 0x1F, 0x01, 0xC0, 0x3C, 0x07, 0x00, 0xF0, 0x1C, 0x03, 0xC0, 0xF0, 0x0F, 0x03, 0x80, 0x78, 0x0E, 0x01, 0xE0, 0x78, 0x1F, 0x01, 0xFF, 0xF8, 0x07, 0x7F, 0x00, 0x1C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0xE0, 0x03, 0xC1, 0xE0, 0x1E, 0x01, 0xC0, 0x78, 0x03, 0xC1, 0xE0, 0x03, 0x87, 0x80, 0x07, 0x8F, 0x00, 0x0F, 0x3C, 0x00, 0x1E, 0x78, 0x00, 0x3D, 0xE0, 0x00, 0x7B, 0xC0, 0x01, 0xFF, 0x80, 0x03, 0xDE, 0x00, 0x07, 0xBC, 0x00, 0x1F, 0x78, 0x00, 0x3C, 0xF0, 0x00, 0xF1, 0xE0, 0x01, 0xE3, 0xC0, 0x07, 0x83, 0x80, 0x1E, 0x07, 0x80, 0x78, 0x07, 0x01, 0xC0, 0x03, 0xDE, 0x00, 0x01, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x10, 0x7F, 0xC0, 0xC3, 0xFF, 0xFF, 0x08, 0x07, 0xF0, 0x00, 0x07, 0xFF, 0x80, 0x0F, 0xFF, 0x00, 0x78, 0x3C, 0x03, 0xC0, 0xF0, 0x1E, 0x07, 0x80, 0xE0, 0x3C, 0x07, 0x01, 0xE0, 0x78, 0x1E, 0x03, 0x83, 0xF0, 0x1F, 0xFE, 0x01, 0xFF, 0xC0, 0x0F, 0x38, 0x00, 0x71, 0xE0, 0x03, 0x87, 0x00, 0x3C, 0x38, 0x01, 0xC1, 0xE0, 0x0E, 0x07, 0x00, 0xF0, 0x3C, 0x07, 0x81, 0xE0, 0x38, 0x07, 0x01, 0xC0, 0x3C, 0x1E, 0x00, 0xF3, 0xFC, 0x07, 0xC0, 0x00, 0xF8, 0x81, 0xFF, 0xC1, 0xE1, 0xE1, 0xE0, 0x70, 0xF0, 0x10, 0x78, 0x08, 0x3C, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0xF8, 0x80, 0x3C, 0x40, 0x1E, 0x20, 0x0F, 0x38, 0x07, 0x9E, 0x07, 0x8F, 0x87, 0x84, 0x7F, 0xC2, 0x0F, 0x80, 0x3F, 0xFF, 0xF7, 0xFF, 0xFF, 0x70, 0x78, 0x76, 0x07, 0x02, 0xC0, 0x70, 0x28, 0x0F, 0x02, 0x00, 0xF0, 0x00, 0x0E, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x07, 0x80, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x01, 0xF0, 0x00, 0xFF, 0xE0, 0x00, 0x7F, 0xE0, 0xFE, 0x3F, 0x00, 0x78, 0x3C, 0x00, 0x60, 0xF0, 0x01, 0x81, 0xE0, 0x03, 0x03, 0xC0, 0x06, 0x07, 0x00, 0x08, 0x1E, 0x00, 0x30, 0x3C, 0x00, 0x60, 0x70, 0x00, 0x81, 0xE0, 0x01, 0x03, 0xC0, 0x06, 0x07, 0x80, 0x0C, 0x0E, 0x00, 0x10, 0x3C, 0x00, 0x60, 0x78, 0x00, 0xC0, 0xF0, 0x01, 0x01, 0xE0, 0x06, 0x03, 0xC0, 0x08, 0x03, 0xC0, 0x30, 0x07, 0xC1, 0xC0, 0x07, 0xFF, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFF, 0x01, 0xFB, 0xE0, 0x07, 0x8E, 0x00, 0x18, 0x78, 0x01, 0x83, 0xC0, 0x0C, 0x1E, 0x00, 0xC0, 0xF0, 0x06, 0x03, 0x80, 0x60, 0x1C, 0x02, 0x00, 0xE0, 0x30, 0x07, 0x83, 0x00, 0x3C, 0x10, 0x01, 0xE1, 0x80, 0x07, 0x08, 0x00, 0x38, 0x80, 0x01, 0xC4, 0x00, 0x0E, 0x40, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0x00, 0x00, 0x10, 0x00, 0x00, 0xFF, 0x3F, 0xC3, 0xFB, 0xE0, 0x78, 0x07, 0x8E, 0x03, 0xC0, 0x18, 0x78, 0x0E, 0x01, 0x83, 0xC0, 0x70, 0x0C, 0x1E, 0x03, 0x80, 0x40, 0xF0, 0x3C, 0x06, 0x03, 0x81, 0xE0, 0x60, 0x1C, 0x17, 0x83, 0x00, 0xE0, 0xBC, 0x30, 0x07, 0x09, 0xE1, 0x00, 0x38, 0x47, 0x18, 0x01, 0xE4, 0x38, 0x80, 0x0F, 0x21, 0xCC, 0x00, 0x7A, 0x0E, 0x40, 0x01, 0xD0, 0x76, 0x00, 0x0F, 0x03, 0xA0, 0x00, 0x78, 0x1F, 0x00, 0x03, 0x80, 0xF0, 0x00, 0x1C, 0x07, 0x00, 0x00, 0xC0, 0x38, 0x00, 0x06, 0x00, 0x80, 0x00, 0x20, 0x04, 0x00, 0x00, 0x0F, 0xF8, 0x7F, 0x03, 0xE0, 0x3E, 0x01, 0xC0, 0x18, 0x01, 0xE0, 0x30, 0x01, 0xE0, 0x60, 0x00, 0xE0, 0xC0, 0x00, 0xF1, 0xC0, 0x00, 0x71, 0x80, 0x00, 0x7B, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xCE, 0x00, 0x01, 0x8F, 0x00, 0x01, 0x07, 0x00, 0x03, 0x07, 0x00, 0x06, 0x07, 0x80, 0x0C, 0x03, 0x80, 0x18, 0x03, 0xC0, 0x78, 0x03, 0xE0, 0xFE, 0x1F, 0xF8, 0xFF, 0x87, 0xE7, 0xC0, 0x38, 0x70, 0x06, 0x0E, 0x01, 0x81, 0xE0, 0x30, 0x1C, 0x0C, 0x03, 0x83, 0x00, 0x78, 0xC0, 0x07, 0x30, 0x00, 0xE4, 0x00, 0x1D, 0x80, 0x03, 0xE0, 0x00, 0x38, 0x00, 0x0F, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x01, 0xE0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x01, 0xE0, 0x00, 0x7C, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFF, 0xFC, 0x3F, 0xFF, 0xE0, 0xE0, 0x0F, 0x82, 0x00, 0x3C, 0x18, 0x01, 0xE0, 0x40, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0xC1, 0xE0, 0x02, 0x0F, 0x00, 0x18, 0x38, 0x01, 0xE1, 0xFF, 0xFF, 0x0F, 0xFF, 0xFC, 0x00, 0x01, 0xF8, 0x0C, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x18, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x06, 0x00, 0x60, 0x03, 0x00, 0x18, 0x01, 0xC0, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x06, 0x00, 0x30, 0x01, 0xF8, 0x00, 0xE0, 0x0E, 0x00, 0x60, 0x07, 0x00, 0x30, 0x03, 0x80, 0x18, 0x01, 0xC0, 0x0C, 0x00, 0xC0, 0x0E, 0x00, 0x60, 0x07, 0x00, 0x30, 0x03, 0x80, 0x18, 0x01, 0xC0, 0x0C, 0x00, 0xC0, 0x0E, 0x00, 0x60, 0x07, 0x00, 0x30, 0x03, 0xF0, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x0E, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x03, 0x00, 0x30, 0x03, 0x00, 0x30, 0x03, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x0F, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x1F, 0x00, 0x36, 0x00, 0xCE, 0x01, 0x8C, 0x06, 0x1C, 0x0C, 0x18, 0x38, 0x38, 0x60, 0x31, 0xC0, 0x73, 0x00, 0x6E, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xE3, 0x8F, 0x0E, 0x18, 0x30, 0x01, 0xEC, 0x0E, 0x58, 0x30, 0x70, 0xE0, 0xC3, 0x81, 0x86, 0x07, 0x1C, 0x0C, 0x38, 0x18, 0xE0, 0x71, 0xC0, 0xE3, 0x83, 0x87, 0x0B, 0x2F, 0x36, 0xCF, 0xCF, 0x1F, 0x1C, 0x00, 0x03, 0x00, 0x1F, 0x00, 0x07, 0x00, 0x07, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x1C, 0x7C, 0x1C, 0xFE, 0x19, 0x8F, 0x1A, 0x07, 0x3C, 0x07, 0x38, 0x07, 0x38, 0x07, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x1C, 0x60, 0x18, 0xE0, 0x30, 0xE0, 0x60, 0xE1, 0xC0, 0x3F, 0x00, 0x01, 0xF0, 0x38, 0xC3, 0x8E, 0x78, 0x73, 0x80, 0x3C, 0x01, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x47, 0x84, 0x3F, 0xC0, 0x7C, 0x00, 0x00, 0x01, 0x80, 0x07, 0xC0, 0x00, 0xE0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x06, 0x00, 0xF7, 0x01, 0xC7, 0x81, 0xC3, 0x81, 0xC1, 0xC1, 0xE0, 0xE0, 0xE0, 0x60, 0xF0, 0x30, 0x78, 0x38, 0x78, 0x18, 0x3C, 0x0C, 0x1E, 0x0C, 0x0F, 0x0E, 0x27, 0xCB, 0x21, 0xF9, 0xE0, 0x78, 0xE0, 0x00, 0xF0, 0x1C, 0xC3, 0x86, 0x38, 0x33, 0xC3, 0x1C, 0x31, 0xE3, 0x1F, 0xE0, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x47, 0x84, 0x3F, 0xC0, 0x7C, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x33, 0x00, 0x06, 0x30, 0x00, 0xC0, 0x00, 0x0C, 0x00, 0x01, 0xC0, 0x00, 0x18, 0x00, 0x01, 0x80, 0x00, 0x38, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0x80, 0x03, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x0C, 0x00, 0x00, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x18, 0x00, 0x01, 0x80, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0xC6, 0x00, 0x0C, 0xC0, 0x00, 0x78, 0x00, 0x00, 0x01, 0xF8, 0x07, 0x1F, 0x0E, 0x0F, 0x0C, 0x0E, 0x18, 0x0E, 0x18, 0x0E, 0x18, 0x1E, 0x18, 0x3C, 0x0C, 0x78, 0x07, 0xE0, 0x08, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x0F, 0xE0, 0x13, 0xF0, 0x60, 0x78, 0xC0, 0x38, 0xC0, 0x18, 0xC0, 0x18, 0xC0, 0x30, 0x60, 0x60, 0x3F, 0x80, 0x03, 0x00, 0x1F, 0x00, 0x07, 0x00, 0x07, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x1C, 0x38, 0x1C, 0x7C, 0x1C, 0xCC, 0x19, 0x0C, 0x3A, 0x0C, 0x3C, 0x1C, 0x3C, 0x18, 0x38, 0x18, 0x70, 0x38, 0x70, 0x38, 0x70, 0x30, 0x60, 0x72, 0xE0, 0x76, 0xE0, 0x7C, 0xC0, 0x70, 0x03, 0x03, 0xC1, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x7E, 0x0F, 0x03, 0x81, 0x81, 0xC0, 0xE0, 0x70, 0x30, 0x38, 0x1C, 0x1C, 0x4C, 0x47, 0xC3, 0xC0, 0x00, 0x0C, 0x00, 0x3C, 0x00, 0x78, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x03, 0xF0, 0x00, 0xE0, 0x01, 0x80, 0x03, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x30, 0x00, 0x60, 0x01, 0xC0, 0x03, 0x80, 0x06, 0x00, 0x0C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xC0, 0x03, 0x80, 0x06, 0x00, 0x0C, 0x06, 0x30, 0x0C, 0xC0, 0x0F, 0x00, 0x00, 0x03, 0x00, 0x3E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x60, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0C, 0x00, 0x38, 0xFC, 0x70, 0x60, 0xE1, 0x81, 0x86, 0x07, 0x10, 0x0E, 0x40, 0x1B, 0x80, 0x3F, 0x00, 0xE7, 0x01, 0xCE, 0x03, 0x0C, 0x06, 0x1C, 0x5C, 0x1D, 0x38, 0x3E, 0x60, 0x38, 0x03, 0x1F, 0x07, 0x07, 0x06, 0x0E, 0x0E, 0x0E, 0x0C, 0x1C, 0x1C, 0x18, 0x38, 0x38, 0x38, 0x30, 0x70, 0x70, 0x70, 0x64, 0xE4, 0xE8, 0xF0, 0xE0, 0x00, 0x06, 0x18, 0x1E, 0x3E, 0x3C, 0x3F, 0x0E, 0x4C, 0x47, 0x0C, 0x8C, 0x8E, 0x1D, 0x0D, 0x0E, 0x1E, 0x1A, 0x0E, 0x1C, 0x1E, 0x0C, 0x3C, 0x1C, 0x1C, 0x38, 0x38, 0x1C, 0x38, 0x38, 0x1C, 0x30, 0x38, 0x18, 0x70, 0x30, 0x39, 0x70, 0x70, 0x32, 0x60, 0x70, 0x3C, 0x60, 0x60, 0x38, 0x06, 0x0E, 0x1F, 0x1F, 0x83, 0x99, 0xC1, 0x98, 0xC1, 0xD8, 0xE0, 0xE8, 0x70, 0x78, 0x30, 0x38, 0x38, 0x3C, 0x1C, 0x1C, 0x0E, 0x0E, 0x06, 0x0E, 0x03, 0x17, 0x01, 0xB3, 0x80, 0xF1, 0x80, 0x70, 0x01, 0xF0, 0x0E, 0x38, 0x38, 0x30, 0xE0, 0x73, 0x80, 0xEE, 0x01, 0xDC, 0x03, 0xF8, 0x0F, 0xE0, 0x1D, 0xC0, 0x3B, 0x80, 0xE7, 0x03, 0x8E, 0x06, 0x0E, 0x38, 0x07, 0xC0, 0x00, 0x00, 0xE7, 0xC0, 0x7C, 0xFE, 0x01, 0xD1, 0xF0, 0x1E, 0x0F, 0x01, 0xC0, 0xF0, 0x38, 0x0F, 0x03, 0x80, 0xF0, 0x38, 0x0E, 0x03, 0x01, 0xE0, 0x70, 0x1C, 0x07, 0x03, 0xC0, 0x60, 0x78, 0x06, 0x0F, 0x00, 0xE1, 0xC0, 0x0F, 0xF0, 0x00, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0x80, 0x00, 0x38, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xF7, 0x03, 0xCE, 0x0F, 0x06, 0x1E, 0x06, 0x1C, 0x04, 0x3C, 0x04, 0x78, 0x04, 0x78, 0x0C, 0xF0, 0x08, 0xF0, 0x18, 0xF0, 0x38, 0xF0, 0xF0, 0xF9, 0x70, 0x7E, 0x70, 0x3C, 0x70, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x0F, 0xF0, 0x7C, 0x70, 0xE7, 0xC7, 0x4C, 0x34, 0x01, 0xA0, 0x1E, 0x00, 0xF0, 0x07, 0x00, 0x78, 0x03, 0x80, 0x1C, 0x00, 0xC0, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x00, 0x07, 0x88, 0x63, 0x86, 0x0C, 0x30, 0x21, 0xC1, 0x0E, 0x00, 0x38, 0x00, 0xE0, 0x03, 0x80, 0x1C, 0x10, 0x60, 0x83, 0x06, 0x18, 0x71, 0x82, 0x78, 0x00, 0x02, 0x03, 0x03, 0x07, 0xF7, 0xF8, 0xE0, 0x60, 0x70, 0x38, 0x1C, 0x0C, 0x0E, 0x07, 0x03, 0x01, 0x91, 0xC8, 0xF8, 0x78, 0x00, 0x1C, 0x0D, 0xF8, 0x38, 0x60, 0x70, 0xC1, 0xC3, 0x83, 0x87, 0x07, 0x0C, 0x1E, 0x38, 0x78, 0x70, 0xB0, 0xE2, 0x61, 0x8D, 0xC7, 0x33, 0x2C, 0xC6, 0x5F, 0x0F, 0x38, 0x1C, 0x00, 0x18, 0x1B, 0xE0, 0x73, 0x81, 0xC6, 0x03, 0x18, 0x0C, 0x70, 0x21, 0xC1, 0x83, 0x0C, 0x0C, 0x20, 0x31, 0x00, 0xC8, 0x03, 0x40, 0x0E, 0x00, 0x30, 0x00, 0x80, 0x00, 0x18, 0x04, 0x1B, 0xE0, 0x30, 0x71, 0x80, 0xC1, 0xC6, 0x07, 0x01, 0x1C, 0x2C, 0x08, 0x70, 0xB0, 0x20, 0xC4, 0xC1, 0x03, 0x21, 0x84, 0x0D, 0x86, 0x20, 0x34, 0x19, 0x00, 0xE0, 0x68, 0x03, 0x81, 0xA0, 0x0C, 0x07, 0x00, 0x30, 0x18, 0x00, 0x80, 0x40, 0x00, 0x03, 0x07, 0x0F, 0x8F, 0x13, 0x93, 0x01, 0xB0, 0x01, 0xE0, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0xE0, 0x02, 0x60, 0x04, 0x62, 0x08, 0x64, 0xF0, 0x7C, 0xE0, 0x30, 0x06, 0x06, 0x3F, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x81, 0x03, 0x82, 0x01, 0x82, 0x01, 0xC4, 0x01, 0xC4, 0x01, 0xC8, 0x00, 0xC8, 0x00, 0xD0, 0x00, 0xF0, 0x00, 0xE0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x78, 0x00, 0x70, 0x00, 0x1F, 0xFC, 0x7F, 0xE1, 0x01, 0x08, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x06, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x38, 0x01, 0xF0, 0x0B, 0xE0, 0x01, 0xC6, 0x03, 0x98, 0x03, 0x80, 0x00, 0x70, 0x0C, 0x01, 0x80, 0x38, 0x03, 0x80, 0x30, 0x07, 0x00, 0x70, 0x07, 0x00, 0x60, 0x0E, 0x00, 0xE0, 0x0C, 0x01, 0xC0, 0x1C, 0x07, 0x80, 0x30, 0x04, 0x00, 0x20, 0x03, 0x00, 0x30, 0x07, 0x00, 0x70, 0x06, 0x00, 0x60, 0x0E, 0x00, 0xE0, 0x0C, 0x00, 0xC0, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x03, 0x00, 0x30, 0x03, 0x00, 0x70, 0x07, 0x00, 0x70, 0x06, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0C, 0x00, 0x40, 0x04, 0x00, 0xC0, 0x1E, 0x03, 0x80, 0x38, 0x03, 0x00, 0x70, 0x07, 0x00, 0x70, 0x06, 0x00, 0xE0, 0x0E, 0x00, 0xC0, 0x1C, 0x01, 0x80, 0x70, 0x00, 0x1E, 0x00, 0x3F, 0xE1, 0xF8, 0x7F, 0xC0, 0x07, 0x80}; const GFXglyph FreeSerifItalic18pt7bGlyphs[] PROGMEM = { {0, 0, 0, 9, 0, 1}, // 0x20 ' ' {0, 10, 23, 12, 1, -22}, // 0x21 '!' {29, 12, 9, 12, 4, -22}, // 0x22 '"' {43, 19, 23, 17, 0, -22}, // 0x23 '#' {98, 15, 29, 17, 1, -25}, // 0x24 '$' {153, 25, 23, 29, 3, -22}, // 0x25 '%' {225, 22, 23, 27, 3, -22}, // 0x26 '&' {289, 5, 9, 7, 4, -22}, // 0x27 ''' {295, 9, 29, 12, 1, -22}, // 0x28 '(' {328, 9, 29, 12, 1, -22}, // 0x29 ')' {361, 12, 14, 18, 5, -22}, // 0x2A '*' {382, 16, 18, 24, 4, -17}, // 0x2B '+' {418, 5, 8, 9, -1, -2}, // 0x2C ',' {423, 8, 2, 12, 2, -8}, // 0x2D '-' {425, 4, 4, 9, 1, -3}, // 0x2E '.' {427, 16, 23, 10, 0, -22}, // 0x2F '/' {473, 17, 24, 17, 1, -23}, // 0x30 '0' {524, 12, 24, 17, 2, -23}, // 0x31 '1' {560, 16, 23, 17, 1, -22}, // 0x32 '2' {606, 17, 24, 18, 0, -23}, // 0x33 '3' {657, 17, 24, 17, 0, -23}, // 0x34 '4' {708, 16, 23, 18, 0, -22}, // 0x35 '5' {754, 17, 24, 18, 1, -23}, // 0x36 '6' {805, 16, 23, 17, 3, -22}, // 0x37 '7' {851, 16, 24, 18, 1, -23}, // 0x38 '8' {899, 16, 24, 17, 1, -23}, // 0x39 '9' {947, 7, 15, 9, 2, -14}, // 0x3A ':' {961, 9, 20, 9, 1, -14}, // 0x3B ';' {984, 18, 18, 20, 2, -17}, // 0x3C '<' {1025, 18, 9, 23, 3, -12}, // 0x3D '=' {1046, 18, 18, 20, 2, -17}, // 0x3E '>' {1087, 12, 23, 16, 4, -22}, // 0x3F '?' {1122, 24, 23, 27, 2, -22}, // 0x40 '@' {1191, 21, 23, 23, 0, -22}, // 0x41 'A' {1252, 21, 23, 21, 0, -22}, // 0x42 'B' {1313, 21, 23, 21, 2, -22}, // 0x43 'C' {1374, 25, 23, 25, 0, -22}, // 0x44 'D' {1446, 22, 23, 20, 0, -22}, // 0x45 'E' {1510, 22, 23, 20, 0, -22}, // 0x46 'F' {1574, 23, 23, 24, 2, -22}, // 0x47 'G' {1641, 27, 23, 25, 0, -22}, // 0x48 'H' {1719, 14, 23, 11, 0, -22}, // 0x49 'I' {1760, 17, 23, 15, 0, -22}, // 0x4A 'J' {1809, 25, 23, 22, 0, -22}, // 0x4B 'K' {1881, 20, 23, 20, 0, -22}, // 0x4C 'L' {1939, 31, 23, 29, 0, -22}, // 0x4D 'M' {2029, 26, 23, 24, 0, -22}, // 0x4E 'N' {2104, 23, 23, 23, 1, -22}, // 0x4F 'O' {2171, 22, 23, 20, 0, -22}, // 0x50 'P' {2235, 23, 29, 23, 1, -22}, // 0x51 'Q' {2319, 21, 23, 22, 0, -22}, // 0x52 'R' {2380, 17, 23, 16, 0, -22}, // 0x53 'S' {2429, 20, 23, 21, 3, -22}, // 0x54 'T' {2487, 23, 23, 25, 4, -22}, // 0x55 'U' {2554, 21, 23, 23, 5, -22}, // 0x56 'V' {2615, 29, 23, 31, 5, -22}, // 0x57 'W' {2699, 24, 23, 23, 0, -22}, // 0x58 'X' {2768, 19, 23, 21, 4, -22}, // 0x59 'Y' {2823, 22, 23, 20, 0, -22}, // 0x5A 'Z' {2887, 13, 28, 14, 1, -22}, // 0x5B '[' {2933, 12, 23, 17, 4, -22}, // 0x5C '\' {2968, 12, 28, 14, 1, -22}, // 0x5D ']' {3010, 15, 13, 15, 0, -22}, // 0x5E '^' {3035, 18, 2, 17, 0, 3}, // 0x5F '_' {3040, 6, 6, 9, 5, -22}, // 0x60 '`' {3045, 15, 15, 17, 1, -14}, // 0x61 'a' {3074, 16, 24, 17, 1, -23}, // 0x62 'b' {3122, 13, 15, 14, 1, -14}, // 0x63 'c' {3147, 17, 24, 18, 1, -23}, // 0x64 'd' {3198, 13, 15, 14, 1, -14}, // 0x65 'e' {3223, 20, 31, 15, -3, -23}, // 0x66 'f' {3301, 16, 22, 15, -1, -14}, // 0x67 'g' {3345, 16, 24, 17, 1, -23}, // 0x68 'h' {3393, 9, 23, 9, 1, -22}, // 0x69 'i' {3419, 15, 30, 10, -3, -22}, // 0x6A 'j' {3476, 15, 24, 16, 1, -23}, // 0x6B 'k' {3521, 8, 25, 9, 1, -23}, // 0x6C 'l' {3546, 24, 15, 25, 0, -14}, // 0x6D 'm' {3591, 17, 15, 17, 0, -14}, // 0x6E 'n' {3623, 15, 15, 17, 1, -14}, // 0x6F 'o' {3652, 20, 22, 16, -3, -14}, // 0x70 'p' {3707, 16, 22, 17, 1, -14}, // 0x71 'q' {3751, 13, 15, 13, 1, -14}, // 0x72 'r' {3776, 13, 15, 12, 0, -14}, // 0x73 's' {3801, 9, 18, 8, 1, -17}, // 0x74 't' {3822, 15, 15, 17, 1, -14}, // 0x75 'u' {3851, 14, 15, 16, 2, -14}, // 0x76 'v' {3878, 22, 15, 24, 1, -14}, // 0x77 'w' {3920, 16, 15, 15, -1, -14}, // 0x78 'x' {3950, 16, 22, 16, 0, -14}, // 0x79 'y' {3994, 14, 18, 14, 0, -14}, // 0x7A 'z' {4026, 12, 30, 14, 2, -23}, // 0x7B '{' {4071, 2, 23, 10, 4, -22}, // 0x7C '|' {4077, 12, 31, 14, 0, -24}, // 0x7D '}' {4124, 17, 4, 19, 1, -10}}; // 0x7E '~' const GFXfont FreeSerifItalic18pt7b PROGMEM = { (uint8_t *)FreeSerifItalic18pt7bBitmaps, (GFXglyph *)FreeSerifItalic18pt7bGlyphs, 0x20, 0x7E, 42}; // Approx. 4805 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifItalic24pt7b.h ================================================ const uint8_t FreeSerifItalic24pt7bBitmaps[] PROGMEM = { 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x01, 0xF0, 0x1E, 0x01, 0xE0, 0x1C, 0x01, 0xC0, 0x3C, 0x03, 0x80, 0x38, 0x03, 0x80, 0x30, 0x07, 0x00, 0x60, 0x06, 0x00, 0x60, 0x04, 0x00, 0x40, 0x0C, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xF8, 0x0F, 0x80, 0xF8, 0x07, 0x00, 0x38, 0x1D, 0xE0, 0x77, 0x83, 0xDC, 0x0E, 0x70, 0x39, 0xC1, 0xEE, 0x07, 0x38, 0x1C, 0xC0, 0x63, 0x01, 0x8C, 0x06, 0x20, 0x10, 0x00, 0x06, 0x03, 0x00, 0x07, 0x03, 0x80, 0x03, 0x81, 0xC0, 0x03, 0x81, 0xC0, 0x01, 0xC0, 0xE0, 0x00, 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0x70, 0x38, 0x00, 0x30, 0x18, 0x00, 0x38, 0x1C, 0x03, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF0, 0x0E, 0x07, 0x00, 0x06, 0x03, 0x00, 0x07, 0x03, 0x80, 0x03, 0x81, 0xC0, 0x03, 0x81, 0xC0, 0x01, 0xC0, 0xE0, 0x00, 0xE0, 0x70, 0x1F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0x80, 0x70, 0x38, 0x00, 0x38, 0x1C, 0x00, 0x1C, 0x0C, 0x00, 0x1C, 0x0E, 0x00, 0x0E, 0x07, 0x00, 0x0E, 0x07, 0x00, 0x07, 0x03, 0x80, 0x03, 0x81, 0xC0, 0x03, 0x81, 0xC0, 0x01, 0xC0, 0xE0, 0x00, 0x00, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0xFF, 0x80, 0x1C, 0x2F, 0x01, 0x83, 0x3C, 0x1C, 0x18, 0xE1, 0xC0, 0xC3, 0x0E, 0x06, 0x18, 0x70, 0x60, 0x83, 0x83, 0x04, 0x1E, 0x18, 0x00, 0xF8, 0xC0, 0x03, 0xEC, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x7F, 0x00, 0x03, 0x7C, 0x00, 0x19, 0xE0, 0x01, 0x87, 0x80, 0x0C, 0x3C, 0x00, 0x60, 0xE2, 0x03, 0x07, 0x10, 0x30, 0x39, 0x81, 0x81, 0xCE, 0x0C, 0x0C, 0x70, 0x60, 0xE3, 0xC6, 0x06, 0x0F, 0x30, 0x60, 0x1F, 0x9E, 0x00, 0x3F, 0x80, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x01, 0xF0, 0x00, 0xC0, 0x03, 0xFE, 0x01, 0xE0, 0x03, 0xC7, 0x83, 0xE0, 0x03, 0xC0, 0x7F, 0x60, 0x03, 0xC0, 0x20, 0x70, 0x01, 0xC0, 0x10, 0x30, 0x01, 0xE0, 0x08, 0x38, 0x00, 0xE0, 0x04, 0x18, 0x00, 0xF0, 0x02, 0x1C, 0x00, 0x70, 0x02, 0x0C, 0x00, 0x38, 0x01, 0x0E, 0x00, 0x1C, 0x01, 0x8E, 0x00, 0x0E, 0x00, 0x86, 0x00, 0x07, 0x00, 0x87, 0x03, 0xE1, 0x80, 0xC3, 0x07, 0xFC, 0xE1, 0xC3, 0x87, 0xC6, 0x3F, 0x81, 0x87, 0x81, 0x8F, 0x81, 0xC7, 0x80, 0x40, 0x00, 0xC3, 0xC0, 0x20, 0x00, 0xE3, 0xC0, 0x10, 0x00, 0x61, 0xC0, 0x08, 0x00, 0x61, 0xE0, 0x04, 0x00, 0x70, 0xF0, 0x06, 0x00, 0x30, 0x70, 0x02, 0x00, 0x38, 0x38, 0x03, 0x00, 0x18, 0x1C, 0x01, 0x00, 0x1C, 0x0E, 0x01, 0x80, 0x0C, 0x07, 0x01, 0x80, 0x0E, 0x01, 0xC3, 0x80, 0x06, 0x00, 0x7F, 0x80, 0x06, 0x00, 0x1F, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x71, 0xC0, 0x00, 0x01, 0xC3, 0x80, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x38, 0x38, 0x00, 0x01, 0xE0, 0xE0, 0x00, 0x07, 0x87, 0x00, 0x00, 0x1E, 0x18, 0x00, 0x00, 0x78, 0xC0, 0x00, 0x01, 0xE6, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x7F, 0xC1, 0xFE, 0x03, 0x9F, 0x03, 0xE0, 0x3C, 0x3C, 0x07, 0x01, 0xE0, 0xF8, 0x1C, 0x0F, 0x03, 0xE0, 0xE0, 0x7C, 0x07, 0x83, 0x01, 0xE0, 0x1F, 0x1C, 0x07, 0x80, 0x7C, 0x60, 0x3E, 0x00, 0xFB, 0x00, 0xF8, 0x03, 0xFC, 0x03, 0xE0, 0x07, 0xE0, 0x0F, 0x80, 0x1F, 0x00, 0x3F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xFC, 0x01, 0xF8, 0x0F, 0xF0, 0x03, 0xF0, 0xF3, 0xF0, 0x87, 0xFF, 0x07, 0xFC, 0x07, 0xF0, 0x07, 0xC0, 0x39, 0xDE, 0xE7, 0x3B, 0x9C, 0xC6, 0x31, 0x00, 0x00, 0x10, 0x01, 0x00, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x1C, 0x00, 0xC0, 0x0E, 0x00, 0xE0, 0x07, 0x00, 0x78, 0x03, 0x80, 0x3C, 0x01, 0xE0, 0x0E, 0x00, 0x70, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x01, 0x00, 0x0C, 0x00, 0x20, 0x00, 0x00, 0x80, 0x06, 0x00, 0x10, 0x00, 0x80, 0x06, 0x00, 0x30, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x38, 0x03, 0xC0, 0x1C, 0x00, 0xE0, 0x0E, 0x00, 0x60, 0x07, 0x00, 0x30, 0x03, 0x00, 0x30, 0x03, 0x00, 0x10, 0x01, 0x00, 0x00, 0x01, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0xE1, 0x07, 0xE1, 0x0F, 0xF1, 0x1F, 0x19, 0x30, 0x07, 0xC0, 0x03, 0x80, 0x0D, 0x60, 0x79, 0x3C, 0xF1, 0x1F, 0xE1, 0x0F, 0xE1, 0x07, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x7C, 0xF9, 0xF1, 0xE1, 0xC3, 0x0C, 0x10, 0xC1, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x78, 0x00, 0x03, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x03, 0x86, 0x00, 0x30, 0x18, 0x03, 0x00, 0xC0, 0x38, 0x03, 0x03, 0x80, 0x18, 0x38, 0x00, 0xC1, 0xC0, 0x07, 0x1C, 0x00, 0x38, 0xE0, 0x01, 0xCF, 0x00, 0x0E, 0x70, 0x00, 0x77, 0x80, 0x07, 0xBC, 0x00, 0x3D, 0xE0, 0x01, 0xEE, 0x00, 0x0F, 0xF0, 0x00, 0x77, 0x80, 0x07, 0xBC, 0x00, 0x3D, 0xC0, 0x01, 0xCE, 0x00, 0x1E, 0x70, 0x00, 0xF3, 0x80, 0x07, 0x1C, 0x00, 0x78, 0xE0, 0x03, 0x83, 0x00, 0x38, 0x18, 0x03, 0x80, 0xE0, 0x18, 0x03, 0x01, 0x80, 0x0C, 0x38, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0xC0, 0x3F, 0xE0, 0x01, 0xF0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3F, 0x01, 0xFF, 0xF0, 0x00, 0x3F, 0x00, 0x07, 0xFE, 0x00, 0x7F, 0xF8, 0x07, 0x07, 0xE0, 0x60, 0x1F, 0x06, 0x00, 0x7C, 0x20, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x30, 0x01, 0x03, 0x00, 0x08, 0x30, 0x00, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xE3, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0xC0, 0x06, 0x0F, 0x80, 0x30, 0x1E, 0x01, 0x80, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xF0, 0x00, 0x0E, 0x00, 0x01, 0xF8, 0x00, 0x3F, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x3E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x70, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x00, 0xC0, 0x70, 0x06, 0x03, 0xF8, 0x70, 0x07, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x70, 0x00, 0x03, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x37, 0x80, 0x00, 0xDC, 0x00, 0x06, 0x70, 0x00, 0x33, 0xC0, 0x01, 0x8F, 0x00, 0x0C, 0x38, 0x00, 0x60, 0xE0, 0x03, 0x07, 0x80, 0x18, 0x1E, 0x00, 0xC0, 0x70, 0x06, 0x03, 0xC0, 0x30, 0x0F, 0x01, 0x80, 0x38, 0x0C, 0x00, 0xE0, 0x70, 0x07, 0x81, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFE, 0x00, 0x0F, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x70, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0xFF, 0xF0, 0x07, 0xFF, 0x80, 0x10, 0x00, 0x00, 0x40, 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, 0x00, 0x70, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x70, 0x00, 0x01, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x70, 0x0E, 0x03, 0xF0, 0xE0, 0x07, 0xFF, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x3E, 0x00, 0x00, 0xF9, 0xF8, 0x01, 0xFF, 0xFC, 0x07, 0xE0, 0x7C, 0x0F, 0x80, 0x7C, 0x3E, 0x00, 0x78, 0x78, 0x00, 0x78, 0xF0, 0x00, 0xF3, 0xC0, 0x01, 0xE7, 0x80, 0x03, 0xCF, 0x00, 0x07, 0x9C, 0x00, 0x0F, 0x38, 0x00, 0x3E, 0x70, 0x00, 0x78, 0xE0, 0x00, 0xF1, 0xC0, 0x03, 0xC1, 0x80, 0x07, 0x83, 0x00, 0x1E, 0x03, 0x00, 0x38, 0x06, 0x01, 0xE0, 0x03, 0x07, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xFF, 0xF9, 0xFF, 0xFF, 0xCF, 0xFF, 0xFC, 0xE0, 0x00, 0xCC, 0x00, 0x0E, 0x40, 0x00, 0x60, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x01, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x78, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x03, 0x83, 0x80, 0x1C, 0x03, 0x00, 0xE0, 0x0E, 0x07, 0x00, 0x1C, 0x1C, 0x00, 0x70, 0x70, 0x01, 0xC1, 0xC0, 0x07, 0x07, 0x80, 0x1C, 0x1E, 0x00, 0xE0, 0x3C, 0x07, 0x80, 0xFC, 0x38, 0x01, 0xFB, 0xC0, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0xC0, 0x07, 0x1F, 0x80, 0x78, 0x3F, 0x03, 0x80, 0x7C, 0x1E, 0x00, 0xF8, 0x70, 0x01, 0xE3, 0x80, 0x03, 0xCE, 0x00, 0x07, 0x38, 0x00, 0x1C, 0xE0, 0x00, 0x73, 0x80, 0x01, 0xCE, 0x00, 0x06, 0x1C, 0x00, 0x38, 0x70, 0x01, 0xC0, 0xE0, 0x0E, 0x01, 0xE0, 0xE0, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0x80, 0x03, 0xC3, 0x00, 0x1C, 0x02, 0x00, 0xE0, 0x0C, 0x07, 0x00, 0x18, 0x3C, 0x00, 0x60, 0xE0, 0x01, 0xC7, 0x80, 0x07, 0x1E, 0x00, 0x1C, 0xF0, 0x00, 0x73, 0xC0, 0x01, 0xCF, 0x00, 0x07, 0x3C, 0x00, 0x3C, 0xF0, 0x00, 0xF3, 0xC0, 0x03, 0xCF, 0x00, 0x1E, 0x1E, 0x00, 0x78, 0x7C, 0x03, 0xE0, 0xF8, 0x3F, 0x01, 0xFF, 0xBC, 0x03, 0xF1, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x78, 0x00, 0x0F, 0x80, 0x00, 0xE0, 0x00, 0x00, 0x07, 0x07, 0xC3, 0xE1, 0xF0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3E, 0x1F, 0x0F, 0x83, 0x80, 0x01, 0xC0, 0x7C, 0x0F, 0x81, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x07, 0x80, 0xF8, 0x1F, 0x01, 0xE0, 0x1C, 0x03, 0x00, 0xC0, 0x18, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0xC0, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x07, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 0xF0, 0x06, 0x1C, 0x0C, 0x0E, 0x1C, 0x06, 0x1C, 0x07, 0x1C, 0x07, 0x1C, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x03, 0x00, 0x06, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0x70, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x3F, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x7C, 0x00, 0x07, 0x80, 0x7C, 0x00, 0x00, 0xE0, 0x3C, 0x00, 0x00, 0x38, 0x3C, 0x00, 0x00, 0x0C, 0x3C, 0x00, 0x78, 0x07, 0x1E, 0x00, 0xFE, 0xE1, 0x9E, 0x00, 0xF1, 0xF0, 0xEF, 0x00, 0xE0, 0xF0, 0x37, 0x80, 0xE0, 0x38, 0x1F, 0x80, 0x70, 0x1C, 0x0F, 0xC0, 0x70, 0x1E, 0x07, 0xE0, 0x38, 0x0F, 0x03, 0xF0, 0x18, 0x07, 0x01, 0xF8, 0x1C, 0x03, 0x80, 0xFC, 0x0E, 0x01, 0xC0, 0xDE, 0x07, 0x01, 0xE0, 0x6F, 0x03, 0x80, 0xE0, 0x73, 0xC1, 0xC0, 0xF0, 0x31, 0xE0, 0xF0, 0xF8, 0x30, 0xF0, 0x38, 0xDC, 0x30, 0x3C, 0x1F, 0xC7, 0xF0, 0x0E, 0x07, 0x81, 0xF0, 0x07, 0x80, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x03, 0xF0, 0x0F, 0x80, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x37, 0x80, 0x00, 0x03, 0x3C, 0x00, 0x00, 0x19, 0xE0, 0x00, 0x01, 0x8F, 0x80, 0x00, 0x08, 0x7C, 0x00, 0x00, 0xC3, 0xE0, 0x00, 0x0C, 0x0F, 0x00, 0x00, 0x60, 0x78, 0x00, 0x06, 0x03, 0xC0, 0x00, 0x20, 0x1F, 0x00, 0x03, 0x00, 0xF8, 0x00, 0x3F, 0xFF, 0xC0, 0x01, 0xFF, 0xFE, 0x00, 0x18, 0x00, 0xF0, 0x00, 0xC0, 0x07, 0x80, 0x0C, 0x00, 0x3E, 0x00, 0xE0, 0x01, 0xF0, 0x06, 0x00, 0x0F, 0x80, 0x70, 0x00, 0x3C, 0x03, 0x00, 0x01, 0xE0, 0x38, 0x00, 0x0F, 0x83, 0xC0, 0x00, 0x7C, 0x3E, 0x00, 0x07, 0xF3, 0xFC, 0x01, 0xFF, 0xE0, 0x03, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xE0, 0x3E, 0x00, 0x3E, 0x01, 0xF0, 0x03, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x78, 0x01, 0xF0, 0x07, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x7C, 0x00, 0xF0, 0x3F, 0x00, 0x1F, 0xFF, 0x80, 0x01, 0xFF, 0xFC, 0x00, 0x1F, 0x07, 0xE0, 0x01, 0xE0, 0x1F, 0x00, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x07, 0xC0, 0x3C, 0x00, 0x7C, 0x03, 0xC0, 0x07, 0xC0, 0x7C, 0x00, 0x7C, 0x07, 0xC0, 0x07, 0xC0, 0x78, 0x00, 0x7C, 0x0F, 0x80, 0x0F, 0x80, 0xF8, 0x00, 0xF8, 0x0F, 0x00, 0x1F, 0x00, 0xF0, 0x03, 0xE0, 0x1F, 0x81, 0xFC, 0x03, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x3F, 0xFF, 0xE0, 0x03, 0xF0, 0x1F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0xF0, 0x00, 0x78, 0x0F, 0x80, 0x00, 0xE0, 0x3C, 0x00, 0x03, 0x81, 0xF0, 0x00, 0x04, 0x0F, 0x80, 0x00, 0x10, 0x7C, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x02, 0x07, 0xC0, 0x00, 0x18, 0x0F, 0x80, 0x00, 0xC0, 0x3E, 0x00, 0x06, 0x00, 0x7C, 0x00, 0x70, 0x00, 0xFC, 0x07, 0x00, 0x00, 0xFF, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x3F, 0xFF, 0xE0, 0x00, 0x0F, 0xC0, 0xFC, 0x00, 0x07, 0xC0, 0x1F, 0x00, 0x03, 0xE0, 0x07, 0xC0, 0x01, 0xE0, 0x01, 0xF0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x07, 0xC0, 0x3E, 0x00, 0x03, 0xE0, 0x1F, 0x00, 0x01, 0xF0, 0x0F, 0x00, 0x00, 0xF8, 0x0F, 0x80, 0x00, 0x7C, 0x07, 0xC0, 0x00, 0x3E, 0x03, 0xE0, 0x00, 0x1F, 0x01, 0xE0, 0x00, 0x1F, 0x81, 0xF0, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0x07, 0xC0, 0x78, 0x00, 0x03, 0xE0, 0x3C, 0x00, 0x03, 0xE0, 0x3E, 0x00, 0x01, 0xF0, 0x1F, 0x00, 0x01, 0xF0, 0x0F, 0x00, 0x01, 0xF0, 0x0F, 0x80, 0x01, 0xF8, 0x07, 0xC0, 0x01, 0xF0, 0x03, 0xE0, 0x01, 0xF0, 0x01, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x0F, 0xE0, 0x01, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFE, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0xC0, 0x0F, 0x80, 0x1E, 0x00, 0x7C, 0x00, 0x30, 0x03, 0xE0, 0x01, 0x00, 0x1E, 0x00, 0x08, 0x01, 0xF0, 0x00, 0x40, 0x0F, 0x80, 0x00, 0x00, 0x78, 0x00, 0x00, 0x03, 0xC0, 0x10, 0x00, 0x3E, 0x01, 0x80, 0x01, 0xF0, 0x08, 0x00, 0x0F, 0x01, 0xC0, 0x00, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x3E, 0x07, 0x00, 0x01, 0xE0, 0x18, 0x00, 0x1F, 0x00, 0xC0, 0x00, 0xF8, 0x04, 0x00, 0x07, 0x80, 0x20, 0x00, 0x3C, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x08, 0x0F, 0x80, 0x00, 0xC0, 0x7C, 0x00, 0x0E, 0x03, 0xC0, 0x00, 0xE0, 0x1E, 0x00, 0x0F, 0x01, 0xF8, 0x03, 0xF8, 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x00, 0x03, 0xFF, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0xC0, 0x0F, 0x80, 0x1E, 0x00, 0x7C, 0x00, 0x30, 0x03, 0xE0, 0x01, 0x00, 0x1E, 0x00, 0x08, 0x01, 0xF0, 0x00, 0x40, 0x0F, 0x80, 0x02, 0x00, 0x7C, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x3E, 0x00, 0x80, 0x01, 0xF0, 0x0C, 0x00, 0x0F, 0x00, 0xC0, 0x00, 0xF8, 0x0E, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0x00, 0x01, 0xE0, 0x18, 0x00, 0x1F, 0x00, 0xC0, 0x00, 0xF8, 0x06, 0x00, 0x07, 0xC0, 0x20, 0x00, 0x3C, 0x01, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x01, 0xFE, 0x02, 0x00, 0x1F, 0xFF, 0x8C, 0x00, 0xFC, 0x07, 0xF8, 0x03, 0xE0, 0x03, 0xF0, 0x0F, 0x00, 0x03, 0xC0, 0x3C, 0x00, 0x03, 0x80, 0xF0, 0x00, 0x07, 0x03, 0xC0, 0x00, 0x0E, 0x0F, 0x80, 0x00, 0x08, 0x3E, 0x00, 0x00, 0x10, 0x7C, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x3F, 0xFF, 0xE0, 0x00, 0x0F, 0xE7, 0xC0, 0x00, 0x0F, 0x0F, 0x80, 0x00, 0x1E, 0x1F, 0x00, 0x00, 0x7C, 0x3E, 0x00, 0x00, 0xF0, 0x7C, 0x00, 0x01, 0xE0, 0x78, 0x00, 0x03, 0xC0, 0xF8, 0x00, 0x0F, 0x01, 0xF0, 0x00, 0x1E, 0x01, 0xF0, 0x00, 0x3C, 0x01, 0xE0, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x01, 0xF8, 0x0F, 0x80, 0x00, 0xFF, 0xFC, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x03, 0xFF, 0xE0, 0x7F, 0xF0, 0x07, 0xF8, 0x01, 0xFC, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x03, 0xC0, 0x01, 0xFF, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0xFF, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0xFF, 0xE0, 0x7F, 0xFC, 0x00, 0x01, 0xFF, 0xC0, 0x1F, 0xE0, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x0F, 0xE0, 0x0F, 0xFE, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x01, 0xC1, 0xE0, 0x07, 0xC7, 0x80, 0x0F, 0x8F, 0x00, 0x1F, 0x3C, 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xFF, 0xE1, 0xFF, 0x80, 0x3F, 0xC0, 0x1F, 0x80, 0x0F, 0x80, 0x0F, 0x00, 0x07, 0xC0, 0x0F, 0x00, 0x03, 0xC0, 0x0F, 0x00, 0x01, 0xE0, 0x0E, 0x00, 0x01, 0xF0, 0x0E, 0x00, 0x00, 0xF8, 0x0E, 0x00, 0x00, 0x78, 0x1C, 0x00, 0x00, 0x3C, 0x1C, 0x00, 0x00, 0x3E, 0x3C, 0x00, 0x00, 0x1F, 0x38, 0x00, 0x00, 0x0F, 0x38, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x03, 0xDF, 0x00, 0x00, 0x01, 0xE7, 0xC0, 0x00, 0x01, 0xF3, 0xE0, 0x00, 0x00, 0xF8, 0xF8, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x00, 0x3C, 0x1F, 0x00, 0x00, 0x3E, 0x07, 0xC0, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0x0F, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x3C, 0x00, 0x07, 0xC0, 0x1F, 0x00, 0x03, 0xC0, 0x07, 0x80, 0x01, 0xE0, 0x03, 0xE0, 0x01, 0xF0, 0x01, 0xF8, 0x01, 0xFC, 0x01, 0xFE, 0x03, 0xFF, 0xC3, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x08, 0x3C, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x41, 0xF0, 0x00, 0x18, 0x3C, 0x00, 0x07, 0x07, 0x80, 0x01, 0xC1, 0xF8, 0x01, 0xF8, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x0F, 0xC0, 0x00, 0x1F, 0xC0, 0x01, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x01, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0x00, 0x02, 0xF0, 0x00, 0x37, 0x80, 0x01, 0xBC, 0x00, 0x19, 0xE0, 0x00, 0x6F, 0x80, 0x0E, 0xF8, 0x00, 0x1B, 0xE0, 0x03, 0x3E, 0x00, 0x04, 0x78, 0x01, 0x8F, 0x00, 0x03, 0x1E, 0x00, 0xE7, 0xC0, 0x00, 0xC7, 0x80, 0x31, 0xF0, 0x00, 0x21, 0xE0, 0x18, 0x78, 0x00, 0x18, 0x78, 0x0E, 0x1E, 0x00, 0x06, 0x1E, 0x03, 0x0F, 0x80, 0x01, 0x87, 0x81, 0x83, 0xE0, 0x00, 0x41, 0xF0, 0xE0, 0xF0, 0x00, 0x30, 0x7C, 0x30, 0x3C, 0x00, 0x0C, 0x0F, 0x18, 0x1F, 0x00, 0x03, 0x03, 0xCE, 0x07, 0xC0, 0x01, 0x80, 0xF3, 0x01, 0xE0, 0x00, 0x60, 0x3D, 0x80, 0xF8, 0x00, 0x18, 0x0F, 0xE0, 0x3E, 0x00, 0x0C, 0x03, 0xF0, 0x0F, 0x00, 0x03, 0x00, 0xF8, 0x03, 0xC0, 0x00, 0xC0, 0x3E, 0x01, 0xF0, 0x00, 0x70, 0x0F, 0x00, 0x7C, 0x00, 0x1C, 0x01, 0x80, 0x3F, 0x00, 0x0F, 0x80, 0x60, 0x1F, 0xC0, 0x0F, 0xF8, 0x10, 0x1F, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x3F, 0xE0, 0x1F, 0xC0, 0x01, 0xF8, 0x00, 0xF8, 0x00, 0x1C, 0x00, 0x1F, 0x00, 0x03, 0x80, 0x03, 0xF0, 0x00, 0x60, 0x00, 0x7E, 0x00, 0x0C, 0x00, 0x0B, 0xE0, 0x03, 0x80, 0x03, 0x7C, 0x00, 0x60, 0x00, 0x67, 0x80, 0x0C, 0x00, 0x0C, 0xF8, 0x03, 0x80, 0x03, 0x0F, 0x00, 0x70, 0x00, 0x61, 0xF0, 0x0C, 0x00, 0x0C, 0x3E, 0x01, 0x80, 0x01, 0x83, 0xC0, 0x70, 0x00, 0x60, 0x7C, 0x0C, 0x00, 0x0C, 0x07, 0x81, 0x80, 0x01, 0x80, 0xF8, 0x30, 0x00, 0x60, 0x0F, 0x0E, 0x00, 0x0C, 0x01, 0xE1, 0x80, 0x01, 0x80, 0x3E, 0x30, 0x00, 0x30, 0x03, 0xCE, 0x00, 0x0C, 0x00, 0x7D, 0x80, 0x01, 0x80, 0x07, 0xB0, 0x00, 0x30, 0x00, 0xF6, 0x00, 0x0E, 0x00, 0x1F, 0xC0, 0x01, 0x80, 0x01, 0xF0, 0x00, 0x30, 0x00, 0x3E, 0x00, 0x0E, 0x00, 0x03, 0xC0, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x7C, 0x00, 0x06, 0x00, 0x3F, 0xE0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x01, 0xF0, 0x7C, 0x00, 0x0F, 0x00, 0x78, 0x00, 0x78, 0x00, 0xF0, 0x07, 0xC0, 0x03, 0xE0, 0x3E, 0x00, 0x07, 0x81, 0xF0, 0x00, 0x1E, 0x07, 0xC0, 0x00, 0x7C, 0x3E, 0x00, 0x01, 0xF1, 0xF0, 0x00, 0x07, 0xC7, 0xC0, 0x00, 0x1F, 0x3F, 0x00, 0x00, 0x7C, 0xF8, 0x00, 0x01, 0xF7, 0xE0, 0x00, 0x0F, 0xDF, 0x00, 0x00, 0x3F, 0x7C, 0x00, 0x00, 0xFB, 0xF0, 0x00, 0x07, 0xEF, 0xC0, 0x00, 0x1F, 0xBE, 0x00, 0x00, 0x7C, 0xF8, 0x00, 0x03, 0xF3, 0xE0, 0x00, 0x0F, 0x8F, 0x80, 0x00, 0x3E, 0x3E, 0x00, 0x01, 0xF0, 0xF8, 0x00, 0x0F, 0x81, 0xE0, 0x00, 0x3E, 0x07, 0x80, 0x01, 0xF0, 0x1F, 0x00, 0x0F, 0x80, 0x3C, 0x00, 0x7C, 0x00, 0x78, 0x03, 0xC0, 0x00, 0xF8, 0x3E, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x0F, 0x81, 0xF8, 0x00, 0x7C, 0x03, 0xE0, 0x03, 0xE0, 0x1F, 0x00, 0x1E, 0x00, 0x7C, 0x01, 0xF0, 0x03, 0xE0, 0x0F, 0x80, 0x1F, 0x00, 0x78, 0x00, 0xF8, 0x03, 0xC0, 0x07, 0xC0, 0x3E, 0x00, 0x3C, 0x01, 0xF0, 0x03, 0xE0, 0x0F, 0x00, 0x3E, 0x00, 0xF8, 0x03, 0xF0, 0x07, 0xC0, 0x7E, 0x00, 0x3F, 0xFF, 0xE0, 0x01, 0xEF, 0xF8, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0xF0, 0x7C, 0x00, 0x0F, 0x00, 0x78, 0x00, 0x78, 0x00, 0xF0, 0x03, 0xC0, 0x03, 0xE0, 0x1E, 0x00, 0x07, 0x80, 0xF0, 0x00, 0x1E, 0x07, 0xC0, 0x00, 0x7C, 0x3E, 0x00, 0x01, 0xF1, 0xF8, 0x00, 0x07, 0xC7, 0xC0, 0x00, 0x1F, 0x3F, 0x00, 0x00, 0x7C, 0xF8, 0x00, 0x01, 0xF7, 0xE0, 0x00, 0x0F, 0xDF, 0x80, 0x00, 0x3F, 0x7C, 0x00, 0x00, 0xFB, 0xF0, 0x00, 0x03, 0xEF, 0xC0, 0x00, 0x1F, 0xBE, 0x00, 0x00, 0x7C, 0xF8, 0x00, 0x01, 0xF3, 0xE0, 0x00, 0x0F, 0x8F, 0x80, 0x00, 0x3E, 0x3E, 0x00, 0x01, 0xF0, 0xF8, 0x00, 0x07, 0xC3, 0xE0, 0x00, 0x3E, 0x07, 0x80, 0x01, 0xF0, 0x1F, 0x00, 0x07, 0x80, 0x3C, 0x00, 0x3C, 0x00, 0xF8, 0x01, 0xE0, 0x01, 0xE0, 0x1E, 0x00, 0x01, 0xF3, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x04, 0x0F, 0xF0, 0x00, 0x60, 0x7F, 0xFC, 0x07, 0x03, 0xFF, 0xFF, 0xF8, 0x38, 0x1F, 0xFF, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x3E, 0x0F, 0xC0, 0x03, 0xE0, 0x3E, 0x00, 0x3E, 0x01, 0xF0, 0x03, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x78, 0x01, 0xF0, 0x07, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x7C, 0x00, 0xF0, 0x1F, 0x80, 0x1F, 0xFF, 0xE0, 0x01, 0xFF, 0xF0, 0x00, 0x1E, 0x1E, 0x00, 0x01, 0xE1, 0xE0, 0x00, 0x3E, 0x1F, 0x00, 0x03, 0xE0, 0xF0, 0x00, 0x3C, 0x0F, 0x00, 0x03, 0xC0, 0xF8, 0x00, 0x7C, 0x07, 0x80, 0x07, 0xC0, 0x7C, 0x00, 0x78, 0x03, 0xC0, 0x0F, 0x80, 0x3C, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x00, 0x1E, 0x00, 0xF0, 0x01, 0xE0, 0x1F, 0x00, 0x1F, 0x03, 0xF8, 0x00, 0xF8, 0xFF, 0xE0, 0x0F, 0xE0, 0x00, 0x3F, 0x06, 0x01, 0xFF, 0xDC, 0x07, 0xC1, 0xF0, 0x1E, 0x01, 0xE0, 0x3C, 0x01, 0xC0, 0xF0, 0x03, 0x81, 0xE0, 0x03, 0x03, 0xC0, 0x04, 0x07, 0x80, 0x08, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7C, 0x08, 0x00, 0x78, 0x10, 0x00, 0xF0, 0x20, 0x01, 0xE0, 0xC0, 0x03, 0xC1, 0x80, 0x07, 0x83, 0x80, 0x1E, 0x07, 0x00, 0x3C, 0x0F, 0x00, 0xF0, 0x1F, 0x87, 0xC0, 0x23, 0xFF, 0x00, 0x81, 0xF8, 0x00, 0x3F, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFD, 0xF0, 0x3E, 0x07, 0xB8, 0x07, 0xC0, 0x76, 0x00, 0xF8, 0x04, 0x80, 0x3E, 0x00, 0xB0, 0x07, 0xC0, 0x14, 0x00, 0xF8, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x7F, 0xFE, 0x03, 0xFE, 0x1F, 0xE0, 0x01, 0xF8, 0x1F, 0x80, 0x01, 0xC0, 0x3E, 0x00, 0x03, 0x80, 0x7C, 0x00, 0x07, 0x00, 0xF8, 0x00, 0x0C, 0x03, 0xE0, 0x00, 0x18, 0x07, 0xC0, 0x00, 0x70, 0x0F, 0x80, 0x00, 0xC0, 0x1F, 0x00, 0x01, 0x80, 0x7C, 0x00, 0x03, 0x00, 0xF8, 0x00, 0x0E, 0x01, 0xF0, 0x00, 0x18, 0x07, 0xC0, 0x00, 0x30, 0x0F, 0x80, 0x00, 0x60, 0x1F, 0x00, 0x01, 0x80, 0x3E, 0x00, 0x03, 0x00, 0xF8, 0x00, 0x06, 0x01, 0xF0, 0x00, 0x18, 0x03, 0xE0, 0x00, 0x30, 0x07, 0xC0, 0x00, 0x60, 0x1F, 0x00, 0x00, 0xC0, 0x3E, 0x00, 0x03, 0x00, 0x7C, 0x00, 0x06, 0x00, 0xF8, 0x00, 0x18, 0x01, 0xF0, 0x00, 0x30, 0x03, 0xE0, 0x00, 0xC0, 0x03, 0xE0, 0x03, 0x80, 0x03, 0xE0, 0x0E, 0x00, 0x03, 0xF0, 0x78, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0xE0, 0x0F, 0xF9, 0xFC, 0x00, 0x1F, 0x07, 0xC0, 0x00, 0x78, 0x3E, 0x00, 0x03, 0x81, 0xF0, 0x00, 0x18, 0x0F, 0x80, 0x01, 0xC0, 0x7C, 0x00, 0x0C, 0x01, 0xE0, 0x00, 0xC0, 0x0F, 0x80, 0x06, 0x00, 0x7C, 0x00, 0x60, 0x03, 0xE0, 0x07, 0x00, 0x1F, 0x00, 0x30, 0x00, 0xF8, 0x03, 0x00, 0x03, 0xC0, 0x18, 0x00, 0x1E, 0x01, 0x80, 0x00, 0xF8, 0x1C, 0x00, 0x07, 0xC0, 0xC0, 0x00, 0x3E, 0x0C, 0x00, 0x01, 0xF0, 0x60, 0x00, 0x07, 0x86, 0x00, 0x00, 0x3C, 0x30, 0x00, 0x01, 0xE3, 0x00, 0x00, 0x0F, 0xB0, 0x00, 0x00, 0x7D, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0xFF, 0xE3, 0xFF, 0x81, 0xFE, 0x7F, 0x01, 0xFC, 0x00, 0xF8, 0x7C, 0x01, 0xF0, 0x00, 0xE0, 0xF8, 0x03, 0xE0, 0x01, 0x81, 0xF0, 0x03, 0xC0, 0x07, 0x03, 0xE0, 0x07, 0x80, 0x0C, 0x03, 0xC0, 0x0F, 0x00, 0x18, 0x07, 0x80, 0x1E, 0x00, 0x60, 0x0F, 0x00, 0x7E, 0x00, 0xC0, 0x1F, 0x00, 0xFC, 0x03, 0x00, 0x3E, 0x03, 0xF8, 0x06, 0x00, 0x7C, 0x05, 0xF0, 0x18, 0x00, 0xF8, 0x1B, 0xE0, 0x30, 0x01, 0xF0, 0x33, 0xC0, 0xC0, 0x01, 0xE0, 0xC7, 0x83, 0x80, 0x03, 0xC1, 0x8F, 0x06, 0x00, 0x07, 0x86, 0x1E, 0x1C, 0x00, 0x0F, 0x0C, 0x3C, 0x30, 0x00, 0x1F, 0x30, 0x7C, 0xE0, 0x00, 0x3E, 0x60, 0xF9, 0x80, 0x00, 0x7D, 0x81, 0xF7, 0x00, 0x00, 0xFB, 0x03, 0xEC, 0x00, 0x01, 0xFC, 0x03, 0xF8, 0x00, 0x01, 0xF8, 0x07, 0xE0, 0x00, 0x03, 0xE0, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x1F, 0x00, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x78, 0x00, 0x00, 0x38, 0x00, 0xE0, 0x00, 0x00, 0x70, 0x01, 0xC0, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x80, 0x06, 0x00, 0x00, 0x07, 0xFF, 0x83, 0xFF, 0x01, 0xFE, 0x00, 0xFE, 0x00, 0x7C, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x70, 0x00, 0x3C, 0x00, 0xE0, 0x00, 0x3E, 0x01, 0xC0, 0x00, 0x3E, 0x01, 0x80, 0x00, 0x1F, 0x03, 0x00, 0x00, 0x1F, 0x07, 0x00, 0x00, 0x0F, 0x0E, 0x00, 0x00, 0x0F, 0x9C, 0x00, 0x00, 0x0F, 0xB8, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x1C, 0xF0, 0x00, 0x00, 0x38, 0xF8, 0x00, 0x00, 0x30, 0xF8, 0x00, 0x00, 0x60, 0x7C, 0x00, 0x00, 0xC0, 0x7C, 0x00, 0x01, 0xC0, 0x3C, 0x00, 0x03, 0x80, 0x3E, 0x00, 0x07, 0x00, 0x3E, 0x00, 0x0E, 0x00, 0x1F, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x7F, 0x00, 0x3F, 0xC0, 0xFF, 0xC1, 0xFF, 0xF0, 0x7F, 0xF0, 0x7F, 0xC7, 0xF0, 0x03, 0xE0, 0xF8, 0x00, 0x70, 0x3E, 0x00, 0x38, 0x07, 0x80, 0x0C, 0x01, 0xE0, 0x07, 0x00, 0x7C, 0x03, 0x80, 0x1F, 0x00, 0xC0, 0x03, 0xC0, 0x60, 0x00, 0xF0, 0x30, 0x00, 0x3E, 0x1C, 0x00, 0x07, 0x8E, 0x00, 0x01, 0xE3, 0x00, 0x00, 0x7D, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0x81, 0xF0, 0x00, 0xFC, 0x0E, 0x00, 0x0F, 0xC0, 0x60, 0x00, 0xFC, 0x06, 0x00, 0x0F, 0xC0, 0x20, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0xFC, 0x00, 0x08, 0x0F, 0xC0, 0x00, 0x80, 0xFC, 0x00, 0x0C, 0x07, 0xC0, 0x00, 0x60, 0x7E, 0x00, 0x07, 0x07, 0xE0, 0x01, 0xF0, 0x7F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x3C, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x07, 0x80, 0x03, 0xFC, 0x00, 0xF0, 0x00, 0x38, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xE0, 0x00, 0x70, 0x00, 0x3C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x78, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xF0, 0x00, 0x38, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xE0, 0x00, 0x70, 0x00, 0x3C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x78, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x80, 0x00, 0xFF, 0x80, 0x07, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0xF0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x01, 0xE0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x78, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0xF0, 0x00, 0x70, 0x00, 0x38, 0x03, 0xFC, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0x80, 0x03, 0xBC, 0x00, 0x39, 0xC0, 0x07, 0x1E, 0x00, 0x70, 0xE0, 0x0E, 0x0F, 0x00, 0xE0, 0x70, 0x1E, 0x07, 0x81, 0xC0, 0x38, 0x3C, 0x03, 0xC3, 0x80, 0x1C, 0x78, 0x01, 0xE7, 0x00, 0x0E, 0xF0, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x60, 0xF0, 0xF8, 0x78, 0x3C, 0x1E, 0x0E, 0x07, 0x00, 0x1E, 0x70, 0x03, 0x0B, 0x80, 0x70, 0x3C, 0x07, 0x01, 0xE0, 0x70, 0x0E, 0x07, 0x00, 0x70, 0x78, 0x03, 0x83, 0x80, 0x38, 0x3C, 0x01, 0xC1, 0xC0, 0x0E, 0x1E, 0x00, 0xF0, 0xF0, 0x07, 0x0F, 0x00, 0x78, 0x78, 0x03, 0xC3, 0xC0, 0x3E, 0x1E, 0x01, 0x70, 0xF0, 0x17, 0x0F, 0x81, 0x38, 0xBE, 0x11, 0xC8, 0xFF, 0x0F, 0x83, 0xF0, 0x70, 0x00, 0x00, 0xF0, 0x00, 0x7F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x78, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x0F, 0x80, 0x71, 0xFE, 0x03, 0x98, 0xF8, 0x3D, 0x03, 0xE1, 0xE8, 0x0F, 0x0E, 0x80, 0x78, 0x78, 0x03, 0xC7, 0xC0, 0x1E, 0x3C, 0x00, 0xF1, 0xE0, 0x0F, 0x1E, 0x00, 0x78, 0xF0, 0x03, 0xC7, 0x80, 0x3C, 0x38, 0x01, 0xE3, 0xC0, 0x1E, 0x1E, 0x00, 0xE0, 0xE0, 0x0E, 0x07, 0x00, 0xF0, 0x78, 0x07, 0x03, 0xC0, 0xE0, 0x0F, 0x0E, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x38, 0x60, 0x38, 0x1C, 0x1C, 0x0F, 0x0E, 0x03, 0x87, 0x80, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x02, 0x3E, 0x01, 0x87, 0x80, 0xC1, 0xF0, 0x60, 0x3F, 0xF0, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x78, 0x00, 0x1E, 0x78, 0x00, 0x71, 0x70, 0x00, 0xC1, 0x70, 0x03, 0x80, 0xF0, 0x07, 0x80, 0xE0, 0x07, 0x01, 0xE0, 0x0E, 0x01, 0xE0, 0x1E, 0x01, 0xE0, 0x3C, 0x01, 0xC0, 0x3C, 0x01, 0xC0, 0x78, 0x03, 0xC0, 0x78, 0x03, 0xC0, 0x78, 0x03, 0x80, 0xF0, 0x07, 0x80, 0xF0, 0x07, 0x80, 0xF0, 0x0F, 0x80, 0xF0, 0x0F, 0x00, 0xF0, 0x17, 0x08, 0xF0, 0x27, 0x10, 0x78, 0x47, 0x20, 0x7F, 0x87, 0xC0, 0x1E, 0x07, 0x00, 0x00, 0x1F, 0x00, 0x1C, 0xF0, 0x1C, 0x1C, 0x0E, 0x07, 0x07, 0x01, 0xC3, 0xC0, 0xF1, 0xE0, 0x38, 0x70, 0x1C, 0x3C, 0x0E, 0x1F, 0x0F, 0x07, 0x8F, 0x01, 0xFE, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x01, 0x3C, 0x00, 0xC7, 0x80, 0x61, 0xF0, 0x60, 0x3F, 0xF0, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x03, 0x1C, 0x00, 0x00, 0xC3, 0x80, 0x00, 0x38, 0x70, 0x00, 0x06, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x07, 0xFF, 0xC0, 0x00, 0xFF, 0xF8, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x70, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x01, 0x80, 0x00, 0x38, 0x60, 0x00, 0x07, 0x0C, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x07, 0x0E, 0x00, 0x70, 0x3E, 0x07, 0x01, 0xF0, 0x70, 0x0E, 0x07, 0x80, 0x70, 0x3C, 0x03, 0x81, 0xC0, 0x1C, 0x0E, 0x01, 0xE0, 0x70, 0x0E, 0x03, 0x80, 0xF0, 0x0E, 0x0F, 0x00, 0x30, 0xE0, 0x00, 0xFE, 0x00, 0x0C, 0x00, 0x00, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x7E, 0x00, 0x03, 0xFE, 0x00, 0x0F, 0xFC, 0x00, 0x8F, 0xF0, 0x18, 0x0F, 0xC1, 0x80, 0x1F, 0x18, 0x00, 0x78, 0xC0, 0x01, 0xC6, 0x00, 0x0E, 0x30, 0x00, 0x61, 0xC0, 0x07, 0x06, 0x00, 0x70, 0x1C, 0x0E, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0xF0, 0x00, 0x7F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x03, 0x80, 0x78, 0x7E, 0x03, 0x86, 0x70, 0x3C, 0x43, 0x81, 0xE4, 0x1C, 0x0E, 0x40, 0xE0, 0x74, 0x0E, 0x07, 0xA0, 0x70, 0x3E, 0x03, 0x81, 0xE0, 0x1C, 0x0F, 0x00, 0xE0, 0xF0, 0x0E, 0x07, 0x80, 0x70, 0x38, 0x03, 0x81, 0xC0, 0x1C, 0x1E, 0x00, 0xC2, 0xF0, 0x0E, 0x27, 0x00, 0x73, 0x38, 0x03, 0x93, 0xC0, 0x1F, 0x1E, 0x00, 0xE0, 0x03, 0x81, 0xF0, 0x7C, 0x1F, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xFC, 0x1F, 0x07, 0x81, 0xE0, 0x78, 0x1C, 0x07, 0x03, 0xC0, 0xF0, 0x38, 0x0E, 0x07, 0x81, 0xE0, 0x70, 0x1C, 0x0F, 0x03, 0x84, 0xE2, 0x39, 0x0F, 0x81, 0xC0, 0x00, 0x01, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x3F, 0xC0, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x01, 0xE0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x01, 0xC7, 0x00, 0x38, 0xC0, 0x07, 0x30, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x7F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0xFF, 0x83, 0x80, 0xF0, 0x3C, 0x06, 0x01, 0xE0, 0x60, 0x0E, 0x06, 0x00, 0x70, 0xE0, 0x07, 0x8C, 0x00, 0x3C, 0xC0, 0x01, 0xCC, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x07, 0x9E, 0x00, 0x38, 0xF0, 0x01, 0xC3, 0x80, 0x1E, 0x1E, 0x00, 0xF0, 0x70, 0x07, 0x03, 0xC2, 0x78, 0x0E, 0x13, 0xC0, 0x79, 0x1E, 0x01, 0xF0, 0x00, 0x07, 0x00, 0x00, 0xE1, 0xFC, 0x0F, 0x80, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x70, 0x1E, 0x03, 0xC0, 0x78, 0x0E, 0x03, 0xC0, 0x78, 0x0E, 0x01, 0xC0, 0x78, 0x0F, 0x01, 0xC0, 0x38, 0x4F, 0x11, 0xE4, 0x39, 0x07, 0xC0, 0x70, 0x00, 0x07, 0x81, 0xC0, 0x78, 0xFE, 0x0F, 0xC1, 0xF8, 0x3C, 0x33, 0x84, 0x70, 0x78, 0x87, 0x10, 0xE0, 0xF2, 0x0E, 0x41, 0xC1, 0xC8, 0x39, 0x07, 0x87, 0xA0, 0x74, 0x0F, 0x0F, 0x40, 0xE8, 0x1E, 0x1F, 0x01, 0xE0, 0x38, 0x3C, 0x07, 0xC0, 0xF0, 0xF8, 0x0F, 0x01, 0xE1, 0xE0, 0x1E, 0x03, 0xC3, 0xC0, 0x38, 0x07, 0x07, 0x00, 0xF0, 0x1E, 0x1E, 0x01, 0xE0, 0x3C, 0x3C, 0x03, 0x80, 0x79, 0x70, 0x07, 0x00, 0xE2, 0xE0, 0x1E, 0x03, 0x8B, 0xC0, 0x3C, 0x07, 0x27, 0x80, 0x70, 0x0F, 0x8E, 0x00, 0xE0, 0x1E, 0x00, 0x07, 0x81, 0xE3, 0xFC, 0x3F, 0x83, 0xC2, 0x3C, 0x1E, 0x21, 0xE0, 0xF2, 0x0F, 0x07, 0x20, 0x70, 0x39, 0x07, 0x83, 0xD0, 0x3C, 0x1F, 0x01, 0xE0, 0xE8, 0x0E, 0x0F, 0x80, 0xF0, 0x78, 0x07, 0x83, 0xC0, 0x38, 0x1C, 0x01, 0xC1, 0xE0, 0x1E, 0x0F, 0x00, 0xF1, 0x70, 0x07, 0x0B, 0x80, 0x38, 0xBC, 0x01, 0xC9, 0xE0, 0x0F, 0x8E, 0x00, 0x38, 0x00, 0x00, 0x1F, 0x80, 0x07, 0x8F, 0x00, 0x70, 0x3C, 0x07, 0x00, 0xE0, 0x70, 0x07, 0x87, 0x80, 0x3C, 0x78, 0x01, 0xE7, 0x80, 0x0F, 0x3C, 0x00, 0x7B, 0xC0, 0x03, 0xDE, 0x00, 0x3D, 0xF0, 0x01, 0xEF, 0x80, 0x0F, 0x78, 0x00, 0xF3, 0xC0, 0x07, 0x9E, 0x00, 0x78, 0xF0, 0x03, 0x87, 0x80, 0x38, 0x1C, 0x03, 0x80, 0xF0, 0x38, 0x03, 0xC3, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x3C, 0x3F, 0x00, 0x7F, 0x8F, 0xF0, 0x01, 0xF7, 0x3F, 0x00, 0x1D, 0x83, 0xF0, 0x07, 0xA0, 0x3E, 0x00, 0xF8, 0x07, 0xC0, 0x1E, 0x00, 0xF8, 0x03, 0xC0, 0x1F, 0x00, 0xF0, 0x03, 0xE0, 0x1E, 0x00, 0x7C, 0x03, 0xC0, 0x1F, 0x00, 0x70, 0x03, 0xE0, 0x1E, 0x00, 0x78, 0x03, 0xC0, 0x1F, 0x00, 0x70, 0x03, 0xC0, 0x0E, 0x00, 0xF8, 0x03, 0xC0, 0x1E, 0x00, 0x78, 0x07, 0x80, 0x0F, 0x01, 0xE0, 0x01, 0xE0, 0x70, 0x00, 0x7C, 0x3C, 0x00, 0x0F, 0x7C, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x03, 0x8D, 0xC0, 0x38, 0x2E, 0x07, 0x80, 0xF0, 0x78, 0x07, 0x03, 0x80, 0x38, 0x38, 0x03, 0xC3, 0xC0, 0x1E, 0x3C, 0x00, 0xE1, 0xE0, 0x07, 0x1E, 0x00, 0x78, 0xF0, 0x03, 0x87, 0x80, 0x3C, 0x78, 0x01, 0xE3, 0xC0, 0x1F, 0x1E, 0x01, 0x70, 0xF0, 0x17, 0x87, 0x80, 0xBC, 0x3C, 0x09, 0xC0, 0xF1, 0x8E, 0x07, 0xF8, 0xF0, 0x1F, 0x07, 0x80, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x3E, 0x00, 0x0F, 0xFE, 0x00, 0x07, 0x87, 0x3F, 0x87, 0xC3, 0xC7, 0xE1, 0xE6, 0xF0, 0xF6, 0x00, 0x72, 0x00, 0x3A, 0x00, 0x1D, 0x00, 0x1F, 0x00, 0x0E, 0x80, 0x07, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xF8, 0x81, 0x87, 0xC1, 0x80, 0xE1, 0xC0, 0x60, 0xE0, 0x10, 0x70, 0x08, 0x3C, 0x04, 0x1F, 0x00, 0x07, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x03, 0xC1, 0x01, 0xE0, 0x80, 0x70, 0x40, 0x38, 0x30, 0x1C, 0x38, 0x0C, 0x1C, 0x0E, 0x0F, 0x0E, 0x04, 0x7C, 0x00, 0x00, 0xC0, 0x18, 0x03, 0x80, 0x78, 0x1F, 0x03, 0xFF, 0x7F, 0xF0, 0xF0, 0x0E, 0x00, 0xE0, 0x1E, 0x01, 0xE0, 0x1C, 0x01, 0xC0, 0x3C, 0x03, 0xC0, 0x38, 0x03, 0x80, 0x78, 0x07, 0x80, 0x70, 0x8F, 0x10, 0xF1, 0x0F, 0x20, 0xFC, 0x07, 0x80, 0x00, 0x00, 0x00, 0xF0, 0x0E, 0x7F, 0x00, 0xE0, 0xF0, 0x1E, 0x0E, 0x01, 0xE1, 0xE0, 0x3C, 0x1E, 0x03, 0xC1, 0xE0, 0x3C, 0x1C, 0x07, 0xC3, 0xC0, 0x78, 0x3C, 0x0F, 0x83, 0xC0, 0xB8, 0x38, 0x1F, 0x87, 0x83, 0x70, 0x78, 0x27, 0x07, 0x86, 0x70, 0x70, 0xC7, 0x1F, 0x08, 0xE1, 0xE1, 0x0E, 0x2E, 0x60, 0xE4, 0xFC, 0x0F, 0x87, 0x00, 0x70, 0x1C, 0x03, 0xBF, 0x00, 0xF1, 0xE0, 0x3C, 0x78, 0x07, 0x1E, 0x00, 0xC3, 0x80, 0x30, 0xE0, 0x08, 0x38, 0x06, 0x0E, 0x01, 0x03, 0x80, 0xC0, 0xF0, 0x20, 0x3C, 0x10, 0x07, 0x04, 0x01, 0xC2, 0x00, 0x71, 0x00, 0x1C, 0xC0, 0x07, 0x60, 0x01, 0xF0, 0x00, 0x78, 0x00, 0x1C, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x0C, 0x00, 0x40, 0x3B, 0xF8, 0x01, 0x00, 0xF1, 0xE0, 0x0C, 0x03, 0xC3, 0x80, 0x78, 0x07, 0x0E, 0x01, 0xE0, 0x0C, 0x38, 0x0F, 0x80, 0x20, 0xE0, 0x6E, 0x00, 0x83, 0x81, 0x38, 0x04, 0x0F, 0x0C, 0xE0, 0x10, 0x1C, 0x23, 0x80, 0x80, 0x71, 0x8E, 0x06, 0x01, 0xCC, 0x38, 0x10, 0x07, 0x20, 0xE0, 0x80, 0x1D, 0x83, 0x86, 0x00, 0x7C, 0x07, 0x30, 0x01, 0xF0, 0x1C, 0x80, 0x07, 0x80, 0x74, 0x00, 0x1E, 0x01, 0xF0, 0x00, 0x70, 0x07, 0x80, 0x01, 0xC0, 0x1C, 0x00, 0x06, 0x00, 0x60, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0xE0, 0x38, 0x1F, 0x81, 0xF0, 0x8F, 0x09, 0x80, 0x3C, 0x40, 0x00, 0x72, 0x00, 0x01, 0xD0, 0x00, 0x07, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0x70, 0x00, 0x09, 0xC0, 0x00, 0x67, 0x00, 0x01, 0x1E, 0x10, 0x08, 0x38, 0x40, 0x40, 0xE2, 0x39, 0x03, 0xD0, 0xF8, 0x0F, 0x83, 0xC0, 0x1C, 0x00, 0x07, 0x80, 0x33, 0xFC, 0x03, 0xC1, 0xE0, 0x1E, 0x07, 0x80, 0x70, 0x3C, 0x01, 0x80, 0xE0, 0x0C, 0x07, 0x80, 0x40, 0x3C, 0x02, 0x00, 0xE0, 0x20, 0x07, 0x81, 0x00, 0x3C, 0x18, 0x01, 0xE0, 0x80, 0x07, 0x0C, 0x00, 0x38, 0x40, 0x01, 0xE4, 0x00, 0x0F, 0x60, 0x00, 0x3A, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x18, 0x00, 0x00, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x0E, 0x40, 0x00, 0x7C, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x0F, 0xFF, 0x87, 0xFF, 0x82, 0x00, 0x83, 0x00, 0xC1, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x20, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x1F, 0xC0, 0x1F, 0xF0, 0xE8, 0xFC, 0x70, 0x1E, 0x38, 0x03, 0x88, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0x80, 0x01, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x70, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x07, 0x80, 0x03, 0xC0, 0x07, 0xC0, 0x07, 0xC0, 0x00, 0x80, 0x00, 0x60, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0x80, 0x01, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, 0x70, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x18, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x38, 0x00, 0x18, 0x00, 0x08, 0x00, 0x1C, 0x00, 0x7E, 0x00, 0x78, 0x00, 0xF0, 0x00, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0xC0, 0x03, 0x80, 0x03, 0x80, 0x07, 0x80, 0x07, 0x80, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0xF8, 0x00, 0x1F, 0x80, 0x00, 0xFF, 0x80, 0xC7, 0xFF, 0x87, 0xBC, 0x3F, 0xFE, 0x60, 0x3F, 0xF0, 0x00, 0x1F, 0x00}; const GFXglyph FreeSerifItalic24pt7bGlyphs[] PROGMEM = { {0, 0, 0, 12, 0, 1}, // 0x20 ' ' {0, 12, 32, 16, 2, -30}, // 0x21 '!' {48, 14, 12, 16, 6, -31}, // 0x22 '"' {69, 25, 31, 23, 0, -30}, // 0x23 '#' {166, 21, 38, 24, 2, -33}, // 0x24 '$' {266, 33, 32, 39, 4, -30}, // 0x25 '%' {398, 30, 33, 37, 4, -31}, // 0x26 '&' {522, 5, 12, 9, 6, -31}, // 0x27 ''' {530, 13, 39, 16, 2, -30}, // 0x28 '(' {594, 13, 39, 16, 0, -30}, // 0x29 ')' {658, 16, 20, 23, 7, -31}, // 0x2A '*' {698, 23, 23, 32, 4, -22}, // 0x2B '+' {765, 7, 11, 12, -1, -4}, // 0x2C ',' {775, 11, 3, 16, 2, -11}, // 0x2D '-' {780, 5, 5, 12, 1, -3}, // 0x2E '.' {784, 21, 33, 14, 0, -31}, // 0x2F '/' {871, 21, 31, 23, 2, -30}, // 0x30 '0' {953, 17, 32, 23, 2, -31}, // 0x31 '1' {1021, 21, 31, 24, 0, -30}, // 0x32 '2' {1103, 22, 32, 23, 0, -31}, // 0x33 '3' {1191, 22, 32, 23, 0, -31}, // 0x34 '4' {1279, 22, 32, 24, 0, -31}, // 0x35 '5' {1367, 23, 32, 23, 1, -31}, // 0x36 '6' {1459, 21, 32, 23, 4, -31}, // 0x37 '7' {1543, 22, 32, 23, 1, -31}, // 0x38 '8' {1631, 22, 33, 23, 1, -31}, // 0x39 '9' {1722, 9, 22, 12, 2, -20}, // 0x3A ':' {1747, 11, 27, 12, 1, -20}, // 0x3B ';' {1785, 23, 25, 27, 3, -24}, // 0x3C '<' {1857, 24, 12, 31, 4, -17}, // 0x3D '=' {1893, 24, 25, 27, 3, -24}, // 0x3E '>' {1968, 16, 33, 21, 6, -31}, // 0x3F '?' {2034, 33, 33, 37, 3, -31}, // 0x40 '@' {2171, 29, 31, 31, 0, -30}, // 0x41 'A' {2284, 28, 31, 28, 0, -30}, // 0x42 'B' {2393, 30, 33, 29, 2, -31}, // 0x43 'C' {2517, 33, 31, 33, 0, -30}, // 0x44 'D' {2645, 29, 31, 27, 0, -30}, // 0x45 'E' {2758, 29, 31, 27, 0, -30}, // 0x46 'F' {2871, 31, 33, 32, 2, -31}, // 0x47 'G' {2999, 36, 31, 33, 0, -30}, // 0x48 'H' {3139, 18, 31, 15, 0, -30}, // 0x49 'I' {3209, 23, 32, 20, 0, -30}, // 0x4A 'J' {3301, 33, 31, 30, 0, -30}, // 0x4B 'K' {3429, 27, 31, 27, 0, -30}, // 0x4C 'L' {3534, 42, 31, 39, 0, -30}, // 0x4D 'M' {3697, 35, 32, 32, 0, -30}, // 0x4E 'N' {3837, 30, 33, 31, 2, -31}, // 0x4F 'O' {3961, 29, 31, 27, 0, -30}, // 0x50 'P' {4074, 30, 41, 31, 2, -31}, // 0x51 'Q' {4228, 28, 31, 29, 0, -30}, // 0x52 'R' {4337, 23, 33, 21, 0, -31}, // 0x53 'S' {4432, 27, 31, 28, 4, -30}, // 0x54 'T' {4537, 31, 32, 33, 5, -30}, // 0x55 'U' {4661, 29, 32, 31, 6, -30}, // 0x56 'V' {4777, 39, 32, 42, 6, -30}, // 0x57 'W' {4933, 32, 31, 31, 0, -30}, // 0x58 'X' {5057, 26, 31, 28, 5, -30}, // 0x59 'Y' {5158, 29, 31, 26, 0, -30}, // 0x5A 'Z' {5271, 17, 39, 18, 1, -31}, // 0x5B '[' {5354, 17, 33, 23, 5, -31}, // 0x5C '\' {5425, 17, 39, 18, 1, -31}, // 0x5D ']' {5508, 20, 17, 20, 0, -31}, // 0x5E '^' {5551, 24, 2, 23, 0, 5}, // 0x5F '_' {5557, 8, 8, 12, 6, -31}, // 0x60 '`' {5565, 21, 21, 23, 1, -20}, // 0x61 'a' {5621, 21, 33, 22, 1, -31}, // 0x62 'b' {5708, 18, 22, 19, 1, -20}, // 0x63 'c' {5758, 24, 33, 23, 1, -31}, // 0x64 'd' {5857, 18, 22, 19, 1, -20}, // 0x65 'e' {5907, 27, 42, 20, -4, -31}, // 0x66 'f' {6049, 21, 31, 21, -1, -20}, // 0x67 'g' {6131, 21, 32, 23, 1, -31}, // 0x68 'h' {6215, 10, 32, 12, 2, -30}, // 0x69 'i' {6255, 19, 41, 13, -3, -30}, // 0x6A 'j' {6353, 21, 33, 21, 1, -31}, // 0x6B 'k' {6440, 11, 33, 12, 2, -31}, // 0x6C 'l' {6486, 31, 21, 34, 1, -20}, // 0x6D 'm' {6568, 21, 21, 23, 1, -20}, // 0x6E 'n' {6624, 21, 22, 22, 1, -20}, // 0x6F 'o' {6682, 27, 31, 22, -4, -20}, // 0x70 'p' {6787, 21, 31, 23, 1, -20}, // 0x71 'q' {6869, 17, 21, 17, 1, -20}, // 0x72 'r' {6914, 17, 22, 16, 0, -20}, // 0x73 's' {6961, 12, 26, 11, 1, -24}, // 0x74 't' {7000, 20, 22, 23, 1, -20}, // 0x75 'u' {7055, 18, 22, 21, 3, -20}, // 0x76 'v' {7105, 30, 22, 32, 2, -20}, // 0x77 'w' {7188, 22, 22, 20, -1, -20}, // 0x78 'x' {7249, 21, 31, 22, 1, -20}, // 0x79 'y' {7331, 17, 24, 18, 0, -19}, // 0x7A 'z' {7382, 17, 40, 19, 2, -31}, // 0x7B '{' {7467, 3, 33, 13, 5, -31}, // 0x7C '|' {7480, 16, 41, 19, 0, -32}, // 0x7D '}' {7562, 22, 6, 25, 2, -14}}; // 0x7E '~' const GFXfont FreeSerifItalic24pt7b PROGMEM = { (uint8_t *)FreeSerifItalic24pt7bBitmaps, (GFXglyph *)FreeSerifItalic24pt7bGlyphs, 0x20, 0x7E, 56}; // Approx. 8251 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/FreeSerifItalic9pt7b.h ================================================ const uint8_t FreeSerifItalic9pt7bBitmaps[] PROGMEM = { 0x11, 0x12, 0x22, 0x24, 0x40, 0x0C, 0xDE, 0xE5, 0x40, 0x04, 0x82, 0x20, 0x98, 0x24, 0x7F, 0xC4, 0x82, 0x23, 0xFC, 0x24, 0x11, 0x04, 0x83, 0x20, 0x1C, 0x1B, 0x99, 0x4D, 0x26, 0x81, 0xC0, 0x70, 0x1C, 0x13, 0x49, 0xA4, 0xDA, 0xC7, 0xC1, 0x00, 0x80, 0x1C, 0x61, 0xCF, 0x0E, 0x28, 0x30, 0xA0, 0xC5, 0x03, 0x34, 0xE7, 0xAE, 0x40, 0xB1, 0x05, 0x84, 0x26, 0x20, 0x99, 0x84, 0x3C, 0x03, 0x80, 0x6C, 0x06, 0xC0, 0x78, 0x06, 0x01, 0xEF, 0x66, 0x24, 0x24, 0xC3, 0x8C, 0x10, 0xE3, 0x87, 0xCE, 0xFA, 0x08, 0x21, 0x08, 0x61, 0x8C, 0x30, 0xC3, 0x0C, 0x30, 0x41, 0x02, 0x00, 0x10, 0x40, 0x82, 0x0C, 0x30, 0xC3, 0x0C, 0x61, 0x84, 0x21, 0x08, 0x00, 0x30, 0xCA, 0x5E, 0x6A, 0x93, 0x08, 0x08, 0x04, 0x02, 0x01, 0x0F, 0xF8, 0x40, 0x20, 0x10, 0x08, 0x00, 0x56, 0xF0, 0xF0, 0x03, 0x02, 0x06, 0x04, 0x08, 0x08, 0x10, 0x30, 0x20, 0x60, 0x40, 0xC0, 0x0E, 0x0C, 0x8C, 0x6C, 0x36, 0x1F, 0x0F, 0x07, 0x87, 0xC3, 0x61, 0xB1, 0x88, 0x83, 0x80, 0x04, 0x70, 0xC3, 0x08, 0x21, 0x86, 0x10, 0x43, 0x08, 0xF8, 0x1C, 0x67, 0x83, 0x03, 0x02, 0x06, 0x0C, 0x08, 0x10, 0x20, 0x42, 0xFC, 0x0F, 0x08, 0xC0, 0x60, 0xC1, 0xE0, 0x38, 0x0C, 0x06, 0x03, 0x01, 0x01, 0x1F, 0x00, 0x01, 0x01, 0x81, 0x41, 0x61, 0x21, 0x11, 0x18, 0x88, 0xFF, 0x02, 0x03, 0x01, 0x00, 0x0F, 0x84, 0x04, 0x03, 0x80, 0x60, 0x18, 0x0C, 0x06, 0x03, 0x03, 0x03, 0x1E, 0x00, 0x01, 0x83, 0x87, 0x07, 0x03, 0x03, 0x73, 0xCD, 0x86, 0xC3, 0x61, 0xB1, 0x88, 0xC3, 0xC0, 0x7F, 0x40, 0x80, 0x80, 0x40, 0x40, 0x60, 0x20, 0x20, 0x10, 0x10, 0x18, 0x08, 0x00, 0x1E, 0x19, 0xCC, 0x66, 0x33, 0xB0, 0xE0, 0x50, 0xCC, 0xC3, 0x61, 0xB0, 0xCC, 0xC3, 0xC0, 0x0E, 0x19, 0x8C, 0x6C, 0x36, 0x1B, 0x0D, 0x86, 0xE6, 0x3F, 0x03, 0x03, 0x06, 0x0C, 0x00, 0x33, 0x00, 0x00, 0xCC, 0x33, 0x00, 0x00, 0x44, 0x48, 0x01, 0x83, 0x86, 0x1C, 0x0C, 0x03, 0x80, 0x30, 0x07, 0x00, 0x80, 0xFF, 0x80, 0x00, 0x00, 0x0F, 0xF8, 0xC0, 0x1C, 0x03, 0x80, 0x70, 0x18, 0x38, 0x70, 0xC0, 0x80, 0x00, 0x3C, 0x8C, 0x18, 0x30, 0xC3, 0x0C, 0x20, 0x40, 0x80, 0x06, 0x00, 0x0F, 0xC0, 0xC3, 0x0C, 0x04, 0xC7, 0xBC, 0x64, 0xE2, 0x27, 0x31, 0x39, 0x91, 0xCC, 0x93, 0x3B, 0x0E, 0x00, 0x1F, 0x80, 0x01, 0x00, 0x60, 0x14, 0x04, 0xC0, 0x98, 0x23, 0x07, 0xE1, 0x04, 0x20, 0x88, 0x1B, 0x8F, 0x80, 0x3F, 0xC1, 0x8C, 0x21, 0x8C, 0x31, 0x8C, 0x3E, 0x04, 0x61, 0x86, 0x30, 0xC4, 0x19, 0x86, 0x7F, 0x80, 0x07, 0x91, 0x86, 0x30, 0x26, 0x02, 0x60, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0x61, 0x83, 0xE0, 0x3F, 0xC0, 0x63, 0x82, 0x0C, 0x30, 0x31, 0x81, 0x8C, 0x0C, 0x40, 0x66, 0x07, 0x30, 0x31, 0x03, 0x18, 0x71, 0xFE, 0x00, 0x3F, 0xF0, 0xC2, 0x08, 0x21, 0x80, 0x19, 0x81, 0xF8, 0x11, 0x03, 0x10, 0x30, 0x02, 0x04, 0x60, 0x8F, 0xF8, 0x3F, 0xF0, 0xC2, 0x08, 0x21, 0x80, 0x19, 0x81, 0xF8, 0x11, 0x03, 0x10, 0x30, 0x02, 0x00, 0x60, 0x0F, 0x80, 0x07, 0x91, 0x87, 0x30, 0x26, 0x02, 0x60, 0x0C, 0x00, 0xC1, 0xFC, 0x0C, 0xC0, 0xCC, 0x0C, 0x60, 0x83, 0xF0, 0x3E, 0x3C, 0x30, 0x60, 0x81, 0x06, 0x0C, 0x18, 0x30, 0x7F, 0x81, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x81, 0x06, 0x0C, 0x3C, 0x78, 0x1E, 0x18, 0x20, 0xC1, 0x83, 0x04, 0x18, 0x30, 0x41, 0x87, 0x80, 0x0F, 0x81, 0x80, 0x80, 0xC0, 0x60, 0x20, 0x30, 0x18, 0x0C, 0x04, 0x36, 0x1E, 0x00, 0x3E, 0x78, 0x61, 0x82, 0x10, 0x31, 0x01, 0xB0, 0x0E, 0x00, 0x58, 0x06, 0x60, 0x33, 0x01, 0x0C, 0x18, 0x61, 0xE7, 0xC0, 0x3E, 0x01, 0x80, 0x20, 0x0C, 0x01, 0x80, 0x30, 0x04, 0x01, 0x80, 0x30, 0x04, 0x0D, 0x83, 0x7F, 0xE0, 0x1C, 0x07, 0x0C, 0x0E, 0x0C, 0x14, 0x14, 0x1C, 0x14, 0x2C, 0x16, 0x4C, 0x26, 0x48, 0x26, 0x98, 0x27, 0x18, 0x27, 0x10, 0x42, 0x30, 0xF4, 0x7C, 0x38, 0x78, 0x60, 0x83, 0x04, 0x2C, 0x41, 0x22, 0x09, 0x10, 0x4D, 0x84, 0x28, 0x21, 0x41, 0x06, 0x10, 0x21, 0xE1, 0x00, 0x07, 0x83, 0x18, 0xC1, 0xB0, 0x36, 0x07, 0xC0, 0xF0, 0x3E, 0x06, 0xC0, 0xD8, 0x31, 0x8C, 0x1E, 0x00, 0x3F, 0xC1, 0x9C, 0x21, 0x8C, 0x31, 0x86, 0x31, 0x87, 0xE1, 0x80, 0x30, 0x04, 0x01, 0x80, 0x78, 0x00, 0x07, 0x83, 0x18, 0xC1, 0x98, 0x36, 0x07, 0xC0, 0xF0, 0x1E, 0x06, 0xC0, 0xD8, 0x31, 0x04, 0x13, 0x01, 0x80, 0x70, 0xB7, 0xE0, 0x3F, 0xC1, 0x8C, 0x21, 0x8C, 0x31, 0x8C, 0x3F, 0x04, 0xC1, 0x98, 0x31, 0x84, 0x31, 0x86, 0x78, 0x70, 0x1E, 0x4C, 0x63, 0x08, 0xC0, 0x38, 0x07, 0x00, 0x60, 0x0C, 0x43, 0x10, 0xC6, 0x62, 0x70, 0x7F, 0xE9, 0x8E, 0x31, 0x04, 0x01, 0x80, 0x30, 0x06, 0x00, 0x80, 0x30, 0x06, 0x00, 0x80, 0x7E, 0x00, 0x7C, 0xF3, 0x02, 0x30, 0x46, 0x04, 0x60, 0x46, 0x04, 0x40, 0x8C, 0x08, 0xC0, 0x8C, 0x10, 0xE3, 0x03, 0xC0, 0xF8, 0xEC, 0x0C, 0x81, 0x18, 0x43, 0x08, 0x62, 0x0C, 0x81, 0x90, 0x14, 0x03, 0x00, 0x60, 0x08, 0x00, 0xFB, 0xCE, 0x43, 0x0C, 0x86, 0x11, 0x8C, 0x43, 0x38, 0x86, 0xB2, 0x0D, 0x24, 0x1C, 0x50, 0x38, 0xA0, 0x21, 0x80, 0x42, 0x01, 0x04, 0x00, 0x3E, 0x71, 0x82, 0x0C, 0x40, 0xC8, 0x07, 0x00, 0x60, 0x06, 0x00, 0xB0, 0x13, 0x02, 0x18, 0x61, 0x8F, 0x3E, 0xF9, 0xC8, 0x23, 0x10, 0xC8, 0x34, 0x05, 0x01, 0x80, 0x40, 0x30, 0x0C, 0x03, 0x03, 0xE0, 0x3F, 0xE4, 0x19, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0x40, 0x18, 0x06, 0x05, 0x81, 0x7F, 0xE0, 0x0E, 0x10, 0x20, 0x81, 0x02, 0x04, 0x10, 0x20, 0x40, 0x82, 0x04, 0x08, 0x1C, 0x00, 0x81, 0x04, 0x18, 0x20, 0xC1, 0x04, 0x08, 0x20, 0x41, 0x38, 0x20, 0x82, 0x08, 0x41, 0x04, 0x10, 0xC2, 0x08, 0x20, 0x8C, 0x00, 0x18, 0x18, 0x2C, 0x24, 0x46, 0x42, 0x83, 0xFF, 0x80, 0xD8, 0x80, 0x1F, 0x98, 0x98, 0x4C, 0x2C, 0x36, 0x33, 0x3A, 0xEE, 0x38, 0x08, 0x04, 0x02, 0x03, 0x71, 0xCC, 0xC6, 0xC3, 0x63, 0x21, 0x93, 0x8F, 0x00, 0x1F, 0x33, 0x60, 0xC0, 0xC0, 0xC0, 0xC4, 0x78, 0x01, 0x80, 0x40, 0x60, 0x20, 0xF1, 0x89, 0x8C, 0xC4, 0xC2, 0x63, 0x33, 0xAE, 0xE0, 0x0E, 0x65, 0x8B, 0x2F, 0x98, 0x31, 0x3C, 0x01, 0xE0, 0x40, 0x08, 0x02, 0x00, 0x40, 0x3E, 0x03, 0x00, 0x40, 0x08, 0x01, 0x00, 0x60, 0x0C, 0x01, 0x00, 0x20, 0x04, 0x01, 0x00, 0xC0, 0x00, 0x1E, 0x19, 0xD8, 0xCC, 0xE1, 0xC3, 0x01, 0xE0, 0xBC, 0x82, 0x41, 0x31, 0x0F, 0x00, 0x38, 0x08, 0x04, 0x02, 0x03, 0x39, 0x6C, 0xC6, 0x46, 0x63, 0x21, 0x11, 0xB8, 0xE0, 0x30, 0x00, 0xE2, 0x44, 0xC8, 0xCE, 0x06, 0x00, 0x00, 0x00, 0xC0, 0x83, 0x04, 0x08, 0x10, 0x60, 0x81, 0x02, 0x04, 0x70, 0x38, 0x10, 0x10, 0x10, 0x37, 0x22, 0x24, 0x38, 0x78, 0x48, 0x4D, 0xC6, 0x73, 0x32, 0x26, 0x64, 0x4C, 0xDE, 0x77, 0x39, 0x5E, 0xCC, 0xCC, 0xCE, 0x66, 0x62, 0x22, 0x11, 0x11, 0xB9, 0x8E, 0x77, 0x3B, 0x33, 0x62, 0x62, 0x42, 0x4D, 0xCE, 0x0F, 0x18, 0xD8, 0x7C, 0x3C, 0x3E, 0x1B, 0x18, 0xF0, 0x3B, 0x87, 0x31, 0x8C, 0x43, 0x31, 0x88, 0x62, 0x30, 0xF0, 0x60, 0x10, 0x04, 0x03, 0x80, 0x0F, 0x18, 0x98, 0x4C, 0x2C, 0x26, 0x33, 0x38, 0xEC, 0x04, 0x02, 0x03, 0x03, 0xC0, 0x76, 0x50, 0xC1, 0x06, 0x08, 0x10, 0x60, 0x1A, 0x6C, 0xC8, 0xC0, 0xD1, 0xB3, 0x5C, 0x23, 0xC8, 0xC4, 0x21, 0x18, 0xE0, 0xC3, 0x42, 0x42, 0xC6, 0x86, 0x8C, 0x9D, 0xEE, 0x62, 0xC4, 0x89, 0xA3, 0x47, 0x0C, 0x10, 0xE2, 0x2C, 0x44, 0xD8, 0x9D, 0x23, 0xA4, 0x65, 0x0C, 0xC1, 0x10, 0x19, 0x95, 0x43, 0x01, 0x80, 0xC0, 0xA0, 0x91, 0x8E, 0x70, 0x88, 0x46, 0x23, 0x20, 0x90, 0x50, 0x28, 0x18, 0x08, 0x08, 0x08, 0x18, 0x00, 0x3F, 0x42, 0x04, 0x08, 0x10, 0x20, 0x40, 0x72, 0x0E, 0x08, 0x61, 0x04, 0x30, 0x86, 0x08, 0x61, 0x04, 0x30, 0xC3, 0x8F, 0x00, 0xFF, 0xF0, 0x1E, 0x0C, 0x10, 0x20, 0xC1, 0x82, 0x04, 0x1C, 0x30, 0x40, 0x83, 0x04, 0x08, 0x20, 0x60, 0x99, 0x8E}; const GFXglyph FreeSerifItalic9pt7bGlyphs[] PROGMEM = { {0, 0, 0, 5, 0, 1}, // 0x20 ' ' {0, 4, 12, 6, 1, -11}, // 0x21 '!' {6, 5, 4, 6, 3, -11}, // 0x22 '"' {9, 10, 12, 9, 0, -11}, // 0x23 '#' {24, 9, 15, 9, 1, -12}, // 0x24 '$' {41, 14, 12, 15, 1, -11}, // 0x25 '%' {62, 12, 12, 14, 1, -11}, // 0x26 '&' {80, 2, 4, 4, 3, -11}, // 0x27 ''' {81, 6, 15, 6, 1, -11}, // 0x28 '(' {93, 6, 15, 6, 0, -11}, // 0x29 ')' {105, 6, 8, 9, 3, -11}, // 0x2A '*' {111, 9, 9, 12, 1, -8}, // 0x2B '+' {122, 2, 4, 5, 0, -1}, // 0x2C ',' {123, 4, 1, 6, 1, -3}, // 0x2D '-' {124, 2, 2, 5, 0, -1}, // 0x2E '.' {125, 8, 12, 5, 0, -11}, // 0x2F '/' {137, 9, 13, 9, 1, -12}, // 0x30 '0' {152, 6, 13, 9, 1, -12}, // 0x31 '1' {162, 8, 12, 9, 1, -11}, // 0x32 '2' {174, 9, 12, 9, 0, -11}, // 0x33 '3' {188, 9, 12, 9, 0, -11}, // 0x34 '4' {202, 9, 12, 9, 0, -11}, // 0x35 '5' {216, 9, 13, 9, 1, -12}, // 0x36 '6' {231, 9, 12, 9, 1, -11}, // 0x37 '7' {245, 9, 13, 9, 1, -12}, // 0x38 '8' {260, 9, 13, 9, 0, -12}, // 0x39 '9' {275, 4, 8, 4, 1, -7}, // 0x3A ':' {279, 4, 10, 4, 1, -7}, // 0x3B ';' {284, 9, 9, 10, 1, -8}, // 0x3C '<' {295, 9, 5, 12, 2, -6}, // 0x3D '=' {301, 9, 9, 10, 1, -8}, // 0x3E '>' {312, 7, 12, 8, 2, -11}, // 0x3F '?' {323, 13, 12, 14, 1, -11}, // 0x40 '@' {343, 11, 11, 12, 0, -10}, // 0x41 'A' {359, 11, 12, 11, 0, -11}, // 0x42 'B' {376, 12, 12, 11, 1, -11}, // 0x43 'C' {394, 13, 12, 13, 0, -11}, // 0x44 'D' {414, 12, 12, 10, 0, -11}, // 0x45 'E' {432, 12, 12, 10, 0, -11}, // 0x46 'F' {450, 12, 12, 12, 1, -11}, // 0x47 'G' {468, 14, 12, 13, 0, -11}, // 0x48 'H' {489, 7, 12, 6, 0, -11}, // 0x49 'I' {500, 9, 12, 8, 0, -11}, // 0x4A 'J' {514, 13, 12, 12, 0, -11}, // 0x4B 'K' {534, 11, 12, 10, 0, -11}, // 0x4C 'L' {551, 16, 12, 15, 0, -11}, // 0x4D 'M' {575, 13, 12, 12, 0, -11}, // 0x4E 'N' {595, 11, 12, 12, 1, -11}, // 0x4F 'O' {612, 11, 12, 10, 0, -11}, // 0x50 'P' {629, 11, 15, 12, 1, -11}, // 0x51 'Q' {650, 11, 12, 11, 0, -11}, // 0x52 'R' {667, 10, 12, 8, 0, -11}, // 0x53 'S' {682, 11, 12, 11, 2, -11}, // 0x54 'T' {699, 12, 12, 13, 2, -11}, // 0x55 'U' {717, 11, 12, 12, 2, -11}, // 0x56 'V' {734, 15, 12, 16, 2, -11}, // 0x57 'W' {757, 12, 12, 12, 0, -11}, // 0x58 'X' {775, 10, 12, 11, 2, -11}, // 0x59 'Y' {790, 11, 12, 10, 0, -11}, // 0x5A 'Z' {807, 7, 15, 7, 0, -11}, // 0x5B '[' {821, 6, 12, 9, 2, -11}, // 0x5C '\' {830, 6, 15, 7, 1, -11}, // 0x5D ']' {842, 8, 7, 8, 0, -11}, // 0x5E '^' {849, 9, 1, 9, 0, 2}, // 0x5F '_' {851, 3, 3, 5, 2, -11}, // 0x60 '`' {853, 9, 8, 9, 0, -7}, // 0x61 'a' {862, 9, 12, 9, 0, -11}, // 0x62 'b' {876, 8, 8, 7, 0, -7}, // 0x63 'c' {884, 9, 12, 9, 0, -11}, // 0x64 'd' {898, 7, 8, 7, 0, -7}, // 0x65 'e' {905, 11, 17, 8, -1, -12}, // 0x66 'f' {929, 9, 12, 8, 0, -7}, // 0x67 'g' {943, 9, 12, 9, 0, -11}, // 0x68 'h' {957, 4, 12, 4, 1, -11}, // 0x69 'i' {963, 7, 16, 5, -1, -11}, // 0x6A 'j' {977, 8, 12, 8, 0, -11}, // 0x6B 'k' {989, 4, 12, 5, 1, -11}, // 0x6C 'l' {995, 13, 8, 13, 0, -7}, // 0x6D 'm' {1008, 8, 8, 9, 0, -7}, // 0x6E 'n' {1016, 9, 8, 9, 0, -7}, // 0x6F 'o' {1025, 10, 12, 8, -1, -7}, // 0x70 'p' {1040, 9, 12, 9, 0, -7}, // 0x71 'q' {1054, 7, 8, 7, 0, -7}, // 0x72 'r' {1061, 7, 8, 6, 0, -7}, // 0x73 's' {1068, 5, 9, 4, 0, -8}, // 0x74 't' {1074, 8, 8, 9, 1, -7}, // 0x75 'u' {1082, 7, 8, 8, 1, -7}, // 0x76 'v' {1089, 11, 8, 12, 1, -7}, // 0x77 'w' {1100, 9, 8, 8, -1, -7}, // 0x78 'x' {1109, 9, 12, 9, 0, -7}, // 0x79 'y' {1123, 8, 9, 7, 0, -7}, // 0x7A 'z' {1132, 6, 15, 7, 1, -11}, // 0x7B '{' {1144, 1, 12, 5, 2, -11}, // 0x7C '|' {1146, 7, 16, 7, 0, -12}, // 0x7D '}' {1160, 8, 3, 10, 1, -5}}; // 0x7E '~' const GFXfont FreeSerifItalic9pt7b PROGMEM = { (uint8_t *)FreeSerifItalic9pt7bBitmaps, (GFXglyph *)FreeSerifItalic9pt7bGlyphs, 0x20, 0x7E, 22}; // Approx. 1835 bytes ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/TomThumb.h ================================================ /** ** The original 3x5 font is licensed under the 3-clause BSD license: ** ** Copyright 1999 Brian J. Swetland ** Copyright 1999 Vassilii Khachaturov ** Portions (of vt100.c/vt100.h) copyright Dan Marks ** ** All rights reserved. ** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions ** are met: ** 1. Redistributions of source code must retain the above copyright ** notice, this list of conditions, and the following disclaimer. ** 2. Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions, and the following disclaimer in the ** documentation and/or other materials provided with the distribution. ** 3. The name of the authors may not be used to endorse or promote products ** derived from this software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ** ** Modifications to Tom Thumb for improved readability are from Robey Pointer, ** see: ** http://robey.lag.net/2010/01/23/tiny-monospace-font.html ** ** The original author does not have any objection to relicensing of Robey ** Pointer's modifications (in this file) in a more permissive license. See ** the discussion at the above blog, and also here: ** http://opengameart.org/forumtopic/how-to-submit-art-using-the-3-clause-bsd-license ** ** Feb 21, 2016: Conversion from Linux BDF --> Adafruit GFX font, ** with the help of this Python script: ** https://gist.github.com/skelliam/322d421f028545f16f6d ** William Skellenger (williamj@skellenger.net) ** Twitter: @skelliam ** */ #define TOMTHUMB_USE_EXTENDED 0 const uint8_t TomThumbBitmaps[] PROGMEM = { 0x00, /* 0x20 space */ 0x80, 0x80, 0x80, 0x00, 0x80, /* 0x21 exclam */ 0xA0, 0xA0, /* 0x22 quotedbl */ 0xA0, 0xE0, 0xA0, 0xE0, 0xA0, /* 0x23 numbersign */ 0x60, 0xC0, 0x60, 0xC0, 0x40, /* 0x24 dollar */ 0x80, 0x20, 0x40, 0x80, 0x20, /* 0x25 percent */ 0xC0, 0xC0, 0xE0, 0xA0, 0x60, /* 0x26 ampersand */ 0x80, 0x80, /* 0x27 quotesingle */ 0x40, 0x80, 0x80, 0x80, 0x40, /* 0x28 parenleft */ 0x80, 0x40, 0x40, 0x40, 0x80, /* 0x29 parenright */ 0xA0, 0x40, 0xA0, /* 0x2A asterisk */ 0x40, 0xE0, 0x40, /* 0x2B plus */ 0x40, 0x80, /* 0x2C comma */ 0xE0, /* 0x2D hyphen */ 0x80, /* 0x2E period */ 0x20, 0x20, 0x40, 0x80, 0x80, /* 0x2F slash */ 0x60, 0xA0, 0xA0, 0xA0, 0xC0, /* 0x30 zero */ 0x40, 0xC0, 0x40, 0x40, 0x40, /* 0x31 one */ 0xC0, 0x20, 0x40, 0x80, 0xE0, /* 0x32 two */ 0xC0, 0x20, 0x40, 0x20, 0xC0, /* 0x33 three */ 0xA0, 0xA0, 0xE0, 0x20, 0x20, /* 0x34 four */ 0xE0, 0x80, 0xC0, 0x20, 0xC0, /* 0x35 five */ 0x60, 0x80, 0xE0, 0xA0, 0xE0, /* 0x36 six */ 0xE0, 0x20, 0x40, 0x80, 0x80, /* 0x37 seven */ 0xE0, 0xA0, 0xE0, 0xA0, 0xE0, /* 0x38 eight */ 0xE0, 0xA0, 0xE0, 0x20, 0xC0, /* 0x39 nine */ 0x80, 0x00, 0x80, /* 0x3A colon */ 0x40, 0x00, 0x40, 0x80, /* 0x3B semicolon */ 0x20, 0x40, 0x80, 0x40, 0x20, /* 0x3C less */ 0xE0, 0x00, 0xE0, /* 0x3D equal */ 0x80, 0x40, 0x20, 0x40, 0x80, /* 0x3E greater */ 0xE0, 0x20, 0x40, 0x00, 0x40, /* 0x3F question */ 0x40, 0xA0, 0xE0, 0x80, 0x60, /* 0x40 at */ 0x40, 0xA0, 0xE0, 0xA0, 0xA0, /* 0x41 A */ 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, /* 0x42 B */ 0x60, 0x80, 0x80, 0x80, 0x60, /* 0x43 C */ 0xC0, 0xA0, 0xA0, 0xA0, 0xC0, /* 0x44 D */ 0xE0, 0x80, 0xE0, 0x80, 0xE0, /* 0x45 E */ 0xE0, 0x80, 0xE0, 0x80, 0x80, /* 0x46 F */ 0x60, 0x80, 0xE0, 0xA0, 0x60, /* 0x47 G */ 0xA0, 0xA0, 0xE0, 0xA0, 0xA0, /* 0x48 H */ 0xE0, 0x40, 0x40, 0x40, 0xE0, /* 0x49 I */ 0x20, 0x20, 0x20, 0xA0, 0x40, /* 0x4A J */ 0xA0, 0xA0, 0xC0, 0xA0, 0xA0, /* 0x4B K */ 0x80, 0x80, 0x80, 0x80, 0xE0, /* 0x4C L */ 0xA0, 0xE0, 0xE0, 0xA0, 0xA0, /* 0x4D M */ 0xA0, 0xE0, 0xE0, 0xE0, 0xA0, /* 0x4E N */ 0x40, 0xA0, 0xA0, 0xA0, 0x40, /* 0x4F O */ 0xC0, 0xA0, 0xC0, 0x80, 0x80, /* 0x50 P */ 0x40, 0xA0, 0xA0, 0xE0, 0x60, /* 0x51 Q */ 0xC0, 0xA0, 0xE0, 0xC0, 0xA0, /* 0x52 R */ 0x60, 0x80, 0x40, 0x20, 0xC0, /* 0x53 S */ 0xE0, 0x40, 0x40, 0x40, 0x40, /* 0x54 T */ 0xA0, 0xA0, 0xA0, 0xA0, 0x60, /* 0x55 U */ 0xA0, 0xA0, 0xA0, 0x40, 0x40, /* 0x56 V */ 0xA0, 0xA0, 0xE0, 0xE0, 0xA0, /* 0x57 W */ 0xA0, 0xA0, 0x40, 0xA0, 0xA0, /* 0x58 X */ 0xA0, 0xA0, 0x40, 0x40, 0x40, /* 0x59 Y */ 0xE0, 0x20, 0x40, 0x80, 0xE0, /* 0x5A Z */ 0xE0, 0x80, 0x80, 0x80, 0xE0, /* 0x5B bracketleft */ 0x80, 0x40, 0x20, /* 0x5C backslash */ 0xE0, 0x20, 0x20, 0x20, 0xE0, /* 0x5D bracketright */ 0x40, 0xA0, /* 0x5E asciicircum */ 0xE0, /* 0x5F underscore */ 0x80, 0x40, /* 0x60 grave */ 0xC0, 0x60, 0xA0, 0xE0, /* 0x61 a */ 0x80, 0xC0, 0xA0, 0xA0, 0xC0, /* 0x62 b */ 0x60, 0x80, 0x80, 0x60, /* 0x63 c */ 0x20, 0x60, 0xA0, 0xA0, 0x60, /* 0x64 d */ 0x60, 0xA0, 0xC0, 0x60, /* 0x65 e */ 0x20, 0x40, 0xE0, 0x40, 0x40, /* 0x66 f */ 0x60, 0xA0, 0xE0, 0x20, 0x40, /* 0x67 g */ 0x80, 0xC0, 0xA0, 0xA0, 0xA0, /* 0x68 h */ 0x80, 0x00, 0x80, 0x80, 0x80, /* 0x69 i */ 0x20, 0x00, 0x20, 0x20, 0xA0, 0x40, /* 0x6A j */ 0x80, 0xA0, 0xC0, 0xC0, 0xA0, /* 0x6B k */ 0xC0, 0x40, 0x40, 0x40, 0xE0, /* 0x6C l */ 0xE0, 0xE0, 0xE0, 0xA0, /* 0x6D m */ 0xC0, 0xA0, 0xA0, 0xA0, /* 0x6E n */ 0x40, 0xA0, 0xA0, 0x40, /* 0x6F o */ 0xC0, 0xA0, 0xA0, 0xC0, 0x80, /* 0x70 p */ 0x60, 0xA0, 0xA0, 0x60, 0x20, /* 0x71 q */ 0x60, 0x80, 0x80, 0x80, /* 0x72 r */ 0x60, 0xC0, 0x60, 0xC0, /* 0x73 s */ 0x40, 0xE0, 0x40, 0x40, 0x60, /* 0x74 t */ 0xA0, 0xA0, 0xA0, 0x60, /* 0x75 u */ 0xA0, 0xA0, 0xE0, 0x40, /* 0x76 v */ 0xA0, 0xE0, 0xE0, 0xE0, /* 0x77 w */ 0xA0, 0x40, 0x40, 0xA0, /* 0x78 x */ 0xA0, 0xA0, 0x60, 0x20, 0x40, /* 0x79 y */ 0xE0, 0x60, 0xC0, 0xE0, /* 0x7A z */ 0x60, 0x40, 0x80, 0x40, 0x60, /* 0x7B braceleft */ 0x80, 0x80, 0x00, 0x80, 0x80, /* 0x7C bar */ 0xC0, 0x40, 0x20, 0x40, 0xC0, /* 0x7D braceright */ 0x60, 0xC0, /* 0x7E asciitilde */ #if (TOMTHUMB_USE_EXTENDED) 0x80, 0x00, 0x80, 0x80, 0x80, /* 0xA1 exclamdown */ 0x40, 0xE0, 0x80, 0xE0, 0x40, /* 0xA2 cent */ 0x60, 0x40, 0xE0, 0x40, 0xE0, /* 0xA3 sterling */ 0xA0, 0x40, 0xE0, 0x40, 0xA0, /* 0xA4 currency */ 0xA0, 0xA0, 0x40, 0xE0, 0x40, /* 0xA5 yen */ 0x80, 0x80, 0x00, 0x80, 0x80, /* 0xA6 brokenbar */ 0x60, 0x40, 0xA0, 0x40, 0xC0, /* 0xA7 section */ 0xA0, /* 0xA8 dieresis */ 0x60, 0x80, 0x60, /* 0xA9 copyright */ 0x60, 0xA0, 0xE0, 0x00, 0xE0, /* 0xAA ordfeminine */ 0x40, 0x80, 0x40, /* 0xAB guillemotleft */ 0xE0, 0x20, /* 0xAC logicalnot */ 0xC0, /* 0xAD softhyphen */ 0xC0, 0xC0, 0xA0, /* 0xAE registered */ 0xE0, /* 0xAF macron */ 0x40, 0xA0, 0x40, /* 0xB0 degree */ 0x40, 0xE0, 0x40, 0x00, 0xE0, /* 0xB1 plusminus */ 0xC0, 0x40, 0x60, /* 0xB2 twosuperior */ 0xE0, 0x60, 0xE0, /* 0xB3 threesuperior */ 0x40, 0x80, /* 0xB4 acute */ 0xA0, 0xA0, 0xA0, 0xC0, 0x80, /* 0xB5 mu */ 0x60, 0xA0, 0x60, 0x60, 0x60, /* 0xB6 paragraph */ 0xE0, 0xE0, 0xE0, /* 0xB7 periodcentered */ 0x40, 0x20, 0xC0, /* 0xB8 cedilla */ 0x80, 0x80, 0x80, /* 0xB9 onesuperior */ 0x40, 0xA0, 0x40, 0x00, 0xE0, /* 0xBA ordmasculine */ 0x80, 0x40, 0x80, /* 0xBB guillemotright */ 0x80, 0x80, 0x00, 0x60, 0x20, /* 0xBC onequarter */ 0x80, 0x80, 0x00, 0xC0, 0x60, /* 0xBD onehalf */ 0xC0, 0xC0, 0x00, 0x60, 0x20, /* 0xBE threequarters */ 0x40, 0x00, 0x40, 0x80, 0xE0, /* 0xBF questiondown */ 0x40, 0x20, 0x40, 0xE0, 0xA0, /* 0xC0 Agrave */ 0x40, 0x80, 0x40, 0xE0, 0xA0, /* 0xC1 Aacute */ 0xE0, 0x00, 0x40, 0xE0, 0xA0, /* 0xC2 Acircumflex */ 0x60, 0xC0, 0x40, 0xE0, 0xA0, /* 0xC3 Atilde */ 0xA0, 0x40, 0xA0, 0xE0, 0xA0, /* 0xC4 Adieresis */ 0xC0, 0xC0, 0xA0, 0xE0, 0xA0, /* 0xC5 Aring */ 0x60, 0xC0, 0xE0, 0xC0, 0xE0, /* 0xC6 AE */ 0x60, 0x80, 0x80, 0x60, 0x20, 0x40, /* 0xC7 Ccedilla */ 0x40, 0x20, 0xE0, 0xC0, 0xE0, /* 0xC8 Egrave */ 0x40, 0x80, 0xE0, 0xC0, 0xE0, /* 0xC9 Eacute */ 0xE0, 0x00, 0xE0, 0xC0, 0xE0, /* 0xCA Ecircumflex */ 0xA0, 0x00, 0xE0, 0xC0, 0xE0, /* 0xCB Edieresis */ 0x40, 0x20, 0xE0, 0x40, 0xE0, /* 0xCC Igrave */ 0x40, 0x80, 0xE0, 0x40, 0xE0, /* 0xCD Iacute */ 0xE0, 0x00, 0xE0, 0x40, 0xE0, /* 0xCE Icircumflex */ 0xA0, 0x00, 0xE0, 0x40, 0xE0, /* 0xCF Idieresis */ 0xC0, 0xA0, 0xE0, 0xA0, 0xC0, /* 0xD0 Eth */ 0xC0, 0x60, 0xA0, 0xE0, 0xA0, /* 0xD1 Ntilde */ 0x40, 0x20, 0xE0, 0xA0, 0xE0, /* 0xD2 Ograve */ 0x40, 0x80, 0xE0, 0xA0, 0xE0, /* 0xD3 Oacute */ 0xE0, 0x00, 0xE0, 0xA0, 0xE0, /* 0xD4 Ocircumflex */ 0xC0, 0x60, 0xE0, 0xA0, 0xE0, /* 0xD5 Otilde */ 0xA0, 0x00, 0xE0, 0xA0, 0xE0, /* 0xD6 Odieresis */ 0xA0, 0x40, 0xA0, /* 0xD7 multiply */ 0x60, 0xA0, 0xE0, 0xA0, 0xC0, /* 0xD8 Oslash */ 0x80, 0x40, 0xA0, 0xA0, 0xE0, /* 0xD9 Ugrave */ 0x20, 0x40, 0xA0, 0xA0, 0xE0, /* 0xDA Uacute */ 0xE0, 0x00, 0xA0, 0xA0, 0xE0, /* 0xDB Ucircumflex */ 0xA0, 0x00, 0xA0, 0xA0, 0xE0, /* 0xDC Udieresis */ 0x20, 0x40, 0xA0, 0xE0, 0x40, /* 0xDD Yacute */ 0x80, 0xE0, 0xA0, 0xE0, 0x80, /* 0xDE Thorn */ 0x60, 0xA0, 0xC0, 0xA0, 0xC0, 0x80, /* 0xDF germandbls */ 0x40, 0x20, 0x60, 0xA0, 0xE0, /* 0xE0 agrave */ 0x40, 0x80, 0x60, 0xA0, 0xE0, /* 0xE1 aacute */ 0xE0, 0x00, 0x60, 0xA0, 0xE0, /* 0xE2 acircumflex */ 0x60, 0xC0, 0x60, 0xA0, 0xE0, /* 0xE3 atilde */ 0xA0, 0x00, 0x60, 0xA0, 0xE0, /* 0xE4 adieresis */ 0x60, 0x60, 0x60, 0xA0, 0xE0, /* 0xE5 aring */ 0x60, 0xE0, 0xE0, 0xC0, /* 0xE6 ae */ 0x60, 0x80, 0x60, 0x20, 0x40, /* 0xE7 ccedilla */ 0x40, 0x20, 0x60, 0xE0, 0x60, /* 0xE8 egrave */ 0x40, 0x80, 0x60, 0xE0, 0x60, /* 0xE9 eacute */ 0xE0, 0x00, 0x60, 0xE0, 0x60, /* 0xEA ecircumflex */ 0xA0, 0x00, 0x60, 0xE0, 0x60, /* 0xEB edieresis */ 0x80, 0x40, 0x80, 0x80, 0x80, /* 0xEC igrave */ 0x40, 0x80, 0x40, 0x40, 0x40, /* 0xED iacute */ 0xE0, 0x00, 0x40, 0x40, 0x40, /* 0xEE icircumflex */ 0xA0, 0x00, 0x40, 0x40, 0x40, /* 0xEF idieresis */ 0x60, 0xC0, 0x60, 0xA0, 0x60, /* 0xF0 eth */ 0xC0, 0x60, 0xC0, 0xA0, 0xA0, /* 0xF1 ntilde */ 0x40, 0x20, 0x40, 0xA0, 0x40, /* 0xF2 ograve */ 0x40, 0x80, 0x40, 0xA0, 0x40, /* 0xF3 oacute */ 0xE0, 0x00, 0x40, 0xA0, 0x40, /* 0xF4 ocircumflex */ 0xC0, 0x60, 0x40, 0xA0, 0x40, /* 0xF5 otilde */ 0xA0, 0x00, 0x40, 0xA0, 0x40, /* 0xF6 odieresis */ 0x40, 0x00, 0xE0, 0x00, 0x40, /* 0xF7 divide */ 0x60, 0xE0, 0xA0, 0xC0, /* 0xF8 oslash */ 0x80, 0x40, 0xA0, 0xA0, 0x60, /* 0xF9 ugrave */ 0x20, 0x40, 0xA0, 0xA0, 0x60, /* 0xFA uacute */ 0xE0, 0x00, 0xA0, 0xA0, 0x60, /* 0xFB ucircumflex */ 0xA0, 0x00, 0xA0, 0xA0, 0x60, /* 0xFC udieresis */ 0x20, 0x40, 0xA0, 0x60, 0x20, 0x40, /* 0xFD yacute */ 0x80, 0xC0, 0xA0, 0xC0, 0x80, /* 0xFE thorn */ 0xA0, 0x00, 0xA0, 0x60, 0x20, 0x40, /* 0xFF ydieresis */ 0x00, /* 0x11D gcircumflex */ 0x60, 0xC0, 0xE0, 0xC0, 0x60, /* 0x152 OE */ 0x60, 0xE0, 0xC0, 0xE0, /* 0x153 oe */ 0xA0, 0x60, 0xC0, 0x60, 0xC0, /* 0x160 Scaron */ 0xA0, 0x60, 0xC0, 0x60, 0xC0, /* 0x161 scaron */ 0xA0, 0x00, 0xA0, 0x40, 0x40, /* 0x178 Ydieresis */ 0xA0, 0xE0, 0x60, 0xC0, 0xE0, /* 0x17D Zcaron */ 0xA0, 0xE0, 0x60, 0xC0, 0xE0, /* 0x17E zcaron */ 0x00, /* 0xEA4 uni0EA4 */ 0x00, /* 0x13A0 uni13A0 */ 0x80, /* 0x2022 bullet */ 0xA0, /* 0x2026 ellipsis */ 0x60, 0xE0, 0xE0, 0xC0, 0x60, /* 0x20AC Euro */ 0xE0, 0xA0, 0xA0, 0xA0, 0xE0, /* 0xFFFD uniFFFD */ #endif /* (TOMTHUMB_USE_EXTENDED) */ }; /* {offset, width, height, advance cursor, x offset, y offset} */ const GFXglyph TomThumbGlyphs[] PROGMEM = { {0, 8, 1, 2, 0, -5}, /* 0x20 space */ {1, 8, 5, 2, 0, -5}, /* 0x21 exclam */ {6, 8, 2, 4, 0, -5}, /* 0x22 quotedbl */ {8, 8, 5, 4, 0, -5}, /* 0x23 numbersign */ {13, 8, 5, 4, 0, -5}, /* 0x24 dollar */ {18, 8, 5, 4, 0, -5}, /* 0x25 percent */ {23, 8, 5, 4, 0, -5}, /* 0x26 ampersand */ {28, 8, 2, 2, 0, -5}, /* 0x27 quotesingle */ {30, 8, 5, 3, 0, -5}, /* 0x28 parenleft */ {35, 8, 5, 3, 0, -5}, /* 0x29 parenright */ {40, 8, 3, 4, 0, -5}, /* 0x2A asterisk */ {43, 8, 3, 4, 0, -4}, /* 0x2B plus */ {46, 8, 2, 3, 0, -2}, /* 0x2C comma */ {48, 8, 1, 4, 0, -3}, /* 0x2D hyphen */ {49, 8, 1, 2, 0, -1}, /* 0x2E period */ {50, 8, 5, 4, 0, -5}, /* 0x2F slash */ {55, 8, 5, 4, 0, -5}, /* 0x30 zero */ {60, 8, 5, 3, 0, -5}, /* 0x31 one */ {65, 8, 5, 4, 0, -5}, /* 0x32 two */ {70, 8, 5, 4, 0, -5}, /* 0x33 three */ {75, 8, 5, 4, 0, -5}, /* 0x34 four */ {80, 8, 5, 4, 0, -5}, /* 0x35 five */ {85, 8, 5, 4, 0, -5}, /* 0x36 six */ {90, 8, 5, 4, 0, -5}, /* 0x37 seven */ {95, 8, 5, 4, 0, -5}, /* 0x38 eight */ {100, 8, 5, 4, 0, -5}, /* 0x39 nine */ {105, 8, 3, 2, 0, -4}, /* 0x3A colon */ {108, 8, 4, 3, 0, -4}, /* 0x3B semicolon */ {112, 8, 5, 4, 0, -5}, /* 0x3C less */ {117, 8, 3, 4, 0, -4}, /* 0x3D equal */ {120, 8, 5, 4, 0, -5}, /* 0x3E greater */ {125, 8, 5, 4, 0, -5}, /* 0x3F question */ {130, 8, 5, 4, 0, -5}, /* 0x40 at */ {135, 8, 5, 4, 0, -5}, /* 0x41 A */ {140, 8, 5, 4, 0, -5}, /* 0x42 B */ {145, 8, 5, 4, 0, -5}, /* 0x43 C */ {150, 8, 5, 4, 0, -5}, /* 0x44 D */ {155, 8, 5, 4, 0, -5}, /* 0x45 E */ {160, 8, 5, 4, 0, -5}, /* 0x46 F */ {165, 8, 5, 4, 0, -5}, /* 0x47 G */ {170, 8, 5, 4, 0, -5}, /* 0x48 H */ {175, 8, 5, 4, 0, -5}, /* 0x49 I */ {180, 8, 5, 4, 0, -5}, /* 0x4A J */ {185, 8, 5, 4, 0, -5}, /* 0x4B K */ {190, 8, 5, 4, 0, -5}, /* 0x4C L */ {195, 8, 5, 4, 0, -5}, /* 0x4D M */ {200, 8, 5, 4, 0, -5}, /* 0x4E N */ {205, 8, 5, 4, 0, -5}, /* 0x4F O */ {210, 8, 5, 4, 0, -5}, /* 0x50 P */ {215, 8, 5, 4, 0, -5}, /* 0x51 Q */ {220, 8, 5, 4, 0, -5}, /* 0x52 R */ {225, 8, 5, 4, 0, -5}, /* 0x53 S */ {230, 8, 5, 4, 0, -5}, /* 0x54 T */ {235, 8, 5, 4, 0, -5}, /* 0x55 U */ {240, 8, 5, 4, 0, -5}, /* 0x56 V */ {245, 8, 5, 4, 0, -5}, /* 0x57 W */ {250, 8, 5, 4, 0, -5}, /* 0x58 X */ {255, 8, 5, 4, 0, -5}, /* 0x59 Y */ {260, 8, 5, 4, 0, -5}, /* 0x5A Z */ {265, 8, 5, 4, 0, -5}, /* 0x5B bracketleft */ {270, 8, 3, 4, 0, -4}, /* 0x5C backslash */ {273, 8, 5, 4, 0, -5}, /* 0x5D bracketright */ {278, 8, 2, 4, 0, -5}, /* 0x5E asciicircum */ {280, 8, 1, 4, 0, -1}, /* 0x5F underscore */ {281, 8, 2, 3, 0, -5}, /* 0x60 grave */ {283, 8, 4, 4, 0, -4}, /* 0x61 a */ {287, 8, 5, 4, 0, -5}, /* 0x62 b */ {292, 8, 4, 4, 0, -4}, /* 0x63 c */ {296, 8, 5, 4, 0, -5}, /* 0x64 d */ {301, 8, 4, 4, 0, -4}, /* 0x65 e */ {305, 8, 5, 4, 0, -5}, /* 0x66 f */ {310, 8, 5, 4, 0, -4}, /* 0x67 g */ {315, 8, 5, 4, 0, -5}, /* 0x68 h */ {320, 8, 5, 2, 0, -5}, /* 0x69 i */ {325, 8, 6, 4, 0, -5}, /* 0x6A j */ {331, 8, 5, 4, 0, -5}, /* 0x6B k */ {336, 8, 5, 4, 0, -5}, /* 0x6C l */ {341, 8, 4, 4, 0, -4}, /* 0x6D m */ {345, 8, 4, 4, 0, -4}, /* 0x6E n */ {349, 8, 4, 4, 0, -4}, /* 0x6F o */ {353, 8, 5, 4, 0, -4}, /* 0x70 p */ {358, 8, 5, 4, 0, -4}, /* 0x71 q */ {363, 8, 4, 4, 0, -4}, /* 0x72 r */ {367, 8, 4, 4, 0, -4}, /* 0x73 s */ {371, 8, 5, 4, 0, -5}, /* 0x74 t */ {376, 8, 4, 4, 0, -4}, /* 0x75 u */ {380, 8, 4, 4, 0, -4}, /* 0x76 v */ {384, 8, 4, 4, 0, -4}, /* 0x77 w */ {388, 8, 4, 4, 0, -4}, /* 0x78 x */ {392, 8, 5, 4, 0, -4}, /* 0x79 y */ {397, 8, 4, 4, 0, -4}, /* 0x7A z */ {401, 8, 5, 4, 0, -5}, /* 0x7B braceleft */ {406, 8, 5, 2, 0, -5}, /* 0x7C bar */ {411, 8, 5, 4, 0, -5}, /* 0x7D braceright */ {416, 8, 2, 4, 0, -5}, /* 0x7E asciitilde */ #if (TOMTHUMB_USE_EXTENDED) {418, 8, 5, 2, 0, -5}, /* 0xA1 exclamdown */ {423, 8, 5, 4, 0, -5}, /* 0xA2 cent */ {428, 8, 5, 4, 0, -5}, /* 0xA3 sterling */ {433, 8, 5, 4, 0, -5}, /* 0xA4 currency */ {438, 8, 5, 4, 0, -5}, /* 0xA5 yen */ {443, 8, 5, 2, 0, -5}, /* 0xA6 brokenbar */ {448, 8, 5, 4, 0, -5}, /* 0xA7 section */ {453, 8, 1, 4, 0, -5}, /* 0xA8 dieresis */ {454, 8, 3, 4, 0, -5}, /* 0xA9 copyright */ {457, 8, 5, 4, 0, -5}, /* 0xAA ordfeminine */ {462, 8, 3, 3, 0, -5}, /* 0xAB guillemotleft */ {465, 8, 2, 4, 0, -4}, /* 0xAC logicalnot */ {467, 8, 1, 3, 0, -3}, /* 0xAD softhyphen */ {468, 8, 3, 4, 0, -5}, /* 0xAE registered */ {471, 8, 1, 4, 0, -5}, /* 0xAF macron */ {472, 8, 3, 4, 0, -5}, /* 0xB0 degree */ {475, 8, 5, 4, 0, -5}, /* 0xB1 plusminus */ {480, 8, 3, 4, 0, -5}, /* 0xB2 twosuperior */ {483, 8, 3, 4, 0, -5}, /* 0xB3 threesuperior */ {486, 8, 2, 3, 0, -5}, /* 0xB4 acute */ {488, 8, 5, 4, 0, -5}, /* 0xB5 mu */ {493, 8, 5, 4, 0, -5}, /* 0xB6 paragraph */ {498, 8, 3, 4, 0, -4}, /* 0xB7 periodcentered */ {501, 8, 3, 4, 0, -3}, /* 0xB8 cedilla */ {504, 8, 3, 2, 0, -5}, /* 0xB9 onesuperior */ {507, 8, 5, 4, 0, -5}, /* 0xBA ordmasculine */ {512, 8, 3, 3, 0, -5}, /* 0xBB guillemotright */ {515, 8, 5, 4, 0, -5}, /* 0xBC onequarter */ {520, 8, 5, 4, 0, -5}, /* 0xBD onehalf */ {525, 8, 5, 4, 0, -5}, /* 0xBE threequarters */ {530, 8, 5, 4, 0, -5}, /* 0xBF questiondown */ {535, 8, 5, 4, 0, -5}, /* 0xC0 Agrave */ {540, 8, 5, 4, 0, -5}, /* 0xC1 Aacute */ {545, 8, 5, 4, 0, -5}, /* 0xC2 Acircumflex */ {550, 8, 5, 4, 0, -5}, /* 0xC3 Atilde */ {555, 8, 5, 4, 0, -5}, /* 0xC4 Adieresis */ {560, 8, 5, 4, 0, -5}, /* 0xC5 Aring */ {565, 8, 5, 4, 0, -5}, /* 0xC6 AE */ {570, 8, 6, 4, 0, -5}, /* 0xC7 Ccedilla */ {576, 8, 5, 4, 0, -5}, /* 0xC8 Egrave */ {581, 8, 5, 4, 0, -5}, /* 0xC9 Eacute */ {586, 8, 5, 4, 0, -5}, /* 0xCA Ecircumflex */ {591, 8, 5, 4, 0, -5}, /* 0xCB Edieresis */ {596, 8, 5, 4, 0, -5}, /* 0xCC Igrave */ {601, 8, 5, 4, 0, -5}, /* 0xCD Iacute */ {606, 8, 5, 4, 0, -5}, /* 0xCE Icircumflex */ {611, 8, 5, 4, 0, -5}, /* 0xCF Idieresis */ {616, 8, 5, 4, 0, -5}, /* 0xD0 Eth */ {621, 8, 5, 4, 0, -5}, /* 0xD1 Ntilde */ {626, 8, 5, 4, 0, -5}, /* 0xD2 Ograve */ {631, 8, 5, 4, 0, -5}, /* 0xD3 Oacute */ {636, 8, 5, 4, 0, -5}, /* 0xD4 Ocircumflex */ {641, 8, 5, 4, 0, -5}, /* 0xD5 Otilde */ {646, 8, 5, 4, 0, -5}, /* 0xD6 Odieresis */ {651, 8, 3, 4, 0, -4}, /* 0xD7 multiply */ {654, 8, 5, 4, 0, -5}, /* 0xD8 Oslash */ {659, 8, 5, 4, 0, -5}, /* 0xD9 Ugrave */ {664, 8, 5, 4, 0, -5}, /* 0xDA Uacute */ {669, 8, 5, 4, 0, -5}, /* 0xDB Ucircumflex */ {674, 8, 5, 4, 0, -5}, /* 0xDC Udieresis */ {679, 8, 5, 4, 0, -5}, /* 0xDD Yacute */ {684, 8, 5, 4, 0, -5}, /* 0xDE Thorn */ {689, 8, 6, 4, 0, -5}, /* 0xDF germandbls */ {695, 8, 5, 4, 0, -5}, /* 0xE0 agrave */ {700, 8, 5, 4, 0, -5}, /* 0xE1 aacute */ {705, 8, 5, 4, 0, -5}, /* 0xE2 acircumflex */ {710, 8, 5, 4, 0, -5}, /* 0xE3 atilde */ {715, 8, 5, 4, 0, -5}, /* 0xE4 adieresis */ {720, 8, 5, 4, 0, -5}, /* 0xE5 aring */ {725, 8, 4, 4, 0, -4}, /* 0xE6 ae */ {729, 8, 5, 4, 0, -4}, /* 0xE7 ccedilla */ {734, 8, 5, 4, 0, -5}, /* 0xE8 egrave */ {739, 8, 5, 4, 0, -5}, /* 0xE9 eacute */ {744, 8, 5, 4, 0, -5}, /* 0xEA ecircumflex */ {749, 8, 5, 4, 0, -5}, /* 0xEB edieresis */ {754, 8, 5, 3, 0, -5}, /* 0xEC igrave */ {759, 8, 5, 3, 0, -5}, /* 0xED iacute */ {764, 8, 5, 4, 0, -5}, /* 0xEE icircumflex */ {769, 8, 5, 4, 0, -5}, /* 0xEF idieresis */ {774, 8, 5, 4, 0, -5}, /* 0xF0 eth */ {779, 8, 5, 4, 0, -5}, /* 0xF1 ntilde */ {784, 8, 5, 4, 0, -5}, /* 0xF2 ograve */ {789, 8, 5, 4, 0, -5}, /* 0xF3 oacute */ {794, 8, 5, 4, 0, -5}, /* 0xF4 ocircumflex */ {799, 8, 5, 4, 0, -5}, /* 0xF5 otilde */ {804, 8, 5, 4, 0, -5}, /* 0xF6 odieresis */ {809, 8, 5, 4, 0, -5}, /* 0xF7 divide */ {814, 8, 4, 4, 0, -4}, /* 0xF8 oslash */ {818, 8, 5, 4, 0, -5}, /* 0xF9 ugrave */ {823, 8, 5, 4, 0, -5}, /* 0xFA uacute */ {828, 8, 5, 4, 0, -5}, /* 0xFB ucircumflex */ {833, 8, 5, 4, 0, -5}, /* 0xFC udieresis */ {838, 8, 6, 4, 0, -5}, /* 0xFD yacute */ {844, 8, 5, 4, 0, -4}, /* 0xFE thorn */ {849, 8, 6, 4, 0, -5}, /* 0xFF ydieresis */ {855, 8, 1, 2, 0, -1}, /* 0x11D gcircumflex */ {856, 8, 5, 4, 0, -5}, /* 0x152 OE */ {861, 8, 4, 4, 0, -4}, /* 0x153 oe */ {865, 8, 5, 4, 0, -5}, /* 0x160 Scaron */ {870, 8, 5, 4, 0, -5}, /* 0x161 scaron */ {875, 8, 5, 4, 0, -5}, /* 0x178 Ydieresis */ {880, 8, 5, 4, 0, -5}, /* 0x17D Zcaron */ {885, 8, 5, 4, 0, -5}, /* 0x17E zcaron */ {890, 8, 1, 2, 0, -1}, /* 0xEA4 uni0EA4 */ {891, 8, 1, 2, 0, -1}, /* 0x13A0 uni13A0 */ {892, 8, 1, 2, 0, -3}, /* 0x2022 bullet */ {893, 8, 1, 4, 0, -1}, /* 0x2026 ellipsis */ {894, 8, 5, 4, 0, -5}, /* 0x20AC Euro */ {899, 8, 5, 4, 0, -5}, /* 0xFFFD uniFFFD */ #endif /* (TOMTHUMB_USE_EXTENDED) */ }; const GFXfont TomThumb PROGMEM = {(uint8_t *)TomThumbBitmaps, (GFXglyph *)TomThumbGlyphs, 0x20, 0x7E, 6}; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/gfxfont.h ================================================ // Adopted by Bodmer to support TFT_HX8357_Due library. // Font structures for newer Adafruit_GFX (1.1 and later). // Example fonts are included in 'Fonts' directory. // To use a font in your Arduino sketch, #include the corresponding .h // file and pass address of GFXfont struct to setFont(). Pass NULL to // revert to 'classic' fixed-space bitmap font. #ifndef _GFXFONT_H_ #define _GFXFONT_H_ #ifdef LOAD_GFXFF typedef struct { // Data stored PER GLYPH uint16_t bitmapOffset; // Pointer into GFXfont->bitmap uint8_t width, height; // Bitmap dimensions in pixels uint8_t xAdvance; // Distance to advance cursor (x axis) int8_t xOffset, yOffset; // Dist from cursor pos to UL corner } GFXglyph; typedef struct { // Data stored for FONT AS A WHOLE: uint8_t *bitmap; // Glyph bitmaps, concatenated GFXglyph *glyph; // Glyph array uint16_t first, last; // ASCII extents uint8_t yAdvance; // Newline distance (y axis) } GFXfont; #endif // LOAD_GFXFF #endif // _GFXFONT_H_ ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/license.txt ================================================ This TFT_eSPI library has been developed from the Adafruit_GFX library: https://github.com/adafruit/Adafruit-GFX-Library It has been modified extensively to improve rendering speed on ESP8266 processors. There follows the original library license text. Original text follows: Software License Agreement (BSD License) Copyright (c) 2012 Adafruit Industries. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/GFXFF/print.txt ================================================ #define TT1 TomThumb #define FF1 FreeMono9pt7b #define FF2 FreeMono12pt7b #define FF3 FreeMono18pt7b #define FF4 FreeMono24pt7b #define FF5 FreeMonoBold9pt7b #define FF6 FreeMonoBold12pt7b #define FF7 FreeMonoBold18pt7b #define FF8 FreeMonoBold24pt7b #define FF9 FreeMonoBoldOblique9pt7b #define FF10 FreeMonoBoldOblique12pt7b #define FF11 FreeMonoBoldOblique18pt7b #define FF12 FreeMonoBoldOblique24pt7b #define FF13 FreeMonoOblique9pt7b #define FF14 FreeMonoOblique12pt7b #define FF15 FreeMonoOblique18pt7b #define FF16 FreeMonoOblique24pt7b #define FF17 FreeSans9pt7b #define FF18 FreeSans12pt7b #define FF19 FreeSans18pt7b #define FF20 FreeSans24pt7b #define FF21 FreeSansBold9pt7b #define FF22 FreeSansBold12pt7b #define FF23 FreeSansBold18pt7b #define FF24 FreeSansBold24pt7b #define FF25 FreeSansBoldOblique9pt7b #define FF26 FreeSansBoldOblique12pt7b #define FF27 FreeSansBoldOblique18pt7b #define FF28 FreeSansBoldOblique24pt7b #define FF29 FreeSansOblique9pt7b #define FF30 FreeSansOblique12pt7b #define FF31 FreeSansOblique18pt7b #define FF32 FreeSansOblique24pt7b #define FF33 FreeSerif9pt7b #define FF34 FreeSerif12pt7b #define FF35 FreeSerif18pt7b #define FF36 FreeSerif24pt7b #define FF37 FreeSerifBold9pt7b #define FF38 FreeSerifBold12pt7b #define FF39 FreeSerifBold18pt7b #define FF40 FreeSerifBold24pt7b #define FF41 FreeSerifBoldItalic9pt7b #define FF42 FreeSerifBoldItalic12pt7b #define FF43 FreeSerifBoldItalic18pt7b #define FF44 FreeSerifBoldItalic24pt7b #define FF45 FreeSerifItalic9pt7b #define FF46 FreeSerifItalic12pt7b #define FF47 FreeSerifItalic18pt7b #define FF48 FreeSerifItalic24pt7b ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/HZK16.h ================================================ /************************** * * HZK16 * **************************/ #ifndef _HZK16_ #define _HZK16_ const uint8_t HZK16[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x66, 0x00, 0x66, 0x00, 0x66, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x10, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x10, 0x04, 0x10, 0x02, 0x20, 0x02, 0x20, 0x01, 0x40, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x1E, 0x3C, 0x1E, 0x3C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x01, 0x10, 0x03, 0x30, 0x03, 0x30, 0x06, 0x60, 0x04, 0x40, 0x04, 0x40, 0x08, 0x80, 0x08, 0x80, 0x11, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x80, 0x03, 0x00, 0x06, 0x08, 0x0F, 0xFC, 0x0C, 0x18, 0x10, 0x30, 0x00, 0x30, 0x02, 0x60, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xE0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x3F, 0x80, 0x61, 0xC3, 0x00, 0xFE, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x8C, 0x7B, 0xDE, 0x7B, 0xDE, 0x31, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x30, 0x00, 0x60, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0xC6, 0x01, 0x8C, 0x03, 0xDE, 0x03, 0xDE, 0x01, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xC0, 0x3D, 0xE0, 0x3D, 0xE0, 0x18, 0xC0, 0x08, 0x40, 0x10, 0x80, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x38, 0x00, 0x60, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x0E, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x02, 0x40, 0x04, 0x80, 0x04, 0x80, 0x09, 0x00, 0x09, 0x00, 0x04, 0x80, 0x04, 0x80, 0x02, 0x40, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x02, 0x40, 0x01, 0x20, 0x01, 0x20, 0x00, 0x90, 0x00, 0x90, 0x01, 0x20, 0x01, 0x20, 0x02, 0x40, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x02, 0x08, 0x02, 0xF8, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x1F, 0xD0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x40, 0x08, 0x80, 0x08, 0x80, 0x09, 0x00, 0x09, 0x00, 0x08, 0x80, 0x08, 0x80, 0x08, 0x40, 0x08, 0x20, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x02, 0x08, 0x01, 0x08, 0x00, 0x88, 0x00, 0x88, 0x00, 0x48, 0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x01, 0x08, 0x02, 0x08, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x07, 0xE0, 0x07, 0xC0, 0x07, 0x80, 0x07, 0x80, 0x07, 0x00, 0x07, 0x00, 0x07, 0x80, 0x07, 0x80, 0x07, 0xC0, 0x07, 0xE0, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x03, 0xF0, 0x01, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x70, 0x00, 0x70, 0x00, 0xF0, 0x00, 0xF0, 0x01, 0xF0, 0x03, 0xF0, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x0F, 0xF8, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x04, 0x10, 0x02, 0x20, 0x01, 0x40, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x02, 0x20, 0x04, 0x10, 0x04, 0x10, 0x08, 0x08, 0x08, 0x08, 0x10, 0x04, 0x10, 0x04, 0x20, 0x02, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x20, 0x02, 0x10, 0x04, 0x10, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x10, 0x04, 0x10, 0x02, 0x20, 0x02, 0x20, 0x01, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x18, 0x04, 0x0C, 0x04, 0x06, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x04, 0x1F, 0xFC, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x18, 0x0C, 0x0C, 0x18, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x0C, 0x18, 0x18, 0x0C, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0F, 0xC0, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x10, 0x80, 0x3B, 0x00, 0x2E, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x06, 0x30, 0x0C, 0x18, 0x08, 0x08, 0x10, 0x04, 0x10, 0x04, 0x20, 0x02, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x10, 0x04, 0x20, 0x02, 0x20, 0x02, 0x40, 0x81, 0x41, 0xC1, 0x43, 0xE1, 0x41, 0xC1, 0x40, 0x81, 0x20, 0x02, 0x20, 0x02, 0x10, 0x04, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x90, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x90, 0x01, 0x00, 0x01, 0x00, 0x03, 0x80, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x03, 0x80, 0x01, 0x00, 0x01, 0x00, 0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x30, 0x10, 0x48, 0x20, 0x84, 0x21, 0x04, 0x12, 0x08, 0x0C, 0x10, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x11, 0x04, 0x20, 0x88, 0x0E, 0x70, 0x11, 0x04, 0x20, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x10, 0x24, 0x20, 0x42, 0x20, 0x82, 0x21, 0x02, 0x12, 0x04, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1C, 0x12, 0x20, 0x21, 0x40, 0x20, 0x80, 0x21, 0x40, 0x12, 0x20, 0x0C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x1F, 0xFC, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x1F, 0xFC, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0C, 0x02, 0x30, 0x02, 0xC0, 0x03, 0x00, 0x0E, 0x00, 0x32, 0x00, 0x62, 0x00, 0x32, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x02, 0xC0, 0x02, 0x30, 0x02, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x18, 0x20, 0x06, 0x20, 0x01, 0xA0, 0x00, 0x60, 0x00, 0x38, 0x00, 0x26, 0x00, 0x23, 0x00, 0x26, 0x00, 0x38, 0x00, 0x60, 0x01, 0xA0, 0x06, 0x20, 0x18, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0x30, 0x00, 0x18, 0x00, 0x06, 0x00, 0x21, 0x80, 0x18, 0x60, 0x06, 0x18, 0x01, 0x86, 0x00, 0x60, 0x00, 0x18, 0x00, 0x06, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC2, 0x03, 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x12, 0x24, 0x21, 0x42, 0x20, 0x82, 0x21, 0x42, 0x12, 0x24, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x02, 0xA0, 0x04, 0x90, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x01, 0xC0, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x80, 0x0F, 0xF8, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x60, 0x00, 0x40, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x90, 0x01, 0xB0, 0x01, 0x20, 0x03, 0x60, 0x02, 0x40, 0x06, 0xC0, 0x04, 0x80, 0x04, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x33, 0xE8, 0x06, 0x38, 0x0C, 0x18, 0x0C, 0x08, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x06, 0x08, 0x03, 0x10, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x03, 0xF0, 0x0C, 0x90, 0x0C, 0x80, 0x06, 0x80, 0x01, 0xC0, 0x00, 0xB0, 0x00, 0x98, 0x18, 0x98, 0x0C, 0xB0, 0x03, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xC2, 0x16, 0x34, 0x08, 0x08, 0x10, 0x04, 0x10, 0x04, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x10, 0x04, 0x10, 0x04, 0x08, 0x08, 0x16, 0x34, 0x21, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x03, 0xF0, 0x06, 0xB0, 0x0C, 0x90, 0x18, 0x80, 0x18, 0x80, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x0A, 0x08, 0x06, 0x10, 0x03, 0xE0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xF8, 0x00, 0x98, 0x01, 0x90, 0x01, 0x80, 0x0F, 0xF0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x07, 0x80, 0x09, 0xC8, 0x0A, 0x78, 0x04, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x18, 0x08, 0x24, 0x10, 0x24, 0x20, 0x24, 0x40, 0x18, 0x80, 0x01, 0x00, 0x02, 0x00, 0x05, 0x8C, 0x0A, 0x52, 0x12, 0x52, 0x22, 0x52, 0x41, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x02, 0x20, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x02, 0x20, 0x01, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x02, 0x20, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x30, 0x18, 0x70, 0x1C, 0x40, 0x14, 0x40, 0x16, 0x40, 0x16, 0x40, 0x16, 0x40, 0x13, 0x4C, 0x13, 0x52, 0x11, 0x52, 0x11, 0xD2, 0x10, 0xCC, 0x60, 0xC0, 0x60, 0x5E, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x01, 0x40, 0x01, 0x40, 0x02, 0x20, 0x7C, 0x1F, 0x20, 0x02, 0x10, 0x04, 0x08, 0x08, 0x04, 0x10, 0x08, 0x88, 0x09, 0x48, 0x16, 0x34, 0x18, 0x0C, 0x20, 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0xE0, 0x7F, 0xFF, 0x3F, 0xFE, 0x1F, 0xFC, 0x0F, 0xF8, 0x07, 0xF0, 0x0F, 0xF8, 0x0F, 0x78, 0x1E, 0x3C, 0x18, 0x0C, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x0C, 0x30, 0x10, 0x08, 0x10, 0x08, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x10, 0x08, 0x10, 0x08, 0x0C, 0x30, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x0F, 0xF0, 0x1F, 0xF8, 0x1F, 0xF8, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x1F, 0xF8, 0x1F, 0xF8, 0x0F, 0xF0, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x11, 0xC4, 0x26, 0x32, 0x28, 0x0A, 0x48, 0x09, 0x50, 0x05, 0x50, 0x05, 0x50, 0x05, 0x48, 0x09, 0x28, 0x0A, 0x26, 0x32, 0x11, 0xC4, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x10, 0x04, 0x20, 0x02, 0x40, 0x01, 0x20, 0x02, 0x10, 0x04, 0x08, 0x08, 0x04, 0x10, 0x02, 0x20, 0x01, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x03, 0xE0, 0x07, 0xF0, 0x0F, 0xF8, 0x1F, 0xFC, 0x3F, 0xFE, 0x7F, 0xFF, 0x3F, 0xFE, 0x1F, 0xFC, 0x0F, 0xF8, 0x07, 0xF0, 0x03, 0xE0, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x01, 0x40, 0x02, 0x20, 0x02, 0x20, 0x04, 0x10, 0x04, 0x10, 0x08, 0x08, 0x08, 0x08, 0x10, 0x04, 0x10, 0x04, 0x20, 0x02, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0xE0, 0x03, 0xE0, 0x07, 0xF0, 0x07, 0xF0, 0x0F, 0xF8, 0x0F, 0xF8, 0x1F, 0xFC, 0x1F, 0xFC, 0x3F, 0xFE, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x88, 0x09, 0x90, 0x04, 0x20, 0x02, 0x40, 0x19, 0x98, 0x19, 0x98, 0x02, 0x40, 0x04, 0x20, 0x09, 0x90, 0x11, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x30, 0x00, 0x3C, 0x3F, 0xFE, 0x00, 0x3C, 0x00, 0x30, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x1E, 0x00, 0x3F, 0xFE, 0x1E, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0xE0, 0x03, 0xE0, 0x04, 0x90, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x04, 0x90, 0x03, 0xE0, 0x03, 0xE0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x30, 0x07, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x0C, 0xC0, 0x18, 0x60, 0x18, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x20, 0x0C, 0x2C, 0x1F, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x0C, 0xC0, 0x18, 0x60, 0x00, 0x60, 0x00, 0xC0, 0x03, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x60, 0x18, 0x60, 0x0C, 0xCC, 0x07, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x03, 0x80, 0x07, 0x80, 0x05, 0x80, 0x0D, 0x80, 0x19, 0x80, 0x19, 0x80, 0x31, 0x80, 0x3F, 0xE0, 0x01, 0x80, 0x01, 0x8C, 0x03, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x1F, 0x80, 0x1C, 0xC0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x18, 0x60, 0x0E, 0xCC, 0x07, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x0C, 0xC0, 0x18, 0x60, 0x18, 0x00, 0x1B, 0x80, 0x1C, 0xC0, 0x18, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0x60, 0x0C, 0xCC, 0x07, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x1F, 0xE0, 0x10, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x0C, 0x06, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x0C, 0xC0, 0x18, 0x60, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x0C, 0xC0, 0x18, 0x60, 0x18, 0x60, 0x18, 0x60, 0x0C, 0xCC, 0x07, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x0C, 0xC0, 0x18, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0x60, 0x0C, 0xE0, 0x07, 0xE0, 0x00, 0x60, 0x18, 0x60, 0x0C, 0xCC, 0x07, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xE0, 0x39, 0xB0, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x18, 0x19, 0xB6, 0x3C, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x1C, 0xE0, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x66, 0x1E, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xC0, 0x71, 0xE0, 0x33, 0x30, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x60, 0x30, 0xC0, 0x31, 0x80, 0x31, 0x10, 0x33, 0x16, 0x7B, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xC0, 0x73, 0x60, 0x36, 0x30, 0x30, 0x30, 0x30, 0x60, 0x30, 0xC0, 0x30, 0x60, 0x30, 0x30, 0x30, 0x30, 0x36, 0x30, 0x33, 0x60, 0x79, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x70, 0x60, 0x30, 0xE0, 0x30, 0xE0, 0x31, 0xE0, 0x33, 0x60, 0x33, 0x60, 0x36, 0x60, 0x37, 0xF8, 0x30, 0x60, 0x30, 0x66, 0x78, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0xF8, 0x73, 0x00, 0x33, 0x00, 0x33, 0x00, 0x33, 0xE0, 0x33, 0xB0, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0x33, 0x18, 0x31, 0xB6, 0x78, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE0, 0x71, 0xB0, 0x33, 0x18, 0x33, 0x00, 0x33, 0x60, 0x33, 0xB0, 0x33, 0x18, 0x33, 0x18, 0x33, 0x18, 0x33, 0x18, 0x31, 0xB6, 0x78, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0xF8, 0x73, 0xF8, 0x32, 0x18, 0x30, 0x30, 0x30, 0x60, 0x30, 0x60, 0x30, 0x40, 0x30, 0x40, 0x30, 0xC0, 0x30, 0xC0, 0x30, 0xC6, 0x78, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE0, 0x71, 0xB0, 0x33, 0x18, 0x33, 0x18, 0x31, 0xB0, 0x30, 0xE0, 0x31, 0xB0, 0x33, 0x18, 0x33, 0x18, 0x33, 0x18, 0x31, 0xB6, 0x78, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE0, 0x71, 0xB0, 0x33, 0x18, 0x33, 0x18, 0x33, 0x18, 0x33, 0x18, 0x31, 0xB8, 0x30, 0xF8, 0x30, 0x18, 0x33, 0x18, 0x31, 0xB6, 0x78, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF0, 0x79, 0x98, 0xCD, 0x98, 0xCD, 0x98, 0x0D, 0x98, 0x0D, 0x98, 0x19, 0x98, 0x31, 0x98, 0x61, 0x98, 0xC5, 0x98, 0xC5, 0x9B, 0xFC, 0xF3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x10, 0x84, 0x13, 0x84, 0x21, 0x82, 0x21, 0x82, 0x21, 0x82, 0x21, 0x82, 0x21, 0x82, 0x21, 0x82, 0x21, 0x82, 0x21, 0x82, 0x13, 0xC4, 0x10, 0x04, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x11, 0xC4, 0x13, 0x64, 0x26, 0x32, 0x24, 0x32, 0x20, 0x32, 0x20, 0x62, 0x20, 0xC2, 0x21, 0x82, 0x23, 0x12, 0x27, 0xF2, 0x10, 0x04, 0x10, 0x04, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x11, 0xC4, 0x13, 0x64, 0x26, 0x32, 0x20, 0x32, 0x20, 0x62, 0x20, 0xC2, 0x20, 0x62, 0x20, 0x32, 0x26, 0x32, 0x23, 0x62, 0x11, 0xC4, 0x10, 0x04, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x48, 0x10, 0xC4, 0x11, 0xC4, 0x22, 0xC2, 0x22, 0xC2, 0x24, 0xC2, 0x24, 0xC2, 0x28, 0xC2, 0x2F, 0xF2, 0x20, 0xC2, 0x20, 0xC2, 0x11, 0xE4, 0x10, 0x04, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x10, 0x04, 0x17, 0xF4, 0x26, 0x02, 0x26, 0x02, 0x27, 0xC2, 0x27, 0x62, 0x20, 0x32, 0x20, 0x32, 0x26, 0x32, 0x23, 0x62, 0x11, 0xC4, 0x10, 0x04, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x11, 0xE4, 0x13, 0x34, 0x26, 0x12, 0x26, 0x02, 0x26, 0xC2, 0x27, 0x62, 0x27, 0x32, 0x26, 0x32, 0x26, 0x32, 0x23, 0x62, 0x11, 0xC4, 0x10, 0x04, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x10, 0x04, 0x17, 0xF4, 0x27, 0xF2, 0x24, 0x32, 0x20, 0x22, 0x20, 0x62, 0x20, 0x62, 0x20, 0xC2, 0x21, 0x82, 0x21, 0x82, 0x11, 0x84, 0x11, 0x84, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x11, 0xC4, 0x13, 0x64, 0x26, 0x32, 0x26, 0x32, 0x23, 0x62, 0x21, 0xC2, 0x23, 0x62, 0x26, 0x32, 0x26, 0x32, 0x23, 0x62, 0x11, 0xC4, 0x10, 0x04, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x10, 0x04, 0x11, 0xC4, 0x23, 0x62, 0x26, 0x32, 0x26, 0x32, 0x23, 0x72, 0x21, 0xF2, 0x20, 0x32, 0x26, 0x32, 0x23, 0x62, 0x11, 0xC4, 0x10, 0x04, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x24, 0x64, 0x2C, 0x94, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x2E, 0x64, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x24, 0x24, 0x2C, 0x64, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x2E, 0x74, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x24, 0x64, 0x2C, 0x94, 0x44, 0x92, 0x44, 0x92, 0x44, 0x12, 0x44, 0x22, 0x44, 0x22, 0x44, 0x42, 0x44, 0x42, 0x44, 0x92, 0x2E, 0xF4, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x24, 0x64, 0x2C, 0x94, 0x44, 0x92, 0x44, 0x12, 0x44, 0x12, 0x44, 0x22, 0x44, 0x12, 0x44, 0x12, 0x44, 0x92, 0x44, 0x92, 0x2E, 0x64, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x24, 0x24, 0x2C, 0x64, 0x44, 0x62, 0x44, 0xE2, 0x44, 0xA2, 0x45, 0xA2, 0x45, 0x22, 0x45, 0xF2, 0x44, 0x22, 0x44, 0x22, 0x2E, 0x74, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x24, 0xF4, 0x2C, 0x84, 0x44, 0x82, 0x44, 0x82, 0x44, 0xE2, 0x44, 0x12, 0x44, 0x12, 0x44, 0x12, 0x44, 0x92, 0x44, 0x92, 0x2E, 0x64, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x24, 0x64, 0x2C, 0x94, 0x44, 0x92, 0x44, 0x82, 0x44, 0x82, 0x44, 0xE2, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x2E, 0x64, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x24, 0xF4, 0x2C, 0x94, 0x44, 0x12, 0x44, 0x12, 0x44, 0x12, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x42, 0x44, 0x42, 0x2E, 0x44, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x24, 0x64, 0x2C, 0x94, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x44, 0x62, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x2E, 0x64, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x24, 0x64, 0x2C, 0x94, 0x44, 0x92, 0x44, 0x92, 0x44, 0x92, 0x44, 0x72, 0x44, 0x12, 0x44, 0x12, 0x44, 0x92, 0x44, 0x92, 0x2E, 0x64, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x26, 0x24, 0x29, 0x54, 0x49, 0x52, 0x41, 0x52, 0x43, 0x52, 0x42, 0x52, 0x44, 0x52, 0x44, 0x52, 0x48, 0x52, 0x49, 0x52, 0x2F, 0x24, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x10, 0x44, 0x21, 0xC2, 0x20, 0xC2, 0x40, 0xC1, 0x40, 0xC1, 0x40, 0xC1, 0x40, 0xC1, 0x40, 0xC1, 0x20, 0xC2, 0x21, 0xE2, 0x10, 0x04, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x11, 0xC4, 0x23, 0x62, 0x26, 0x32, 0x44, 0x31, 0x40, 0x31, 0x40, 0x61, 0x40, 0xC1, 0x41, 0x81, 0x23, 0x12, 0x27, 0xF2, 0x10, 0x04, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x11, 0xC4, 0x23, 0x62, 0x26, 0x32, 0x40, 0x31, 0x40, 0x61, 0x40, 0xC1, 0x40, 0x61, 0x40, 0x31, 0x26, 0x32, 0x23, 0x62, 0x11, 0xC4, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x10, 0x44, 0x20, 0xC2, 0x21, 0xC2, 0x42, 0xC1, 0x42, 0xC1, 0x44, 0xC1, 0x44, 0xC1, 0x4F, 0xF1, 0x20, 0xC2, 0x20, 0xC2, 0x11, 0xE4, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x10, 0x04, 0x27, 0xF2, 0x26, 0x02, 0x46, 0x01, 0x47, 0xC1, 0x47, 0x61, 0x40, 0x31, 0x40, 0x31, 0x26, 0x32, 0x23, 0x62, 0x11, 0xC4, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x11, 0xE4, 0x23, 0x32, 0x26, 0x12, 0x46, 0x01, 0x46, 0xC1, 0x47, 0x61, 0x47, 0x31, 0x46, 0x31, 0x26, 0x32, 0x23, 0x62, 0x11, 0xC4, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x10, 0x04, 0x27, 0xF2, 0x27, 0xF2, 0x44, 0x31, 0x40, 0x21, 0x40, 0x61, 0x40, 0x61, 0x40, 0xC1, 0x21, 0x82, 0x21, 0x82, 0x11, 0x84, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x11, 0xC4, 0x23, 0x62, 0x26, 0x32, 0x46, 0x31, 0x43, 0x61, 0x41, 0xC1, 0x43, 0x61, 0x46, 0x31, 0x26, 0x32, 0x23, 0x62, 0x11, 0xC4, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x10, 0x04, 0x21, 0xC2, 0x23, 0x62, 0x46, 0x31, 0x46, 0x31, 0x46, 0x31, 0x43, 0x71, 0x40, 0xB1, 0x26, 0x32, 0x23, 0x62, 0x11, 0xC4, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x18, 0x12, 0x74, 0x2E, 0xDA, 0x26, 0xDA, 0x46, 0xD9, 0x46, 0xD9, 0x46, 0xD9, 0x46, 0xD9, 0x46, 0xD9, 0x26, 0xDA, 0x2F, 0x72, 0x10, 0x04, 0x0C, 0x18, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x20, 0x04, 0x20, 0x04, 0x40, 0x02, 0x40, 0x02, 0x40, 0x12, 0x5F, 0xFA, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x20, 0x04, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x20, 0x04, 0x20, 0x24, 0x4F, 0xF2, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x12, 0x5F, 0xFA, 0x20, 0x04, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x20, 0x24, 0x2F, 0xF4, 0x40, 0x02, 0x40, 0x02, 0x40, 0x42, 0x47, 0xE2, 0x40, 0x02, 0x40, 0x02, 0x40, 0x12, 0x5F, 0xFA, 0x20, 0x04, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x20, 0x04, 0x28, 0x14, 0x4F, 0xF6, 0x4A, 0x52, 0x4A, 0x52, 0x4A, 0x52, 0x4A, 0x52, 0x4C, 0x72, 0x48, 0x12, 0x4F, 0xF2, 0x28, 0x14, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x20, 0x24, 0x2F, 0xF4, 0x42, 0x02, 0x42, 0x02, 0x4F, 0xE2, 0x42, 0x22, 0x42, 0x22, 0x42, 0x22, 0x42, 0x22, 0x5F, 0xFA, 0x20, 0x04, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x11, 0x08, 0x21, 0x04, 0x21, 0x14, 0x5F, 0xFA, 0x40, 0x02, 0x44, 0x42, 0x44, 0x42, 0x44, 0x62, 0x44, 0x22, 0x48, 0x22, 0x48, 0x12, 0x28, 0x14, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x21, 0x04, 0x21, 0x04, 0x41, 0x02, 0x41, 0x3A, 0x43, 0xE2, 0x5D, 0x02, 0x41, 0x02, 0x41, 0x02, 0x41, 0x02, 0x41, 0x0A, 0x20, 0xF4, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x20, 0x44, 0x22, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x62, 0x42, 0x22, 0x42, 0x22, 0x44, 0x22, 0x44, 0x32, 0x48, 0x12, 0x20, 0x14, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x22, 0x04, 0x22, 0x04, 0x4F, 0xC2, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x52, 0x44, 0x52, 0x28, 0x74, 0x20, 0x04, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x20, 0x84, 0x20, 0x84, 0x40, 0x82, 0x40, 0x82, 0x40, 0x92, 0x4F, 0xFA, 0x40, 0x82, 0x40, 0x82, 0x40, 0x82, 0x40, 0x82, 0x20, 0x84, 0x20, 0x84, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x70, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x07, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xDC, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x1D, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xDC, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x50, 0x08, 0x50, 0x08, 0x50, 0x08, 0x20, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x38, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x06, 0x10, 0x02, 0x20, 0x02, 0x20, 0x03, 0x20, 0x01, 0x40, 0x01, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xDC, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x05, 0x08, 0x05, 0x08, 0x05, 0x08, 0x05, 0x08, 0x02, 0x08, 0x02, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xBE, 0x11, 0x14, 0x11, 0x14, 0x11, 0x14, 0x11, 0x14, 0x11, 0x14, 0x0A, 0x14, 0x0A, 0x14, 0x0A, 0x14, 0x0A, 0x14, 0x04, 0x14, 0x04, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xFE, 0x11, 0x54, 0x11, 0x54, 0x11, 0x54, 0x11, 0x54, 0x11, 0x54, 0x0A, 0x54, 0x0A, 0x54, 0x0A, 0x54, 0x0A, 0x54, 0x04, 0x54, 0x04, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xDC, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x50, 0x08, 0x50, 0x08, 0x20, 0x08, 0x50, 0x08, 0x50, 0x08, 0x88, 0x08, 0x88, 0x1D, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x38, 0x04, 0x10, 0x04, 0x10, 0x02, 0x20, 0x01, 0x40, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x02, 0x20, 0x04, 0x10, 0x04, 0x10, 0x0E, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xDC, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x05, 0x08, 0x05, 0x08, 0x02, 0x08, 0x05, 0x08, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x1D, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xFC, 0x11, 0x28, 0x11, 0x28, 0x11, 0x28, 0x0A, 0x28, 0x0A, 0x28, 0x04, 0x28, 0x0A, 0x28, 0x0A, 0x28, 0x11, 0x28, 0x11, 0x28, 0x3B, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x70, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x70, 0x07, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x0E, 0x70, 0x0E, 0x70, 0x04, 0x20, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x02, 0x20, 0x0F, 0xF8, 0x0F, 0xF8, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x0F, 0xF8, 0x0F, 0xF8, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x1E, 0x38, 0x0C, 0x1C, 0x18, 0x0E, 0x30, 0x07, 0x60, 0x03, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x0F, 0xF0, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x04, 0x12, 0x08, 0x12, 0x10, 0x0C, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x18, 0x04, 0x24, 0x08, 0x24, 0x10, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x90, 0x03, 0x10, 0x03, 0x20, 0x01, 0x40, 0x03, 0x80, 0x05, 0x8C, 0x0C, 0xD8, 0x18, 0x70, 0x10, 0x60, 0x18, 0xF0, 0x0F, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x60, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x40, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x60, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x06, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x06, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x04, 0x10, 0x02, 0x20, 0x01, 0x40, 0x1F, 0xFC, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x0F, 0xF8, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x10, 0x06, 0x10, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x00, 0x30, 0x00, 0x60, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x30, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0xC0, 0x02, 0xC0, 0x06, 0xC0, 0x0C, 0xC0, 0x0C, 0xC0, 0x18, 0xC0, 0x1F, 0xF0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0F, 0xC0, 0x0E, 0x60, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x0C, 0x00, 0x0D, 0xC0, 0x0E, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x0F, 0xF0, 0x08, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x06, 0x70, 0x03, 0xF0, 0x00, 0x30, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x18, 0x18, 0x30, 0x0C, 0x38, 0x0C, 0x00, 0x38, 0x00, 0xE0, 0x00, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x04, 0x10, 0x08, 0x08, 0x11, 0xC4, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0x12, 0x34, 0x11, 0xCC, 0x08, 0x00, 0x04, 0x08, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x01, 0x40, 0x02, 0x60, 0x02, 0x60, 0x04, 0x30, 0x04, 0x30, 0x07, 0xF0, 0x0C, 0x38, 0x08, 0x18, 0x08, 0x18, 0x1C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x0C, 0x38, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x30, 0x0F, 0xF0, 0x0C, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x38, 0x1F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x38, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x0C, 0x08, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x0C, 0x70, 0x0C, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x0C, 0x70, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x0C, 0x18, 0x0C, 0x08, 0x0C, 0x00, 0x0C, 0x20, 0x0F, 0xE0, 0x0C, 0x20, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x08, 0x0C, 0x18, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x0C, 0x18, 0x0C, 0x08, 0x0C, 0x00, 0x0C, 0x20, 0x0F, 0xE0, 0x0C, 0x20, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x06, 0x1C, 0x0C, 0x0C, 0x18, 0x04, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x3C, 0x18, 0x18, 0x0C, 0x18, 0x06, 0x18, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0F, 0xF8, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x1E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x38, 0xC0, 0x18, 0xC0, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x7C, 0x0C, 0x30, 0x0C, 0x60, 0x0C, 0xC0, 0x0D, 0x80, 0x0F, 0x80, 0x0D, 0xC0, 0x0C, 0xE0, 0x0C, 0x70, 0x0C, 0x38, 0x0C, 0x1C, 0x1E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x08, 0x0C, 0x18, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0E, 0x18, 0x0C, 0x1C, 0x1C, 0x16, 0x2C, 0x16, 0x2C, 0x13, 0x6C, 0x13, 0x4C, 0x11, 0x4C, 0x11, 0xCC, 0x10, 0x8C, 0x10, 0x8C, 0x38, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x38, 0x0E, 0x10, 0x0B, 0x10, 0x0B, 0x10, 0x09, 0x90, 0x09, 0x90, 0x08, 0xD0, 0x08, 0xD0, 0x08, 0x70, 0x08, 0x70, 0x08, 0x30, 0x1C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x0C, 0x18, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x0C, 0x18, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x0C, 0x30, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x30, 0x0F, 0xE0, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0E, 0x38, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x8C, 0x0D, 0x4C, 0x06, 0x58, 0x03, 0xF0, 0x00, 0x40, 0x00, 0x48, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x0C, 0x30, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x30, 0x0F, 0xE0, 0x0C, 0xC0, 0x0C, 0x70, 0x0C, 0x30, 0x0C, 0x38, 0x1E, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE8, 0x0C, 0x18, 0x18, 0x08, 0x18, 0x00, 0x0E, 0x00, 0x03, 0xE0, 0x00, 0x30, 0x00, 0x18, 0x00, 0x18, 0x10, 0x18, 0x1C, 0x30, 0x17, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x31, 0x8C, 0x21, 0x84, 0x21, 0x84, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1C, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x18, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x1C, 0x18, 0x08, 0x18, 0x08, 0x18, 0x10, 0x0C, 0x10, 0x0C, 0x20, 0x0C, 0x20, 0x06, 0x40, 0x06, 0x40, 0x02, 0x80, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xEE, 0x18, 0xC4, 0x18, 0xC4, 0x18, 0xC4, 0x0C, 0xC4, 0x0C, 0xC8, 0x0D, 0x68, 0x0D, 0x68, 0x0D, 0x68, 0x06, 0x28, 0x06, 0x30, 0x06, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1C, 0x0C, 0x08, 0x06, 0x18, 0x07, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0x60, 0x06, 0x60, 0x04, 0x30, 0x08, 0x18, 0x1C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x1E, 0x38, 0x0C, 0x1C, 0x18, 0x0E, 0x30, 0x07, 0x60, 0x03, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xF8, 0x20, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x08, 0x30, 0x18, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x0C, 0x60, 0x00, 0x60, 0x07, 0xE0, 0x0C, 0x60, 0x0C, 0x60, 0x07, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0xE0, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x0B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x30, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x30, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x07, 0xE0, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x07, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x30, 0x0C, 0x30, 0x0F, 0xF0, 0x0C, 0x00, 0x0C, 0x30, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x98, 0x01, 0x80, 0x01, 0x80, 0x07, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x0C, 0xC0, 0x0C, 0xC0, 0x07, 0x80, 0x0C, 0x00, 0x0F, 0x80, 0x1C, 0xE0, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0xE0, 0x07, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0E, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x0C, 0xC0, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x78, 0x06, 0x30, 0x06, 0x60, 0x07, 0xC0, 0x07, 0x60, 0x06, 0x30, 0x0E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x7C, 0x18, 0xC6, 0x18, 0xC6, 0x18, 0xC6, 0x18, 0xC6, 0x18, 0xC6, 0x3D, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0xE0, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x1E, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xF0, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x07, 0xE0, 0x06, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x03, 0xF0, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xF0, 0x06, 0x18, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x03, 0x00, 0x01, 0xE0, 0x00, 0x30, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x07, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x90, 0x01, 0x90, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x70, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x70, 0x07, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x1C, 0x18, 0x08, 0x0C, 0x10, 0x06, 0x20, 0x03, 0x40, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xEE, 0x18, 0xC4, 0x08, 0xCC, 0x0D, 0x68, 0x05, 0x28, 0x06, 0x30, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x0C, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x03, 0x60, 0x0C, 0x30, 0x3E, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1C, 0x0E, 0x08, 0x06, 0x10, 0x03, 0x20, 0x03, 0x40, 0x01, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x04, 0x30, 0x00, 0x60, 0x01, 0x80, 0x03, 0x00, 0x06, 0x10, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x01, 0x80, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x3F, 0x80, 0x61, 0xC3, 0x00, 0xFE, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0F, 0xF0, 0x01, 0x00, 0x03, 0x80, 0x05, 0x40, 0x09, 0xB0, 0x11, 0x08, 0x16, 0x88, 0x08, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x1F, 0xF8, 0x01, 0x00, 0x01, 0x80, 0x03, 0x60, 0x05, 0x50, 0x09, 0x48, 0x08, 0x84, 0x11, 0x44, 0x0E, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x20, 0x08, 0x10, 0x08, 0x18, 0x08, 0x08, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x20, 0x10, 0x10, 0x10, 0x1C, 0x18, 0x08, 0x08, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x04, 0x80, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x60, 0x01, 0x80, 0x02, 0x00, 0x0F, 0xE0, 0x00, 0x30, 0x00, 0x10, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x00, 0x0F, 0xE0, 0x00, 0x30, 0x00, 0x18, 0x00, 0x10, 0x00, 0x30, 0x00, 0x60, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x80, 0x02, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0xC8, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x80, 0x08, 0xC4, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x60, 0x04, 0x30, 0x0E, 0x00, 0x04, 0x60, 0x05, 0x90, 0x06, 0x08, 0x0C, 0x08, 0x14, 0x90, 0x0C, 0x60, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0x04, 0x0C, 0x04, 0x00, 0x1F, 0x30, 0x04, 0x48, 0x04, 0x84, 0x05, 0x04, 0x06, 0x04, 0x0C, 0x88, 0x14, 0x50, 0x0C, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x11, 0x10, 0x0F, 0x88, 0x01, 0x48, 0x02, 0x44, 0x02, 0x44, 0x04, 0x44, 0x04, 0x4C, 0x08, 0x88, 0x08, 0x80, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x06, 0x01, 0x00, 0x11, 0x16, 0x0F, 0x88, 0x01, 0x48, 0x02, 0x44, 0x02, 0x44, 0x04, 0x44, 0x04, 0x4C, 0x08, 0x88, 0x08, 0x80, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0xF0, 0x0F, 0x00, 0x00, 0x80, 0x00, 0xF0, 0x0F, 0x40, 0x00, 0x40, 0x00, 0x20, 0x03, 0x20, 0x04, 0xD0, 0x04, 0x20, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x08, 0x02, 0x06, 0x02, 0x08, 0x01, 0xF6, 0x0F, 0x00, 0x00, 0x80, 0x00, 0xF0, 0x0F, 0x40, 0x00, 0x40, 0x00, 0x20, 0x03, 0x20, 0x04, 0xD0, 0x04, 0x20, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x48, 0x00, 0xC6, 0x01, 0x80, 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x30, 0x10, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x18, 0x10, 0x08, 0x10, 0x08, 0x10, 0x0C, 0x10, 0x05, 0x10, 0x06, 0x10, 0x04, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x03, 0x10, 0x24, 0x10, 0x13, 0x10, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x18, 0x10, 0x08, 0x10, 0x08, 0x10, 0x0C, 0x10, 0x05, 0x10, 0x06, 0x10, 0x04, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0xE0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x0C, 0x38, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x08, 0x0F, 0xC6, 0x00, 0xE0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x0C, 0x38, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0xF0, 0x0E, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x03, 0x30, 0x04, 0xC0, 0x04, 0x20, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x08, 0x02, 0x06, 0x02, 0x08, 0x01, 0x06, 0x01, 0xF0, 0x0E, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x03, 0x30, 0x04, 0xC0, 0x04, 0x20, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x08, 0x06, 0x10, 0x03, 0x20, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x0C, 0x04, 0x10, 0x04, 0x0C, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x08, 0x06, 0x10, 0x03, 0x20, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x1F, 0xFC, 0x00, 0x80, 0x01, 0x80, 0x02, 0x80, 0x02, 0x80, 0x01, 0x40, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x86, 0x00, 0x88, 0x00, 0x86, 0x00, 0x80, 0x1F, 0xFC, 0x00, 0x80, 0x01, 0x80, 0x02, 0x80, 0x02, 0x80, 0x01, 0x40, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x20, 0x02, 0x20, 0x1F, 0xFC, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0xA0, 0x02, 0x40, 0x02, 0x00, 0x02, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x28, 0x02, 0x26, 0x02, 0x20, 0x1F, 0xFC, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0xA0, 0x02, 0x40, 0x02, 0x00, 0x02, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x02, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x70, 0x0B, 0x80, 0x1C, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x70, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x07, 0xC8, 0x02, 0x46, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x70, 0x0B, 0x80, 0x1C, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x38, 0x1F, 0x0C, 0x04, 0x08, 0x04, 0x10, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0C, 0x80, 0x18, 0x80, 0x10, 0x40, 0x30, 0x3C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x03, 0x04, 0x04, 0x04, 0x3B, 0x1F, 0x0C, 0x04, 0x08, 0x04, 0x10, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0C, 0x80, 0x18, 0x80, 0x10, 0x40, 0x30, 0x3C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xA0, 0x0C, 0x90, 0x07, 0xE0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xB0, 0x00, 0xC8, 0x01, 0x8C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x83, 0x00, 0xA4, 0x0C, 0x93, 0x07, 0xE0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xB0, 0x00, 0xC8, 0x01, 0x8C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xE0, 0x07, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x23, 0x88, 0x1C, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x30, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x08, 0x00, 0x06, 0x00, 0x70, 0x23, 0x88, 0x1C, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x30, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x03, 0xC0, 0x1D, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x30, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x03, 0x00, 0x04, 0x00, 0x3B, 0x03, 0xC0, 0x1D, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x30, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x40, 0x01, 0x80, 0x03, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x06, 0x01, 0x08, 0x01, 0x06, 0x01, 0x00, 0x01, 0x40, 0x01, 0x80, 0x03, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x30, 0x1F, 0x18, 0x04, 0x08, 0x04, 0x10, 0x04, 0x20, 0x04, 0x20, 0x04, 0x10, 0x0C, 0x10, 0x18, 0xD0, 0x11, 0x38, 0x30, 0x94, 0x20, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x08, 0x08, 0xF0, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x12, 0x00, 0x0C, 0x8C, 0x08, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x70, 0x01, 0x88, 0x17, 0x04, 0x15, 0x04, 0x0A, 0x04, 0x0A, 0x04, 0x14, 0x04, 0x2A, 0x38, 0x29, 0x4C, 0x10, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x60, 0x3C, 0x90, 0x09, 0x08, 0x09, 0x04, 0x2A, 0x04, 0x2C, 0x04, 0x18, 0x08, 0x18, 0x38, 0x28, 0x4C, 0x58, 0x36, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x0C, 0x60, 0x11, 0x10, 0x21, 0x08, 0x21, 0x08, 0x21, 0x04, 0x21, 0x04, 0x12, 0x08, 0x12, 0x08, 0x14, 0x10, 0x08, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x20, 0x09, 0x24, 0x08, 0xF8, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xE0, 0x15, 0x38, 0x09, 0x44, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x23, 0x08, 0x24, 0x09, 0x23, 0x08, 0xF8, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xE0, 0x15, 0x38, 0x09, 0x44, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x25, 0x08, 0x22, 0x09, 0x24, 0x08, 0xF8, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xE0, 0x15, 0x38, 0x09, 0x44, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x06, 0x18, 0x1C, 0x18, 0x08, 0x14, 0x08, 0x14, 0x08, 0x12, 0x08, 0x10, 0x10, 0x10, 0x10, 0x08, 0x10, 0x08, 0x08, 0x10, 0x06, 0x60, 0x01, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x03, 0x00, 0x14, 0x06, 0x1B, 0x1C, 0x18, 0x08, 0x14, 0x08, 0x14, 0x08, 0x12, 0x08, 0x10, 0x10, 0x10, 0x10, 0x08, 0x10, 0x08, 0x08, 0x10, 0x06, 0x60, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x15, 0x06, 0x1A, 0x1C, 0x18, 0x08, 0x14, 0x08, 0x14, 0x08, 0x12, 0x08, 0x10, 0x10, 0x10, 0x10, 0x08, 0x10, 0x08, 0x08, 0x10, 0x06, 0x60, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x80, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x01, 0xE0, 0x06, 0x58, 0x3A, 0x4E, 0x11, 0x44, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x0C, 0x03, 0x10, 0x01, 0x8C, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x01, 0xE0, 0x06, 0x58, 0x3A, 0x4E, 0x11, 0x44, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x14, 0x01, 0x88, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x01, 0xE0, 0x06, 0x58, 0x3A, 0x4E, 0x11, 0x44, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x11, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x11, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x11, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x08, 0x20, 0x08, 0x20, 0x09, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xE0, 0x15, 0x38, 0x09, 0x44, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0xFB, 0x08, 0x24, 0x08, 0x23, 0x09, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xE0, 0x15, 0x38, 0x09, 0x44, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x08, 0x25, 0x08, 0x22, 0x09, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xE0, 0x15, 0x38, 0x09, 0x44, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x03, 0xE0, 0x00, 0x80, 0x00, 0x80, 0x07, 0xF0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x06, 0x80, 0x09, 0xC0, 0x13, 0x60, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x01, 0x00, 0x02, 0x10, 0x02, 0x10, 0x04, 0x10, 0x14, 0x30, 0x2E, 0x20, 0x49, 0xA0, 0x50, 0x60, 0x50, 0xB0, 0x21, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x04, 0x0C, 0x04, 0x12, 0x04, 0x10, 0x0C, 0x10, 0x16, 0x08, 0x16, 0x08, 0x0C, 0x08, 0x04, 0x08, 0x04, 0x08, 0x06, 0x10, 0x0B, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x80, 0x13, 0xC0, 0x1C, 0xA0, 0x08, 0x90, 0x0D, 0x88, 0x13, 0x04, 0x21, 0x04, 0x22, 0x88, 0x12, 0x48, 0x14, 0x10, 0x08, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x01, 0x80, 0x03, 0x20, 0x05, 0x10, 0x03, 0x08, 0x01, 0xC8, 0x01, 0x08, 0x01, 0x08, 0x01, 0x10, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x40, 0x04, 0x80, 0x02, 0x10, 0x02, 0x68, 0x0B, 0x84, 0x06, 0x04, 0x01, 0x28, 0x01, 0x10, 0x00, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x08, 0x08, 0x34, 0x04, 0xC4, 0x37, 0x02, 0x0E, 0x02, 0x01, 0x24, 0x01, 0x18, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x78, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x70, 0x08, 0xA8, 0x09, 0x64, 0x09, 0x24, 0x09, 0x24, 0x09, 0x24, 0x09, 0x24, 0x0A, 0xA8, 0x0E, 0x70, 0x04, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x50, 0x10, 0xEC, 0x11, 0x24, 0x11, 0x22, 0x11, 0x22, 0x11, 0x22, 0x11, 0x22, 0x11, 0x22, 0x10, 0xA2, 0x12, 0x62, 0x14, 0x0C, 0x08, 0x30, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0xE0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x03, 0xA0, 0x04, 0x20, 0x02, 0x58, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0xE0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x03, 0xA0, 0x04, 0x70, 0x04, 0x58, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x60, 0x01, 0x80, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0xF0, 0x03, 0x98, 0x00, 0x08, 0x00, 0x18, 0x00, 0x70, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x05, 0x80, 0x06, 0xC0, 0x06, 0x40, 0x0E, 0x20, 0x04, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xC0, 0x06, 0x40, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x01, 0x70, 0x03, 0x88, 0x06, 0x04, 0x0C, 0x04, 0x18, 0xC4, 0x01, 0x28, 0x00, 0x90, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x60, 0x3C, 0x90, 0x09, 0x10, 0x09, 0x10, 0x2A, 0x20, 0x2C, 0x20, 0x18, 0x20, 0x18, 0x20, 0x28, 0x22, 0x58, 0x14, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xC0, 0x06, 0x40, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x01, 0x70, 0x03, 0x88, 0x06, 0x0C, 0x0C, 0x04, 0x18, 0x0C, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x04, 0xC0, 0x05, 0x30, 0x06, 0x08, 0x0C, 0x08, 0x14, 0x10, 0x0C, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x04, 0x30, 0x04, 0xC8, 0x05, 0x04, 0x06, 0x04, 0x0C, 0x08, 0x14, 0x10, 0x0C, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x24, 0x00, 0x04, 0x60, 0x05, 0x90, 0x06, 0x08, 0x0C, 0x0C, 0x18, 0x04, 0x28, 0x0C, 0x48, 0x68, 0x28, 0x88, 0x10, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x80, 0x01, 0x60, 0x03, 0x90, 0x04, 0x10, 0x00, 0xA0, 0x01, 0x40, 0x00, 0x80, 0x03, 0x00, 0x04, 0x10, 0x0A, 0x28, 0x15, 0x4C, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x07, 0xC0, 0x01, 0x00, 0x02, 0x18, 0x04, 0x24, 0x0F, 0x48, 0x19, 0xB0, 0x00, 0xC0, 0x03, 0x80, 0x04, 0x80, 0x08, 0x80, 0x04, 0x10, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0xC0, 0x05, 0x20, 0x06, 0x20, 0x04, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x14, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x18, 0x01, 0x60, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x04, 0x00, 0x98, 0x00, 0xE0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x01, 0x80, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x80, 0x07, 0x00, 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x01, 0xE0, 0x0F, 0x80, 0x30, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x0F, 0xF8, 0x08, 0x08, 0x08, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x0F, 0xFE, 0x08, 0x02, 0x08, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x0F, 0xF8, 0x00, 0x60, 0x00, 0xA0, 0x01, 0x20, 0x02, 0x20, 0x04, 0xA0, 0x08, 0x60, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x1F, 0xFE, 0x00, 0x30, 0x00, 0x50, 0x00, 0x90, 0x01, 0x10, 0x02, 0x10, 0x04, 0x10, 0x08, 0x10, 0x10, 0x50, 0x00, 0x30, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x10, 0x04, 0x10, 0x08, 0x10, 0x10, 0xA0, 0x20, 0x40, 0x00, 0x00, 0x00, 0x08, 0x01, 0x06, 0x01, 0x08, 0x01, 0x06, 0x3F, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x10, 0x04, 0x10, 0x08, 0x10, 0x10, 0xA0, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0xF8, 0x0F, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xF8, 0x0F, 0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x06, 0x02, 0x08, 0x01, 0x06, 0x01, 0xF8, 0x0F, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xF8, 0x0F, 0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x07, 0xF0, 0x04, 0x10, 0x08, 0x20, 0x10, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x06, 0x02, 0x08, 0x04, 0x06, 0x07, 0xF0, 0x04, 0x10, 0x08, 0x20, 0x10, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x0B, 0xF8, 0x10, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x06, 0x02, 0x00, 0x04, 0x06, 0x0B, 0xF8, 0x10, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x08, 0x00, 0x06, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x3F, 0xFE, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x26, 0x02, 0x28, 0x02, 0x26, 0x02, 0x20, 0x3F, 0xFE, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0C, 0x08, 0x06, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x0C, 0x08, 0x06, 0x06, 0x00, 0x00, 0x00, 0x04, 0x0C, 0x08, 0x06, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x08, 0x0F, 0xF6, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0xFC, 0x3F, 0x04, 0x02, 0x08, 0x02, 0x10, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x02, 0x08, 0x02, 0x06, 0x02, 0xFC, 0x3F, 0x04, 0x02, 0x08, 0x02, 0x10, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x08, 0x10, 0x0C, 0x10, 0x04, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x08, 0x00, 0x16, 0x08, 0x10, 0x0C, 0x10, 0x04, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x07, 0xF0, 0x04, 0x10, 0x08, 0x20, 0x12, 0x20, 0x01, 0x40, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x06, 0x02, 0x08, 0x04, 0x06, 0x07, 0xF0, 0x04, 0x10, 0x08, 0x20, 0x12, 0x20, 0x01, 0x40, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x3F, 0xFC, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0xE8, 0x0F, 0x06, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x3F, 0xFC, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x05, 0x20, 0x05, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x08, 0x19, 0x88, 0x08, 0x90, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x08, 0x11, 0x0E, 0x19, 0x88, 0x08, 0x90, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x0F, 0xE8, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x80, 0x02, 0x40, 0x02, 0x20, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x06, 0x02, 0x08, 0x02, 0x06, 0x02, 0x00, 0x03, 0x00, 0x02, 0x80, 0x02, 0x40, 0x02, 0x20, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x3F, 0xFE, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x04, 0x20, 0x02, 0x20, 0x01, 0x40, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x02, 0xA0, 0x04, 0x90, 0x08, 0x88, 0x10, 0x80, 0x20, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x30, 0x00, 0x60, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x20, 0x04, 0x10, 0x04, 0x08, 0x08, 0x08, 0x10, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x08, 0x01, 0x06, 0x03, 0x00, 0x02, 0x20, 0x04, 0x10, 0x04, 0x08, 0x08, 0x08, 0x10, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0A, 0x01, 0x04, 0x03, 0x00, 0x02, 0x20, 0x04, 0x10, 0x04, 0x08, 0x08, 0x08, 0x10, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x30, 0x02, 0xC0, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x02, 0x08, 0x02, 0x06, 0x02, 0x30, 0x02, 0xC0, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x0A, 0x02, 0x04, 0x02, 0x30, 0x02, 0xC0, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x08, 0x1F, 0xF6, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x1F, 0xFA, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0x00, 0x08, 0x80, 0x10, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x02, 0x00, 0x05, 0x00, 0x08, 0x80, 0x10, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x05, 0x00, 0x08, 0x80, 0x10, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x3F, 0xFE, 0x01, 0xC0, 0x02, 0xA0, 0x04, 0x90, 0x08, 0x88, 0x10, 0x84, 0x20, 0x82, 0x02, 0x80, 0x01, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x88, 0x00, 0x86, 0x00, 0x80, 0x3F, 0xFE, 0x02, 0xA0, 0x04, 0x90, 0x08, 0x88, 0x10, 0x84, 0x20, 0x82, 0x02, 0x80, 0x01, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x85, 0x00, 0x82, 0x00, 0x80, 0x3F, 0xFE, 0x02, 0xA0, 0x04, 0x90, 0x08, 0x88, 0x10, 0x84, 0x20, 0x82, 0x02, 0x80, 0x01, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x01, 0xE0, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x10, 0x08, 0x08, 0x1F, 0xF4, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x10, 0x04, 0x20, 0x02, 0x20, 0x01, 0xC0, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x3F, 0xFC, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0F, 0xF8, 0x01, 0x08, 0x01, 0x10, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x1F, 0xFC, 0x02, 0x08, 0x02, 0x10, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x07, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x1F, 0xFC, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x44, 0x08, 0x48, 0x10, 0x50, 0x10, 0x60, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x04, 0x04, 0x08, 0x04, 0x10, 0x04, 0x20, 0x04, 0x40, 0x04, 0x80, 0x05, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFC, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x0F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x08, 0x08, 0x08, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFE, 0x08, 0x02, 0x08, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x0F, 0xF0, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x3F, 0xFE, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x10, 0x00, 0x20, 0x00, 0xC0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x08, 0x1F, 0xF8, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x03, 0x00, 0x44, 0x00, 0x43, 0x0F, 0xFE, 0x08, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x07, 0xF8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x01, 0x08, 0x01, 0x08, 0x02, 0x28, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0xF0, 0x04, 0x40, 0x08, 0x40, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x01, 0x40, 0x03, 0x60, 0x02, 0x60, 0x02, 0x60, 0x04, 0x30, 0x07, 0xF0, 0x04, 0x30, 0x08, 0x18, 0x08, 0x18, 0x08, 0x18, 0x1C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x0E, 0x38, 0x0C, 0x18, 0x0C, 0x38, 0x0C, 0x70, 0x0F, 0xC0, 0x0C, 0x70, 0x0C, 0x38, 0x0C, 0x18, 0x0C, 0x18, 0x0E, 0x30, 0x1F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x0E, 0x18, 0x0C, 0x08, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0x60, 0x02, 0x60, 0x02, 0x60, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x08, 0x18, 0x08, 0x18, 0x08, 0x18, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x0E, 0x18, 0x0C, 0x08, 0x0C, 0x00, 0x0C, 0x20, 0x0F, 0xE0, 0x0C, 0x20, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x08, 0x0E, 0x18, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xF8, 0x20, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x08, 0x30, 0x18, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0F, 0xF8, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x1E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x0C, 0x18, 0x18, 0x0C, 0x1A, 0x2C, 0x1B, 0xEC, 0x1B, 0xEC, 0x1A, 0x2C, 0x18, 0x0C, 0x0C, 0x18, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x78, 0x0C, 0x30, 0x0C, 0x60, 0x0C, 0xC0, 0x0D, 0x80, 0x0F, 0x80, 0x0D, 0xC0, 0x0C, 0xE0, 0x0C, 0x70, 0x0C, 0x38, 0x0C, 0x18, 0x1E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x01, 0x40, 0x03, 0x60, 0x02, 0x60, 0x02, 0x60, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x08, 0x18, 0x08, 0x18, 0x08, 0x18, 0x1C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0E, 0x1C, 0x1C, 0x16, 0x2C, 0x16, 0x2C, 0x13, 0x2C, 0x13, 0x4C, 0x11, 0x4C, 0x11, 0xCC, 0x10, 0x8C, 0x10, 0x8C, 0x38, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x0E, 0x08, 0x0B, 0x08, 0x0B, 0x08, 0x09, 0x88, 0x09, 0x88, 0x08, 0xC8, 0x08, 0xC8, 0x08, 0x68, 0x08, 0x68, 0x08, 0x38, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x0F, 0xF8, 0x08, 0x08, 0x00, 0x00, 0x04, 0x10, 0x07, 0xF0, 0x07, 0xF0, 0x04, 0x10, 0x00, 0x00, 0x08, 0x08, 0x0F, 0xF8, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x0C, 0x18, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x0C, 0x18, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x1E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x0E, 0x30, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0E, 0x30, 0x0F, 0xE0, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x08, 0x08, 0x08, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x08, 0x08, 0x0F, 0xF8, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x11, 0x88, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0E, 0x6C, 0x1B, 0xC8, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x01, 0x80, 0x0F, 0xF0, 0x19, 0x98, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x19, 0x98, 0x0F, 0xF0, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1C, 0x0C, 0x08, 0x06, 0x18, 0x07, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0x60, 0x06, 0x60, 0x04, 0x30, 0x08, 0x18, 0x1C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0xC4, 0x11, 0x88, 0x11, 0x88, 0x11, 0x88, 0x19, 0x98, 0x0D, 0xB0, 0x03, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x0C, 0x18, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x1C, 0x18, 0x0E, 0x30, 0x07, 0x60, 0x11, 0x44, 0x1F, 0x7C, 0x1F, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x20, 0x0F, 0xC0, 0x0C, 0xC0, 0x18, 0xC0, 0x18, 0xC0, 0x18, 0xC0, 0x18, 0xC0, 0x18, 0xC0, 0x0D, 0x50, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x60, 0x06, 0x30, 0x06, 0x30, 0x06, 0xE0, 0x07, 0x80, 0x06, 0xE0, 0x06, 0x30, 0x06, 0x30, 0x07, 0xE0, 0x06, 0xC0, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x08, 0x0A, 0x10, 0x02, 0x10, 0x01, 0x20, 0x01, 0x20, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x06, 0x70, 0x0C, 0x20, 0x06, 0x00, 0x03, 0x00, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x06, 0x70, 0x0C, 0x20, 0x06, 0x00, 0x03, 0xC0, 0x06, 0x00, 0x0C, 0x20, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x02, 0x60, 0x01, 0xC0, 0x00, 0x80, 0x03, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x06, 0x00, 0x01, 0xE0, 0x00, 0x10, 0x01, 0xE0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x05, 0xB0, 0x0F, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x03, 0x60, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x07, 0xB0, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x20, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x10, 0x06, 0x38, 0x06, 0x40, 0x06, 0x80, 0x07, 0x80, 0x06, 0xC0, 0x06, 0x60, 0x06, 0x30, 0x06, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x80, 0x01, 0x40, 0x01, 0x40, 0x02, 0x20, 0x02, 0x28, 0x04, 0x18, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0E, 0x30, 0x0B, 0x74, 0x09, 0xDC, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x18, 0x06, 0x08, 0x06, 0x10, 0x02, 0x10, 0x03, 0x20, 0x01, 0x20, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x80, 0x02, 0x20, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x60, 0x01, 0x80, 0x02, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x10, 0x01, 0xE0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x03, 0x60, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x0F, 0xF8, 0x12, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x48, 0x1C, 0xD0, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x04, 0x18, 0x0C, 0x18, 0x0C, 0x30, 0x0F, 0x60, 0x0D, 0x80, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x03, 0x60, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x13, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x20, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x30, 0x06, 0x10, 0x06, 0x18, 0x06, 0x08, 0x06, 0x08, 0x06, 0x08, 0x06, 0x18, 0x07, 0x30, 0x03, 0xE0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x80, 0x0D, 0x60, 0x19, 0x30, 0x31, 0x18, 0x31, 0x18, 0x19, 0x30, 0x0D, 0x60, 0x03, 0x80, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x0A, 0x10, 0x01, 0x20, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x40, 0x01, 0x40, 0x02, 0x20, 0x02, 0x28, 0x04, 0x18, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, 0x00, 0x39, 0x00, 0x09, 0x60, 0x11, 0x30, 0x11, 0x10, 0x11, 0x10, 0x19, 0x30, 0x0D, 0x60, 0x03, 0x80, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x04, 0x10, 0x0C, 0x18, 0x18, 0x88, 0x18, 0x8C, 0x19, 0x4C, 0x1D, 0x5C, 0x0E, 0x38, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x01, 0x40, 0x03, 0x60, 0x02, 0x60, 0x02, 0x60, 0x04, 0x30, 0x07, 0xF0, 0x04, 0x30, 0x08, 0x18, 0x08, 0x18, 0x08, 0x18, 0x1C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x0E, 0x18, 0x0C, 0x08, 0x0C, 0x00, 0x0C, 0x00, 0x0F, 0xE0, 0x0C, 0x70, 0x0C, 0x38, 0x0C, 0x18, 0x0C, 0x18, 0x0E, 0x30, 0x1F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x0E, 0x38, 0x0C, 0x18, 0x0C, 0x38, 0x0C, 0x70, 0x0F, 0xC0, 0x0C, 0x70, 0x0C, 0x38, 0x0C, 0x18, 0x0C, 0x18, 0x0E, 0x30, 0x1F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x0E, 0x18, 0x0C, 0x08, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x02, 0x30, 0x02, 0x30, 0x02, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x08, 0x30, 0x08, 0x30, 0x08, 0x30, 0x3F, 0xFC, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x0E, 0x18, 0x0C, 0x08, 0x0C, 0x00, 0x0C, 0x20, 0x0F, 0xE0, 0x0C, 0x20, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x08, 0x0E, 0x18, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x1F, 0xF8, 0x0C, 0x18, 0x0C, 0x08, 0x0C, 0x00, 0x0C, 0x20, 0x0F, 0xE0, 0x0C, 0x20, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x08, 0x0E, 0x18, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0xCE, 0x39, 0x9C, 0x09, 0x90, 0x09, 0x90, 0x05, 0xA0, 0x0D, 0xB0, 0x0F, 0xF0, 0x0D, 0xB0, 0x19, 0x98, 0x19, 0x98, 0x31, 0x8C, 0x7B, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x14, 0x70, 0x18, 0x38, 0x10, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x01, 0xC0, 0x00, 0x70, 0x00, 0x38, 0x10, 0x1C, 0x08, 0x38, 0x06, 0x70, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3C, 0x0C, 0x18, 0x0C, 0x38, 0x0C, 0x58, 0x0C, 0x58, 0x0C, 0x98, 0x0C, 0x98, 0x0D, 0x18, 0x0D, 0x18, 0x0E, 0x18, 0x0C, 0x18, 0x1E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x30, 0x03, 0xE0, 0x1E, 0x3C, 0x0C, 0x18, 0x0C, 0x38, 0x0C, 0x58, 0x0C, 0x58, 0x0C, 0x98, 0x0C, 0x98, 0x0D, 0x18, 0x0D, 0x18, 0x0E, 0x18, 0x0C, 0x18, 0x1E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x18, 0x0C, 0x34, 0x0C, 0x60, 0x0C, 0x80, 0x0D, 0x00, 0x0F, 0x80, 0x0C, 0xC0, 0x0C, 0x60, 0x0C, 0x70, 0x0C, 0x38, 0x0C, 0x18, 0x1E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x02, 0x30, 0x02, 0x30, 0x02, 0x30, 0x04, 0x30, 0x04, 0x30, 0x04, 0x30, 0x08, 0x30, 0x08, 0x30, 0x28, 0x30, 0x38, 0x30, 0x30, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0E, 0x1C, 0x1C, 0x16, 0x2C, 0x16, 0x2C, 0x13, 0x2C, 0x13, 0x4C, 0x11, 0x4C, 0x11, 0xCC, 0x10, 0x8C, 0x10, 0x8C, 0x38, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0F, 0xF8, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x1E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x0C, 0x18, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x0C, 0x18, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x1E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x0E, 0x30, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0E, 0x30, 0x0F, 0xE0, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x38, 0x0C, 0x18, 0x18, 0x08, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x0C, 0x08, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x11, 0x88, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1C, 0x0C, 0x08, 0x0C, 0x08, 0x0E, 0x08, 0x06, 0x10, 0x07, 0x10, 0x03, 0x20, 0x03, 0x60, 0x01, 0xC0, 0x00, 0x80, 0x09, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1C, 0x0C, 0x08, 0x06, 0x18, 0x07, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0x60, 0x06, 0x60, 0x04, 0x30, 0x08, 0x18, 0x1C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x01, 0x80, 0x0F, 0xF0, 0x19, 0x98, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x19, 0x98, 0x0F, 0xF0, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x1F, 0xFE, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x38, 0x06, 0x78, 0x03, 0xD8, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xDE, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xDE, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x7F, 0xFF, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x16, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0xE0, 0x07, 0x30, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x07, 0x30, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1D, 0x98, 0x18, 0xD8, 0x18, 0xD8, 0x18, 0xD8, 0x1D, 0x98, 0x3F, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0xE0, 0x07, 0x30, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x07, 0x30, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x0E, 0x30, 0x0C, 0x18, 0x08, 0x0C, 0x00, 0x0C, 0x00, 0x7C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x08, 0x18, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xF8, 0x19, 0x8C, 0x19, 0x06, 0x1B, 0x06, 0x1B, 0x06, 0x1F, 0x06, 0x1B, 0x06, 0x1B, 0x06, 0x1B, 0x06, 0x1B, 0x06, 0x19, 0x8C, 0x3C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFC, 0x06, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x06, 0x78, 0x03, 0xD8, 0x03, 0x18, 0x06, 0x18, 0x0C, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0xC0, 0x0C, 0x60, 0x08, 0x20, 0x03, 0xA0, 0x06, 0xE0, 0x0C, 0x20, 0x0C, 0x68, 0x06, 0xD8, 0x03, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0xE0, 0x03, 0x80, 0x04, 0x00, 0x05, 0xC0, 0x07, 0x60, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x06, 0x30, 0x06, 0x30, 0x06, 0x60, 0x07, 0xC0, 0x06, 0x60, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x06, 0x30, 0x06, 0x10, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x02, 0x60, 0x02, 0x60, 0x02, 0x60, 0x04, 0x60, 0x04, 0x60, 0x08, 0x60, 0x1F, 0xF8, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x0F, 0xF8, 0x0C, 0x00, 0x06, 0x08, 0x03, 0x30, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x07, 0xF8, 0x04, 0x00, 0x06, 0x08, 0x03, 0x30, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xD0, 0x19, 0x98, 0x05, 0xA0, 0x05, 0xA0, 0x03, 0xC0, 0x05, 0xA0, 0x09, 0x90, 0x1B, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xC0, 0x07, 0x60, 0x04, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x00, 0x60, 0x04, 0x30, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x78, 0x06, 0x30, 0x06, 0x30, 0x06, 0x70, 0x06, 0xB0, 0x07, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0F, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x0F, 0x78, 0x06, 0x70, 0x06, 0xB0, 0x07, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0F, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x10, 0x06, 0x38, 0x06, 0x40, 0x07, 0x80, 0x06, 0xC0, 0x06, 0x60, 0x06, 0x20, 0x06, 0x30, 0x0F, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x01, 0x30, 0x01, 0x30, 0x01, 0x30, 0x02, 0x30, 0x02, 0x30, 0x02, 0x30, 0x1C, 0x30, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1C, 0x0C, 0x38, 0x0A, 0x38, 0x0B, 0x58, 0x09, 0xD8, 0x09, 0x98, 0x09, 0x18, 0x1C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x78, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x07, 0xF0, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0F, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x03, 0x60, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0F, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xE0, 0x0F, 0xB0, 0x06, 0x18, 0x06, 0x18, 0x07, 0x30, 0x06, 0xC0, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x20, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x10, 0x03, 0x60, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x09, 0x90, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x38, 0x06, 0x10, 0x06, 0x10, 0x03, 0x20, 0x01, 0x60, 0x01, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x0E, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x05, 0xA0, 0x0F, 0xF0, 0x19, 0x98, 0x19, 0x98, 0x0F, 0xF0, 0x05, 0xA0, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x38, 0x06, 0x10, 0x06, 0x10, 0x03, 0x20, 0x01, 0xC0, 0x00, 0xC0, 0x01, 0x60, 0x02, 0x30, 0x04, 0x30, 0x0E, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x78, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0F, 0xF8, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x78, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x03, 0x70, 0x01, 0xF0, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xDC, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xDC, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x1F, 0xFC, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x16, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0xE0, 0x07, 0x30, 0x06, 0x18, 0x06, 0x18, 0x07, 0x30, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0D, 0x98, 0x0E, 0xD8, 0x0C, 0x78, 0x0C, 0x78, 0x0E, 0xD8, 0x1F, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0xE0, 0x07, 0x30, 0x06, 0x18, 0x06, 0x18, 0x07, 0x30, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x04, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0xF8, 0x00, 0x18, 0x04, 0x18, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x70, 0x0C, 0xD8, 0x0D, 0x8C, 0x0D, 0x8C, 0x0F, 0x8C, 0x0D, 0x8C, 0x0D, 0x8C, 0x0D, 0x8C, 0x0C, 0xD8, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x07, 0x70, 0x06, 0x30, 0x06, 0x30, 0x03, 0x70, 0x01, 0xF0, 0x03, 0x30, 0x0A, 0x30, 0x1E, 0x30, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x40, 0x08, 0xC0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0xC0, 0x07, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x40, 0x08, 0xC0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0xC0, 0x07, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x00, 0x07, 0x40, 0x08, 0xC0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0xC0, 0x07, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x07, 0x40, 0x08, 0xC0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0xC0, 0x07, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x40, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x00, 0x04, 0x20, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x40, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x00, 0x04, 0x20, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x40, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x00, 0x04, 0x20, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 0x80, 0x04, 0x40, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x00, 0x04, 0x20, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x40, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x40, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x40, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 0x80, 0x04, 0x40, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0xC0, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0xC0, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x09, 0x80, 0x06, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0xC0, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0xC0, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0xC0, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0xC0, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0xC0, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0xC0, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x00, 0x00, 0x03, 0x80, 0x04, 0x40, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x00, 0x04, 0x20, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x40, 0x08, 0xC0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0xC0, 0x07, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1A, 0xC0, 0x0D, 0x20, 0x09, 0x20, 0x09, 0x20, 0x09, 0x20, 0x09, 0x20, 0x09, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0D, 0x80, 0x06, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x00, 0x0D, 0x80, 0x06, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0D, 0x80, 0x06, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xB0, 0x04, 0x40, 0x04, 0x40, 0x03, 0x80, 0x04, 0x00, 0x04, 0x00, 0x07, 0xC0, 0x08, 0x20, 0x08, 0x20, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x3F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x01, 0x10, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x01, 0x10, 0x00, 0xA0, 0x00, 0x40, 0x00, 0xA0, 0x03, 0x10, 0x0C, 0x10, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xF8, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x1F, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x08, 0x08, 0x10, 0x11, 0x10, 0x20, 0xA0, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x20, 0x1F, 0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x03, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x01, 0x10, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x11, 0x00, 0x3F, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x08, 0x04, 0x08, 0x08, 0x10, 0x10, 0x50, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x02, 0x20, 0x04, 0x40, 0x04, 0x40, 0x08, 0x80, 0x08, 0x80, 0x11, 0x00, 0x08, 0x80, 0x08, 0x80, 0x04, 0x40, 0x04, 0x40, 0x02, 0x20, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFC, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x0F, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x08, 0x60, 0x09, 0xA0, 0x0E, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x40, 0x08, 0x80, 0x11, 0x00, 0x03, 0x00, 0x05, 0x00, 0x09, 0x00, 0x11, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x1F, 0xF8, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0A, 0x20, 0x09, 0x20, 0x08, 0xA0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xF0, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x20, 0x05, 0x20, 0x04, 0xC0, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7F, 0xFC, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0F, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x40, 0x10, 0x20, 0x3F, 0xF0, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x08, 0x10, 0x04, 0x20, 0x02, 0x40, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x08, 0x10, 0x10, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x08, 0x10, 0x10, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x7F, 0xFC, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x80, 0x08, 0x80, 0x09, 0x00, 0x08, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFC, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x1F, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x10, 0x08, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x20, 0x04, 0x20, 0x08, 0x40, 0x08, 0x40, 0x1F, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x10, 0x00, 0x20, 0x04, 0x20, 0x02, 0x40, 0x01, 0x40, 0x00, 0x80, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7F, 0xFC, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x80, 0x10, 0x80, 0x60, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x80, 0x08, 0x84, 0x10, 0x84, 0x60, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x20, 0x04, 0x20, 0x02, 0x40, 0x01, 0x40, 0x00, 0x80, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x20, 0x78, 0x3F, 0x88, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3, 0x8E, 0xE3, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x01, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x01, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0xFF, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFF, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0x80, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0x01, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFF, 0x01, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0x01, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFF, 0x01, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0x80, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0x00, 0xFF, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0x80, 0xFF, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0x01, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0x01, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xF0, 0x00, 0xF0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x03, 0x00, 0x07, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x0E, 0x70, 0x0E, 0x70, 0x04, 0x20, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x02, 0x20, 0x0F, 0xF8, 0x0F, 0xF8, 0x02, 0x20, 0x02, 0x20, 0x04, 0x40, 0x1F, 0xF0, 0x1F, 0xF0, 0x04, 0x40, 0x04, 0x40, 0x08, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x03, 0xF8, 0x0C, 0x88, 0x0C, 0x80, 0x06, 0x80, 0x01, 0xC0, 0x00, 0xB0, 0x01, 0x18, 0x19, 0x18, 0x0D, 0x30, 0x03, 0xC0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x04, 0x12, 0x08, 0x12, 0x10, 0x0C, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x18, 0x04, 0x24, 0x08, 0x24, 0x10, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x90, 0x03, 0x10, 0x03, 0x20, 0x01, 0x40, 0x03, 0x80, 0x05, 0x8C, 0x0C, 0xD8, 0x18, 0x70, 0x10, 0x60, 0x18, 0xF0, 0x0F, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x60, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x40, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x60, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x06, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x06, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x04, 0x10, 0x02, 0x20, 0x01, 0x40, 0x1F, 0xFC, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x0F, 0xF8, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x0C, 0x18, 0x0C, 0x18, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x30, 0x60, 0x30, 0x60, 0x18, 0xC0, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x06, 0x18, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x03, 0x80, 0x06, 0x20, 0x0C, 0x20, 0x1F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x00, 0x30, 0x00, 0x60, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x30, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x60, 0x00, 0xE0, 0x01, 0xE0, 0x02, 0xC0, 0x06, 0xC0, 0x0C, 0xC0, 0x18, 0xC0, 0x30, 0xC0, 0x3F, 0xF0, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x06, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0F, 0xC0, 0x0E, 0x60, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x0C, 0x00, 0x0D, 0xC0, 0x0E, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x07, 0xF8, 0x04, 0x18, 0x00, 0x30, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x80, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x0C, 0x18, 0x06, 0x70, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x0C, 0x18, 0x0C, 0x30, 0x0C, 0x30, 0x06, 0x70, 0x03, 0xF0, 0x00, 0x30, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x18, 0x18, 0x30, 0x0C, 0x38, 0x0C, 0x00, 0x38, 0x00, 0xE0, 0x00, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x04, 0x10, 0x08, 0x08, 0x11, 0xC4, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0x12, 0x34, 0x11, 0xCC, 0x08, 0x00, 0x04, 0x08, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xE0, 0x01, 0x70, 0x01, 0x70, 0x02, 0x30, 0x02, 0x30, 0x07, 0xF0, 0x04, 0x30, 0x04, 0x30, 0x08, 0x30, 0x1C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x06, 0x1C, 0x06, 0x0C, 0x06, 0x18, 0x0C, 0x30, 0x0F, 0xF0, 0x0C, 0x18, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x70, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x03, 0x1C, 0x0E, 0x0C, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x30, 0x00, 0x18, 0x10, 0x0C, 0x60, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x06, 0x70, 0x06, 0x18, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x30, 0x18, 0xE0, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFC, 0x06, 0x0C, 0x06, 0x04, 0x06, 0x00, 0x0C, 0x20, 0x0F, 0xE0, 0x0C, 0x20, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x10, 0x18, 0x30, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFC, 0x06, 0x0C, 0x06, 0x04, 0x06, 0x40, 0x0C, 0x40, 0x0F, 0xC0, 0x0C, 0x40, 0x0C, 0x40, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x06, 0x1C, 0x0C, 0x0C, 0x18, 0x04, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x78, 0x30, 0x30, 0x18, 0x30, 0x0C, 0x30, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0F, 0xF8, 0x0C, 0x18, 0x0C, 0x18, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x3C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x38, 0xC0, 0x18, 0xC0, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x3C, 0x06, 0x18, 0x06, 0x30, 0x06, 0x60, 0x0C, 0x80, 0x0D, 0x80, 0x0F, 0x80, 0x0C, 0xC0, 0x0C, 0xE0, 0x18, 0x70, 0x18, 0x38, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x08, 0x18, 0x10, 0x18, 0x30, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x0C, 0x0C, 0x0E, 0x1C, 0x0E, 0x2C, 0x16, 0x2C, 0x13, 0x6C, 0x13, 0x4C, 0x13, 0x4C, 0x23, 0xD8, 0x21, 0x18, 0x21, 0x18, 0x70, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1C, 0x06, 0x08, 0x07, 0x08, 0x0B, 0x08, 0x09, 0x90, 0x09, 0x90, 0x09, 0x90, 0x08, 0xD0, 0x10, 0xD0, 0x10, 0xF0, 0x10, 0x60, 0x38, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x06, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x30, 0x18, 0x60, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x06, 0x18, 0x06, 0x0C, 0x06, 0x0C, 0x0C, 0x18, 0x0C, 0x30, 0x0F, 0xE0, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x06, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x33, 0x30, 0x1D, 0x60, 0x0F, 0xC0, 0x01, 0x10, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x06, 0x18, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x0C, 0x30, 0x0F, 0xE0, 0x0C, 0x80, 0x18, 0xE0, 0x18, 0x60, 0x18, 0x70, 0x3C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF4, 0x06, 0x0C, 0x0C, 0x04, 0x0C, 0x00, 0x06, 0x00, 0x03, 0xE0, 0x00, 0x30, 0x00, 0x18, 0x00, 0x18, 0x10, 0x18, 0x1C, 0x30, 0x17, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x31, 0x8C, 0x21, 0x84, 0x21, 0x84, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1C, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x08, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x30, 0x20, 0x18, 0x60, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1C, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x10, 0x0C, 0x10, 0x0C, 0x20, 0x0C, 0x20, 0x06, 0x40, 0x06, 0x80, 0x07, 0x80, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xEE, 0x18, 0xC4, 0x18, 0xC4, 0x18, 0xC4, 0x18, 0xC4, 0x18, 0xC8, 0x19, 0x68, 0x19, 0x68, 0x1B, 0x68, 0x0C, 0x68, 0x0C, 0x70, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1E, 0x06, 0x0C, 0x06, 0x18, 0x03, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0x60, 0x06, 0x60, 0x0C, 0x20, 0x18, 0x30, 0x3C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x1E, 0x1C, 0x0C, 0x0E, 0x18, 0x07, 0x30, 0x03, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x18, 0x18, 0x10, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x10, 0x30, 0x30, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xD0, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x18, 0xE0, 0x19, 0xA8, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0xE0, 0x07, 0x18, 0x06, 0x18, 0x06, 0x18, 0x0E, 0x30, 0x0A, 0x30, 0x11, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x30, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x60, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x07, 0x60, 0x0C, 0xE0, 0x0C, 0x60, 0x0C, 0x60, 0x18, 0x60, 0x18, 0xA8, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x30, 0x0C, 0x30, 0x0F, 0xF0, 0x18, 0x00, 0x18, 0x20, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x98, 0x01, 0x80, 0x01, 0x80, 0x07, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x60, 0x00, 0x60, 0x08, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0xE0, 0x07, 0x30, 0x06, 0x30, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x68, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x03, 0x00, 0x05, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x20, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x02, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x09, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x30, 0x06, 0x68, 0x06, 0xC0, 0x0F, 0xC0, 0x0F, 0x60, 0x0C, 0x34, 0x1C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x20, 0x06, 0x40, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x70, 0x59, 0x98, 0x19, 0x98, 0x19, 0x98, 0x33, 0x30, 0x33, 0x32, 0x33, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x16, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0C, 0x60, 0x0C, 0x68, 0x0C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0C, 0x60, 0x0C, 0x60, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xF0, 0x16, 0x18, 0x06, 0x18, 0x06, 0x30, 0x07, 0x30, 0x06, 0xE0, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8, 0x06, 0x30, 0x06, 0x30, 0x0C, 0x30, 0x0C, 0x70, 0x07, 0xB0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x60, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xE0, 0x0B, 0x10, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x03, 0x18, 0x03, 0x00, 0x01, 0xE0, 0x00, 0x30, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x07, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x10, 0x03, 0x20, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x30, 0x16, 0x30, 0x06, 0x30, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x68, 0x07, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x40, 0x16, 0x60, 0x06, 0x20, 0x06, 0x20, 0x0C, 0x20, 0x0C, 0x20, 0x0E, 0x60, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xC8, 0x2C, 0xCC, 0x0C, 0xCC, 0x0D, 0x68, 0x0D, 0x68, 0x0D, 0x78, 0x06, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x30, 0x12, 0x68, 0x03, 0xC0, 0x01, 0x80, 0x03, 0xC0, 0x06, 0x68, 0x1C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x18, 0x13, 0x18, 0x03, 0x18, 0x06, 0x30, 0x06, 0x70, 0x03, 0xB0, 0x00, 0x30, 0x00, 0x60, 0x08, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xD0, 0x04, 0x30, 0x00, 0x60, 0x01, 0x80, 0x03, 0x00, 0x06, 0x10, 0x05, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x30, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x06, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x3F, 0x80, 0x61, 0xC3, 0x00, 0xFE, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xF0, 0x00, 0xF0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x03, 0x00, 0x07, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x0E, 0x70, 0x0E, 0x70, 0x04, 0x20, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x02, 0x20, 0x0F, 0xF8, 0x0F, 0xF8, 0x02, 0x20, 0x02, 0x20, 0x04, 0x40, 0x1F, 0xF0, 0x1F, 0xF0, 0x04, 0x40, 0x04, 0x40, 0x08, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x03, 0xF8, 0x0C, 0x88, 0x0C, 0x80, 0x06, 0x80, 0x01, 0xC0, 0x00, 0xB0, 0x01, 0x18, 0x19, 0x18, 0x0D, 0x30, 0x03, 0xC0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x04, 0x12, 0x08, 0x12, 0x10, 0x0C, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x18, 0x04, 0x24, 0x08, 0x24, 0x10, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x90, 0x03, 0x10, 0x03, 0x20, 0x01, 0x40, 0x03, 0x80, 0x05, 0x8C, 0x0C, 0xD8, 0x18, 0x70, 0x10, 0x60, 0x18, 0xF0, 0x0F, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x60, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x40, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x60, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x06, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x06, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x04, 0x10, 0x02, 0x20, 0x01, 0x40, 0x1F, 0xFC, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x0F, 0xF8, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x0C, 0x18, 0x0C, 0x18, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x30, 0x60, 0x30, 0x60, 0x18, 0xC0, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x06, 0x18, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x03, 0x80, 0x06, 0x20, 0x0C, 0x20, 0x1F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x00, 0x30, 0x00, 0x60, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x30, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x60, 0x00, 0xE0, 0x01, 0xE0, 0x02, 0xC0, 0x06, 0xC0, 0x0C, 0xC0, 0x18, 0xC0, 0x30, 0xC0, 0x3F, 0xF0, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x06, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0F, 0xC0, 0x0E, 0x60, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x0C, 0x00, 0x0D, 0xC0, 0x0E, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x07, 0xF8, 0x04, 0x18, 0x00, 0x30, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x80, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x0C, 0x18, 0x06, 0x70, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18, 0x0C, 0x18, 0x0C, 0x30, 0x0C, 0x30, 0x06, 0x70, 0x03, 0xF0, 0x00, 0x30, 0x18, 0x60, 0x0C, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x18, 0x18, 0x30, 0x0C, 0x38, 0x0C, 0x00, 0x38, 0x00, 0xE0, 0x00, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x04, 0x10, 0x08, 0x08, 0x11, 0xC4, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0x12, 0x34, 0x11, 0xCC, 0x08, 0x00, 0x04, 0x08, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xE0, 0x01, 0x70, 0x01, 0x70, 0x02, 0x30, 0x02, 0x30, 0x07, 0xF0, 0x04, 0x30, 0x04, 0x30, 0x08, 0x30, 0x1C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x06, 0x1C, 0x06, 0x0C, 0x06, 0x18, 0x0C, 0x30, 0x0F, 0xF0, 0x0C, 0x18, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x70, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x03, 0x1C, 0x0E, 0x0C, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x30, 0x00, 0x18, 0x10, 0x0C, 0x60, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x06, 0x70, 0x06, 0x18, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x30, 0x18, 0xE0, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFC, 0x06, 0x0C, 0x06, 0x04, 0x06, 0x00, 0x0C, 0x20, 0x0F, 0xE0, 0x0C, 0x20, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x10, 0x18, 0x30, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFC, 0x06, 0x0C, 0x06, 0x04, 0x06, 0x40, 0x0C, 0x40, 0x0F, 0xC0, 0x0C, 0x40, 0x0C, 0x40, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x06, 0x1C, 0x0C, 0x0C, 0x18, 0x04, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x78, 0x30, 0x30, 0x18, 0x30, 0x0C, 0x30, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0F, 0xF8, 0x0C, 0x18, 0x0C, 0x18, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x3C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x38, 0xC0, 0x18, 0xC0, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x3C, 0x06, 0x18, 0x06, 0x30, 0x06, 0x60, 0x0C, 0x80, 0x0D, 0x80, 0x0F, 0x80, 0x0C, 0xC0, 0x0C, 0xE0, 0x18, 0x70, 0x18, 0x38, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x08, 0x18, 0x10, 0x18, 0x30, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x0C, 0x0C, 0x0E, 0x1C, 0x0E, 0x2C, 0x16, 0x2C, 0x13, 0x6C, 0x13, 0x4C, 0x13, 0x4C, 0x23, 0xD8, 0x21, 0x18, 0x21, 0x18, 0x70, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1C, 0x06, 0x08, 0x07, 0x08, 0x0B, 0x08, 0x09, 0x90, 0x09, 0x90, 0x09, 0x90, 0x08, 0xD0, 0x10, 0xD0, 0x10, 0xF0, 0x10, 0x60, 0x38, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x06, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x30, 0x18, 0x60, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x06, 0x18, 0x06, 0x0C, 0x06, 0x0C, 0x0C, 0x18, 0x0C, 0x30, 0x0F, 0xE0, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x06, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x33, 0x30, 0x1D, 0x60, 0x0F, 0xC0, 0x01, 0x10, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x06, 0x18, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x0C, 0x30, 0x0F, 0xE0, 0x0C, 0x80, 0x18, 0xE0, 0x18, 0x60, 0x18, 0x70, 0x3C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF4, 0x06, 0x0C, 0x0C, 0x04, 0x0C, 0x00, 0x06, 0x00, 0x03, 0xE0, 0x00, 0x30, 0x00, 0x18, 0x00, 0x18, 0x10, 0x18, 0x1C, 0x30, 0x17, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x31, 0x8C, 0x21, 0x84, 0x21, 0x84, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1C, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x08, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x30, 0x20, 0x18, 0x60, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1C, 0x0C, 0x08, 0x0C, 0x08, 0x0C, 0x10, 0x0C, 0x10, 0x0C, 0x20, 0x0C, 0x20, 0x06, 0x40, 0x06, 0x80, 0x07, 0x80, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xEE, 0x18, 0xC4, 0x18, 0xC4, 0x18, 0xC4, 0x18, 0xC4, 0x18, 0xC8, 0x19, 0x68, 0x19, 0x68, 0x1B, 0x68, 0x0C, 0x68, 0x0C, 0x70, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1E, 0x06, 0x0C, 0x06, 0x18, 0x03, 0x30, 0x03, 0x60, 0x01, 0xC0, 0x01, 0xC0, 0x03, 0x60, 0x06, 0x60, 0x0C, 0x20, 0x18, 0x30, 0x3C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x1E, 0x1C, 0x0C, 0x0E, 0x18, 0x07, 0x30, 0x03, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x18, 0x18, 0x10, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x10, 0x30, 0x30, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xD0, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x60, 0x18, 0xE0, 0x19, 0xA8, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0xE0, 0x07, 0x18, 0x06, 0x18, 0x06, 0x18, 0x0E, 0x30, 0x0A, 0x30, 0x11, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x30, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x60, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x07, 0x60, 0x0C, 0xE0, 0x0C, 0x60, 0x0C, 0x60, 0x18, 0x60, 0x18, 0xA8, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0C, 0x30, 0x0C, 0x30, 0x0F, 0xF0, 0x18, 0x00, 0x18, 0x20, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x98, 0x01, 0x80, 0x01, 0x80, 0x07, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x60, 0x00, 0x60, 0x08, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0xE0, 0x07, 0x30, 0x06, 0x30, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x68, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x03, 0x00, 0x05, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x20, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x02, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x09, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x30, 0x06, 0x68, 0x06, 0xC0, 0x0F, 0xC0, 0x0F, 0x60, 0x0C, 0x34, 0x1C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x20, 0x06, 0x40, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x70, 0x59, 0x98, 0x19, 0x98, 0x19, 0x98, 0x33, 0x30, 0x33, 0x32, 0x33, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x16, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0C, 0x60, 0x0C, 0x68, 0x0C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0C, 0x60, 0x0C, 0x60, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xF0, 0x16, 0x18, 0x06, 0x18, 0x06, 0x30, 0x07, 0x30, 0x06, 0xE0, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8, 0x06, 0x30, 0x06, 0x30, 0x0C, 0x30, 0x0C, 0x70, 0x07, 0xB0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x60, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xE0, 0x0B, 0x10, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x03, 0x18, 0x03, 0x00, 0x01, 0xE0, 0x00, 0x30, 0x06, 0x30, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x07, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x10, 0x03, 0x20, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x30, 0x16, 0x30, 0x06, 0x30, 0x0C, 0x60, 0x0C, 0x60, 0x0C, 0x68, 0x07, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x40, 0x16, 0x60, 0x06, 0x20, 0x06, 0x20, 0x0C, 0x20, 0x0C, 0x20, 0x0E, 0x60, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xC8, 0x2C, 0xCC, 0x0C, 0xCC, 0x0D, 0x68, 0x0D, 0x68, 0x0D, 0x78, 0x06, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x30, 0x12, 0x68, 0x03, 0xC0, 0x01, 0x80, 0x03, 0xC0, 0x06, 0x68, 0x1C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x18, 0x13, 0x18, 0x03, 0x18, 0x06, 0x30, 0x06, 0x70, 0x03, 0xB0, 0x00, 0x30, 0x00, 0x60, 0x08, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xD0, 0x04, 0x30, 0x00, 0x60, 0x01, 0x80, 0x03, 0x00, 0x06, 0x10, 0x05, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x30, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x06, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x3F, 0x80, 0x61, 0xC3, 0x00, 0xFE, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x30, 0x0C, 0x44, 0x22, 0x44, 0x22, 0x95, 0xFD, 0x95, 0x25, 0x95, 0x25, 0x95, 0x25, 0x95, 0x25, 0x95, 0x25, 0x85, 0x25, 0x89, 0x2D, 0x50, 0x22, 0x40, 0x22, 0x30, 0x0C, 0x0F, 0xF0, 0x0F, 0xF0, 0x30, 0x0C, 0x44, 0x42, 0x48, 0x42, 0x98, 0x41, 0xAB, 0xFD, 0x88, 0x41, 0x88, 0x41, 0x88, 0x41, 0x88, 0x41, 0x88, 0x41, 0x88, 0x41, 0x49, 0xF2, 0x40, 0x02, 0x30, 0x0C, 0x0F, 0xF0, 0x0F, 0xF0, 0x30, 0x0C, 0x44, 0x02, 0x44, 0xFA, 0xBF, 0x89, 0x84, 0x89, 0x8C, 0xF9, 0x8E, 0x89, 0x95, 0x89, 0x94, 0xF9, 0xA4, 0x89, 0x84, 0x89, 0x44, 0xFA, 0x44, 0x02, 0x30, 0x0C, 0x0F, 0xF0, 0x0F, 0xF0, 0x30, 0x0C, 0x47, 0xE2, 0x42, 0x22, 0x82, 0x21, 0x82, 0x21, 0x82, 0x21, 0x83, 0xF9, 0x80, 0x09, 0x80, 0x09, 0x9F, 0xE9, 0x80, 0x09, 0x40, 0x12, 0x40, 0x62, 0x30, 0x0C, 0x0F, 0xF0, 0x0F, 0xF0, 0x38, 0x1C, 0x61, 0x86, 0x4F, 0xF2, 0xC1, 0x83, 0x8F, 0xF1, 0x89, 0x91, 0x8F, 0xF1, 0x89, 0x91, 0x8F, 0xF1, 0x81, 0x81, 0xDF, 0xFB, 0x41, 0x82, 0x61, 0x86, 0x38, 0x1C, 0x0F, 0xF0, 0x0F, 0xF0, 0x38, 0x1C, 0x60, 0x86, 0x40, 0x82, 0xDE, 0xFB, 0x8C, 0x09, 0x88, 0xE9, 0x9E, 0xA9, 0xAA, 0xE9, 0x8A, 0x89, 0x8A, 0xB9, 0xCE, 0x83, 0x40, 0xFA, 0x60, 0x06, 0x38, 0x1C, 0x0F, 0xF0, 0x0F, 0xF0, 0x30, 0x0C, 0x40, 0xC2, 0x47, 0x02, 0x84, 0x01, 0x84, 0x01, 0x87, 0xF1, 0x84, 0x41, 0x84, 0x41, 0x84, 0x41, 0xBF, 0xFD, 0x82, 0x41, 0x44, 0x22, 0x48, 0x12, 0x30, 0x0C, 0x0F, 0xF0, 0x0F, 0xF0, 0x3B, 0xDC, 0x7B, 0x0E, 0x5A, 0x66, 0xDB, 0x73, 0xDB, 0xA7, 0xC0, 0x0F, 0xFB, 0xF7, 0xC2, 0x01, 0xDB, 0xF7, 0xDA, 0x77, 0xDB, 0xB7, 0x5B, 0xE6, 0x7B, 0xCE, 0x3B, 0x1C, 0x0F, 0xF0, 0x0F, 0xF0, 0x3F, 0xFC, 0x7E, 0x7E, 0x7E, 0x7E, 0xFE, 0x7F, 0xFE, 0x7F, 0xC0, 0x03, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0x7E, 0x7E, 0x60, 0x06, 0x3F, 0xFC, 0x0F, 0xF0, 0x0F, 0xF0, 0x3D, 0xFC, 0x70, 0x1E, 0x67, 0xBE, 0xFF, 0x7F, 0xE0, 0x07, 0xEE, 0xF7, 0xE0, 0x07, 0xFD, 0xFF, 0xE2, 0xEF, 0xFD, 0x0F, 0xE2, 0x3F, 0x7D, 0x5E, 0x63, 0x46, 0x3E, 0xFC, 0x0D, 0xF0, 0x0F, 0xF0, 0x3F, 0xFC, 0x60, 0x1E, 0x7D, 0xDE, 0xFD, 0xDF, 0xFD, 0xDF, 0xFD, 0xDF, 0xFD, 0xDF, 0xFC, 0x07, 0xFF, 0xF7, 0xFF, 0xF7, 0xC0, 0x17, 0x7F, 0xF6, 0x7F, 0xEE, 0x3F, 0x1C, 0x0F, 0xF0, 0x0F, 0xF0, 0x3E, 0x7C, 0x7E, 0x7E, 0x60, 0x06, 0xFE, 0x7F, 0xF0, 0x0F, 0xF6, 0x6F, 0xF0, 0x0F, 0xF6, 0x6F, 0xF0, 0x0F, 0xFE, 0x7F, 0xFE, 0x7F, 0x40, 0x02, 0x7E, 0x7E, 0x3E, 0x7C, 0x0F, 0xF0, 0x0F, 0xF0, 0x3F, 0x7C, 0x7F, 0x7E, 0x41, 0x02, 0xF6, 0x7B, 0xE4, 0xFB, 0xCD, 0x0B, 0x83, 0x6B, 0xAB, 0x0B, 0xEB, 0x63, 0xEB, 0x7F, 0xEB, 0x7F, 0x63, 0x7A, 0x7F, 0x02, 0x3F, 0xFC, 0x0F, 0xF0, 0x0F, 0xF0, 0x3C, 0xFC, 0x7F, 0x7E, 0x60, 0x06, 0xFB, 0xBF, 0xFB, 0xBF, 0xE5, 0x4F, 0xCE, 0xE7, 0xFE, 0xFF, 0xC0, 0x03, 0xFE, 0xFF, 0xFE, 0xFF, 0x7E, 0xFE, 0x7E, 0xFE, 0x3E, 0xFC, 0x0F, 0xF0, 0xC4, 0x23, 0xC4, 0x23, 0xC4, 0x23, 0xC0, 0x03, 0xDF, 0xFB, 0xC0, 0x03, 0xF7, 0xEF, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xE7, 0xE7, 0xC0, 0x03, 0x9F, 0xF9, 0x80, 0x01, 0x3B, 0xDC, 0x2A, 0x54, 0x2E, 0x74, 0x20, 0x04, 0x3F, 0xFC, 0x30, 0x0C, 0x1F, 0xF8, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x0F, 0xF0, 0x18, 0x18, 0x3F, 0xFC, 0x60, 0x06, 0x7F, 0xFE, 0x3B, 0xDC, 0x3B, 0xDC, 0x3F, 0xFC, 0x20, 0x04, 0x3F, 0xFC, 0x30, 0x0C, 0x1F, 0xF8, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x10, 0x08, 0x3F, 0xFC, 0x60, 0x06, 0x7F, 0xFE, 0xC4, 0x23, 0xD5, 0xAB, 0xD1, 0x8B, 0xDF, 0xFB, 0xD0, 0x0B, 0xCF, 0xF3, 0xE0, 0x07, 0xF7, 0xEF, 0xF7, 0xEF, 0xF7, 0xEF, 0xF7, 0xEF, 0xF0, 0x0F, 0xCF, 0xF3, 0x80, 0x01, 0xBF, 0xFD, 0x80, 0x01, 0x03, 0x0C, 0x02, 0x94, 0x02, 0xE4, 0x04, 0x04, 0x08, 0x0E, 0x09, 0x86, 0x18, 0x06, 0x30, 0x06, 0x60, 0x27, 0x40, 0x23, 0x57, 0xC3, 0x44, 0x83, 0x39, 0x83, 0x03, 0x03, 0x06, 0x03, 0x0F, 0xFF, 0x03, 0x0C, 0x03, 0x9C, 0x03, 0xFC, 0x07, 0xFC, 0x0F, 0xFE, 0x0E, 0x7E, 0x0F, 0xF6, 0x1F, 0xF6, 0x3F, 0xDB, 0x7F, 0xDB, 0x6F, 0x9B, 0x7C, 0x7B, 0x39, 0xFB, 0x03, 0xFB, 0x07, 0xFB, 0x0F, 0xFB, 0xFC, 0xF3, 0xFD, 0x6B, 0xFD, 0x1B, 0xFB, 0xFB, 0xF7, 0xFD, 0xF6, 0x7D, 0xF7, 0xF5, 0xE7, 0xF4, 0xCF, 0xDA, 0xBF, 0xDA, 0xAC, 0x3A, 0xBB, 0x3A, 0xC6, 0x7A, 0xFC, 0xFA, 0xF9, 0xFA, 0xF0, 0x00, 0xFD, 0xF3, 0xFC, 0xE3, 0xFC, 0x03, 0xF8, 0x03, 0xF0, 0x03, 0xF3, 0x01, 0xF0, 0x01, 0xE0, 0x05, 0xC0, 0x25, 0x80, 0x24, 0x90, 0x44, 0x83, 0x84, 0xC7, 0x04, 0xFE, 0x02, 0xFC, 0x02, 0xF8, 0x02, 0xFE, 0x7F, 0xFC, 0x3F, 0xF0, 0x0F, 0xE1, 0x87, 0xE1, 0x87, 0xC1, 0x83, 0xCF, 0xF3, 0xCF, 0xF3, 0xC1, 0x83, 0xE1, 0x87, 0xE1, 0x87, 0xF0, 0x0F, 0xFD, 0xBF, 0xE1, 0x87, 0x81, 0x81, 0x1F, 0xF8, 0x01, 0x80, 0x03, 0xC0, 0x0E, 0x70, 0x18, 0x18, 0x11, 0x88, 0x31, 0x8C, 0x27, 0xE4, 0x27, 0xE4, 0x31, 0x8C, 0x11, 0x88, 0x18, 0x18, 0x0E, 0x70, 0x02, 0x40, 0x3E, 0x7C, 0x7E, 0x7E, 0xE0, 0x07, 0x01, 0x80, 0x03, 0xC0, 0x0F, 0xF0, 0x1E, 0x78, 0x1E, 0x78, 0x3E, 0x7C, 0x30, 0x0C, 0x30, 0x0C, 0x3E, 0x7C, 0x1E, 0x78, 0x1E, 0x78, 0x0F, 0xF0, 0x02, 0x40, 0x1E, 0x78, 0x7E, 0x7E, 0xE0, 0x07, 0xFE, 0x7F, 0xFC, 0x3F, 0xF1, 0x8F, 0xE7, 0xE7, 0xEE, 0x77, 0xCE, 0x73, 0xD8, 0x1B, 0xD8, 0x1B, 0xCE, 0x73, 0xEE, 0x77, 0xE7, 0xE7, 0xF1, 0x8F, 0xFD, 0xBF, 0xC1, 0x83, 0x81, 0x81, 0x1F, 0xF8, 0x04, 0x20, 0x0E, 0x70, 0x44, 0x22, 0xE4, 0x27, 0x46, 0x72, 0x5B, 0xDA, 0x31, 0x8C, 0x60, 0x06, 0x7F, 0xFE, 0x41, 0x82, 0x7B, 0xDE, 0x61, 0x86, 0x3F, 0xFC, 0x30, 0x0C, 0x1F, 0xF8, 0x00, 0x00, 0xFB, 0xDF, 0xF1, 0x8F, 0xBB, 0xDD, 0x1B, 0xD8, 0xB9, 0x8D, 0xA4, 0x25, 0x8E, 0x71, 0x9F, 0xF9, 0x80, 0x01, 0xBE, 0x7D, 0x84, 0x21, 0xDE, 0x7B, 0xC0, 0x03, 0xCF, 0xF3, 0xE0, 0x07, 0xFF, 0xFF, 0x01, 0x80, 0x07, 0xE0, 0x07, 0xE0, 0x01, 0x80, 0x39, 0x9C, 0x6D, 0xB6, 0xC2, 0x63, 0xCA, 0x53, 0x89, 0x91, 0xDC, 0x3B, 0x48, 0x12, 0x68, 0x16, 0x3F, 0xFC, 0x18, 0x18, 0x1F, 0xF8, 0x00, 0x00, 0xFE, 0x7F, 0xF8, 0x1F, 0xF8, 0x1F, 0xFE, 0x7F, 0xC6, 0x63, 0x92, 0x49, 0x39, 0x9C, 0x35, 0xAC, 0x76, 0x6E, 0x23, 0xC4, 0xB7, 0xED, 0x97, 0xE9, 0xC0, 0x03, 0xE7, 0xE7, 0xE0, 0x07, 0xFF, 0xFF, 0x03, 0xC0, 0x06, 0x60, 0x04, 0x20, 0x06, 0x60, 0x03, 0xC0, 0x01, 0x80, 0x1F, 0xF8, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x06, 0x60, 0x1F, 0xF8, 0x30, 0x0C, 0x7F, 0xFE, 0x7F, 0xFE, 0xFC, 0x3F, 0xF9, 0x9F, 0xFB, 0xDF, 0xF9, 0x9F, 0xFC, 0x3F, 0xFE, 0x7F, 0xE0, 0x07, 0xFD, 0xBF, 0xFD, 0xBF, 0xFD, 0xBF, 0xFD, 0xBF, 0xF9, 0x9F, 0xE0, 0x07, 0xCF, 0xF3, 0x80, 0x01, 0x9F, 0xF9, 0x03, 0xC0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x03, 0xC0, 0x01, 0x80, 0x1F, 0xF8, 0x02, 0x40, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0xE0, 0x18, 0x18, 0x3F, 0xFC, 0x60, 0x06, 0x7F, 0xFE, 0xFC, 0x3F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xFC, 0x3F, 0xFE, 0x7F, 0xE0, 0x07, 0xFD, 0xBF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xF8, 0x1F, 0xE0, 0x07, 0xCF, 0xF3, 0x80, 0x01, 0x9F, 0xF9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x03, 0xC0, 0x07, 0xE0, 0x0F, 0xF0, 0x1F, 0xF8, 0x3F, 0xFC, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x39, 0x9C, 0x01, 0x80, 0x03, 0xC0, 0x07, 0xE0, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x38, 0x3E, 0x7C, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x3F, 0xFC, 0x3F, 0xFC, 0x1F, 0xF8, 0x0F, 0xF0, 0x07, 0xE0, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x03, 0xC0, 0x79, 0x9E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xBF, 0xFD, 0xBF, 0x79, 0x9E, 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x0F, 0xF0, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x07, 0xE0, 0x0F, 0xF0, 0x1F, 0xF8, 0x3F, 0xFC, 0x7F, 0xFE, 0x7F, 0xFE, 0x3F, 0xFC, 0x1F, 0xF8, 0x0F, 0xF0, 0x07, 0xE0, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x0F, 0xF0, 0x38, 0x1C, 0x60, 0x06, 0x40, 0x02, 0xC0, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xC0, 0x03, 0x40, 0x02, 0x60, 0x06, 0x38, 0x1C, 0x0F, 0xF0, 0x0F, 0xF0, 0x3F, 0xFC, 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0x3F, 0xFC, 0x0F, 0xF0, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x20, 0x0C, 0x30, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x07, 0x00, 0x0F, 0xF0, 0x0F, 0xF0, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x00, 0x30, 0x00, 0x60, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x30, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0xC0, 0x02, 0xC0, 0x06, 0xC0, 0x0C, 0xC0, 0x0C, 0xC0, 0x18, 0xC0, 0x1F, 0xF0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x0F, 0xF0, 0x0F, 0xE0, 0x0C, 0x00, 0x0C, 0x00, 0x0F, 0xC0, 0x0E, 0x60, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x0C, 0x20, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x0C, 0x00, 0x0D, 0xC0, 0x0E, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x06, 0x60, 0x03, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x0F, 0xF0, 0x0F, 0xF0, 0x08, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF8, 0xFF, 0xF8, 0x00, 0x00, 0xFF, 0xF8, 0xFF, 0xF8, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x1C, 0x00, 0x0F, 0xFF, 0x07, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x1C, 0x38, 0x2E, 0x5C, 0x4E, 0x9D, 0x87, 0x0E, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x06, 0x30, 0x0C, 0x18, 0x08, 0x08, 0x10, 0x04, 0x11, 0xC4, 0x21, 0xC2, 0x21, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x10, 0x20, 0x27, 0x90, 0x24, 0x50, 0x24, 0x50, 0x27, 0x90, 0x25, 0x10, 0x24, 0x90, 0x14, 0x60, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x24, 0x24, 0x72, 0x4E, 0x8A, 0x51, 0x89, 0x91, 0x89, 0x91, 0x71, 0x8E, 0x01, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0xE0, 0x07, 0xE0, 0x0F, 0xF0, 0x7F, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x9F, 0xF9, 0x9F, 0xF9, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x18, 0x00, 0x18, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x70, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x70, 0x00, 0x70, 0x00, 0x30, 0x00, 0x38, 0x00, 0x38, 0x00, 0x18, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x02, 0x40, 0x00, 0x60, 0x00, 0x30, 0x00, 0x38, 0x00, 0x18, 0x00, 0x18, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x23, 0x00, 0x63, 0x00, 0x66, 0x00, 0xF6, 0x00, 0xB6, 0x00, 0x9E, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0xFF, 0xFF, 0x7F, 0xFF, 0x70, 0x00, 0x38, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x07, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x07, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x38, 0x00, 0x70, 0x00, 0x70, 0x01, 0xE0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x07, 0xE0, 0x0E, 0x70, 0x0C, 0x60, 0x1C, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0xCC, 0x00, 0xDC, 0x00, 0xF8, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x18, 0x00, 0x24, 0x00, 0x24, 0x00, 0x25, 0x80, 0x26, 0xB0, 0x24, 0xD6, 0x24, 0x9A, 0x24, 0x92, 0x44, 0x92, 0x40, 0x02, 0x40, 0x02, 0x20, 0x04, 0x20, 0x04, 0x1F, 0xF8, 0x10, 0x08, 0x1F, 0xF8, 0x1F, 0xF8, 0x10, 0x08, 0x1F, 0xF8, 0x20, 0x08, 0x20, 0x04, 0x40, 0x04, 0x40, 0x02, 0x64, 0x92, 0x24, 0x92, 0x24, 0x9A, 0x24, 0xD6, 0x26, 0xB0, 0x25, 0x80, 0x24, 0x00, 0x24, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x7E, 0x30, 0x80, 0x0E, 0x80, 0x0A, 0x7F, 0x0A, 0x08, 0x0A, 0x10, 0x0A, 0x1F, 0x0A, 0x08, 0x0A, 0x10, 0x0A, 0x1F, 0x0A, 0x02, 0x1E, 0x04, 0x60, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x0C, 0x7E, 0xF0, 0x01, 0xA0, 0x01, 0xA0, 0xFE, 0xA0, 0x10, 0xA0, 0x08, 0xA0, 0xF8, 0xA0, 0x20, 0xA0, 0x10, 0xA0, 0xF0, 0xF0, 0x40, 0x0E, 0x20, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x0C, 0xE0, 0x1C, 0xF8, 0x3C, 0xFE, 0x7C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7C, 0xFC, 0x3C, 0xF8, 0x1C, 0xF0, 0x0C, 0xE0, 0xF3, 0x1F, 0xF3, 0x1F, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFB, 0x7F, 0xF3, 0x1F, 0xE3, 0x07, 0xC3, 0x01, 0x83, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0x03, 0xC3, 0x07, 0xE3, 0x0F, 0xF3, 0x1F, 0x0C, 0xE0, 0x0C, 0xE0, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x42, 0x00, 0x24, 0x06, 0x18, 0x18, 0x06, 0x60, 0x01, 0x80, 0x01, 0x80, 0x06, 0x60, 0x18, 0x18, 0x24, 0x06, 0x42, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xEF, 0x79, 0xCE, 0x73, 0xDE, 0xF7, 0x9C, 0xF7, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xC0, 0x07, 0xC0, 0x07, 0xC0, 0x07, 0x00, 0x04, 0x40, 0x01, 0xC0, 0x07, 0xC0, 0x07, 0xC0, 0x07, 0x80, 0x06, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x07, 0xC0, 0x07, 0x80, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xBC, 0x73, 0xDE, 0x7B, 0xCE, 0x39, 0xEF, 0x3D, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x02, 0x60, 0x01, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x80, 0x02, 0x20, 0x00, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xE0, 0x00, 0xCC, 0x00, 0xE6, 0x00, 0x6F, 0x00, 0x2E, 0x00, 0x08, 0x80, 0x05, 0xC0, 0x07, 0x40, 0x03, 0xC0, 0x03, 0x00, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x40, 0x00, 0x00, 0x0E, 0x80, 0x37, 0x80, 0xE7, 0x00, 0xF2, 0x00, 0x58, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x02, 0xE0, 0x03, 0xA0, 0x01, 0x10, 0x00, 0x74, 0x00, 0xF6, 0x00, 0x67, 0x00, 0x33, 0x00, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x1A, 0x00, 0x4F, 0x00, 0xE7, 0x01, 0xEC, 0x01, 0x70, 0x00, 0x00, 0x02, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x7E, 0x7E, 0x1F, 0x1F, 0x7E, 0x7E, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x01, 0xB0, 0x01, 0xB0, 0x01, 0xF0, 0x01, 0xF0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x40, 0x01, 0x10, 0x01, 0xB0, 0x01, 0xB0, 0x01, 0xF0, 0x01, 0xF0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x7E, 0x7E, 0xF8, 0xF8, 0x7E, 0x7E, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x80, 0x0F, 0x80, 0x0D, 0x80, 0x0D, 0x80, 0x08, 0x80, 0x02, 0x00, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x80, 0x0F, 0x80, 0x0D, 0x80, 0x0D, 0x80, 0x08, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x78, 0x00, 0xF8, 0x00, 0x7D, 0x00, 0x11, 0x80, 0x0F, 0x80, 0x07, 0xC0, 0x07, 0xC0, 0x07, 0x80, 0x01, 0x80, 0x01, 0x20, 0x03, 0xE0, 0x03, 0xC0, 0x07, 0xC0, 0x0B, 0x80, 0x7A, 0x00, 0x78, 0x00, 0xFE, 0x00, 0xFC, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x01, 0xF0, 0x01, 0x88, 0x00, 0xBE, 0x00, 0x1F, 0x00, 0x1E, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x3F, 0x00, 0x7F, 0x00, 0x1E, 0x00, 0x5E, 0x01, 0xD0, 0x03, 0xE0, 0x03, 0xC0, 0x07, 0xC0, 0x04, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x07, 0xE0, 0x07, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x07, 0xE0, 0x07, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xF9, 0x00, 0x1F, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x0B, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0xF3, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x78, 0x00, 0x70, 0x00, 0xF8, 0x00, 0x8F, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xCF, 0x00, 0x78, 0x00, 0x70, 0x00, 0x70, 0x00, 0xD0, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFC, 0x7C, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x7C, 0xF8, 0x7E, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x05, 0xA0, 0x01, 0x80, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x05, 0xA0, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7E, 0x1F, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x3E, 0x3F, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x05, 0xA0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x01, 0x80, 0x05, 0xA0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0xF8, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0xE7, 0xC0, 0x7E, 0xE0, 0x07, 0x60, 0x07, 0x60, 0x0F, 0xE0, 0x05, 0xA0, 0x01, 0x80, 0x03, 0xC0, 0x07, 0xE0, 0x07, 0xE0, 0x05, 0xE0, 0x05, 0x60, 0x7F, 0x20, 0x3E, 0x00, 0xFA, 0x00, 0xE6, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x05, 0xA0, 0x07, 0xE0, 0x06, 0xE0, 0x06, 0xE0, 0x07, 0x7E, 0x03, 0xE7, 0x00, 0x3F, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0x67, 0x00, 0x5F, 0x00, 0x7C, 0x04, 0xFE, 0x06, 0xA0, 0x07, 0xA0, 0x07, 0xE0, 0x07, 0xE0, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x27, 0xE6, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x3E, 0x00, 0x3B, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x3F, 0x00, 0x3F, 0x80, 0x1F, 0x00, 0x1F, 0x00, 0x3F, 0x80, 0x3F, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x3F, 0x00, 0x3F, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0x67, 0xE4, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0x78, 0x00, 0x78, 0x00, 0xFC, 0x01, 0xFC, 0x00, 0xF8, 0x00, 0xF8, 0x01, 0xFC, 0x00, 0xFC, 0x00, 0x78, 0x00, 0x78, 0x00, 0xDC, 0x00, 0x7C, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0xB8, 0x00, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x00, 0x37, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1A, 0x00, 0x7E, 0x00, 0xFE, 0x00, 0xBC, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xEC, 0x00, 0xFC, 0x00, 0x7F, 0x00, 0x1F, 0x00, 0x1D, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x3D, 0x00, 0x7F, 0x00, 0x7E, 0x00, 0x58, 0x00, 0x78, 0x03, 0x01, 0x03, 0xCB, 0x03, 0xDF, 0x77, 0xDF, 0x7B, 0x9F, 0xFE, 0x8F, 0xFF, 0xD9, 0xD8, 0xEE, 0x20, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0xF8, 0x01, 0x78, 0x00, 0xF8, 0x00, 0xF0, 0x00, 0x68, 0x00, 0x7F, 0x00, 0xFF, 0x00, 0xFE, 0x01, 0x8E, 0x01, 0x80, 0x01, 0x5C, 0x01, 0xFE, 0x01, 0xBC, 0x00, 0xBE, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x04, 0x77, 0x9B, 0x9B, 0xFF, 0xF1, 0xBF, 0xF9, 0xDE, 0xFB, 0xEE, 0xFB, 0xC0, 0xD3, 0xC0, 0x80, 0xC0, 0xFE, 0x00, 0x7D, 0x00, 0x3D, 0x80, 0x7F, 0x80, 0x3A, 0x80, 0x01, 0x80, 0x71, 0x80, 0x7F, 0x00, 0xFF, 0x00, 0xFE, 0x00, 0x16, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x1E, 0x80, 0x1F, 0x00, 0x07, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, 0x60, 0xF3, 0xE0, 0xF7, 0xE0, 0xF7, 0xE0, 0xF3, 0xC0, 0x73, 0xE0, 0x36, 0x80, 0x0E, 0x38, 0x04, 0x70, 0x06, 0xF8, 0x03, 0xF8, 0x03, 0xFC, 0x01, 0xEE, 0x00, 0xF0, 0x01, 0xFF, 0x03, 0xF8, 0x03, 0xF8, 0x04, 0x00, 0x1E, 0x60, 0x73, 0xF0, 0xE1, 0xF0, 0xB3, 0xF0, 0x79, 0xF8, 0xFD, 0x78, 0x7C, 0x00, 0xF4, 0x00, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x75, 0x80, 0x3E, 0xC0, 0x1F, 0xC0, 0x1F, 0x60, 0x0E, 0x20, 0x1C, 0x70, 0x01, 0x6C, 0x07, 0xCE, 0x03, 0xCF, 0x07, 0xEF, 0x07, 0xEF, 0x07, 0xCF, 0x06, 0x0E, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x2F, 0x00, 0x3E, 0x1E, 0xBF, 0x1F, 0x9E, 0x0F, 0xC5, 0x0F, 0x87, 0x0F, 0xEE, 0x06, 0x38, 0x00, 0x20, 0x1F, 0xC0, 0x1F, 0xC0, 0xFF, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x08, 0x73, 0x9C, 0x73, 0x9C, 0x63, 0x9C, 0x39, 0xCE, 0xFF, 0xFF, 0x31, 0x8C, 0x43, 0x18, 0xE3, 0x18, 0xE3, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x1D, 0x78, 0x1B, 0xF8, 0x03, 0xB0, 0x01, 0x80, 0x01, 0x00, 0x1D, 0x70, 0x1F, 0xF8, 0x03, 0xF0, 0x01, 0x80, 0x01, 0x00, 0x3D, 0x70, 0x3F, 0xF8, 0x03, 0xF0, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0xC7, 0x18, 0xC7, 0x18, 0xC2, 0x3F, 0xFC, 0xFF, 0xFF, 0x73, 0x8C, 0x39, 0xC6, 0x39, 0xCE, 0x39, 0xCE, 0x10, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x0F, 0xC0, 0x1F, 0xFC, 0x0E, 0xBC, 0x00, 0x80, 0x01, 0x80, 0x0F, 0xC0, 0x1F, 0xF8, 0x0E, 0xB8, 0x00, 0x80, 0x01, 0x80, 0x0D, 0xC0, 0x1F, 0xD8, 0x1E, 0xB8, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x63, 0xC0, 0x63, 0xC0, 0xF7, 0x80, 0x3E, 0x00, 0x46, 0x60, 0xF2, 0xF0, 0x6D, 0xF0, 0x1F, 0x20, 0x1F, 0x00, 0x19, 0x00, 0x09, 0x00, 0x1D, 0xF0, 0x1B, 0xF0, 0xEB, 0x30, 0xF2, 0x00, 0x77, 0x00, 0x6F, 0xC0, 0xF1, 0xC0, 0x19, 0xC0, 0x1C, 0xC0, 0x3C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0xF8, 0x04, 0xF8, 0x0F, 0xB6, 0x0F, 0x4F, 0x06, 0x62, 0x00, 0x7C, 0x01, 0xEF, 0x03, 0xC6, 0x03, 0xC6, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x3C, 0x03, 0x38, 0x03, 0x98, 0x03, 0x8F, 0x03, 0xF6, 0x00, 0xEE, 0x00, 0x4F, 0x0C, 0xD7, 0x0F, 0xD8, 0x0F, 0xB8, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x19, 0x88, 0x0D, 0xB0, 0xFF, 0xEF, 0x3F, 0xFC, 0x1F, 0xF8, 0x7F, 0xFE, 0x1D, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x40, 0x02, 0xC0, 0x07, 0xD0, 0x07, 0xF0, 0x07, 0xE0, 0x03, 0xC0, 0x07, 0xF8, 0x07, 0xF8, 0x03, 0xC0, 0x07, 0xE0, 0x07, 0xA0, 0x03, 0xD0, 0x02, 0xC0, 0x02, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xB8, 0x7F, 0xFE, 0x1F, 0xF8, 0x3F, 0xFC, 0xF7, 0xFF, 0x0D, 0xB0, 0x11, 0x98, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x40, 0x03, 0x40, 0x0B, 0xC0, 0x05, 0xE0, 0x07, 0xE0, 0x03, 0xC0, 0x1F, 0xE0, 0x1F, 0xE0, 0x03, 0xC0, 0x07, 0xE0, 0x0F, 0xE0, 0x0B, 0xE0, 0x03, 0x40, 0x02, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x78, 0x00, 0x7D, 0xC0, 0x2F, 0xC0, 0xBF, 0x00, 0x7E, 0x80, 0x3F, 0xC0, 0x1F, 0xE0, 0x0F, 0xC0, 0x0E, 0xE0, 0x02, 0x00, 0x02, 0x00, 0x04, 0xE0, 0x0F, 0xC0, 0x1E, 0xE0, 0x7F, 0xC0, 0x7F, 0x80, 0xFF, 0x00, 0x3B, 0x80, 0x7D, 0x80, 0x79, 0x80, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x07, 0x70, 0x03, 0xF0, 0x07, 0x78, 0x03, 0xFC, 0x01, 0x7E, 0x00, 0xFD, 0x03, 0xF4, 0x03, 0xBE, 0x00, 0x1E, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x01, 0x9E, 0x01, 0xBE, 0x01, 0xDC, 0x00, 0xFF, 0x01, 0xFE, 0x03, 0xFE, 0x07, 0x78, 0x03, 0xF0, 0x07, 0x20, 0x00, 0x40, 0x01, 0xF8, 0x77, 0xFC, 0x78, 0xE4, 0x7C, 0x6C, 0x1F, 0xFC, 0x44, 0xE2, 0xDF, 0x9F, 0x9F, 0x07, 0x7F, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x2E, 0x01, 0x3E, 0x01, 0xDE, 0x03, 0xDC, 0x03, 0xFA, 0x03, 0x52, 0x01, 0xD7, 0x00, 0x77, 0x00, 0x3F, 0x00, 0x7F, 0x00, 0x53, 0x00, 0x5B, 0x00, 0xDE, 0x00, 0xE0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xFE, 0xE0, 0xF9, 0xFD, 0xF3, 0x43, 0x22, 0x3E, 0xF8, 0x32, 0x3E, 0x27, 0x9E, 0x3F, 0xEE, 0x1F, 0x80, 0x03, 0x00, 0x07, 0x00, 0x7B, 0x00, 0xDA, 0x00, 0xCA, 0x00, 0xFE, 0x00, 0xFC, 0x00, 0xEE, 0x00, 0xEB, 0x80, 0x4B, 0xC0, 0x5F, 0xC0, 0x3B, 0xC0, 0x7B, 0x80, 0x7C, 0x80, 0x76, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x1C, 0x00, 0x06, 0x04, 0x9E, 0x0C, 0xFE, 0x3C, 0x01, 0x3C, 0x3D, 0x7C, 0x77, 0x6C, 0xFE, 0x78, 0x3A, 0x30, 0x02, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x08, 0xC0, 0x0C, 0x80, 0x1E, 0x8C, 0x1E, 0xDC, 0x1A, 0xDC, 0x0E, 0xF8, 0x7C, 0xE0, 0xC7, 0x00, 0xE0, 0x00, 0x2E, 0x00, 0x1F, 0x80, 0x1B, 0x80, 0x0B, 0xC0, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xC0, 0x03, 0x40, 0x0C, 0x5C, 0x1E, 0x7F, 0x32, 0xEE, 0x3E, 0xBC, 0x3C, 0x80, 0x3C, 0x7F, 0x30, 0x79, 0x20, 0x60, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xD8, 0x01, 0xF8, 0x00, 0x76, 0x00, 0x07, 0x00, 0xE1, 0x07, 0x3E, 0x1F, 0x70, 0x3B, 0x58, 0x3B, 0x78, 0x31, 0x78, 0x01, 0x30, 0x03, 0x10, 0x00, 0x00, 0x1C, 0xDE, 0x1E, 0xEE, 0xDF, 0xFE, 0xFE, 0xE7, 0xFE, 0x7C, 0xDF, 0xF0, 0x58, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, 0xF8, 0x01, 0x30, 0x01, 0xFE, 0x00, 0xFE, 0x00, 0x7E, 0x00, 0x7C, 0x00, 0x58, 0x00, 0x5E, 0x00, 0x7E, 0x00, 0x7C, 0x00, 0x4A, 0x00, 0x6E, 0x00, 0x3A, 0x00, 0x3E, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1A, 0x0F, 0xFB, 0x3E, 0x3F, 0xE7, 0x77, 0x7F, 0xFB, 0x77, 0x78, 0x7B, 0x38, 0x00, 0x00, 0x08, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x74, 0x00, 0x56, 0x00, 0x3E, 0x00, 0x7E, 0x00, 0x7A, 0x00, 0x12, 0x00, 0x3E, 0x00, 0x7E, 0x00, 0x7F, 0x00, 0x7F, 0x80, 0x0C, 0x80, 0x1F, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x9C, 0x00, 0xB4, 0x00, 0x7C, 0x00, 0x7D, 0x80, 0x22, 0x80, 0x37, 0xD0, 0x5B, 0xB0, 0xDE, 0x58, 0xF6, 0x78, 0x63, 0xF0, 0x00, 0xE0, 0x00, 0x38, 0x18, 0x38, 0x3C, 0xC0, 0x33, 0xE0, 0x1E, 0xF0, 0x0C, 0xD0, 0x1A, 0xF0, 0x3F, 0x00, 0x66, 0x80, 0x67, 0x80, 0x7A, 0x00, 0xF4, 0x00, 0xBE, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x07, 0x80, 0x0E, 0xC6, 0x1E, 0x6F, 0x1A, 0x7B, 0x0D, 0xDA, 0x0B, 0xEC, 0x01, 0x44, 0x01, 0xBE, 0x00, 0x3E, 0x00, 0x2D, 0x00, 0x39, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x7D, 0x00, 0x2F, 0x00, 0x5E, 0x01, 0xE6, 0x01, 0x66, 0x00, 0xFC, 0x0F, 0x58, 0x0B, 0x30, 0x0F, 0x78, 0x07, 0xCC, 0x03, 0x3C, 0x1C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x20, 0x0E, 0xB8, 0x0E, 0xB8, 0x06, 0xB0, 0x3F, 0xFC, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x60, 0x07, 0xF0, 0x07, 0xF8, 0x03, 0x00, 0x03, 0xE0, 0x03, 0x00, 0x03, 0xF0, 0x03, 0xE0, 0x03, 0x60, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0xFF, 0x3F, 0xFC, 0x0D, 0x60, 0x1D, 0x70, 0x1D, 0x70, 0x04, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0xC0, 0x06, 0xC0, 0x07, 0xC0, 0x0F, 0xC0, 0x00, 0xC0, 0x07, 0xC0, 0x00, 0xC0, 0x1F, 0xE0, 0x0F, 0xE0, 0x06, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x1F, 0x00, 0xFF, 0x20, 0x3E, 0xE0, 0x3F, 0xC0, 0x04, 0x80, 0x06, 0x00, 0x06, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x0F, 0x80, 0x0F, 0xC0, 0x7F, 0xE0, 0xEF, 0x60, 0x0B, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x60, 0x00, 0x60, 0x01, 0x20, 0x07, 0xFC, 0x07, 0x7C, 0x04, 0xFF, 0x00, 0xF0, 0x00, 0x30, 0x00, 0x70, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x30, 0x00, 0x38, 0x00, 0xD0, 0x06, 0xF7, 0x07, 0xFE, 0x03, 0xF0, 0x01, 0xF0, 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3C, 0x38, 0xC2, 0xBB, 0x39, 0x9C, 0xFD, 0x63, 0x9C, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x02, 0x00, 0x06, 0xC0, 0x05, 0xE0, 0x05, 0xC0, 0x05, 0x00, 0x02, 0x80, 0x02, 0x80, 0x03, 0x40, 0x01, 0x40, 0x01, 0xA0, 0x07, 0xA0, 0x07, 0xA0, 0x07, 0x60, 0x00, 0x40, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3C, 0x39, 0xC2, 0xBF, 0x39, 0x9C, 0xDD, 0x63, 0x1C, 0x3C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x02, 0x00, 0x06, 0xE0, 0x05, 0xE0, 0x05, 0xE0, 0x05, 0x80, 0x02, 0x80, 0x02, 0xC0, 0x01, 0x40, 0x01, 0x40, 0x00, 0xA0, 0x03, 0xA0, 0x07, 0xA0, 0x03, 0x60, 0x00, 0x40, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x3F, 0xC0, 0xB8, 0xC0, 0xC6, 0x40, 0x7D, 0xA0, 0x07, 0xA0, 0x07, 0xE0, 0x07, 0x60, 0x00, 0x40, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x02, 0xE0, 0x02, 0xE0, 0x02, 0xE0, 0x1F, 0x40, 0x1D, 0x40, 0x9E, 0x40, 0xCE, 0xC0, 0x39, 0xC0, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x61, 0x0C, 0x21, 0x08, 0x11, 0x10, 0x09, 0x20, 0x05, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x02, 0xA0, 0x02, 0xA0, 0x04, 0x90, 0x04, 0x90, 0x08, 0x88, 0x10, 0x84, 0x20, 0x82, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x01, 0x04, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x44, 0x00, 0x34, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x04, 0x1B, 0xFE, 0x48, 0x04, 0x40, 0x04, 0x40, 0x04, 0x48, 0x24, 0x44, 0x44, 0x42, 0x84, 0x41, 0x04, 0x42, 0x84, 0x44, 0x44, 0x48, 0x24, 0x40, 0x04, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x84, 0x08, 0x84, 0x10, 0x7C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x7F, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x08, 0x80, 0x04, 0x80, 0x03, 0x80, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x21, 0x10, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x04, 0x00, 0x08, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x20, 0x08, 0x60, 0x08, 0x80, 0x09, 0x00, 0x0A, 0x00, 0x0C, 0x00, 0x0A, 0x00, 0x09, 0x00, 0x08, 0x80, 0x08, 0x40, 0x09, 0x20, 0x0E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x1F, 0xFC, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x01, 0x20, 0x01, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x03, 0xF8, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x60, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x07, 0xF0, 0x00, 0x80, 0x00, 0x80, 0x00, 0xA0, 0x00, 0xC0, 0x01, 0x80, 0x02, 0x80, 0x04, 0x80, 0x00, 0x80, 0x04, 0x80, 0x02, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFC, 0x40, 0x04, 0x50, 0x14, 0x48, 0x24, 0x44, 0x44, 0x42, 0x84, 0x41, 0x04, 0x42, 0x84, 0x44, 0x44, 0x48, 0x24, 0x50, 0x14, 0x40, 0x04, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x90, 0x24, 0x88, 0x46, 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x3F, 0xFC, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x08, 0x80, 0x04, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x0C, 0x18, 0x0C, 0x08, 0x08, 0x04, 0x10, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x08, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x3F, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x08, 0x20, 0x10, 0x10, 0x10, 0x10, 0x20, 0x08, 0x20, 0x08, 0x40, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x60, 0x08, 0x18, 0x10, 0x0E, 0x60, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x0F, 0x10, 0x10, 0x28, 0x28, 0x44, 0x44, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x09, 0x00, 0x01, 0x00, 0x01, 0x10, 0x01, 0xF8, 0x09, 0x00, 0x09, 0x04, 0x09, 0x18, 0x09, 0xE0, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x7F, 0xFC, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x7F, 0xFC, 0x7F, 0xFE, 0x61, 0x86, 0x61, 0x86, 0x61, 0x86, 0x61, 0x86, 0x7F, 0xFE, 0x3F, 0xFC, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x7F, 0x00, 0xFF, 0x01, 0x80, 0x03, 0x80, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0xFF, 0x03, 0xFF, 0x03, 0x83, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x80, 0xC1, 0xC0, 0x80, 0xC0, 0x80, 0xC0, 0x80, 0xC0, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x83, 0x01, 0xFF, 0x00, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0xC0, 0x80, 0xC0, 0x80, 0xC0, 0x80, 0xC0, 0xC1, 0xC0, 0xFF, 0x80, 0xFF, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x2F, 0x7E, 0xF9, 0x04, 0xA9, 0x04, 0xAA, 0x14, 0xAA, 0x7C, 0xAC, 0x54, 0xAA, 0x54, 0xAA, 0x54, 0xA9, 0x54, 0xE9, 0x74, 0xAD, 0x54, 0x0A, 0x04, 0x08, 0x04, 0x08, 0x14, 0x08, 0x0C, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x08, 0x48, 0x08, 0x48, 0x28, 0x51, 0xF8, 0x49, 0x28, 0x49, 0x28, 0x45, 0x28, 0x45, 0x28, 0x45, 0x28, 0x69, 0xE8, 0x51, 0x28, 0x40, 0x08, 0x40, 0x28, 0x40, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0x90, 0x11, 0x08, 0x13, 0xFC, 0xFC, 0x04, 0x11, 0x10, 0x11, 0xF8, 0x12, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x1C, 0x40, 0xF0, 0xA0, 0x40, 0x90, 0x01, 0x0E, 0x06, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0x90, 0x11, 0x08, 0xFF, 0xFC, 0x10, 0x04, 0x11, 0x10, 0x15, 0xF8, 0x1A, 0x40, 0x30, 0x44, 0xD7, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x10, 0x90, 0x51, 0x0E, 0x26, 0x04, 0x00, 0x90, 0x00, 0x90, 0x08, 0x94, 0x7F, 0xFE, 0x48, 0x90, 0x48, 0x90, 0x49, 0x08, 0x49, 0x08, 0x48, 0x90, 0x48, 0x90, 0x48, 0x60, 0x78, 0x40, 0x48, 0xA0, 0x01, 0x10, 0x02, 0x0E, 0x04, 0x04, 0x00, 0x40, 0x00, 0x40, 0x08, 0x90, 0x7D, 0x08, 0x4B, 0xFC, 0x48, 0x04, 0x49, 0x10, 0x49, 0xF8, 0x4A, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x78, 0x40, 0x48, 0xA0, 0x00, 0x90, 0x01, 0x0E, 0x06, 0x04, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x05, 0x08, 0x0C, 0x90, 0x14, 0x60, 0x24, 0x30, 0xC5, 0x0E, 0x06, 0x04, 0x04, 0x00, 0x10, 0x20, 0x10, 0x20, 0x25, 0x24, 0x7F, 0x24, 0x45, 0xFC, 0x44, 0x00, 0x45, 0xFC, 0x7C, 0x04, 0x44, 0x04, 0x45, 0xFC, 0x45, 0x04, 0x45, 0x00, 0x7D, 0x02, 0x45, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x93, 0xF8, 0x52, 0x08, 0x53, 0xF8, 0x10, 0x00, 0x37, 0xBC, 0x54, 0xA4, 0xD7, 0xBC, 0x10, 0x40, 0x24, 0x44, 0x24, 0x44, 0x47, 0xFC, 0x04, 0x04, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x43, 0xF8, 0x32, 0x08, 0x13, 0xF8, 0x02, 0x08, 0xF3, 0xF8, 0x11, 0x04, 0x13, 0xFE, 0x14, 0x44, 0x12, 0x44, 0x16, 0xA4, 0x1A, 0x04, 0x13, 0xD4, 0x00, 0x08, 0x20, 0x18, 0x21, 0xE0, 0x28, 0x40, 0x3C, 0x48, 0x53, 0xFC, 0x90, 0xE0, 0x15, 0x5C, 0xFE, 0x48, 0x10, 0x40, 0x17, 0xFE, 0x10, 0x90, 0x29, 0x10, 0x24, 0xA0, 0x44, 0x60, 0x81, 0x98, 0x06, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x00, 0x20, 0x08, 0x20, 0x04, 0x40, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x00, 0x08, 0x05, 0xFC, 0xFF, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x21, 0xF8, 0x24, 0x08, 0x7F, 0xFC, 0xA4, 0x10, 0x27, 0xFE, 0x25, 0x10, 0x24, 0x90, 0x3C, 0x90, 0x24, 0x10, 0x00, 0x50, 0x00, 0x20, 0x00, 0x78, 0x3F, 0x80, 0x11, 0x10, 0x09, 0x20, 0x7F, 0xFE, 0x42, 0x02, 0x82, 0x04, 0x7F, 0xF8, 0x04, 0x00, 0x07, 0xF0, 0x0A, 0x20, 0x09, 0x40, 0x10, 0x80, 0x11, 0x60, 0x22, 0x1C, 0x0C, 0x08, 0x04, 0x04, 0x7A, 0x08, 0x49, 0x10, 0x48, 0x04, 0x57, 0xFE, 0x60, 0xA0, 0x51, 0x10, 0x4A, 0x08, 0x4C, 0x08, 0x4B, 0xFC, 0x6A, 0xA8, 0x52, 0xA8, 0x42, 0xA8, 0x42, 0xA8, 0x4F, 0xFE, 0x40, 0x00, 0x28, 0x40, 0x28, 0x20, 0xFE, 0x00, 0x29, 0xFE, 0x39, 0x02, 0x12, 0x44, 0x7C, 0x40, 0x57, 0xFE, 0x54, 0x88, 0x7C, 0x88, 0x11, 0x08, 0xFE, 0x90, 0x10, 0x60, 0x10, 0x50, 0x10, 0x8C, 0x13, 0x04, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x5F, 0xF8, 0x80, 0x00, 0x3F, 0xF8, 0x02, 0x08, 0x3F, 0xE8, 0x22, 0x28, 0x04, 0x08, 0xFF, 0xF8, 0x08, 0x88, 0x19, 0x08, 0x06, 0x0A, 0x09, 0x8A, 0x30, 0x44, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x82, 0x04, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x18, 0x20, 0x06, 0x40, 0x01, 0x80, 0x02, 0x40, 0x0C, 0x30, 0x30, 0x10, 0x08, 0x40, 0x08, 0x40, 0x08, 0x48, 0x17, 0xFC, 0x10, 0xA0, 0x31, 0x10, 0x52, 0x4E, 0x94, 0x44, 0x1B, 0xF8, 0x12, 0x48, 0x13, 0xF8, 0x12, 0x48, 0x13, 0xF8, 0x12, 0x4A, 0x10, 0x42, 0x10, 0x3E, 0x10, 0x40, 0x10, 0x20, 0x10, 0x00, 0x13, 0xFE, 0xFA, 0x02, 0x14, 0x44, 0x10, 0x40, 0x3F, 0xFE, 0xD0, 0x88, 0x10, 0x88, 0x11, 0x08, 0x10, 0x90, 0x10, 0x60, 0x10, 0x50, 0x50, 0x8C, 0x23, 0x04, 0x00, 0x80, 0x08, 0x48, 0x7F, 0xFC, 0x48, 0x00, 0x49, 0x10, 0x48, 0xA4, 0x4F, 0xFE, 0x78, 0x08, 0x4B, 0xFC, 0x4A, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x7A, 0x08, 0x4A, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x3F, 0xFC, 0x20, 0x10, 0x2F, 0xF8, 0x20, 0x80, 0x20, 0x88, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x40, 0x80, 0x80, 0x80, 0x00, 0x80, 0x04, 0x40, 0x3E, 0x20, 0x24, 0x00, 0x25, 0xFE, 0x25, 0x02, 0x3E, 0x44, 0x24, 0x40, 0x27, 0xFE, 0x24, 0x88, 0x3C, 0x88, 0x25, 0x08, 0x24, 0x90, 0x24, 0x60, 0x44, 0x50, 0x94, 0x8C, 0x09, 0x04, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x82, 0x04, 0x7F, 0xFC, 0x04, 0x20, 0x0C, 0x40, 0x03, 0x80, 0x1C, 0x70, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x04, 0x40, 0x3E, 0x20, 0x24, 0x04, 0x27, 0xFE, 0x24, 0x10, 0x3C, 0xF8, 0x24, 0x90, 0x24, 0x90, 0x24, 0x90, 0x3C, 0x90, 0x24, 0x90, 0x24, 0x90, 0x24, 0x92, 0x45, 0x12, 0x96, 0x0E, 0x08, 0x00, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x06, 0x04, 0x78, 0xFE, 0x40, 0x84, 0x40, 0x84, 0x40, 0x84, 0x46, 0xA4, 0x58, 0x94, 0x60, 0x88, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0xFF, 0xFE, 0x02, 0x80, 0x0C, 0x60, 0x30, 0x1E, 0xC0, 0x04, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7C, 0x7E, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x47, 0xC4, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x00, 0x08, 0x40, 0x08, 0x40, 0x0A, 0x44, 0x7F, 0x7E, 0x08, 0x88, 0x3F, 0x08, 0x08, 0x48, 0xFF, 0x48, 0x10, 0x48, 0x1E, 0x50, 0x12, 0x50, 0x22, 0x20, 0x22, 0x50, 0x54, 0x88, 0x89, 0x0E, 0x02, 0x04, 0x08, 0x40, 0x0A, 0x40, 0x7F, 0x40, 0x08, 0x44, 0x3E, 0xFE, 0x09, 0x08, 0xFE, 0x48, 0x10, 0x50, 0x1E, 0x20, 0x22, 0x50, 0x4A, 0x8E, 0x85, 0x04, 0x00, 0x00, 0x24, 0x88, 0x22, 0x44, 0x40, 0x04, 0x10, 0x00, 0x20, 0x04, 0x7D, 0xDE, 0x44, 0x44, 0x7C, 0x44, 0x45, 0x54, 0x7C, 0xCC, 0x10, 0x44, 0xFE, 0x44, 0x28, 0xCC, 0x55, 0x54, 0x92, 0x44, 0x7C, 0x44, 0x10, 0x44, 0x11, 0x54, 0x10, 0x88, 0x20, 0x10, 0x10, 0x38, 0x13, 0xC0, 0xFC, 0x40, 0x08, 0x40, 0x10, 0x40, 0x10, 0x44, 0x37, 0xFE, 0x58, 0x40, 0x94, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x14, 0x04, 0x12, 0x10, 0x12, 0x10, 0x12, 0x10, 0x2F, 0x94, 0x22, 0x3E, 0x6F, 0xC4, 0xA2, 0x24, 0x3F, 0xA8, 0x24, 0x28, 0x27, 0xA8, 0x24, 0x90, 0x24, 0x90, 0x28, 0xA8, 0x33, 0x28, 0x20, 0x46, 0x20, 0x84, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x15, 0x50, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x15, 0x50, 0x11, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x60, 0x18, 0x1C, 0x60, 0x08, 0x10, 0x80, 0x11, 0x04, 0x17, 0xFE, 0x14, 0x44, 0x5D, 0x54, 0x54, 0x44, 0x57, 0xFC, 0x94, 0x44, 0x15, 0x54, 0x14, 0x04, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x1C, 0x04, 0x00, 0x80, 0x41, 0x04, 0x37, 0xFE, 0x14, 0x44, 0x85, 0x54, 0x64, 0x44, 0x27, 0xFC, 0x0C, 0x44, 0x15, 0x54, 0x24, 0x04, 0xE0, 0x40, 0x2F, 0xFE, 0x20, 0xA0, 0x21, 0x10, 0x22, 0x0E, 0x2C, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x50, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x00, 0x10, 0x04, 0x10, 0x04, 0x0F, 0xFC, 0x00, 0x00, 0x10, 0x44, 0x13, 0xE4, 0x12, 0x44, 0x12, 0x54, 0xFE, 0x54, 0x13, 0xD4, 0x11, 0x14, 0x19, 0x54, 0x37, 0xF4, 0xD1, 0x54, 0x11, 0x54, 0x12, 0x44, 0x12, 0x44, 0x15, 0x44, 0x58, 0x94, 0x20, 0x08, 0x10, 0x00, 0x10, 0x20, 0x11, 0x20, 0x11, 0x20, 0xFD, 0x20, 0x11, 0x20, 0x15, 0x20, 0x19, 0x20, 0x31, 0x20, 0xD1, 0x20, 0x12, 0x10, 0x12, 0x10, 0x12, 0x18, 0x14, 0x0E, 0x58, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x09, 0x20, 0x7D, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49, 0x20, 0x4A, 0x10, 0x7A, 0x10, 0x4A, 0x18, 0x04, 0x0E, 0x08, 0x04, 0x10, 0x00, 0x00, 0x00, 0x08, 0x08, 0x7F, 0xFC, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x4A, 0x08, 0x4A, 0x00, 0x7A, 0x00, 0x4A, 0x02, 0x02, 0x02, 0x01, 0xFE, 0x00, 0x00, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x80, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x00, 0x20, 0x02, 0x20, 0x02, 0x1F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x10, 0x10, 0x08, 0x20, 0x0E, 0x40, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x04, 0x57, 0xFE, 0x54, 0x44, 0x14, 0x44, 0x34, 0x44, 0x57, 0xFC, 0xD4, 0x04, 0x14, 0x00, 0x24, 0x02, 0x24, 0x02, 0x43, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x02, 0x20, 0x02, 0x1F, 0xFE, 0x00, 0x00, 0x10, 0xA0, 0x10, 0x90, 0x10, 0x90, 0xFC, 0x84, 0x13, 0xFE, 0x10, 0x80, 0x14, 0x80, 0x19, 0xF8, 0x31, 0x08, 0xD1, 0x08, 0x12, 0x90, 0x12, 0x60, 0x14, 0x20, 0x14, 0x50, 0x58, 0x8E, 0x23, 0x04, 0x04, 0xA0, 0x7E, 0x90, 0x44, 0x90, 0x44, 0x84, 0x47, 0xFE, 0x7C, 0x80, 0x10, 0x80, 0x11, 0xF8, 0x5D, 0x08, 0x51, 0x08, 0x52, 0x90, 0x52, 0x60, 0x5C, 0x20, 0x74, 0x50, 0xC8, 0x8E, 0x03, 0x04, 0x28, 0x00, 0x28, 0x04, 0xFF, 0xFE, 0x29, 0x24, 0x39, 0x24, 0x11, 0x24, 0x7D, 0x24, 0x55, 0xFC, 0x55, 0x04, 0x7D, 0x00, 0x11, 0x00, 0xFF, 0x00, 0x11, 0x02, 0x11, 0x02, 0x10, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0xFD, 0x24, 0x11, 0x24, 0x15, 0x24, 0x19, 0xFC, 0x31, 0x04, 0xD1, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x02, 0x11, 0x02, 0x50, 0xFE, 0x20, 0x00, 0x10, 0x00, 0x10, 0x04, 0x15, 0xFE, 0xFF, 0x24, 0x11, 0x24, 0x7D, 0x24, 0x11, 0x24, 0xFF, 0xFC, 0x11, 0x04, 0x31, 0x00, 0x39, 0x00, 0x55, 0x00, 0x55, 0x02, 0x91, 0x02, 0x10, 0xFE, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x24, 0x11, 0x24, 0xFD, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x1D, 0x24, 0xF1, 0x24, 0x40, 0x50, 0x00, 0x48, 0x00, 0x86, 0x03, 0x02, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x89, 0x24, 0x22, 0x08, 0x7F, 0x7C, 0x22, 0x48, 0x3E, 0x48, 0x08, 0x78, 0x7F, 0x48, 0x49, 0x48, 0x7F, 0x78, 0x08, 0x48, 0x7F, 0x48, 0x08, 0x88, 0x09, 0x18, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x20, 0x08, 0x10, 0x1F, 0xF8, 0x00, 0x08, 0x04, 0x40, 0x04, 0x20, 0x0C, 0x58, 0x32, 0x88, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x30, 0x18, 0xDF, 0xF6, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x04, 0x10, 0x04, 0x0F, 0xFC, 0x02, 0x00, 0x04, 0x00, 0x08, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x00, 0x00, 0x10, 0x00, 0x10, 0x20, 0x10, 0x40, 0x10, 0x84, 0xFD, 0xFE, 0x11, 0x04, 0x31, 0x04, 0x39, 0x04, 0x55, 0x04, 0x51, 0xFC, 0x91, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x04, 0x17, 0xFE, 0x14, 0xA4, 0x14, 0xA4, 0xFF, 0xFC, 0x14, 0x44, 0x10, 0x50, 0x1B, 0xF8, 0x30, 0x40, 0xD0, 0x44, 0x1F, 0xFE, 0x10, 0x80, 0x11, 0x10, 0x12, 0x08, 0x57, 0xFC, 0x20, 0x04, 0x08, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x10, 0x40, 0x10, 0x88, 0x33, 0xFC, 0x52, 0x08, 0x92, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x04, 0x40, 0x7E, 0x40, 0x44, 0x44, 0x54, 0x7E, 0x54, 0x88, 0x55, 0x08, 0x54, 0x48, 0x54, 0x48, 0x54, 0x48, 0x54, 0x50, 0x54, 0x50, 0x10, 0x20, 0x28, 0x50, 0x24, 0x8E, 0x45, 0x04, 0x82, 0x00, 0x04, 0x08, 0x0E, 0xFC, 0x78, 0x20, 0x08, 0x28, 0x08, 0xFC, 0x7E, 0x20, 0x08, 0x28, 0x08, 0xFC, 0xFF, 0x20, 0x08, 0x24, 0x09, 0xFE, 0x08, 0x20, 0x10, 0x20, 0x10, 0x20, 0x20, 0x20, 0x40, 0x20, 0x08, 0x20, 0x1C, 0x44, 0xF1, 0xFE, 0x11, 0x24, 0x11, 0x24, 0xFD, 0xFC, 0x11, 0x24, 0x39, 0x44, 0x35, 0xFC, 0x50, 0xA0, 0x51, 0x24, 0x97, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x00, 0x00, 0x12, 0x04, 0xF9, 0x7E, 0x20, 0x10, 0x2F, 0xD0, 0x20, 0x10, 0x24, 0x90, 0xFA, 0xFC, 0x21, 0x10, 0x21, 0x10, 0x22, 0x90, 0x22, 0x50, 0x3C, 0x50, 0xE4, 0x14, 0x48, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x09, 0x04, 0xFD, 0x7E, 0x21, 0x10, 0x25, 0x10, 0x25, 0x10, 0x25, 0x10, 0xF5, 0x7C, 0x25, 0x10, 0x29, 0x10, 0x21, 0x10, 0x22, 0x10, 0x3A, 0x10, 0xE2, 0x14, 0x44, 0xFE, 0x08, 0x00, 0x21, 0x04, 0x22, 0x3E, 0x27, 0xA4, 0x24, 0xA4, 0xFE, 0xA4, 0x25, 0xA4, 0x24, 0xC2, 0x2F, 0xBC, 0x34, 0xA4, 0xE6, 0xA4, 0x25, 0xA4, 0x24, 0x98, 0x24, 0x88, 0x28, 0x94, 0xB2, 0xA4, 0x41, 0x42, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x11, 0x00, 0xFD, 0x00, 0x11, 0xFC, 0x11, 0x04, 0x15, 0x48, 0x19, 0x48, 0x31, 0x50, 0xD1, 0x30, 0x12, 0x20, 0x12, 0x50, 0x14, 0x8E, 0x59, 0x04, 0x20, 0x00, 0x08, 0x08, 0x12, 0x7C, 0x3F, 0x48, 0x22, 0x48, 0x32, 0x48, 0x2A, 0x86, 0x22, 0x00, 0xFE, 0xFC, 0x22, 0x44, 0x32, 0x48, 0x2A, 0x28, 0x22, 0x10, 0x22, 0x30, 0x22, 0x48, 0x4A, 0x8E, 0x85, 0x04, 0x00, 0x04, 0x2B, 0xFE, 0x28, 0x20, 0x24, 0x44, 0x45, 0xFE, 0x43, 0x04, 0x85, 0x24, 0x7F, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x24, 0x50, 0x24, 0x48, 0x4C, 0x86, 0x83, 0x02, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x11, 0x00, 0xFD, 0x00, 0x11, 0xFC, 0x31, 0x04, 0x39, 0x48, 0x55, 0x48, 0x51, 0x50, 0x91, 0x30, 0x12, 0x20, 0x12, 0x50, 0x14, 0x8E, 0x19, 0x04, 0x10, 0x00, 0x08, 0x08, 0x48, 0x1C, 0x49, 0xE0, 0x49, 0x00, 0x49, 0x00, 0x7D, 0xFC, 0x41, 0x04, 0x41, 0x48, 0x79, 0x48, 0x49, 0x50, 0x49, 0x30, 0x4A, 0x20, 0x4A, 0x50, 0x4C, 0x8E, 0x89, 0x04, 0x08, 0x00, 0x10, 0x20, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0x90, 0xFD, 0x10, 0x11, 0x0E, 0x12, 0x04, 0x1C, 0x08, 0x33, 0xFC, 0xD0, 0x88, 0x10, 0x88, 0x10, 0x88, 0x11, 0x08, 0x11, 0x08, 0x52, 0x28, 0x24, 0x10, 0x10, 0x40, 0x10, 0x40, 0x12, 0x48, 0x11, 0x50, 0xFC, 0x40, 0x13, 0xFC, 0x14, 0x40, 0x18, 0x40, 0x30, 0x44, 0xD7, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x50, 0x40, 0x20, 0x40, 0x08, 0x40, 0x08, 0x40, 0x0A, 0x48, 0x11, 0x50, 0x10, 0x40, 0x37, 0xFC, 0x30, 0x40, 0x50, 0x40, 0x90, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x40, 0x10, 0x20, 0x48, 0xF8, 0xBE, 0x07, 0x40, 0x54, 0x54, 0x55, 0x54, 0xFD, 0x7E, 0x25, 0x48, 0x25, 0x48, 0x25, 0x48, 0x3D, 0x7E, 0xE5, 0x48, 0x26, 0xA8, 0x4B, 0x98, 0x90, 0x08, 0x00, 0x08, 0x01, 0x00, 0x21, 0x08, 0x19, 0x18, 0x09, 0x20, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x20, 0x3F, 0xF0, 0x02, 0x20, 0x02, 0x20, 0x12, 0x30, 0x32, 0x2C, 0x22, 0x26, 0x44, 0x22, 0x84, 0x20, 0x08, 0x20, 0x10, 0xA0, 0x20, 0x40, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x21, 0x24, 0x20, 0xAC, 0x44, 0xB0, 0xF8, 0x28, 0x11, 0xFC, 0x20, 0x20, 0x40, 0x20, 0xFC, 0x24, 0x03, 0xFE, 0x00, 0x20, 0x1C, 0x20, 0xE0, 0x20, 0x40, 0x20, 0x00, 0x20, 0x08, 0x00, 0x08, 0x7C, 0x0A, 0x44, 0xFF, 0x44, 0x08, 0x48, 0x08, 0x48, 0x7E, 0x50, 0x08, 0x48, 0x0A, 0x44, 0xFF, 0x42, 0x08, 0x42, 0x10, 0x62, 0x10, 0x54, 0x20, 0x48, 0x40, 0x40, 0x00, 0x40, 0x08, 0x00, 0x0A, 0x7C, 0xFF, 0x48, 0x08, 0x50, 0x7E, 0x58, 0x08, 0x44, 0xFF, 0x64, 0x08, 0x58, 0x11, 0x50, 0x3F, 0xF0, 0xD1, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x01, 0x00, 0x11, 0x00, 0x11, 0x3E, 0x11, 0x22, 0x17, 0xE4, 0xF9, 0x24, 0x11, 0x28, 0x37, 0xE4, 0x39, 0x24, 0x55, 0x22, 0x57, 0xE2, 0x91, 0x22, 0x11, 0x34, 0x12, 0x28, 0x12, 0x20, 0x14, 0x20, 0x10, 0x20, 0x10, 0x40, 0x10, 0x28, 0x11, 0xFC, 0x10, 0x88, 0xFC, 0x50, 0x13, 0xFE, 0x32, 0x44, 0x38, 0x20, 0x57, 0xFE, 0x50, 0x80, 0x90, 0xF8, 0x10, 0x88, 0x10, 0x88, 0x11, 0x08, 0x12, 0x28, 0x14, 0x10, 0x08, 0x40, 0x7C, 0x28, 0x49, 0xFC, 0x48, 0x88, 0x48, 0x50, 0x7B, 0xFE, 0x4A, 0x44, 0x48, 0x20, 0x4F, 0xFE, 0x78, 0x80, 0x48, 0xF8, 0x48, 0x88, 0x48, 0x88, 0x48, 0x88, 0x89, 0x28, 0x1A, 0x10, 0x11, 0x00, 0x11, 0x3E, 0x21, 0x22, 0x27, 0xE4, 0x49, 0x24, 0xF1, 0x28, 0x27, 0xE4, 0x41, 0x24, 0xF9, 0x22, 0x47, 0xE2, 0x01, 0x22, 0x19, 0x34, 0xE2, 0x28, 0x42, 0x20, 0x04, 0x20, 0x00, 0x20, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0xFD, 0xF8, 0x10, 0x80, 0x37, 0xFE, 0x39, 0x20, 0x55, 0x50, 0x52, 0x4E, 0x95, 0xF4, 0x10, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x00, 0x40, 0x08, 0x28, 0xFD, 0xFC, 0x10, 0x88, 0x10, 0x50, 0x23, 0xFE, 0x22, 0x44, 0x3C, 0x20, 0x67, 0xFE, 0xA4, 0x80, 0x24, 0xF8, 0x24, 0x88, 0x24, 0x88, 0x3C, 0x88, 0x25, 0x28, 0x02, 0x10, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x14, 0x28, 0x7F, 0xFC, 0x54, 0x20, 0x54, 0x28, 0x55, 0xFC, 0x54, 0x20, 0x7C, 0x24, 0x13, 0xFE, 0x14, 0x20, 0x1C, 0x20, 0xE4, 0x20, 0x40, 0x20, 0x00, 0x20, 0x10, 0x40, 0x10, 0x28, 0x11, 0xFC, 0x1C, 0x88, 0x20, 0x50, 0x23, 0xFE, 0x7E, 0x44, 0x90, 0x20, 0x13, 0xFE, 0x7C, 0x80, 0x10, 0xF8, 0x10, 0x88, 0x14, 0x88, 0x18, 0x88, 0x11, 0x28, 0x02, 0x10, 0x08, 0x80, 0x08, 0x50, 0x0B, 0xF8, 0x11, 0x10, 0x10, 0xA0, 0x37, 0xFC, 0x54, 0x88, 0x90, 0x40, 0x1F, 0xFE, 0x11, 0x00, 0x11, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x50, 0x14, 0x20, 0x00, 0x80, 0x40, 0x48, 0x37, 0xFC, 0x11, 0x10, 0x00, 0xA0, 0x0F, 0xFE, 0xE8, 0x84, 0x20, 0x40, 0x2F, 0xFE, 0x21, 0x00, 0x21, 0xF0, 0x21, 0x10, 0x29, 0x10, 0x31, 0x10, 0x22, 0x50, 0x04, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x10, 0x0F, 0xF8, 0x10, 0x10, 0x2F, 0x90, 0x48, 0x90, 0x08, 0x90, 0x0F, 0x90, 0x08, 0x30, 0x08, 0x04, 0x08, 0x04, 0x07, 0xFC, 0x00, 0x00, 0x04, 0x80, 0x3E, 0x88, 0x24, 0xFC, 0x25, 0x08, 0x26, 0x28, 0x3D, 0xF8, 0x25, 0x28, 0x25, 0x28, 0x25, 0x28, 0x3D, 0xE8, 0x25, 0x28, 0x25, 0x10, 0x25, 0x02, 0x45, 0x02, 0x94, 0xFE, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x10, 0x0F, 0xF8, 0x10, 0x10, 0x20, 0x90, 0x5F, 0xD0, 0x10, 0x90, 0x10, 0x90, 0x1F, 0x90, 0x10, 0x90, 0x10, 0x30, 0x10, 0x04, 0x10, 0x04, 0x0F, 0xFC, 0x00, 0x00, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x00, 0x17, 0xF0, 0x14, 0x10, 0x37, 0xF0, 0x50, 0x80, 0x9F, 0xFC, 0x12, 0xA0, 0x14, 0x90, 0x05, 0x08, 0x0C, 0xD0, 0x14, 0x20, 0x66, 0x5C, 0x04, 0x08, 0x01, 0x04, 0x7F, 0x84, 0x01, 0x04, 0x3F, 0x24, 0x01, 0x24, 0xFF, 0xA4, 0x08, 0x24, 0x49, 0x24, 0x29, 0x24, 0x2A, 0x24, 0x1C, 0x24, 0x2A, 0x24, 0xC9, 0x84, 0x08, 0x84, 0x28, 0x14, 0x10, 0x08, 0x08, 0x20, 0xFF, 0xFE, 0x08, 0x50, 0x47, 0xFC, 0x20, 0x40, 0x27, 0xFC, 0x84, 0x44, 0x4F, 0xFC, 0x14, 0x44, 0x27, 0xFC, 0xE4, 0x44, 0x20, 0x10, 0x2F, 0xFE, 0x22, 0x10, 0x21, 0x10, 0x20, 0x30, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x9D, 0x74, 0x01, 0x00, 0x1D, 0x70, 0x08, 0x00, 0x0F, 0xF0, 0x10, 0x90, 0x2F, 0xD0, 0x48, 0x90, 0x0F, 0x90, 0x08, 0xB4, 0x08, 0x04, 0x07, 0xFC, 0x08, 0x08, 0x0B, 0xFC, 0x0A, 0x08, 0x12, 0x08, 0x12, 0x08, 0x33, 0xF8, 0x32, 0x40, 0x50, 0x44, 0x9F, 0xFE, 0x10, 0x40, 0x10, 0xE0, 0x11, 0x50, 0x12, 0x48, 0x14, 0x4E, 0x18, 0x44, 0x10, 0x40, 0x10, 0x10, 0x17, 0xF8, 0x14, 0x10, 0x24, 0x10, 0x27, 0xF0, 0x60, 0x80, 0xBF, 0xFC, 0x21, 0xC0, 0x22, 0xA0, 0x2C, 0x9C, 0x01, 0x80, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x20, 0x80, 0x20, 0x80, 0x20, 0x84, 0x3C, 0xFE, 0x25, 0x04, 0x4A, 0x14, 0x45, 0xFC, 0xA1, 0x14, 0x21, 0x14, 0x21, 0xF4, 0x21, 0x14, 0x25, 0x08, 0x29, 0x02, 0x31, 0x02, 0x20, 0xFE, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x20, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x60, 0x01, 0x20, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0xFD, 0x04, 0x12, 0x14, 0x11, 0xFC, 0x1D, 0x14, 0x31, 0x14, 0xD1, 0xF4, 0x11, 0x14, 0x11, 0x08, 0x11, 0x02, 0x11, 0x02, 0x50, 0xFE, 0x20, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFD, 0x28, 0x11, 0x10, 0x15, 0x00, 0x19, 0xF8, 0x31, 0x08, 0xD1, 0x90, 0x11, 0x50, 0x11, 0x20, 0x11, 0x50, 0x11, 0x8E, 0x51, 0x04, 0x21, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x40, 0x7F, 0xFC, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x35, 0x5E, 0xC3, 0x84, 0x09, 0x20, 0x11, 0x10, 0x03, 0x00, 0x08, 0x40, 0x10, 0x40, 0x22, 0x40, 0xD4, 0x44, 0x48, 0xFE, 0x31, 0x04, 0x2A, 0x04, 0xCC, 0x84, 0x14, 0x44, 0x24, 0x44, 0xCC, 0x04, 0x14, 0x04, 0x64, 0x04, 0x04, 0x04, 0x28, 0x28, 0x10, 0x10, 0x08, 0x40, 0x08, 0x40, 0x1E, 0x44, 0x14, 0x7E, 0x28, 0x84, 0x7F, 0x14, 0xAA, 0xF4, 0x2A, 0x94, 0x3E, 0x94, 0x2A, 0xF4, 0x2A, 0x94, 0x3E, 0x88, 0x00, 0x82, 0x0E, 0x82, 0x70, 0x7E, 0x20, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x16, 0x08, 0x5B, 0xF8, 0x51, 0x10, 0x57, 0xFC, 0x91, 0x10, 0x1F, 0xFE, 0x11, 0x10, 0x12, 0x48, 0x2D, 0x56, 0x28, 0xE4, 0x41, 0x50, 0x82, 0x48, 0x00, 0xC0, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x20, 0xFC, 0x20, 0x10, 0x40, 0x30, 0x40, 0x38, 0xD0, 0x55, 0x48, 0x52, 0x46, 0x94, 0x42, 0x18, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x00, 0x20, 0x08, 0x44, 0xFD, 0xFE, 0x11, 0x24, 0x11, 0x24, 0x21, 0xFC, 0x25, 0x24, 0x3F, 0x44, 0x65, 0xFC, 0xA4, 0xA0, 0x25, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x20, 0x00, 0x20, 0x04, 0x44, 0xFC, 0x7E, 0x04, 0x40, 0x04, 0x48, 0x7C, 0x7C, 0x04, 0x40, 0x04, 0x44, 0xFC, 0x7E, 0x04, 0x40, 0x00, 0x00, 0x12, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x01, 0x00, 0x02, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x12, 0x10, 0x1F, 0xF0, 0x05, 0x00, 0x09, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x80, 0x04, 0x80, 0x04, 0x88, 0x04, 0x98, 0x04, 0xA0, 0x7C, 0xC0, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x1C, 0x82, 0xE4, 0x82, 0x44, 0x7E, 0x00, 0x00, 0x04, 0x88, 0x7C, 0xFC, 0x04, 0x80, 0x7C, 0xFC, 0x04, 0x80, 0x7C, 0xFC, 0x06, 0x80, 0x04, 0x10, 0x3F, 0xF8, 0x09, 0x00, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0x7C, 0x78, 0x04, 0x42, 0x1C, 0x42, 0xE4, 0x3E, 0x40, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x02, 0x40, 0x04, 0x20, 0x08, 0x18, 0x30, 0x08, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x1D, 0x04, 0x21, 0x24, 0x41, 0x24, 0xBD, 0x24, 0x11, 0x24, 0x11, 0x24, 0xFD, 0x24, 0x11, 0x24, 0x11, 0x44, 0x14, 0x50, 0x18, 0x88, 0x11, 0x06, 0x02, 0x02, 0x08, 0x80, 0x08, 0x48, 0x0F, 0xFC, 0x10, 0x00, 0x12, 0x18, 0x31, 0x10, 0x51, 0x24, 0x9F, 0xFE, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x04, 0x00, 0x44, 0x04, 0x29, 0xFE, 0x11, 0x04, 0x29, 0x24, 0x49, 0x24, 0x89, 0x24, 0x09, 0x24, 0x19, 0x24, 0x29, 0x24, 0x49, 0x24, 0x89, 0x44, 0x08, 0x50, 0x08, 0x88, 0x51, 0x06, 0x22, 0x02, 0x04, 0x00, 0x07, 0xF0, 0x08, 0x20, 0x14, 0x40, 0x23, 0x80, 0x02, 0x80, 0x0C, 0x60, 0x30, 0x1E, 0xDF, 0xF4, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x08, 0x00, 0x0F, 0xE0, 0x14, 0x40, 0x12, 0x80, 0x23, 0x80, 0x0C, 0x60, 0x30, 0x1E, 0xDF, 0xF4, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x02, 0x00, 0x29, 0x88, 0x28, 0x94, 0x47, 0xF4, 0x10, 0x80, 0x10, 0x48, 0x17, 0xFC, 0x14, 0x00, 0x5A, 0x18, 0x51, 0x10, 0x51, 0x24, 0x9F, 0xFE, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x2A, 0x08, 0x26, 0x08, 0x46, 0x08, 0x83, 0xF8, 0x02, 0x08, 0x20, 0x20, 0x10, 0x20, 0x10, 0x20, 0x05, 0xFE, 0xFD, 0x22, 0x09, 0x24, 0x11, 0x20, 0x35, 0x20, 0x59, 0xFC, 0x95, 0x04, 0x11, 0x88, 0x12, 0x50, 0x12, 0x20, 0x14, 0x50, 0x18, 0x8E, 0x13, 0x04, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0x05, 0x40, 0x09, 0x30, 0x37, 0xCE, 0xC1, 0x04, 0x09, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x2F, 0xEE, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x09, 0x20, 0x09, 0x20, 0x11, 0x10, 0x2F, 0xEE, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x40, 0x0A, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x01, 0x00, 0x7F, 0xFC, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x2F, 0xEE, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x08, 0x3E, 0xFC, 0x22, 0x88, 0x22, 0x88, 0x3E, 0xF8, 0x22, 0x88, 0x22, 0x88, 0x3E, 0xF8, 0x22, 0x88, 0x22, 0x88, 0x4A, 0xA8, 0x85, 0x10, 0x10, 0x04, 0x17, 0xBE, 0x24, 0xA4, 0x24, 0xA4, 0x44, 0xA4, 0xFF, 0xBC, 0x14, 0xA4, 0x24, 0xA4, 0x44, 0xA4, 0xFF, 0xBC, 0x44, 0xA4, 0x04, 0xA4, 0x1C, 0xA4, 0xE4, 0xC4, 0x4A, 0x94, 0x11, 0x08, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x07, 0x60, 0x19, 0x18, 0xE1, 0x04, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x41, 0x28, 0x81, 0x10, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x10, 0x1F, 0xF8, 0x28, 0x10, 0xC8, 0x10, 0x0F, 0xF0, 0x09, 0x08, 0x01, 0x18, 0x7D, 0xA0, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1E, 0x61, 0x04, 0x03, 0x00, 0x00, 0x40, 0x7A, 0x44, 0x4A, 0x44, 0x4B, 0xFC, 0x48, 0x04, 0x7B, 0xBE, 0x12, 0xA4, 0x12, 0xA4, 0x13, 0xBC, 0x5A, 0xA4, 0x52, 0xA4, 0x53, 0xBC, 0x5A, 0xA4, 0xE2, 0xA4, 0x44, 0xA4, 0x09, 0xCC, 0x04, 0x10, 0x42, 0x20, 0x21, 0x40, 0x2F, 0xF8, 0x02, 0x20, 0x02, 0x20, 0xE2, 0x28, 0x2F, 0xFC, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x24, 0x20, 0x58, 0x26, 0x8F, 0xFC, 0x00, 0x00, 0x00, 0x10, 0x4F, 0xF8, 0x20, 0x00, 0x27, 0xF0, 0x04, 0x10, 0x04, 0x10, 0xE7, 0xF0, 0x20, 0x00, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x12, 0x10, 0x11, 0x10, 0x10, 0x90, 0x1F, 0xF0, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x18, 0x40, 0x00, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0x24, 0x98, 0x3E, 0xA0, 0x20, 0xC0, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x82, 0x26, 0x82, 0x38, 0x82, 0x60, 0x7E, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x7C, 0x22, 0x44, 0x22, 0x44, 0x3E, 0x48, 0x09, 0x48, 0xFF, 0xD0, 0x08, 0x48, 0x7F, 0x44, 0x41, 0x42, 0x5D, 0x42, 0x55, 0x62, 0x5D, 0x54, 0x41, 0x48, 0x7F, 0x40, 0x41, 0x40, 0x08, 0x20, 0x0A, 0x28, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x00, 0x7C, 0x7F, 0x80, 0x01, 0x10, 0x01, 0x78, 0x3F, 0x80, 0x01, 0x08, 0x01, 0x7C, 0xFF, 0x80, 0x01, 0x02, 0x01, 0x02, 0x00, 0xFE, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x13, 0xFC, 0x22, 0x44, 0x4A, 0x48, 0x8A, 0x40, 0x12, 0x40, 0x33, 0xF8, 0x52, 0x08, 0x93, 0x10, 0x12, 0xA0, 0x14, 0x40, 0x14, 0xB0, 0x19, 0x0E, 0x16, 0x04, 0x04, 0x40, 0xFE, 0x88, 0x11, 0xFC, 0x7D, 0x08, 0x11, 0xF8, 0x1F, 0x08, 0xF1, 0xF8, 0x00, 0x08, 0x7F, 0xFC, 0x04, 0x00, 0x08, 0x10, 0x1F, 0xF8, 0x28, 0x10, 0xC8, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x02, 0x10, 0x3F, 0xF8, 0x24, 0x90, 0x23, 0x10, 0x24, 0x90, 0x3F, 0xF0, 0x00, 0x00, 0x20, 0x88, 0x3E, 0x98, 0x20, 0xA0, 0x26, 0xC4, 0x78, 0x84, 0x20, 0x7C, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x49, 0x20, 0x2A, 0x24, 0x0C, 0x3E, 0x7F, 0x44, 0x49, 0xA4, 0x49, 0x24, 0x5D, 0x24, 0x6B, 0x28, 0x49, 0x10, 0x49, 0x28, 0x41, 0x46, 0x43, 0x84, 0x20, 0x80, 0x20, 0x80, 0x20, 0x98, 0x3E, 0xE0, 0x20, 0x80, 0x22, 0x84, 0x2C, 0x84, 0x70, 0x7C, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x80, 0x20, 0x98, 0x3E, 0xE0, 0x20, 0x80, 0x2E, 0x88, 0x30, 0x78, 0x00, 0x04, 0xFF, 0xFE, 0x10, 0x80, 0x1E, 0x88, 0x22, 0x98, 0x52, 0xA0, 0x0C, 0xC0, 0x08, 0x84, 0x10, 0x84, 0x60, 0x7C, 0x00, 0x80, 0x20, 0x88, 0x24, 0x98, 0x3E, 0xA0, 0x20, 0xC0, 0x20, 0x84, 0x2E, 0x84, 0x30, 0x7C, 0x04, 0x00, 0x12, 0x40, 0x50, 0x88, 0x51, 0x06, 0x96, 0x12, 0x18, 0x10, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x38, 0x03, 0xC0, 0x7D, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x21, 0x10, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x00, 0x24, 0x40, 0x24, 0x40, 0x24, 0x44, 0x24, 0x4C, 0x27, 0x50, 0x24, 0x60, 0x24, 0x40, 0x24, 0x40, 0x25, 0x42, 0x4E, 0x42, 0x84, 0x3E, 0x00, 0x00, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x00, 0xAF, 0xF8, 0x68, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x60, 0x00, 0xBF, 0xFE, 0x24, 0x10, 0x24, 0x10, 0x44, 0x10, 0x88, 0x10, 0x10, 0x10, 0x20, 0x04, 0x1B, 0xFE, 0x08, 0x04, 0x40, 0x84, 0x40, 0xA4, 0x5F, 0xF4, 0x40, 0x84, 0x41, 0x84, 0x42, 0x84, 0x44, 0x84, 0x48, 0x84, 0x50, 0x84, 0x40, 0x84, 0x42, 0x84, 0x41, 0x14, 0x40, 0x08, 0x08, 0x20, 0x49, 0x20, 0x2B, 0x20, 0x2C, 0x24, 0x09, 0x7E, 0x7F, 0x84, 0x49, 0x44, 0x49, 0x44, 0x5D, 0x44, 0x5B, 0x48, 0x69, 0x28, 0x49, 0x10, 0x49, 0x28, 0x4B, 0x48, 0x40, 0x86, 0x41, 0x04, 0x08, 0x20, 0x49, 0x20, 0x2A, 0x24, 0x08, 0x3E, 0x7F, 0x44, 0x49, 0xC4, 0x5D, 0x28, 0x6B, 0x10, 0x49, 0x28, 0x43, 0x46, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x02, 0x00, 0x01, 0x00, 0x01, 0x20, 0x01, 0x30, 0x08, 0x20, 0x08, 0x40, 0x48, 0x48, 0x48, 0x46, 0x48, 0x82, 0x89, 0x00, 0x0A, 0x00, 0x0C, 0x10, 0x18, 0x10, 0x28, 0x10, 0x47, 0xF0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x3E, 0x08, 0x23, 0xFC, 0x22, 0x00, 0x22, 0x88, 0x3E, 0x50, 0x23, 0xFE, 0x20, 0x20, 0x3E, 0x28, 0x23, 0xFC, 0x62, 0x20, 0xA2, 0x20, 0x3E, 0x20, 0x20, 0x20, 0x00, 0x20, 0x02, 0x20, 0x3F, 0x14, 0x22, 0xFE, 0x22, 0x44, 0x3E, 0x28, 0x21, 0xFE, 0x3E, 0x10, 0x62, 0xFE, 0xA2, 0x10, 0x3E, 0x90, 0x20, 0x80, 0x1F, 0xF8, 0x00, 0x80, 0x00, 0x84, 0x7F, 0xFE, 0x00, 0x00, 0x02, 0x20, 0x3F, 0xFC, 0x22, 0x88, 0x3E, 0x50, 0x21, 0xFE, 0x3E, 0x20, 0x62, 0xF8, 0xBE, 0x20, 0x00, 0x20, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x30, 0x01, 0x20, 0x4F, 0x90, 0x29, 0x14, 0x09, 0xFE, 0x09, 0x00, 0x0F, 0x44, 0xE8, 0x28, 0x28, 0xFE, 0x2F, 0x10, 0x39, 0x10, 0x29, 0x7C, 0x29, 0x10, 0x2F, 0x10, 0x50, 0x16, 0x8F, 0xFC, 0x00, 0x00, 0x02, 0x20, 0x7A, 0x20, 0x4A, 0x24, 0x53, 0xAC, 0x52, 0x30, 0x62, 0x20, 0x52, 0xA4, 0x4B, 0x1C, 0x48, 0x40, 0x48, 0x40, 0x68, 0x50, 0x53, 0xF8, 0x40, 0x40, 0x40, 0x44, 0x4F, 0xFE, 0x40, 0x00, 0x28, 0x84, 0x28, 0xFE, 0xFE, 0x90, 0x29, 0x7C, 0x3B, 0x54, 0x15, 0x54, 0x7D, 0x7C, 0x55, 0x54, 0x55, 0x54, 0x7D, 0x7C, 0x11, 0x10, 0xFF, 0x50, 0x11, 0x20, 0x11, 0x30, 0x11, 0x4E, 0x11, 0x84, 0x00, 0x80, 0x20, 0x80, 0x10, 0x80, 0x10, 0x88, 0x07, 0xFC, 0x00, 0x88, 0xF0, 0x88, 0x10, 0x88, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x12, 0x50, 0x14, 0x20, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x10, 0x80, 0x10, 0x48, 0x23, 0xFC, 0x22, 0x08, 0x4A, 0x08, 0xFB, 0xF8, 0x12, 0x00, 0x22, 0x04, 0x43, 0xFE, 0xF6, 0x94, 0x4A, 0x94, 0x03, 0xFC, 0x1A, 0x94, 0xE2, 0x94, 0x42, 0x94, 0x02, 0x0C, 0x04, 0x08, 0x7E, 0x1C, 0x45, 0xE0, 0x54, 0x00, 0x54, 0x40, 0x54, 0x20, 0x55, 0xFC, 0x54, 0x04, 0x54, 0x08, 0x54, 0x10, 0x54, 0x20, 0x10, 0x40, 0x28, 0x80, 0x47, 0x46, 0x82, 0x3C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x88, 0x1F, 0xFC, 0x10, 0x08, 0x10, 0x08, 0x1F, 0xF8, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x19, 0x24, 0x29, 0x24, 0x2F, 0xFC, 0x49, 0x24, 0x89, 0x24, 0x09, 0x24, 0x08, 0x0C, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x40, 0x10, 0x44, 0x27, 0xFE, 0x24, 0x44, 0x67, 0xFC, 0xA4, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x22, 0x40, 0x21, 0x40, 0x20, 0x80, 0x21, 0x60, 0x22, 0x1E, 0x2C, 0x04, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x14, 0x50, 0x14, 0x48, 0x24, 0x4C, 0x44, 0x44, 0x1F, 0xF0, 0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0xC0, 0x0C, 0x3C, 0x30, 0x08, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x40, 0x01, 0x20, 0x01, 0x10, 0x01, 0x10, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x10, 0x10, 0x88, 0x10, 0x88, 0x7C, 0xBE, 0x08, 0x84, 0x2A, 0x94, 0x2A, 0x94, 0xFE, 0xBE, 0x12, 0x88, 0x10, 0x88, 0xFC, 0xBE, 0x11, 0x08, 0x11, 0x08, 0x12, 0x08, 0x24, 0x08, 0x40, 0x08, 0x20, 0x20, 0x12, 0x10, 0x11, 0x10, 0x7D, 0x7C, 0x08, 0x08, 0x2F, 0x28, 0x29, 0x28, 0xFD, 0x7E, 0x11, 0x10, 0x11, 0x10, 0xFD, 0x7C, 0x11, 0x10, 0x11, 0x50, 0x11, 0x90, 0x21, 0x10, 0x40, 0x10, 0x20, 0x10, 0x10, 0x88, 0x10, 0x88, 0x7D, 0x3E, 0x09, 0x04, 0x2B, 0xD4, 0x28, 0x54, 0xFC, 0xBE, 0x11, 0x08, 0x13, 0xC8, 0xFC, 0x3E, 0x10, 0x08, 0x10, 0xC8, 0x13, 0x08, 0x20, 0x08, 0x40, 0x08, 0x00, 0x80, 0x40, 0x48, 0x27, 0xFC, 0x24, 0x08, 0x04, 0x08, 0x07, 0xF8, 0xE4, 0x00, 0x27, 0xF8, 0x26, 0xA8, 0x26, 0xA8, 0x2B, 0xF8, 0x2A, 0xA8, 0x32, 0xA8, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x10, 0x00, 0x10, 0x10, 0x13, 0xF8, 0x10, 0x00, 0xFC, 0x00, 0x10, 0x04, 0x37, 0xFE, 0x38, 0x40, 0x54, 0x40, 0x51, 0x50, 0x91, 0x48, 0x12, 0x4C, 0x14, 0x44, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x05, 0x00, 0x07, 0x84, 0x04, 0x0C, 0x3F, 0xD0, 0x24, 0xA0, 0x27, 0x04, 0x3C, 0x8C, 0x27, 0x90, 0x20, 0x20, 0x2F, 0x44, 0x29, 0x0C, 0x29, 0x10, 0x29, 0x22, 0x49, 0x42, 0x90, 0xFE, 0x20, 0x00, 0x00, 0x04, 0x7B, 0xFE, 0x48, 0x50, 0x48, 0x54, 0x49, 0xFE, 0x79, 0x54, 0x49, 0x54, 0x49, 0xFC, 0x48, 0x00, 0x79, 0xFC, 0x48, 0x00, 0x4B, 0xFE, 0x48, 0xA8, 0x49, 0x24, 0x4A, 0x22, 0x98, 0x60, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x05, 0x10, 0x0C, 0xA0, 0x34, 0x40, 0xC4, 0x30, 0x05, 0x0E, 0x06, 0x04, 0x04, 0x00, 0x08, 0x20, 0x2A, 0x24, 0x1C, 0x3E, 0x7F, 0x44, 0x49, 0xA8, 0x5D, 0x10, 0x6B, 0x2E, 0x47, 0xC4, 0x08, 0x90, 0x3F, 0xF8, 0x51, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x49, 0x20, 0x2A, 0x20, 0x08, 0x24, 0x7F, 0x3E, 0x49, 0x48, 0x5D, 0xA8, 0x6B, 0x10, 0x49, 0x2E, 0x43, 0x44, 0x00, 0x00, 0x2A, 0x10, 0x29, 0x88, 0x28, 0xA4, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x00, 0x01, 0x04, 0x3F, 0x84, 0x21, 0x04, 0x21, 0x24, 0x21, 0x24, 0x3F, 0x24, 0x28, 0x24, 0x09, 0x24, 0xFF, 0xA4, 0x09, 0x24, 0x09, 0x24, 0x11, 0x24, 0x11, 0x04, 0x25, 0x04, 0x42, 0x14, 0x00, 0x08, 0x00, 0x84, 0x3F, 0xFE, 0x21, 0x00, 0xA7, 0xF8, 0x64, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x27, 0xF8, 0x64, 0x08, 0xA7, 0xF8, 0x21, 0x20, 0x22, 0x10, 0x26, 0x6E, 0x3B, 0x84, 0x42, 0x08, 0x81, 0xF8, 0x10, 0x80, 0x10, 0x82, 0x10, 0x82, 0x10, 0x84, 0xFF, 0xE8, 0x10, 0x90, 0x31, 0x82, 0x39, 0xC2, 0x52, 0xA4, 0x52, 0x88, 0x94, 0x92, 0x10, 0x82, 0x10, 0x84, 0x10, 0x88, 0x10, 0x90, 0x10, 0xA0, 0x00, 0x10, 0x20, 0x10, 0x11, 0xF4, 0x00, 0x12, 0xFC, 0x10, 0x0B, 0xFE, 0x48, 0x10, 0x28, 0x50, 0x29, 0x50, 0x11, 0x70, 0x29, 0x50, 0x25, 0x48, 0x45, 0x48, 0x81, 0x6A, 0x03, 0x86, 0x00, 0x02, 0x02, 0x04, 0x42, 0xFE, 0x2A, 0x10, 0x2B, 0xA4, 0x0A, 0x7E, 0x8A, 0x44, 0x5F, 0xD4, 0x02, 0x54, 0x2A, 0x54, 0x2A, 0xD4, 0xD3, 0x54, 0x42, 0x54, 0x44, 0x10, 0x48, 0x28, 0x50, 0x46, 0x01, 0x82, 0x00, 0x80, 0x40, 0x40, 0x2F, 0xFE, 0x28, 0x02, 0x10, 0x64, 0x83, 0x80, 0x52, 0x10, 0x13, 0xF8, 0x12, 0x20, 0x22, 0x20, 0xE2, 0x24, 0x3F, 0xFE, 0x20, 0x00, 0x23, 0x20, 0x22, 0x18, 0x24, 0x08, 0x02, 0x00, 0x01, 0x00, 0x3F, 0xFC, 0x20, 0x04, 0x40, 0xE8, 0x0F, 0x00, 0x08, 0x20, 0x0F, 0xF0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x0C, 0x40, 0x08, 0x30, 0x10, 0x10, 0x10, 0x40, 0x10, 0x20, 0x17, 0xFE, 0x14, 0x02, 0xFC, 0x34, 0x11, 0xC0, 0x15, 0x10, 0x19, 0xF8, 0x31, 0x10, 0xD1, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x10, 0x00, 0x11, 0x90, 0x51, 0x0C, 0x22, 0x04, 0x00, 0x20, 0x00, 0xF0, 0x0F, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x10, 0x0F, 0xF8, 0x08, 0x40, 0x08, 0x40, 0x08, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x0C, 0x30, 0x10, 0x18, 0x20, 0x08, 0x00, 0x80, 0x40, 0x80, 0x30, 0x84, 0x10, 0x8C, 0x00, 0x90, 0x0F, 0xA0, 0x11, 0xC0, 0x12, 0xC0, 0x22, 0xA0, 0xE4, 0x90, 0x24, 0x88, 0x28, 0x8E, 0x30, 0x84, 0x20, 0x80, 0x22, 0x80, 0x21, 0x00, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x40, 0xFC, 0x40, 0x10, 0x44, 0x33, 0xFE, 0x3A, 0x44, 0x56, 0x44, 0x52, 0x64, 0x92, 0x9C, 0x13, 0x0C, 0x12, 0x04, 0x12, 0x04, 0x12, 0x14, 0x12, 0x08, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x88, 0x22, 0x48, 0x24, 0x28, 0x28, 0x28, 0x20, 0x08, 0x20, 0x28, 0x20, 0x10, 0x00, 0x78, 0x3F, 0x80, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF0, 0x01, 0x14, 0xFF, 0xFE, 0x01, 0x10, 0x3F, 0xF0, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x11, 0x0E, 0x61, 0x04, 0x01, 0x00, 0x20, 0x00, 0x21, 0x08, 0x20, 0x90, 0x3C, 0x00, 0x47, 0xFC, 0x48, 0x90, 0xA0, 0x90, 0x20, 0x94, 0x27, 0xFE, 0x20, 0x90, 0x20, 0x90, 0x24, 0x90, 0x28, 0x90, 0x31, 0x10, 0x22, 0x10, 0x04, 0x10, 0x00, 0x00, 0x20, 0x04, 0x2F, 0xFE, 0x20, 0x40, 0x28, 0x40, 0xB0, 0x44, 0xA7, 0xFE, 0xA4, 0x44, 0x24, 0x44, 0x24, 0x64, 0x24, 0x94, 0x25, 0x14, 0x54, 0x04, 0x4C, 0x04, 0x84, 0x14, 0x04, 0x08, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x08, 0x57, 0xFC, 0x50, 0x40, 0x10, 0x44, 0x37, 0xFE, 0x54, 0x44, 0x94, 0x44, 0x14, 0xA4, 0x25, 0x14, 0x24, 0x04, 0x44, 0x14, 0x04, 0x08, 0x10, 0x10, 0x0C, 0x30, 0x04, 0x40, 0x3F, 0xFC, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x24, 0xFF, 0xFE, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x00, 0x20, 0x08, 0x20, 0xFC, 0x20, 0x11, 0xFE, 0x11, 0x22, 0x11, 0x24, 0x7D, 0x20, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x88, 0x1E, 0x48, 0xF2, 0x50, 0x42, 0x20, 0x04, 0x50, 0x08, 0x8E, 0x03, 0x04, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x20, 0x20, 0x13, 0xFE, 0x92, 0x22, 0x42, 0x24, 0x0A, 0xF8, 0x12, 0x88, 0xE2, 0x50, 0x24, 0x20, 0x24, 0x50, 0x24, 0x88, 0x29, 0x0E, 0x32, 0x04, 0x10, 0x38, 0x13, 0xC0, 0x10, 0x44, 0x12, 0x4C, 0xFD, 0x50, 0x17, 0xFE, 0x11, 0x50, 0x1A, 0x4E, 0x34, 0x44, 0xD3, 0xF8, 0x12, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x12, 0x48, 0x52, 0x48, 0x23, 0xF8, 0x10, 0x40, 0x10, 0x50, 0x12, 0x48, 0x12, 0x40, 0xFF, 0xFE, 0x10, 0x80, 0x14, 0x80, 0x18, 0xF8, 0x11, 0x08, 0x31, 0x90, 0xD2, 0x50, 0x12, 0x20, 0x14, 0x50, 0x18, 0x88, 0x51, 0x0E, 0x22, 0x04, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x38, 0x48, 0x47, 0xFC, 0x80, 0x40, 0x78, 0xE0, 0x20, 0xD0, 0x21, 0x48, 0xFA, 0x4E, 0x24, 0x44, 0x21, 0xF0, 0x28, 0x40, 0x30, 0x40, 0x20, 0x40, 0x00, 0x40, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x17, 0xFC, 0x04, 0x44, 0x84, 0x48, 0x44, 0x40, 0x0F, 0xF8, 0x14, 0x08, 0x25, 0x10, 0xE4, 0xA0, 0x24, 0x40, 0x28, 0xA0, 0x29, 0x10, 0x32, 0x0E, 0x24, 0x04, 0x20, 0x50, 0x20, 0x48, 0x2F, 0xFE, 0x20, 0x40, 0x27, 0xFC, 0xFC, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x20, 0x10, 0x2F, 0xFE, 0x22, 0x10, 0x21, 0x10, 0x20, 0x50, 0x20, 0x20, 0x08, 0x20, 0x0A, 0x20, 0x7F, 0x20, 0x08, 0x20, 0x08, 0x24, 0x7F, 0xFE, 0x41, 0x24, 0x82, 0x24, 0x3E, 0x24, 0x04, 0x44, 0x08, 0x44, 0x7E, 0x44, 0x08, 0x84, 0x08, 0x84, 0x29, 0x28, 0x12, 0x10, 0x10, 0x50, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0xFB, 0xF8, 0x12, 0x48, 0x13, 0xF8, 0x1A, 0x48, 0x33, 0xF8, 0xD2, 0x48, 0x10, 0x10, 0x1F, 0xFE, 0x12, 0x10, 0x11, 0x10, 0x50, 0x50, 0x20, 0x20, 0x10, 0x40, 0x10, 0x40, 0x10, 0x84, 0x1D, 0xFE, 0x21, 0x04, 0x21, 0x04, 0x7D, 0x04, 0x91, 0x04, 0x11, 0xFC, 0x7D, 0x04, 0x11, 0x04, 0x11, 0x04, 0x15, 0x04, 0x19, 0xFC, 0x11, 0x04, 0x00, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x20, 0x40, 0x10, 0x88, 0x83, 0xFC, 0x42, 0x08, 0x0A, 0x08, 0x13, 0xF8, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x08, 0x40, 0x08, 0x40, 0x08, 0x84, 0x11, 0xFE, 0x11, 0x04, 0x31, 0x04, 0x51, 0x04, 0x91, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x00, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x11, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x21, 0x10, 0x01, 0x00, 0x08, 0x20, 0x08, 0x20, 0x12, 0x44, 0x3F, 0xFE, 0x22, 0x84, 0x32, 0x84, 0x2A, 0x84, 0x22, 0x84, 0xFE, 0xFC, 0x22, 0x84, 0x32, 0x84, 0x2A, 0x84, 0x22, 0x84, 0x22, 0xFC, 0x4A, 0x84, 0x84, 0x00, 0x08, 0x40, 0x7C, 0x48, 0x4B, 0xFC, 0x48, 0x40, 0x4B, 0xFC, 0x7A, 0x04, 0x4C, 0x08, 0x49, 0xF0, 0x48, 0x20, 0x78, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x49, 0x40, 0x98, 0x80, 0x08, 0x50, 0x7C, 0x48, 0x4F, 0xFE, 0x48, 0x40, 0x4B, 0xF8, 0x7A, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x4B, 0xF8, 0x7A, 0x48, 0x48, 0x10, 0x4F, 0xFE, 0x4A, 0x10, 0x49, 0x10, 0x48, 0x50, 0x98, 0x20, 0x02, 0x10, 0x42, 0x10, 0x32, 0x90, 0x1F, 0xD4, 0x82, 0x3E, 0x5F, 0xD4, 0x50, 0x54, 0x0F, 0x94, 0x11, 0x14, 0x22, 0x24, 0xE3, 0xA4, 0x2E, 0x24, 0x22, 0x44, 0x22, 0x44, 0x2A, 0x94, 0x25, 0x08, 0x00, 0x40, 0x40, 0x40, 0x30, 0x88, 0x13, 0xFC, 0x82, 0x08, 0x62, 0x08, 0x22, 0x08, 0x0A, 0x08, 0x13, 0xF8, 0x22, 0x08, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x20, 0x00, 0x04, 0x00, 0x7F, 0x08, 0x04, 0x88, 0x24, 0x50, 0x24, 0x20, 0x24, 0x50, 0x24, 0x88, 0x25, 0x08, 0x3E, 0x04, 0x02, 0x8C, 0x02, 0x50, 0x1E, 0x20, 0xE2, 0x50, 0x42, 0x8E, 0x0B, 0x04, 0x04, 0x00, 0x20, 0x40, 0x20, 0x50, 0x20, 0x48, 0x2F, 0xFE, 0xF8, 0x44, 0x27, 0xFE, 0x24, 0x44, 0x2C, 0x44, 0x37, 0xFC, 0xE4, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0xA4, 0x54, 0x44, 0x08, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x80, 0x02, 0x60, 0x02, 0x30, 0x02, 0x10, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x40, 0x10, 0x50, 0x78, 0x48, 0x57, 0xFE, 0x50, 0x44, 0x57, 0xFE, 0x54, 0x44, 0x54, 0x44, 0x57, 0xFC, 0x54, 0x44, 0x54, 0x44, 0x77, 0xFC, 0x54, 0x44, 0x04, 0x44, 0x04, 0x54, 0x04, 0x08, 0x10, 0x40, 0x08, 0x40, 0x08, 0x40, 0x02, 0x40, 0xFE, 0x40, 0x04, 0x40, 0x08, 0x60, 0x0A, 0x50, 0x1C, 0x4C, 0x2A, 0x44, 0x48, 0x40, 0x88, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x20, 0x80, 0x21, 0x08, 0x23, 0xFC, 0x22, 0x08, 0xFB, 0xF8, 0x22, 0x00, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x40, 0x38, 0x44, 0xE7, 0xFE, 0x40, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x03, 0x40, 0x05, 0x20, 0x09, 0x18, 0x11, 0x0C, 0x21, 0x04, 0x41, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x08, 0xFF, 0xFC, 0x04, 0x00, 0x09, 0x00, 0x11, 0x08, 0x3F, 0xFC, 0x51, 0x08, 0x91, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x28, 0x11, 0x10, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x00, 0x09, 0x10, 0x09, 0xF8, 0x09, 0x00, 0x09, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x09, 0x10, 0x0D, 0x18, 0x11, 0x20, 0x21, 0x20, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x70, 0x00, 0x10, 0x40, 0x3E, 0xFC, 0x49, 0x20, 0x00, 0x48, 0x27, 0xFC, 0x10, 0x40, 0x13, 0xF8, 0x82, 0x48, 0x43, 0xF8, 0x0A, 0x48, 0x13, 0xF8, 0xE2, 0x48, 0x2F, 0xFE, 0x21, 0x10, 0x20, 0x90, 0x20, 0x30, 0x10, 0x00, 0x08, 0x7C, 0x02, 0x44, 0x7F, 0x44, 0x00, 0x48, 0x22, 0x48, 0x14, 0x50, 0xFF, 0xC8, 0x02, 0x44, 0x3F, 0x42, 0x22, 0x42, 0x22, 0x62, 0x22, 0x54, 0x3E, 0x48, 0x22, 0x40, 0x00, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x13, 0xFE, 0x58, 0x80, 0x55, 0x20, 0x51, 0x24, 0x93, 0xFE, 0x15, 0x24, 0x19, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x2C, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x20, 0x80, 0x20, 0x40, 0x2F, 0xFE, 0x2A, 0x02, 0xFB, 0xBC, 0x26, 0xA4, 0x25, 0x28, 0x2B, 0x18, 0x32, 0x08, 0xE5, 0xF6, 0x28, 0x00, 0x27, 0xFC, 0x22, 0x48, 0x22, 0x44, 0xA5, 0x44, 0x40, 0x80, 0x00, 0x40, 0x48, 0x48, 0x2F, 0xFC, 0x10, 0x40, 0x2B, 0xF8, 0x48, 0x40, 0x0F, 0xFE, 0x18, 0x08, 0x2B, 0xFC, 0x4A, 0x08, 0x8B, 0xF8, 0x0A, 0x08, 0x0B, 0xF8, 0x0A, 0x08, 0x52, 0x08, 0x22, 0x18, 0x04, 0x40, 0x04, 0x50, 0x3F, 0x48, 0x04, 0x40, 0xFF, 0xFE, 0x10, 0x40, 0x08, 0x44, 0x7F, 0x44, 0x08, 0x48, 0x11, 0x48, 0x3A, 0x50, 0x54, 0x20, 0x93, 0x60, 0x19, 0x92, 0x11, 0x0A, 0x02, 0x06, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x14, 0xFE, 0xFE, 0x08, 0x10, 0x18, 0x10, 0x1C, 0x30, 0x2A, 0x30, 0x28, 0x50, 0x48, 0x90, 0x89, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x50, 0x08, 0x20, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x84, 0xFF, 0xFE, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x02, 0x80, 0x04, 0x80, 0x08, 0x80, 0x10, 0x80, 0x60, 0x80, 0x00, 0x80, 0x02, 0x80, 0x01, 0x00, 0x04, 0x10, 0x7E, 0x10, 0x44, 0x10, 0x54, 0x14, 0x57, 0xFE, 0x54, 0x10, 0x54, 0x30, 0x54, 0x30, 0x54, 0x50, 0x54, 0x90, 0x55, 0x10, 0x2A, 0x10, 0x24, 0x10, 0x44, 0x10, 0x80, 0x50, 0x00, 0x20, 0x08, 0x1C, 0x7F, 0xE0, 0x48, 0x88, 0x4A, 0x48, 0x49, 0x50, 0x78, 0x00, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x78, 0xC0, 0x48, 0xE0, 0x49, 0x50, 0x4A, 0x4E, 0x7C, 0x44, 0x48, 0x40, 0x00, 0x40, 0x04, 0x1C, 0x7F, 0xE0, 0x44, 0x44, 0x45, 0x26, 0x44, 0xA8, 0x7C, 0x00, 0x10, 0x24, 0x13, 0xFE, 0x5C, 0x20, 0x50, 0x60, 0x50, 0x70, 0x50, 0xA8, 0x5D, 0x26, 0xE2, 0x24, 0x40, 0x20, 0x00, 0x20, 0x00, 0x08, 0x00, 0x7C, 0x7F, 0x80, 0x00, 0x08, 0x11, 0x18, 0x08, 0xA0, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x11, 0x0E, 0x61, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0E, 0x08, 0xF1, 0x18, 0x49, 0x20, 0x2A, 0x40, 0x20, 0x84, 0x08, 0x0C, 0xFF, 0x10, 0x08, 0x20, 0x1C, 0x40, 0x1B, 0x04, 0x29, 0x0C, 0x48, 0x10, 0x88, 0x20, 0x08, 0x40, 0x08, 0x80, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x38, 0x3F, 0xC0, 0x12, 0x10, 0x09, 0x20, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x11, 0x0E, 0x61, 0x04, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x14, 0x40, 0x16, 0xF8, 0x12, 0x90, 0x2C, 0x60, 0x68, 0x20, 0x17, 0xD0, 0x20, 0x0E, 0x5F, 0xF4, 0x81, 0x00, 0x09, 0x20, 0x19, 0x18, 0x21, 0x08, 0x03, 0x00, 0x10, 0x00, 0x1E, 0xF8, 0x10, 0x88, 0x3E, 0x50, 0x44, 0x20, 0x29, 0x50, 0x12, 0x8C, 0x65, 0x44, 0x0F, 0xE0, 0x38, 0x3E, 0xCF, 0xE4, 0x08, 0x20, 0x0F, 0xE0, 0x0A, 0x10, 0x09, 0xA0, 0x0C, 0x78, 0x02, 0x00, 0x02, 0x40, 0x04, 0x20, 0x1F, 0xF0, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0xA0, 0x13, 0x10, 0x2C, 0x4E, 0xC1, 0x84, 0x0E, 0x10, 0x00, 0x60, 0x01, 0x80, 0x0E, 0x00, 0x70, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x05, 0x40, 0x09, 0x20, 0x3F, 0xFE, 0xD1, 0x14, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x00, 0x40, 0x04, 0x50, 0x7E, 0x48, 0x10, 0x40, 0x10, 0x7C, 0x1F, 0xC0, 0x22, 0x48, 0x22, 0x7C, 0x65, 0xC0, 0x94, 0x48, 0x08, 0x50, 0x08, 0x20, 0x10, 0x60, 0x20, 0x92, 0x43, 0x0A, 0x80, 0x06, 0x21, 0x00, 0x21, 0x06, 0x21, 0x38, 0x2F, 0xE0, 0xB2, 0x20, 0xAD, 0x20, 0xA5, 0x3E, 0x2F, 0xE8, 0x21, 0x28, 0x21, 0x28, 0x21, 0xE8, 0x2F, 0x28, 0x25, 0x48, 0x21, 0x48, 0x21, 0x88, 0x21, 0x08, 0x20, 0x80, 0x20, 0xA0, 0x21, 0x10, 0x27, 0xF8, 0xB0, 0x80, 0xAF, 0xFE, 0xA1, 0x20, 0x22, 0x50, 0x24, 0x8E, 0x39, 0x24, 0x22, 0x40, 0x20, 0x88, 0x23, 0x10, 0x20, 0x20, 0x20, 0xC0, 0x27, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x14, 0x20, 0x54, 0x20, 0x59, 0x24, 0x51, 0x24, 0x91, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x29, 0x24, 0x25, 0x24, 0x45, 0x24, 0x81, 0xFC, 0x01, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x18, 0x30, 0x6F, 0xEE, 0x88, 0x24, 0x08, 0xA0, 0x08, 0x40, 0x08, 0x10, 0x08, 0x10, 0x07, 0xF0, 0x00, 0x00, 0x08, 0x20, 0x10, 0x20, 0x3C, 0x50, 0x24, 0x50, 0x34, 0x88, 0x2D, 0x06, 0x26, 0x04, 0xFC, 0xF8, 0x24, 0x88, 0x34, 0x88, 0x2C, 0xA8, 0x24, 0x90, 0x24, 0x80, 0x24, 0x84, 0x54, 0x84, 0x88, 0x7C, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x30, 0x1E, 0xCF, 0xE4, 0x08, 0x20, 0x08, 0x20, 0x08, 0xA0, 0x08, 0x40, 0x08, 0x08, 0x08, 0x08, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x31, 0x40, 0x11, 0x40, 0x82, 0x20, 0x44, 0x10, 0x48, 0x0E, 0x13, 0xF4, 0x12, 0x10, 0x22, 0x10, 0xE2, 0x50, 0x22, 0x20, 0x22, 0x04, 0x22, 0x04, 0x21, 0xFC, 0x20, 0x00, 0x04, 0x84, 0xFF, 0xFE, 0x04, 0xA8, 0x04, 0xA4, 0x5F, 0xFE, 0x50, 0x20, 0x57, 0xA0, 0x75, 0x24, 0x17, 0xA4, 0x74, 0xA4, 0x57, 0xA8, 0x55, 0x28, 0x95, 0x10, 0x27, 0xB2, 0x44, 0x4A, 0x80, 0x86, 0x10, 0x10, 0x11, 0xF8, 0x11, 0x10, 0x11, 0xF0, 0xFC, 0x04, 0x17, 0xBE, 0x14, 0xA4, 0x1F, 0xBC, 0x30, 0x40, 0xD0, 0x44, 0x1F, 0xFE, 0x10, 0xE0, 0x11, 0x50, 0x12, 0x4E, 0x54, 0x44, 0x20, 0x40, 0x10, 0x10, 0x10, 0x50, 0x55, 0x50, 0x39, 0x7C, 0x10, 0x90, 0xFC, 0x10, 0x10, 0xFE, 0x33, 0x04, 0x39, 0x7E, 0x55, 0x44, 0x91, 0x44, 0x11, 0x44, 0x11, 0x7C, 0x12, 0x80, 0x14, 0x7E, 0x10, 0x00, 0x10, 0x90, 0x10, 0x94, 0x17, 0xFE, 0x10, 0x90, 0xFF, 0xFC, 0x12, 0x94, 0x33, 0xFC, 0x3A, 0x94, 0x57, 0xFC, 0x54, 0x08, 0x91, 0xFC, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x48, 0x3F, 0xFC, 0x24, 0x48, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x00, 0x2F, 0x84, 0x28, 0xA4, 0x2A, 0xA4, 0x2A, 0xA4, 0x2A, 0xA4, 0x2A, 0xA4, 0x2A, 0xA4, 0x2A, 0xA4, 0x22, 0x24, 0x45, 0x04, 0x44, 0x84, 0x88, 0x94, 0x10, 0x08, 0x10, 0x20, 0x3E, 0x7C, 0x50, 0xA0, 0x09, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x23, 0x88, 0x25, 0x58, 0x05, 0x20, 0x09, 0x10, 0x11, 0x0E, 0x61, 0x04, 0x01, 0x00, 0x10, 0x00, 0x10, 0x44, 0x17, 0xE4, 0x24, 0x54, 0x25, 0x54, 0x65, 0x54, 0xA5, 0x54, 0x25, 0x54, 0x25, 0x54, 0x25, 0x54, 0x25, 0x44, 0x21, 0x04, 0x22, 0x84, 0x24, 0x44, 0x28, 0x14, 0x20, 0x08, 0x02, 0x08, 0x1F, 0x7C, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0xFF, 0xFE, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x26, 0xA8, 0x41, 0x10, 0x00, 0x00, 0x40, 0x44, 0x27, 0xE4, 0x24, 0x54, 0x85, 0x54, 0x65, 0x54, 0x25, 0x54, 0x0D, 0x54, 0x15, 0x54, 0x25, 0x54, 0xE5, 0x54, 0x21, 0x04, 0x22, 0x84, 0x24, 0x44, 0x28, 0x54, 0x20, 0x08, 0x00, 0x04, 0x1F, 0xFE, 0x10, 0x04, 0x10, 0x04, 0x1F, 0xFC, 0x10, 0x00, 0x10, 0x10, 0x17, 0xF8, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x11, 0x00, 0x22, 0x10, 0x24, 0x08, 0x4F, 0xFC, 0x80, 0x04, 0x00, 0x88, 0x08, 0x50, 0x7C, 0x00, 0x4B, 0xFE, 0x4A, 0x22, 0x4A, 0xAA, 0x7A, 0x72, 0x12, 0x22, 0x53, 0xFE, 0x5C, 0x04, 0x51, 0xFE, 0x51, 0x04, 0x5D, 0xFC, 0xF1, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x10, 0x10, 0x10, 0x38, 0x17, 0xC0, 0x10, 0x40, 0xF8, 0x44, 0x17, 0xFE, 0x10, 0x40, 0x19, 0x44, 0x36, 0x5E, 0xD4, 0x44, 0x14, 0x44, 0x17, 0x5C, 0x14, 0x44, 0x14, 0x44, 0x57, 0xFC, 0x24, 0x04, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x08, 0x12, 0x08, 0x11, 0x10, 0x09, 0x10, 0x04, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x0A, 0x20, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x30, 0x40, 0x50, 0x40, 0x90, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x19, 0x30, 0x21, 0x0E, 0xDF, 0xF4, 0x01, 0x00, 0x09, 0x20, 0x19, 0x18, 0x21, 0x08, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x3F, 0xFE, 0xD0, 0x14, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x08, 0x40, 0xFC, 0x44, 0x17, 0xFE, 0x10, 0xE0, 0x21, 0x50, 0x22, 0x4E, 0x7C, 0x44, 0xAB, 0xF8, 0x2A, 0x08, 0x2B, 0xF8, 0x2A, 0x08, 0x2B, 0xF8, 0x38, 0x04, 0x27, 0xFE, 0x00, 0x00, 0x11, 0x10, 0x11, 0x10, 0x17, 0xFC, 0x11, 0x10, 0xFC, 0x40, 0x10, 0xA0, 0x15, 0x10, 0x1A, 0x4E, 0x34, 0x44, 0xD3, 0xF8, 0x10, 0x40, 0x12, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x51, 0x40, 0x20, 0x80, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x48, 0x02, 0x8E, 0xF4, 0x12, 0x90, 0x2C, 0x60, 0x68, 0x20, 0x17, 0xD0, 0x20, 0x0E, 0x5F, 0xF4, 0x81, 0x00, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x00, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x2F, 0xEE, 0xC4, 0x24, 0x04, 0x20, 0x08, 0xA0, 0x30, 0x40, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x08, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x20, 0x17, 0xF0, 0x20, 0x80, 0x40, 0x80, 0x80, 0x88, 0x1F, 0xFC, 0x00, 0x80, 0x40, 0x40, 0x37, 0xFE, 0x14, 0x02, 0x00, 0x24, 0x00, 0x70, 0xF7, 0x80, 0x10, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x17, 0x80, 0x10, 0x80, 0x14, 0x82, 0x18, 0x82, 0x10, 0x7E, 0x00, 0x00, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x11, 0x00, 0xFD, 0x00, 0x11, 0x04, 0x11, 0xFE, 0x1D, 0x20, 0x31, 0x20, 0xD1, 0x30, 0x11, 0x2C, 0x11, 0x24, 0x11, 0x20, 0x12, 0x20, 0x54, 0x20, 0x20, 0x20, 0x08, 0x80, 0x08, 0x88, 0x28, 0x98, 0x2E, 0xA0, 0x28, 0xC0, 0x28, 0x84, 0x2E, 0x84, 0x71, 0x7C, 0x01, 0x00, 0xFF, 0xFF, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x21, 0x08, 0x01, 0x00, 0x04, 0x08, 0x08, 0x08, 0x12, 0x08, 0xEA, 0x08, 0x2C, 0x08, 0x29, 0xFE, 0x14, 0x08, 0xE6, 0x18, 0x0A, 0x18, 0x12, 0x28, 0x66, 0x48, 0x0A, 0x88, 0x13, 0x08, 0xE2, 0x08, 0x14, 0x28, 0x08, 0x10, 0x10, 0x40, 0x10, 0x80, 0x11, 0xF0, 0x12, 0x20, 0xFF, 0xF8, 0x12, 0x48, 0x16, 0x48, 0x1B, 0xF8, 0x30, 0xA0, 0xD1, 0x22, 0x12, 0x1E, 0x1C, 0xC0, 0x10, 0x30, 0x11, 0x80, 0x50, 0x60, 0x20, 0x10, 0x10, 0x80, 0x10, 0xA0, 0x11, 0x10, 0x13, 0xF8, 0xF8, 0x80, 0x17, 0xFE, 0x10, 0xA0, 0x19, 0x10, 0x32, 0x48, 0xD4, 0x8E, 0x19, 0x24, 0x12, 0x40, 0x10, 0x90, 0x11, 0x20, 0x50, 0x40, 0x23, 0x80, 0x11, 0x04, 0x10, 0x8C, 0x10, 0x50, 0x7D, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x7D, 0x24, 0x11, 0xFC, 0x14, 0x20, 0x1F, 0xFE, 0xE4, 0x20, 0x40, 0x20, 0x00, 0x20, 0x00, 0x20, 0x20, 0x80, 0x20, 0x80, 0x20, 0xF0, 0x39, 0x20, 0x4B, 0xF8, 0x56, 0x48, 0x82, 0x48, 0x23, 0xF8, 0x20, 0xA2, 0x21, 0x22, 0x26, 0x1E, 0x20, 0xC0, 0x28, 0x30, 0x31, 0x80, 0x20, 0x60, 0x00, 0x10, 0x01, 0x00, 0x21, 0x00, 0x11, 0xF0, 0x12, 0x20, 0x07, 0xF8, 0x02, 0x48, 0xF2, 0x48, 0x13, 0xF8, 0x10, 0xA2, 0x11, 0x22, 0x16, 0x1E, 0x10, 0xC0, 0x10, 0x30, 0x15, 0x80, 0x18, 0x60, 0x00, 0x10, 0x10, 0x40, 0x10, 0x24, 0x27, 0xFE, 0x24, 0x00, 0x4D, 0xFC, 0xF5, 0x24, 0x25, 0x24, 0x45, 0xFC, 0xFD, 0x24, 0x05, 0x24, 0x05, 0xFC, 0x1C, 0x20, 0xE5, 0xFC, 0x48, 0x20, 0x13, 0xFE, 0x20, 0x00, 0x10, 0x20, 0x10, 0x10, 0x10, 0x04, 0x1D, 0xFE, 0x20, 0x00, 0x20, 0x84, 0x7C, 0x48, 0x91, 0xFE, 0x11, 0x00, 0xFD, 0x00, 0x11, 0x00, 0x11, 0x00, 0x15, 0x00, 0x19, 0x00, 0x12, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x10, 0x04, 0x20, 0x04, 0x48, 0x1F, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x20, 0x04, 0x17, 0xFE, 0x50, 0x04, 0x44, 0x44, 0x42, 0x84, 0x4F, 0xE4, 0x49, 0x24, 0x4F, 0xE4, 0x49, 0x24, 0x4F, 0xE4, 0x41, 0x04, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x40, 0x0C, 0x08, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x7F, 0x24, 0x55, 0x7E, 0x5D, 0x44, 0x55, 0x54, 0x7F, 0x54, 0x00, 0x54, 0x3E, 0x54, 0x32, 0x54, 0x2A, 0x54, 0x3E, 0x10, 0x00, 0x28, 0xFF, 0x46, 0x00, 0x82, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x01, 0xF8, 0x45, 0x08, 0x29, 0x08, 0x11, 0xF8, 0x29, 0x08, 0x49, 0x08, 0x09, 0xF8, 0x18, 0x04, 0x2B, 0xFE, 0x4A, 0x04, 0x8A, 0x04, 0x0B, 0xFC, 0x0A, 0x04, 0x0A, 0x04, 0x53, 0xFC, 0x22, 0x04, 0x20, 0x00, 0x27, 0xF8, 0x20, 0x20, 0x20, 0x40, 0xF8, 0x80, 0x21, 0x04, 0x27, 0xFE, 0x21, 0x24, 0x21, 0x24, 0x21, 0x24, 0x3A, 0x24, 0xE2, 0x44, 0x44, 0x44, 0x08, 0x84, 0x11, 0x28, 0x00, 0x10, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x24, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x00, 0x10, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x7F, 0xFE, 0x40, 0x02, 0x8F, 0xE4, 0x08, 0x20, 0x0F, 0xE0, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x01, 0x20, 0x01, 0x00, 0x08, 0x00, 0x08, 0x10, 0x08, 0x30, 0x08, 0x40, 0x08, 0x80, 0x09, 0x00, 0x08, 0x04, 0xFF, 0xFE, 0x09, 0x00, 0x09, 0x00, 0x08, 0x80, 0x08, 0x40, 0x08, 0x20, 0x09, 0x1C, 0x0E, 0x08, 0x08, 0x00, 0x08, 0x40, 0x0A, 0x48, 0x09, 0x50, 0x10, 0x40, 0x17, 0xFE, 0x34, 0x02, 0x58, 0x14, 0x93, 0xF8, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x90, 0x11, 0x08, 0x13, 0xFC, 0x10, 0x04, 0x08, 0x00, 0x7F, 0xF8, 0x48, 0x20, 0x48, 0x40, 0x48, 0x80, 0x79, 0x04, 0x4B, 0xFE, 0x48, 0x94, 0x48, 0x94, 0x79, 0x24, 0x49, 0x24, 0x4A, 0x44, 0x4C, 0x44, 0x48, 0x84, 0x49, 0x28, 0x98, 0x10, 0x00, 0x00, 0x00, 0x08, 0x1F, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x20, 0x49, 0x20, 0x29, 0x20, 0x2A, 0x24, 0x08, 0x7E, 0x7F, 0x84, 0x41, 0x44, 0x41, 0x44, 0x5D, 0x48, 0x55, 0x28, 0x55, 0x28, 0x55, 0x10, 0x5D, 0x28, 0x41, 0x28, 0x45, 0x46, 0x42, 0x84, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x20, 0x7C, 0x40, 0x54, 0x80, 0x55, 0x04, 0x57, 0xFE, 0x7C, 0x94, 0x54, 0x94, 0x55, 0x24, 0x55, 0x24, 0x7E, 0x44, 0x54, 0x44, 0x10, 0x84, 0x11, 0x28, 0x10, 0x10, 0x01, 0xF8, 0x09, 0x08, 0x7D, 0x08, 0x49, 0xF8, 0x49, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x48, 0x04, 0x4B, 0xFE, 0x4A, 0x04, 0x7A, 0x04, 0x4B, 0xFC, 0x02, 0x04, 0x02, 0x04, 0x03, 0xFC, 0x02, 0x04, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x62, 0x08, 0xA3, 0xF8, 0x20, 0x04, 0x27, 0xFE, 0x24, 0x04, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x88, 0x7C, 0x88, 0x10, 0x88, 0x10, 0xA8, 0xFD, 0x10, 0x12, 0x00, 0x51, 0xF8, 0x5D, 0x08, 0x51, 0x08, 0x51, 0x08, 0x71, 0xF8, 0x48, 0x06, 0x87, 0xFC, 0x00, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xFD, 0x50, 0x11, 0x48, 0x15, 0x46, 0x1A, 0x42, 0x32, 0x48, 0xD4, 0x48, 0x10, 0x48, 0x10, 0x50, 0x10, 0x10, 0x10, 0x20, 0x50, 0xC0, 0x27, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x1C, 0x40, 0x21, 0x50, 0x21, 0x48, 0x7D, 0x46, 0x92, 0x42, 0x12, 0x48, 0x7C, 0x48, 0x10, 0x48, 0x10, 0x50, 0x14, 0x10, 0x18, 0x20, 0x10, 0xC0, 0x07, 0x00, 0x08, 0x04, 0x0A, 0x7E, 0x7F, 0x44, 0x08, 0x44, 0x09, 0x44, 0x7F, 0xFC, 0x41, 0x44, 0x7F, 0x44, 0x41, 0x44, 0x7F, 0x7C, 0x48, 0x44, 0x0A, 0x44, 0xFF, 0x44, 0x08, 0x44, 0x08, 0x94, 0x09, 0x08, 0x02, 0x04, 0x22, 0x3E, 0xFF, 0xA4, 0xA2, 0x24, 0xA2, 0xA4, 0xAF, 0xFC, 0xA8, 0xA4, 0xAF, 0xA4, 0xA8, 0xA4, 0xAF, 0xBC, 0xAA, 0x24, 0xE2, 0xA4, 0xBF, 0xE4, 0x02, 0x24, 0x02, 0x44, 0x02, 0x8C, 0x02, 0x04, 0x42, 0x3E, 0x2F, 0xA4, 0x22, 0x24, 0x02, 0xA4, 0x8F, 0xFC, 0x48, 0xA4, 0x4F, 0xA4, 0x08, 0xA4, 0x1F, 0xBC, 0x2A, 0x24, 0xE2, 0xA4, 0x3F, 0xE4, 0x22, 0x24, 0x22, 0x44, 0x22, 0x8C, 0x11, 0x10, 0x11, 0x10, 0x22, 0x20, 0x11, 0x10, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x40, 0x48, 0x40, 0x49, 0x50, 0x49, 0x48, 0x49, 0x46, 0x4A, 0x42, 0x4A, 0x48, 0x4C, 0x48, 0x48, 0x48, 0x78, 0x10, 0x48, 0x10, 0x00, 0x20, 0x00, 0xC0, 0x07, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x55, 0x50, 0x59, 0x48, 0x51, 0x46, 0x92, 0x42, 0x12, 0x48, 0x14, 0x48, 0x10, 0x48, 0x28, 0x10, 0x24, 0x10, 0x44, 0x20, 0x80, 0xC0, 0x07, 0x00, 0x02, 0x00, 0x02, 0x08, 0x7F, 0xFC, 0x04, 0x00, 0x09, 0x00, 0x11, 0x00, 0x21, 0x20, 0x3F, 0xF0, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0xFC, 0x20, 0x11, 0x28, 0x15, 0x3C, 0x19, 0x20, 0x31, 0x20, 0xD1, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x24, 0x17, 0xFE, 0x50, 0x00, 0x20, 0x00, 0x22, 0x10, 0x21, 0x10, 0x2F, 0xD0, 0x22, 0x14, 0xF4, 0xBE, 0x2F, 0xC4, 0x20, 0x24, 0x37, 0xA8, 0x24, 0xA8, 0xE7, 0xA8, 0x24, 0x90, 0x27, 0x90, 0x24, 0xA8, 0x24, 0xA8, 0xA4, 0xC6, 0x45, 0x84, 0x25, 0x04, 0x3F, 0x84, 0x44, 0x24, 0xBF, 0xA4, 0x04, 0x24, 0x3F, 0xA4, 0x24, 0xA4, 0x25, 0x8C, 0x00, 0x30, 0x3F, 0xC0, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x03, 0x00, 0x10, 0x00, 0x12, 0x04, 0x12, 0xFE, 0x22, 0x24, 0x42, 0x24, 0x92, 0xA4, 0x13, 0xE4, 0x2E, 0x24, 0x62, 0x24, 0xA2, 0x64, 0x22, 0xA4, 0x23, 0x24, 0x20, 0x44, 0x20, 0x84, 0x21, 0x28, 0x22, 0x10, 0x02, 0x10, 0x41, 0x10, 0x2F, 0xD0, 0x22, 0x14, 0x04, 0xBE, 0x8F, 0xC4, 0x40, 0x24, 0x47, 0xA8, 0x14, 0xA8, 0x27, 0xA8, 0xE4, 0x90, 0x27, 0x90, 0x24, 0xA8, 0x24, 0xA8, 0x24, 0xC6, 0x25, 0x84, 0x11, 0x00, 0x11, 0x3E, 0x11, 0x22, 0x11, 0x24, 0xFF, 0xE4, 0x11, 0x28, 0x33, 0x28, 0x3B, 0xA4, 0x55, 0x62, 0x55, 0x22, 0x99, 0x22, 0x11, 0x32, 0x11, 0x2A, 0x11, 0x24, 0x11, 0x20, 0x11, 0x20, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x00, 0x21, 0x00, 0x21, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x00, 0x21, 0x00, 0x21, 0x08, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x00, 0x20, 0x20, 0x3F, 0xF0, 0x20, 0x00, 0x20, 0x08, 0x3F, 0xFC, 0x25, 0x00, 0x25, 0x10, 0x24, 0xA0, 0x24, 0x40, 0x44, 0x30, 0x45, 0x0E, 0x86, 0x04, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x40, 0x0D, 0x20, 0x11, 0x18, 0x21, 0x0C, 0x41, 0x04, 0x00, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xF8, 0x20, 0x00, 0x2F, 0xF0, 0x20, 0x04, 0x3F, 0xFE, 0x25, 0x08, 0x44, 0x90, 0x44, 0x60, 0x87, 0x1E, 0x04, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x53, 0xFC, 0x5A, 0x44, 0x54, 0x48, 0x90, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x20, 0x11, 0x22, 0x12, 0x22, 0x14, 0x1E, 0x18, 0x00, 0x00, 0x00, 0x40, 0x00, 0x37, 0xFC, 0x14, 0x04, 0x84, 0x08, 0x68, 0x20, 0x21, 0xF0, 0x09, 0x20, 0x11, 0x20, 0x21, 0x20, 0xE1, 0x20, 0x21, 0x20, 0x22, 0x22, 0x22, 0x22, 0x24, 0x1E, 0x28, 0x00, 0x00, 0x40, 0x78, 0x40, 0x48, 0x44, 0x57, 0xFE, 0x50, 0x80, 0x60, 0xA0, 0x51, 0x20, 0x4A, 0x28, 0x4B, 0xFC, 0x48, 0x20, 0x69, 0x28, 0x51, 0x24, 0x42, 0x26, 0x44, 0x22, 0x40, 0xA0, 0x40, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x7D, 0x10, 0x11, 0x28, 0x12, 0x6E, 0xFC, 0x84, 0x11, 0x20, 0x10, 0x60, 0x5C, 0x88, 0x51, 0x18, 0x50, 0x20, 0x70, 0x40, 0x48, 0x86, 0x87, 0xFC, 0x00, 0x00, 0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10, 0xFC, 0x14, 0x0B, 0xFE, 0x10, 0x10, 0x34, 0x10, 0x59, 0x10, 0x94, 0x90, 0x10, 0x90, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x12, 0x48, 0x11, 0x50, 0x17, 0xFE, 0x14, 0x02, 0xF9, 0xF4, 0x11, 0x10, 0x11, 0xF0, 0x18, 0x18, 0x37, 0xE0, 0xD0, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x51, 0x40, 0x20, 0x80, 0x04, 0x40, 0x0E, 0x40, 0x78, 0x80, 0x08, 0x80, 0x09, 0xFE, 0xFE, 0x04, 0x08, 0x28, 0x1C, 0x20, 0x1A, 0xA8, 0x28, 0xA4, 0x29, 0x26, 0x49, 0x22, 0x8A, 0x20, 0x08, 0x20, 0x08, 0xA0, 0x08, 0x40, 0x20, 0x20, 0x20, 0x28, 0x20, 0x24, 0x27, 0xFE, 0xFC, 0x20, 0x24, 0x20, 0x24, 0x24, 0x27, 0xA4, 0x24, 0xA8, 0x24, 0xA8, 0x3C, 0x90, 0xE6, 0x90, 0x45, 0x30, 0x04, 0x4A, 0x08, 0x8A, 0x10, 0x06, 0x10, 0x00, 0x13, 0xA8, 0x10, 0xB4, 0x12, 0xA8, 0xFD, 0x10, 0x12, 0x08, 0x37, 0xFE, 0x38, 0x04, 0x57, 0xF8, 0x52, 0x08, 0x92, 0x08, 0x13, 0xF8, 0x11, 0x10, 0x10, 0xA0, 0x1F, 0xFE, 0x10, 0x00, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x90, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x20, 0x84, 0x3E, 0x44, 0x22, 0x48, 0x22, 0x48, 0x22, 0x30, 0x2A, 0x20, 0x24, 0x62, 0x40, 0x92, 0x81, 0x0A, 0x00, 0x06, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x20, 0x00, 0xF0, 0x1F, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x3D, 0x58, 0x05, 0x60, 0x0D, 0x44, 0x75, 0x3C, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x08, 0x04, 0x1D, 0xFE, 0xF1, 0x04, 0x11, 0x04, 0x11, 0x04, 0xFF, 0x04, 0x11, 0xFC, 0x38, 0x00, 0x37, 0xFE, 0x54, 0x20, 0x50, 0x28, 0x91, 0xFC, 0x10, 0x20, 0x10, 0x24, 0x17, 0xFE, 0x10, 0x00, 0x10, 0x08, 0x1B, 0xFC, 0x20, 0x40, 0x40, 0x50, 0x12, 0x78, 0x1A, 0x40, 0x32, 0x40, 0x52, 0x48, 0x97, 0xFC, 0x10, 0x00, 0x2A, 0x10, 0x29, 0x88, 0x28, 0xA4, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x50, 0x31, 0x68, 0x15, 0x50, 0x82, 0x20, 0x44, 0x10, 0x4F, 0xFE, 0x10, 0x04, 0x17, 0xF0, 0x24, 0x10, 0xE4, 0x10, 0x27, 0xF0, 0x22, 0x20, 0x21, 0x44, 0x3F, 0xFE, 0x20, 0x00, 0x00, 0x20, 0x40, 0x28, 0x20, 0x24, 0x27, 0xFE, 0x04, 0x20, 0x04, 0x20, 0xE4, 0x24, 0x27, 0xA4, 0x24, 0xA8, 0x24, 0xA8, 0x24, 0x90, 0x2E, 0x90, 0x35, 0x30, 0x24, 0x4A, 0x08, 0x8A, 0x10, 0x06, 0x1F, 0xF0, 0x00, 0x20, 0x01, 0x40, 0x01, 0x84, 0x79, 0x2C, 0x0F, 0xF0, 0x09, 0x20, 0x11, 0x10, 0x17, 0xD0, 0x21, 0x08, 0x21, 0x4E, 0x4F, 0xE4, 0x81, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x10, 0x47, 0xF8, 0x24, 0x10, 0x24, 0x10, 0x07, 0xF0, 0x00, 0x10, 0xEF, 0xF8, 0x20, 0x80, 0x20, 0xA0, 0x27, 0xF0, 0x20, 0x80, 0x20, 0x90, 0x2F, 0xF8, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x08, 0x20, 0xFC, 0x24, 0x09, 0xFE, 0x49, 0x24, 0x49, 0xFC, 0x49, 0x24, 0x49, 0xFC, 0x48, 0x04, 0x7F, 0xFE, 0x04, 0x80, 0x05, 0xFC, 0x1C, 0x04, 0xE4, 0x04, 0x44, 0x04, 0x14, 0x28, 0x08, 0x10, 0x08, 0x00, 0x1C, 0x08, 0xF1, 0xFC, 0x10, 0x20, 0x11, 0x24, 0xFC, 0xA4, 0x10, 0xA8, 0x38, 0x20, 0x37, 0xFE, 0x54, 0x20, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x00, 0x80, 0x08, 0x80, 0x7C, 0x88, 0x48, 0xFC, 0x49, 0x00, 0x4A, 0x00, 0x4D, 0xF8, 0x48, 0x10, 0x48, 0x20, 0x48, 0x40, 0x48, 0x80, 0x79, 0x00, 0x4A, 0x02, 0x02, 0x02, 0x01, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x12, 0x00, 0x92, 0x04, 0x53, 0xFE, 0x55, 0x24, 0x19, 0x24, 0x31, 0x24, 0x5F, 0xE4, 0xD1, 0x24, 0x11, 0x24, 0x12, 0xA4, 0x22, 0x7C, 0x44, 0x24, 0x08, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x50, 0x13, 0xF8, 0xFC, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x18, 0x10, 0x30, 0x14, 0xD7, 0xFE, 0x12, 0x10, 0x11, 0x10, 0x11, 0x10, 0x10, 0x10, 0x50, 0x50, 0x20, 0x20, 0x02, 0x40, 0x3F, 0x40, 0x22, 0x40, 0x22, 0x40, 0x3E, 0x48, 0x22, 0x58, 0x3E, 0x60, 0x02, 0x40, 0xFF, 0x40, 0x08, 0x44, 0x2A, 0x44, 0x2F, 0x3C, 0x28, 0x00, 0x58, 0x06, 0x87, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x32, 0x40, 0x12, 0x48, 0x82, 0x7C, 0x63, 0xC8, 0x2E, 0x48, 0x02, 0x48, 0x12, 0x48, 0x22, 0x48, 0xE2, 0x68, 0x22, 0x50, 0x22, 0x42, 0x22, 0x02, 0x21, 0xFE, 0x20, 0x00, 0x00, 0x08, 0x43, 0xFC, 0x22, 0x08, 0x22, 0x08, 0x02, 0x08, 0x03, 0xF8, 0xE2, 0x08, 0x22, 0x80, 0x22, 0x80, 0x22, 0x40, 0x22, 0x20, 0x24, 0x1C, 0x28, 0x00, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x08, 0x20, 0x7C, 0x20, 0x09, 0x20, 0x09, 0x20, 0x09, 0x24, 0x79, 0x3E, 0x41, 0xE4, 0x47, 0x24, 0x41, 0x24, 0x79, 0x24, 0x09, 0x34, 0x09, 0x28, 0x09, 0x22, 0x09, 0x02, 0x50, 0xFE, 0x20, 0x00, 0x08, 0x20, 0xFC, 0x20, 0x09, 0x20, 0x49, 0x20, 0x49, 0x24, 0x49, 0x3E, 0x49, 0xE4, 0x4B, 0x24, 0x7D, 0x24, 0x05, 0x24, 0x05, 0x34, 0x1D, 0x28, 0xE5, 0x22, 0x05, 0x02, 0x28, 0xFE, 0x10, 0x00, 0x02, 0x10, 0xFF, 0x10, 0x24, 0x10, 0x24, 0x90, 0x3C, 0x94, 0x24, 0x9E, 0x24, 0x90, 0x3C, 0x90, 0x24, 0x90, 0x24, 0x90, 0x3F, 0x90, 0xE4, 0x90, 0x44, 0x94, 0x07, 0xFE, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00, 0x11, 0x20, 0x11, 0xF0, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x21, 0x08, 0x21, 0x08, 0x22, 0x88, 0x24, 0x68, 0x28, 0x28, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x08, 0x80, 0x08, 0xFC, 0x09, 0x08, 0x13, 0x10, 0x10, 0xA0, 0x30, 0x40, 0x50, 0x90, 0x91, 0x10, 0x16, 0x20, 0x10, 0x7E, 0x10, 0x84, 0x13, 0x48, 0x10, 0x30, 0x10, 0x20, 0x10, 0xC0, 0x17, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x14, 0x10, 0x14, 0x00, 0x12, 0x00, 0x11, 0x00, 0x10, 0x80, 0x20, 0x40, 0x20, 0x30, 0x40, 0x0E, 0x80, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x14, 0x50, 0x14, 0x48, 0x24, 0x46, 0x48, 0x42, 0x88, 0x40, 0x11, 0x40, 0x20, 0x80, 0x20, 0x00, 0x20, 0x04, 0x27, 0xBE, 0xF8, 0x84, 0x24, 0xA4, 0x22, 0x94, 0x70, 0x84, 0x50, 0x84, 0x52, 0x94, 0x54, 0xA4, 0x50, 0x84, 0x52, 0x94, 0x21, 0x08, 0x50, 0x06, 0x4F, 0xFC, 0x80, 0x00, 0x00, 0x10, 0x00, 0x78, 0x3F, 0x80, 0x20, 0x00, 0x20, 0x00, 0x20, 0x08, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x23, 0x80, 0x20, 0xE0, 0x20, 0xB0, 0x40, 0x90, 0x40, 0x80, 0x80, 0x80, 0x00, 0x80, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x15, 0x08, 0x59, 0x08, 0x51, 0x08, 0x51, 0x08, 0x91, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x10, 0x00, 0x28, 0x90, 0x25, 0x88, 0x42, 0x0C, 0x84, 0x04, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x04, 0x50, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x42, 0x08, 0x42, 0x10, 0x3E, 0x60, 0x00, 0x00, 0x40, 0x40, 0x40, 0x20, 0x40, 0x20, 0x44, 0x07, 0xFE, 0x14, 0x44, 0x14, 0x44, 0x14, 0x44, 0x24, 0x44, 0xE7, 0xFC, 0x24, 0x44, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x10, 0x01, 0x08, 0x01, 0xFC, 0x7E, 0x04, 0x20, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x22, 0x08, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x00, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x11, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0x82, 0x84, 0x02, 0x50, 0x3F, 0xF8, 0x02, 0x80, 0x02, 0x90, 0x04, 0xB0, 0x04, 0xC0, 0x08, 0x80, 0x09, 0x82, 0x12, 0x82, 0x20, 0x7E, 0x40, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0xFD, 0xFE, 0x11, 0x24, 0x15, 0x24, 0x19, 0x24, 0x31, 0x24, 0xD1, 0xFC, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x51, 0xFC, 0x21, 0x04, 0x02, 0x44, 0xFF, 0x44, 0x28, 0x54, 0x2A, 0x54, 0xFF, 0x54, 0xAA, 0x54, 0xAA, 0xFC, 0xAA, 0x54, 0xC6, 0x54, 0x82, 0x54, 0xFE, 0x54, 0x82, 0x54, 0x82, 0x94, 0xFE, 0x94, 0x83, 0x04, 0x02, 0x04, 0x00, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x54, 0x40, 0x57, 0xF8, 0x54, 0x40, 0x57, 0xFE, 0x7C, 0x80, 0x54, 0x88, 0x57, 0xFE, 0x55, 0x08, 0x55, 0x48, 0x7E, 0x28, 0x44, 0x08, 0x08, 0x28, 0x00, 0x10, 0x00, 0x40, 0x7C, 0x48, 0x47, 0xFC, 0x44, 0x40, 0x47, 0xF8, 0x44, 0x40, 0x7F, 0xFE, 0x10, 0x80, 0x10, 0x88, 0x5F, 0xFE, 0x51, 0x08, 0x51, 0x48, 0x5A, 0x28, 0xE4, 0x08, 0x48, 0x28, 0x00, 0x10, 0x08, 0x00, 0x1F, 0xFE, 0xF2, 0x22, 0x12, 0x22, 0x12, 0xFA, 0xFE, 0x22, 0x12, 0x22, 0x3A, 0xFA, 0x36, 0x02, 0x52, 0xFA, 0x52, 0x8A, 0x92, 0x8A, 0x12, 0x8A, 0x12, 0xFA, 0x14, 0x8A, 0x18, 0x04, 0x04, 0x20, 0x0E, 0x20, 0x78, 0x20, 0x08, 0xA4, 0xFE, 0xAC, 0x08, 0xB0, 0x1D, 0x50, 0x2A, 0x48, 0x48, 0x8E, 0x09, 0x04, 0x02, 0x00, 0x29, 0x90, 0x28, 0xAC, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x00, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x01, 0x00, 0x7F, 0xFC, 0x02, 0x00, 0x3F, 0xF8, 0x04, 0x00, 0xFF, 0xFE, 0x08, 0x10, 0x1F, 0xFC, 0x24, 0x10, 0x42, 0x10, 0x02, 0x50, 0x00, 0x20, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x10, 0x17, 0xF8, 0x31, 0x10, 0x51, 0x10, 0x91, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x12, 0x14, 0x12, 0x18, 0x0E, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x24, 0x44, 0x24, 0x44, 0x4D, 0xF4, 0xFC, 0x44, 0x14, 0x44, 0x25, 0xF4, 0x44, 0x04, 0xFD, 0xF4, 0x05, 0x14, 0x05, 0x14, 0x1D, 0x14, 0xE5, 0xF4, 0x48, 0x14, 0x10, 0x08, 0x00, 0x80, 0x09, 0xD0, 0x7F, 0x10, 0x49, 0x12, 0x49, 0x56, 0x7F, 0xB8, 0x49, 0x10, 0x4B, 0x90, 0x4B, 0x50, 0x7D, 0x10, 0x49, 0x28, 0x49, 0x28, 0x49, 0x28, 0x79, 0x46, 0x49, 0x84, 0x01, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x1F, 0xF0, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x14, 0xFF, 0xFE, 0x00, 0x00, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x20, 0x01, 0x14, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x60, 0x18, 0x1C, 0x60, 0x08, 0x20, 0x00, 0x10, 0x00, 0x10, 0x04, 0x05, 0xFE, 0xFC, 0x44, 0x08, 0x44, 0x10, 0x44, 0x34, 0x44, 0x58, 0x44, 0x94, 0x44, 0x10, 0x44, 0x10, 0x84, 0x10, 0x84, 0x11, 0x04, 0x12, 0x28, 0x14, 0x10, 0x01, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x20, 0x04, 0x27, 0xFE, 0x24, 0x00, 0x24, 0x44, 0xFF, 0xE4, 0x24, 0x04, 0x75, 0xDE, 0x6D, 0x44, 0xA5, 0x44, 0x25, 0xD4, 0x24, 0x0C, 0x25, 0x44, 0x25, 0x44, 0x2B, 0xE4, 0x30, 0x14, 0x20, 0x08, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x00, 0x3F, 0x88, 0x20, 0x08, 0x2F, 0x08, 0x29, 0xFE, 0x29, 0x08, 0x29, 0x08, 0x2F, 0x48, 0x20, 0x28, 0x29, 0x08, 0x2A, 0x08, 0x23, 0x88, 0x5C, 0x28, 0x80, 0x10, 0x04, 0x90, 0x7F, 0xFE, 0x44, 0x90, 0x44, 0x48, 0x47, 0xF8, 0x7C, 0x50, 0x10, 0x64, 0x17, 0xFE, 0x50, 0x80, 0x59, 0x08, 0x53, 0xFC, 0x55, 0x08, 0x5D, 0xF8, 0xF1, 0x08, 0x41, 0xF8, 0x01, 0x08, 0x20, 0x10, 0x20, 0x10, 0x23, 0xD0, 0x7A, 0x54, 0x82, 0x7E, 0x02, 0x54, 0xFB, 0xD4, 0x22, 0x54, 0x22, 0x54, 0xFB, 0xD4, 0x22, 0x54, 0x22, 0x54, 0x2F, 0xF4, 0x30, 0x24, 0x20, 0x54, 0x00, 0x88, 0x10, 0x40, 0x10, 0x50, 0x20, 0x94, 0x3C, 0xFE, 0x45, 0x90, 0x8A, 0x90, 0x14, 0xFC, 0xFE, 0x90, 0x04, 0x90, 0x04, 0xFC, 0x7C, 0x90, 0x04, 0x90, 0x04, 0x94, 0xFC, 0xFE, 0x04, 0x80, 0x00, 0x80, 0x00, 0x20, 0x5E, 0x20, 0x32, 0x50, 0x34, 0x50, 0x14, 0x88, 0x95, 0x06, 0x5A, 0xFC, 0x14, 0x20, 0x32, 0x24, 0x33, 0xFE, 0xDA, 0x20, 0x54, 0xA8, 0x51, 0x26, 0x52, 0x22, 0x50, 0xA0, 0x10, 0x40, 0x00, 0x40, 0x78, 0x40, 0x48, 0xA0, 0x50, 0xA0, 0x51, 0x10, 0x62, 0x0E, 0x55, 0xF4, 0x48, 0x40, 0x48, 0x50, 0x4F, 0xFC, 0x68, 0x40, 0x51, 0x50, 0x42, 0x4C, 0x44, 0x44, 0x41, 0x40, 0x40, 0x80, 0x08, 0x20, 0x08, 0x28, 0x7E, 0xFC, 0x08, 0x20, 0x1C, 0x78, 0x2A, 0xA4, 0x48, 0x20, 0x3F, 0xF8, 0x01, 0x10, 0x09, 0x40, 0x09, 0xE0, 0x11, 0x00, 0x11, 0x00, 0x29, 0x06, 0x47, 0xFC, 0x80, 0x00, 0x00, 0x20, 0x04, 0x20, 0xFE, 0x20, 0x11, 0x24, 0x11, 0x24, 0x21, 0x24, 0x25, 0x24, 0x7F, 0xFC, 0xA4, 0x20, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x3D, 0x24, 0x25, 0xFC, 0x01, 0x04, 0x10, 0x40, 0x10, 0x40, 0x18, 0x48, 0x25, 0xFC, 0x24, 0x50, 0x60, 0x64, 0xBD, 0xFE, 0x24, 0x88, 0x25, 0xFC, 0x26, 0x88, 0x24, 0x88, 0x25, 0xF8, 0x26, 0x88, 0x24, 0x88, 0x20, 0xF8, 0x20, 0x88, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x0F, 0xE0, 0x08, 0x20, 0x09, 0x20, 0x09, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x7E, 0xFC, 0x08, 0x20, 0x3E, 0xF8, 0x22, 0x88, 0x2A, 0xA8, 0x2A, 0xA8, 0xFF, 0xFE, 0x10, 0x80, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x80, 0xFD, 0x10, 0x13, 0xF0, 0x10, 0x40, 0x18, 0x88, 0x33, 0xF8, 0xD0, 0x04, 0x17, 0xFE, 0x14, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x57, 0xFC, 0x24, 0x04, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x20, 0x48, 0x24, 0x51, 0xFE, 0xFD, 0x24, 0x55, 0x24, 0x55, 0x24, 0x7D, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x7D, 0x20, 0x54, 0x28, 0x54, 0x3C, 0x55, 0xE2, 0x8C, 0x82, 0x00, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x1E, 0x40, 0x22, 0x60, 0x22, 0x50, 0x22, 0x4C, 0x54, 0x44, 0x94, 0x40, 0x08, 0x40, 0x14, 0x40, 0x14, 0x40, 0x22, 0x06, 0x41, 0xFC, 0x80, 0x00, 0x10, 0x40, 0x10, 0x40, 0x12, 0x48, 0x12, 0x48, 0xFB, 0xF8, 0x10, 0x04, 0x17, 0xFE, 0x18, 0x40, 0x30, 0x84, 0xD7, 0xFE, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x54, 0xB4, 0x24, 0x08, 0x00, 0x04, 0x10, 0x04, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x20, 0x04, 0x40, 0x04, 0x00, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x88, 0x24, 0x00, 0x00, 0x3F, 0xF8, 0x08, 0x40, 0x10, 0x48, 0x3F, 0xFC, 0x01, 0x40, 0x02, 0x40, 0x04, 0x40, 0x18, 0x40, 0x61, 0x40, 0x00, 0x80, 0x10, 0x80, 0x10, 0xF8, 0x10, 0x88, 0x11, 0xF8, 0xFC, 0x14, 0x13, 0xFE, 0x30, 0x80, 0x39, 0x44, 0x56, 0x6C, 0x50, 0xB0, 0x91, 0x30, 0x16, 0x68, 0x10, 0xA6, 0x17, 0x24, 0x10, 0xA0, 0x10, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x30, 0x44, 0x5F, 0xFE, 0x90, 0x80, 0x11, 0x00, 0x13, 0xFC, 0x10, 0x08, 0x11, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0x60, 0x10, 0x20, 0x08, 0x08, 0x12, 0x7C, 0x3F, 0x48, 0x22, 0x48, 0x32, 0x48, 0x2A, 0x48, 0x22, 0x86, 0x23, 0x00, 0xFE, 0x04, 0x22, 0xFE, 0x32, 0x84, 0x2A, 0x84, 0x22, 0x84, 0x42, 0x84, 0x8A, 0xFC, 0x04, 0x84, 0x00, 0x40, 0x08, 0x40, 0x7E, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x48, 0x04, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x84, 0x4B, 0xFE, 0x4A, 0xA4, 0x4A, 0xA4, 0x7A, 0xA4, 0x4A, 0xA4, 0x02, 0xB4, 0x02, 0x08, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x41, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x80, 0x91, 0x40, 0x52, 0x20, 0x54, 0x10, 0x1B, 0xEE, 0x32, 0x24, 0x52, 0x20, 0xD2, 0xA0, 0x12, 0x40, 0x22, 0x08, 0x22, 0x08, 0x41, 0xF8, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x92, 0x14, 0x04, 0x00, 0x3F, 0xF8, 0x22, 0x08, 0x23, 0xC8, 0x24, 0x48, 0x2A, 0x88, 0x21, 0x08, 0x22, 0x88, 0x24, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x80, 0x20, 0x48, 0x27, 0xFC, 0xF9, 0x10, 0xA8, 0xA4, 0xAF, 0xFE, 0xA8, 0x08, 0xAB, 0xFC, 0xAA, 0x48, 0xAB, 0xF8, 0xAA, 0x48, 0xBB, 0xF8, 0x20, 0x40, 0x23, 0xF8, 0x20, 0x40, 0x2F, 0xFE, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0x3F, 0xFC, 0x20, 0x80, 0x21, 0xC0, 0x21, 0xA0, 0x22, 0x90, 0x24, 0x88, 0x48, 0x8E, 0x50, 0x84, 0x80, 0x80, 0x00, 0x80, 0x20, 0x04, 0x17, 0xFE, 0x50, 0x04, 0x40, 0x44, 0x4F, 0xE4, 0x40, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x47, 0xF4, 0x40, 0x14, 0x5F, 0xD4, 0x40, 0x14, 0x40, 0x54, 0x40, 0x24, 0x40, 0x0C, 0x08, 0x04, 0x08, 0x04, 0x14, 0x04, 0x12, 0x24, 0x21, 0xA4, 0x20, 0xA4, 0x7E, 0x24, 0xA2, 0x24, 0x22, 0x24, 0x2A, 0x24, 0x24, 0x24, 0x20, 0x04, 0x21, 0x04, 0x21, 0x04, 0x1F, 0x14, 0x00, 0x08, 0x00, 0x80, 0x08, 0x80, 0x7C, 0x80, 0x48, 0xFC, 0x49, 0x04, 0x4A, 0x48, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0xA0, 0x78, 0xA0, 0x49, 0x10, 0x02, 0x08, 0x04, 0x0E, 0x08, 0x04, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0xFC, 0x55, 0x04, 0x5A, 0x48, 0x50, 0x40, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x19, 0x10, 0x26, 0x08, 0x44, 0x0E, 0x88, 0x04, 0x10, 0x08, 0x10, 0x3C, 0x13, 0xC0, 0x10, 0x40, 0xFC, 0x48, 0x17, 0xFC, 0x11, 0x50, 0x19, 0x54, 0x37, 0xFE, 0xD1, 0x50, 0x11, 0x50, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x50, 0x53, 0xF8, 0x20, 0x00, 0x10, 0x08, 0x10, 0x3C, 0x13, 0xC0, 0x1C, 0x40, 0x20, 0x48, 0x23, 0xFC, 0x7D, 0x50, 0x91, 0x54, 0x17, 0xFE, 0x79, 0x50, 0x11, 0x50, 0x13, 0xFC, 0x14, 0x40, 0x18, 0x50, 0x13, 0xF8, 0x00, 0x00, 0x00, 0x10, 0x00, 0x78, 0x3F, 0x80, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x09, 0x20, 0x09, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x09, 0x28, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x28, 0x2E, 0xC8, 0x24, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x13, 0xF8, 0xFC, 0x80, 0x17, 0xFE, 0x39, 0x10, 0x32, 0x08, 0x57, 0xFE, 0x5A, 0x08, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x04, 0x20, 0xFE, 0x10, 0x29, 0xFE, 0x28, 0x04, 0xFE, 0xFE, 0xAA, 0x84, 0xAA, 0xFC, 0xAE, 0x00, 0xC2, 0xFC, 0x82, 0x08, 0x82, 0x30, 0xFE, 0x24, 0x83, 0xFE, 0x82, 0x20, 0xFE, 0xA0, 0x82, 0x40, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x00, 0x2F, 0xF0, 0x20, 0x00, 0x3F, 0xFC, 0x2A, 0x10, 0x29, 0xA0, 0x28, 0x60, 0x2E, 0x1E, 0x40, 0x04, 0x9F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x80, 0x40, 0x44, 0x37, 0xFE, 0x10, 0x00, 0x83, 0xF8, 0x62, 0x08, 0x23, 0xF8, 0x08, 0x00, 0x13, 0xF8, 0x20, 0x10, 0xE0, 0x64, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x21, 0x40, 0x20, 0x80, 0x10, 0x40, 0x10, 0x40, 0x20, 0x44, 0x27, 0xFE, 0x48, 0x40, 0xFA, 0x48, 0x12, 0x48, 0x22, 0x48, 0x42, 0x48, 0xFB, 0xF8, 0x42, 0x48, 0x00, 0x40, 0x18, 0x42, 0xE0, 0x42, 0x40, 0x3E, 0x00, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x02, 0x00, 0x7F, 0xFC, 0x08, 0x20, 0x1F, 0xF0, 0xE8, 0x2E, 0x0F, 0xE4, 0x10, 0x20, 0x7C, 0xF8, 0x54, 0xA8, 0x7C, 0xF8, 0x12, 0x24, 0xFE, 0xFC, 0x00, 0x20, 0xF7, 0xA0, 0x52, 0xA8, 0x31, 0xA4, 0x52, 0xA0, 0x94, 0xAE, 0x10, 0xF0, 0x14, 0x20, 0x3F, 0xA4, 0x64, 0x24, 0xBF, 0x18, 0x24, 0x10, 0x3F, 0x30, 0x24, 0x4A, 0x3F, 0x8A, 0x20, 0x04, 0x10, 0x48, 0x10, 0x7C, 0x20, 0x40, 0x20, 0x48, 0x4B, 0xFC, 0xFA, 0x08, 0x13, 0xF8, 0x22, 0x08, 0x43, 0xF8, 0xF8, 0x40, 0x40, 0x44, 0x07, 0xFE, 0x18, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x00, 0x40, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x11, 0x20, 0x91, 0x20, 0x51, 0x20, 0x55, 0x24, 0x15, 0x2C, 0x35, 0xF0, 0x55, 0x20, 0xD5, 0x20, 0x15, 0x20, 0x25, 0x22, 0x25, 0xE2, 0x4E, 0x1E, 0x04, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x01, 0x00, 0x41, 0x08, 0x33, 0xFC, 0x12, 0x08, 0x04, 0x90, 0x10, 0x80, 0xE0, 0x80, 0x20, 0x80, 0x21, 0x40, 0x21, 0x30, 0x22, 0x0E, 0x0C, 0x04, 0x02, 0x08, 0x11, 0x98, 0xF8, 0xA0, 0x27, 0xFE, 0x21, 0x08, 0x41, 0x08, 0x42, 0x52, 0x77, 0xBC, 0xD0, 0x84, 0x51, 0x08, 0x51, 0x08, 0x52, 0x10, 0x54, 0xA4, 0x77, 0xFE, 0x50, 0x42, 0x00, 0x00, 0x14, 0x50, 0x14, 0x50, 0x14, 0x84, 0x54, 0xFE, 0x55, 0x90, 0x5E, 0x90, 0x54, 0xFC, 0x54, 0x90, 0x54, 0x90, 0x54, 0xFC, 0x54, 0x90, 0x54, 0x90, 0x5D, 0x94, 0xE6, 0xFE, 0x44, 0x80, 0x00, 0x80, 0x08, 0x40, 0x1C, 0x20, 0xF0, 0x28, 0x11, 0xFC, 0x10, 0x00, 0x14, 0x88, 0xFE, 0x50, 0x10, 0x04, 0x15, 0xFE, 0x7E, 0x20, 0x44, 0x28, 0x45, 0xFC, 0x44, 0x20, 0x44, 0x20, 0x7C, 0x20, 0x44, 0x20, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x12, 0x44, 0x7C, 0xF8, 0x08, 0x10, 0x12, 0x24, 0x7E, 0xFC, 0x00, 0x00, 0x0A, 0x00, 0x29, 0x88, 0x28, 0xA4, 0x48, 0x24, 0x07, 0xE0, 0x21, 0x00, 0x11, 0x08, 0x01, 0xFC, 0x0A, 0x48, 0x70, 0x40, 0x20, 0xA0, 0x27, 0x1C, 0x00, 0x04, 0xFF, 0xFE, 0x10, 0x00, 0x1F, 0xE0, 0x10, 0x20, 0x13, 0x20, 0x10, 0xA4, 0x16, 0x24, 0x38, 0x1C, 0x20, 0x04, 0x13, 0xFE, 0x10, 0x04, 0x00, 0x24, 0x07, 0xF4, 0xF0, 0x04, 0x10, 0x24, 0x13, 0xF4, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0x13, 0xE4, 0x16, 0x24, 0x18, 0x04, 0x10, 0x14, 0x00, 0x08, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x24, 0x44, 0x24, 0x4C, 0x24, 0x50, 0x27, 0x60, 0x24, 0x40, 0x24, 0x40, 0x24, 0x40, 0x24, 0x40, 0x24, 0x40, 0x27, 0x42, 0xF8, 0x42, 0x40, 0x3E, 0x00, 0x00, 0x08, 0x04, 0x08, 0x04, 0x09, 0x04, 0xFF, 0xA4, 0x08, 0x24, 0x7F, 0x24, 0x49, 0x24, 0x49, 0x24, 0x4B, 0x24, 0x18, 0x24, 0x1C, 0x24, 0x2B, 0x24, 0x49, 0x04, 0x88, 0x04, 0x08, 0x14, 0x08, 0x08, 0x00, 0x08, 0x7D, 0xFC, 0x45, 0x08, 0x55, 0xF8, 0x55, 0x08, 0x55, 0x08, 0x55, 0xF8, 0x54, 0x84, 0x55, 0xFE, 0x56, 0x54, 0x54, 0x94, 0x11, 0x24, 0x2A, 0x44, 0x44, 0x84, 0x81, 0x28, 0x00, 0x10, 0x00, 0x80, 0x40, 0x80, 0x30, 0x80, 0x11, 0x08, 0x01, 0xFC, 0x02, 0x08, 0x08, 0x50, 0x10, 0x40, 0x20, 0x40, 0xE0, 0x40, 0x20, 0xA0, 0x20, 0xA0, 0x21, 0x10, 0x22, 0x08, 0x24, 0x0E, 0x28, 0x04, 0x05, 0x04, 0xFE, 0xCC, 0x24, 0x50, 0x24, 0x04, 0x3D, 0xFE, 0x25, 0x04, 0x25, 0x04, 0x25, 0x04, 0x3D, 0xFC, 0x25, 0x44, 0x24, 0x20, 0x24, 0xA4, 0xFD, 0x8A, 0x06, 0x8A, 0x04, 0x78, 0x04, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x14, 0x40, 0x1F, 0xF8, 0x12, 0x48, 0x2E, 0x48, 0x25, 0x88, 0x48, 0xC8, 0x11, 0x28, 0x02, 0x10, 0x04, 0x00, 0x52, 0x04, 0x51, 0x92, 0x90, 0x92, 0x0F, 0xF0, 0x04, 0x00, 0x08, 0x04, 0x7F, 0xFE, 0x44, 0x04, 0x44, 0x04, 0x47, 0xE4, 0x44, 0x24, 0x48, 0x44, 0x54, 0x44, 0x42, 0x84, 0x41, 0x04, 0x42, 0x84, 0x44, 0x04, 0x48, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x08, 0x00, 0x08, 0x00, 0x08, 0x04, 0x1F, 0xFE, 0x12, 0x44, 0x22, 0x44, 0x4A, 0x44, 0x86, 0x44, 0x05, 0x44, 0x04, 0x84, 0x08, 0xC4, 0x11, 0x34, 0x22, 0x14, 0x44, 0x04, 0x08, 0x28, 0x00, 0x10, 0x00, 0x00, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x50, 0x08, 0x50, 0x08, 0x50, 0x14, 0x50, 0x12, 0x88, 0x21, 0x88, 0x21, 0x0C, 0x42, 0x06, 0x84, 0x04, 0x00, 0x00, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x50, 0x08, 0x50, 0x14, 0x50, 0x12, 0x90, 0x21, 0x88, 0x41, 0x0E, 0x82, 0x04, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x40, 0x88, 0x2F, 0xFC, 0x20, 0x80, 0x07, 0xF8, 0x01, 0x00, 0x0F, 0xFC, 0x12, 0x20, 0x24, 0x10, 0xEB, 0xEE, 0x30, 0x84, 0x27, 0xF0, 0x20, 0x80, 0x21, 0x40, 0x22, 0x30, 0x24, 0x10, 0x08, 0x00, 0x08, 0x08, 0x4A, 0xFC, 0x2A, 0x88, 0x1C, 0x88, 0x08, 0x88, 0xFE, 0xF8, 0x08, 0x88, 0x1C, 0x88, 0x1A, 0x88, 0x28, 0xF8, 0x48, 0x88, 0x88, 0x88, 0x08, 0x88, 0x0B, 0xFE, 0x08, 0x00, 0x02, 0x28, 0x7F, 0x28, 0x14, 0xFE, 0x15, 0x28, 0x7F, 0xA8, 0x55, 0x28, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x7E, 0x63, 0x44, 0x41, 0x44, 0x7F, 0x7C, 0x41, 0x44, 0x41, 0x44, 0x7F, 0x7C, 0x41, 0x44, 0x10, 0x20, 0x12, 0x24, 0x1F, 0x3E, 0x24, 0x48, 0x42, 0x84, 0x10, 0x80, 0x08, 0xFE, 0xFF, 0x40, 0x10, 0x7C, 0x1C, 0xA0, 0x14, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x44, 0x50, 0x94, 0x8E, 0x0B, 0x04, 0x08, 0x08, 0x0B, 0xFC, 0x0A, 0x08, 0x12, 0x08, 0x12, 0x08, 0x33, 0xF8, 0x50, 0x40, 0x90, 0x40, 0x12, 0x48, 0x12, 0x7C, 0x12, 0x40, 0x12, 0x40, 0x15, 0x40, 0x18, 0xC6, 0x10, 0x7C, 0x10, 0x00, 0x00, 0x40, 0x78, 0x20, 0x4B, 0xFE, 0x4A, 0x8A, 0x4D, 0x24, 0x78, 0x20, 0x11, 0xFC, 0x11, 0x24, 0x5D, 0xFC, 0x50, 0x20, 0x53, 0xFE, 0x52, 0x22, 0x5F, 0xFE, 0xE2, 0x22, 0x40, 0x20, 0x00, 0x20, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x5F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x04, 0xFF, 0xFE, 0x0A, 0x20, 0x32, 0x9E, 0xC4, 0x44, 0x0F, 0xE0, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x99, 0x34, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x41, 0x04, 0x7F, 0xFC, 0x41, 0x04, 0x01, 0x00, 0x01, 0x00, 0x10, 0x20, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0xFD, 0xFC, 0x10, 0xA0, 0x15, 0x14, 0x19, 0xFE, 0x33, 0x10, 0xD5, 0xFC, 0x11, 0x10, 0x11, 0xFC, 0x11, 0x10, 0x11, 0x14, 0x51, 0xFE, 0x21, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x28, 0x08, 0x11, 0x00, 0x10, 0x88, 0x3F, 0xFC, 0x50, 0x80, 0x9F, 0xF8, 0x10, 0x80, 0x1F, 0xF8, 0x10, 0x80, 0x10, 0x84, 0x1F, 0xFE, 0x10, 0x00, 0x08, 0x20, 0x09, 0x24, 0x09, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x30, 0xA0, 0x51, 0x14, 0x93, 0xFE, 0x15, 0x20, 0x19, 0xFC, 0x11, 0x20, 0x11, 0xFC, 0x11, 0x20, 0x11, 0x24, 0x11, 0xFE, 0x11, 0x00, 0x08, 0x80, 0x7C, 0x80, 0x48, 0xF8, 0x49, 0x10, 0x4A, 0x24, 0x79, 0xFE, 0x49, 0x00, 0x49, 0x78, 0x49, 0x48, 0x79, 0x48, 0x49, 0x68, 0x49, 0x50, 0x49, 0x42, 0x49, 0x42, 0x5A, 0x3E, 0x84, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x80, 0x90, 0x48, 0x57, 0xFC, 0x51, 0x10, 0x11, 0x10, 0x32, 0xAC, 0x54, 0x44, 0xD0, 0x40, 0x1F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x40, 0x40, 0x00, 0x40, 0x10, 0x40, 0x10, 0x20, 0x10, 0x28, 0x55, 0xFC, 0x38, 0x88, 0x10, 0x88, 0xFE, 0x88, 0x11, 0x54, 0x38, 0x20, 0x34, 0x24, 0x53, 0xFE, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x40, 0x80, 0x30, 0x48, 0x17, 0xFC, 0x01, 0x10, 0x81, 0x10, 0x61, 0x10, 0x22, 0xAC, 0x04, 0x44, 0x10, 0x40, 0x2F, 0xFE, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x3E, 0xF8, 0x02, 0x08, 0x12, 0x48, 0x0A, 0x28, 0x12, 0x48, 0x01, 0x00, 0x7F, 0xFC, 0x08, 0x20, 0x14, 0x50, 0x22, 0x88, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x14, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x30, 0x10, 0x38, 0x90, 0x54, 0x50, 0x54, 0x50, 0x90, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x00, 0x0B, 0xF8, 0x10, 0x10, 0x10, 0x20, 0x30, 0x44, 0x5F, 0xFE, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0xFF, 0xFE, 0x00, 0x40, 0x00, 0x40, 0x08, 0x40, 0x04, 0x40, 0x04, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x01, 0x40, 0x00, 0x80, 0x00, 0x88, 0x04, 0x4C, 0xFE, 0x50, 0x13, 0xFE, 0x10, 0x20, 0x21, 0xFC, 0x24, 0x20, 0x7F, 0xFE, 0xA4, 0x40, 0x24, 0x88, 0x24, 0xFC, 0x25, 0x10, 0x3D, 0x10, 0x22, 0x14, 0x04, 0xFE, 0x00, 0x00, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x23, 0xF8, 0xFA, 0x08, 0x23, 0xF8, 0x20, 0x00, 0x2F, 0xFE, 0x34, 0x80, 0xE7, 0xFC, 0x24, 0x84, 0x27, 0xA8, 0x24, 0x90, 0x2F, 0x90, 0xA0, 0xAE, 0x40, 0xC4, 0x11, 0x08, 0x10, 0x98, 0x10, 0xA0, 0x17, 0xFC, 0xFC, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x1F, 0xFE, 0x30, 0x80, 0xD1, 0x08, 0x11, 0xFC, 0x12, 0x20, 0x14, 0x20, 0x18, 0x24, 0x53, 0xFE, 0x20, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x17, 0xFC, 0xFD, 0x10, 0x11, 0x14, 0x17, 0xFE, 0x18, 0x08, 0x33, 0xFC, 0xD2, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x53, 0xF8, 0x22, 0x08, 0x10, 0x40, 0x10, 0x40, 0x12, 0x48, 0x12, 0x48, 0xFA, 0x48, 0x12, 0x48, 0x15, 0x54, 0x18, 0xE2, 0x30, 0x40, 0xD0, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x5F, 0xFE, 0x20, 0x00, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x1F, 0xFC, 0x20, 0x90, 0x20, 0x94, 0x7F, 0xFE, 0x90, 0x08, 0x11, 0xFC, 0x7D, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x15, 0x08, 0x19, 0x08, 0x11, 0xF8, 0x01, 0x08, 0x11, 0x10, 0x11, 0x10, 0x17, 0xFC, 0x11, 0x10, 0xFC, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x1A, 0x0E, 0x35, 0xF4, 0xD0, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x53, 0xF8, 0x22, 0x08, 0x00, 0x80, 0x40, 0x80, 0x20, 0x80, 0x20, 0x80, 0x00, 0x88, 0x0F, 0xFC, 0xE0, 0x80, 0x21, 0x00, 0x21, 0x40, 0x22, 0x20, 0x22, 0x10, 0x24, 0x18, 0x28, 0x08, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x10, 0x40, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF8, 0x20, 0x0E, 0xCF, 0xE4, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x92, 0x20, 0x52, 0x28, 0x5F, 0xFC, 0x12, 0xA0, 0x31, 0x40, 0x52, 0x20, 0xD7, 0xF0, 0x18, 0x0E, 0x17, 0xF4, 0x24, 0x10, 0x24, 0x10, 0x47, 0xF0, 0x04, 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0xFC, 0x20, 0x10, 0x20, 0x14, 0x20, 0x18, 0x20, 0x30, 0x20, 0xD0, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x50, 0xA0, 0x20, 0x40, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x02, 0x40, 0x04, 0x40, 0x04, 0x20, 0x08, 0x10, 0x10, 0x0E, 0x60, 0x04, 0x00, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0xF8, 0x04, 0x08, 0x0C, 0x08, 0x0A, 0x10, 0x11, 0x90, 0x20, 0xA0, 0x40, 0x40, 0x00, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x10, 0x80, 0x10, 0x88, 0x1F, 0xFC, 0x20, 0x80, 0x2F, 0xF8, 0x61, 0x00, 0xBF, 0xFE, 0x22, 0x20, 0x24, 0x90, 0x2C, 0x9E, 0x32, 0xA4, 0x21, 0xC0, 0x22, 0xA0, 0x24, 0x98, 0x28, 0x88, 0x21, 0x80, 0x08, 0x50, 0x7F, 0x48, 0x08, 0x44, 0xFF, 0xFE, 0x00, 0x40, 0x7F, 0x48, 0x49, 0x48, 0x7F, 0x50, 0x49, 0x50, 0x7F, 0x20, 0x22, 0x20, 0x7F, 0x60, 0x22, 0x90, 0xFF, 0x92, 0x22, 0x0A, 0x41, 0x06, 0x09, 0x20, 0x09, 0x28, 0x7F, 0xFC, 0x09, 0x20, 0x09, 0x20, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x04, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x01, 0x00, 0x04, 0x20, 0xFE, 0x20, 0x20, 0x40, 0x20, 0x40, 0x3C, 0x88, 0x25, 0x04, 0x27, 0xFE, 0x44, 0x02, 0xA5, 0xFC, 0x15, 0x04, 0x09, 0x04, 0x09, 0x04, 0x11, 0x04, 0x21, 0xFC, 0x41, 0x04, 0x00, 0x00, 0x08, 0x80, 0x08, 0xA0, 0x08, 0x90, 0x10, 0x90, 0x10, 0x84, 0x30, 0xFE, 0x5F, 0x80, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x10, 0x12, 0x10, 0x12, 0x10, 0x0A, 0x10, 0x06, 0x08, 0xA0, 0x08, 0x90, 0x10, 0xBC, 0x37, 0xC0, 0x50, 0x42, 0x90, 0x32, 0x10, 0x0E, 0x1F, 0xF0, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x10, 0x08, 0xA0, 0x08, 0x90, 0x10, 0xFC, 0x37, 0x80, 0xD0, 0x40, 0x10, 0x24, 0x12, 0x1C, 0x11, 0x00, 0xFF, 0xFE, 0x0A, 0x08, 0x09, 0x10, 0x18, 0xA0, 0x28, 0x40, 0xC9, 0x30, 0x0A, 0x0E, 0x0C, 0x04, 0x08, 0x40, 0x08, 0x48, 0x13, 0xFC, 0x20, 0x40, 0x48, 0x40, 0x08, 0x44, 0x17, 0xFE, 0x30, 0x10, 0x50, 0x14, 0x97, 0xFE, 0x10, 0x10, 0x12, 0x10, 0x11, 0x10, 0x11, 0x10, 0x10, 0x50, 0x10, 0x20, 0x00, 0x80, 0x40, 0x90, 0x27, 0xF8, 0x20, 0x90, 0x0F, 0xFC, 0x00, 0x90, 0xE7, 0xF0, 0x20, 0x80, 0x24, 0x90, 0x22, 0xA0, 0x24, 0x98, 0x28, 0x88, 0x22, 0x80, 0x51, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x04, 0x00, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x7F, 0xFC, 0x00, 0x00, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x02, 0x00, 0x11, 0x80, 0x50, 0x94, 0x50, 0x12, 0x8F, 0xF2, 0x00, 0x00, 0x04, 0x40, 0xFE, 0x40, 0x48, 0x44, 0x4B, 0xFE, 0x7A, 0x44, 0x4C, 0x48, 0x48, 0x60, 0x48, 0x60, 0x78, 0xA0, 0x48, 0xA0, 0x48, 0xA0, 0x4D, 0x20, 0xF9, 0x22, 0x0A, 0x22, 0x0C, 0x1E, 0x08, 0x00, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0xFE, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x1E, 0x08, 0x32, 0x08, 0xD2, 0x08, 0x13, 0xF8, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x50, 0x00, 0x20, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x12, 0x10, 0x11, 0x10, 0x11, 0x10, 0x10, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x50, 0x40, 0x20, 0x10, 0x10, 0x08, 0x20, 0x04, 0x48, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x41, 0x00, 0x22, 0x7C, 0x14, 0x44, 0x7F, 0x48, 0x49, 0x48, 0x49, 0x50, 0x7F, 0x50, 0x49, 0x48, 0x49, 0x44, 0x7F, 0x44, 0x08, 0x44, 0x08, 0x64, 0xFF, 0xD4, 0x08, 0x48, 0x08, 0x40, 0x08, 0x40, 0x11, 0x04, 0x10, 0x88, 0x10, 0x50, 0x11, 0xFC, 0xFD, 0x24, 0x11, 0x24, 0x15, 0xFC, 0x19, 0x24, 0x31, 0x24, 0xD1, 0xFC, 0x10, 0x20, 0x17, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x50, 0x20, 0x20, 0x20, 0x04, 0x00, 0x3E, 0x04, 0x24, 0xFE, 0x24, 0x84, 0x24, 0x84, 0x3C, 0x84, 0x24, 0xFC, 0x24, 0x84, 0x24, 0x84, 0x3C, 0x84, 0x24, 0xFC, 0x24, 0x00, 0x24, 0x04, 0x25, 0xFE, 0x54, 0x00, 0x88, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x00, 0x3F, 0xF8, 0x40, 0x00, 0xBF, 0xF0, 0x12, 0x50, 0x0A, 0x90, 0x05, 0x10, 0x38, 0xF0, 0x02, 0x10, 0x12, 0x50, 0x0A, 0x90, 0x05, 0x12, 0x08, 0xCA, 0x70, 0x24, 0x10, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x24, 0x08, 0x24, 0x08, 0x64, 0x08, 0xA7, 0xF8, 0x24, 0x08, 0x24, 0x08, 0x24, 0x08, 0x27, 0xF8, 0x20, 0x00, 0x20, 0x04, 0x3F, 0xFE, 0x20, 0x00, 0x20, 0x00, 0x12, 0x08, 0x11, 0x10, 0x10, 0xA0, 0x13, 0xF8, 0x5A, 0x48, 0x56, 0x48, 0x53, 0xF8, 0x92, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x00, 0x40, 0x44, 0x44, 0x33, 0x4C, 0x11, 0x50, 0x80, 0x40, 0x40, 0xA0, 0x41, 0x1C, 0x0A, 0x48, 0x10, 0x40, 0x22, 0x48, 0xE1, 0x58, 0x20, 0xA0, 0x20, 0x90, 0x21, 0x10, 0x22, 0x0E, 0x2C, 0x04, 0x00, 0x08, 0x40, 0x1C, 0x2F, 0x70, 0x21, 0x10, 0x02, 0x10, 0x04, 0x10, 0xEF, 0x5C, 0x21, 0x50, 0x29, 0x50, 0x25, 0x50, 0x22, 0x50, 0x2A, 0x7C, 0x33, 0x00, 0x24, 0x80, 0x08, 0x46, 0x10, 0x3C, 0x0A, 0x08, 0x7D, 0x10, 0x08, 0xA0, 0x0B, 0xF8, 0x0A, 0x48, 0x7A, 0x48, 0x4B, 0xF8, 0x42, 0x48, 0x42, 0x48, 0x7B, 0xF8, 0x08, 0x40, 0x0F, 0xFE, 0x08, 0x40, 0x08, 0x40, 0x50, 0x40, 0x20, 0x40, 0x7F, 0xFC, 0x01, 0x08, 0x09, 0x20, 0x09, 0xF0, 0x09, 0x00, 0x15, 0x06, 0x23, 0xFC, 0x41, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x00, 0x01, 0x10, 0x7F, 0xF8, 0x00, 0x04, 0x01, 0x00, 0x21, 0x08, 0x19, 0x18, 0x09, 0x20, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x3F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x7F, 0xF8, 0x00, 0x08, 0x10, 0x40, 0x10, 0x40, 0x12, 0x44, 0x11, 0x4C, 0xFD, 0x50, 0x10, 0x44, 0x17, 0xFE, 0x18, 0x04, 0x30, 0x04, 0xD0, 0x04, 0x13, 0xFC, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x57, 0xFC, 0x20, 0x04, 0x01, 0x00, 0x11, 0x10, 0x0D, 0x30, 0x05, 0x40, 0x7F, 0xFE, 0x40, 0x22, 0x8F, 0xF4, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x04, 0x80, 0x04, 0x80, 0x04, 0x84, 0x08, 0x84, 0x30, 0x7C, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x47, 0xF0, 0x30, 0x40, 0x10, 0x80, 0x81, 0x04, 0x47, 0xFE, 0x11, 0x24, 0x21, 0x24, 0xE2, 0x44, 0x22, 0x44, 0x24, 0x84, 0x29, 0x28, 0x20, 0x10, 0x10, 0x40, 0x10, 0x40, 0x12, 0x44, 0x11, 0x4C, 0xFD, 0x50, 0x10, 0x44, 0x37, 0xFE, 0x38, 0x04, 0x54, 0x04, 0x50, 0x04, 0x93, 0xFC, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x17, 0xFC, 0x10, 0x04, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x08, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x08, 0x20, 0x50, 0x40, 0x20, 0x10, 0x40, 0x10, 0x88, 0x11, 0xFC, 0x11, 0x08, 0xFD, 0x48, 0x11, 0x08, 0x15, 0x28, 0x19, 0x10, 0x31, 0x00, 0xD1, 0xFE, 0x10, 0x82, 0x14, 0x92, 0x14, 0x92, 0x17, 0xF2, 0x50, 0x0A, 0x20, 0x04, 0x04, 0x1C, 0x7F, 0xE0, 0x44, 0x48, 0x46, 0x2C, 0x45, 0x28, 0x45, 0x10, 0x7C, 0x44, 0x13, 0x9E, 0x12, 0x04, 0x5E, 0x04, 0x53, 0x9C, 0x52, 0x04, 0x5E, 0x04, 0xF2, 0x04, 0x43, 0xFC, 0x02, 0x04, 0x10, 0x04, 0x10, 0x44, 0x1F, 0xE4, 0x22, 0x04, 0x22, 0x94, 0x64, 0x54, 0xAF, 0xD4, 0x21, 0x14, 0x21, 0x14, 0x2F, 0xD4, 0x21, 0x14, 0x21, 0x14, 0x21, 0xC4, 0x2F, 0x04, 0x24, 0x14, 0x20, 0x08, 0x01, 0x00, 0x02, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x0A, 0x20, 0x09, 0x20, 0x08, 0x60, 0x08, 0x04, 0x0F, 0xFE, 0x08, 0x04, 0x02, 0x04, 0x22, 0x24, 0x22, 0x24, 0x3F, 0xE4, 0x20, 0x34, 0x00, 0x08, 0x20, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x00, 0x40, 0xFD, 0xF8, 0x08, 0x40, 0x13, 0xFE, 0x38, 0x80, 0x54, 0x88, 0x93, 0xFE, 0x11, 0x08, 0x11, 0x48, 0x12, 0x28, 0x14, 0x08, 0x18, 0x28, 0x10, 0x10, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x20, 0x10, 0x3F, 0xF0, 0x20, 0x14, 0x20, 0x04, 0x1F, 0xFC, 0x00, 0x20, 0x00, 0x24, 0xFF, 0xFE, 0x00, 0x20, 0x08, 0x20, 0x04, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x01, 0x04, 0x7F, 0x84, 0x08, 0x04, 0x10, 0x24, 0x22, 0x24, 0x41, 0x24, 0x7F, 0xA4, 0x08, 0xA4, 0x0A, 0x24, 0x7F, 0x24, 0x08, 0x24, 0x08, 0x24, 0x08, 0x04, 0x0F, 0x84, 0xF8, 0x14, 0x00, 0x08, 0x08, 0x1C, 0x1F, 0xE0, 0xF0, 0x48, 0x12, 0x4C, 0x11, 0x48, 0xFD, 0x10, 0x10, 0x44, 0x3B, 0x9E, 0x36, 0x04, 0x52, 0x04, 0x53, 0x9C, 0x92, 0x04, 0x12, 0x04, 0x12, 0x04, 0x13, 0xFC, 0x12, 0x04, 0x10, 0x48, 0x10, 0x7C, 0x10, 0x40, 0x10, 0x48, 0x5B, 0xFC, 0x56, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x02, 0x08, 0x41, 0x10, 0x37, 0xFC, 0x10, 0x80, 0x01, 0x08, 0x03, 0xFC, 0xF2, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x2B, 0xF8, 0x44, 0x06, 0x03, 0xFC, 0x01, 0x00, 0x41, 0x08, 0x33, 0xFC, 0x12, 0x48, 0x04, 0x40, 0x10, 0xA0, 0x21, 0x10, 0xC6, 0x0E, 0x40, 0x04, 0x1F, 0xF0, 0x12, 0x90, 0x12, 0x90, 0x12, 0x90, 0x12, 0x94, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x10, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x47, 0xFC, 0x94, 0xA4, 0x14, 0xA4, 0x27, 0xFC, 0x60, 0x00, 0xAF, 0xFE, 0x20, 0x40, 0x21, 0x20, 0x25, 0x24, 0x25, 0x0A, 0x28, 0xFA, 0x20, 0x00, 0x08, 0x08, 0x0B, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x22, 0x08, 0x4B, 0xF8, 0x88, 0x00, 0x17, 0xFC, 0x30, 0x10, 0x50, 0x14, 0x9F, 0xFE, 0x12, 0x10, 0x11, 0x10, 0x11, 0x10, 0x10, 0x50, 0x10, 0x20, 0x10, 0x40, 0x10, 0x40, 0x22, 0x44, 0x7F, 0x7E, 0x42, 0x84, 0x43, 0x04, 0x42, 0x04, 0x42, 0x84, 0x7E, 0x64, 0x42, 0x24, 0x42, 0x04, 0x42, 0x04, 0x42, 0x04, 0x7E, 0x04, 0x42, 0x28, 0x00, 0x10, 0x08, 0x20, 0x7F, 0xA8, 0x48, 0xB0, 0x4A, 0xA4, 0x49, 0x18, 0x49, 0x10, 0x7B, 0xF8, 0x14, 0x06, 0x13, 0xF8, 0x5A, 0x08, 0x52, 0x08, 0x53, 0xF8, 0x5D, 0x10, 0xE0, 0xA4, 0x4F, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x20, 0x54, 0x20, 0x58, 0x20, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x28, 0x20, 0x24, 0x20, 0x44, 0x20, 0x80, 0xA0, 0x00, 0x40, 0x00, 0x80, 0x3E, 0x90, 0x02, 0xA0, 0x12, 0x48, 0x0C, 0x50, 0x08, 0x20, 0x1F, 0xF0, 0x20, 0x2E, 0xCF, 0xF4, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x04, 0x40, 0x02, 0x88, 0x7F, 0xFC, 0x00, 0x00, 0x10, 0x40, 0x14, 0x48, 0x3E, 0xFC, 0x49, 0x20, 0x05, 0x10, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x40, 0x00, 0x50, 0x3F, 0xF8, 0x08, 0x40, 0x04, 0x40, 0x01, 0x40, 0x00, 0x80, 0x08, 0x20, 0x7F, 0xA8, 0x48, 0xB0, 0x4A, 0xA4, 0x49, 0x18, 0x79, 0x08, 0x4B, 0xFE, 0x4C, 0x04, 0x4B, 0xF8, 0x7A, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x49, 0x10, 0x78, 0xA4, 0x4F, 0xFE, 0x00, 0x00, 0x3E, 0x90, 0x12, 0xA0, 0x0C, 0x48, 0x0F, 0xF0, 0x10, 0x10, 0x2F, 0xEE, 0xC8, 0x24, 0x0F, 0xE0, 0x04, 0x48, 0x7F, 0xFC, 0x00, 0x40, 0x07, 0xE0, 0x04, 0x40, 0x04, 0x44, 0x08, 0x44, 0x30, 0x3C, 0x00, 0x00, 0xFE, 0xFC, 0x02, 0x84, 0x42, 0x88, 0x24, 0x88, 0x24, 0x90, 0x18, 0xA0, 0x08, 0x98, 0x18, 0x84, 0x14, 0x84, 0x24, 0x84, 0x22, 0xC4, 0x42, 0xA8, 0x80, 0x90, 0x00, 0x80, 0x00, 0x80, 0x23, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0xFA, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x20, 0x04, 0x2F, 0xFE, 0x20, 0x40, 0x3A, 0x50, 0xE2, 0x78, 0x42, 0x40, 0x05, 0x40, 0x08, 0xC6, 0x10, 0x7C, 0x10, 0x08, 0x10, 0x3C, 0x17, 0xC0, 0x24, 0x40, 0x24, 0x40, 0x64, 0x40, 0xA4, 0x44, 0x27, 0xFE, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x90, 0x25, 0x12, 0x26, 0x4A, 0x24, 0x2A, 0x20, 0x04, 0x00, 0x80, 0x40, 0x44, 0x2F, 0xFE, 0x22, 0x08, 0x01, 0x14, 0x87, 0xFE, 0x44, 0x44, 0x4D, 0xF4, 0x14, 0x44, 0x25, 0xF4, 0xE5, 0x14, 0x25, 0x14, 0x25, 0xF4, 0x25, 0x04, 0x24, 0x14, 0x24, 0x08, 0x00, 0x80, 0x40, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x08, 0x88, 0x08, 0x88, 0xE8, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x28, 0x88, 0x28, 0x88, 0x2F, 0xF8, 0x28, 0x08, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x02, 0x20, 0x07, 0x20, 0x78, 0x20, 0x08, 0x44, 0x08, 0x7E, 0x0A, 0x88, 0xFF, 0x48, 0x08, 0x48, 0x0A, 0x48, 0x3F, 0x48, 0x22, 0x50, 0x22, 0x50, 0x22, 0x20, 0x3E, 0x50, 0x22, 0x8E, 0x01, 0x04, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x81, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x04, 0x40, 0x44, 0x40, 0x28, 0x40, 0x10, 0x44, 0x29, 0x4C, 0x49, 0x50, 0x89, 0x60, 0x0A, 0x40, 0x18, 0x40, 0x28, 0x40, 0x48, 0xA0, 0x88, 0xA0, 0x09, 0x10, 0x09, 0x08, 0x52, 0x0E, 0x24, 0x04, 0x01, 0x00, 0x41, 0x00, 0x31, 0xF8, 0x13, 0x10, 0x84, 0xA0, 0x60, 0x40, 0x20, 0xA0, 0x09, 0x10, 0x12, 0x4E, 0x24, 0x40, 0xEB, 0xFC, 0x21, 0x50, 0x22, 0x4C, 0x24, 0x44, 0x21, 0x40, 0x20, 0x80, 0x00, 0x08, 0x7E, 0xFC, 0x02, 0x08, 0x22, 0x48, 0x1A, 0x38, 0x12, 0x28, 0x23, 0x48, 0x08, 0x80, 0x1F, 0xFC, 0x30, 0x80, 0x5F, 0xF8, 0x90, 0x80, 0x1F, 0xF8, 0x10, 0x80, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x88, 0xFC, 0x54, 0x25, 0xFE, 0x25, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x45, 0x74, 0x29, 0x54, 0x11, 0x54, 0x29, 0x74, 0x45, 0x04, 0x85, 0x14, 0x00, 0x08, 0x10, 0x08, 0x10, 0x3C, 0x13, 0xE0, 0x12, 0x20, 0xFE, 0x20, 0x12, 0x20, 0x16, 0x28, 0x1B, 0xFC, 0x32, 0x20, 0xD2, 0x20, 0x12, 0x20, 0x12, 0x50, 0x12, 0xD0, 0x13, 0x2A, 0x52, 0x0A, 0x20, 0x04, 0x02, 0x00, 0x01, 0x04, 0x3F, 0xFE, 0x20, 0x00, 0x20, 0x70, 0x2F, 0x80, 0x28, 0x80, 0x28, 0x88, 0x2F, 0xFC, 0x28, 0x80, 0x28, 0x80, 0x28, 0x40, 0x4A, 0x40, 0x4D, 0xA4, 0x88, 0x94, 0x00, 0x0C, 0x00, 0x40, 0x20, 0x40, 0x22, 0x40, 0x22, 0x40, 0x22, 0x48, 0x22, 0x7C, 0xFB, 0xC8, 0x26, 0x48, 0x22, 0x48, 0x22, 0x48, 0x22, 0x68, 0x22, 0x50, 0x3A, 0x42, 0xE2, 0x02, 0x41, 0xFE, 0x00, 0x00, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x40, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x14, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x01, 0x20, 0x01, 0x00, 0x10, 0x80, 0x14, 0x88, 0x3E, 0xFC, 0x49, 0x20, 0xBF, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x3F, 0xF8, 0x21, 0x00, 0x21, 0x04, 0x3F, 0xFE, 0x03, 0x04, 0x05, 0x04, 0x19, 0x24, 0x61, 0x18, 0x01, 0x00, 0x02, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x40, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x14, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x01, 0x00, 0x01, 0x00, 0x08, 0x20, 0x06, 0x60, 0x02, 0x88, 0x7F, 0xFC, 0x01, 0x08, 0x01, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x00, 0x3F, 0xFC, 0x03, 0x04, 0x05, 0x04, 0x19, 0x14, 0x61, 0x08, 0x01, 0x00, 0x01, 0x00, 0x04, 0x10, 0x42, 0x28, 0x2F, 0xFC, 0x20, 0x88, 0x00, 0x88, 0x0F, 0xF8, 0xE8, 0x80, 0x28, 0x88, 0x2F, 0xFC, 0x21, 0x88, 0x22, 0x88, 0x24, 0xA8, 0x28, 0x90, 0x50, 0x80, 0x88, 0x86, 0x07, 0xFC, 0x10, 0x80, 0x10, 0x48, 0x27, 0xFC, 0x21, 0x10, 0x48, 0xA0, 0xFF, 0xFE, 0x14, 0x42, 0x28, 0x44, 0x43, 0xF8, 0xFA, 0x48, 0x42, 0x48, 0x02, 0x48, 0x1A, 0x48, 0xE2, 0x58, 0x40, 0x40, 0x00, 0x40, 0x10, 0x04, 0x15, 0xFE, 0xFE, 0x20, 0x10, 0x44, 0x7C, 0xFE, 0x44, 0x84, 0x7C, 0x94, 0x44, 0x94, 0x7C, 0x94, 0x44, 0xA4, 0x7C, 0xA4, 0x44, 0xA4, 0xFE, 0x40, 0x00, 0x48, 0x28, 0x86, 0x45, 0x02, 0x10, 0x40, 0x10, 0x20, 0x10, 0x04, 0x13, 0xFE, 0xFE, 0x20, 0x12, 0x24, 0x16, 0x3E, 0x1A, 0x20, 0x32, 0x24, 0xD2, 0xFE, 0x12, 0x84, 0x12, 0x84, 0x14, 0x84, 0x14, 0x84, 0x58, 0xFC, 0x20, 0x84, 0x00, 0x40, 0x40, 0x48, 0x37, 0xFC, 0x10, 0x40, 0x83, 0xF8, 0x62, 0x08, 0x23, 0xF8, 0x0A, 0x08, 0x13, 0xF8, 0x22, 0x08, 0xE3, 0xF8, 0x22, 0x08, 0x2F, 0xFE, 0x21, 0x10, 0x23, 0x0C, 0x24, 0x04, 0x00, 0x50, 0x04, 0x50, 0xFE, 0x54, 0x11, 0xFE, 0x11, 0x54, 0x21, 0x54, 0x25, 0x54, 0x3F, 0xFC, 0x65, 0x54, 0xA5, 0x54, 0x25, 0x54, 0x27, 0xFE, 0x24, 0x00, 0x3C, 0x88, 0x25, 0x86, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00, 0x02, 0x08, 0x03, 0xFC, 0x02, 0x00, 0x02, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x3F, 0xF0, 0x00, 0x00, 0x29, 0x10, 0x24, 0xC8, 0x44, 0x44, 0x80, 0x04, 0x04, 0x40, 0x04, 0x40, 0x04, 0x48, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x10, 0x30, 0x0C, 0x40, 0x04, 0x10, 0x40, 0x7C, 0x20, 0x11, 0xFE, 0x7D, 0x02, 0x12, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x7E, 0x20, 0x44, 0xA8, 0x7C, 0xBC, 0x44, 0xA0, 0x7C, 0xA0, 0x44, 0xA0, 0x45, 0x60, 0x56, 0x26, 0x48, 0x1C, 0x08, 0x40, 0x08, 0x48, 0x7E, 0xFC, 0x08, 0x48, 0x0A, 0xC8, 0x1C, 0x68, 0x68, 0x58, 0x08, 0x8A, 0x2B, 0x06, 0x11, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x10, 0x7F, 0xF8, 0x42, 0x10, 0x42, 0x10, 0x7F, 0xF0, 0x42, 0x10, 0x42, 0x10, 0x7F, 0xF0, 0x42, 0x10, 0x02, 0x00, 0x02, 0x04, 0x02, 0x04, 0x01, 0xFC, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x27, 0xFE, 0x24, 0x44, 0x64, 0x44, 0xA4, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x20, 0x00, 0x08, 0x00, 0x08, 0x04, 0x1F, 0xFE, 0x20, 0x04, 0x40, 0x04, 0x80, 0x24, 0x3F, 0xF4, 0x22, 0x24, 0x22, 0x24, 0x3F, 0xE4, 0x22, 0x24, 0x22, 0x24, 0x3F, 0xE4, 0x20, 0x24, 0x00, 0x14, 0x00, 0x08, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x88, 0x20, 0xFC, 0x20, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x28, 0x08, 0x28, 0x08, 0x28, 0x08, 0x48, 0x08, 0x48, 0x08, 0x8F, 0xF8, 0x08, 0x08, 0x10, 0x40, 0x10, 0x20, 0x10, 0x04, 0x13, 0xFE, 0x5A, 0x20, 0x56, 0x24, 0x52, 0x3E, 0x92, 0x20, 0x12, 0x24, 0x12, 0xFE, 0x12, 0x84, 0x12, 0x84, 0x14, 0x84, 0x14, 0x84, 0x18, 0xFC, 0x10, 0x84, 0x10, 0x10, 0x08, 0x20, 0x7F, 0xFC, 0x04, 0x50, 0x1F, 0xF8, 0x14, 0x50, 0x14, 0x50, 0x18, 0x30, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x78, 0x38, 0x10, 0x00, 0x80, 0x40, 0x40, 0x30, 0x40, 0x17, 0xFE, 0x84, 0x04, 0x68, 0x08, 0x27, 0xFC, 0x00, 0x40, 0x12, 0x48, 0x22, 0x7C, 0xE2, 0x40, 0x22, 0x40, 0x22, 0x40, 0x25, 0x40, 0x28, 0xC6, 0x20, 0x7C, 0x00, 0x08, 0x7F, 0x7C, 0x41, 0x48, 0x41, 0x48, 0x7F, 0x48, 0x40, 0x48, 0x52, 0x86, 0x7F, 0x00, 0x52, 0xFC, 0x52, 0x88, 0x7F, 0x50, 0x40, 0x20, 0x52, 0x50, 0x51, 0x88, 0xA0, 0x86, 0x01, 0x04, 0x08, 0x04, 0xFD, 0xFE, 0x11, 0x24, 0x11, 0x24, 0x21, 0xFC, 0x25, 0x24, 0x3F, 0x24, 0x65, 0xFC, 0xA5, 0x04, 0x25, 0x74, 0x25, 0x54, 0x25, 0x54, 0x25, 0x74, 0x3D, 0x04, 0x22, 0x14, 0x04, 0x08, 0x00, 0x00, 0x08, 0x04, 0x7D, 0xFE, 0x48, 0x04, 0x48, 0x04, 0x48, 0x04, 0x48, 0x14, 0x48, 0x24, 0x48, 0x44, 0x48, 0x84, 0x49, 0x84, 0x7B, 0x04, 0x49, 0x04, 0x00, 0x04, 0x00, 0x28, 0x00, 0x10, 0x01, 0x20, 0x7F, 0xA8, 0x49, 0x40, 0x49, 0x7E, 0x7F, 0xC8, 0x49, 0x48, 0x49, 0x7C, 0x7F, 0x48, 0x41, 0x48, 0x5D, 0x7C, 0x55, 0x48, 0x55, 0x48, 0x5D, 0x48, 0x51, 0x7E, 0x85, 0x40, 0x02, 0x40, 0x00, 0x04, 0x07, 0xFE, 0x44, 0x44, 0x24, 0x44, 0x25, 0xF4, 0x04, 0x44, 0x0C, 0x54, 0x17, 0xFC, 0x24, 0x04, 0xE5, 0xF4, 0x25, 0x14, 0x25, 0x14, 0x25, 0xF4, 0x25, 0x04, 0x08, 0x14, 0x10, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x48, 0x00, 0x88, 0x01, 0x08, 0x02, 0x08, 0x04, 0x08, 0x08, 0x08, 0x10, 0x08, 0x30, 0x08, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x10, 0x48, 0x10, 0x7C, 0x10, 0x40, 0x10, 0x48, 0xFF, 0xFC, 0x12, 0x08, 0x17, 0xF8, 0x1A, 0x08, 0x33, 0xF8, 0xD2, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x50, 0x40, 0x20, 0x40, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x21, 0x10, 0x01, 0x00, 0x01, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1C, 0x7E, 0x20, 0x84, 0x21, 0x04, 0x7C, 0x04, 0x90, 0x84, 0x10, 0x64, 0xFC, 0x24, 0x10, 0x04, 0x12, 0x04, 0x14, 0x04, 0x18, 0x44, 0x10, 0x28, 0x00, 0x10, 0x40, 0x04, 0x27, 0xFE, 0x24, 0x44, 0x04, 0x44, 0x05, 0xF4, 0xE4, 0x44, 0x24, 0x54, 0x27, 0xFC, 0x24, 0x04, 0x25, 0xF4, 0x25, 0x14, 0x2D, 0x14, 0x35, 0xF4, 0x25, 0x04, 0x08, 0x14, 0x10, 0x08, 0x04, 0x20, 0x7E, 0x20, 0x45, 0x20, 0x45, 0x28, 0x45, 0xFC, 0x7D, 0x20, 0x52, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x5C, 0x20, 0x50, 0x50, 0x50, 0x50, 0x5E, 0x88, 0xF0, 0x8C, 0x41, 0x06, 0x02, 0x04, 0x04, 0x40, 0x08, 0x20, 0x34, 0x58, 0x03, 0x80, 0x06, 0xC0, 0x1A, 0x30, 0x67, 0xCE, 0x8C, 0x44, 0x13, 0x80, 0x06, 0x80, 0x19, 0xF0, 0x02, 0x20, 0x0D, 0x40, 0x01, 0x80, 0x06, 0x00, 0x38, 0x00, 0x00, 0x50, 0x09, 0x50, 0xFD, 0x54, 0x13, 0xFE, 0x11, 0x50, 0x21, 0x50, 0x25, 0x70, 0x3F, 0x00, 0x65, 0xFC, 0xA4, 0x20, 0x27, 0xFE, 0x24, 0x70, 0x24, 0xA8, 0x3D, 0x26, 0x22, 0x24, 0x00, 0x20, 0x10, 0x50, 0x11, 0x50, 0x15, 0x54, 0x7F, 0xFE, 0x55, 0x50, 0x55, 0x50, 0x55, 0x70, 0x55, 0x00, 0x7D, 0xFC, 0x50, 0x20, 0x17, 0xFE, 0x1C, 0x70, 0xF4, 0xA8, 0x41, 0x26, 0x02, 0x24, 0x00, 0x20, 0x00, 0x40, 0x42, 0x40, 0x32, 0x50, 0x13, 0xF8, 0x02, 0x40, 0x04, 0x40, 0xF0, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x80, 0x10, 0xA0, 0x11, 0x18, 0x12, 0x08, 0x28, 0x00, 0x44, 0x06, 0x03, 0xFC, 0x00, 0x50, 0x41, 0x50, 0x31, 0x54, 0x17, 0xFE, 0x01, 0x50, 0x01, 0x50, 0xF1, 0x70, 0x11, 0x00, 0x11, 0xFC, 0x10, 0x20, 0x17, 0xFE, 0x10, 0x70, 0x14, 0xA8, 0x19, 0x26, 0x12, 0x24, 0x00, 0x20, 0x1F, 0xF0, 0x04, 0x40, 0x03, 0x80, 0x3E, 0xF8, 0x14, 0x50, 0x08, 0x20, 0x76, 0xDC, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x10, 0x10, 0x1E, 0x10, 0x11, 0xF0, 0x10, 0x14, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x78, 0x04, 0x4F, 0xFE, 0x48, 0x20, 0x48, 0x20, 0x78, 0x20, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x78, 0x20, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x78, 0x20, 0x48, 0xA0, 0x00, 0x40, 0x00, 0x00, 0x08, 0x04, 0x7F, 0xFE, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x78, 0x20, 0x48, 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x1C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7C, 0x20, 0x90, 0x20, 0x10, 0x20, 0xFC, 0x20, 0x10, 0x20, 0x12, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0xA0, 0x00, 0x40, 0x00, 0x04, 0x0B, 0xFE, 0xFC, 0x20, 0x10, 0x44, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x10, 0x40, 0x50, 0x58, 0x20, 0x84, 0x03, 0x02, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x28, 0x28, 0x2F, 0xE8, 0x28, 0x28, 0x2F, 0xE8, 0x20, 0x08, 0x3E, 0xF8, 0x02, 0x80, 0xFE, 0xFC, 0x12, 0x84, 0x12, 0x84, 0x22, 0x84, 0xC2, 0x84, 0x02, 0x80, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x1D, 0xFE, 0x21, 0x02, 0x22, 0x04, 0x7D, 0xFC, 0x90, 0x20, 0x10, 0x28, 0x7D, 0x3C, 0x11, 0x20, 0x11, 0x20, 0x15, 0x20, 0x1A, 0xA0, 0x14, 0x66, 0x08, 0x3C, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x24, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x11, 0x20, 0x11, 0xF0, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x29, 0x06, 0x47, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x40, 0x04, 0x27, 0xFE, 0x20, 0x20, 0x00, 0x20, 0x00, 0x20, 0xF0, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0xA0, 0x00, 0x40, 0x00, 0xF0, 0x3F, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x00, 0x08, 0x20, 0x10, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x02, 0x00, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x09, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x18, 0x45, 0x08, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x07, 0xF0, 0x08, 0x20, 0x14, 0x40, 0x22, 0x80, 0x01, 0x00, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x0E, 0xC6, 0x04, 0x01, 0x80, 0x00, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x21, 0x14, 0x2F, 0xFE, 0x21, 0x10, 0x27, 0xFC, 0xB0, 0x40, 0xAF, 0xFE, 0xA0, 0x44, 0x27, 0xFE, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x27, 0xFC, 0x20, 0x40, 0x27, 0xFC, 0x20, 0x40, 0x2F, 0xFE, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x40, 0x00, 0x44, 0x05, 0xFE, 0xFE, 0x44, 0x10, 0x44, 0x10, 0x44, 0x20, 0x44, 0x24, 0x44, 0x42, 0x84, 0xFE, 0x84, 0x41, 0x04, 0x01, 0x04, 0x02, 0x28, 0x04, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0xFC, 0x80, 0x10, 0x80, 0x38, 0xA0, 0x35, 0x24, 0x53, 0xFE, 0x50, 0x20, 0x91, 0x28, 0x11, 0x24, 0x12, 0x22, 0x14, 0x22, 0x10, 0xA0, 0x10, 0x40, 0x08, 0x04, 0x0B, 0xFE, 0x0A, 0x04, 0x12, 0x14, 0x13, 0xFC, 0x32, 0x04, 0x52, 0x14, 0x92, 0xFC, 0x12, 0x94, 0x12, 0x94, 0x12, 0x94, 0x12, 0xF4, 0x12, 0x94, 0x12, 0x04, 0x12, 0x14, 0x12, 0x08, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x14, 0x5B, 0xFC, 0x56, 0x04, 0x52, 0x14, 0x92, 0xFC, 0x12, 0x94, 0x12, 0x94, 0x12, 0x94, 0x12, 0xF4, 0x12, 0x94, 0x12, 0x04, 0x12, 0x14, 0x12, 0x08, 0x00, 0x40, 0x40, 0x48, 0x23, 0xFC, 0x10, 0x80, 0x10, 0x80, 0x01, 0x20, 0x01, 0x24, 0x0B, 0xFE, 0x10, 0x20, 0x60, 0xA0, 0x20, 0xA8, 0x21, 0x24, 0x22, 0x22, 0x24, 0x22, 0x20, 0xA0, 0x00, 0x40, 0x00, 0x04, 0x43, 0xFE, 0x32, 0x04, 0x12, 0x14, 0x83, 0xFC, 0x42, 0x04, 0x4A, 0x14, 0x12, 0xFC, 0x12, 0x94, 0x22, 0x94, 0xE2, 0x94, 0x22, 0xF4, 0x22, 0x94, 0x22, 0x04, 0x22, 0x14, 0x22, 0x08, 0x01, 0x00, 0x0A, 0x08, 0x37, 0xDC, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x24, 0x48, 0x2C, 0x48, 0x37, 0xD8, 0x20, 0x08, 0x04, 0x40, 0x04, 0x42, 0x04, 0x42, 0x08, 0x42, 0x10, 0x3E, 0x60, 0x00, 0x10, 0x10, 0x11, 0x10, 0x10, 0xD0, 0x10, 0x50, 0xFC, 0x10, 0x11, 0x10, 0x14, 0xD0, 0x18, 0x50, 0x30, 0x14, 0xD0, 0x1E, 0x17, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x10, 0x00, 0x40, 0x08, 0x40, 0x06, 0x40, 0x02, 0x40, 0x10, 0x40, 0x0C, 0x40, 0x04, 0x40, 0x00, 0x44, 0x00, 0x7E, 0xFF, 0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x78, 0x40, 0x48, 0x50, 0x53, 0xF8, 0x50, 0x40, 0x60, 0x48, 0x57, 0xFC, 0x48, 0x40, 0x4A, 0x50, 0x4A, 0x78, 0x6A, 0x40, 0x52, 0x40, 0x45, 0x40, 0x44, 0xC6, 0x48, 0x3C, 0x40, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x08, 0x20, 0x04, 0x40, 0x02, 0x84, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x47, 0xFC, 0x20, 0x00, 0x20, 0x08, 0x03, 0xFC, 0x02, 0x08, 0xF2, 0x08, 0x13, 0xF8, 0x10, 0x00, 0x11, 0x10, 0x10, 0xA0, 0x17, 0xFC, 0x10, 0x00, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x00, 0x97, 0xFC, 0x50, 0x08, 0x53, 0xFC, 0x12, 0x08, 0x32, 0x08, 0x52, 0x08, 0xD3, 0xF8, 0x10, 0x00, 0x21, 0x10, 0x20, 0xA4, 0x4F, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x12, 0x7C, 0x7F, 0x44, 0x12, 0x44, 0x14, 0x48, 0xFF, 0x48, 0x08, 0x50, 0x12, 0x48, 0x3F, 0x44, 0x62, 0x42, 0xA2, 0x42, 0x3E, 0x62, 0x22, 0x54, 0x22, 0x48, 0x3E, 0x40, 0x22, 0x40, 0x08, 0x00, 0x0E, 0xFC, 0x08, 0x04, 0xFF, 0x88, 0x28, 0x50, 0x2A, 0x20, 0x49, 0x50, 0x58, 0x8E, 0x9F, 0xF4, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x12, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x22, 0x10, 0x21, 0x10, 0x3F, 0xF8, 0x00, 0x10, 0x00, 0x60, 0x10, 0x20, 0x10, 0x28, 0x51, 0xFC, 0x50, 0x20, 0x7C, 0x20, 0x53, 0xFE, 0x90, 0x92, 0x14, 0x54, 0x19, 0x10, 0x30, 0x94, 0xD7, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x50, 0x10, 0x8C, 0x13, 0x04, 0x00, 0x40, 0x44, 0x40, 0x28, 0x40, 0x10, 0x48, 0x2B, 0xFC, 0x4A, 0x48, 0x8A, 0x48, 0x1A, 0x48, 0x2A, 0x48, 0x4B, 0xF8, 0x0A, 0x48, 0x08, 0x40, 0x08, 0x48, 0x08, 0x78, 0x57, 0x84, 0x20, 0x04, 0x00, 0x20, 0x20, 0x28, 0x13, 0xFC, 0x10, 0x20, 0x00, 0x20, 0x07, 0xFE, 0xF0, 0x92, 0x10, 0x54, 0x11, 0x10, 0x10, 0x94, 0x17, 0xFE, 0x10, 0x20, 0x14, 0x20, 0x18, 0x50, 0x10, 0x8C, 0x03, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x11, 0xF8, 0xFC, 0x48, 0x10, 0x50, 0x17, 0xFE, 0x10, 0x48, 0x10, 0xFC, 0x11, 0x88, 0x1E, 0x88, 0xE4, 0xF8, 0x48, 0x88, 0x10, 0x88, 0x00, 0xF8, 0x00, 0x88, 0x08, 0x40, 0x7C, 0x40, 0x48, 0x44, 0x49, 0xF8, 0x48, 0x48, 0x78, 0x50, 0x4F, 0xFE, 0x48, 0x48, 0x48, 0xFC, 0x79, 0x88, 0x4A, 0x88, 0x4C, 0xF8, 0x48, 0x88, 0x78, 0x88, 0x48, 0xF8, 0x00, 0x88, 0x04, 0x40, 0x7E, 0x40, 0x44, 0x44, 0x55, 0xF8, 0x54, 0x48, 0x54, 0x50, 0x57, 0xFE, 0x54, 0x48, 0x54, 0xFC, 0x55, 0x88, 0x56, 0x88, 0x54, 0xF8, 0x10, 0x88, 0x28, 0x88, 0x44, 0xF8, 0x84, 0x88, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x14, 0x20, 0xFE, 0x20, 0x10, 0x28, 0x31, 0xFC, 0x38, 0x20, 0x54, 0x20, 0x54, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x00, 0x20, 0x40, 0x20, 0x24, 0x3B, 0xFE, 0x42, 0x50, 0x82, 0x50, 0x7B, 0xFC, 0x22, 0x50, 0x22, 0x70, 0xFA, 0x00, 0x23, 0xF8, 0x22, 0x88, 0x2A, 0x50, 0x34, 0x20, 0x24, 0x50, 0x08, 0x8E, 0x03, 0x04, 0x04, 0x20, 0x3E, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x28, 0x25, 0xFC, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x54, 0x00, 0x88, 0x00, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x20, 0x22, 0x28, 0x3F, 0xFC, 0x22, 0x20, 0x23, 0xE0, 0x20, 0x00, 0x2F, 0xF0, 0x22, 0x20, 0x21, 0x40, 0x20, 0x80, 0x43, 0x60, 0x8C, 0x1E, 0x30, 0x04, 0x00, 0x80, 0x40, 0x44, 0x37, 0xFE, 0x14, 0x90, 0x84, 0x94, 0x67, 0xFE, 0x24, 0x90, 0x04, 0xF0, 0x14, 0x00, 0x25, 0xF8, 0xE4, 0x88, 0x24, 0x50, 0x28, 0x20, 0x28, 0x50, 0x31, 0x8E, 0x26, 0x04, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x10, 0x04, 0xFD, 0xFE, 0x25, 0x04, 0x25, 0x04, 0x25, 0x04, 0x25, 0xFC, 0x45, 0x04, 0x29, 0x00, 0x11, 0x00, 0x2A, 0x00, 0x46, 0x00, 0x84, 0x00, 0x08, 0x00, 0x00, 0x20, 0x20, 0x20, 0x11, 0x24, 0x11, 0x24, 0xFD, 0x24, 0x01, 0xFC, 0x48, 0x00, 0x4B, 0xFE, 0x48, 0x44, 0x49, 0xFE, 0x49, 0x54, 0x11, 0x54, 0x1D, 0x54, 0xE1, 0x54, 0x41, 0x04, 0x01, 0x0C, 0x20, 0x00, 0x20, 0x08, 0x2B, 0xFC, 0x3C, 0x00, 0x50, 0x08, 0x91, 0xFC, 0x11, 0x08, 0x15, 0x08, 0xFF, 0x08, 0x11, 0xF8, 0x10, 0x00, 0x11, 0x08, 0x28, 0x90, 0x24, 0x94, 0x47, 0xFE, 0x80, 0x00, 0x21, 0x88, 0x26, 0x7C, 0x3C, 0x48, 0x44, 0x48, 0x87, 0x48, 0x7C, 0x48, 0x24, 0x86, 0x27, 0x00, 0xFD, 0xFC, 0x24, 0x88, 0x24, 0x50, 0x27, 0x20, 0x2C, 0x50, 0x34, 0x88, 0x25, 0x0E, 0x06, 0x04, 0x00, 0x08, 0x06, 0xFC, 0x38, 0x88, 0x20, 0x88, 0x24, 0x88, 0x3E, 0x88, 0x21, 0x06, 0x24, 0x00, 0x3E, 0xF8, 0x20, 0x88, 0x20, 0x90, 0x3E, 0x50, 0xE0, 0x20, 0x20, 0x50, 0x20, 0x8E, 0x23, 0x04, 0x04, 0x00, 0x44, 0x0C, 0x64, 0xF0, 0x55, 0x40, 0x4E, 0x40, 0x44, 0x44, 0x7F, 0x7E, 0x44, 0x48, 0x4E, 0x48, 0x55, 0x48, 0x64, 0x48, 0x44, 0x48, 0x44, 0x48, 0x7F, 0x48, 0x40, 0x88, 0x01, 0x08, 0x21, 0x88, 0x26, 0x7C, 0x24, 0x48, 0x44, 0x48, 0x4F, 0x48, 0xF4, 0x48, 0x24, 0x86, 0x47, 0x00, 0x45, 0xFC, 0xFC, 0x88, 0x04, 0x50, 0x0F, 0x20, 0x34, 0x50, 0xC4, 0x88, 0x05, 0x0E, 0x06, 0x04, 0x10, 0x80, 0x10, 0xA0, 0x10, 0x90, 0x10, 0x84, 0x11, 0xFE, 0xFD, 0x10, 0x13, 0x10, 0x15, 0xFC, 0x11, 0x10, 0x11, 0x10, 0x1D, 0xFC, 0xE1, 0x10, 0x41, 0x10, 0x01, 0x14, 0x01, 0xFE, 0x01, 0x00, 0x10, 0x10, 0x08, 0x20, 0x04, 0x50, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x14, 0x50, 0x04, 0x40, 0x04, 0x40, 0x08, 0x42, 0x08, 0x42, 0x10, 0x3E, 0x60, 0x00, 0x00, 0x40, 0x7C, 0x40, 0x44, 0x40, 0x48, 0x40, 0x48, 0x40, 0x50, 0x40, 0x48, 0x40, 0x48, 0x40, 0x44, 0xA0, 0x44, 0xA0, 0x44, 0xA0, 0x69, 0x10, 0x51, 0x10, 0x42, 0x08, 0x44, 0x06, 0x48, 0x04, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0xFC, 0x14, 0x07, 0xFE, 0x04, 0x10, 0x48, 0x10, 0x29, 0x10, 0x10, 0x90, 0x10, 0x90, 0x28, 0x10, 0x24, 0x10, 0x44, 0x10, 0x80, 0x10, 0x00, 0x50, 0x00, 0x20, 0x24, 0x20, 0x22, 0xA0, 0x3F, 0xE0, 0x20, 0x24, 0x2F, 0xBE, 0xF8, 0xC4, 0x2F, 0xA4, 0x20, 0x24, 0x2F, 0xA4, 0x21, 0x28, 0x22, 0x28, 0x3F, 0x90, 0xE2, 0x10, 0x42, 0x28, 0x0A, 0x46, 0x04, 0x84, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x48, 0x4F, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x7A, 0x48, 0x48, 0x40, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3E, 0x08, 0x88, 0x7F, 0xFE, 0x48, 0x54, 0x49, 0xFE, 0x49, 0x54, 0x49, 0xDC, 0x79, 0x04, 0x51, 0xFC, 0x11, 0x04, 0x59, 0xFC, 0x50, 0x08, 0x57, 0xFE, 0x59, 0x08, 0xE0, 0x88, 0x40, 0x28, 0x00, 0x10, 0x10, 0x40, 0x0A, 0x40, 0xFF, 0x44, 0x00, 0x7E, 0x7E, 0x88, 0x43, 0x08, 0x42, 0x88, 0x7E, 0x88, 0x00, 0x88, 0x7E, 0x50, 0x04, 0x50, 0x08, 0x20, 0xFE, 0x50, 0x08, 0x88, 0x29, 0x0E, 0x12, 0x04, 0x10, 0x04, 0x11, 0xFE, 0x14, 0x20, 0xFE, 0x44, 0x11, 0xFE, 0x55, 0x04, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x7D, 0x24, 0x55, 0x24, 0x11, 0x24, 0x14, 0x20, 0x18, 0x50, 0x10, 0x8C, 0x03, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x4F, 0xE4, 0x49, 0x04, 0x41, 0x14, 0x40, 0xF4, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x10, 0x20, 0x10, 0x20, 0x1C, 0x24, 0x23, 0xFE, 0x20, 0x20, 0x7D, 0x24, 0x91, 0x24, 0x11, 0x24, 0xFD, 0x24, 0x11, 0xFC, 0x11, 0x24, 0x10, 0x20, 0x14, 0x22, 0x18, 0x22, 0x10, 0x1E, 0x00, 0x00, 0x00, 0x78, 0x3F, 0x80, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x28, 0x08, 0x2F, 0xF8, 0x28, 0x08, 0x2F, 0xF8, 0x48, 0x08, 0x48, 0x08, 0x8F, 0xF8, 0x08, 0x08, 0x00, 0x38, 0x47, 0xC0, 0x24, 0x40, 0x24, 0x48, 0x07, 0xFC, 0x04, 0x40, 0xE5, 0xF8, 0x25, 0x08, 0x25, 0xF8, 0x25, 0x08, 0x25, 0xF8, 0x29, 0x08, 0x21, 0xF8, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x20, 0x00, 0x2F, 0xFC, 0x24, 0xA4, 0x25, 0x28, 0xFA, 0x10, 0x25, 0x28, 0x28, 0xC4, 0x20, 0x00, 0x3F, 0xBC, 0xE0, 0x84, 0x28, 0xC4, 0x25, 0x28, 0x22, 0x10, 0x25, 0x28, 0xA8, 0xCE, 0x50, 0x84, 0x00, 0x40, 0x08, 0x40, 0x7C, 0xFC, 0x49, 0x08, 0x4A, 0x90, 0x48, 0x60, 0x48, 0x40, 0x49, 0xA0, 0x4E, 0x7E, 0x48, 0x84, 0x49, 0x88, 0x7A, 0x50, 0x48, 0x20, 0x00, 0x40, 0x01, 0x80, 0x06, 0x00, 0x02, 0x00, 0x02, 0x00, 0x07, 0xF0, 0x08, 0x20, 0x18, 0x40, 0x25, 0x80, 0x02, 0x80, 0x0C, 0x80, 0x71, 0xFC, 0x02, 0x08, 0x0C, 0x10, 0x12, 0x20, 0x21, 0xC0, 0x01, 0x00, 0x0E, 0x00, 0x70, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x24, 0x00, 0x20, 0x7F, 0xFC, 0x04, 0x20, 0x02, 0x20, 0x02, 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x10, 0x10, 0x11, 0xF8, 0x11, 0x10, 0x11, 0x10, 0xFD, 0x10, 0x11, 0x10, 0x16, 0x4C, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0xC0, 0x1C, 0xE0, 0xF1, 0x50, 0x42, 0x48, 0x04, 0x46, 0x08, 0x44, 0x00, 0x40, 0x08, 0x08, 0x10, 0xFC, 0x3C, 0x88, 0x24, 0x88, 0x3C, 0x88, 0x24, 0x88, 0x3D, 0x26, 0x24, 0x24, 0xFF, 0xFE, 0x14, 0x60, 0x14, 0x70, 0x24, 0xB0, 0x24, 0xA8, 0x45, 0x26, 0x96, 0x24, 0x08, 0x20, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x31, 0x1C, 0x01, 0x00, 0xFF, 0xFE, 0x03, 0x00, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x08, 0x10, 0x7D, 0xF8, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x7A, 0x0C, 0x10, 0x40, 0x17, 0xFE, 0x58, 0xC0, 0x50, 0xE0, 0x51, 0x50, 0x5D, 0x4E, 0xE2, 0x44, 0x44, 0x40, 0x00, 0x40, 0x08, 0x40, 0x10, 0x20, 0x3C, 0x00, 0x25, 0xFE, 0x35, 0x02, 0x2E, 0x04, 0x24, 0x80, 0xFC, 0x88, 0x24, 0x90, 0x34, 0xA0, 0x2C, 0xC0, 0x24, 0x80, 0x24, 0x84, 0x44, 0x84, 0x94, 0x7C, 0x08, 0x00, 0x02, 0x04, 0x3F, 0x04, 0x22, 0x04, 0x22, 0x24, 0x22, 0x24, 0x22, 0x24, 0x49, 0xA4, 0x09, 0x24, 0xFF, 0xA4, 0x08, 0x24, 0x1C, 0x24, 0x2B, 0x24, 0x49, 0x04, 0x88, 0x04, 0x08, 0x14, 0x08, 0x08, 0x10, 0x80, 0x10, 0x84, 0x17, 0xFE, 0x11, 0x00, 0x59, 0xFC, 0x56, 0x20, 0x53, 0xFE, 0x94, 0x04, 0x19, 0xFE, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x14, 0x11, 0x08, 0x00, 0x44, 0x7B, 0xFE, 0x48, 0x88, 0x49, 0xFC, 0x52, 0x88, 0x4C, 0xF8, 0x48, 0x88, 0x68, 0xF8, 0x50, 0x88, 0x41, 0x98, 0x41, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x10, 0x10, 0xD4, 0x13, 0x92, 0x10, 0x90, 0x7C, 0x90, 0x57, 0xFE, 0x54, 0x90, 0x54, 0x90, 0x54, 0xD4, 0x57, 0x98, 0x7C, 0x90, 0x50, 0xA8, 0x14, 0xC8, 0x1C, 0x8A, 0xF2, 0x86, 0x41, 0x02, 0x10, 0x10, 0x10, 0xD0, 0x13, 0x94, 0x54, 0x92, 0x54, 0x90, 0x57, 0xFE, 0x54, 0x90, 0x54, 0x90, 0x54, 0xD4, 0x57, 0x98, 0x54, 0x90, 0x54, 0xA8, 0x5C, 0xC8, 0x74, 0x8A, 0x42, 0x86, 0x01, 0x02, 0x08, 0x20, 0x38, 0x48, 0xEC, 0xFC, 0x2A, 0x88, 0x28, 0xA8, 0xFE, 0x88, 0x28, 0xA8, 0x28, 0x90, 0x38, 0x80, 0xEA, 0xFE, 0x2C, 0x02, 0x28, 0x12, 0x35, 0xFA, 0x24, 0x02, 0xA5, 0x14, 0x42, 0x08, 0x08, 0x20, 0x09, 0xA8, 0x0F, 0x24, 0x11, 0x20, 0x11, 0x24, 0x3F, 0xFE, 0x51, 0x20, 0x91, 0x20, 0x11, 0xA4, 0x13, 0x18, 0x1D, 0x10, 0x11, 0x30, 0x11, 0x48, 0x11, 0x8A, 0x15, 0x06, 0x12, 0x02, 0x10, 0x04, 0x08, 0xFE, 0x7F, 0x10, 0x41, 0x24, 0x92, 0x7E, 0x1E, 0x44, 0x22, 0x54, 0x54, 0x54, 0x08, 0x54, 0x14, 0x54, 0x22, 0x54, 0x7F, 0x54, 0xA2, 0x10, 0x22, 0x28, 0x3E, 0x46, 0x20, 0x82, 0x01, 0x20, 0x41, 0x20, 0x31, 0x20, 0x11, 0x24, 0x01, 0x2C, 0x03, 0x30, 0xF5, 0x20, 0x19, 0x60, 0x11, 0xA0, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x15, 0x22, 0x19, 0x22, 0x11, 0x1E, 0x01, 0x00, 0x10, 0x10, 0x10, 0xD0, 0x13, 0x94, 0x10, 0x92, 0xFC, 0x90, 0x27, 0xFE, 0x24, 0x90, 0x24, 0x90, 0x24, 0xD4, 0x45, 0x98, 0x2A, 0x90, 0x10, 0xA8, 0x28, 0xC8, 0x44, 0x8A, 0x86, 0x86, 0x01, 0x02, 0x00, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x24, 0x48, 0x14, 0x58, 0x14, 0x60, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x2A, 0x10, 0x29, 0x88, 0x28, 0xA4, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x00, 0x20, 0x00, 0x20, 0x20, 0x27, 0xF0, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0xA0, 0x24, 0x40, 0x24, 0x00, 0x24, 0x04, 0x24, 0x04, 0x43, 0xFC, 0x80, 0x00, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x00, 0xFE, 0x08, 0x12, 0xFC, 0x16, 0x88, 0x1A, 0x88, 0x32, 0x88, 0xD2, 0xA8, 0x12, 0x90, 0x12, 0x80, 0x12, 0x82, 0x14, 0x82, 0x58, 0x7E, 0x20, 0x00, 0x00, 0x10, 0x47, 0xF8, 0x24, 0x10, 0x27, 0xF0, 0x04, 0x10, 0x07, 0xF0, 0xE2, 0x08, 0x25, 0xFC, 0x2C, 0x88, 0x34, 0x88, 0x25, 0x48, 0x24, 0x28, 0x27, 0xD0, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x77, 0x7C, 0x55, 0x44, 0x55, 0x44, 0x77, 0x48, 0x00, 0x48, 0x7F, 0x50, 0x00, 0x48, 0xFF, 0xC4, 0x10, 0x42, 0x22, 0x42, 0x3F, 0x62, 0x02, 0x54, 0x02, 0x48, 0x12, 0x40, 0x0C, 0x40, 0x20, 0x10, 0x20, 0xD0, 0x23, 0x94, 0x3C, 0x92, 0x24, 0x90, 0x4B, 0xFE, 0x40, 0x90, 0xA0, 0x90, 0x20, 0xD4, 0x21, 0x98, 0x22, 0x90, 0x20, 0xA8, 0x28, 0xC8, 0x30, 0x8A, 0x22, 0x86, 0x01, 0x02, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x48, 0x2F, 0xE8, 0x21, 0x08, 0x22, 0x88, 0x24, 0x68, 0x28, 0x28, 0x3F, 0xF8, 0x20, 0x08, 0x02, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x04, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54, 0x40, 0x08, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x42, 0x40, 0x3E, 0x80, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x24, 0x08, 0x3E, 0xFF, 0xE0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x08, 0x00, 0x0C, 0x00, 0x08, 0x08, 0x1F, 0xFC, 0x20, 0x08, 0x41, 0x10, 0x81, 0x00, 0x01, 0x00, 0x09, 0x40, 0x09, 0x20, 0x11, 0x10, 0x11, 0x18, 0x21, 0x08, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x20, 0x08, 0x23, 0xFC, 0x21, 0x08, 0x3D, 0x08, 0x25, 0xF8, 0x49, 0x08, 0x41, 0x08, 0xA1, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x27, 0xFE, 0x20, 0x08, 0x28, 0x08, 0x30, 0x08, 0x20, 0x08, 0x00, 0x08, 0x00, 0x08, 0x47, 0xFC, 0x32, 0x08, 0x12, 0x08, 0x83, 0xF8, 0x62, 0x08, 0x22, 0x08, 0x0B, 0xF8, 0x12, 0x08, 0x22, 0x08, 0xE2, 0x08, 0x2F, 0xFE, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x24, 0xFF, 0xFE, 0x00, 0x20, 0x3F, 0xA0, 0x00, 0x20, 0x7F, 0xE0, 0x00, 0x20, 0x3F, 0xA0, 0x20, 0x90, 0x24, 0x90, 0x24, 0x90, 0x24, 0x92, 0x0A, 0x0A, 0x11, 0x8A, 0x60, 0x84, 0x01, 0x00, 0x11, 0x20, 0x11, 0x10, 0x21, 0x04, 0x7F, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x07, 0xF0, 0x06, 0x10, 0x0A, 0x20, 0x09, 0x40, 0x10, 0x80, 0x21, 0x40, 0x42, 0x30, 0x8C, 0x0E, 0x30, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x20, 0x00, 0x18, 0x08, 0x08, 0x88, 0x00, 0x88, 0xF0, 0x88, 0x10, 0x88, 0x12, 0x88, 0x14, 0x88, 0x18, 0x08, 0x10, 0x28, 0x00, 0x10, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x00, 0x80, 0x08, 0x90, 0x08, 0x88, 0x10, 0xFE, 0x37, 0x80, 0x50, 0x50, 0x90, 0x50, 0x10, 0x20, 0x10, 0x60, 0x10, 0x92, 0x13, 0x0A, 0x10, 0x06, 0x08, 0x80, 0x08, 0xA0, 0x08, 0x98, 0x10, 0x88, 0x10, 0x80, 0x30, 0xFC, 0x57, 0x80, 0x90, 0x88, 0x10, 0x88, 0x10, 0x50, 0x10, 0x60, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x12, 0x16, 0x0A, 0x10, 0x06, 0x00, 0x10, 0x00, 0x78, 0x7F, 0x80, 0x04, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3F, 0xF8, 0x00, 0x10, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x08, 0x00, 0x30, 0x00, 0x48, 0x06, 0x07, 0xFC, 0x00, 0x00, 0x20, 0x04, 0x17, 0xFE, 0x10, 0x04, 0x45, 0x44, 0x45, 0x24, 0x49, 0x04, 0x49, 0xF4, 0x5F, 0x04, 0x69, 0x24, 0x48, 0xC4, 0x48, 0x84, 0x49, 0x44, 0x4A, 0x54, 0x48, 0x34, 0x48, 0x04, 0x40, 0x0C, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x48, 0x87, 0xFC, 0x60, 0x40, 0x20, 0x40, 0x08, 0x44, 0x17, 0xFE, 0x20, 0x40, 0xE0, 0x40, 0x20, 0x80, 0x21, 0x10, 0x22, 0x08, 0x27, 0xFC, 0x20, 0x04, 0x00, 0x40, 0x10, 0x40, 0xF8, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x20, 0x40, 0x20, 0x40, 0xF8, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x80, 0x39, 0x08, 0xE2, 0x04, 0x47, 0xFE, 0x00, 0x02, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x4F, 0xF8, 0x24, 0x90, 0x22, 0xA0, 0x8F, 0xFC, 0x62, 0xA0, 0x2A, 0x90, 0x14, 0x8E, 0x2F, 0xF4, 0xE4, 0x90, 0x27, 0xF0, 0x24, 0x90, 0x27, 0xF0, 0x24, 0x10, 0x10, 0x08, 0x10, 0xFC, 0x14, 0x88, 0x7E, 0x88, 0x54, 0x88, 0x54, 0xC8, 0x54, 0xA8, 0x54, 0xA8, 0x54, 0x88, 0x54, 0x88, 0x5C, 0x88, 0x54, 0x88, 0x11, 0x0A, 0x11, 0x0A, 0x12, 0x06, 0x14, 0x00, 0x00, 0x78, 0x3F, 0x80, 0x11, 0x10, 0x0D, 0x30, 0x05, 0x44, 0xFF, 0xFE, 0x09, 0x20, 0x11, 0x10, 0x3F, 0xFE, 0xD1, 0x14, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x0E, 0x04, 0xF1, 0xDE, 0x54, 0x44, 0x38, 0x44, 0xFE, 0x44, 0x11, 0x54, 0x54, 0xCC, 0x92, 0x44, 0x7C, 0x44, 0x54, 0xCC, 0x55, 0x54, 0x7C, 0x44, 0x54, 0x44, 0x54, 0x44, 0x7D, 0x54, 0x44, 0x88, 0x10, 0x10, 0x14, 0x50, 0x12, 0x94, 0xFD, 0x7E, 0x12, 0x90, 0x38, 0x38, 0x56, 0xD4, 0x91, 0x12, 0x12, 0x90, 0x14, 0x50, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x40, 0x18, 0x3C, 0x60, 0x08, 0x08, 0x10, 0xFD, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x21, 0x10, 0x29, 0x90, 0x7D, 0x50, 0xA9, 0x50, 0x29, 0x10, 0x29, 0x10, 0x29, 0x10, 0x29, 0x10, 0x3A, 0x12, 0x2A, 0x12, 0x04, 0x0E, 0x08, 0x00, 0x10, 0x10, 0x11, 0xF8, 0x3D, 0x10, 0x21, 0x10, 0x41, 0x10, 0xFD, 0x90, 0x11, 0x50, 0x11, 0x50, 0xFD, 0x10, 0x11, 0x10, 0x11, 0x10, 0x15, 0x10, 0x1A, 0x12, 0x12, 0x12, 0x04, 0x0E, 0x08, 0x00, 0x22, 0x20, 0x3F, 0x24, 0x40, 0x7E, 0xBE, 0xC4, 0x2A, 0x28, 0xFF, 0x90, 0x2A, 0x2E, 0x3E, 0xC4, 0x02, 0x20, 0x1F, 0xC0, 0x01, 0x80, 0x06, 0x10, 0x3F, 0xF8, 0x09, 0x20, 0x19, 0x18, 0x22, 0x08, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0A, 0x20, 0x09, 0x20, 0x09, 0xA0, 0x08, 0xA0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x22, 0x10, 0x22, 0x10, 0x22, 0x20, 0x1E, 0x40, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x40, 0x14, 0x88, 0x59, 0xFC, 0x51, 0x08, 0x51, 0x28, 0x91, 0x28, 0x11, 0x28, 0x11, 0x48, 0x11, 0x48, 0x29, 0x48, 0x24, 0x80, 0x44, 0x90, 0x81, 0x0C, 0x02, 0x04, 0x00, 0x10, 0x00, 0x78, 0x3F, 0x80, 0x20, 0x00, 0x20, 0x00, 0x3F, 0xF8, 0x24, 0x08, 0x24, 0x10, 0x22, 0x10, 0x22, 0x20, 0x21, 0x40, 0x20, 0x80, 0x41, 0x40, 0x42, 0x30, 0x84, 0x0E, 0x18, 0x04, 0x00, 0x08, 0x40, 0x1C, 0x33, 0xE0, 0x12, 0x00, 0x02, 0x00, 0x02, 0xF8, 0xF2, 0x08, 0x12, 0x90, 0x12, 0x50, 0x12, 0x20, 0x12, 0x50, 0x14, 0x8C, 0x15, 0x04, 0x28, 0x00, 0x44, 0x06, 0x03, 0xFC, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x20, 0x10, 0x1B, 0xF8, 0x4A, 0x10, 0x22, 0x10, 0x22, 0x10, 0x0A, 0x50, 0xF2, 0x20, 0x22, 0x00, 0x22, 0x02, 0x22, 0x02, 0x21, 0xFE, 0x20, 0x00, 0x04, 0x08, 0x7E, 0x1C, 0x45, 0xE0, 0x55, 0x00, 0x55, 0x00, 0x55, 0xFC, 0x55, 0x04, 0x55, 0x48, 0x55, 0x48, 0x55, 0x50, 0x55, 0x30, 0x55, 0x20, 0x11, 0x50, 0x2A, 0x48, 0x44, 0x8E, 0x81, 0x04, 0x02, 0x00, 0x44, 0x08, 0x29, 0xFC, 0x11, 0x08, 0x29, 0x08, 0x49, 0x08, 0x89, 0x08, 0x09, 0x08, 0x19, 0x28, 0x29, 0x10, 0x49, 0x00, 0x89, 0x00, 0x09, 0x02, 0x09, 0x02, 0x50, 0xFE, 0x20, 0x00, 0x20, 0x08, 0x20, 0x1C, 0x21, 0xE0, 0x3D, 0x00, 0x25, 0x00, 0x49, 0xFC, 0x41, 0x04, 0xA1, 0x48, 0x21, 0x48, 0x21, 0x50, 0x21, 0x30, 0x25, 0x20, 0x29, 0x50, 0x32, 0x48, 0x24, 0x8E, 0x09, 0x04, 0x00, 0x10, 0x40, 0x38, 0x37, 0xC0, 0x10, 0x80, 0x80, 0x40, 0x40, 0x40, 0x47, 0xFC, 0x10, 0x08, 0x10, 0x30, 0x20, 0x40, 0xE0, 0x80, 0x21, 0x00, 0x26, 0x00, 0x29, 0x06, 0x20, 0xFC, 0x20, 0x00, 0x10, 0x80, 0x10, 0x40, 0x10, 0x40, 0x10, 0x04, 0x13, 0xFE, 0xFC, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x10, 0x88, 0x10, 0x88, 0x1C, 0x88, 0xF0, 0x88, 0x41, 0x08, 0x01, 0x08, 0x02, 0x50, 0x04, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x0A, 0x20, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x10, 0x07, 0xF8, 0x04, 0x10, 0x04, 0x10, 0x08, 0x10, 0x08, 0x10, 0x10, 0xA0, 0x20, 0x40, 0x04, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x10, 0x07, 0xF8, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x08, 0x10, 0x08, 0x10, 0x10, 0x10, 0x20, 0xA0, 0x40, 0x40, 0x04, 0x80, 0x3E, 0x40, 0x24, 0x40, 0x24, 0x04, 0x27, 0xFE, 0x3C, 0x80, 0x24, 0x88, 0x24, 0xFC, 0x24, 0x88, 0x3C, 0x88, 0x24, 0x88, 0x24, 0x88, 0x25, 0x08, 0x25, 0x08, 0x4E, 0x50, 0x84, 0x20, 0x02, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x21, 0x00, 0x20, 0x84, 0x3F, 0xFE, 0x22, 0x00, 0x22, 0x10, 0x23, 0xF8, 0x22, 0x10, 0x44, 0x10, 0x44, 0x10, 0x88, 0xA0, 0x10, 0x40, 0x00, 0x80, 0x7C, 0x40, 0x44, 0x40, 0x48, 0x04, 0x4F, 0xFE, 0x50, 0x80, 0x48, 0x88, 0x48, 0xFC, 0x44, 0x88, 0x44, 0x88, 0x44, 0x88, 0x68, 0x88, 0x51, 0x08, 0x41, 0x08, 0x42, 0x50, 0x44, 0x20, 0x10, 0x80, 0x10, 0x40, 0x10, 0x40, 0x10, 0x04, 0xFF, 0xFE, 0x24, 0x80, 0x24, 0x88, 0x24, 0xFC, 0x24, 0x88, 0x44, 0x88, 0x28, 0x88, 0x10, 0x88, 0x29, 0x08, 0x45, 0x08, 0x82, 0x50, 0x04, 0x20, 0x08, 0x80, 0x08, 0x40, 0x08, 0x40, 0x10, 0x04, 0x17, 0xFE, 0x30, 0x80, 0x50, 0x88, 0x90, 0xFC, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x11, 0x08, 0x11, 0x08, 0x12, 0x50, 0x14, 0x20, 0x00, 0x80, 0x20, 0x40, 0x10, 0x40, 0x10, 0x04, 0x07, 0xFE, 0x00, 0x80, 0xF0, 0x88, 0x10, 0xFC, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x15, 0x08, 0x19, 0x08, 0x12, 0x50, 0x04, 0x20, 0x10, 0x80, 0x10, 0x40, 0x20, 0x40, 0x20, 0x04, 0x47, 0xFE, 0xFC, 0x80, 0x10, 0x88, 0x20, 0xFC, 0x40, 0x88, 0xFC, 0x88, 0x40, 0x88, 0x00, 0x88, 0x1D, 0x08, 0xE1, 0x08, 0x42, 0x50, 0x04, 0x20, 0x20, 0x40, 0x10, 0x40, 0x10, 0x40, 0x00, 0x84, 0xFF, 0xFE, 0x20, 0x08, 0x24, 0x88, 0x3E, 0x88, 0x24, 0x50, 0x24, 0x50, 0x24, 0x20, 0x24, 0x50, 0x44, 0x50, 0x54, 0x88, 0x89, 0x0E, 0x02, 0x04, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x40, 0x04, 0x48, 0x7C, 0x7C, 0x04, 0x40, 0x04, 0x48, 0x7C, 0x7C, 0x04, 0x40, 0x04, 0x44, 0xFC, 0x7E, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFC, 0x7E, 0x04, 0x40, 0x04, 0x40, 0x04, 0x48, 0x7C, 0x7C, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFC, 0x7E, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x00, 0x90, 0x08, 0x90, 0x7C, 0x94, 0x4F, 0x9E, 0x48, 0x90, 0x48, 0x90, 0x48, 0x94, 0x4F, 0x9E, 0x48, 0x90, 0x48, 0x90, 0x48, 0x90, 0x78, 0x94, 0x4F, 0x9E, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x20, 0xFF, 0xF0, 0x00, 0x20, 0x00, 0x24, 0x00, 0x2C, 0x00, 0x30, 0x00, 0x20, 0x00, 0x30, 0x00, 0x2C, 0x00, 0x24, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, 0x00, 0x12, 0x00, 0x0A, 0x00, 0x04, 0x04, 0x04, 0x7F, 0xFE, 0x45, 0x24, 0x45, 0x24, 0x45, 0x24, 0x7D, 0x24, 0x45, 0x24, 0x45, 0xFC, 0x45, 0x04, 0x7D, 0x00, 0x45, 0x00, 0x45, 0x02, 0x45, 0x02, 0x45, 0x02, 0x54, 0xFE, 0x88, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x42, 0x40, 0x42, 0x50, 0x5E, 0x78, 0x42, 0x40, 0x42, 0x50, 0x5E, 0x78, 0x42, 0x40, 0x42, 0x48, 0x7E, 0x7C, 0x42, 0x40, 0x42, 0x40, 0x42, 0x44, 0x7F, 0xFE, 0x00, 0x00, 0x20, 0x90, 0x10, 0x90, 0x10, 0x94, 0x07, 0x9E, 0x00, 0x90, 0xF0, 0x90, 0x10, 0x90, 0x13, 0x9C, 0x10, 0x90, 0x10, 0x90, 0x10, 0x94, 0x17, 0x9E, 0x14, 0x90, 0x18, 0x90, 0x10, 0x90, 0x00, 0x90, 0x00, 0x40, 0x08, 0x50, 0x7C, 0x48, 0x48, 0x48, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0xA0, 0x48, 0xA0, 0x49, 0x10, 0x79, 0x10, 0x4A, 0x08, 0x02, 0x0E, 0x04, 0x04, 0x08, 0x00, 0x04, 0x20, 0x3E, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x3C, 0x24, 0x25, 0xFE, 0x25, 0x24, 0x25, 0x24, 0x3D, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0x2C, 0x24, 0x20, 0x54, 0x20, 0x88, 0x20, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x80, 0x24, 0x90, 0x24, 0x88, 0x2F, 0xFE, 0x21, 0x00, 0x23, 0xF8, 0x22, 0x08, 0x25, 0x10, 0x24, 0xA0, 0x28, 0x40, 0x30, 0xB0, 0x43, 0x0E, 0x8C, 0x04, 0x01, 0x20, 0x41, 0x24, 0x2F, 0xFE, 0x21, 0x24, 0x01, 0x24, 0x8F, 0xFC, 0x49, 0x24, 0x09, 0x20, 0x1F, 0xFE, 0x29, 0x22, 0xE1, 0x22, 0x21, 0x2A, 0x22, 0x24, 0x22, 0x20, 0x24, 0x20, 0x28, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x48, 0x7F, 0xF8, 0x44, 0x40, 0x7F, 0xFE, 0x04, 0x42, 0x08, 0x4A, 0x3F, 0xF4, 0xD0, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x80, 0x04, 0x80, 0x08, 0x40, 0x10, 0x30, 0x20, 0x0E, 0xCF, 0xE4, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x08, 0x20, 0x10, 0xA0, 0x20, 0x40, 0x04, 0x08, 0xFE, 0x48, 0x28, 0x48, 0x28, 0x48, 0xFE, 0x84, 0xAA, 0x84, 0xAB, 0x02, 0xAE, 0xFC, 0xC2, 0x44, 0x82, 0x44, 0xFE, 0x44, 0x82, 0x44, 0x82, 0x44, 0xFE, 0x44, 0x82, 0x94, 0x01, 0x08, 0x00, 0x20, 0x08, 0xA0, 0x7C, 0xA0, 0x48, 0x90, 0x48, 0x90, 0x49, 0x08, 0x49, 0x0E, 0x4A, 0x04, 0x4D, 0xF8, 0x48, 0x88, 0x48, 0x88, 0x78, 0x88, 0x49, 0x08, 0x01, 0x08, 0x02, 0x28, 0x04, 0x10, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x01, 0x08, 0x09, 0x08, 0x08, 0x88, 0x10, 0x48, 0x3F, 0xB8, 0x48, 0xA8, 0x08, 0x88, 0x08, 0x8A, 0x12, 0x8A, 0x21, 0x04, 0x00, 0x80, 0x04, 0x80, 0x04, 0x40, 0x08, 0x40, 0x08, 0x20, 0x10, 0x10, 0x20, 0x08, 0x4F, 0xEE, 0x84, 0x24, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x08, 0x20, 0x11, 0x40, 0x20, 0x80, 0x10, 0x20, 0x10, 0xA0, 0x20, 0xA0, 0x20, 0x90, 0x48, 0x90, 0xF9, 0x08, 0x11, 0x0E, 0x22, 0x04, 0x45, 0xF8, 0xF8, 0x88, 0x40, 0x88, 0x00, 0x88, 0x19, 0x08, 0xE1, 0x08, 0x42, 0x28, 0x04, 0x10, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x10, 0x04, 0x13, 0xFE, 0xFC, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x48, 0x10, 0x50, 0x1C, 0x20, 0xF0, 0x50, 0x40, 0x88, 0x01, 0x0E, 0x06, 0x04, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFE, 0xFE, 0x18, 0x60, 0x2C, 0xB8, 0x4B, 0x24, 0x08, 0x20, 0x01, 0x10, 0x11, 0x30, 0x09, 0x40, 0x0A, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x00, 0x20, 0x41, 0x20, 0x31, 0x20, 0x11, 0x10, 0x82, 0x10, 0x64, 0x0E, 0x28, 0x04, 0x07, 0xF0, 0x11, 0x10, 0x21, 0x10, 0xE1, 0x10, 0x21, 0x10, 0x22, 0x10, 0x22, 0x10, 0x24, 0xA0, 0x28, 0x40, 0x10, 0x20, 0x10, 0xA0, 0x10, 0xA0, 0x54, 0x90, 0x38, 0x90, 0x11, 0x08, 0xFD, 0x0E, 0x12, 0x04, 0x39, 0xF8, 0x34, 0x88, 0x50, 0x88, 0x90, 0x88, 0x11, 0x08, 0x11, 0x08, 0x12, 0x28, 0x14, 0x10, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x30, 0x1E, 0xDF, 0xF4, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x08, 0x20, 0x09, 0x20, 0x09, 0x20, 0x11, 0x10, 0x12, 0x10, 0x32, 0x0E, 0x54, 0x04, 0x9B, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x10, 0x14, 0xA0, 0x10, 0x40, 0x00, 0x80, 0x04, 0x80, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x24, 0x2E, 0xC4, 0x24, 0x09, 0x20, 0x30, 0xC0, 0x00, 0x00, 0x2A, 0x10, 0x29, 0x88, 0x28, 0xA4, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x00, 0x10, 0x40, 0x10, 0x50, 0x13, 0xF8, 0x10, 0x40, 0x59, 0x54, 0x57, 0xFE, 0x51, 0x10, 0x93, 0xF8, 0x12, 0x08, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x10, 0xA0, 0x11, 0x18, 0x16, 0x08, 0x11, 0x10, 0x0D, 0x30, 0x05, 0x40, 0x7F, 0xFC, 0x03, 0x80, 0x05, 0x40, 0x19, 0x3C, 0x04, 0x48, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x08, 0x20, 0x18, 0x18, 0x20, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x08, 0x08, 0x08, 0x0A, 0x08, 0x7F, 0x08, 0x08, 0x08, 0x0A, 0xFE, 0xFF, 0x08, 0x08, 0x08, 0x0A, 0x48, 0x7F, 0x28, 0x08, 0x28, 0x08, 0x08, 0x0F, 0x08, 0x78, 0x08, 0x20, 0x28, 0x00, 0x10, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0xFE, 0x08, 0x12, 0x08, 0x3B, 0x18, 0x36, 0xA8, 0x52, 0x48, 0x52, 0x48, 0x92, 0xA8, 0x13, 0x18, 0x12, 0x08, 0x14, 0x0A, 0x14, 0x0A, 0x18, 0x06, 0x10, 0x80, 0x10, 0x80, 0x10, 0xFC, 0x15, 0x88, 0x7E, 0x50, 0x54, 0x20, 0x54, 0xDE, 0x57, 0x24, 0x54, 0xF8, 0x7C, 0x20, 0x51, 0xFC, 0x14, 0x20, 0x1D, 0xFC, 0xE4, 0x20, 0x40, 0x20, 0x00, 0x20, 0x10, 0x80, 0x10, 0x80, 0x10, 0xFC, 0x11, 0x88, 0x56, 0x50, 0x54, 0x20, 0x54, 0xDE, 0x57, 0x24, 0x54, 0xF8, 0x54, 0x20, 0x55, 0xFC, 0x5C, 0x20, 0x65, 0xFC, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x10, 0x80, 0x10, 0x80, 0x10, 0xFC, 0x1D, 0x88, 0x22, 0x50, 0x20, 0x20, 0x7C, 0xDE, 0x93, 0x24, 0x10, 0xF8, 0xFC, 0x20, 0x11, 0xFC, 0x10, 0x20, 0x15, 0xFC, 0x18, 0x20, 0x10, 0x20, 0x00, 0x20, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x28, 0x50, 0x24, 0x50, 0x22, 0x90, 0x22, 0x90, 0x21, 0x10, 0x21, 0x10, 0x22, 0x90, 0x22, 0x90, 0x24, 0x50, 0x28, 0x50, 0x30, 0x12, 0x40, 0x0A, 0x80, 0x06, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x08, 0x97, 0xFC, 0x54, 0x08, 0x56, 0x18, 0x15, 0x18, 0x34, 0xA8, 0x54, 0x48, 0xD4, 0x48, 0x14, 0xA8, 0x25, 0x18, 0x2A, 0x1A, 0x48, 0x0A, 0x10, 0x06, 0x10, 0x80, 0x10, 0x80, 0x10, 0xFC, 0x15, 0x88, 0x5A, 0x50, 0x50, 0x20, 0x50, 0xDE, 0x93, 0x24, 0x10, 0xF8, 0x10, 0x20, 0x29, 0xFC, 0x24, 0x20, 0x45, 0xFC, 0x40, 0x20, 0x80, 0x20, 0x00, 0x20, 0x00, 0x80, 0x41, 0xFC, 0x23, 0x08, 0x24, 0xB0, 0x00, 0x40, 0x01, 0xB0, 0xEE, 0x4E, 0x20, 0x40, 0x27, 0xFC, 0x20, 0x40, 0x23, 0xF8, 0x20, 0x40, 0x27, 0xFC, 0x20, 0x40, 0x50, 0x46, 0x8F, 0xFC, 0x00, 0x10, 0x47, 0xF8, 0x30, 0x10, 0x12, 0x10, 0x02, 0x10, 0x0A, 0x10, 0x12, 0x10, 0x12, 0x14, 0x23, 0xFE, 0xE0, 0x04, 0x20, 0x24, 0x2F, 0xF4, 0x20, 0x04, 0x20, 0x04, 0x20, 0x28, 0x20, 0x10, 0x10, 0x40, 0x10, 0x7C, 0x24, 0x88, 0x23, 0x50, 0x4A, 0x20, 0xF8, 0xD8, 0x17, 0x26, 0x22, 0xF8, 0x42, 0x20, 0xFA, 0xF8, 0x42, 0x20, 0x03, 0xFC, 0x1A, 0x20, 0xE2, 0x20, 0x45, 0x26, 0x08, 0xFC, 0x00, 0x08, 0x47, 0xFC, 0x24, 0x08, 0x24, 0x08, 0x06, 0x18, 0x05, 0x18, 0xE4, 0xA8, 0x24, 0x48, 0x24, 0x48, 0x24, 0xA8, 0x25, 0x18, 0x2E, 0x18, 0x34, 0x08, 0x24, 0x0A, 0x08, 0x0A, 0x10, 0x06, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x31, 0x1E, 0xCF, 0xE4, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x20, 0x10, 0x2F, 0xF0, 0x20, 0x50, 0x28, 0x50, 0x24, 0x90, 0x22, 0x90, 0x21, 0x10, 0x22, 0x90, 0x24, 0xD0, 0x28, 0x50, 0x20, 0x12, 0x40, 0x0A, 0x80, 0x06, 0x10, 0x40, 0x12, 0x40, 0x12, 0x48, 0x2F, 0xFC, 0x22, 0x48, 0x62, 0x48, 0xAF, 0xF8, 0x2A, 0x40, 0x2A, 0x44, 0x2F, 0xFE, 0x22, 0x44, 0x22, 0x44, 0x22, 0x54, 0x24, 0x48, 0x28, 0x40, 0x20, 0x40, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x05, 0x60, 0x09, 0x18, 0x31, 0x06, 0xC1, 0x12, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x04, 0x40, 0x08, 0x30, 0x10, 0x0E, 0x60, 0x04, 0x08, 0x20, 0xFF, 0xA0, 0x08, 0x20, 0x7F, 0x24, 0x49, 0x7E, 0x7F, 0x84, 0x49, 0x44, 0x7F, 0x44, 0x49, 0x28, 0x08, 0x28, 0xFF, 0x90, 0x10, 0x10, 0x1E, 0x28, 0x12, 0x48, 0x22, 0x86, 0x47, 0x04, 0x04, 0x20, 0x3E, 0x20, 0x24, 0x28, 0x25, 0xFC, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x50, 0x24, 0x50, 0x24, 0x88, 0x24, 0x88, 0x4D, 0x06, 0x86, 0x04, 0x10, 0x0C, 0x20, 0xF0, 0x57, 0x02, 0x55, 0x54, 0x55, 0x54, 0x55, 0x00, 0x77, 0x7C, 0x55, 0x08, 0x55, 0x10, 0x55, 0x14, 0x77, 0xFE, 0x14, 0x10, 0x24, 0x10, 0x24, 0x10, 0x44, 0x50, 0x84, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x28, 0x11, 0xFC, 0xFC, 0x20, 0x10, 0x20, 0x14, 0x24, 0x1B, 0xFE, 0x30, 0x20, 0xD0, 0x20, 0x10, 0x50, 0x10, 0x50, 0x10, 0x88, 0x10, 0x88, 0x51, 0x06, 0x26, 0x04, 0x10, 0x20, 0x11, 0x20, 0x11, 0x24, 0x17, 0xFE, 0xF9, 0x24, 0x11, 0x24, 0x17, 0xFC, 0x1D, 0x24, 0x35, 0x20, 0xD7, 0xFE, 0x11, 0x22, 0x11, 0x22, 0x11, 0x2A, 0x12, 0x24, 0x54, 0x20, 0x20, 0x20, 0x10, 0x08, 0x17, 0xFC, 0x20, 0x00, 0xFB, 0xF8, 0x22, 0x08, 0x52, 0x08, 0x53, 0xF8, 0xF8, 0x04, 0x17, 0xFE, 0x14, 0x44, 0xFC, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x14, 0x04, 0x10, 0x08, 0x11, 0xFC, 0x14, 0x00, 0x7E, 0xF8, 0x54, 0x88, 0x54, 0x88, 0x54, 0xF8, 0x54, 0x04, 0x55, 0xFE, 0x55, 0x24, 0x55, 0x24, 0x5D, 0xFC, 0x11, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x0A, 0x08, 0x7F, 0xC8, 0x0A, 0x48, 0x7F, 0xC8, 0x4A, 0x08, 0x7F, 0xE8, 0x0A, 0x28, 0x0A, 0xAA, 0x12, 0x4A, 0x62, 0x04, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x88, 0x10, 0x08, 0x14, 0x17, 0xFE, 0x30, 0x10, 0x52, 0x10, 0x91, 0x10, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x08, 0x40, 0x08, 0x40, 0x08, 0x50, 0x10, 0x4C, 0x10, 0x44, 0x3F, 0xFE, 0x50, 0x40, 0x90, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x11, 0x10, 0x12, 0x08, 0x14, 0x0E, 0x18, 0x04, 0x10, 0x08, 0x10, 0x3C, 0x17, 0xC0, 0x20, 0x08, 0x22, 0x48, 0x62, 0x50, 0xA0, 0x00, 0x27, 0xF8, 0x20, 0x20, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x21, 0x40, 0x20, 0x80, 0x02, 0x08, 0x3F, 0xFC, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x3E, 0x98, 0x22, 0x80, 0x22, 0xFC, 0x22, 0xA4, 0x3E, 0xA4, 0x22, 0xA8, 0x22, 0x90, 0x22, 0xA8, 0x22, 0xA8, 0x4A, 0xC6, 0x84, 0x84, 0x40, 0x08, 0x30, 0x3C, 0x17, 0xC0, 0x00, 0x08, 0x82, 0x48, 0x62, 0x50, 0x20, 0x00, 0x0B, 0xF8, 0x10, 0x20, 0x20, 0x44, 0xEF, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x21, 0x40, 0x20, 0x80, 0x40, 0x80, 0x30, 0x48, 0x17, 0xFC, 0x00, 0x00, 0x81, 0x10, 0x60, 0xA0, 0x20, 0x04, 0x0F, 0xFE, 0x10, 0x08, 0x23, 0xFC, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x20, 0x08, 0x17, 0xFC, 0x10, 0x00, 0x03, 0xF8, 0xFA, 0x08, 0x0A, 0x08, 0x13, 0xF8, 0x38, 0x04, 0x57, 0xFE, 0x94, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x14, 0x04, 0x20, 0x90, 0x10, 0x90, 0x10, 0x94, 0x01, 0x12, 0xFD, 0x10, 0x0B, 0x14, 0x15, 0xFE, 0x31, 0x10, 0x55, 0x10, 0x99, 0x10, 0x15, 0x10, 0x11, 0x28, 0x11, 0x28, 0x11, 0x46, 0x11, 0x84, 0x11, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x48, 0x04, 0x48, 0x7F, 0xF8, 0x44, 0x40, 0x44, 0x44, 0x7F, 0xFE, 0x44, 0x44, 0x04, 0x44, 0x08, 0x54, 0x30, 0x48, 0xC0, 0x40, 0x00, 0x40, 0x01, 0x20, 0x01, 0x14, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x20, 0x10, 0x10, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x40, 0xFC, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x18, 0x40, 0x30, 0x40, 0xD0, 0xA0, 0x10, 0xA0, 0x11, 0x20, 0x11, 0x22, 0x12, 0x22, 0x54, 0x1E, 0x28, 0x00, 0x10, 0x28, 0x10, 0x24, 0x15, 0xFE, 0xFE, 0x20, 0x20, 0x24, 0x29, 0xFE, 0x49, 0x24, 0x7F, 0x24, 0x09, 0xFC, 0x09, 0x24, 0x0F, 0x24, 0xF9, 0xFC, 0x49, 0x24, 0x09, 0x24, 0x09, 0x24, 0x09, 0x0C, 0x10, 0x80, 0x10, 0x44, 0x17, 0xFE, 0x24, 0x80, 0x24, 0x88, 0x64, 0x88, 0xA5, 0x08, 0x25, 0xFE, 0x27, 0x08, 0x25, 0x48, 0x25, 0x28, 0x25, 0x28, 0x29, 0x08, 0x29, 0x08, 0x31, 0x28, 0x21, 0x10, 0x04, 0x40, 0x08, 0x20, 0x14, 0x50, 0x62, 0x8C, 0x01, 0x00, 0x0E, 0xE0, 0x30, 0x1E, 0xDF, 0xF4, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x08, 0x20, 0x34, 0x58, 0x03, 0x80, 0x0C, 0x60, 0x30, 0x1E, 0xC0, 0xE4, 0x1F, 0x00, 0x10, 0x00, 0x10, 0x10, 0x1F, 0xF8, 0x10, 0x80, 0x10, 0x80, 0x20, 0x80, 0x40, 0x80, 0x00, 0x80, 0x00, 0x28, 0x3C, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x24, 0x24, 0x3D, 0xFE, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x3D, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x45, 0x24, 0x8D, 0x0C, 0x08, 0x40, 0x7C, 0x24, 0x4B, 0xFE, 0x4A, 0x40, 0x4A, 0x44, 0x7A, 0x44, 0x4A, 0x84, 0x4A, 0xFE, 0x4B, 0x84, 0x7A, 0xA4, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0x84, 0x5A, 0x84, 0x84, 0x94, 0x08, 0x88, 0x02, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x22, 0x00, 0x22, 0x10, 0x22, 0x10, 0x24, 0x14, 0x27, 0xFE, 0x2C, 0x10, 0x35, 0x10, 0x24, 0x90, 0x24, 0x90, 0x24, 0x10, 0x44, 0x10, 0x84, 0x50, 0x04, 0x20, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x10, 0x22, 0x14, 0x25, 0xFE, 0x2C, 0x90, 0x34, 0x10, 0x24, 0xB4, 0x2F, 0xFE, 0x29, 0x44, 0x2A, 0xA4, 0x48, 0x84, 0x49, 0x44, 0x8A, 0x34, 0x08, 0x08, 0x08, 0x40, 0x08, 0x40, 0x0A, 0x40, 0x7F, 0x40, 0x08, 0x40, 0x0A, 0x60, 0xFF, 0x50, 0x08, 0x4C, 0x28, 0x44, 0x2A, 0x40, 0x2F, 0x40, 0x28, 0x40, 0x28, 0x40, 0x58, 0x40, 0x88, 0x06, 0x07, 0xFC, 0x00, 0x44, 0xFF, 0xE4, 0x00, 0x84, 0x3F, 0xD4, 0x20, 0x94, 0x20, 0x94, 0x3F, 0x94, 0x00, 0x54, 0x7F, 0xF4, 0x44, 0x54, 0x44, 0x54, 0x7F, 0xD4, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xD4, 0x40, 0x48, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x12, 0x00, 0x23, 0xFC, 0x4A, 0x00, 0x17, 0xF8, 0x32, 0x48, 0x53, 0xF8, 0x91, 0x00, 0x13, 0xF8, 0x1D, 0x10, 0x10, 0xE2, 0x17, 0x1C, 0x04, 0x08, 0x7E, 0x08, 0x44, 0x2C, 0x55, 0xFA, 0x54, 0x08, 0x54, 0x08, 0x57, 0xFE, 0x54, 0x48, 0x55, 0x48, 0x55, 0x78, 0x55, 0x48, 0x11, 0x48, 0x29, 0x78, 0x27, 0xCA, 0x45, 0x0A, 0x80, 0x04, 0x10, 0x08, 0x1F, 0xFC, 0x20, 0x00, 0x2F, 0xF0, 0x48, 0x10, 0x8F, 0xF0, 0x08, 0x10, 0x0F, 0xF0, 0x04, 0x00, 0x0F, 0xF0, 0x0C, 0x20, 0x12, 0x40, 0x21, 0x80, 0x42, 0x40, 0x04, 0x30, 0x38, 0x0E, 0x08, 0x50, 0x08, 0x48, 0x0F, 0xFE, 0x10, 0x40, 0x17, 0xFC, 0x34, 0x44, 0x57, 0xFC, 0x94, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x10, 0x10, 0x1F, 0xFE, 0x12, 0x10, 0x11, 0x10, 0x10, 0x50, 0x10, 0x20, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x10, 0x10, 0x10, 0x14, 0x37, 0xFE, 0x50, 0x10, 0x90, 0x10, 0x11, 0x10, 0x10, 0x90, 0x10, 0x90, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x01, 0x00, 0x02, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x11, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x20, 0x0C, 0x40, 0x24, 0x08, 0x20, 0x04, 0x40, 0x04, 0x40, 0x02, 0x80, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x09, 0x04, 0x7D, 0xFE, 0x49, 0x08, 0x4B, 0xFC, 0x4D, 0x08, 0x79, 0xF8, 0x49, 0x08, 0x49, 0xF8, 0x49, 0x00, 0x79, 0xFC, 0x4A, 0x88, 0x4C, 0x50, 0x48, 0x20, 0x48, 0x50, 0x49, 0x8E, 0x9E, 0x04, 0x04, 0x00, 0x04, 0x00, 0x0F, 0xE0, 0x10, 0x40, 0x20, 0x90, 0x5F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x04, 0x30, 0x18, 0x18, 0x60, 0x08, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x22, 0x9F, 0xF4, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x00, 0x40, 0x20, 0x40, 0x18, 0x40, 0x08, 0x40, 0x00, 0x40, 0xF0, 0x50, 0x10, 0x48, 0x10, 0x46, 0x10, 0x42, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x14, 0x40, 0x18, 0x40, 0x10, 0x40, 0x00, 0x40, 0x00, 0x88, 0x7C, 0x88, 0x44, 0x88, 0x49, 0x08, 0x49, 0x08, 0x53, 0xFE, 0x4D, 0x08, 0x49, 0x08, 0x45, 0x48, 0x45, 0x28, 0x45, 0x28, 0x69, 0x08, 0x51, 0x08, 0x41, 0x08, 0x41, 0x28, 0x41, 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0xFC, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x25, 0xFC, 0x48, 0x04, 0x28, 0x04, 0x10, 0x04, 0x28, 0x04, 0x47, 0xFC, 0x84, 0x04, 0x00, 0x00, 0x10, 0x50, 0x10, 0x48, 0x27, 0xFC, 0x20, 0x40, 0x43, 0xF8, 0xFA, 0x48, 0x13, 0xF8, 0x22, 0x48, 0x43, 0xF8, 0xFA, 0x48, 0x40, 0x10, 0x07, 0xFE, 0x1A, 0x10, 0xE1, 0x10, 0x40, 0x10, 0x00, 0x20, 0x00, 0x88, 0x08, 0x88, 0x7C, 0x88, 0x49, 0x08, 0x49, 0x08, 0x4B, 0xFE, 0x4D, 0x08, 0x49, 0x08, 0x49, 0x48, 0x49, 0x28, 0x49, 0x28, 0x79, 0x08, 0x49, 0x08, 0x01, 0x08, 0x01, 0x28, 0x01, 0x10, 0x01, 0x10, 0x0F, 0xFE, 0x79, 0x10, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x49, 0x04, 0x49, 0xFE, 0x4A, 0x44, 0x7C, 0x64, 0x4A, 0x94, 0x02, 0x04, 0x03, 0xE4, 0x00, 0x0C, 0x07, 0xFC, 0x08, 0x80, 0x7F, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x49, 0x40, 0x49, 0x3E, 0x7F, 0xC0, 0x48, 0xA0, 0x00, 0x42, 0x01, 0xB2, 0x0E, 0x0E, 0x01, 0x00, 0x40, 0x84, 0x2F, 0xFE, 0x00, 0x80, 0x01, 0x00, 0x01, 0x10, 0xE2, 0x10, 0x27, 0xE0, 0x20, 0x48, 0x20, 0x48, 0x20, 0x90, 0x25, 0x20, 0x2A, 0x50, 0x30, 0x88, 0x23, 0x04, 0x0C, 0x04, 0x00, 0x80, 0x04, 0x80, 0xFE, 0x80, 0x04, 0x84, 0x04, 0xFE, 0x05, 0x08, 0x7E, 0x88, 0x44, 0x88, 0x40, 0x88, 0x40, 0x50, 0x40, 0x50, 0x40, 0x20, 0x4C, 0x50, 0x70, 0x88, 0x41, 0x0E, 0x06, 0x04, 0x10, 0x00, 0x10, 0x84, 0x17, 0xFE, 0x14, 0x88, 0xFC, 0x88, 0x17, 0xA8, 0x34, 0xA8, 0x3C, 0xBE, 0x57, 0x88, 0x54, 0x10, 0x95, 0x18, 0x15, 0xA8, 0x16, 0xAA, 0x14, 0x4A, 0x10, 0x86, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x20, 0x1C, 0x28, 0x21, 0x3C, 0x21, 0x20, 0x7D, 0x20, 0x91, 0x24, 0x11, 0xFE, 0x7C, 0x04, 0x10, 0x04, 0x10, 0x04, 0x14, 0x04, 0x18, 0x44, 0x10, 0x28, 0x00, 0x10, 0x08, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x41, 0x04, 0x2F, 0xFE, 0x29, 0x10, 0x09, 0x10, 0x8F, 0x50, 0x49, 0x50, 0x49, 0x54, 0x1F, 0x7E, 0x28, 0x10, 0x28, 0x10, 0xCA, 0x20, 0x4B, 0x30, 0x4D, 0x52, 0x48, 0x52, 0x40, 0x8E, 0x41, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x10, 0x20, 0xFC, 0x20, 0x10, 0x20, 0x30, 0x24, 0x3B, 0xFE, 0x54, 0x20, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0xFF, 0xFE, 0x11, 0x08, 0x39, 0x08, 0x35, 0x08, 0x51, 0x08, 0x51, 0xF8, 0x91, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x80, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x08, 0x3D, 0xFC, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x44, 0x20, 0x94, 0x20, 0x08, 0x20, 0x08, 0x00, 0x08, 0x08, 0x09, 0xFC, 0x7E, 0x20, 0x08, 0x20, 0x08, 0x20, 0xFE, 0x24, 0x09, 0xFE, 0x28, 0x20, 0x28, 0x20, 0x2E, 0x20, 0x28, 0x20, 0x28, 0x20, 0x38, 0x20, 0x48, 0x06, 0x87, 0xFC, 0x00, 0x50, 0x00, 0x48, 0x7F, 0xFC, 0x40, 0x40, 0x7F, 0xC0, 0x40, 0x48, 0x5F, 0x48, 0x51, 0x50, 0x51, 0x22, 0x5F, 0x52, 0x90, 0x8E, 0x02, 0x00, 0x29, 0x90, 0x28, 0xAC, 0x48, 0x24, 0x07, 0xE0, 0x08, 0x08, 0x1D, 0xFC, 0xF0, 0x20, 0x10, 0x20, 0x10, 0x20, 0xFC, 0x20, 0x10, 0x24, 0x3B, 0xFE, 0x34, 0x20, 0x50, 0x20, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x00, 0x40, 0x7C, 0x40, 0x04, 0x40, 0x08, 0x84, 0xFF, 0xFE, 0x24, 0x08, 0x24, 0x88, 0x3C, 0x88, 0x24, 0x50, 0x3C, 0x50, 0x24, 0x20, 0x24, 0x50, 0xFE, 0x50, 0x04, 0x88, 0x05, 0x0E, 0x06, 0x04, 0x10, 0x40, 0xFE, 0x78, 0x44, 0xD0, 0x29, 0x20, 0xFE, 0x58, 0x01, 0x86, 0x7C, 0xF8, 0x44, 0x20, 0x7D, 0xFC, 0x44, 0x00, 0x7C, 0xF8, 0x10, 0x88, 0xFE, 0xA8, 0x10, 0xA8, 0x10, 0x58, 0x11, 0x84, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x40, 0x04, 0x48, 0x24, 0x44, 0x64, 0x42, 0x84, 0x41, 0x04, 0x42, 0x84, 0x44, 0x64, 0x48, 0x34, 0x50, 0x14, 0x40, 0x04, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x01, 0x04, 0x7F, 0x84, 0x41, 0x04, 0x41, 0x24, 0x63, 0x24, 0x63, 0x24, 0x55, 0x24, 0x55, 0x24, 0x49, 0x24, 0x55, 0x24, 0x53, 0x24, 0x63, 0x24, 0x41, 0x04, 0x41, 0x04, 0x45, 0x14, 0x42, 0x08, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x1E, 0x04, 0x23, 0x0C, 0x22, 0x8C, 0x7E, 0x54, 0x92, 0x24, 0x12, 0x24, 0x7E, 0x54, 0x12, 0x8C, 0x13, 0x0C, 0x16, 0x04, 0x1A, 0x04, 0x12, 0x14, 0x02, 0x08, 0x20, 0x00, 0x22, 0x00, 0x3F, 0x08, 0x48, 0xFC, 0x48, 0x20, 0x88, 0x20, 0x09, 0x20, 0xFF, 0xA0, 0x08, 0x20, 0x2A, 0x20, 0x2A, 0x20, 0x2A, 0x20, 0x2A, 0x20, 0x3E, 0x24, 0x23, 0xFE, 0x02, 0x00, 0x04, 0x00, 0x3E, 0x08, 0x25, 0xFC, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x44, 0x00, 0x8C, 0x00, 0x20, 0x04, 0x23, 0xFE, 0x22, 0x04, 0x4A, 0x04, 0x4B, 0x0C, 0xF2, 0x8C, 0x12, 0x54, 0x22, 0x24, 0x42, 0x24, 0xFA, 0x54, 0x42, 0x8C, 0x03, 0x0C, 0x1A, 0x04, 0xE2, 0x04, 0x42, 0x14, 0x02, 0x08, 0x01, 0x00, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x48, 0x24, 0x44, 0x44, 0x42, 0x84, 0x41, 0x04, 0x42, 0x84, 0x44, 0x44, 0x48, 0x34, 0x50, 0x14, 0x40, 0x08, 0x41, 0x10, 0x31, 0x10, 0x17, 0xFC, 0x81, 0x10, 0x61, 0x14, 0x2F, 0xFE, 0x01, 0x20, 0x12, 0x10, 0x27, 0xFE, 0xEA, 0x14, 0x22, 0x10, 0x23, 0xF0, 0x22, 0x04, 0x22, 0x04, 0x21, 0xFC, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0xFC, 0x20, 0x10, 0x20, 0x30, 0x20, 0x38, 0x20, 0x54, 0x20, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x20, 0x40, 0x3E, 0x7C, 0x50, 0x90, 0x81, 0x00, 0x7F, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x40, 0x0C, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x11, 0x50, 0x2F, 0xEE, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x40, 0x0C, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x8F, 0xE4, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x30, 0x10, 0x10, 0x0C, 0x30, 0x04, 0x40, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x20, 0x10, 0x24, 0x88, 0x22, 0x44, 0x40, 0x04, 0x11, 0x04, 0x10, 0x88, 0x92, 0x50, 0x55, 0xFC, 0x38, 0x20, 0x10, 0x20, 0xFE, 0x28, 0x11, 0xFC, 0x38, 0x20, 0x34, 0x20, 0x54, 0x24, 0x53, 0xFE, 0x90, 0x00, 0x12, 0xA4, 0x12, 0x92, 0x14, 0x02, 0x10, 0x80, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0xFB, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x1B, 0xF8, 0x30, 0x04, 0xD7, 0xFE, 0x14, 0x04, 0x15, 0xF4, 0x15, 0x14, 0x15, 0xF4, 0x54, 0x04, 0x24, 0x0C, 0x10, 0x40, 0x10, 0x24, 0x1F, 0xFE, 0x20, 0x00, 0x21, 0xF8, 0x7D, 0x08, 0x91, 0x08, 0x11, 0xF8, 0x7C, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0xF4, 0x16, 0x94, 0x1A, 0xF4, 0x12, 0x04, 0x02, 0x0C, 0x08, 0x40, 0x1C, 0x24, 0xF3, 0xFE, 0x10, 0x00, 0x11, 0xF8, 0xFD, 0x08, 0x11, 0x08, 0x39, 0xF8, 0x34, 0x04, 0x53, 0xFE, 0x52, 0x04, 0x92, 0xF4, 0x12, 0x94, 0x12, 0xF4, 0x12, 0x04, 0x12, 0x0C, 0x01, 0x00, 0x11, 0x00, 0x11, 0x10, 0x1F, 0xF8, 0x11, 0x00, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x7F, 0xFC, 0x00, 0x10, 0x1F, 0x90, 0x10, 0x90, 0x10, 0x90, 0x1F, 0x90, 0x00, 0x14, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0x90, 0x10, 0x90, 0x10, 0x90, 0x1F, 0x90, 0x10, 0x10, 0x00, 0x50, 0x00, 0x20, 0x02, 0x20, 0xFF, 0x20, 0x02, 0x20, 0x7A, 0x40, 0x4A, 0x7C, 0x4A, 0x84, 0x7B, 0x28, 0x02, 0x20, 0xFF, 0x20, 0x02, 0x20, 0x7A, 0x20, 0x4A, 0x20, 0x4A, 0x50, 0x7A, 0x50, 0x4A, 0x8E, 0x05, 0x04, 0x10, 0x00, 0x14, 0x04, 0x12, 0xFE, 0x10, 0x44, 0xFC, 0xF4, 0x15, 0x14, 0x16, 0xA4, 0x1C, 0x44, 0x34, 0xA4, 0xD7, 0x1C, 0x15, 0xF4, 0x15, 0x14, 0x15, 0x14, 0x15, 0xF4, 0x55, 0x14, 0x24, 0x08, 0x04, 0x00, 0x04, 0x80, 0x04, 0x40, 0x04, 0x04, 0x04, 0xFE, 0xFF, 0x00, 0x04, 0x00, 0x04, 0x20, 0x04, 0x30, 0x02, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x44, 0x70, 0x34, 0x00, 0x0C, 0x10, 0x20, 0x10, 0x48, 0x29, 0xFC, 0x29, 0x08, 0x25, 0x48, 0x43, 0x28, 0x89, 0x28, 0x7D, 0x10, 0x01, 0x04, 0x7D, 0xFE, 0x44, 0x04, 0x44, 0x24, 0x47, 0xF4, 0x44, 0x04, 0x7C, 0x14, 0x40, 0x08, 0x04, 0x40, 0x3E, 0x40, 0x24, 0x7C, 0x24, 0x84, 0x24, 0x88, 0x3D, 0x50, 0x26, 0x20, 0x24, 0x50, 0x24, 0x8E, 0x3D, 0x04, 0x26, 0xF8, 0x24, 0x88, 0x24, 0x88, 0x44, 0x88, 0x94, 0xF8, 0x08, 0x88, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x12, 0x00, 0x92, 0x10, 0x53, 0xF8, 0x54, 0x00, 0x18, 0x00, 0x37, 0xF0, 0x50, 0x20, 0xD0, 0xC0, 0x13, 0x00, 0x24, 0x00, 0x24, 0x02, 0x44, 0x02, 0x03, 0xFE, 0x08, 0x04, 0x04, 0x04, 0x7F, 0xE4, 0x44, 0x54, 0xBF, 0x94, 0x04, 0x14, 0x3F, 0x94, 0x04, 0x14, 0x7F, 0xD4, 0x00, 0x94, 0x3F, 0xD4, 0x20, 0x94, 0x20, 0x84, 0x20, 0x84, 0x3F, 0x94, 0x20, 0x88, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x0F, 0xE0, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x04, 0x0F, 0xFE, 0x11, 0x04, 0x22, 0x84, 0x54, 0x44, 0x10, 0x04, 0x1F, 0xD4, 0x00, 0x08, 0x11, 0x00, 0x11, 0x00, 0x11, 0xF8, 0x12, 0x08, 0xFF, 0x10, 0x14, 0xA0, 0x38, 0x40, 0x34, 0xA0, 0x51, 0x10, 0x52, 0x0E, 0x97, 0xFC, 0x1A, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x20, 0x10, 0x20, 0x14, 0x50, 0x7E, 0x88, 0x55, 0x06, 0x56, 0x04, 0x55, 0xFC, 0x54, 0x00, 0x7C, 0x04, 0x51, 0xFE, 0x11, 0x04, 0x15, 0x04, 0x1D, 0x04, 0xE5, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x20, 0x04, 0x1B, 0xFE, 0x4A, 0x04, 0x42, 0x04, 0x47, 0xE4, 0x4C, 0x44, 0x52, 0x84, 0x41, 0x04, 0x46, 0xC4, 0x58, 0x3C, 0x60, 0x14, 0x4F, 0xE4, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xF4, 0x40, 0x08, 0x00, 0x08, 0x7F, 0xFC, 0x48, 0x00, 0x53, 0xF8, 0x52, 0x08, 0x62, 0x08, 0x53, 0xF8, 0x48, 0x04, 0x4F, 0xFE, 0x4D, 0x14, 0x6C, 0xA4, 0x57, 0xFC, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54, 0x44, 0x08, 0x10, 0x80, 0x10, 0x80, 0x1C, 0xFC, 0x11, 0x04, 0x21, 0x88, 0x3E, 0x50, 0x50, 0x20, 0x90, 0x50, 0x7C, 0x8E, 0x13, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x15, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x04, 0x00, 0x07, 0xF0, 0x08, 0x10, 0x14, 0x20, 0x22, 0x40, 0x01, 0x80, 0x06, 0x60, 0x18, 0x1E, 0xE0, 0x04, 0x0F, 0xF0, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x10, 0x40, 0x10, 0x40, 0x20, 0xA0, 0x20, 0xA0, 0x49, 0x10, 0xFA, 0x0E, 0x14, 0x04, 0x23, 0xF8, 0x40, 0x00, 0xF8, 0x08, 0x43, 0xFC, 0x02, 0x08, 0x1A, 0x08, 0xE2, 0x08, 0x43, 0xF8, 0x02, 0x08, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFD, 0xF8, 0x11, 0x08, 0x39, 0x08, 0x35, 0xF8, 0x55, 0x44, 0x51, 0x48, 0x91, 0x30, 0x11, 0x20, 0x11, 0x10, 0x11, 0x4E, 0x11, 0x84, 0x11, 0x00, 0x00, 0x08, 0x7D, 0xFC, 0x45, 0x08, 0x45, 0x08, 0x45, 0xF8, 0x45, 0x08, 0x7D, 0x08, 0x11, 0xF8, 0x51, 0x44, 0x5D, 0x48, 0x51, 0x30, 0x51, 0x20, 0x51, 0x10, 0x5D, 0x4E, 0xE1, 0x84, 0x41, 0x00, 0x10, 0x88, 0x10, 0x88, 0x14, 0x88, 0xFE, 0x88, 0x11, 0xFC, 0x7C, 0x88, 0x10, 0x88, 0xFE, 0x88, 0x13, 0xFE, 0x38, 0x88, 0x34, 0x88, 0x54, 0x88, 0x51, 0x08, 0x91, 0x08, 0x12, 0x08, 0x10, 0x08, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x29, 0x08, 0x05, 0x00, 0x02, 0x00, 0x05, 0x80, 0x18, 0x70, 0xE0, 0x0E, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x20, 0x88, 0x3F, 0xFE, 0x20, 0x88, 0x2F, 0xF8, 0x20, 0x88, 0x21, 0x40, 0x41, 0x40, 0x42, 0x30, 0x84, 0x0E, 0x18, 0x04, 0x04, 0x48, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x28, 0x28, 0x42, 0x84, 0x3F, 0xF8, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x0C, 0x78, 0x30, 0x10, 0x20, 0x04, 0x2F, 0xFE, 0x20, 0x40, 0x27, 0xFC, 0xFC, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x3C, 0x44, 0xE3, 0x40, 0x40, 0x80, 0x01, 0x60, 0x06, 0x1E, 0x18, 0x04, 0x02, 0x20, 0xFF, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3C, 0xA4, 0x24, 0xAC, 0x24, 0xB0, 0x3D, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3E, 0x50, 0xE4, 0x50, 0x44, 0x8E, 0x07, 0x04, 0x04, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x48, 0x13, 0xFC, 0xFE, 0x48, 0x12, 0x48, 0x33, 0xF8, 0x3A, 0x48, 0x52, 0x48, 0x53, 0xF8, 0x92, 0x48, 0x11, 0x40, 0x10, 0x80, 0x11, 0x60, 0x12, 0x1E, 0x1C, 0x04, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x08, 0x80, 0xFD, 0x08, 0x11, 0xFC, 0x12, 0x10, 0x14, 0x10, 0x11, 0x10, 0x11, 0x20, 0x11, 0x20, 0x10, 0xC0, 0x1C, 0x40, 0xF0, 0xA0, 0x41, 0x10, 0x02, 0x0E, 0x0C, 0x04, 0x00, 0x80, 0x00, 0x80, 0x08, 0x80, 0xFC, 0x80, 0x10, 0x84, 0x17, 0xFE, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x1D, 0x04, 0xF1, 0x04, 0x41, 0x04, 0x02, 0x44, 0x04, 0x28, 0x08, 0x10, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC9, 0x24, 0x09, 0x90, 0x11, 0x48, 0x21, 0x08, 0x05, 0x00, 0x02, 0x00, 0x02, 0x20, 0x02, 0x14, 0xFF, 0xFE, 0x05, 0x00, 0x05, 0x64, 0x09, 0x84, 0x32, 0xFC, 0xC8, 0x20, 0x08, 0x20, 0x3F, 0xF8, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x18, 0x18, 0x20, 0x08, 0x12, 0x10, 0x12, 0x10, 0x12, 0x10, 0x22, 0x10, 0x2F, 0xFC, 0x62, 0x10, 0xA2, 0x10, 0x22, 0x10, 0x22, 0x14, 0x3F, 0xFE, 0x20, 0x00, 0x22, 0x10, 0x22, 0x08, 0x24, 0x0C, 0x28, 0x04, 0x20, 0x00, 0x08, 0x00, 0x12, 0x04, 0x3F, 0xFE, 0x22, 0x04, 0x3E, 0x04, 0x22, 0xFC, 0x3E, 0x80, 0x22, 0x84, 0x22, 0xFE, 0xFE, 0x04, 0x06, 0x04, 0x0A, 0x04, 0x12, 0x04, 0x22, 0x44, 0x4A, 0x28, 0x04, 0x10, 0x00, 0x00, 0x00, 0x80, 0x04, 0x80, 0x04, 0x40, 0x08, 0x40, 0x08, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC2, 0x04, 0x02, 0x00, 0x04, 0x00, 0x08, 0x40, 0x10, 0x20, 0x1F, 0xF0, 0x00, 0x10, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x24, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x20, 0x7F, 0xF0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x3F, 0xE0, 0x20, 0x20, 0x20, 0x00, 0x40, 0x08, 0x7F, 0xFC, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x90, 0x00, 0x50, 0x00, 0x20, 0x00, 0x08, 0x09, 0xFC, 0xFD, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x48, 0x11, 0x28, 0x11, 0x28, 0x11, 0x08, 0x1D, 0x08, 0xF1, 0x08, 0x42, 0x0A, 0x02, 0x0A, 0x04, 0x06, 0x08, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x08, 0x01, 0x18, 0x7D, 0xA0, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC1, 0x04, 0x05, 0x00, 0x02, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0xFB, 0xFC, 0x11, 0x10, 0x11, 0x10, 0x19, 0x10, 0x31, 0x14, 0xDF, 0xFE, 0x10, 0x00, 0x11, 0x10, 0x11, 0x08, 0x12, 0x0C, 0x54, 0x04, 0x20, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x0C, 0x30, 0x10, 0x18, 0x20, 0x08, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x1C, 0xFE, 0x21, 0x04, 0x22, 0x04, 0x7C, 0x44, 0x90, 0x44, 0x10, 0x84, 0x7C, 0xA4, 0x11, 0xF4, 0x10, 0x14, 0x14, 0x04, 0x18, 0x04, 0x10, 0x28, 0x00, 0x10, 0x08, 0x00, 0x08, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x10, 0x04, 0x22, 0x04, 0x42, 0x04, 0x84, 0x04, 0x04, 0x04, 0x08, 0x84, 0x10, 0x44, 0x3F, 0xC4, 0x00, 0x44, 0x00, 0x04, 0x00, 0x28, 0x00, 0x10, 0x02, 0x00, 0x42, 0x00, 0x32, 0x04, 0x13, 0xFE, 0x84, 0x04, 0x68, 0x84, 0x20, 0x84, 0x01, 0x04, 0x09, 0x04, 0x12, 0x44, 0xE4, 0x24, 0x27, 0xE4, 0x20, 0x24, 0x20, 0x04, 0x20, 0x28, 0x20, 0x10, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x10, 0x08, 0x1F, 0xFC, 0x20, 0x08, 0x20, 0x88, 0x5F, 0xC8, 0x90, 0x88, 0x10, 0x88, 0x10, 0x88, 0x1F, 0x88, 0x10, 0x08, 0x00, 0x50, 0x00, 0x20, 0x04, 0x80, 0x44, 0x80, 0x28, 0x84, 0x11, 0xFE, 0x29, 0x04, 0x4A, 0x04, 0x08, 0x24, 0x09, 0xF4, 0x19, 0x24, 0x29, 0x24, 0x49, 0x24, 0x89, 0xE4, 0x09, 0x04, 0x08, 0x04, 0x50, 0x28, 0x20, 0x10, 0x10, 0x0C, 0x13, 0xF0, 0x12, 0x00, 0x12, 0x00, 0xFE, 0x04, 0x13, 0xFE, 0x12, 0x00, 0x12, 0x04, 0x12, 0xFE, 0x12, 0x84, 0x16, 0x84, 0x1A, 0x84, 0xE4, 0x84, 0x44, 0x84, 0x08, 0xFC, 0x00, 0x84, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0xFD, 0x04, 0x12, 0x04, 0x30, 0x44, 0x38, 0x44, 0x54, 0x84, 0x50, 0xA4, 0x11, 0x14, 0x11, 0xF4, 0x10, 0x14, 0x10, 0x04, 0x10, 0x28, 0x10, 0x10, 0x04, 0x80, 0x7E, 0x80, 0x44, 0x84, 0x54, 0xFE, 0x55, 0x04, 0x56, 0x04, 0x54, 0x44, 0x54, 0x44, 0x54, 0x84, 0x54, 0xA4, 0x55, 0x14, 0x55, 0xF4, 0x10, 0x14, 0x28, 0x04, 0x44, 0x28, 0x84, 0x10, 0x20, 0x20, 0x20, 0x20, 0x22, 0x7C, 0x3F, 0x44, 0x42, 0x88, 0x83, 0x50, 0x7A, 0x20, 0x4A, 0x50, 0x4A, 0x9E, 0x4B, 0x22, 0x4A, 0x44, 0x7A, 0xA8, 0x42, 0x10, 0x0A, 0x20, 0x04, 0x40, 0x00, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x20, 0x10, 0x24, 0xFF, 0xFE, 0x12, 0x20, 0x12, 0x24, 0x22, 0xFE, 0x22, 0x84, 0x14, 0x84, 0x08, 0x84, 0x14, 0x84, 0x22, 0xFC, 0x40, 0x84, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x40, 0x48, 0x48, 0x4B, 0xFC, 0x4A, 0x08, 0x4A, 0x08, 0x7A, 0x08, 0x4A, 0x08, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x10, 0x40, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x90, 0x00, 0x13, 0xFC, 0x12, 0x20, 0xFE, 0x28, 0x12, 0xFC, 0x1A, 0xA8, 0x32, 0xA8, 0xD2, 0xA8, 0x12, 0xB8, 0x12, 0x20, 0x53, 0xFE, 0x20, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x30, 0x40, 0x50, 0x40, 0x90, 0x48, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x44, 0x87, 0xFE, 0x60, 0x40, 0x20, 0x40, 0x08, 0x48, 0x13, 0xFC, 0x22, 0x08, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x00, 0x08, 0x7C, 0x3C, 0x07, 0xC0, 0x0A, 0x10, 0x12, 0x90, 0x12, 0x90, 0x16, 0x90, 0x1A, 0x90, 0x32, 0x90, 0xD2, 0x90, 0x12, 0x90, 0x12, 0x90, 0x14, 0xA8, 0x15, 0xEE, 0x58, 0x24, 0x20, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0xFC, 0x20, 0x24, 0x20, 0x24, 0x24, 0x45, 0xFE, 0x25, 0x04, 0x19, 0x04, 0x11, 0x04, 0x29, 0x04, 0x45, 0x04, 0x81, 0xFC, 0x01, 0x04, 0x10, 0x20, 0x14, 0x20, 0xFE, 0x24, 0x11, 0xFE, 0x7C, 0x20, 0x00, 0x28, 0x7D, 0xFC, 0x44, 0x88, 0x44, 0x88, 0x7C, 0x88, 0x00, 0x50, 0x44, 0x20, 0x28, 0x50, 0xFE, 0x48, 0x40, 0x8E, 0x03, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x00, 0x04, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0x10, 0x11, 0x10, 0x11, 0x10, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x08, 0x40, 0x08, 0x30, 0x10, 0x18, 0x21, 0x08, 0x41, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x04, 0x08, 0x3E, 0xFC, 0x24, 0x88, 0x24, 0x88, 0x24, 0x88, 0x3D, 0x0E, 0x26, 0x00, 0x25, 0xFC, 0x24, 0x84, 0x3C, 0x88, 0x24, 0x48, 0x24, 0x70, 0x24, 0x20, 0x24, 0x50, 0x4D, 0x8E, 0x86, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x14, 0x44, 0xFE, 0xFE, 0x11, 0x08, 0x12, 0x88, 0x10, 0x88, 0x7C, 0x88, 0x44, 0x88, 0x44, 0x50, 0x44, 0x20, 0x44, 0x20, 0x7C, 0x50, 0x44, 0x8E, 0x03, 0x04, 0x04, 0x04, 0x7F, 0xFE, 0x40, 0x20, 0x40, 0x44, 0x5E, 0xFE, 0x52, 0x84, 0x52, 0x94, 0x52, 0x94, 0x5A, 0x94, 0x54, 0xA4, 0x50, 0xA4, 0x52, 0xA4, 0x54, 0x30, 0x58, 0x4C, 0x80, 0x86, 0x01, 0x02, 0x00, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x24, 0x4F, 0xF4, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x02, 0x00, 0x01, 0x04, 0x3F, 0xFE, 0x20, 0x04, 0x3F, 0xFC, 0x22, 0x80, 0x22, 0x48, 0x27, 0xFC, 0x24, 0x40, 0x2F, 0xF8, 0x34, 0x40, 0x27, 0xF8, 0x24, 0x40, 0x24, 0x48, 0x47, 0xFC, 0x84, 0x00, 0x01, 0x84, 0x7E, 0x04, 0x08, 0x04, 0x08, 0x24, 0x09, 0x24, 0xFF, 0xA4, 0x08, 0x24, 0x08, 0x24, 0x09, 0x24, 0x7F, 0xA4, 0x41, 0x24, 0x41, 0x24, 0x41, 0x04, 0x41, 0x04, 0x7F, 0x14, 0x41, 0x08, 0x00, 0x38, 0x01, 0xC0, 0x3E, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x10, 0x22, 0x10, 0x22, 0x10, 0x22, 0x88, 0x22, 0x68, 0x42, 0xA6, 0x83, 0x04, 0x00, 0x00, 0x00, 0x84, 0x3F, 0xC4, 0x20, 0x84, 0x20, 0x94, 0x20, 0x94, 0x3F, 0x94, 0x24, 0x94, 0x04, 0x14, 0x7F, 0xD4, 0x44, 0x54, 0x44, 0x54, 0x4A, 0x54, 0x51, 0x44, 0x40, 0x44, 0x41, 0x54, 0x40, 0x88, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x22, 0x9F, 0xF4, 0x02, 0x00, 0x0F, 0xE0, 0x0A, 0x20, 0x09, 0x20, 0x08, 0xA8, 0x7F, 0xFC, 0x04, 0x40, 0x0F, 0xE0, 0x32, 0x5E, 0xC2, 0x44, 0x04, 0x40, 0x18, 0xC0, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0xFC, 0x40, 0x10, 0x40, 0x14, 0x44, 0x1F, 0xFE, 0x30, 0x40, 0xD0, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x5F, 0xFE, 0x20, 0x00, 0x41, 0x10, 0x21, 0x10, 0x21, 0x10, 0x07, 0xD0, 0xF1, 0x10, 0x11, 0x10, 0x2F, 0xF8, 0x71, 0x16, 0xA1, 0x12, 0x37, 0xD0, 0x21, 0x10, 0x21, 0x10, 0x21, 0xF0, 0x2F, 0x10, 0x24, 0x10, 0x20, 0x10, 0x00, 0x70, 0x1F, 0x80, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x09, 0x24, 0x09, 0x2C, 0x79, 0x30, 0x09, 0x20, 0x09, 0x22, 0x39, 0x22, 0xC9, 0x1E, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0xFD, 0x08, 0x11, 0x08, 0x15, 0xF8, 0x18, 0x80, 0x30, 0x84, 0xD3, 0xFE, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x11, 0x04, 0x11, 0x04, 0x52, 0x14, 0x24, 0x08, 0x10, 0x08, 0x17, 0xFC, 0x12, 0x08, 0x11, 0x10, 0x58, 0xA0, 0x54, 0x40, 0x50, 0xB0, 0x93, 0x0E, 0x1C, 0x44, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFE, 0x12, 0x02, 0xFC, 0x04, 0x31, 0xFC, 0x39, 0x04, 0x55, 0x04, 0x51, 0xFC, 0x91, 0x00, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x00, 0x10, 0x10, 0x08, 0x18, 0x04, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x14, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x10, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x84, 0x0C, 0x3E, 0x08, 0x00, 0x08, 0x02, 0xFE, 0x7F, 0x08, 0x14, 0x48, 0x14, 0x28, 0x14, 0x08, 0x14, 0x28, 0x24, 0x12, 0x24, 0x02, 0x43, 0xFE, 0x80, 0x00, 0x00, 0x08, 0x01, 0xFC, 0x7D, 0x08, 0x05, 0x28, 0x45, 0x28, 0x29, 0x28, 0x29, 0x28, 0x11, 0x48, 0x11, 0x48, 0x29, 0x48, 0x25, 0x68, 0x44, 0xA0, 0x80, 0xA0, 0x01, 0x22, 0x06, 0x22, 0x18, 0x1E, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0x90, 0x45, 0x08, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x20, 0x80, 0x20, 0x40, 0x23, 0xFE, 0x3A, 0x02, 0x4C, 0x04, 0x51, 0xF8, 0x81, 0x08, 0x21, 0x08, 0x21, 0xF8, 0x21, 0x00, 0x21, 0xF8, 0x25, 0x08, 0x29, 0x08, 0x31, 0x08, 0x21, 0xF8, 0x01, 0x00, 0x20, 0x88, 0x23, 0xFE, 0x3C, 0x88, 0x51, 0xDC, 0x91, 0x54, 0x11, 0xDC, 0xFE, 0x90, 0x10, 0xFC, 0x55, 0x90, 0x56, 0xFC, 0x54, 0x90, 0x54, 0xFC, 0x54, 0x90, 0x7C, 0x94, 0x44, 0xFE, 0x00, 0x80, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x48, 0x1F, 0xFE, 0x5A, 0x48, 0x57, 0xF8, 0x50, 0x00, 0x93, 0xF8, 0x12, 0x08, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x10, 0xB0, 0x11, 0x0C, 0x16, 0x04, 0x01, 0x10, 0x4F, 0xFE, 0x31, 0x10, 0x17, 0xBC, 0x84, 0xA4, 0x67, 0xBC, 0x22, 0x20, 0x03, 0xFC, 0x16, 0x20, 0x2B, 0xFC, 0xC2, 0x20, 0x43, 0xFC, 0x42, 0x20, 0x42, 0x24, 0x43, 0xFE, 0x42, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0x60, 0x0C, 0x18, 0x30, 0x08, 0x01, 0x00, 0x21, 0x08, 0x11, 0x0C, 0x09, 0x10, 0x09, 0x20, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x3E, 0x40, 0x00, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x29, 0x08, 0x27, 0xFC, 0x02, 0x20, 0x06, 0x20, 0xEA, 0x20, 0x22, 0xF8, 0x26, 0x20, 0x2A, 0x20, 0x32, 0x20, 0x22, 0x28, 0x2B, 0xFC, 0x24, 0x00, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x00, 0x80, 0x11, 0x08, 0xFB, 0xFC, 0x22, 0x48, 0x22, 0x48, 0x23, 0xF8, 0xFA, 0x48, 0x22, 0x48, 0x23, 0xF8, 0x22, 0x80, 0x20, 0xD0, 0x39, 0x68, 0xE1, 0x78, 0x42, 0x42, 0x04, 0x42, 0x08, 0x3E, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x28, 0x7D, 0x28, 0x11, 0x28, 0x15, 0x28, 0xFF, 0x48, 0x11, 0x48, 0x11, 0x48, 0x10, 0x40, 0x28, 0x90, 0x24, 0x90, 0x41, 0x12, 0x82, 0x12, 0x04, 0x0E, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x20, 0x04, 0x20, 0xFE, 0x28, 0x11, 0xFC, 0x10, 0x20, 0x20, 0x24, 0x23, 0xFE, 0x7C, 0x20, 0xA4, 0x20, 0x24, 0x28, 0x25, 0xFC, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x24, 0x27, 0xFE, 0x00, 0x00, 0x04, 0x00, 0x04, 0x04, 0x25, 0xFE, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x25, 0xFC, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x04, 0x04, 0x08, 0x04, 0x13, 0xFC, 0x60, 0x04, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1F, 0xE0, 0x10, 0x40, 0x20, 0x88, 0x7F, 0xFC, 0xA1, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x0A, 0x01, 0x02, 0x01, 0x02, 0x00, 0xFE, 0x20, 0x04, 0x1B, 0xFE, 0x49, 0x04, 0x41, 0x44, 0x4F, 0xE4, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x44, 0x4F, 0xE4, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x40, 0x04, 0x40, 0x0C, 0x10, 0x40, 0x10, 0x40, 0x14, 0x40, 0xFE, 0x48, 0x21, 0xFC, 0x28, 0x48, 0x48, 0x48, 0x7E, 0x48, 0x08, 0x48, 0x08, 0x48, 0x08, 0x48, 0xFE, 0x88, 0x08, 0x8A, 0x08, 0x8A, 0x09, 0x06, 0x0A, 0x00, 0x02, 0x00, 0x04, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x22, 0x88, 0x02, 0x80, 0x04, 0x90, 0x04, 0xA8, 0x08, 0xBA, 0x10, 0x82, 0x60, 0x7E, 0x01, 0x00, 0x41, 0x00, 0x21, 0xF0, 0x22, 0x20, 0x04, 0x44, 0x0B, 0xFE, 0xE2, 0x00, 0x22, 0xF8, 0x22, 0x88, 0x22, 0x88, 0x22, 0xA8, 0x26, 0x90, 0x2A, 0x82, 0x32, 0x82, 0x24, 0x7E, 0x08, 0x00, 0x00, 0x80, 0x3E, 0x90, 0x02, 0xA0, 0x24, 0x48, 0x18, 0x50, 0x10, 0x20, 0x20, 0x10, 0x4F, 0xEE, 0x81, 0x04, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x02, 0xC0, 0x04, 0x30, 0x18, 0x18, 0x60, 0x08, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0xFC, 0x40, 0x10, 0x44, 0x37, 0xFE, 0x38, 0x40, 0x54, 0x40, 0x50, 0x48, 0x93, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x00, 0x12, 0x00, 0xFE, 0x08, 0x13, 0xFC, 0x32, 0x08, 0x3A, 0x08, 0x56, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x12, 0x00, 0x12, 0x00, 0x12, 0x04, 0x13, 0xFE, 0x10, 0x00, 0x04, 0x80, 0x7E, 0x80, 0x44, 0xF8, 0x45, 0x10, 0x46, 0x24, 0x7D, 0xFE, 0x51, 0x08, 0x11, 0x7C, 0x51, 0x48, 0x5D, 0x48, 0x51, 0x68, 0x51, 0x50, 0x5D, 0x42, 0xF2, 0x42, 0x44, 0x3E, 0x08, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x08, 0x04, 0x08, 0x04, 0x14, 0x04, 0x22, 0x24, 0x41, 0xA4, 0xBE, 0xA4, 0x00, 0x24, 0x02, 0x24, 0x7F, 0x24, 0x08, 0x24, 0x08, 0x24, 0x10, 0x24, 0x22, 0x04, 0x7F, 0x04, 0x01, 0x14, 0x00, 0x08, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0xFE, 0x08, 0x43, 0xF8, 0x42, 0x08, 0x92, 0x08, 0xFF, 0xF8, 0x12, 0x24, 0x12, 0x2C, 0x1F, 0xB0, 0xF2, 0x20, 0x52, 0x22, 0x12, 0xA2, 0x13, 0x1E, 0x10, 0x00, 0x00, 0x80, 0x40, 0x48, 0x37, 0xFC, 0x11, 0x10, 0x83, 0x4C, 0x64, 0x44, 0x20, 0x80, 0x09, 0x10, 0x13, 0xF8, 0x20, 0x80, 0xE1, 0x44, 0x23, 0x28, 0x25, 0x10, 0x29, 0x4E, 0x21, 0x84, 0x21, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0xFF, 0xF8, 0x12, 0x08, 0x32, 0x08, 0x3B, 0xF8, 0x56, 0x24, 0x52, 0x2C, 0x93, 0xB0, 0x12, 0x20, 0x12, 0x22, 0x12, 0xA2, 0x13, 0x1E, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x1D, 0x08, 0x21, 0x08, 0x21, 0xF8, 0x7D, 0x40, 0x90, 0x44, 0x13, 0xFE, 0xFE, 0x44, 0x12, 0x64, 0x12, 0x9C, 0x17, 0x0C, 0x1A, 0x04, 0x12, 0x14, 0x02, 0x08, 0x08, 0x00, 0x04, 0x7C, 0xFF, 0xC4, 0x00, 0x44, 0x3F, 0x48, 0x21, 0x48, 0x21, 0x50, 0x3F, 0x48, 0x00, 0x44, 0x7F, 0x42, 0x02, 0x42, 0x04, 0x62, 0xFF, 0x54, 0x04, 0x48, 0x14, 0x40, 0x08, 0x40, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x04, 0x41, 0x44, 0x4F, 0xE4, 0x41, 0x04, 0x41, 0x44, 0x41, 0x24, 0x41, 0x04, 0x5F, 0xF4, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x01, 0x00, 0x7F, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x09, 0x20, 0x35, 0x18, 0x0C, 0xA0, 0x14, 0x40, 0x65, 0x3C, 0x06, 0x08, 0x00, 0x10, 0x40, 0x10, 0x20, 0x10, 0x17, 0xFC, 0x00, 0x10, 0x00, 0x10, 0xF1, 0x10, 0x10, 0x90, 0x10, 0x90, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x08, 0xA0, 0x7C, 0xA0, 0x49, 0x10, 0x49, 0x08, 0x4A, 0x0E, 0x4D, 0xF4, 0x48, 0x00, 0x48, 0x08, 0x4B, 0xFC, 0x7A, 0x08, 0x4A, 0x08, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x04, 0x40, 0x7E, 0x20, 0x44, 0x04, 0x77, 0xFE, 0x54, 0x20, 0x54, 0x20, 0xFE, 0x44, 0x82, 0xFC, 0x7C, 0x10, 0x44, 0x24, 0x7C, 0x44, 0x45, 0x88, 0x7C, 0x10, 0x44, 0x28, 0x54, 0xC6, 0x4B, 0x02, 0x00, 0x80, 0xFC, 0x40, 0x04, 0x04, 0x0B, 0xFE, 0x10, 0x40, 0x10, 0x80, 0x15, 0x08, 0x1B, 0xF8, 0x31, 0x10, 0xD0, 0x24, 0x10, 0x4C, 0x11, 0x90, 0x16, 0x20, 0x10, 0x50, 0x51, 0x8C, 0x26, 0x04, 0x02, 0x00, 0x42, 0x08, 0x33, 0xFC, 0x14, 0x00, 0x8B, 0xF8, 0x62, 0x88, 0x22, 0x48, 0x0A, 0x08, 0x1F, 0xFE, 0x24, 0x88, 0xE4, 0x48, 0x24, 0x08, 0x27, 0xFC, 0x20, 0x08, 0x20, 0x28, 0x20, 0x10, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x02, 0x08, 0x3F, 0xE8, 0x04, 0x08, 0x08, 0x88, 0x3F, 0x08, 0x02, 0x08, 0x0C, 0x88, 0x31, 0x8A, 0x46, 0x6A, 0x18, 0x24, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x20, 0x04, 0x60, 0x08, 0x80, 0x1F, 0x10, 0x02, 0x30, 0x04, 0x40, 0x08, 0xC0, 0x31, 0x20, 0x06, 0x10, 0x18, 0x0C, 0x60, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x9F, 0xF4, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFC, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x08, 0x80, 0xFC, 0x40, 0x08, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x80, 0x49, 0x08, 0x4B, 0xF8, 0x7D, 0x10, 0x04, 0x24, 0x04, 0x4C, 0x1D, 0x90, 0xE6, 0x20, 0x44, 0x58, 0x15, 0x8C, 0x0A, 0x04, 0x01, 0x44, 0xFF, 0xC4, 0x14, 0x44, 0x14, 0x44, 0x7F, 0xFE, 0x55, 0x44, 0x55, 0x44, 0x55, 0x44, 0x63, 0x44, 0x41, 0x7C, 0x41, 0x44, 0x7F, 0x44, 0x41, 0x44, 0x41, 0x44, 0x7F, 0x7C, 0x41, 0x44, 0x3E, 0x40, 0x04, 0x44, 0xFF, 0x7E, 0x22, 0x84, 0x3F, 0x44, 0x22, 0x48, 0x3E, 0x28, 0x22, 0x10, 0xFF, 0x2E, 0x02, 0xC4, 0x0A, 0x00, 0x29, 0x88, 0x28, 0xA4, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x00, 0x22, 0x00, 0x22, 0x7C, 0x22, 0x44, 0x22, 0x44, 0xFF, 0xC8, 0x22, 0x48, 0x22, 0x50, 0x22, 0x48, 0x3E, 0x44, 0x22, 0x42, 0x22, 0x42, 0x22, 0x62, 0x22, 0x54, 0x3E, 0x48, 0x22, 0x40, 0x00, 0x40, 0x08, 0x20, 0x0A, 0x20, 0xFF, 0x24, 0x08, 0xFE, 0x08, 0x20, 0x7F, 0x28, 0x41, 0xFC, 0x7F, 0x20, 0x41, 0x20, 0x7F, 0xFE, 0x08, 0x22, 0x09, 0x22, 0xFF, 0xAA, 0x08, 0x24, 0x08, 0x20, 0x08, 0x20, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x0A, 0x20, 0x11, 0x90, 0x20, 0x8E, 0xDF, 0xE4, 0x00, 0x40, 0x00, 0x90, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x40, 0x00, 0x37, 0xFC, 0x10, 0x08, 0x00, 0x10, 0x84, 0x64, 0x44, 0x44, 0x46, 0x4C, 0x0D, 0x54, 0x14, 0xE4, 0x25, 0x54, 0xE6, 0x4C, 0x24, 0x44, 0x25, 0x44, 0x24, 0x84, 0x27, 0xFC, 0x24, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x9F, 0xF4, 0x04, 0x40, 0x1F, 0xF0, 0x04, 0x40, 0x7F, 0xFC, 0x04, 0x40, 0x0B, 0x20, 0x10, 0x90, 0x20, 0x4E, 0xC6, 0x04, 0x01, 0x80, 0x00, 0x40, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x20, 0x00, 0x40, 0x41, 0x84, 0x51, 0x14, 0x49, 0x34, 0x45, 0x44, 0x41, 0x04, 0x45, 0x44, 0x49, 0x34, 0x51, 0x14, 0x45, 0x04, 0x42, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x10, 0x10, 0x18, 0x78, 0x14, 0x57, 0xFE, 0x54, 0x10, 0x57, 0xF0, 0x54, 0x14, 0x55, 0xD4, 0x55, 0x54, 0x55, 0x54, 0x55, 0x58, 0x75, 0xD0, 0x45, 0x28, 0x08, 0x4A, 0x11, 0x8A, 0x20, 0x04, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x84, 0x44, 0x08, 0x20, 0x00, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x20, 0x10, 0x20, 0x14, 0x50, 0xFE, 0x88, 0x11, 0x06, 0x7E, 0x04, 0x45, 0xDC, 0x7C, 0x44, 0x45, 0x54, 0x7C, 0xCC, 0x10, 0x44, 0xFE, 0xCC, 0x11, 0x54, 0x10, 0x44, 0x11, 0x54, 0x10, 0x88, 0x10, 0x10, 0x10, 0x14, 0x10, 0x10, 0x17, 0xFE, 0xFC, 0x10, 0x17, 0xF0, 0x14, 0x14, 0x1D, 0xD4, 0x35, 0x58, 0xD5, 0x52, 0x15, 0xEA, 0x14, 0x06, 0x19, 0x40, 0x13, 0x24, 0x55, 0x0A, 0x20, 0xF8, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0xFA, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x18, 0x40, 0x37, 0xFC, 0xD0, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x50, 0x40, 0x20, 0x40, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x10, 0x10, 0x14, 0x10, 0x10, 0x17, 0xFE, 0x5C, 0x10, 0x57, 0xF0, 0x54, 0x14, 0x95, 0xD4, 0x15, 0x58, 0x15, 0x52, 0x15, 0xEA, 0x14, 0x06, 0x19, 0x40, 0x13, 0x24, 0x15, 0x0A, 0x10, 0xF8, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x5A, 0x08, 0x56, 0x08, 0x53, 0xF8, 0x90, 0x00, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x15, 0xFC, 0x59, 0x04, 0x51, 0x04, 0x51, 0xFC, 0x90, 0x00, 0x13, 0xFE, 0x10, 0x20, 0x10, 0x24, 0x2B, 0xFE, 0x24, 0x20, 0x44, 0x20, 0x80, 0x20, 0x00, 0x20, 0x00, 0x08, 0x47, 0xFC, 0x30, 0x40, 0x10, 0x40, 0x80, 0x40, 0x60, 0x40, 0x20, 0x44, 0x0F, 0xFE, 0x10, 0x40, 0x20, 0x40, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x40, 0x00, 0x00, 0x40, 0x08, 0x37, 0xFC, 0x10, 0x08, 0x82, 0x08, 0x62, 0x08, 0x22, 0x10, 0x09, 0x10, 0x11, 0x20, 0x20, 0xA0, 0xE0, 0x40, 0x20, 0xA0, 0x21, 0x10, 0x22, 0x08, 0x24, 0x0E, 0x08, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0x04, 0x40, 0x0A, 0x30, 0x32, 0x0E, 0xC2, 0x04, 0x1F, 0xF0, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x04, 0x10, 0x08, 0xA0, 0x30, 0x40, 0x10, 0x80, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0xFC, 0x00, 0x10, 0x10, 0x31, 0xF8, 0x39, 0x10, 0x55, 0x10, 0x51, 0x10, 0x91, 0x10, 0x11, 0x10, 0x11, 0x12, 0x12, 0x12, 0x14, 0x0E, 0x18, 0x00, 0x08, 0x40, 0x10, 0x30, 0x3E, 0x14, 0x23, 0xFE, 0x32, 0x00, 0x2A, 0x08, 0x22, 0x7C, 0xFE, 0x48, 0x22, 0x48, 0x32, 0x48, 0x2A, 0x48, 0x22, 0x48, 0x22, 0x4A, 0x22, 0x4A, 0x4A, 0x86, 0x85, 0x00, 0x20, 0x40, 0x23, 0xFC, 0x20, 0x00, 0x21, 0xF8, 0xF9, 0x08, 0x27, 0xFE, 0x24, 0x02, 0x2B, 0xFC, 0x20, 0xC0, 0x23, 0x68, 0x20, 0xB0, 0x3B, 0x28, 0xE0, 0xE6, 0x47, 0x24, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x48, 0x17, 0xFC, 0xF8, 0x00, 0x91, 0xF0, 0x91, 0x10, 0x97, 0xFE, 0x94, 0x02, 0x9B, 0xFC, 0x90, 0x80, 0x91, 0x48, 0x96, 0xF0, 0xF1, 0x50, 0x96, 0xCE, 0x01, 0x44, 0x06, 0x40, 0x00, 0xC0, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x08, 0x20, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x06, 0x10, 0x0B, 0x20, 0x35, 0x40, 0x09, 0x80, 0x33, 0x60, 0x05, 0x1C, 0x39, 0x08, 0x03, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x01, 0x00, 0x0F, 0xE0, 0x01, 0x00, 0x3F, 0xF4, 0x01, 0x04, 0x00, 0xFC, 0x08, 0x00, 0x08, 0x7C, 0x0A, 0x44, 0x7F, 0x44, 0x08, 0x48, 0x09, 0x48, 0xFF, 0xD0, 0x14, 0x48, 0x14, 0x44, 0x56, 0x42, 0x55, 0x42, 0x95, 0x62, 0x24, 0x54, 0x24, 0x48, 0x4C, 0x40, 0x80, 0x40, 0x10, 0x00, 0x11, 0xFC, 0x10, 0x04, 0x10, 0x08, 0xFC, 0x10, 0x24, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x44, 0x20, 0x28, 0x20, 0x10, 0x20, 0x28, 0x20, 0x44, 0x20, 0x84, 0xA0, 0x00, 0x40, 0x10, 0x08, 0x10, 0x3C, 0x15, 0xC0, 0xFE, 0x40, 0x10, 0x50, 0x7C, 0x78, 0x11, 0xC0, 0xFE, 0x40, 0x10, 0x48, 0x38, 0x7C, 0x35, 0xC0, 0x54, 0x40, 0x50, 0x42, 0x90, 0x42, 0x10, 0x3E, 0x10, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x10, 0x1F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xA0, 0x00, 0x40, 0x40, 0x40, 0x32, 0x40, 0x12, 0x48, 0x03, 0xFC, 0x84, 0x40, 0x68, 0x40, 0x20, 0x44, 0x0F, 0xFE, 0x10, 0x08, 0x23, 0xFC, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x00, 0x04, 0x0B, 0xFE, 0x7C, 0x08, 0x48, 0x08, 0x48, 0x48, 0x4B, 0xE8, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xC8, 0x7A, 0x48, 0x48, 0x08, 0x00, 0x08, 0x00, 0x28, 0x00, 0x10, 0x00, 0x08, 0x0B, 0xFC, 0x7E, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x48, 0x84, 0x49, 0xFE, 0x4A, 0x04, 0x4C, 0x44, 0x4A, 0x44, 0x7A, 0xA4, 0x4A, 0x04, 0x03, 0xE4, 0x00, 0x14, 0x00, 0x08, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x08, 0x30, 0x48, 0x53, 0xE8, 0x92, 0x48, 0x12, 0x48, 0x12, 0x48, 0x13, 0xC8, 0x12, 0x08, 0x10, 0x28, 0x10, 0x10, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x40, 0x04, 0x3F, 0xFE, 0x10, 0x08, 0x80, 0x48, 0x63, 0xE8, 0x22, 0x48, 0x0A, 0x48, 0x12, 0x48, 0xE3, 0xC8, 0x22, 0x08, 0x20, 0x28, 0x20, 0x10, 0x10, 0x80, 0x10, 0x40, 0x10, 0x44, 0x13, 0xFE, 0xFC, 0x40, 0x10, 0x80, 0x39, 0x08, 0x37, 0xF8, 0x55, 0x10, 0x50, 0x24, 0x90, 0x4C, 0x11, 0x90, 0x16, 0x20, 0x10, 0x50, 0x11, 0x8C, 0x16, 0x04, 0x00, 0x10, 0x00, 0x38, 0x3F, 0xC0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x18, 0x21, 0x0E, 0x41, 0x04, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x07, 0x00, 0x78, 0x00, 0x08, 0x04, 0x0A, 0xFE, 0xFF, 0x84, 0x08, 0x84, 0x18, 0x84, 0x1C, 0x84, 0x2A, 0x84, 0x2A, 0x84, 0x48, 0x84, 0x88, 0xFC, 0x08, 0x84, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x10, 0x08, 0x10, 0x48, 0x33, 0xE8, 0x52, 0x48, 0x92, 0x48, 0x12, 0x48, 0x12, 0x48, 0x13, 0xC8, 0x12, 0x48, 0x10, 0x08, 0x10, 0x08, 0x10, 0x28, 0x10, 0x10, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x2F, 0xEE, 0xC0, 0x04, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x0F, 0xE0, 0x10, 0x10, 0x2F, 0xEE, 0xC8, 0x24, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x10, 0x1F, 0xF8, 0x12, 0x90, 0x12, 0x90, 0x12, 0x94, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x40, 0x10, 0x40, 0x24, 0x7C, 0x54, 0x84, 0x89, 0x88, 0x52, 0x50, 0x28, 0x20, 0x4C, 0x50, 0x94, 0x88, 0x27, 0x0E, 0x4C, 0xFC, 0x94, 0x88, 0x24, 0x88, 0x44, 0x88, 0x14, 0xF8, 0x08, 0x88, 0x20, 0x04, 0x1B, 0xFE, 0x48, 0x04, 0x42, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x42, 0x44, 0x44, 0x84, 0x4F, 0x24, 0x42, 0x44, 0x44, 0x84, 0x49, 0x84, 0x52, 0x64, 0x44, 0x24, 0x40, 0x0C, 0x40, 0x04, 0x3F, 0xFE, 0x10, 0x08, 0x00, 0x08, 0x80, 0x48, 0x67, 0xE8, 0x24, 0x48, 0x0C, 0x48, 0x14, 0x48, 0x24, 0x48, 0xE7, 0xC8, 0x24, 0x48, 0x20, 0x08, 0x20, 0x08, 0x20, 0x28, 0x20, 0x10, 0x40, 0x04, 0x37, 0xFE, 0x14, 0x44, 0x04, 0x54, 0x87, 0xFC, 0x64, 0x44, 0x24, 0x54, 0x0D, 0xFC, 0x15, 0x14, 0x25, 0x14, 0xE5, 0x14, 0x25, 0xF4, 0x25, 0x14, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x08, 0x20, 0x08, 0x28, 0x7E, 0xFC, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x14, 0x50, 0x14, 0x50, 0x36, 0xD8, 0x75, 0x56, 0x94, 0x52, 0x14, 0x50, 0x14, 0x50, 0x14, 0x50, 0x24, 0x90, 0x4D, 0x30, 0x40, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x03, 0xF8, 0xFA, 0x08, 0x13, 0xF8, 0x21, 0x04, 0x6B, 0xFE, 0xB4, 0x04, 0x28, 0x44, 0x22, 0x44, 0x22, 0xA4, 0x22, 0x04, 0x23, 0xE4, 0x20, 0x14, 0x20, 0x08, 0x08, 0x20, 0x08, 0x48, 0x7F, 0xFC, 0x52, 0x88, 0x90, 0xA8, 0x28, 0x88, 0x7E, 0xA8, 0xA8, 0x90, 0x3E, 0x84, 0x28, 0xFE, 0x3E, 0x04, 0x28, 0x24, 0x29, 0xF4, 0x3E, 0x04, 0x20, 0x14, 0x20, 0x08, 0x10, 0x00, 0x10, 0x04, 0x7F, 0x7E, 0x11, 0x44, 0x11, 0x44, 0x25, 0x7C, 0x42, 0x10, 0x9F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x00, 0x08, 0x0B, 0xFC, 0x7E, 0x48, 0x4B, 0x58, 0x4A, 0xE8, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x48, 0x40, 0x4B, 0xF8, 0x48, 0x40, 0x4F, 0xFE, 0x78, 0x00, 0x4A, 0xA8, 0x02, 0xA4, 0x04, 0x04, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x31, 0x28, 0x2D, 0x38, 0x25, 0x48, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x28, 0x90, 0x24, 0x4C, 0x44, 0x44, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x08, 0x97, 0xFC, 0x54, 0x08, 0x57, 0xF8, 0x14, 0x08, 0x37, 0xF8, 0x54, 0x84, 0xD4, 0x8C, 0x14, 0x50, 0x24, 0x20, 0x25, 0x10, 0x46, 0x0E, 0x04, 0x04, 0x08, 0x08, 0x0B, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x23, 0xF8, 0x4A, 0x08, 0x8A, 0x08, 0x13, 0xF8, 0x32, 0x84, 0x52, 0x8C, 0x92, 0x50, 0x12, 0x20, 0x12, 0x10, 0x12, 0x88, 0x13, 0x0E, 0x12, 0x04, 0x00, 0x08, 0x8B, 0xFC, 0x5A, 0x08, 0x22, 0x08, 0x53, 0xF8, 0x8A, 0x08, 0x0A, 0x08, 0x1B, 0xF8, 0x2A, 0x84, 0x4A, 0x8C, 0x8A, 0x50, 0x0A, 0x20, 0x0A, 0x10, 0x0A, 0x88, 0x53, 0x0E, 0x22, 0x04, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x5B, 0xF8, 0x56, 0x08, 0x52, 0x08, 0x93, 0xF8, 0x12, 0x84, 0x12, 0x8C, 0x12, 0x50, 0x12, 0x20, 0x12, 0x10, 0x12, 0x88, 0x13, 0x0E, 0x12, 0x04, 0x00, 0x40, 0x08, 0x24, 0x7F, 0xFE, 0x48, 0x08, 0x49, 0xFC, 0x49, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x48, 0x00, 0x4B, 0xFC, 0x48, 0x08, 0x78, 0x30, 0x48, 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x20, 0x01, 0xC0, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x03, 0x00, 0x11, 0x10, 0x11, 0x10, 0x17, 0xFC, 0x11, 0x10, 0xFD, 0x14, 0x17, 0xFE, 0x30, 0x48, 0x3B, 0xFC, 0x56, 0x48, 0x53, 0xF8, 0x92, 0x48, 0x13, 0xF8, 0x10, 0x00, 0x11, 0x10, 0x13, 0x0C, 0x14, 0x04, 0x12, 0x00, 0x13, 0xC4, 0x24, 0x9E, 0x49, 0x00, 0x9F, 0xE0, 0x19, 0x20, 0x2F, 0xFE, 0x69, 0x24, 0xAF, 0xE4, 0x21, 0x04, 0x21, 0x24, 0x3F, 0xF4, 0x22, 0x84, 0x24, 0x44, 0x28, 0x54, 0x20, 0x08, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x00, 0x10, 0x08, 0x5B, 0xFC, 0x56, 0x08, 0x52, 0x08, 0x93, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x02, 0x08, 0x7F, 0xFC, 0x08, 0x00, 0x11, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x7E, 0xFC, 0x22, 0x88, 0x14, 0x50, 0x08, 0x20, 0x14, 0x50, 0x22, 0x8E, 0xC1, 0x04, 0x00, 0x90, 0x08, 0x90, 0x7C, 0x90, 0x48, 0x90, 0x4B, 0xFC, 0x48, 0x90, 0x48, 0x90, 0x48, 0x90, 0x48, 0x90, 0x48, 0x94, 0x4F, 0xFE, 0x78, 0x00, 0x48, 0x90, 0x00, 0x88, 0x01, 0x0C, 0x02, 0x04, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x57, 0xFC, 0x58, 0x90, 0x50, 0x90, 0x90, 0x90, 0x10, 0x90, 0x10, 0x94, 0x17, 0xFE, 0x28, 0x00, 0x24, 0x90, 0x44, 0x88, 0x81, 0x0C, 0x02, 0x04, 0x10, 0x00, 0x10, 0x08, 0x15, 0xFC, 0x7E, 0x20, 0x54, 0x20, 0x54, 0x20, 0x54, 0x20, 0x54, 0x20, 0x7C, 0x20, 0x50, 0x20, 0x10, 0x20, 0x14, 0x20, 0x1E, 0x20, 0xE2, 0x24, 0x47, 0xFE, 0x00, 0x00, 0x40, 0x20, 0x30, 0x48, 0x10, 0xFC, 0x02, 0x88, 0x9F, 0xA8, 0x64, 0x88, 0x24, 0xA8, 0x04, 0x90, 0x14, 0x84, 0x14, 0xFE, 0xE7, 0x04, 0x3C, 0x24, 0x29, 0xF4, 0x20, 0x04, 0x20, 0x14, 0x20, 0x08, 0x42, 0x10, 0x32, 0x10, 0x12, 0x10, 0x02, 0x10, 0x8F, 0xFC, 0x62, 0x10, 0x22, 0x10, 0x0A, 0x10, 0x12, 0x14, 0x3F, 0xFE, 0xE0, 0x00, 0x22, 0x20, 0x22, 0x10, 0x24, 0x08, 0x24, 0x0C, 0x28, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFC, 0x40, 0x04, 0x82, 0x08, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x80, 0x08, 0x80, 0x09, 0x00, 0x11, 0x00, 0x12, 0x20, 0x24, 0x10, 0x4F, 0xF8, 0x00, 0x08, 0x04, 0x20, 0xFE, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x40, 0x44, 0x80, 0x7E, 0x80, 0x04, 0x80, 0x04, 0x90, 0x05, 0x08, 0x45, 0x04, 0x2B, 0xFC, 0x10, 0x04, 0x10, 0x00, 0x10, 0x08, 0x23, 0xFC, 0x20, 0x20, 0x44, 0x20, 0xF8, 0x20, 0x10, 0x20, 0x20, 0x20, 0x40, 0x20, 0xFC, 0x20, 0x40, 0x20, 0x00, 0x20, 0x1C, 0x20, 0xE0, 0x24, 0x47, 0xFE, 0x00, 0x00, 0x01, 0x08, 0x09, 0x7C, 0x7D, 0x08, 0x4A, 0x08, 0x4A, 0xFE, 0x4E, 0x00, 0x4A, 0x40, 0x4A, 0x7E, 0x4A, 0x90, 0x4A, 0x14, 0x4B, 0xFE, 0x7A, 0x10, 0x4A, 0x20, 0x02, 0x28, 0x02, 0x46, 0x02, 0x82, 0x08, 0x10, 0x0B, 0xF8, 0x08, 0x10, 0x10, 0x10, 0x17, 0xFC, 0x32, 0x00, 0x52, 0x08, 0x93, 0xFC, 0x14, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x10, 0x90, 0x11, 0x0E, 0x16, 0x04, 0x05, 0x08, 0x89, 0xFC, 0x51, 0x08, 0x22, 0x08, 0x53, 0xFE, 0x96, 0x00, 0x1A, 0x88, 0x12, 0xFC, 0x33, 0x20, 0x52, 0x24, 0x93, 0xFE, 0x12, 0x20, 0x12, 0x20, 0x12, 0x50, 0x52, 0x8E, 0x23, 0x04, 0x00, 0x10, 0x07, 0xD0, 0x78, 0x50, 0x48, 0x90, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x50, 0x49, 0x90, 0x4F, 0x10, 0x49, 0x10, 0x79, 0x10, 0x49, 0x12, 0x01, 0x12, 0x05, 0x0E, 0x02, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x2F, 0xFC, 0x28, 0x08, 0x2F, 0xF8, 0x28, 0x08, 0x2F, 0xF8, 0x20, 0x00, 0x2F, 0xF8, 0x20, 0x40, 0x20, 0x84, 0x5F, 0xFE, 0x40, 0x80, 0x82, 0x80, 0x01, 0x00, 0x10, 0x10, 0x13, 0xF8, 0x20, 0x10, 0x28, 0x14, 0x6F, 0xFE, 0xA9, 0x00, 0x29, 0x08, 0x2B, 0xFC, 0x2C, 0x40, 0x28, 0x44, 0x2F, 0xFE, 0x28, 0x40, 0x28, 0xA0, 0x21, 0x10, 0x22, 0x0E, 0x24, 0x04, 0x00, 0x10, 0x00, 0x78, 0x3F, 0x80, 0x20, 0x00, 0x20, 0x04, 0x3F, 0xFE, 0x20, 0x00, 0x20, 0x08, 0x27, 0xFC, 0x24, 0x08, 0x24, 0x08, 0x24, 0x08, 0x44, 0x08, 0x44, 0x08, 0x87, 0xF8, 0x04, 0x08, 0x00, 0x08, 0x08, 0x1C, 0x7F, 0xE0, 0x48, 0x40, 0x4A, 0x48, 0x49, 0x58, 0x49, 0x60, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x40, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x01, 0x40, 0x00, 0x80, 0x00, 0x78, 0x3F, 0x80, 0x01, 0x00, 0x01, 0x00, 0x11, 0x10, 0x0D, 0x30, 0x05, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x08, 0x00, 0x08, 0x08, 0x0F, 0xFC, 0x12, 0x48, 0x12, 0x48, 0x22, 0x48, 0x44, 0x88, 0x04, 0x88, 0x09, 0x28, 0x12, 0x10, 0x02, 0x00, 0x29, 0x88, 0x28, 0xA4, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x00, 0x01, 0x04, 0x11, 0x3E, 0xF9, 0x24, 0x27, 0xE4, 0x21, 0x24, 0x21, 0x3C, 0xF9, 0x24, 0x27, 0xA4, 0x24, 0xA4, 0x24, 0xBC, 0x24, 0xA4, 0x3C, 0xA4, 0xE7, 0xA4, 0x44, 0x44, 0x00, 0x94, 0x01, 0x08, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x44, 0x84, 0x40, 0x24, 0x48, 0x14, 0x58, 0x0C, 0x60, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x7C, 0x09, 0x44, 0x7F, 0xC4, 0x08, 0x7C, 0x0A, 0x44, 0x3F, 0x44, 0x22, 0x7C, 0x22, 0x44, 0x22, 0x44, 0x3E, 0x44, 0x22, 0x94, 0x01, 0x08, 0x08, 0x04, 0x08, 0x7E, 0x08, 0x44, 0x09, 0x44, 0xFF, 0xC4, 0x08, 0x7C, 0x08, 0x44, 0x0A, 0x44, 0x3F, 0x44, 0x22, 0x7C, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x3E, 0x44, 0x22, 0x94, 0x01, 0x08, 0x21, 0x04, 0x21, 0x3E, 0x21, 0x24, 0x21, 0x24, 0xF9, 0x24, 0xAF, 0xFC, 0xA9, 0x24, 0xA9, 0x24, 0xAB, 0xA4, 0xFA, 0xBC, 0xA2, 0xA4, 0x2A, 0xA4, 0x3B, 0xA4, 0xEA, 0x44, 0x00, 0x94, 0x01, 0x08, 0x00, 0x08, 0x88, 0x1C, 0x53, 0xE0, 0x22, 0x08, 0x52, 0x48, 0x92, 0x48, 0x12, 0x48, 0x12, 0x48, 0x32, 0x48, 0x52, 0x48, 0x92, 0x48, 0x12, 0xA8, 0x14, 0x94, 0x15, 0xF6, 0x58, 0x04, 0x20, 0x00, 0x11, 0x04, 0x11, 0x3E, 0x55, 0x24, 0x39, 0x24, 0x17, 0xE4, 0x11, 0x3C, 0xFD, 0x24, 0x33, 0xA4, 0x3A, 0xA4, 0x56, 0xBC, 0x52, 0xA4, 0x93, 0xA4, 0x12, 0x24, 0x10, 0x44, 0x10, 0x94, 0x11, 0x08, 0x42, 0x04, 0x32, 0x3E, 0x12, 0x24, 0x02, 0x24, 0x9F, 0xE4, 0x62, 0x3C, 0x22, 0xA4, 0x0F, 0xE4, 0x18, 0xA4, 0x28, 0xBC, 0xC8, 0xA4, 0x48, 0xA4, 0x48, 0xA4, 0x4F, 0xA4, 0x48, 0x54, 0x40, 0x88, 0x00, 0x08, 0xF8, 0x1C, 0x0B, 0xE8, 0x0A, 0x48, 0x0A, 0x48, 0x7A, 0x48, 0x42, 0x48, 0x42, 0x48, 0x42, 0x48, 0x7A, 0x48, 0x0A, 0x48, 0x0A, 0x48, 0x0A, 0xA8, 0x0A, 0x94, 0x54, 0xF6, 0x28, 0x04, 0x01, 0x20, 0x01, 0xF0, 0x01, 0x00, 0x3F, 0xFC, 0x22, 0x04, 0x22, 0x68, 0x3F, 0x80, 0x22, 0x08, 0x21, 0xF8, 0x20, 0x40, 0x27, 0xE0, 0x24, 0x40, 0x24, 0x40, 0x24, 0x44, 0x48, 0x44, 0x90, 0x3C, 0x00, 0x48, 0x08, 0x7C, 0x7C, 0x40, 0x4B, 0xFE, 0x4A, 0x42, 0x4A, 0x5C, 0x4B, 0xE0, 0x4A, 0x44, 0x4A, 0x3C, 0x4A, 0x10, 0x4A, 0xF8, 0x7A, 0x90, 0x4C, 0x90, 0x08, 0x92, 0x11, 0x12, 0x06, 0x0E, 0x10, 0x80, 0x10, 0x60, 0x10, 0x24, 0x13, 0xFE, 0xFE, 0x04, 0x12, 0x04, 0x16, 0x04, 0x1B, 0xFC, 0x32, 0x04, 0xD2, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x14, 0x00, 0x54, 0x00, 0x28, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x08, 0x00, 0x08, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x1F, 0xE0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x40, 0x60, 0x30, 0x24, 0x13, 0xFE, 0x82, 0x04, 0x62, 0x04, 0x22, 0x04, 0x0B, 0xFC, 0x12, 0x04, 0x12, 0x00, 0xE2, 0x00, 0x22, 0x00, 0x22, 0x00, 0x24, 0x00, 0x24, 0x00, 0x28, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x3F, 0xFC, 0x20, 0x04, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x08, 0x80, 0x10, 0x88, 0x10, 0x98, 0x30, 0xA0, 0x50, 0xC0, 0x90, 0x80, 0x11, 0x80, 0x12, 0x82, 0x14, 0x82, 0x10, 0x7E, 0x10, 0x00, 0x00, 0xA0, 0x08, 0xA4, 0x7D, 0x2C, 0x49, 0x30, 0x4B, 0x60, 0x4D, 0x22, 0x49, 0x22, 0x49, 0x1E, 0x49, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x04, 0x40, 0x04, 0x48, 0x08, 0x58, 0x08, 0x60, 0x18, 0xC0, 0x29, 0x40, 0x4A, 0x44, 0x08, 0x44, 0x09, 0x3C, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x83, 0xF8, 0x4A, 0x08, 0x2B, 0xC8, 0x12, 0x48, 0x32, 0x48, 0x57, 0xFE, 0x94, 0x02, 0x1B, 0xFC, 0x32, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0xA2, 0x28, 0x42, 0x10, 0x43, 0xF8, 0x32, 0x08, 0x13, 0xC8, 0x02, 0x48, 0x82, 0x48, 0x4F, 0xFE, 0x48, 0x02, 0x13, 0xFC, 0x12, 0x08, 0x23, 0xF8, 0xE2, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x22, 0x28, 0x22, 0x10, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x51, 0x14, 0x51, 0x14, 0x5F, 0xF4, 0x51, 0x14, 0x51, 0x14, 0x51, 0x14, 0x5F, 0xF4, 0x50, 0x14, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x10, 0x04, 0x14, 0x04, 0x12, 0x04, 0x10, 0x24, 0x13, 0xA4, 0xFC, 0x24, 0x10, 0x24, 0x10, 0x24, 0x11, 0x24, 0x0B, 0x24, 0x0C, 0x24, 0x08, 0x24, 0x14, 0x04, 0x24, 0x84, 0x42, 0x94, 0x01, 0x88, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x10, 0x88, 0x10, 0x98, 0x30, 0xA0, 0x50, 0xC0, 0x90, 0x80, 0x11, 0x80, 0x12, 0x80, 0x14, 0x80, 0x10, 0x80, 0x10, 0x82, 0x10, 0x82, 0x10, 0x7E, 0x10, 0x00, 0x00, 0x10, 0x40, 0x38, 0x33, 0xC0, 0x10, 0x40, 0x00, 0x40, 0x00, 0x44, 0xF7, 0xFE, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x16, 0x08, 0x1A, 0x08, 0x13, 0xF8, 0x02, 0x08, 0x10, 0x40, 0x10, 0x88, 0x13, 0xFC, 0x12, 0x48, 0xFE, 0x48, 0x13, 0xF8, 0x3A, 0x48, 0x36, 0x48, 0x53, 0xF8, 0x52, 0x80, 0x90, 0xC8, 0x11, 0x54, 0x11, 0x5C, 0x12, 0x42, 0x14, 0x42, 0x18, 0x3E, 0x08, 0x00, 0x08, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x22, 0x04, 0x4A, 0xF4, 0x8A, 0x94, 0x12, 0x94, 0x32, 0x94, 0x52, 0x94, 0x92, 0xF4, 0x12, 0x04, 0x12, 0x04, 0x13, 0xFC, 0x12, 0x04, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x20, 0x58, 0x20, 0x54, 0x40, 0x50, 0x40, 0x90, 0xD0, 0x11, 0x4C, 0x12, 0x46, 0x14, 0x42, 0x18, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x41, 0x40, 0x31, 0x20, 0x11, 0x04, 0x03, 0xFE, 0x86, 0x20, 0x6A, 0x28, 0x23, 0xFC, 0x0A, 0x20, 0x12, 0x28, 0x23, 0xFC, 0xE2, 0x20, 0x22, 0x20, 0x22, 0x24, 0x23, 0xFE, 0x22, 0x00, 0x22, 0x00, 0x20, 0x00, 0x20, 0x04, 0x2F, 0xFE, 0x20, 0x20, 0xF8, 0x20, 0x20, 0x40, 0x20, 0x40, 0x20, 0xD0, 0x21, 0x4C, 0x2A, 0x46, 0x34, 0x42, 0xE8, 0x40, 0x40, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0xFC, 0x80, 0x04, 0xFC, 0x45, 0x04, 0x46, 0x48, 0x28, 0x40, 0x28, 0x40, 0x10, 0x40, 0x28, 0x40, 0x24, 0xA0, 0x44, 0xA0, 0x81, 0x10, 0x01, 0x08, 0x02, 0x0E, 0x0C, 0x04, 0x10, 0x00, 0xF8, 0x04, 0x27, 0xFE, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0xF8, 0x40, 0x20, 0xD0, 0x21, 0x4C, 0x22, 0x46, 0x24, 0x42, 0x20, 0x40, 0x38, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x00, 0x40, 0x10, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x00, 0xFF, 0xF8, 0x12, 0x08, 0x3A, 0x08, 0x36, 0x08, 0x53, 0xF8, 0x52, 0x08, 0x92, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x00, 0x00, 0x00, 0x40, 0x04, 0x2F, 0xFE, 0x20, 0x40, 0x00, 0x40, 0xE0, 0x80, 0x20, 0x80, 0x21, 0xA0, 0x22, 0x98, 0x24, 0x8C, 0x28, 0x84, 0x20, 0x80, 0x20, 0x80, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x10, 0x0C, 0x13, 0xF0, 0x22, 0x48, 0x21, 0x50, 0x44, 0x20, 0xFB, 0xFC, 0x10, 0x40, 0x27, 0xFE, 0x40, 0x80, 0xFC, 0xFC, 0x01, 0x88, 0x01, 0x50, 0x1A, 0x20, 0xE4, 0x50, 0x49, 0x8E, 0x02, 0x04, 0x10, 0x80, 0x10, 0x80, 0x11, 0xF0, 0x12, 0x20, 0xFC, 0x48, 0x13, 0xFC, 0x12, 0x48, 0x1E, 0x48, 0x32, 0x48, 0xD2, 0x48, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x52, 0x0E, 0x2C, 0x04, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x41, 0x04, 0x02, 0x00, 0x29, 0x90, 0x28, 0xAC, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x40, 0x08, 0x40, 0x7C, 0xF8, 0x49, 0x10, 0x4A, 0x24, 0x49, 0xFE, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x4F, 0xFE, 0x78, 0x20, 0x48, 0x50, 0x00, 0x88, 0x01, 0x06, 0x06, 0x04, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x11, 0x00, 0x51, 0xF0, 0x32, 0x20, 0x14, 0x48, 0x33, 0xFC, 0x52, 0x48, 0xD2, 0x48, 0x12, 0x48, 0x1F, 0xFE, 0x20, 0xA0, 0x21, 0x10, 0x42, 0x0E, 0x0C, 0x04, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x0F, 0xE0, 0x12, 0x10, 0x25, 0x1E, 0xDA, 0xA4, 0x04, 0xC0, 0x19, 0xA0, 0x62, 0x98, 0x0C, 0x88, 0x72, 0x80, 0x01, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0xF8, 0x15, 0x10, 0x5A, 0x24, 0x51, 0xFE, 0x51, 0x24, 0x91, 0x24, 0x11, 0x24, 0x11, 0x24, 0x17, 0xFE, 0x28, 0x20, 0x24, 0x50, 0x40, 0x88, 0x81, 0x06, 0x06, 0x04, 0x40, 0x80, 0x30, 0x80, 0x11, 0xF0, 0x02, 0x20, 0x84, 0x48, 0x63, 0xFC, 0x22, 0x48, 0x0A, 0x48, 0x12, 0x48, 0x12, 0x48, 0xEF, 0xFE, 0x20, 0x40, 0x20, 0xA0, 0x21, 0x10, 0x22, 0x0E, 0x2C, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x11, 0x00, 0x11, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x00, 0x11, 0x10, 0x1F, 0xF8, 0x10, 0x00, 0x08, 0x00, 0x08, 0x04, 0x0B, 0xFE, 0x10, 0x04, 0x10, 0x04, 0x20, 0x04, 0x42, 0x04, 0xFE, 0x04, 0x04, 0x04, 0x08, 0x04, 0x10, 0x04, 0x20, 0x04, 0x42, 0x04, 0xFF, 0x44, 0x01, 0x28, 0x00, 0x10, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x10, 0x00, 0x10, 0x20, 0x1F, 0xF0, 0x00, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x12, 0x21, 0x12, 0x41, 0x0E, 0x11, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x11, 0x10, 0x58, 0x44, 0x57, 0xFE, 0x52, 0x00, 0x92, 0x08, 0x13, 0xFC, 0x10, 0x00, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x4A, 0x14, 0x4A, 0x18, 0x46, 0x04, 0x40, 0x04, 0x50, 0x3F, 0xF8, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x04, 0x60, 0x18, 0x18, 0x60, 0x04, 0x00, 0x88, 0x08, 0x88, 0xFD, 0xFC, 0x10, 0x88, 0x10, 0x88, 0x23, 0xFE, 0x3C, 0x24, 0x65, 0xFE, 0xA5, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x25, 0xFC, 0x3C, 0x00, 0x24, 0x88, 0x01, 0x06, 0x06, 0x02, 0x10, 0x20, 0x10, 0x44, 0x11, 0xFE, 0x15, 0x04, 0x7F, 0xFC, 0x55, 0x04, 0x55, 0xFC, 0x54, 0x04, 0x57, 0xFE, 0x7C, 0x20, 0x50, 0x28, 0x15, 0xFC, 0x1C, 0x20, 0xF4, 0x24, 0x43, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x50, 0x04, 0x40, 0x7F, 0xFC, 0x04, 0x40, 0xFF, 0xFE, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x0C, 0x60, 0x30, 0x18, 0x02, 0x00, 0x04, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x22, 0x08, 0x2F, 0xE8, 0x28, 0x28, 0x2F, 0xE8, 0x28, 0x28, 0x2F, 0xE8, 0x20, 0x08, 0x2F, 0xE8, 0x21, 0x08, 0x27, 0xC8, 0x21, 0x0A, 0x5F, 0xFA, 0x40, 0x0A, 0x80, 0x04, 0x10, 0x40, 0x10, 0x88, 0x13, 0xFC, 0x12, 0x08, 0x5B, 0xF8, 0x56, 0x08, 0x53, 0xF8, 0x90, 0x00, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x50, 0x13, 0xF8, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x88, 0x13, 0xFC, 0x16, 0x08, 0x5B, 0xF8, 0x52, 0x08, 0x53, 0xF8, 0x90, 0x00, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x50, 0x13, 0xF8, 0x28, 0x40, 0x44, 0x44, 0x8F, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x11, 0x10, 0x09, 0x24, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x42, 0x10, 0x42, 0x60, 0x3E, 0x10, 0x04, 0x11, 0xFE, 0x15, 0x04, 0x7F, 0xFC, 0x55, 0x04, 0x55, 0xFC, 0x54, 0x20, 0x55, 0x24, 0x54, 0xAC, 0x54, 0x30, 0x57, 0xFE, 0x5C, 0x90, 0x10, 0x90, 0x11, 0x12, 0x11, 0x12, 0x16, 0x0E, 0x10, 0x40, 0x10, 0x40, 0x12, 0x44, 0x11, 0x4C, 0x59, 0x50, 0x54, 0x44, 0x57, 0xFE, 0x90, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x20, 0x11, 0x20, 0x11, 0x22, 0x12, 0x22, 0x12, 0x1E, 0x1C, 0x00, 0x01, 0x10, 0x41, 0x14, 0x2F, 0xFE, 0x21, 0x10, 0x00, 0x44, 0x0F, 0xFE, 0xE2, 0x00, 0x22, 0x08, 0x23, 0xFC, 0x20, 0x00, 0x22, 0x48, 0x22, 0x48, 0x2A, 0x48, 0x32, 0x4A, 0x24, 0x4A, 0x08, 0x46, 0x04, 0x00, 0x04, 0x00, 0x04, 0x04, 0xFF, 0xFE, 0x04, 0x80, 0x08, 0x80, 0x08, 0x88, 0x0C, 0x98, 0x12, 0xA0, 0x10, 0x80, 0x21, 0x40, 0x41, 0x40, 0x82, 0x20, 0x02, 0x10, 0x04, 0x0E, 0x18, 0x04, 0x10, 0x00, 0x13, 0xFE, 0x12, 0x44, 0x14, 0x48, 0xFB, 0xFC, 0x10, 0x80, 0x11, 0x20, 0x1A, 0x28, 0x33, 0xFC, 0xD0, 0x20, 0x10, 0x24, 0x17, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x50, 0x20, 0x20, 0x20, 0x10, 0x00, 0x11, 0xFE, 0x95, 0x04, 0x56, 0x40, 0x38, 0x48, 0x11, 0xFC, 0xFE, 0x80, 0x29, 0x20, 0x29, 0xFC, 0x28, 0x20, 0x28, 0x24, 0x2B, 0xFE, 0x4C, 0x20, 0x48, 0x20, 0x80, 0x20, 0x00, 0x20, 0x12, 0x10, 0x12, 0x10, 0x2A, 0x90, 0x2A, 0x90, 0x4F, 0xBE, 0x90, 0x44, 0x1F, 0x84, 0x24, 0xA4, 0x6F, 0x24, 0xA2, 0x24, 0x25, 0x28, 0x2F, 0x98, 0x22, 0x10, 0x2A, 0xA8, 0x32, 0x46, 0x26, 0x84, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x17, 0xFE, 0x58, 0x80, 0x55, 0x20, 0x51, 0x20, 0x91, 0x24, 0x12, 0xAC, 0x12, 0x70, 0x12, 0x20, 0x14, 0x20, 0x14, 0x50, 0x18, 0x50, 0x10, 0x8E, 0x13, 0x04, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x7D, 0x04, 0x55, 0x74, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x7D, 0x54, 0x11, 0x54, 0x11, 0x74, 0x15, 0x04, 0xFD, 0x04, 0x05, 0xFC, 0x01, 0x04, 0x00, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x40, 0x44, 0x47, 0xE4, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x47, 0xC4, 0x44, 0x44, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x00, 0x10, 0x08, 0x66, 0xFC, 0x42, 0x88, 0x42, 0x88, 0x66, 0x88, 0x42, 0x88, 0x43, 0x06, 0x7E, 0x00, 0x01, 0xFC, 0x7E, 0x88, 0x08, 0x88, 0x08, 0x50, 0x0E, 0x20, 0xF8, 0x50, 0x40, 0x8E, 0x03, 0x04, 0x11, 0x00, 0x11, 0x08, 0x11, 0xFC, 0x1A, 0x00, 0x55, 0xF8, 0x51, 0x08, 0x51, 0x48, 0x91, 0x28, 0x1F, 0xFE, 0x12, 0x08, 0x12, 0x88, 0x12, 0x48, 0x13, 0xFC, 0x10, 0x08, 0x10, 0x28, 0x10, 0x10, 0x08, 0x20, 0x7E, 0xFC, 0x08, 0x20, 0x3E, 0xF8, 0x08, 0x20, 0x7E, 0xFC, 0x08, 0x20, 0x3F, 0xF8, 0x00, 0x08, 0xFF, 0xFE, 0x00, 0x08, 0x3F, 0xF8, 0x09, 0x00, 0x28, 0xA8, 0x48, 0x24, 0x07, 0xE0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x09, 0x20, 0x09, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x00, 0x20, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x10, 0x7F, 0xF8, 0x02, 0x04, 0x29, 0x90, 0x28, 0x8C, 0x48, 0x24, 0x07, 0xE0, 0x01, 0x00, 0x01, 0x08, 0x79, 0xFC, 0x4A, 0x00, 0x4D, 0xF8, 0x49, 0x08, 0x49, 0x48, 0x79, 0x28, 0x4F, 0xFE, 0x4A, 0x08, 0x4A, 0x88, 0x4A, 0x48, 0x7B, 0xFC, 0x48, 0x08, 0x00, 0x50, 0x00, 0x20, 0x04, 0x20, 0x7E, 0x20, 0x44, 0x24, 0x57, 0xFE, 0x54, 0x40, 0x54, 0x84, 0x55, 0xFE, 0x56, 0x84, 0x54, 0x84, 0x54, 0xFC, 0x54, 0x84, 0x54, 0x84, 0x28, 0xFC, 0x24, 0x84, 0x44, 0x94, 0x80, 0x88, 0x08, 0x20, 0x1C, 0x20, 0xF1, 0x24, 0x11, 0x24, 0x11, 0x24, 0xFD, 0xFC, 0x11, 0x44, 0x38, 0x40, 0x34, 0xFE, 0x51, 0x04, 0x52, 0x84, 0x90, 0x48, 0x10, 0x30, 0x10, 0x20, 0x10, 0xC0, 0x17, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x2F, 0xEE, 0xC0, 0x04, 0x00, 0x10, 0x3F, 0xF8, 0x02, 0x00, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x00, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x14, 0x90, 0x59, 0x08, 0x52, 0x26, 0x55, 0xF4, 0x90, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x40, 0x28, 0x40, 0x24, 0x90, 0x41, 0x08, 0x83, 0xFC, 0x00, 0x04, 0x00, 0x00, 0x40, 0x04, 0x37, 0xFE, 0x14, 0x00, 0x04, 0x00, 0x84, 0x00, 0x64, 0x00, 0x24, 0x00, 0x0C, 0x00, 0x14, 0x00, 0xE4, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x04, 0x27, 0xFE, 0x20, 0x00, 0x00, 0x40, 0x40, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x00, 0x48, 0x07, 0xFC, 0xE0, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x44, 0x20, 0x44, 0x24, 0x44, 0x28, 0x54, 0x30, 0x48, 0x20, 0x40, 0x00, 0x40, 0x01, 0x00, 0x41, 0x08, 0x31, 0xFC, 0x12, 0x00, 0x05, 0xF8, 0x01, 0x08, 0xF1, 0x48, 0x11, 0x28, 0x17, 0xFE, 0x12, 0x08, 0x12, 0x88, 0x12, 0x48, 0x17, 0xFC, 0x18, 0x08, 0x10, 0x28, 0x00, 0x10, 0x10, 0x40, 0x10, 0x40, 0x20, 0xA0, 0x20, 0xA0, 0x49, 0x10, 0xFA, 0x0E, 0x15, 0xF4, 0x20, 0x00, 0x40, 0x08, 0xFB, 0xFC, 0x00, 0x40, 0x00, 0x40, 0x18, 0x90, 0xE1, 0x08, 0x43, 0xFC, 0x00, 0x04, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x7F, 0xFE, 0x42, 0x04, 0x82, 0x08, 0x3F, 0xF8, 0x05, 0x00, 0x09, 0x20, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x78, 0x3F, 0x80, 0x21, 0x00, 0x21, 0x10, 0x3F, 0xF8, 0x20, 0x80, 0x28, 0x42, 0x30, 0x32, 0x20, 0x0E, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x0C, 0x11, 0xF0, 0x11, 0x20, 0x11, 0x24, 0xFD, 0xFE, 0x25, 0x10, 0x25, 0x50, 0x25, 0x8A, 0x24, 0x06, 0x45, 0xFC, 0x29, 0x04, 0x11, 0x04, 0x29, 0xFC, 0x45, 0x04, 0x85, 0x04, 0x01, 0xFC, 0x00, 0x80, 0x11, 0x08, 0x7B, 0xFC, 0x02, 0x48, 0x0A, 0x48, 0xFF, 0xF8, 0x22, 0x48, 0x22, 0x48, 0x23, 0xF8, 0x42, 0x80, 0x48, 0xC8, 0xFD, 0x48, 0x05, 0x54, 0x02, 0x5C, 0x04, 0x42, 0x08, 0x3E, 0x40, 0x00, 0x27, 0xFE, 0x24, 0x84, 0x08, 0x88, 0x81, 0x00, 0x67, 0xFC, 0x21, 0x40, 0x0A, 0x40, 0x14, 0x48, 0x27, 0xFC, 0xE0, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x40, 0x08, 0x37, 0xFC, 0x14, 0x08, 0x04, 0x08, 0x87, 0xF8, 0x64, 0x08, 0x24, 0x08, 0x0F, 0xF8, 0x10, 0x40, 0x24, 0x48, 0xE7, 0x58, 0x24, 0x60, 0x24, 0x40, 0x24, 0xC2, 0x25, 0x42, 0x26, 0x3E, 0x20, 0x00, 0x10, 0x50, 0xFE, 0x48, 0x92, 0x84, 0x7D, 0x20, 0x10, 0x20, 0x7C, 0x50, 0x10, 0x48, 0xFE, 0x86, 0x11, 0xFC, 0x7C, 0x88, 0x44, 0x88, 0x44, 0x88, 0x44, 0x88, 0x7C, 0xF8, 0x44, 0x88, 0x40, 0x10, 0x30, 0x38, 0x17, 0xC0, 0x00, 0x40, 0x80, 0x40, 0x60, 0x44, 0x2F, 0xFE, 0x08, 0x40, 0x10, 0x48, 0x23, 0xFC, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x12, 0x44, 0x32, 0x4C, 0x52, 0x50, 0x94, 0x60, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x11, 0x10, 0x12, 0x08, 0x14, 0x0E, 0x18, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x08, 0x11, 0x18, 0x11, 0x20, 0x21, 0x40, 0x42, 0x80, 0x02, 0x80, 0x04, 0x40, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x20, 0x0E, 0x40, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x24, 0x28, 0x18, 0x24, 0x10, 0x20, 0x2B, 0xFE, 0x48, 0x20, 0x08, 0x20, 0x18, 0x20, 0x28, 0x50, 0xC8, 0x50, 0x08, 0x88, 0x29, 0x06, 0x12, 0x04, 0x00, 0x50, 0x00, 0x48, 0x00, 0x40, 0xFF, 0xFE, 0x00, 0x40, 0x02, 0x40, 0x3F, 0x48, 0x22, 0x48, 0x22, 0x48, 0x22, 0x50, 0x3E, 0x50, 0x20, 0x20, 0x07, 0x22, 0x78, 0x52, 0x00, 0x8A, 0x03, 0x04, 0x00, 0xA0, 0x00, 0x94, 0xFF, 0xFE, 0x00, 0x80, 0x3E, 0x88, 0x22, 0x88, 0x3E, 0x50, 0x20, 0x50, 0x0E, 0x22, 0x70, 0x52, 0x00, 0x8E, 0x02, 0x00, 0x29, 0x90, 0x28, 0xAC, 0x48, 0x24, 0x07, 0xE0, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x9D, 0x74, 0x01, 0x00, 0x1D, 0x70, 0x08, 0x80, 0x1F, 0xFC, 0x30, 0x80, 0x57, 0xF8, 0x90, 0x80, 0x17, 0xF8, 0x10, 0x80, 0x1F, 0xFE, 0x10, 0x00, 0x08, 0x80, 0x08, 0x88, 0x10, 0x98, 0x30, 0xE0, 0x57, 0x82, 0x90, 0x82, 0x10, 0x7E, 0x10, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x40, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x02, 0x08, 0xFA, 0x08, 0x13, 0xF8, 0x20, 0x40, 0x70, 0x44, 0xAF, 0xFE, 0x24, 0x44, 0x24, 0x44, 0x24, 0xB4, 0x25, 0x14, 0x24, 0x04, 0x24, 0x14, 0x24, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x10, 0x08, 0x17, 0xFC, 0x11, 0x08, 0x11, 0x08, 0x11, 0x10, 0xFD, 0x10, 0x11, 0x3C, 0x11, 0x84, 0x11, 0x88, 0x11, 0x48, 0x1E, 0x50, 0xF2, 0x20, 0x44, 0x50, 0x04, 0x90, 0x09, 0x0E, 0x12, 0x04, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x24, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x30, 0x31, 0x4E, 0xCF, 0xE4, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x10, 0x00, 0x10, 0x10, 0x11, 0xF8, 0x11, 0x10, 0xFD, 0x10, 0x11, 0x10, 0x31, 0x10, 0x39, 0x10, 0x55, 0x10, 0x51, 0x10, 0x91, 0x10, 0x11, 0x10, 0x11, 0x12, 0x12, 0x12, 0x14, 0x0E, 0x18, 0x00, 0x00, 0x20, 0x04, 0x28, 0x7F, 0xFC, 0x54, 0x20, 0x54, 0x50, 0x54, 0x88, 0x7F, 0xFE, 0x54, 0x08, 0x55, 0xE8, 0x55, 0x28, 0x7D, 0x28, 0x45, 0x28, 0x01, 0xE8, 0x01, 0x08, 0x00, 0x28, 0x00, 0x10, 0x08, 0x50, 0x1C, 0x48, 0xF3, 0xFC, 0x10, 0xA0, 0x10, 0xA2, 0xFD, 0x3E, 0x13, 0x00, 0x31, 0xF0, 0x39, 0x04, 0x55, 0xFC, 0x50, 0x00, 0x91, 0xF8, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0xF8, 0x04, 0x00, 0x0E, 0x04, 0x78, 0xFE, 0x08, 0x84, 0x08, 0x84, 0xFE, 0x84, 0x08, 0x84, 0x18, 0x84, 0x1C, 0xFC, 0x2A, 0x84, 0x28, 0x00, 0x48, 0x88, 0x88, 0xC4, 0x09, 0x06, 0x0A, 0x02, 0x08, 0x00, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x88, 0x20, 0x3F, 0xF8, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x20, 0x18, 0x18, 0x20, 0x08, 0x04, 0x00, 0x3E, 0x08, 0x24, 0xFC, 0x24, 0x88, 0x24, 0x88, 0x3C, 0x88, 0x24, 0x88, 0x24, 0x88, 0x24, 0x88, 0x3C, 0x88, 0x24, 0x88, 0x24, 0x88, 0x24, 0x8A, 0x24, 0x8A, 0x4D, 0x06, 0x86, 0x00, 0x20, 0x00, 0x20, 0x10, 0x21, 0xF8, 0x3D, 0x10, 0x25, 0x10, 0x49, 0x10, 0x41, 0x10, 0xA1, 0x10, 0x21, 0x10, 0x21, 0x10, 0x21, 0x10, 0x25, 0x10, 0x29, 0x12, 0x32, 0x12, 0x24, 0x0E, 0x08, 0x00, 0x01, 0x00, 0x40, 0xC0, 0x20, 0x48, 0x2F, 0xFC, 0x01, 0x20, 0x01, 0x20, 0xE5, 0x28, 0x25, 0x24, 0x25, 0x24, 0x29, 0x24, 0x21, 0x20, 0x21, 0x20, 0x22, 0x60, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x02, 0x10, 0x44, 0x90, 0x2F, 0xD0, 0x28, 0x94, 0x0F, 0xBE, 0x88, 0xC4, 0x4F, 0xA4, 0x42, 0x28, 0x1F, 0xA8, 0x24, 0x28, 0xC7, 0x90, 0x44, 0x90, 0x44, 0xA8, 0x48, 0xA8, 0x4A, 0xC6, 0x51, 0x84, 0x00, 0x00, 0x20, 0x10, 0x11, 0xF8, 0x11, 0x10, 0x01, 0x10, 0xF1, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x15, 0x10, 0x19, 0x12, 0x12, 0x12, 0x04, 0x0E, 0x08, 0x00, 0x00, 0x40, 0x00, 0x88, 0x01, 0xFC, 0xFD, 0x08, 0x05, 0x48, 0x49, 0x08, 0x29, 0x28, 0x11, 0x10, 0x11, 0x04, 0x29, 0xFE, 0x24, 0x04, 0x40, 0x24, 0x87, 0xF4, 0x00, 0x04, 0x00, 0x14, 0x00, 0x08, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x10, 0x11, 0x10, 0xFD, 0x14, 0x25, 0x7E, 0x25, 0x44, 0x25, 0x44, 0x25, 0x44, 0x45, 0x44, 0x29, 0x7C, 0x11, 0x10, 0x29, 0x10, 0x45, 0x14, 0x85, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x10, 0x48, 0x27, 0xFC, 0x20, 0x40, 0x49, 0xF0, 0xF8, 0x40, 0x17, 0xFE, 0x20, 0x08, 0x43, 0xFC, 0xFA, 0x08, 0x02, 0x48, 0x02, 0x48, 0x1A, 0x48, 0xE0, 0x90, 0x41, 0x0C, 0x06, 0x04, 0x10, 0x08, 0x11, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x49, 0xF8, 0xF8, 0x04, 0x17, 0xFE, 0x21, 0x08, 0x41, 0xF8, 0xF9, 0x08, 0x01, 0xF8, 0x01, 0x08, 0x19, 0x08, 0xE7, 0xFE, 0x40, 0x08, 0x00, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x08, 0x17, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFD, 0x10, 0x11, 0x10, 0x31, 0x3C, 0x39, 0x84, 0x55, 0x88, 0x51, 0x48, 0x92, 0x50, 0x12, 0x20, 0x12, 0x50, 0x14, 0x88, 0x19, 0x0E, 0x12, 0x04, 0x10, 0x20, 0x14, 0x24, 0xFE, 0xFE, 0x10, 0x20, 0x14, 0x28, 0x7E, 0xFC, 0x54, 0xA8, 0x54, 0xA8, 0x54, 0xA8, 0x54, 0xA8, 0x38, 0x70, 0x54, 0xA8, 0x93, 0x26, 0x12, 0x24, 0x10, 0x20, 0x10, 0x20, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0xFD, 0x08, 0x21, 0xF8, 0x28, 0x04, 0x4B, 0xFE, 0x7D, 0x08, 0x09, 0xF8, 0x09, 0x08, 0x0F, 0xF8, 0xF9, 0x08, 0x49, 0x08, 0x0F, 0xFE, 0x08, 0x08, 0x08, 0x08, 0x10, 0x40, 0x14, 0x48, 0x3E, 0xFC, 0x49, 0x20, 0x90, 0x90, 0x7D, 0xFC, 0x10, 0x90, 0x7C, 0x94, 0x13, 0xFE, 0xFE, 0x08, 0x11, 0xFC, 0x39, 0x08, 0x55, 0xF8, 0x91, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x09, 0x00, 0x08, 0x90, 0x1F, 0xF8, 0x31, 0x00, 0x5F, 0xF0, 0x91, 0x00, 0x1F, 0xF0, 0x11, 0x00, 0x1F, 0xF8, 0x11, 0x00, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x00, 0x00, 0x7F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x40, 0x08, 0x40, 0x08, 0xF8, 0x08, 0x08, 0x14, 0x10, 0x12, 0x20, 0x11, 0x40, 0x20, 0x80, 0x21, 0x40, 0x42, 0x30, 0x84, 0x0E, 0x08, 0x04, 0x04, 0x00, 0x04, 0x00, 0x0F, 0xE0, 0x08, 0x40, 0x10, 0x88, 0x3F, 0xFC, 0x40, 0x08, 0x1F, 0xF8, 0x00, 0x08, 0x3F, 0xF8, 0x02, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x12, 0x00, 0x92, 0x08, 0x53, 0xFC, 0x54, 0x40, 0x18, 0x40, 0x30, 0x44, 0x5F, 0xFE, 0xD0, 0x40, 0x10, 0xA0, 0x20, 0xA0, 0x21, 0x10, 0x42, 0x0E, 0x0C, 0x04, 0x40, 0x08, 0x37, 0xFC, 0x11, 0x08, 0x01, 0x08, 0x81, 0x10, 0x61, 0x10, 0x25, 0x3C, 0x09, 0x84, 0x11, 0x88, 0x21, 0x48, 0xE2, 0x50, 0x22, 0x20, 0x22, 0x50, 0x24, 0x88, 0x29, 0x0E, 0x22, 0x04, 0x00, 0x04, 0x7E, 0xFE, 0x42, 0x84, 0x42, 0x84, 0x7E, 0x84, 0x42, 0x84, 0x42, 0x84, 0x7E, 0x84, 0x40, 0x84, 0x44, 0xA4, 0x44, 0x94, 0x4A, 0x88, 0x72, 0x80, 0x40, 0x80, 0x00, 0x80, 0x00, 0x80, 0x20, 0x20, 0x20, 0x14, 0x21, 0xFE, 0x21, 0x40, 0xF9, 0x48, 0x4D, 0x7C, 0x4B, 0x50, 0x49, 0x90, 0x49, 0x14, 0x8B, 0xFE, 0x55, 0x10, 0x51, 0x10, 0x22, 0x20, 0x52, 0x28, 0x8C, 0x46, 0x08, 0x82, 0x10, 0x08, 0x17, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x49, 0x10, 0xF9, 0x10, 0x11, 0x3C, 0x21, 0x84, 0x41, 0x88, 0xF9, 0x48, 0x02, 0x50, 0x02, 0x20, 0x1A, 0x50, 0xE4, 0x88, 0x49, 0x0E, 0x02, 0x04, 0x10, 0x80, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x08, 0xFD, 0x10, 0x10, 0xA0, 0x14, 0x40, 0x19, 0xB0, 0x36, 0x0E, 0xD1, 0x14, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x52, 0x10, 0x24, 0x10, 0x00, 0x40, 0x0F, 0xE0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x3E, 0x40, 0x00, 0x01, 0x00, 0x21, 0x08, 0x11, 0x10, 0x0A, 0xA0, 0x12, 0x98, 0x24, 0x48, 0x08, 0x20, 0x1F, 0xF0, 0x28, 0x2E, 0xCF, 0xE4, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x08, 0xA0, 0x08, 0x40, 0x00, 0x00, 0x00, 0x10, 0x7F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x3F, 0xF0, 0x20, 0x10, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x04, 0x20, 0x04, 0x1F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x04, 0x1F, 0x24, 0x22, 0x24, 0x7F, 0xA4, 0x24, 0xA4, 0x3F, 0xA4, 0x24, 0xA4, 0x3F, 0xA4, 0x20, 0x04, 0x03, 0x84, 0x7C, 0x14, 0x00, 0x08, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0xFC, 0x40, 0x10, 0x40, 0x10, 0x40, 0x13, 0xF8, 0x1A, 0x08, 0x31, 0x10, 0xD1, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0xB0, 0x51, 0x0E, 0x26, 0x04, 0x02, 0x80, 0x7E, 0xF8, 0x02, 0x82, 0xFE, 0xFE, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x40, 0xFF, 0xFE, 0x10, 0x10, 0x60, 0x0C, 0x00, 0xE0, 0x1F, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x6F, 0xE8, 0x00, 0x40, 0x00, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0x44, 0x17, 0xFE, 0x10, 0x40, 0x30, 0x40, 0x50, 0x40, 0x93, 0xF8, 0x12, 0x08, 0x11, 0x10, 0x11, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0xB0, 0x11, 0x0E, 0x16, 0x04, 0x10, 0x00, 0x10, 0x00, 0x1E, 0xFC, 0x22, 0x88, 0x52, 0x50, 0xCC, 0x20, 0x28, 0x20, 0x17, 0xD0, 0x20, 0x0E, 0xC0, 0x24, 0x1F, 0xF0, 0x01, 0x00, 0x09, 0x40, 0x11, 0x30, 0x25, 0x10, 0x02, 0x00, 0x08, 0x04, 0x04, 0x84, 0x7F, 0xC4, 0x11, 0x24, 0x0A, 0x24, 0x04, 0x24, 0x0A, 0x24, 0x31, 0xA4, 0xD1, 0x64, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x04, 0x21, 0x04, 0x41, 0x14, 0x00, 0x08, 0x10, 0x38, 0x13, 0xC0, 0x10, 0x40, 0x18, 0x48, 0x57, 0xFC, 0x50, 0xE0, 0x51, 0x50, 0x92, 0x4E, 0x15, 0xF4, 0x10, 0x20, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x00, 0x80, 0x40, 0x44, 0x37, 0xFE, 0x11, 0x10, 0x80, 0xA0, 0x60, 0x40, 0x21, 0xB0, 0x0E, 0x0E, 0x11, 0x14, 0x21, 0x10, 0xE1, 0x10, 0x21, 0x10, 0x21, 0x10, 0x22, 0x10, 0x24, 0x10, 0x20, 0x10, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x24, 0x1F, 0xF0, 0x02, 0x80, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0x90, 0x10, 0x90, 0x10, 0x90, 0x1F, 0x90, 0x10, 0x50, 0x00, 0x20, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x88, 0x04, 0x0E, 0xF8, 0x08, 0x08, 0x08, 0x88, 0xFF, 0x88, 0x08, 0x50, 0x2C, 0x50, 0x2B, 0x20, 0x49, 0x20, 0x88, 0x50, 0x28, 0x8E, 0x13, 0x04, 0x00, 0x40, 0x20, 0x40, 0x10, 0x40, 0x10, 0x40, 0x00, 0x40, 0x00, 0x44, 0xF7, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x14, 0x40, 0x18, 0x40, 0x10, 0x40, 0x00, 0x40, 0x00, 0x00, 0x20, 0x08, 0x17, 0xFC, 0x10, 0x08, 0x00, 0x08, 0x00, 0x08, 0xF0, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x00, 0x12, 0x00, 0x12, 0x02, 0x16, 0x02, 0x1A, 0x02, 0x11, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7D, 0xFC, 0x44, 0x20, 0x44, 0x20, 0x7D, 0x20, 0x45, 0x20, 0x45, 0x24, 0x45, 0xFE, 0x7C, 0x20, 0x40, 0x20, 0x48, 0x50, 0x44, 0x50, 0x5C, 0x92, 0x60, 0x92, 0x41, 0x0E, 0x06, 0x00, 0x00, 0x10, 0x7F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x3F, 0xF0, 0x20, 0x10, 0x20, 0x04, 0x20, 0x04, 0x1F, 0xFC, 0x00, 0x00, 0x52, 0x04, 0x51, 0x82, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x08, 0x7D, 0xFC, 0x44, 0x00, 0x48, 0x00, 0x48, 0x00, 0x50, 0x04, 0x4B, 0xFE, 0x48, 0x20, 0x44, 0x20, 0x44, 0xA8, 0x44, 0xA4, 0x69, 0x22, 0x52, 0x22, 0x40, 0x20, 0x40, 0xA0, 0x40, 0x40, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0xFC, 0x20, 0x24, 0x20, 0x24, 0x20, 0x25, 0xFC, 0x25, 0x04, 0x44, 0x88, 0x28, 0x88, 0x10, 0x50, 0x28, 0x20, 0x44, 0x50, 0x84, 0x8E, 0x03, 0x04, 0x10, 0x20, 0x12, 0x20, 0x22, 0x20, 0x23, 0x24, 0x4A, 0xAC, 0xFA, 0x70, 0x12, 0x20, 0x23, 0xFC, 0x42, 0x20, 0xFA, 0x70, 0x42, 0xAC, 0x03, 0x24, 0x1A, 0x20, 0xE2, 0x24, 0x43, 0xFE, 0x00, 0x00, 0x08, 0x00, 0x08, 0x04, 0x13, 0xFE, 0x10, 0x04, 0x24, 0x04, 0xFC, 0x04, 0x08, 0x04, 0x11, 0xFC, 0x21, 0x04, 0xFD, 0x00, 0x41, 0x00, 0x01, 0x00, 0x1D, 0x02, 0xE1, 0x02, 0x40, 0xFE, 0x00, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x10, 0x08, 0x7E, 0xFC, 0x12, 0x88, 0x12, 0x88, 0x2A, 0xF8, 0x44, 0x88, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x04, 0xFE, 0x1E, 0x17, 0xD4, 0x32, 0x54, 0x3A, 0x54, 0x56, 0x54, 0x52, 0x54, 0x92, 0x54, 0x12, 0x54, 0x14, 0x54, 0x15, 0x5C, 0x18, 0x94, 0x10, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x08, 0x40, 0x08, 0x40, 0x08, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x30, 0x44, 0x5F, 0xFE, 0x90, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0x3F, 0xF8, 0x04, 0x00, 0x1A, 0x10, 0x63, 0x30, 0x05, 0x40, 0x19, 0x80, 0x63, 0x40, 0x05, 0x30, 0x19, 0x0E, 0x65, 0x04, 0x02, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x12, 0x7E, 0xFF, 0x44, 0x12, 0x44, 0x12, 0x44, 0x12, 0x44, 0x12, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x4A, 0x7C, 0x84, 0x44, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x09, 0x20, 0x05, 0x44, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x20, 0xFE, 0x44, 0x11, 0xFE, 0x55, 0x04, 0x39, 0x24, 0x11, 0x24, 0xFF, 0x24, 0x11, 0x24, 0x11, 0x24, 0x29, 0x44, 0x25, 0x54, 0x44, 0x8C, 0x81, 0x04, 0x02, 0x02, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x7F, 0xFC, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0x60, 0x0C, 0x18, 0x30, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x1D, 0x24, 0x21, 0x24, 0x21, 0x24, 0x7D, 0xFC, 0x91, 0x24, 0x11, 0x24, 0xFD, 0x24, 0x11, 0xFC, 0x11, 0x24, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x00, 0x20, 0x10, 0x04, 0x17, 0xBE, 0x14, 0x84, 0x24, 0x84, 0x24, 0x84, 0x67, 0xBC, 0xA4, 0x00, 0x24, 0x7C, 0x27, 0x84, 0x24, 0x88, 0x24, 0x50, 0x27, 0x20, 0x24, 0x50, 0x24, 0x88, 0x25, 0x0E, 0x26, 0x04, 0x08, 0x40, 0x1C, 0x20, 0xF3, 0xFE, 0x12, 0x02, 0x10, 0x04, 0xFD, 0xFC, 0x10, 0x80, 0x39, 0x44, 0x36, 0x6C, 0x54, 0xB0, 0x51, 0x30, 0x92, 0x68, 0x14, 0xA8, 0x11, 0x26, 0x12, 0xA4, 0x10, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x32, 0x08, 0x54, 0x06, 0x99, 0x14, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x14, 0x10, 0x10, 0x00, 0x10, 0x08, 0x7E, 0xFC, 0x12, 0x88, 0x12, 0x88, 0x12, 0x88, 0x2A, 0xF8, 0x44, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x10, 0x00, 0x10, 0x04, 0x7F, 0x7E, 0x11, 0x44, 0x11, 0x44, 0x25, 0x7C, 0x42, 0x44, 0x9F, 0xE0, 0x00, 0x20, 0x08, 0x20, 0x08, 0x24, 0x0F, 0xFE, 0x00, 0x04, 0x7F, 0xC4, 0x00, 0x14, 0x00, 0x08, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFE, 0x12, 0x02, 0xFC, 0x04, 0x25, 0xFC, 0x24, 0x80, 0x25, 0x44, 0x26, 0x6C, 0x44, 0xB0, 0x29, 0x30, 0x12, 0x68, 0x28, 0xA8, 0x45, 0x26, 0x84, 0xA4, 0x00, 0x40, 0x04, 0x08, 0x7E, 0x1C, 0x11, 0xE0, 0x10, 0x20, 0x10, 0x20, 0x3E, 0x20, 0x22, 0x24, 0x63, 0xFE, 0x92, 0x20, 0x0C, 0x20, 0x04, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x40, 0x20, 0x00, 0x20, 0x04, 0x40, 0x04, 0x40, 0x24, 0x48, 0x24, 0x7C, 0x24, 0xA0, 0x25, 0x18, 0x24, 0x08, 0x24, 0x00, 0x04, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x00, 0x25, 0xF8, 0x25, 0x08, 0x24, 0x90, 0x24, 0x90, 0x24, 0x60, 0x24, 0x20, 0x24, 0xD0, 0x27, 0x0E, 0x05, 0x04, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x20, 0x0D, 0x10, 0x11, 0x18, 0x21, 0x08, 0x00, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x10, 0x40, 0x14, 0x48, 0x3E, 0xFC, 0x48, 0x20, 0x02, 0x80, 0x02, 0x50, 0x7F, 0xF8, 0x02, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x01, 0x10, 0x01, 0x20, 0x00, 0xC0, 0x07, 0x44, 0x38, 0x24, 0x00, 0x1C, 0x20, 0x04, 0x1B, 0xFE, 0x08, 0x04, 0x40, 0x24, 0x4F, 0xF4, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x40, 0x14, 0x40, 0x08, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x02, 0x00, 0x3F, 0x08, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x22, 0x08, 0x26, 0x18, 0x00, 0x00, 0x24, 0x90, 0x22, 0x4C, 0x40, 0x04, 0x10, 0x20, 0x08, 0x48, 0x7F, 0xFC, 0x04, 0x90, 0x3F, 0xF8, 0x04, 0x90, 0x04, 0x94, 0xFF, 0xFE, 0x04, 0x90, 0x04, 0x90, 0x3F, 0xF0, 0x0C, 0xC0, 0x14, 0xB0, 0x24, 0x8E, 0xC4, 0x84, 0x04, 0x80, 0x02, 0x00, 0x01, 0x08, 0x1F, 0xFC, 0x10, 0x08, 0x10, 0x08, 0x1F, 0xF8, 0x10, 0x00, 0x17, 0xF8, 0x14, 0x08, 0x17, 0xF8, 0x14, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x44, 0x08, 0x84, 0x28, 0x04, 0x10, 0x00, 0x08, 0x01, 0xFC, 0x7D, 0x08, 0x05, 0x08, 0x45, 0xF8, 0x29, 0x08, 0x29, 0x08, 0x11, 0xF8, 0x11, 0x44, 0x29, 0x4C, 0x29, 0x30, 0x45, 0x20, 0x85, 0x10, 0x01, 0x4E, 0x01, 0x84, 0x01, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x10, 0x20, 0x14, 0x20, 0xFE, 0x20, 0x24, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x44, 0x20, 0x28, 0x20, 0x10, 0x20, 0x28, 0x20, 0x44, 0x20, 0x84, 0x20, 0x00, 0x20, 0x10, 0x10, 0x10, 0x18, 0x20, 0x14, 0x27, 0xFE, 0x44, 0x10, 0xFC, 0x10, 0x15, 0xD0, 0x24, 0x14, 0x45, 0xD4, 0xFD, 0x54, 0x45, 0x54, 0x05, 0x58, 0x1D, 0xD0, 0xE5, 0x2A, 0x48, 0x46, 0x10, 0x82, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x09, 0x20, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x00, 0x01, 0x10, 0x01, 0xF8, 0x7F, 0x04, 0x00, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0xFD, 0x10, 0x12, 0x0E, 0x35, 0xF4, 0x30, 0x00, 0x58, 0x40, 0x56, 0x48, 0x91, 0x4C, 0x11, 0x48, 0x11, 0x50, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x29, 0x28, 0x25, 0x48, 0x21, 0x08, 0x3F, 0xF8, 0x23, 0x88, 0x05, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x00, 0x10, 0x10, 0x18, 0xF8, 0x14, 0x27, 0xFE, 0x24, 0x10, 0x44, 0x10, 0x55, 0xD0, 0x7C, 0x14, 0xD5, 0xD4, 0x55, 0x54, 0x55, 0x54, 0x55, 0x58, 0x55, 0xD0, 0x75, 0x2A, 0x48, 0x46, 0x10, 0x82, 0x00, 0x40, 0x08, 0x40, 0xFC, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x22, 0x0E, 0x2D, 0xF4, 0x78, 0x00, 0xA8, 0x40, 0x2A, 0x48, 0x29, 0x4C, 0x29, 0x48, 0x29, 0x50, 0x38, 0x04, 0x27, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x10, 0x44, 0x13, 0xFE, 0x10, 0x80, 0xFC, 0x80, 0x13, 0xE0, 0x11, 0x20, 0x1E, 0x24, 0x33, 0xFE, 0xD0, 0x20, 0x10, 0x20, 0x10, 0xA8, 0x11, 0x24, 0x12, 0x22, 0x54, 0xA2, 0x20, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0xFD, 0x10, 0x12, 0x0E, 0x15, 0xF4, 0x18, 0x00, 0x30, 0x40, 0xD2, 0x48, 0x11, 0x4C, 0x11, 0x48, 0x11, 0x50, 0x10, 0x04, 0x57, 0xFE, 0x20, 0x00, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x90, 0x08, 0x2B, 0xFC, 0x20, 0x08, 0x27, 0xC8, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x20, 0x28, 0x20, 0x10, 0x08, 0x40, 0x08, 0x40, 0x08, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x32, 0x08, 0x55, 0xF6, 0x98, 0x04, 0x10, 0x40, 0x12, 0x48, 0x11, 0x4C, 0x11, 0x48, 0x11, 0x50, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x00, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x02, 0x00, 0x3F, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x18, 0x26, 0x08, 0x7F, 0xFC, 0x04, 0x08, 0x04, 0x08, 0x18, 0x28, 0x60, 0x10, 0x00, 0x10, 0x40, 0x18, 0x30, 0x14, 0x17, 0xFE, 0x04, 0x10, 0x04, 0x10, 0x0D, 0xD0, 0x14, 0x14, 0x25, 0xD4, 0xE5, 0x54, 0x25, 0x54, 0x25, 0x58, 0x25, 0xD0, 0x25, 0x2A, 0x08, 0x46, 0x10, 0x82, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x0A, 0x20, 0x02, 0x08, 0x7F, 0xFC, 0x04, 0x00, 0x0B, 0xF0, 0x10, 0x20, 0x10, 0x44, 0x3F, 0xFE, 0x50, 0x40, 0x90, 0x40, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x10, 0x80, 0x10, 0x90, 0x12, 0x94, 0x12, 0xBE, 0xFE, 0xD0, 0x12, 0x8C, 0x32, 0x84, 0x38, 0x80, 0x54, 0x08, 0x53, 0xFC, 0x92, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0x1F, 0xFE, 0x10, 0x00, 0x04, 0x40, 0x24, 0x48, 0x24, 0xFC, 0x25, 0x40, 0x26, 0x30, 0x25, 0x10, 0x01, 0x00, 0x06, 0xC0, 0x18, 0x30, 0x6F, 0xEE, 0x81, 0x04, 0x1F, 0xF0, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x7E, 0x50, 0x44, 0x48, 0x44, 0x40, 0x44, 0x7C, 0x7D, 0xC0, 0x10, 0x48, 0x10, 0x7C, 0x53, 0xC0, 0x5C, 0x48, 0x50, 0x50, 0x50, 0x20, 0x5C, 0x60, 0x70, 0x92, 0xC3, 0x0A, 0x00, 0x06, 0x04, 0x40, 0x7E, 0x50, 0x44, 0x48, 0x54, 0x40, 0x54, 0x7C, 0x55, 0xC0, 0x54, 0x48, 0x54, 0x7C, 0x57, 0xC0, 0x54, 0x48, 0x54, 0x50, 0x54, 0x20, 0x10, 0x60, 0x28, 0x92, 0x47, 0x0A, 0x84, 0x06, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x90, 0x04, 0x80, 0x04, 0x82, 0x08, 0x82, 0x30, 0x7E, 0xC0, 0x00, 0x20, 0x10, 0x27, 0x10, 0x39, 0x7C, 0x41, 0x14, 0x82, 0xFE, 0x7A, 0x14, 0x24, 0x7C, 0x27, 0x10, 0xF9, 0x7C, 0x21, 0x10, 0x25, 0x14, 0x22, 0xFE, 0x2A, 0x10, 0x35, 0x10, 0x28, 0x96, 0x00, 0x7C, 0x10, 0x40, 0x1E, 0x7C, 0x28, 0x90, 0x45, 0x08, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x02, 0x08, 0x3F, 0x08, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x2A, 0x08, 0x24, 0x18, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x22, 0x48, 0x23, 0xFC, 0x64, 0x40, 0xA4, 0x40, 0x28, 0x40, 0x20, 0x44, 0x3F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x10, 0x20, 0x10, 0x20, 0x10, 0xFC, 0x2E, 0x24, 0x23, 0xFE, 0x62, 0x24, 0xA4, 0xFC, 0x28, 0x20, 0x2F, 0xFE, 0x22, 0x20, 0x32, 0x24, 0x2D, 0xFE, 0x24, 0x20, 0x2A, 0x20, 0x31, 0x26, 0x20, 0xFC, 0x08, 0x00, 0x10, 0x04, 0x3E, 0xFE, 0x22, 0x84, 0x22, 0x94, 0x32, 0x94, 0x2A, 0x94, 0x22, 0x94, 0xFE, 0xA4, 0x22, 0xA4, 0x32, 0x20, 0x2A, 0x50, 0x22, 0x50, 0x22, 0x52, 0x4A, 0x92, 0x85, 0x0E, 0x04, 0x04, 0x04, 0x04, 0x0A, 0x04, 0x11, 0x24, 0x20, 0xA4, 0x42, 0x64, 0xBF, 0x24, 0x00, 0x24, 0x24, 0xA4, 0x14, 0xA4, 0x15, 0x24, 0x15, 0x24, 0x03, 0x84, 0x7C, 0x04, 0x20, 0x14, 0x00, 0x08, 0x20, 0x40, 0x20, 0x50, 0x20, 0x48, 0x3C, 0x40, 0x24, 0x7C, 0x4B, 0xC0, 0x40, 0x48, 0xA0, 0x7C, 0x23, 0xC0, 0x20, 0x48, 0x20, 0x50, 0x24, 0x20, 0x28, 0x60, 0x30, 0x92, 0x23, 0x0A, 0x00, 0x06, 0x02, 0x00, 0x42, 0x0C, 0x22, 0x30, 0x2F, 0xE0, 0x04, 0x20, 0x85, 0x24, 0x69, 0x3E, 0x2F, 0xE8, 0x11, 0x28, 0x21, 0x28, 0xE1, 0xE8, 0x3F, 0x28, 0x29, 0x28, 0x21, 0x48, 0x21, 0x88, 0x21, 0x08, 0x00, 0x20, 0x40, 0x20, 0x2F, 0xA4, 0x28, 0xAE, 0x0A, 0xF0, 0x8A, 0xA0, 0x4A, 0xAE, 0x4A, 0xF0, 0x1A, 0xA4, 0x2A, 0xA4, 0xCA, 0xA8, 0x4A, 0x90, 0x42, 0x30, 0x45, 0x4A, 0x48, 0x8A, 0x50, 0x06, 0x02, 0x04, 0x41, 0xBE, 0x34, 0x84, 0x14, 0x04, 0x84, 0x04, 0x65, 0xF4, 0x25, 0x14, 0x0D, 0x14, 0x15, 0xF4, 0x25, 0x14, 0xE5, 0x14, 0x25, 0xF4, 0x25, 0x14, 0x24, 0x04, 0x24, 0x14, 0x24, 0x08, 0x00, 0x40, 0x00, 0x48, 0xFB, 0xFC, 0x08, 0x48, 0x17, 0xFE, 0x10, 0x48, 0x3B, 0xF8, 0x08, 0x40, 0x8B, 0xF8, 0x50, 0x40, 0x50, 0x48, 0x37, 0xFC, 0x20, 0x40, 0x50, 0x40, 0x88, 0x46, 0x07, 0xFC, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x00, 0x27, 0xFC, 0x24, 0x44, 0x67, 0xFC, 0xA4, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x27, 0xFC, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x27, 0xFC, 0x20, 0x00, 0x2F, 0xFE, 0x08, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x06, 0xC0, 0x01, 0x80, 0x06, 0x60, 0x38, 0x10, 0x10, 0x80, 0x10, 0x80, 0x11, 0xF8, 0x91, 0x08, 0x73, 0x10, 0x34, 0xA0, 0x10, 0x40, 0x10, 0x94, 0x1F, 0xFE, 0x30, 0x10, 0x52, 0x10, 0xD1, 0x90, 0x10, 0x90, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x04, 0x40, 0x44, 0x40, 0x24, 0x7C, 0x04, 0x84, 0x15, 0x48, 0x24, 0x30, 0x64, 0x20, 0x05, 0x40, 0x01, 0x08, 0x7D, 0x98, 0x05, 0x60, 0x09, 0x20, 0x09, 0x10, 0x11, 0x0E, 0x65, 0x04, 0x02, 0x00, 0x40, 0x00, 0x30, 0x08, 0x17, 0xFC, 0x00, 0x40, 0x80, 0x40, 0x60, 0x40, 0x20, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x20, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x05, 0xFC, 0x7D, 0x24, 0x45, 0xFC, 0x41, 0x24, 0x43, 0xFE, 0x7C, 0x00, 0x25, 0xFC, 0x75, 0x24, 0x25, 0xFC, 0x35, 0x24, 0xC5, 0xFC, 0x14, 0x00, 0x0B, 0xFE, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x08, 0xF8, 0x49, 0x08, 0x2A, 0xB0, 0x28, 0x50, 0x08, 0x94, 0x1F, 0xFE, 0x28, 0x10, 0x49, 0x10, 0x88, 0x90, 0x08, 0x10, 0x08, 0x30, 0x04, 0x40, 0x44, 0x40, 0x24, 0x7C, 0x04, 0x84, 0x15, 0x48, 0x24, 0x30, 0x64, 0x20, 0x05, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x04, 0x40, 0x44, 0x40, 0x24, 0x7C, 0x04, 0x84, 0x15, 0x48, 0x24, 0x30, 0x64, 0x20, 0x04, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x01, 0x10, 0x21, 0x10, 0x11, 0x10, 0x17, 0xFC, 0x01, 0x10, 0x01, 0x10, 0xF1, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x11, 0x10, 0x11, 0x10, 0x15, 0x10, 0x19, 0x10, 0x11, 0x10, 0x02, 0x10, 0x00, 0x10, 0x00, 0x08, 0x7F, 0xFC, 0x40, 0x20, 0x40, 0x70, 0x4F, 0x80, 0x48, 0x00, 0x48, 0x10, 0x4F, 0xF8, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x50, 0x40, 0x60, 0x40, 0x40, 0x44, 0x7F, 0xFE, 0x00, 0x00, 0x04, 0x80, 0x44, 0xF8, 0x24, 0x88, 0x0D, 0x90, 0x16, 0x60, 0x64, 0x40, 0x04, 0x84, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x38, 0x38, 0x27, 0xC8, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x00, 0x80, 0x7C, 0x80, 0x45, 0xF8, 0x4A, 0x10, 0x48, 0xA0, 0x50, 0x40, 0x49, 0xB0, 0x4A, 0x4E, 0x44, 0x44, 0x45, 0xF0, 0x45, 0x40, 0x69, 0x48, 0x53, 0xFC, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x08, 0x88, 0x1F, 0xFC, 0x10, 0x80, 0x3F, 0xF8, 0x50, 0x80, 0x1F, 0xF8, 0x10, 0x80, 0x1F, 0xFC, 0x10, 0x00, 0x24, 0x48, 0x22, 0x26, 0x40, 0x02, 0x22, 0x00, 0x22, 0x00, 0x22, 0x7C, 0x23, 0xC4, 0xFA, 0x44, 0x22, 0x24, 0x7F, 0x28, 0x6A, 0x28, 0xA2, 0x28, 0x27, 0x10, 0x2A, 0x90, 0x32, 0x28, 0x22, 0x28, 0x2A, 0x46, 0x24, 0x84, 0x21, 0x00, 0x01, 0x20, 0x09, 0x14, 0xFD, 0xFE, 0x11, 0x10, 0x13, 0x10, 0x25, 0xFC, 0x21, 0x10, 0x79, 0x10, 0xA9, 0xFC, 0x29, 0x10, 0x29, 0x14, 0x29, 0xFE, 0x29, 0x00, 0x3A, 0xA4, 0x22, 0x92, 0x04, 0x02, 0x09, 0x00, 0x08, 0x88, 0x0F, 0xFC, 0x10, 0x80, 0x10, 0x90, 0x3F, 0xF8, 0x50, 0x80, 0x90, 0x90, 0x1F, 0xF8, 0x10, 0x80, 0x10, 0x84, 0x1F, 0xFE, 0x10, 0x00, 0x24, 0x90, 0x22, 0x4C, 0x40, 0x04, 0x04, 0x40, 0x3E, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x00, 0x3C, 0x88, 0x25, 0x06, 0x26, 0x02, 0x24, 0x88, 0x3C, 0x50, 0x24, 0x20, 0x24, 0x50, 0x24, 0x50, 0x44, 0x88, 0x95, 0x0E, 0x0A, 0x04, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x10, 0x10, 0x0C, 0x28, 0x24, 0x44, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x10, 0x00, 0x08, 0x7C, 0x09, 0x44, 0xFF, 0xC4, 0x00, 0x48, 0x14, 0x48, 0x22, 0x50, 0x41, 0x48, 0xA2, 0xC4, 0x14, 0x42, 0x08, 0x42, 0x14, 0x62, 0x12, 0x54, 0x22, 0x48, 0x40, 0x40, 0x00, 0x40, 0x41, 0x00, 0x31, 0x08, 0x10, 0xFC, 0x07, 0x80, 0x80, 0xA0, 0x60, 0x44, 0x20, 0xA4, 0x0B, 0x1C, 0x10, 0x00, 0x27, 0xFC, 0xE1, 0x20, 0x21, 0x20, 0x21, 0x20, 0x21, 0x22, 0x22, 0x22, 0x2C, 0x1E, 0x08, 0x0C, 0xFD, 0xF0, 0x08, 0x20, 0x48, 0x24, 0x4B, 0xFE, 0x48, 0x50, 0x48, 0x88, 0x49, 0x06, 0x7E, 0x8C, 0x04, 0x88, 0x1C, 0x88, 0xE4, 0x88, 0x44, 0x88, 0x14, 0x88, 0x09, 0x08, 0x02, 0x08, 0x10, 0x18, 0x13, 0xE0, 0x10, 0x40, 0x10, 0x40, 0xFC, 0x44, 0x27, 0xFE, 0x24, 0xA0, 0x25, 0x10, 0x27, 0x1E, 0x45, 0x14, 0x29, 0x10, 0x11, 0x10, 0x29, 0x10, 0x45, 0x10, 0x82, 0x10, 0x04, 0x10, 0x00, 0x1C, 0x0F, 0xE0, 0x02, 0x48, 0xEF, 0xFC, 0xA9, 0x24, 0xAF, 0xFC, 0xA0, 0x00, 0xAF, 0x88, 0xA8, 0x88, 0xAF, 0xFE, 0xA8, 0x88, 0xAF, 0xA8, 0xE8, 0x28, 0x89, 0x08, 0x0F, 0xA8, 0x00, 0x10, 0x12, 0x44, 0x11, 0x24, 0x11, 0x28, 0x17, 0xFE, 0xFC, 0x02, 0x14, 0x04, 0x13, 0xF8, 0x1A, 0x08, 0x32, 0x48, 0xD2, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x10, 0xA2, 0x51, 0x22, 0x26, 0x1E, 0x10, 0x40, 0x10, 0x20, 0x10, 0x24, 0x1F, 0xFE, 0x20, 0x00, 0x20, 0x88, 0x7D, 0x06, 0x92, 0x02, 0x10, 0x88, 0x7C, 0x50, 0x10, 0x20, 0x10, 0x50, 0x14, 0x50, 0x18, 0x88, 0x11, 0x0E, 0x02, 0x04, 0x20, 0x18, 0x23, 0xE0, 0x28, 0x40, 0x3C, 0x40, 0x50, 0x44, 0x97, 0xFE, 0x10, 0xA0, 0xFD, 0x10, 0x13, 0x1E, 0x15, 0x14, 0x11, 0x10, 0x29, 0x10, 0x25, 0x10, 0x41, 0x10, 0x82, 0x10, 0x04, 0x10, 0x09, 0x00, 0x09, 0x08, 0x08, 0xFC, 0x17, 0x80, 0x10, 0xA0, 0x30, 0x44, 0x50, 0xA4, 0x93, 0x1C, 0x10, 0x00, 0x17, 0xFC, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x22, 0x12, 0x22, 0x1C, 0x1E, 0x09, 0x00, 0x7D, 0x04, 0x49, 0x3E, 0x4F, 0xE4, 0x49, 0x24, 0x79, 0x24, 0x49, 0x24, 0x4F, 0xE4, 0x49, 0x24, 0x79, 0x24, 0x4A, 0x24, 0x4A, 0xB4, 0x4F, 0xE8, 0x48, 0x60, 0x88, 0x20, 0x18, 0x20, 0x08, 0x80, 0x88, 0x40, 0x50, 0x44, 0x27, 0xFE, 0x50, 0x00, 0x89, 0x10, 0x0A, 0x0C, 0x1C, 0x04, 0x29, 0x10, 0x48, 0xA0, 0x88, 0x40, 0x08, 0xA0, 0x08, 0xA0, 0x09, 0x10, 0x52, 0x0E, 0x24, 0x04, 0x08, 0x00, 0x0F, 0xE0, 0x10, 0x40, 0x20, 0x88, 0x5F, 0xFC, 0x91, 0x08, 0x11, 0x08, 0x1F, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x1F, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x21, 0x08, 0x41, 0x28, 0x80, 0x10, 0x20, 0x40, 0x20, 0x20, 0x20, 0x24, 0x3F, 0xFE, 0x24, 0x00, 0x48, 0x88, 0x41, 0x06, 0xA2, 0x02, 0x20, 0x88, 0x20, 0x50, 0x20, 0x20, 0x24, 0x50, 0x28, 0x50, 0x30, 0x88, 0x21, 0x06, 0x02, 0x04, 0x22, 0x10, 0x24, 0x90, 0x2F, 0xD0, 0x48, 0x94, 0x4F, 0xBE, 0xF8, 0xC4, 0x1F, 0xA4, 0x22, 0x28, 0x5F, 0xE8, 0x84, 0x28, 0xF7, 0x90, 0x04, 0x90, 0x34, 0xA8, 0xC8, 0xA8, 0x49, 0xC6, 0x10, 0x84, 0x10, 0x40, 0x10, 0x20, 0x20, 0x24, 0x23, 0xFE, 0x44, 0x00, 0xF8, 0x88, 0x11, 0x06, 0x22, 0x02, 0x40, 0x88, 0xFC, 0x50, 0x00, 0x20, 0x00, 0x50, 0x1C, 0x50, 0xE0, 0x88, 0x41, 0x06, 0x02, 0x04, 0x24, 0x84, 0x24, 0x84, 0x49, 0x24, 0x24, 0xA4, 0x3F, 0xA4, 0x24, 0xA4, 0x3F, 0xA4, 0x24, 0xA4, 0x3F, 0xA4, 0x04, 0x24, 0xFF, 0xE4, 0x15, 0x24, 0x14, 0x84, 0x24, 0x84, 0x44, 0x14, 0x04, 0x08, 0x08, 0x40, 0x08, 0x40, 0x7F, 0x40, 0x09, 0x44, 0x0A, 0x7E, 0xFF, 0x88, 0x08, 0x08, 0x1F, 0x48, 0x22, 0x50, 0xCC, 0x50, 0x08, 0x20, 0x0E, 0x50, 0x78, 0x50, 0x08, 0x88, 0x29, 0x0E, 0x12, 0x04, 0x02, 0x20, 0xFF, 0x24, 0x28, 0xFC, 0x28, 0x28, 0xFE, 0x28, 0xAB, 0xFE, 0xAA, 0x10, 0xAA, 0x20, 0xC7, 0xFC, 0x82, 0x88, 0x83, 0x10, 0xFE, 0xFE, 0x82, 0x10, 0x82, 0x10, 0xFE, 0x50, 0x82, 0x20, 0x10, 0x0C, 0x13, 0xF0, 0x20, 0x40, 0xFC, 0x40, 0x20, 0x44, 0x57, 0xFE, 0x50, 0x90, 0xFD, 0x18, 0x13, 0x1E, 0x15, 0x14, 0x1D, 0x10, 0xF1, 0x10, 0x51, 0x10, 0x11, 0x10, 0x12, 0x10, 0x14, 0x10, 0x10, 0x40, 0x10, 0x20, 0x20, 0x24, 0xFF, 0xFE, 0x20, 0x00, 0x50, 0x88, 0x51, 0x06, 0xFE, 0x02, 0x10, 0x88, 0x10, 0x50, 0x1E, 0x20, 0xF0, 0x50, 0x50, 0x50, 0x10, 0x88, 0x11, 0x0E, 0x12, 0x04, 0x00, 0x04, 0x04, 0x04, 0x7E, 0x84, 0x44, 0x84, 0x44, 0x84, 0x44, 0x84, 0x44, 0x84, 0x44, 0x84, 0x44, 0x84, 0x44, 0x84, 0x44, 0x9C, 0x7C, 0xE4, 0x44, 0x84, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x91, 0x14, 0x09, 0x00, 0x0F, 0xF0, 0x11, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0xFE, 0x08, 0x13, 0xF8, 0x14, 0x80, 0x19, 0x04, 0x33, 0xFE, 0xD4, 0x44, 0x1C, 0x44, 0x14, 0xA4, 0x15, 0x14, 0x17, 0xE4, 0x50, 0x28, 0x20, 0x10, 0x10, 0x80, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0xFD, 0x10, 0x10, 0xA0, 0x17, 0xFC, 0x18, 0x80, 0x30, 0x84, 0xDF, 0xFE, 0x10, 0x90, 0x11, 0x10, 0x10, 0xA0, 0x10, 0x60, 0x50, 0x98, 0x23, 0x08, 0x20, 0x80, 0x24, 0x88, 0x3E, 0x98, 0x20, 0xE0, 0x20, 0x82, 0x26, 0x82, 0x78, 0x7E, 0x02, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x04, 0x20, 0x0E, 0x20, 0x78, 0x24, 0x0B, 0xFE, 0x08, 0x20, 0xFE, 0x20, 0x08, 0x28, 0x19, 0xFC, 0x1C, 0x00, 0x2A, 0x04, 0x29, 0xFE, 0x49, 0x04, 0x89, 0x04, 0x09, 0x04, 0x09, 0xFC, 0x09, 0x04, 0x12, 0x00, 0x12, 0x08, 0x22, 0x7C, 0x4F, 0x80, 0x82, 0x00, 0x12, 0x04, 0x1F, 0xFE, 0x22, 0x08, 0x62, 0x08, 0xAF, 0x88, 0x22, 0x08, 0x22, 0x08, 0x23, 0xC8, 0x3E, 0x08, 0x28, 0x28, 0x20, 0x10, 0x00, 0x40, 0x78, 0x40, 0x48, 0xA0, 0x50, 0xA0, 0x51, 0x10, 0x62, 0x0E, 0x55, 0x14, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x69, 0x10, 0x51, 0x10, 0x41, 0x10, 0x41, 0x10, 0x42, 0x10, 0x44, 0x10, 0x04, 0x40, 0x04, 0x50, 0x7F, 0x48, 0x04, 0x40, 0xFF, 0xFE, 0x10, 0x40, 0x15, 0x40, 0x3F, 0xA0, 0x64, 0x24, 0xBF, 0x28, 0x24, 0x30, 0x3F, 0x20, 0x24, 0x52, 0x24, 0x92, 0x3F, 0x8A, 0x20, 0x04, 0x08, 0x20, 0x08, 0x20, 0x0A, 0x20, 0x7F, 0x20, 0x08, 0x24, 0x08, 0xFE, 0x09, 0x24, 0xFF, 0xA4, 0x10, 0x24, 0x10, 0x44, 0x20, 0x44, 0x24, 0x44, 0x42, 0x84, 0x7E, 0x84, 0x01, 0x28, 0x02, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x48, 0x02, 0x28, 0x02, 0x10, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0xFC, 0x20, 0x10, 0x28, 0x31, 0xFC, 0x38, 0x00, 0x54, 0x04, 0x51, 0xFE, 0x91, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x00, 0x00, 0x24, 0x90, 0x22, 0x48, 0x22, 0x44, 0x40, 0x04, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0xFB, 0xF8, 0x10, 0x48, 0x17, 0xFE, 0x18, 0x48, 0x33, 0xF8, 0xD0, 0x40, 0x12, 0x48, 0x12, 0x7C, 0x12, 0x40, 0x13, 0x40, 0x54, 0xC6, 0x28, 0x3C, 0x00, 0x40, 0x00, 0x48, 0x7F, 0xFC, 0x48, 0x40, 0x4B, 0xF8, 0x48, 0x48, 0x7F, 0xFE, 0x48, 0x48, 0x4B, 0xF8, 0x78, 0x40, 0x4A, 0x48, 0x4A, 0x7C, 0x4A, 0x40, 0x7B, 0x40, 0x44, 0xC6, 0x08, 0x3C, 0x20, 0x08, 0x13, 0xFC, 0x12, 0x08, 0xFF, 0xF8, 0x02, 0x08, 0x4B, 0xF8, 0x48, 0x80, 0x49, 0x04, 0x4A, 0xFE, 0x54, 0x44, 0x12, 0x44, 0x1E, 0xA4, 0xE2, 0x04, 0x43, 0xE4, 0x00, 0x28, 0x00, 0x10, 0x00, 0x40, 0x40, 0x40, 0x30, 0x44, 0x17, 0xFE, 0x00, 0x40, 0x80, 0x48, 0x67, 0xFC, 0x20, 0x00, 0x08, 0x08, 0x13, 0xFC, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x08, 0x20, 0x08, 0x20, 0x10, 0x24, 0x23, 0xFE, 0x44, 0x20, 0x78, 0x20, 0x09, 0xFC, 0x10, 0x00, 0x20, 0x04, 0x7D, 0xFE, 0x01, 0x04, 0x01, 0x04, 0x0D, 0x04, 0x71, 0x04, 0x21, 0xFC, 0x01, 0x04, 0x10, 0x04, 0x11, 0xFE, 0x3E, 0x44, 0x24, 0x44, 0x48, 0x54, 0xBE, 0x88, 0x2B, 0x10, 0x2A, 0x50, 0x3E, 0x7C, 0x2A, 0x90, 0x2A, 0x14, 0x3F, 0xFE, 0x2A, 0x10, 0x2A, 0x10, 0x42, 0x10, 0x86, 0x10, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x15, 0x08, 0xFF, 0x08, 0x25, 0xF8, 0x25, 0x08, 0x25, 0x08, 0x25, 0x08, 0x45, 0xF8, 0x29, 0x08, 0x11, 0x08, 0x29, 0x08, 0x45, 0x08, 0x87, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x00, 0x50, 0x00, 0x48, 0xFF, 0xFE, 0x00, 0x40, 0x12, 0x40, 0x12, 0x44, 0x12, 0x44, 0x7F, 0x48, 0x12, 0x48, 0x12, 0x50, 0x12, 0x20, 0x12, 0x62, 0x22, 0x92, 0x41, 0x0A, 0x02, 0x04, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x90, 0x7F, 0xFC, 0x10, 0x90, 0x7C, 0x94, 0x13, 0xFE, 0x7C, 0x08, 0x11, 0xFC, 0x39, 0x08, 0x35, 0x08, 0x51, 0xF8, 0x91, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x09, 0x20, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x14, 0x50, 0x24, 0x4E, 0xC4, 0x44, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0x00, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x02, 0x80, 0x04, 0x60, 0x0C, 0x50, 0x34, 0x4E, 0xC4, 0x44, 0x04, 0x40, 0x08, 0x40, 0x10, 0x40, 0x09, 0x10, 0x09, 0x10, 0x09, 0x10, 0x17, 0xFC, 0x11, 0x10, 0x31, 0x14, 0x5F, 0xFE, 0x90, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x24, 0x4E, 0xC4, 0x44, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x90, 0x40, 0x50, 0xA0, 0x51, 0x10, 0x12, 0x0E, 0x3D, 0x14, 0x51, 0x10, 0xD1, 0x10, 0x11, 0x10, 0x22, 0x10, 0x22, 0x10, 0x44, 0x10, 0x00, 0x10, 0x00, 0x20, 0x40, 0x28, 0x20, 0x24, 0x2F, 0xFE, 0x00, 0x20, 0xE5, 0x20, 0x25, 0x24, 0x25, 0x24, 0x2F, 0xE8, 0x25, 0x28, 0x25, 0x30, 0x2D, 0x20, 0x35, 0x60, 0x24, 0x92, 0x09, 0x0A, 0x00, 0x04, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x28, 0x88, 0x28, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x48, 0x88, 0x8F, 0xF8, 0x08, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x21, 0x10, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x40, 0x14, 0x48, 0x3E, 0xFC, 0x49, 0x10, 0x80, 0x40, 0x3E, 0x40, 0x22, 0x44, 0x23, 0xFE, 0x3E, 0x44, 0x22, 0x44, 0x22, 0x44, 0x3E, 0x44, 0x22, 0x44, 0x22, 0x44, 0x4A, 0x94, 0x85, 0x08, 0x00, 0x10, 0x00, 0x38, 0x1F, 0xC0, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x20, 0x40, 0x20, 0x40, 0x40, 0x40, 0x00, 0x40, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x50, 0x2F, 0xEE, 0xC1, 0x04, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x12, 0x10, 0x21, 0x8E, 0xC0, 0x84, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x40, 0x88, 0x37, 0xFC, 0x10, 0x88, 0x0F, 0xFE, 0x80, 0x88, 0x67, 0xF8, 0x20, 0x80, 0x08, 0x90, 0x17, 0xF8, 0xE0, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x41, 0x10, 0x31, 0x10, 0x17, 0xFC, 0x01, 0x10, 0xFB, 0xB8, 0x0D, 0x56, 0x11, 0x10, 0x29, 0x10, 0x73, 0xF8, 0xA8, 0x00, 0x2F, 0xFE, 0x20, 0x40, 0x21, 0x50, 0x22, 0x4C, 0x24, 0x44, 0x20, 0xC0, 0x04, 0x00, 0x25, 0xF8, 0x25, 0x10, 0x24, 0xA0, 0x24, 0x40, 0x24, 0xB0, 0x07, 0x0E, 0x04, 0x24, 0x1F, 0xC0, 0x01, 0x00, 0x02, 0x10, 0x7F, 0xF8, 0x01, 0x08, 0x09, 0x20, 0x11, 0x18, 0x63, 0x08, 0x20, 0x40, 0x20, 0x88, 0x3B, 0xFC, 0x42, 0x08, 0x83, 0xF8, 0x7A, 0x08, 0x23, 0xF8, 0x20, 0x40, 0xFF, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x2C, 0x54, 0x30, 0x48, 0x20, 0x40, 0x00, 0x40, 0x08, 0x00, 0x08, 0x04, 0x0B, 0xFE, 0x10, 0x04, 0x11, 0x04, 0x31, 0x04, 0x51, 0x08, 0x91, 0x08, 0x10, 0x88, 0x10, 0x90, 0x10, 0x50, 0x10, 0x20, 0x10, 0x50, 0x10, 0x88, 0x11, 0x06, 0x16, 0x04, 0x41, 0x10, 0x21, 0x14, 0x2F, 0xFE, 0x01, 0x10, 0x01, 0xF0, 0xE0, 0x44, 0x27, 0xFE, 0x24, 0x44, 0x27, 0xFC, 0x20, 0x40, 0x27, 0xFC, 0x20, 0x40, 0x2B, 0xF8, 0x30, 0x40, 0x2F, 0xFE, 0x00, 0x00, 0x02, 0x20, 0x42, 0x20, 0x22, 0x28, 0x2F, 0xFC, 0x02, 0x20, 0x02, 0x20, 0xE2, 0x20, 0x22, 0x28, 0x2F, 0xFC, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x24, 0x20, 0x50, 0x26, 0x8F, 0xFC, 0x00, 0x00, 0x22, 0x02, 0x22, 0x06, 0xFF, 0xF8, 0x22, 0x40, 0x3E, 0x40, 0x08, 0x44, 0x7F, 0x7E, 0x49, 0x48, 0x49, 0x48, 0x7F, 0x48, 0x08, 0x48, 0xFF, 0xC8, 0x08, 0x48, 0x08, 0x88, 0x09, 0x08, 0x08, 0x08, 0x00, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x24, 0x48, 0x14, 0x50, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x08, 0x20, 0x08, 0x28, 0x7E, 0xFC, 0x18, 0x70, 0x2C, 0xA8, 0x4B, 0x24, 0x88, 0x22, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x00, 0x08, 0x40, 0x1C, 0x33, 0xE0, 0x12, 0x00, 0x02, 0x00, 0x02, 0x08, 0xF3, 0xFC, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0x14, 0x20, 0x10, 0x20, 0x28, 0x20, 0x44, 0x06, 0x03, 0xFC, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x15, 0x08, 0x59, 0xF8, 0x51, 0x28, 0x51, 0x20, 0x92, 0x10, 0x12, 0x0E, 0x14, 0xC4, 0x10, 0x20, 0x10, 0x10, 0x28, 0xC0, 0x44, 0x30, 0x84, 0x08, 0x00, 0x00, 0x40, 0x08, 0x33, 0xFC, 0x10, 0x08, 0x01, 0xF8, 0x80, 0x08, 0x63, 0xF8, 0x20, 0x00, 0x07, 0xFE, 0x14, 0x02, 0x29, 0xF4, 0xE1, 0x10, 0x20, 0xA0, 0x20, 0x40, 0x20, 0xB0, 0x23, 0x0E, 0x2C, 0x04, 0x00, 0x08, 0x1F, 0xFC, 0x10, 0x08, 0x10, 0x08, 0x1F, 0xF8, 0x11, 0x08, 0x10, 0x80, 0x10, 0x80, 0x10, 0x40, 0x16, 0x20, 0x21, 0x90, 0x40, 0x0E, 0x86, 0x04, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x20, 0xFF, 0x20, 0x02, 0x20, 0x04, 0x24, 0x0C, 0xFE, 0x12, 0x24, 0x21, 0x24, 0x40, 0x24, 0xFE, 0x24, 0x08, 0x24, 0x08, 0x44, 0x08, 0x44, 0x0F, 0x84, 0x71, 0x04, 0x22, 0x28, 0x00, 0x10, 0x12, 0x04, 0x12, 0x84, 0xFF, 0xC4, 0x12, 0x24, 0x00, 0x24, 0x7F, 0xA4, 0x12, 0x24, 0x12, 0xA4, 0xFF, 0xE4, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0x22, 0x04, 0x42, 0x14, 0x02, 0x08, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFE, 0xFE, 0x08, 0x20, 0x7E, 0xFC, 0x42, 0x84, 0x42, 0x84, 0x42, 0x84, 0x7E, 0xFC, 0x14, 0x50, 0x15, 0x50, 0x16, 0x50, 0x24, 0x92, 0x41, 0x12, 0x82, 0x0E, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x20, 0x01, 0xC0, 0x0E, 0x38, 0x70, 0x06, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x08, 0x48, 0x7F, 0xFC, 0x48, 0x40, 0x4B, 0xF8, 0x48, 0x40, 0x7F, 0xFE, 0x48, 0x08, 0x4B, 0xFC, 0x7A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x7A, 0x08, 0x4A, 0x28, 0x02, 0x10, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x24, 0x7E, 0xFE, 0x42, 0x84, 0x42, 0x84, 0x7E, 0xFC, 0x42, 0x84, 0x42, 0x84, 0x7E, 0xFC, 0x42, 0x84, 0x10, 0x40, 0x10, 0x20, 0x1E, 0x24, 0x25, 0xFE, 0x48, 0x08, 0xBE, 0xFC, 0x2A, 0x88, 0x2A, 0x88, 0x3E, 0x88, 0x2A, 0xF8, 0x2A, 0x20, 0x3E, 0x70, 0x00, 0xAC, 0x0F, 0x24, 0x70, 0xA0, 0x20, 0x40, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x09, 0x40, 0x09, 0x30, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x10, 0x80, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x00, 0x58, 0x08, 0x57, 0xFC, 0x52, 0x08, 0x92, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x10, 0x40, 0x11, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x11, 0x40, 0x10, 0x80, 0x10, 0x20, 0x10, 0x24, 0x93, 0xFE, 0x54, 0x20, 0x19, 0xFC, 0xFC, 0x20, 0x13, 0xFE, 0x10, 0x04, 0x39, 0xFE, 0x35, 0x04, 0x51, 0xFC, 0x91, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0x0C, 0x10, 0x04, 0x13, 0xFE, 0x92, 0x20, 0x54, 0x24, 0x19, 0xFE, 0xFD, 0x24, 0x11, 0xFC, 0x31, 0x24, 0x39, 0xFC, 0x55, 0x24, 0x90, 0xA0, 0x10, 0x40, 0x10, 0x60, 0x10, 0x90, 0x11, 0x0E, 0x16, 0x04, 0x10, 0x00, 0x13, 0xFC, 0x20, 0x08, 0x20, 0x10, 0x44, 0x30, 0xFC, 0x48, 0x08, 0x86, 0x13, 0x02, 0x20, 0x00, 0x41, 0xFC, 0xFC, 0x20, 0x00, 0x20, 0x1C, 0x20, 0xE0, 0x24, 0x47, 0xFE, 0x00, 0x00, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x14, 0x40, 0x7F, 0x7C, 0x10, 0xC8, 0x3F, 0x28, 0x55, 0x10, 0x1D, 0x6E, 0x03, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x09, 0x20, 0x11, 0x18, 0x65, 0x08, 0x02, 0x00, 0x00, 0x04, 0xFD, 0xFE, 0x04, 0x10, 0x08, 0x24, 0x18, 0xFE, 0x26, 0x84, 0xC2, 0x94, 0x00, 0x94, 0x7C, 0x94, 0x10, 0xA4, 0x10, 0xA4, 0x10, 0xA4, 0x1E, 0x20, 0xE0, 0x58, 0x40, 0x84, 0x03, 0x02, 0x08, 0x40, 0x08, 0x40, 0x7E, 0xF8, 0x09, 0x10, 0x3E, 0x24, 0x08, 0xFE, 0xFF, 0x24, 0x00, 0x24, 0x3F, 0xFE, 0x22, 0x24, 0x3E, 0x24, 0x22, 0xFC, 0x3E, 0x24, 0x22, 0x20, 0x22, 0xA0, 0x26, 0x40, 0x20, 0x80, 0x20, 0x48, 0x27, 0xFC, 0x21, 0x10, 0x20, 0xA4, 0xFF, 0xFE, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x3B, 0xF8, 0xE1, 0x20, 0x41, 0x22, 0x02, 0x22, 0x0C, 0x1E, 0x12, 0x20, 0x12, 0x20, 0xFF, 0xA0, 0x12, 0x24, 0x20, 0x7E, 0x3F, 0x84, 0x41, 0x44, 0xBD, 0x44, 0x25, 0x48, 0x25, 0x28, 0x25, 0x28, 0x25, 0x10, 0x3D, 0x28, 0x21, 0x28, 0x05, 0x46, 0x02, 0x84, 0x20, 0x80, 0x20, 0x48, 0x27, 0xFC, 0x79, 0x10, 0x40, 0xA4, 0x87, 0xFE, 0x78, 0x08, 0x23, 0xFC, 0x22, 0x08, 0xFB, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x29, 0x20, 0x31, 0x22, 0x22, 0x22, 0x0C, 0x1E, 0x08, 0x00, 0x0B, 0xF8, 0x10, 0x10, 0x20, 0x20, 0x40, 0x60, 0x08, 0x98, 0x11, 0x0E, 0x36, 0x02, 0x50, 0x00, 0x93, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x57, 0xF8, 0x30, 0x30, 0x10, 0xC0, 0x13, 0x38, 0x3C, 0x06, 0x50, 0x00, 0x97, 0xF8, 0x10, 0x40, 0x20, 0x40, 0x20, 0x44, 0x4F, 0xFE, 0x80, 0x00, 0x20, 0x40, 0x10, 0x48, 0x13, 0xFC, 0xFC, 0x40, 0x03, 0xF8, 0x48, 0x40, 0x4F, 0xFE, 0x48, 0x08, 0x4B, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x1E, 0x08, 0xE3, 0xF8, 0x42, 0x08, 0x02, 0x28, 0x02, 0x10, 0x02, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x14, 0x50, 0x04, 0x42, 0x08, 0x42, 0x70, 0x3E, 0x02, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x14, 0x50, 0x04, 0x40, 0x04, 0x42, 0x08, 0x42, 0x70, 0x3E, 0x01, 0x00, 0x01, 0x00, 0x83, 0xF0, 0x64, 0x20, 0x28, 0x48, 0x07, 0xFC, 0x10, 0x88, 0x20, 0x88, 0x3F, 0xFE, 0xE0, 0x88, 0x20, 0x88, 0x2F, 0xF8, 0x20, 0x88, 0x20, 0x80, 0x22, 0x80, 0x21, 0x00, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x56, 0x04, 0x5A, 0xF4, 0x52, 0x94, 0x92, 0x94, 0x12, 0x94, 0x12, 0x94, 0x12, 0x94, 0x12, 0xF4, 0x2A, 0x94, 0x46, 0x04, 0x82, 0x14, 0x02, 0x08, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x88, 0x24, 0x3F, 0xF0, 0x04, 0x14, 0xFF, 0xFE, 0x04, 0x10, 0x3F, 0xF0, 0x08, 0x00, 0x0F, 0xF8, 0x18, 0x08, 0x28, 0x08, 0xCF, 0xF8, 0x08, 0x08, 0x10, 0x10, 0x10, 0xD0, 0x17, 0x10, 0x11, 0x12, 0xF9, 0x54, 0x17, 0xB8, 0x11, 0x10, 0x1B, 0x10, 0x33, 0x90, 0xD5, 0x50, 0x19, 0x10, 0x11, 0x10, 0x11, 0x28, 0x11, 0x46, 0x51, 0x84, 0x21, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x88, 0x34, 0x12, 0x10, 0x02, 0x20, 0x3F, 0xF0, 0x02, 0x20, 0x02, 0x20, 0x04, 0x20, 0x04, 0x20, 0x08, 0x22, 0x08, 0x22, 0x10, 0x1E, 0x60, 0x00, 0x10, 0x08, 0x10, 0x08, 0x20, 0x08, 0x21, 0x08, 0x45, 0x08, 0xFD, 0x08, 0x09, 0x08, 0x11, 0x08, 0x21, 0x08, 0xFD, 0x78, 0x41, 0x88, 0x00, 0x08, 0x1C, 0x08, 0xE0, 0x08, 0x40, 0x08, 0x00, 0x08, 0x00, 0x40, 0x04, 0x40, 0xFE, 0x88, 0x10, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x20, 0x10, 0x20, 0x1E, 0x50, 0xF0, 0x50, 0x40, 0x88, 0x01, 0x0E, 0x02, 0x04, 0x0C, 0x00, 0x04, 0x40, 0x04, 0x48, 0x7C, 0x7C, 0x04, 0x40, 0x04, 0x40, 0x04, 0x48, 0x7C, 0x7C, 0x04, 0x40, 0x04, 0x40, 0x04, 0x48, 0x7C, 0x7C, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x00, 0x04, 0x40, 0x07, 0xE0, 0x08, 0x40, 0x08, 0x40, 0x10, 0x80, 0x20, 0x80, 0x00, 0x80, 0x01, 0x40, 0x01, 0x40, 0x02, 0x20, 0x04, 0x20, 0x08, 0x10, 0x30, 0x0E, 0xC0, 0x04, 0x00, 0x00, 0x04, 0x20, 0x07, 0xF0, 0x08, 0x20, 0x10, 0x40, 0x21, 0x80, 0x02, 0x60, 0x0C, 0x10, 0x11, 0x0C, 0x69, 0x24, 0x09, 0x30, 0x09, 0x20, 0x11, 0x40, 0x02, 0x00, 0x04, 0x40, 0x18, 0x30, 0xE0, 0x0E, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x20, 0xFF, 0xF0, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x22, 0x10, 0x22, 0x20, 0x1E, 0xC0, 0x00, 0x40, 0x04, 0x2F, 0xFE, 0x20, 0xA0, 0x00, 0xA4, 0x87, 0xFE, 0x64, 0xA4, 0x24, 0xA4, 0x0C, 0xA4, 0x15, 0x1C, 0x26, 0x04, 0xE4, 0x04, 0x25, 0xF4, 0x24, 0x04, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x00, 0x2F, 0x7C, 0x29, 0x10, 0x29, 0x50, 0x2F, 0x50, 0x29, 0x54, 0x29, 0x7E, 0x2F, 0x20, 0x2A, 0x30, 0x29, 0x50, 0x2E, 0xD2, 0x48, 0x92, 0x41, 0x0E, 0x82, 0x00, 0x10, 0x40, 0x14, 0x40, 0x12, 0x40, 0x10, 0x44, 0xFE, 0xFE, 0x11, 0x08, 0x92, 0x88, 0x54, 0x88, 0x18, 0x90, 0x30, 0x50, 0x54, 0x50, 0xD2, 0x20, 0x10, 0x50, 0x10, 0x50, 0x50, 0x8E, 0x23, 0x04, 0x00, 0x00, 0x20, 0x04, 0x23, 0xFE, 0x22, 0x04, 0x22, 0x04, 0x22, 0x04, 0x22, 0x04, 0x23, 0xFC, 0x22, 0x04, 0x22, 0x04, 0x22, 0x04, 0x22, 0x04, 0x22, 0x04, 0x23, 0xFC, 0x22, 0x04, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x04, 0x78, 0xFE, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0x04, 0x7E, 0xFC, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x3E, 0x78, 0x20, 0x08, 0x3C, 0x78, 0x20, 0x08, 0x3F, 0xF8, 0x00, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xF8, 0x02, 0x08, 0x0C, 0x48, 0x70, 0x30, 0x10, 0x40, 0x10, 0x40, 0x1F, 0x40, 0x21, 0x50, 0x62, 0x4C, 0x14, 0x44, 0x08, 0x40, 0x14, 0x46, 0x23, 0xFC, 0xC0, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x40, 0x08, 0x50, 0x02, 0x48, 0xFF, 0x40, 0x00, 0x44, 0x3F, 0xFE, 0x22, 0x40, 0x22, 0x50, 0x22, 0x50, 0x3E, 0x50, 0x08, 0x50, 0x2A, 0x50, 0x49, 0x52, 0x88, 0x92, 0x29, 0x0E, 0x12, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x11, 0x00, 0x91, 0x00, 0x51, 0xF8, 0x52, 0x10, 0x14, 0x20, 0x30, 0x20, 0x50, 0x40, 0xD0, 0xC0, 0x11, 0x20, 0x22, 0x10, 0x24, 0x08, 0x48, 0x0E, 0x10, 0x04, 0x28, 0x80, 0x28, 0x84, 0xFE, 0xFE, 0x29, 0x04, 0x3A, 0x44, 0x11, 0x54, 0x7C, 0xE4, 0x54, 0x44, 0x57, 0xFC, 0x7C, 0x44, 0x10, 0xE4, 0xFE, 0xD4, 0x11, 0x54, 0x12, 0x44, 0x10, 0x54, 0x10, 0x48, 0x10, 0x80, 0x10, 0x80, 0x11, 0x04, 0x11, 0xFE, 0xFE, 0x04, 0x14, 0x24, 0x11, 0xF4, 0x1D, 0x24, 0x31, 0x24, 0xD1, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0xE4, 0x11, 0x04, 0x50, 0x14, 0x20, 0x08, 0x00, 0x08, 0x45, 0xFC, 0x2D, 0x08, 0x11, 0x08, 0x29, 0x08, 0x49, 0xF8, 0x89, 0x08, 0x19, 0x08, 0x29, 0x08, 0x49, 0xF8, 0x89, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x57, 0xFE, 0x20, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x08, 0x93, 0xFC, 0x52, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x32, 0x08, 0x52, 0x08, 0xD3, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x22, 0x08, 0x2F, 0xFE, 0x40, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x28, 0x08, 0x48, 0x08, 0x48, 0x08, 0x8F, 0xF8, 0x08, 0x08, 0x08, 0x80, 0xFC, 0x80, 0x09, 0x04, 0x49, 0xFE, 0x4A, 0x04, 0x4C, 0x24, 0x49, 0xF4, 0x49, 0x24, 0x49, 0x24, 0x7D, 0x24, 0x05, 0x24, 0x1D, 0xE4, 0xE5, 0x24, 0x04, 0x04, 0x28, 0x14, 0x10, 0x08, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x10, 0x04, 0x1F, 0xFE, 0x22, 0x04, 0x52, 0x44, 0x8A, 0x84, 0x7F, 0xF4, 0x06, 0x04, 0x0B, 0x84, 0x0A, 0xC4, 0x12, 0x44, 0x22, 0x14, 0x02, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x00, 0x20, 0x04, 0x3F, 0xFE, 0x20, 0x04, 0x27, 0xE4, 0x24, 0x24, 0x24, 0x24, 0x27, 0xE4, 0x24, 0x04, 0x40, 0x14, 0x80, 0x08, 0x00, 0x08, 0x09, 0xFC, 0x7D, 0x08, 0x49, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x49, 0x08, 0x49, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x49, 0x08, 0x79, 0x08, 0x49, 0x08, 0x01, 0x08, 0x0F, 0xFE, 0x00, 0x00, 0x20, 0x08, 0x23, 0xFC, 0x2A, 0x00, 0x3E, 0x00, 0x52, 0x08, 0x93, 0xFC, 0x12, 0x08, 0xFE, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x2A, 0x08, 0x26, 0x00, 0x42, 0x04, 0x83, 0xFE, 0x00, 0x00, 0x22, 0x08, 0x19, 0x18, 0x09, 0x20, 0x00, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x11, 0x10, 0x2F, 0xEE, 0xC1, 0x04, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x40, 0x10, 0x33, 0xF8, 0x12, 0x10, 0x02, 0x10, 0x82, 0x10, 0x63, 0xF0, 0x22, 0x10, 0x0A, 0x10, 0x12, 0x10, 0x23, 0xF0, 0xE2, 0x10, 0x22, 0x10, 0x22, 0x10, 0x22, 0x14, 0x3F, 0xFE, 0x20, 0x00, 0xFF, 0x80, 0x22, 0xFE, 0x3E, 0x44, 0x22, 0x28, 0x3E, 0x10, 0x22, 0x28, 0xFF, 0xC6, 0x02, 0x70, 0x3F, 0x88, 0x05, 0x18, 0x09, 0xA0, 0x33, 0x40, 0x05, 0x30, 0x09, 0x0E, 0x71, 0x04, 0x01, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x00, 0x12, 0x00, 0xFE, 0x08, 0x13, 0xFC, 0x16, 0x08, 0x1A, 0x08, 0x32, 0x08, 0xD2, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x00, 0x12, 0x04, 0x53, 0xFE, 0x20, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0xFF, 0xFC, 0x12, 0x20, 0x16, 0x24, 0x1B, 0xFE, 0x32, 0x20, 0xD2, 0x24, 0x13, 0xFE, 0x15, 0x04, 0x15, 0x04, 0x15, 0x04, 0x59, 0xFC, 0x21, 0x04, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x00, 0x20, 0x00, 0x20, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x3F, 0xF0, 0x20, 0x10, 0x20, 0x00, 0x20, 0x00, 0x20, 0x08, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x04, 0x40, 0x0C, 0x20, 0x10, 0x18, 0x20, 0x08, 0x00, 0x08, 0x7D, 0xFC, 0x45, 0x00, 0x45, 0x00, 0x45, 0x08, 0x7D, 0xFC, 0x11, 0x08, 0x11, 0x08, 0x51, 0x08, 0x5D, 0xF8, 0x51, 0x08, 0x51, 0x00, 0x5D, 0x00, 0xF1, 0x04, 0x41, 0xFE, 0x00, 0x00, 0x00, 0x04, 0x7D, 0xFE, 0x45, 0x04, 0x45, 0x04, 0x45, 0xFC, 0x7D, 0x20, 0x11, 0x24, 0x11, 0xFE, 0x51, 0x20, 0x5D, 0x24, 0x51, 0xFE, 0x52, 0x84, 0x5E, 0x84, 0xE4, 0x84, 0x48, 0xFC, 0x00, 0x84, 0x20, 0x04, 0x21, 0xFE, 0x3D, 0x04, 0x41, 0x04, 0x81, 0xFC, 0x7D, 0x20, 0x21, 0x24, 0x21, 0xFE, 0xFD, 0x20, 0x21, 0x24, 0x25, 0xFE, 0x2A, 0x84, 0x32, 0x84, 0x24, 0x84, 0x08, 0xFC, 0x00, 0x84, 0x08, 0x08, 0x0B, 0xFC, 0x0A, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x32, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x1F, 0xFE, 0x10, 0x00, 0x11, 0x10, 0x13, 0x0C, 0x14, 0x04, 0x04, 0x00, 0x04, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x10, 0x04, 0x20, 0x44, 0x4F, 0xE4, 0x08, 0x44, 0x08, 0x44, 0x08, 0x44, 0x08, 0x44, 0x0F, 0xC4, 0x08, 0x44, 0x00, 0x04, 0x00, 0x28, 0x00, 0x10, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x5B, 0xF8, 0x56, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x1F, 0xFE, 0x10, 0x00, 0x11, 0x10, 0x13, 0x0C, 0x14, 0x04, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x00, 0x15, 0x00, 0x59, 0x04, 0x51, 0xFE, 0x51, 0x04, 0x91, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x29, 0x00, 0x25, 0x00, 0x45, 0x04, 0x81, 0xFE, 0x00, 0x00, 0x00, 0x84, 0x3F, 0xC4, 0x20, 0xA4, 0x20, 0xA4, 0x3F, 0xA4, 0x24, 0x24, 0x25, 0x24, 0x3F, 0xA4, 0x24, 0x24, 0x24, 0xA4, 0x3F, 0xE4, 0x50, 0xA4, 0x50, 0x84, 0x50, 0x84, 0x9F, 0x94, 0x10, 0x88, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0xFD, 0xFC, 0x10, 0x00, 0x15, 0xFC, 0x19, 0x04, 0x31, 0x04, 0xD1, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x51, 0x04, 0x21, 0x0C, 0x02, 0x20, 0x7F, 0x44, 0x42, 0xFE, 0x42, 0x84, 0x7E, 0xA4, 0x00, 0x84, 0x7E, 0x94, 0x42, 0x88, 0x42, 0x80, 0x7E, 0xFE, 0x42, 0x02, 0x42, 0x12, 0x7F, 0xFA, 0x42, 0x02, 0x4A, 0x14, 0x44, 0x08, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0xFD, 0xFC, 0x24, 0x00, 0x25, 0xFC, 0x25, 0x04, 0x25, 0x04, 0x45, 0xFC, 0x29, 0x04, 0x11, 0x04, 0x29, 0xFC, 0x45, 0x04, 0x81, 0x14, 0x01, 0x08, 0x08, 0x40, 0x0A, 0x48, 0x09, 0x50, 0x10, 0x40, 0x17, 0xFC, 0x30, 0xA0, 0x5F, 0xFE, 0x91, 0x10, 0x12, 0x08, 0x15, 0xF6, 0x19, 0x14, 0x11, 0x10, 0x11, 0x50, 0x11, 0x24, 0x11, 0x04, 0x10, 0xFC, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x7F, 0xFC, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x28, 0x2E, 0xCF, 0xE4, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x01, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x28, 0x2E, 0xC8, 0x24, 0x09, 0x20, 0x08, 0xC8, 0x08, 0x08, 0x07, 0xF8, 0x08, 0x04, 0x09, 0xFE, 0x11, 0x04, 0x21, 0x04, 0x45, 0xFC, 0xFC, 0x00, 0x09, 0xFC, 0x11, 0x04, 0x21, 0x04, 0xFD, 0xFC, 0x41, 0x04, 0x01, 0x04, 0x1D, 0xFC, 0xE1, 0x04, 0x41, 0x14, 0x01, 0x08, 0x20, 0x04, 0x2F, 0xFE, 0x28, 0x08, 0x2A, 0x28, 0xF9, 0x4E, 0x2F, 0xF2, 0x38, 0xA0, 0x6A, 0xA8, 0xAA, 0xA8, 0x2A, 0xA8, 0x2B, 0xE8, 0x2A, 0x94, 0x28, 0x94, 0x31, 0x24, 0xA1, 0x22, 0x42, 0x40, 0x27, 0xBC, 0x26, 0xB4, 0x25, 0xAC, 0x24, 0xA4, 0xFF, 0xBC, 0x20, 0x40, 0x23, 0xFC, 0x26, 0x40, 0x3B, 0xF8, 0xE2, 0x40, 0x22, 0x7C, 0x20, 0x00, 0x23, 0xF8, 0x20, 0x90, 0xA0, 0x60, 0x47, 0x9E, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0xFF, 0xFC, 0x10, 0x88, 0x14, 0x88, 0x18, 0x88, 0x30, 0x88, 0xD7, 0xFE, 0x10, 0x80, 0x11, 0x40, 0x11, 0x20, 0x12, 0x10, 0x54, 0x0E, 0x28, 0x04, 0x20, 0x04, 0x27, 0xFE, 0x24, 0x04, 0x24, 0x04, 0xFF, 0xFC, 0x24, 0x20, 0x25, 0x24, 0x2D, 0x24, 0x35, 0x24, 0xE5, 0xFC, 0x24, 0x20, 0x25, 0x24, 0x25, 0x24, 0x29, 0x24, 0xB1, 0xFC, 0x41, 0x04, 0x10, 0x04, 0x17, 0xFE, 0x14, 0x04, 0x24, 0x04, 0x27, 0xFC, 0x64, 0x20, 0xA5, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x24, 0x20, 0x25, 0x24, 0x25, 0x24, 0x29, 0x24, 0x31, 0xFC, 0x21, 0x04, 0x00, 0x38, 0x7F, 0xD0, 0x11, 0x10, 0x09, 0x24, 0x7F, 0xFE, 0x44, 0x44, 0x7F, 0xFC, 0x00, 0x08, 0x7E, 0x08, 0x43, 0xFE, 0x7E, 0x08, 0x42, 0x88, 0x7E, 0x48, 0x44, 0x08, 0x7E, 0x28, 0x02, 0x10, 0x12, 0x10, 0x09, 0x10, 0x09, 0x20, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x14, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x90, 0x12, 0x90, 0x12, 0x90, 0x04, 0x84, 0x08, 0x84, 0x70, 0x7C, 0x00, 0x80, 0x40, 0x80, 0x30, 0x80, 0x10, 0x88, 0x07, 0xFC, 0x08, 0x88, 0x10, 0x88, 0x10, 0x88, 0x20, 0x88, 0xEF, 0xFE, 0x20, 0x80, 0x21, 0x40, 0x21, 0x20, 0x22, 0x10, 0x24, 0x0E, 0x28, 0x04, 0x00, 0x80, 0x40, 0x80, 0x30, 0x80, 0x10, 0x88, 0x07, 0xFC, 0x00, 0x88, 0xF0, 0x88, 0x10, 0x88, 0x10, 0x88, 0x1F, 0xFE, 0x10, 0x80, 0x15, 0x40, 0x19, 0x20, 0x12, 0x10, 0x04, 0x0E, 0x08, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0x78, 0x20, 0x90, 0x45, 0x24, 0xFF, 0xFE, 0x09, 0x24, 0x11, 0x24, 0x21, 0x24, 0xFD, 0xFC, 0x41, 0x04, 0x01, 0x00, 0x1D, 0x00, 0xE1, 0x02, 0x41, 0x02, 0x00, 0xFE, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0x11, 0x04, 0xFD, 0x04, 0x12, 0x84, 0x10, 0x44, 0x10, 0x14, 0x10, 0x24, 0x10, 0x44, 0x1D, 0x84, 0xF0, 0x84, 0x40, 0x04, 0x00, 0x28, 0x00, 0x10, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x7F, 0xFC, 0x40, 0x44, 0x41, 0xE4, 0x4F, 0x04, 0x41, 0x24, 0x7F, 0xF4, 0x45, 0x44, 0x49, 0x34, 0x51, 0x14, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x10, 0x80, 0x10, 0x80, 0x14, 0x84, 0x1E, 0xFE, 0x21, 0x04, 0x41, 0x04, 0xBE, 0x84, 0x10, 0x44, 0x10, 0x14, 0x7C, 0x24, 0x10, 0x44, 0x11, 0x84, 0x14, 0x84, 0x18, 0x04, 0x10, 0x28, 0x00, 0x10, 0x00, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0x82, 0x14, 0x3F, 0xF8, 0x04, 0x00, 0x09, 0x00, 0x11, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x04, 0x10, 0x04, 0x14, 0xFF, 0xFE, 0x04, 0x10, 0x04, 0x10, 0x3F, 0xF0, 0x08, 0x00, 0x08, 0x08, 0x1F, 0xFC, 0x18, 0x08, 0x28, 0x08, 0x48, 0x08, 0x8F, 0xF8, 0x08, 0x08, 0x10, 0x40, 0x10, 0x40, 0x10, 0x90, 0x11, 0x08, 0x57, 0xFC, 0x54, 0x90, 0x55, 0x0C, 0x56, 0x84, 0x54, 0xF8, 0x55, 0x88, 0x56, 0x88, 0x7C, 0x50, 0x44, 0x20, 0x00, 0x50, 0x01, 0x8E, 0x06, 0x04, 0x08, 0x40, 0x08, 0x40, 0x08, 0x90, 0x11, 0x08, 0x17, 0xFC, 0x31, 0x10, 0x52, 0x0C, 0x95, 0x04, 0x11, 0xF0, 0x12, 0x10, 0x13, 0x10, 0x14, 0xA0, 0x18, 0x40, 0x10, 0xB0, 0x11, 0x0E, 0x16, 0x04, 0x00, 0x20, 0x40, 0x20, 0x30, 0x48, 0x10, 0x84, 0xFF, 0xFE, 0x00, 0x88, 0x49, 0x06, 0x4A, 0x82, 0x48, 0xF8, 0x49, 0x08, 0x51, 0x88, 0x12, 0x50, 0x1C, 0x20, 0xE0, 0x50, 0x40, 0x8E, 0x03, 0x04, 0x40, 0x40, 0x30, 0x40, 0x10, 0x90, 0x01, 0x08, 0x87, 0xFC, 0x61, 0x10, 0x22, 0x0C, 0x05, 0x04, 0x11, 0xF0, 0x22, 0x10, 0xE3, 0x10, 0x24, 0xA0, 0x28, 0x40, 0x20, 0xB0, 0x21, 0x0E, 0x26, 0x04, 0x00, 0x00, 0x7F, 0x7C, 0x11, 0x44, 0x11, 0x44, 0xFF, 0xC8, 0x11, 0x48, 0x11, 0x50, 0x7F, 0x48, 0x20, 0x44, 0x41, 0x42, 0xBF, 0xC2, 0x21, 0x62, 0x21, 0x54, 0x21, 0x48, 0x3F, 0x40, 0x21, 0x40, 0x08, 0x20, 0xFC, 0x20, 0x08, 0x48, 0x48, 0x84, 0x4B, 0xFE, 0x48, 0x88, 0x49, 0x06, 0x4A, 0x82, 0x48, 0xF8, 0x7D, 0x08, 0x06, 0x88, 0x04, 0x50, 0x34, 0x20, 0xC4, 0x50, 0x14, 0x8E, 0x0B, 0x04, 0x00, 0x80, 0x00, 0x40, 0xF7, 0xFE, 0x94, 0x82, 0x98, 0xF4, 0x91, 0x10, 0x92, 0xA0, 0x90, 0x40, 0x91, 0xB0, 0x9E, 0x0E, 0x93, 0xFC, 0xF2, 0x08, 0x92, 0x08, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x04, 0x00, 0x04, 0x00, 0x74, 0x04, 0x54, 0xBE, 0x5F, 0xE4, 0x54, 0xA4, 0x54, 0xA4, 0x54, 0xA4, 0x54, 0xA4, 0x54, 0xA4, 0x54, 0xA4, 0x74, 0xA4, 0x48, 0xA4, 0x0A, 0xBC, 0x11, 0x24, 0x20, 0x00, 0x02, 0x00, 0x02, 0x20, 0x03, 0xF0, 0x02, 0x00, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x02, 0x80, 0x02, 0x60, 0x02, 0x30, 0x02, 0x10, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x80, 0x08, 0x80, 0x7C, 0xF8, 0x49, 0x08, 0x4B, 0x10, 0x4C, 0xA0, 0x48, 0x40, 0x48, 0xB0, 0x49, 0x0E, 0x4E, 0x04, 0x49, 0xF8, 0x79, 0x08, 0x49, 0x08, 0x01, 0x08, 0x01, 0xF8, 0x01, 0x08, 0x00, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x10, 0x20, 0x20, 0x20, 0x40, 0x20, 0x10, 0x20, 0x12, 0x20, 0x12, 0x24, 0x13, 0xAC, 0xFE, 0x30, 0x12, 0xA2, 0x17, 0x22, 0x1A, 0x1E, 0x30, 0x08, 0xD3, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x52, 0x08, 0x23, 0xF8, 0x10, 0x20, 0x12, 0x20, 0x12, 0x24, 0x13, 0xAC, 0xFE, 0x30, 0x12, 0xA2, 0x3B, 0x22, 0x36, 0x5E, 0x50, 0x88, 0x53, 0xFC, 0x92, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x08, 0x08, 0x49, 0x7C, 0x49, 0x48, 0x49, 0x48, 0x7F, 0x48, 0x02, 0x48, 0xFF, 0x48, 0x02, 0x48, 0x02, 0x48, 0x7E, 0x48, 0x42, 0x48, 0x40, 0x48, 0x46, 0x8A, 0x58, 0x8A, 0x61, 0x06, 0x02, 0x00, 0x20, 0x04, 0x27, 0xBE, 0x24, 0x88, 0x24, 0xA8, 0xB7, 0xA8, 0xAC, 0xA8, 0xA4, 0xA8, 0x27, 0xBE, 0x24, 0x08, 0x24, 0x10, 0x25, 0x18, 0x24, 0xA8, 0x27, 0xAA, 0x24, 0x4A, 0x20, 0x86, 0x21, 0x00, 0x01, 0x04, 0x3F, 0x84, 0x04, 0x04, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0xA4, 0xFF, 0xE4, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x04, 0x04, 0x04, 0x04, 0x14, 0x04, 0x08, 0x11, 0x10, 0x11, 0x10, 0x17, 0xFC, 0x11, 0x10, 0xFD, 0xF0, 0x11, 0x10, 0x11, 0xF0, 0x11, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x12, 0x00, 0x1E, 0x90, 0xF3, 0x08, 0x42, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x22, 0x20, 0x22, 0x20, 0x7F, 0x20, 0x22, 0x20, 0x3E, 0x24, 0x22, 0xFE, 0x3E, 0x24, 0x22, 0x24, 0x22, 0x24, 0xFF, 0xA4, 0x54, 0x24, 0x62, 0x44, 0x40, 0x44, 0x7E, 0x84, 0x01, 0x14, 0x02, 0x08, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0xFC, 0xFD, 0x04, 0x12, 0x08, 0x14, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x1C, 0xA0, 0xE1, 0x10, 0x42, 0x08, 0x04, 0x0E, 0x08, 0x04, 0x00, 0x80, 0x04, 0x80, 0xFE, 0x80, 0x10, 0xFC, 0x11, 0x04, 0x22, 0x08, 0x24, 0x40, 0x7E, 0x40, 0xA4, 0x40, 0x24, 0x40, 0x24, 0xA0, 0x24, 0xA0, 0x25, 0x10, 0x3E, 0x08, 0x24, 0x0E, 0x08, 0x04, 0x00, 0x70, 0x7F, 0x80, 0x02, 0x10, 0x7F, 0xF8, 0x04, 0x00, 0xFF, 0xFE, 0x08, 0x10, 0x1F, 0xF8, 0x30, 0x10, 0x5F, 0xF0, 0x90, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x88, 0x3F, 0xFE, 0x20, 0x88, 0x2F, 0xF8, 0x28, 0x80, 0x24, 0xC4, 0x22, 0xA8, 0x44, 0x90, 0x48, 0x8E, 0x92, 0x84, 0x01, 0x00, 0x20, 0x80, 0x20, 0x44, 0x27, 0xFE, 0x24, 0x40, 0xB7, 0xFC, 0xAC, 0x44, 0xA7, 0xFE, 0xA4, 0x44, 0x27, 0xFC, 0x24, 0x48, 0x25, 0x50, 0x24, 0xE0, 0x25, 0x50, 0x2A, 0x4E, 0x30, 0x44, 0x20, 0xC0, 0x20, 0x80, 0x20, 0x44, 0x27, 0xFE, 0xAC, 0x40, 0x77, 0xFC, 0x24, 0x44, 0xFF, 0xFE, 0x24, 0x44, 0x77, 0xFC, 0x6C, 0x48, 0xA5, 0x50, 0x24, 0xE0, 0x25, 0x50, 0x2A, 0x4E, 0x30, 0x44, 0x20, 0xC0, 0x10, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x40, 0xFC, 0x40, 0x10, 0x40, 0x14, 0x40, 0x18, 0x40, 0x30, 0x40, 0xD0, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x50, 0x00, 0x20, 0x00, 0x10, 0x80, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0xFC, 0x00, 0x10, 0x10, 0x15, 0xF8, 0x19, 0x10, 0x31, 0x10, 0xD1, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x12, 0x12, 0x12, 0x52, 0x0E, 0x24, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x22, 0x10, 0x22, 0x20, 0x1E, 0x40, 0x00, 0x10, 0x80, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x54, 0x00, 0x58, 0x10, 0x51, 0xF8, 0x91, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x29, 0x10, 0x25, 0x12, 0x42, 0x12, 0x82, 0x0E, 0x04, 0x00, 0x02, 0x00, 0x02, 0x10, 0x3F, 0xE0, 0x02, 0x40, 0x02, 0x84, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x10, 0x0F, 0xF8, 0x12, 0x00, 0x27, 0xF0, 0x40, 0x10, 0x80, 0x10, 0x02, 0x20, 0x01, 0x20, 0x00, 0xC0, 0x10, 0x80, 0x10, 0x88, 0x13, 0xF8, 0x10, 0x90, 0xFC, 0xA4, 0x17, 0xFE, 0x10, 0x80, 0x19, 0x08, 0x33, 0xFC, 0xD4, 0x80, 0x19, 0xF8, 0x10, 0x08, 0x10, 0x08, 0x11, 0x10, 0x50, 0x90, 0x20, 0x60, 0x10, 0x80, 0x10, 0x88, 0x13, 0xF8, 0x54, 0x90, 0x58, 0xA4, 0x53, 0xFE, 0x90, 0x80, 0x11, 0x08, 0x13, 0xFC, 0x14, 0x80, 0x19, 0xF8, 0x28, 0x08, 0x24, 0x08, 0x45, 0x10, 0x80, 0x90, 0x00, 0x60, 0x11, 0x20, 0x1F, 0xF0, 0x21, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x80, 0x7E, 0xFC, 0x02, 0x80, 0x3E, 0xF8, 0x02, 0x80, 0x7E, 0xFC, 0x02, 0x80, 0x02, 0x80, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x08, 0x10, 0x08, 0xFD, 0xE8, 0x11, 0x28, 0x11, 0x28, 0x11, 0x28, 0x11, 0x28, 0x11, 0x28, 0x1D, 0xE8, 0xF1, 0x28, 0x40, 0x08, 0x00, 0x28, 0x00, 0x10, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x20, 0x01, 0x20, 0x1F, 0xA0, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x1F, 0x20, 0x11, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x08, 0xFC, 0x08, 0x11, 0xE8, 0x39, 0x28, 0x35, 0x28, 0x51, 0x28, 0x51, 0x28, 0x91, 0x28, 0x11, 0xE8, 0x11, 0x28, 0x10, 0x08, 0x10, 0x28, 0x10, 0x10, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x48, 0x12, 0x48, 0xFF, 0xF8, 0x12, 0x48, 0x3A, 0x48, 0x37, 0xF8, 0x50, 0x40, 0x5F, 0xFE, 0x90, 0x40, 0x10, 0xE0, 0x11, 0x50, 0x12, 0x4E, 0x1C, 0x44, 0x10, 0x40, 0x00, 0x20, 0x04, 0x28, 0xFF, 0xFC, 0x10, 0x20, 0x10, 0x24, 0x21, 0xFE, 0x20, 0x40, 0x7C, 0x88, 0xA5, 0xFC, 0x24, 0x00, 0x25, 0xFC, 0x25, 0x54, 0x25, 0x54, 0x3D, 0x54, 0x23, 0xFE, 0x00, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x54, 0x40, 0x54, 0x84, 0x7D, 0xFE, 0x55, 0x04, 0x55, 0x24, 0x7D, 0x24, 0x11, 0x24, 0xFF, 0x24, 0x31, 0x24, 0x39, 0x24, 0x55, 0x24, 0x54, 0x50, 0x90, 0x8C, 0x13, 0x04, 0x04, 0x10, 0x0E, 0x10, 0xF8, 0x90, 0x08, 0x50, 0x08, 0x10, 0xFE, 0x90, 0x08, 0x50, 0x1C, 0x14, 0x1A, 0x1E, 0x29, 0xF0, 0x28, 0x10, 0x48, 0x10, 0x88, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x22, 0x8F, 0xF4, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0x08, 0x24, 0x10, 0x1C, 0x60, 0x00, 0x00, 0x80, 0x00, 0x40, 0x08, 0x44, 0x7F, 0xFE, 0x48, 0x40, 0x48, 0x80, 0x49, 0x08, 0x4B, 0xF8, 0x48, 0x10, 0x48, 0x24, 0x48, 0x4C, 0x79, 0x90, 0x4E, 0x20, 0x00, 0x50, 0x01, 0x8C, 0x06, 0x04, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x00, 0x90, 0x1F, 0xD0, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x1F, 0x90, 0x10, 0x90, 0x00, 0x10, 0x00, 0x10, 0x00, 0x50, 0x00, 0x20, 0x00, 0x08, 0x47, 0xFC, 0x34, 0x08, 0x17, 0xF8, 0x84, 0x08, 0x67, 0xF8, 0x22, 0x04, 0x03, 0xFE, 0x14, 0x44, 0x24, 0x44, 0xE8, 0xA4, 0x35, 0x14, 0x24, 0x04, 0x27, 0xE4, 0x20, 0x14, 0x20, 0x08, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x14, 0x50, 0x04, 0x40, 0x04, 0x40, 0x08, 0x42, 0x10, 0x42, 0x60, 0x3E, 0x08, 0x04, 0x04, 0x04, 0x04, 0x84, 0xFF, 0xC4, 0x04, 0x04, 0x08, 0xA4, 0x10, 0xA4, 0x7F, 0x24, 0x02, 0x24, 0x04, 0xA4, 0x09, 0x24, 0x72, 0x24, 0x06, 0x04, 0x19, 0x84, 0xE0, 0x94, 0x00, 0x08, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x48, 0x02, 0x8F, 0xF4, 0x08, 0x20, 0x14, 0x40, 0x23, 0x80, 0x0C, 0x60, 0x30, 0x1E, 0xCF, 0xE4, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x00, 0x08, 0x43, 0xFC, 0x22, 0x48, 0x22, 0x48, 0x03, 0xF8, 0x02, 0x48, 0xE2, 0x48, 0x23, 0xF8, 0x20, 0x40, 0x2F, 0xFE, 0x20, 0xE0, 0x29, 0x50, 0x32, 0x48, 0x24, 0x4E, 0x08, 0x44, 0x00, 0x40, 0x01, 0x00, 0x09, 0x10, 0x09, 0xF8, 0x09, 0x00, 0x09, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x00, 0x40, 0x09, 0x48, 0x7D, 0x7C, 0x49, 0x40, 0x49, 0x44, 0x4F, 0xFE, 0x48, 0x08, 0x4B, 0xFC, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x7B, 0xF8, 0x4A, 0x08, 0x02, 0x08, 0x02, 0x28, 0x02, 0x10, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x3F, 0xF0, 0x20, 0x10, 0x3F, 0xF0, 0x22, 0x08, 0x21, 0x90, 0x24, 0x60, 0x38, 0x1C, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x3F, 0xF0, 0x20, 0x10, 0x3F, 0xF0, 0x22, 0x08, 0x21, 0x90, 0x24, 0x60, 0x38, 0x1C, 0x02, 0x08, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x10, 0x80, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0xFC, 0x00, 0x10, 0x10, 0x11, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x1D, 0x10, 0xF1, 0x10, 0x41, 0x12, 0x02, 0x12, 0x02, 0x0E, 0x04, 0x00, 0x00, 0x80, 0x08, 0x40, 0x7C, 0x44, 0x4F, 0xFE, 0x48, 0x00, 0x48, 0x10, 0x49, 0xF8, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x79, 0x10, 0x49, 0x12, 0x02, 0x12, 0x02, 0x0E, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x84, 0x44, 0x0C, 0x30, 0x10, 0x18, 0x20, 0x08, 0x00, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x10, 0xFE, 0xF8, 0x10, 0x90, 0x10, 0x90, 0x10, 0xD0, 0x10, 0xB0, 0x1E, 0x92, 0xF1, 0x12, 0x42, 0x0E, 0x00, 0x00, 0x52, 0x04, 0x51, 0x82, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x40, 0x21, 0x40, 0x02, 0x40, 0x0C, 0x40, 0x08, 0x40, 0x08, 0x40, 0x0B, 0x40, 0x1C, 0x40, 0xE8, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x42, 0x08, 0x42, 0x28, 0x3E, 0x10, 0x00, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFE, 0x12, 0x02, 0xFC, 0x54, 0x10, 0x88, 0x15, 0x04, 0x18, 0x00, 0x30, 0x08, 0xD3, 0xFC, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x57, 0xFE, 0x20, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x00, 0x13, 0x08, 0xFE, 0x88, 0x12, 0x50, 0x16, 0x50, 0x1A, 0x20, 0x32, 0x20, 0xD2, 0x50, 0x12, 0x98, 0x13, 0x08, 0x12, 0x00, 0x12, 0x04, 0x53, 0xFE, 0x20, 0x00, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x04, 0xFE, 0xFE, 0x08, 0x84, 0x08, 0x84, 0x0A, 0x84, 0x0C, 0x84, 0x18, 0x84, 0xE8, 0x84, 0x08, 0x84, 0x08, 0xFC, 0x08, 0x84, 0x28, 0x00, 0x10, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x42, 0x84, 0x74, 0x3E, 0x40, 0x00, 0x40, 0x01, 0xF0, 0x7F, 0x10, 0x14, 0xA0, 0x14, 0x40, 0x14, 0xA0, 0x25, 0x18, 0x26, 0x0A, 0x44, 0x02, 0x83, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0xFF, 0xFE, 0x10, 0x20, 0x38, 0x20, 0x34, 0x24, 0x55, 0xFE, 0x51, 0x04, 0x91, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x02, 0x08, 0x3F, 0xFC, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x3E, 0xF8, 0x22, 0x88, 0x01, 0x40, 0x01, 0x24, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x88, 0x24, 0x1F, 0xF8, 0x10, 0x08, 0x1F, 0xF8, 0x10, 0x80, 0x14, 0x90, 0x17, 0xF0, 0x10, 0x80, 0x28, 0x88, 0x28, 0x88, 0x4F, 0xF8, 0x88, 0x08, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x09, 0x20, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x01, 0x10, 0xFF, 0x90, 0x14, 0x50, 0x14, 0x7C, 0x7F, 0x50, 0x55, 0x90, 0x55, 0x10, 0x57, 0xFE, 0x61, 0x04, 0x41, 0x7E, 0x41, 0x44, 0x7F, 0x44, 0x41, 0x44, 0x41, 0x44, 0x7F, 0x7C, 0x41, 0x44, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x21, 0x00, 0x21, 0x08, 0x3F, 0xFC, 0x22, 0x00, 0x24, 0x80, 0x28, 0x90, 0x2F, 0xF8, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x40, 0x80, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x30, 0x24, 0x13, 0xFE, 0x02, 0x40, 0xFE, 0x48, 0x0B, 0xFC, 0x12, 0x80, 0x37, 0x28, 0x5B, 0xFC, 0x96, 0x20, 0x12, 0x24, 0x13, 0xFE, 0x12, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0x04, 0x40, 0x18, 0x30, 0xE7, 0xCE, 0x00, 0x04, 0x3F, 0xF8, 0x04, 0x00, 0x0F, 0xE0, 0x00, 0x20, 0x00, 0x20, 0x04, 0x20, 0x02, 0x40, 0x01, 0x80, 0x20, 0x40, 0x20, 0x40, 0x20, 0x48, 0x27, 0xFC, 0xF8, 0xA0, 0x21, 0x10, 0x22, 0x0E, 0x25, 0xF4, 0x28, 0x00, 0x23, 0xFC, 0x38, 0x80, 0xE1, 0xF8, 0x40, 0x08, 0x00, 0x08, 0x00, 0x90, 0x00, 0x60, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0xF8, 0xA0, 0x11, 0x10, 0x1A, 0x0E, 0x35, 0xF4, 0xD0, 0x00, 0x17, 0xFC, 0x10, 0x80, 0x11, 0xF8, 0x10, 0x08, 0x10, 0x08, 0x50, 0x90, 0x20, 0x60, 0x04, 0x40, 0x7E, 0x40, 0x44, 0x48, 0x47, 0xFC, 0x44, 0xA0, 0x7D, 0x10, 0x12, 0x0E, 0x15, 0xF4, 0x5C, 0x00, 0x53, 0xFC, 0x50, 0x80, 0x51, 0xF8, 0x5C, 0x08, 0xF0, 0x08, 0x40, 0x90, 0x00, 0x60, 0x00, 0x40, 0x78, 0x40, 0x48, 0x48, 0x4F, 0xFC, 0x48, 0xA0, 0x79, 0x10, 0x4A, 0x0E, 0x4D, 0xF4, 0x48, 0x00, 0x7B, 0xFC, 0x48, 0x80, 0x49, 0xF8, 0x48, 0x08, 0x48, 0x08, 0x48, 0x90, 0x98, 0x60, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x13, 0xFC, 0xFC, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x17, 0xFE, 0x1C, 0x80, 0xF1, 0x40, 0x41, 0x20, 0x02, 0x10, 0x04, 0x0E, 0x08, 0x04, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x90, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x58, 0x48, 0x54, 0x48, 0x50, 0x48, 0x97, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x1C, 0x04, 0x10, 0x80, 0x10, 0x80, 0x11, 0x40, 0x21, 0x40, 0x22, 0x20, 0x64, 0x10, 0xA8, 0x4E, 0x33, 0xE4, 0x20, 0x00, 0x20, 0x08, 0x2F, 0xFC, 0x21, 0x00, 0x21, 0x20, 0x22, 0x10, 0x27, 0xF8, 0x20, 0x08, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x5B, 0xFC, 0x54, 0x88, 0x50, 0x88, 0x90, 0x88, 0x10, 0x88, 0x1F, 0xFE, 0x10, 0x80, 0x11, 0x40, 0x11, 0x20, 0x12, 0x10, 0x14, 0x0E, 0x18, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x84, 0x44, 0x7F, 0xFC, 0x04, 0x50, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x90, 0x12, 0x90, 0x04, 0x82, 0x08, 0x82, 0x70, 0x7E, 0x08, 0x20, 0x09, 0x20, 0xFF, 0xA0, 0x08, 0x7E, 0x0A, 0x82, 0x7F, 0x04, 0x00, 0x28, 0x7F, 0x20, 0x00, 0x20, 0xFF, 0xA0, 0x08, 0x20, 0x2A, 0x50, 0x49, 0x50, 0x88, 0x88, 0x29, 0x0E, 0x12, 0x04, 0x00, 0x08, 0x7F, 0xFC, 0x40, 0x00, 0x5F, 0xF0, 0x41, 0x00, 0x41, 0x00, 0x41, 0x40, 0x4F, 0xE0, 0x41, 0x00, 0x41, 0x00, 0x41, 0x20, 0x5F, 0xF0, 0x40, 0x00, 0x40, 0x04, 0x7F, 0xFE, 0x00, 0x00, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0xBF, 0xFC, 0x20, 0x00, 0x2F, 0xF8, 0x20, 0x80, 0x20, 0xA0, 0x27, 0xF0, 0x20, 0x80, 0x20, 0x90, 0x2F, 0xF8, 0x20, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x82, 0x04, 0x47, 0xFE, 0x28, 0x20, 0x10, 0x20, 0x28, 0x20, 0x48, 0x20, 0x88, 0x28, 0x09, 0xFC, 0x18, 0x20, 0x28, 0x20, 0x48, 0x20, 0x88, 0x20, 0x08, 0x20, 0x08, 0x24, 0x57, 0xFE, 0x20, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x00, 0x12, 0xF8, 0xFE, 0x20, 0x12, 0x20, 0x3A, 0x20, 0x36, 0xF8, 0x52, 0x20, 0x52, 0x20, 0x92, 0x20, 0x12, 0x28, 0x13, 0xFC, 0x12, 0x00, 0x13, 0xFE, 0x10, 0x00, 0x00, 0x40, 0x04, 0x20, 0xFE, 0x24, 0x11, 0xFE, 0x11, 0x00, 0x21, 0x00, 0x25, 0x00, 0x3F, 0x00, 0x65, 0x00, 0xA5, 0x00, 0x25, 0x00, 0x25, 0x00, 0x3D, 0x00, 0x22, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x08, 0x0B, 0xFC, 0x7E, 0x00, 0x4A, 0xF8, 0x4A, 0x20, 0x4A, 0x20, 0x7A, 0x20, 0x4A, 0xF8, 0x4A, 0x20, 0x7A, 0x20, 0x4A, 0x20, 0x4A, 0x28, 0x4B, 0xFC, 0x7A, 0x00, 0x4B, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x08, 0x20, 0x7C, 0x24, 0x4B, 0xFE, 0x4A, 0x00, 0x4A, 0x00, 0x7A, 0x00, 0x4A, 0x00, 0x4A, 0x00, 0x4A, 0x00, 0x4A, 0x00, 0x7A, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x10, 0x47, 0xF8, 0x34, 0x10, 0x14, 0x10, 0x04, 0x10, 0x04, 0x10, 0x0F, 0xF0, 0x12, 0x40, 0x22, 0x40, 0xE2, 0x40, 0x22, 0x40, 0x22, 0x40, 0x24, 0x42, 0x24, 0x42, 0x28, 0x3E, 0x30, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x00, 0x08, 0x10, 0x0F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x02, 0x10, 0x01, 0x20, 0x00, 0xC0, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x80, 0x04, 0x90, 0x0A, 0xA0, 0x09, 0x40, 0x11, 0x20, 0x22, 0x1C, 0x44, 0x08, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x08, 0x04, 0x4F, 0xFE, 0x48, 0x04, 0x48, 0x04, 0x4B, 0xFC, 0x48, 0x04, 0x50, 0x04, 0x10, 0x04, 0x27, 0xFC, 0x40, 0x04, 0x80, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x88, 0x24, 0x08, 0xF8, 0x3E, 0x88, 0x08, 0xA8, 0x08, 0xA8, 0x7E, 0xA8, 0x08, 0xA8, 0x08, 0x30, 0x14, 0x52, 0x12, 0x52, 0x20, 0x8E, 0x43, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x3E, 0xA0, 0x22, 0x48, 0x14, 0x30, 0x08, 0x10, 0x3F, 0xEE, 0xC1, 0x04, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x11, 0x10, 0x2F, 0xEE, 0xC1, 0x04, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x20, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x10, 0x00, 0x20, 0x08, 0x7F, 0x48, 0x49, 0x28, 0x49, 0x08, 0x7F, 0x48, 0x49, 0x28, 0x49, 0x08, 0x7F, 0x0E, 0x49, 0xF8, 0x0C, 0x08, 0x15, 0x08, 0x15, 0x48, 0x27, 0xC8, 0x44, 0x02, 0x83, 0xFE, 0x10, 0x80, 0x11, 0x08, 0x17, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x67, 0xF8, 0xA4, 0x48, 0x24, 0x88, 0x27, 0xF8, 0x24, 0x88, 0x20, 0x90, 0x21, 0x50, 0x21, 0x68, 0x22, 0x7A, 0x24, 0x42, 0x28, 0x3E, 0x20, 0x40, 0x20, 0x48, 0x23, 0xFC, 0x3A, 0x48, 0x4B, 0xF8, 0x50, 0x40, 0x8F, 0xFE, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x22, 0x48, 0x22, 0x48, 0x2A, 0x48, 0x30, 0xB0, 0x21, 0x0C, 0x06, 0x04, 0x10, 0x80, 0x11, 0x08, 0x13, 0xFC, 0x12, 0x48, 0x5A, 0x48, 0x57, 0xF8, 0x52, 0x48, 0x92, 0x48, 0x13, 0xF8, 0x12, 0x80, 0x10, 0xC8, 0x11, 0x48, 0x11, 0x54, 0x12, 0x5E, 0x14, 0x42, 0x18, 0x3E, 0x00, 0x40, 0x40, 0x48, 0x33, 0xFC, 0x12, 0x48, 0x83, 0xF8, 0x60, 0x40, 0x2F, 0xFE, 0x08, 0x08, 0x13, 0xFC, 0x22, 0x08, 0xE2, 0x48, 0x22, 0x48, 0x22, 0x48, 0x20, 0xB0, 0x21, 0x0C, 0x26, 0x04, 0x20, 0x40, 0x20, 0x40, 0x20, 0x44, 0x27, 0xFE, 0xFC, 0x44, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x3C, 0x44, 0xE7, 0xFC, 0x44, 0x44, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x00, 0x80, 0x20, 0x84, 0x24, 0x98, 0x3E, 0xE0, 0x20, 0x80, 0x20, 0x82, 0x2E, 0x82, 0x70, 0x7E, 0x10, 0x04, 0x17, 0xFE, 0x14, 0x44, 0x14, 0x44, 0xFC, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x1C, 0xC4, 0x34, 0xE4, 0xD5, 0x5C, 0x16, 0x4C, 0x14, 0x44, 0x14, 0x44, 0x14, 0x04, 0x57, 0xFC, 0x24, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x43, 0x04, 0x43, 0x84, 0x45, 0x64, 0x49, 0x34, 0x51, 0x14, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x10, 0x08, 0x10, 0x3C, 0x13, 0xC0, 0x10, 0x40, 0xFC, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x18, 0x40, 0x30, 0x48, 0xD3, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x53, 0xF8, 0x22, 0x08, 0x10, 0x40, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0xFE, 0x00, 0x12, 0x00, 0x16, 0x00, 0x1A, 0x00, 0x32, 0x00, 0xD2, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x14, 0x00, 0x54, 0x00, 0x28, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x00, 0x3F, 0xC0, 0x20, 0x3E, 0x2F, 0xA2, 0x28, 0xA4, 0x2F, 0xA8, 0x20, 0x24, 0x3F, 0xA2, 0x21, 0x22, 0x22, 0x32, 0x5F, 0xAC, 0x42, 0x20, 0x8A, 0x20, 0x04, 0x20, 0x10, 0x04, 0x0D, 0xFE, 0x44, 0x04, 0x50, 0x64, 0x4B, 0x84, 0x40, 0x84, 0x60, 0xA4, 0x57, 0xF4, 0x40, 0x84, 0x48, 0xA4, 0x53, 0xF4, 0x72, 0x24, 0x52, 0x24, 0x53, 0xE4, 0x52, 0x14, 0x40, 0x08, 0x10, 0x80, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x10, 0x00, 0xFD, 0x08, 0x11, 0x08, 0x11, 0x08, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x1C, 0xA0, 0xE0, 0x20, 0x40, 0x44, 0x07, 0xFE, 0x00, 0x00, 0x10, 0x80, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0xFC, 0x00, 0x11, 0x08, 0x15, 0x08, 0x19, 0x08, 0x30, 0x90, 0xD0, 0x90, 0x10, 0x90, 0x10, 0xA0, 0x10, 0x20, 0x10, 0x44, 0x57, 0xFE, 0x20, 0x00, 0x01, 0x04, 0x11, 0x44, 0x7F, 0xE4, 0x51, 0x04, 0x51, 0x54, 0x57, 0xF4, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x57, 0xD4, 0x51, 0x14, 0x73, 0x84, 0x45, 0x44, 0x09, 0x04, 0x01, 0x14, 0x01, 0x08, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x13, 0xFC, 0x7C, 0x90, 0x54, 0x94, 0x57, 0xFE, 0x54, 0x08, 0x55, 0xFC, 0x7D, 0x08, 0x51, 0x08, 0x15, 0xF8, 0x1D, 0x08, 0xF5, 0x08, 0x41, 0xF8, 0x01, 0x08, 0x08, 0x90, 0x7C, 0x90, 0x48, 0x90, 0x4B, 0xFC, 0x48, 0x90, 0x78, 0x94, 0x4F, 0xFE, 0x48, 0x08, 0x49, 0xFC, 0x79, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x49, 0x08, 0x49, 0x08, 0x89, 0xF8, 0x19, 0x08, 0x20, 0x20, 0x10, 0x24, 0x13, 0xFE, 0xFE, 0x20, 0x44, 0x24, 0x29, 0xFE, 0x29, 0x24, 0xFF, 0x24, 0x11, 0xFC, 0x15, 0x24, 0xFE, 0x70, 0x10, 0xA8, 0x11, 0x2E, 0x12, 0x24, 0x20, 0x20, 0x40, 0x20, 0x02, 0x20, 0x02, 0x10, 0x72, 0x14, 0x5F, 0xFE, 0x52, 0x00, 0x52, 0x44, 0x52, 0xC4, 0x53, 0x44, 0x52, 0x44, 0x5E, 0x48, 0x52, 0x28, 0x72, 0x28, 0x52, 0x28, 0x02, 0x00, 0x0B, 0xFE, 0x04, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x09, 0x20, 0x05, 0x44, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x21, 0x10, 0x19, 0x30, 0x09, 0x44, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x31, 0x1E, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x10, 0x20, 0x14, 0x20, 0xFE, 0x7C, 0x10, 0x88, 0x7D, 0x14, 0x56, 0xFE, 0x54, 0x84, 0x54, 0x94, 0x7C, 0x94, 0x10, 0x94, 0x38, 0xA4, 0x34, 0xA4, 0x54, 0x20, 0x90, 0x58, 0x10, 0x84, 0x13, 0x02, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x90, 0x24, 0xF8, 0x25, 0x00, 0x26, 0x40, 0x24, 0x20, 0x04, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x20, 0x08, 0x28, 0x7E, 0xFC, 0x08, 0x20, 0x1C, 0x70, 0x2A, 0xAC, 0x49, 0x24, 0x0A, 0x20, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x04, 0x60, 0x18, 0x10, 0x10, 0x00, 0x12, 0x08, 0x11, 0x10, 0x10, 0xA4, 0xFF, 0xFE, 0x10, 0x00, 0x30, 0x00, 0x38, 0x08, 0x57, 0xFC, 0x50, 0x00, 0x90, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x12, 0x08, 0x11, 0x10, 0x10, 0xA4, 0xFF, 0xFE, 0x10, 0x00, 0x14, 0x00, 0x18, 0x08, 0x33, 0xFC, 0xD0, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x5F, 0xFE, 0x20, 0x00, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x84, 0x80, 0x24, 0xFC, 0x25, 0x40, 0x26, 0x20, 0x24, 0x20, 0x04, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x20, 0x04, 0x1B, 0xFE, 0x49, 0x04, 0x41, 0x14, 0x7F, 0xFC, 0x41, 0x04, 0x5F, 0xF4, 0x59, 0x34, 0x55, 0x54, 0x51, 0x14, 0x5F, 0xF4, 0x43, 0x84, 0x45, 0x44, 0x49, 0x34, 0x51, 0x14, 0x41, 0x0C, 0x10, 0x10, 0x08, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x42, 0x04, 0x31, 0x7E, 0x15, 0x04, 0x04, 0x54, 0x87, 0xFC, 0x64, 0x44, 0x25, 0xF4, 0x0D, 0x54, 0x15, 0xF4, 0x25, 0x54, 0xE5, 0xF4, 0x24, 0xE4, 0x25, 0x54, 0x26, 0x4C, 0x24, 0x44, 0x24, 0x0C, 0x02, 0x04, 0x41, 0x7E, 0x25, 0x04, 0x24, 0x54, 0x07, 0xFC, 0x04, 0x44, 0xE5, 0xF4, 0x25, 0x54, 0x25, 0xF4, 0x25, 0x54, 0x25, 0xF4, 0x24, 0xE4, 0x2D, 0x54, 0x36, 0x4C, 0x24, 0x44, 0x04, 0x0C, 0x10, 0x90, 0x12, 0x94, 0x12, 0x9E, 0x12, 0xA8, 0xFE, 0xC4, 0x12, 0x84, 0x14, 0x88, 0x1B, 0xFC, 0x32, 0x08, 0xD2, 0x48, 0x12, 0x48, 0x12, 0x68, 0x12, 0xA8, 0x10, 0xA2, 0x51, 0x22, 0x26, 0x1E, 0x08, 0x80, 0x48, 0x84, 0x48, 0xFE, 0x49, 0x20, 0x4A, 0x10, 0x48, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x90, 0x12, 0x90, 0x04, 0x82, 0x18, 0x82, 0xE0, 0x7E, 0x22, 0x10, 0x22, 0x10, 0x3F, 0xDC, 0x22, 0x24, 0xAF, 0xC8, 0xAA, 0xBE, 0xAA, 0xA2, 0xAA, 0xAA, 0x2F, 0xAA, 0x22, 0x2A, 0x27, 0x2A, 0x2A, 0xAA, 0x32, 0x2A, 0x22, 0x08, 0x22, 0x14, 0x22, 0x62, 0x10, 0x90, 0x12, 0x90, 0x22, 0x9E, 0x22, 0xA8, 0x42, 0xC4, 0xFE, 0x84, 0x08, 0x88, 0x13, 0xFC, 0x22, 0x08, 0xFE, 0x48, 0x02, 0x48, 0x02, 0x68, 0x1C, 0xA0, 0xE0, 0xA2, 0x41, 0x22, 0x0E, 0x1E, 0x10, 0x00, 0x11, 0x08, 0x10, 0x90, 0x54, 0xA0, 0x58, 0x04, 0x57, 0xFE, 0x50, 0x00, 0x90, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x00, 0x28, 0x00, 0x24, 0x00, 0x40, 0x04, 0x8F, 0xFE, 0x00, 0x00, 0x01, 0x20, 0x41, 0x20, 0x35, 0x24, 0x15, 0x3E, 0x85, 0x50, 0x65, 0x88, 0x25, 0x08, 0x01, 0x00, 0x10, 0x08, 0x27, 0xFC, 0xE5, 0x28, 0x25, 0x28, 0x25, 0x28, 0x25, 0x28, 0x3F, 0xFE, 0x20, 0x00, 0x00, 0x80, 0x08, 0x48, 0xFF, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0xFE, 0x08, 0x13, 0xF8, 0x12, 0x84, 0x12, 0x48, 0x12, 0x30, 0x1E, 0x10, 0xF2, 0x8E, 0x43, 0x04, 0x02, 0x00, 0x22, 0x00, 0x21, 0x00, 0x20, 0x3E, 0x27, 0xA2, 0xFC, 0xA4, 0x24, 0xA4, 0x77, 0xA8, 0x6C, 0xA4, 0xA4, 0xA4, 0x27, 0xA2, 0x24, 0x22, 0x25, 0x22, 0x25, 0xB4, 0x26, 0xA8, 0x24, 0x20, 0x20, 0x20, 0x00, 0x80, 0x44, 0x48, 0x2B, 0xFC, 0x12, 0x08, 0x2A, 0x08, 0x4B, 0xF8, 0x8A, 0x08, 0x0A, 0x08, 0x1B, 0xF8, 0x2A, 0x84, 0x4A, 0x48, 0x8A, 0x30, 0x0A, 0x10, 0x0A, 0x8E, 0x53, 0x04, 0x22, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x24, 0x00, 0x22, 0x00, 0x2F, 0xBE, 0x28, 0xA2, 0x2F, 0xA4, 0x28, 0xA8, 0x2F, 0xA4, 0x28, 0x22, 0x29, 0x22, 0x2B, 0xA2, 0x4C, 0xB4, 0x48, 0x28, 0x80, 0x20, 0x00, 0x20, 0x08, 0x00, 0x05, 0x00, 0x3F, 0xFC, 0x21, 0x44, 0x21, 0x48, 0x3F, 0x50, 0x21, 0x48, 0x21, 0x44, 0x3F, 0x42, 0x21, 0x42, 0x20, 0x62, 0x24, 0x54, 0x26, 0x48, 0x79, 0x40, 0x20, 0x40, 0x00, 0x40, 0x08, 0x04, 0x05, 0x7E, 0x3F, 0xC4, 0x21, 0x44, 0x21, 0x44, 0x3F, 0x7C, 0x21, 0x44, 0x21, 0x44, 0x3F, 0x44, 0x21, 0x7C, 0x20, 0x44, 0x24, 0x44, 0x26, 0x44, 0x79, 0x84, 0x21, 0x14, 0x02, 0x08, 0x00, 0x80, 0x40, 0x48, 0x33, 0xFC, 0x12, 0x08, 0x82, 0x08, 0x63, 0xF8, 0x26, 0x08, 0x0A, 0x08, 0x13, 0xF8, 0x22, 0x84, 0xE2, 0x48, 0x22, 0x30, 0x22, 0x10, 0x22, 0x8E, 0x23, 0x04, 0x22, 0x00, 0x11, 0x10, 0x11, 0x10, 0x17, 0xFC, 0x11, 0x10, 0xF8, 0x00, 0x17, 0xFE, 0x14, 0x82, 0x18, 0x84, 0x33, 0xF8, 0xD0, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x11, 0x08, 0x51, 0x28, 0x2E, 0x10, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x04, 0x40, 0x7F, 0xFE, 0x42, 0x02, 0x82, 0x14, 0x1F, 0xF8, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x08, 0x10, 0x08, 0x10, 0x10, 0xA0, 0x20, 0x40, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x91, 0x04, 0x11, 0x20, 0x1F, 0xF0, 0x11, 0x00, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x88, 0x3F, 0xD8, 0x02, 0x20, 0x02, 0x44, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x00, 0x04, 0x10, 0x0C, 0x30, 0x14, 0xC0, 0x27, 0x00, 0x44, 0x04, 0x84, 0x04, 0x03, 0xFC, 0x08, 0x80, 0x08, 0x80, 0x08, 0x84, 0x17, 0xEC, 0x10, 0x90, 0x30, 0xA0, 0x50, 0xC4, 0x9F, 0xFE, 0x11, 0x00, 0x13, 0x08, 0x15, 0x30, 0x19, 0xC0, 0x11, 0x04, 0x11, 0x04, 0x10, 0xFC, 0x10, 0x00, 0x20, 0x80, 0x20, 0x80, 0x20, 0x84, 0x27, 0xEC, 0xF8, 0x90, 0x48, 0xA0, 0x48, 0xC4, 0x4F, 0xFE, 0x49, 0x00, 0x8B, 0x08, 0x55, 0x30, 0x21, 0xC0, 0x51, 0x04, 0x49, 0x04, 0x80, 0xFC, 0x00, 0x00, 0x01, 0x20, 0xFF, 0xA0, 0x14, 0x3C, 0x14, 0x44, 0x7F, 0xC4, 0x55, 0x28, 0x55, 0x10, 0x55, 0x28, 0x55, 0xC6, 0x55, 0x04, 0x63, 0x7E, 0x41, 0x44, 0x7F, 0x44, 0x41, 0x44, 0x7F, 0x7C, 0x41, 0x44, 0x10, 0x80, 0x10, 0x80, 0x10, 0xFC, 0x15, 0x04, 0x59, 0x88, 0x52, 0x50, 0x50, 0x20, 0x90, 0x50, 0x11, 0x8E, 0x16, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x29, 0x04, 0x25, 0x04, 0x41, 0xFC, 0x81, 0x04, 0x41, 0x10, 0x31, 0x10, 0x17, 0xFC, 0x81, 0x10, 0x60, 0x00, 0x2F, 0xFE, 0x08, 0x02, 0x10, 0x84, 0x10, 0x88, 0x27, 0xFC, 0xE0, 0x88, 0x21, 0x08, 0x21, 0x08, 0x22, 0x08, 0x24, 0x50, 0x28, 0x20, 0x22, 0x20, 0x22, 0x20, 0xFF, 0xA0, 0x22, 0x20, 0x22, 0x24, 0x3E, 0xFE, 0x08, 0x24, 0x7F, 0x24, 0x49, 0x24, 0x49, 0x24, 0x7F, 0x44, 0x08, 0x44, 0xFF, 0xC4, 0x08, 0x84, 0x09, 0x14, 0x0A, 0x08, 0x00, 0x20, 0x00, 0xF0, 0x1F, 0x00, 0x10, 0x00, 0x11, 0x00, 0x11, 0x00, 0x21, 0x04, 0x7F, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x09, 0x20, 0x09, 0x10, 0x11, 0x08, 0x21, 0x0C, 0x45, 0x04, 0x02, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x9D, 0x74, 0x01, 0x00, 0x1D, 0x70, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x23, 0xFC, 0x38, 0x40, 0x47, 0xFE, 0x84, 0x42, 0x7B, 0x58, 0x20, 0x40, 0x23, 0x58, 0xF8, 0x40, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x2F, 0xFC, 0x34, 0x44, 0x24, 0x44, 0x07, 0xFC, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x9D, 0x74, 0x01, 0x00, 0x1D, 0x70, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x3F, 0xF8, 0x04, 0x00, 0x08, 0x10, 0x1F, 0xF8, 0x28, 0x10, 0x48, 0x10, 0x8F, 0xF0, 0x04, 0x04, 0xFE, 0xFE, 0x10, 0x20, 0x20, 0x44, 0x7E, 0xFE, 0xA3, 0x44, 0x22, 0x44, 0x3E, 0x7C, 0x20, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x22, 0x08, 0x04, 0x20, 0x3F, 0xC0, 0x02, 0x10, 0x04, 0x08, 0x3F, 0xF8, 0x09, 0x20, 0x11, 0x18, 0x65, 0x08, 0x02, 0x00, 0x13, 0xF8, 0x12, 0x48, 0x12, 0x48, 0x23, 0xF8, 0x22, 0x48, 0x62, 0x48, 0xA3, 0xF8, 0x20, 0x00, 0x2F, 0xBE, 0x2A, 0xAA, 0x2A, 0xAA, 0x2F, 0xBE, 0x2A, 0xAA, 0x2A, 0xAA, 0x2F, 0xBE, 0x28, 0xA2, 0x01, 0x00, 0x02, 0x00, 0x04, 0x20, 0x08, 0x10, 0x3F, 0xF8, 0x08, 0x10, 0x10, 0x20, 0x24, 0x48, 0x7E, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x20, 0x08, 0x23, 0xFC, 0x20, 0x40, 0x27, 0xFE, 0xFC, 0x42, 0x2B, 0x5C, 0x20, 0x40, 0x2B, 0x58, 0x30, 0x00, 0xE7, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0xA4, 0x44, 0x47, 0xFC, 0x02, 0x40, 0x3F, 0x40, 0x22, 0x40, 0x22, 0x40, 0x22, 0x44, 0x3F, 0xFE, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x3E, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x84, 0x4B, 0x28, 0x84, 0x10, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x05, 0x40, 0x09, 0x30, 0x11, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x1C, 0x60, 0x08, 0x00, 0x08, 0x47, 0xFC, 0x34, 0x08, 0x14, 0x08, 0x04, 0x08, 0x87, 0xF8, 0x64, 0x08, 0x24, 0x08, 0x0C, 0x08, 0x17, 0xF8, 0xE4, 0x08, 0x24, 0x08, 0x24, 0x08, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x10, 0x40, 0x10, 0x50, 0x13, 0xF8, 0x10, 0x40, 0xFC, 0x44, 0x17, 0xFE, 0x39, 0x10, 0x36, 0x8C, 0x54, 0xF4, 0x51, 0x10, 0x91, 0x10, 0x12, 0xA0, 0x14, 0x40, 0x10, 0xB0, 0x11, 0x0E, 0x16, 0x04, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x94, 0x12, 0x94, 0xFE, 0x94, 0x13, 0xFC, 0x30, 0x40, 0x38, 0x24, 0x57, 0xFE, 0x54, 0x80, 0x90, 0xF8, 0x10, 0x88, 0x11, 0x08, 0x11, 0x08, 0x12, 0x28, 0x14, 0x10, 0x00, 0x80, 0x40, 0x80, 0x31, 0x40, 0x12, 0x20, 0x04, 0x10, 0x09, 0x08, 0x10, 0x8E, 0x10, 0x84, 0x27, 0xF0, 0xE0, 0x10, 0x20, 0x20, 0x20, 0x40, 0x22, 0x80, 0x21, 0x00, 0x20, 0xC0, 0x00, 0x40, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x08, 0x2F, 0xFC, 0x28, 0x88, 0x28, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x28, 0x88, 0x2F, 0xF8, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x80, 0x20, 0x84, 0x5F, 0xFE, 0x80, 0x00, 0x03, 0x08, 0x3C, 0x08, 0x04, 0x48, 0x7F, 0xC8, 0x04, 0x48, 0x0E, 0x48, 0x15, 0x48, 0x64, 0x08, 0x05, 0x18, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x19, 0x3C, 0x61, 0x08, 0x01, 0x00, 0x03, 0x08, 0x3C, 0x08, 0x04, 0x48, 0x7F, 0xC8, 0x04, 0x48, 0x0E, 0x48, 0x15, 0x48, 0x65, 0x18, 0x11, 0x00, 0x1F, 0xF8, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x06, 0x40, 0x78, 0x44, 0x08, 0x7E, 0xFE, 0xA4, 0x09, 0x24, 0x1C, 0x44, 0x2A, 0x94, 0x49, 0x08, 0x02, 0x80, 0x0C, 0x60, 0x31, 0x1E, 0xC9, 0x24, 0x05, 0x40, 0x09, 0x30, 0x11, 0x10, 0x03, 0x00, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x14, 0x50, 0x13, 0x90, 0x14, 0x50, 0x1F, 0xF0, 0x01, 0x08, 0x3F, 0xFC, 0x22, 0x48, 0x27, 0xE8, 0x20, 0x28, 0x20, 0x10, 0x04, 0x00, 0x44, 0x08, 0x2B, 0xFC, 0x12, 0x48, 0x2A, 0x48, 0x4B, 0xF8, 0x8A, 0x48, 0x0A, 0x48, 0x1B, 0xF8, 0x28, 0x40, 0x48, 0x50, 0x8B, 0xF8, 0x08, 0x40, 0x08, 0x44, 0x57, 0xFE, 0x20, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x12, 0x90, 0x11, 0x10, 0x12, 0x90, 0x14, 0x50, 0x1F, 0xF0, 0x01, 0x04, 0x7F, 0xFE, 0x42, 0x04, 0x44, 0x44, 0x4F, 0xE4, 0x40, 0x14, 0x40, 0x08, 0x00, 0x80, 0x40, 0x48, 0x2F, 0xFC, 0x10, 0x00, 0x85, 0x28, 0x64, 0xC8, 0x25, 0x28, 0x07, 0xF8, 0x10, 0x84, 0x2F, 0xFE, 0xE8, 0x84, 0x29, 0x24, 0x2B, 0xF4, 0x28, 0x04, 0x28, 0x14, 0x28, 0x08, 0x00, 0x08, 0x13, 0xFC, 0xFA, 0x48, 0x22, 0x48, 0x23, 0xF8, 0x22, 0x48, 0xFA, 0x48, 0x23, 0xF8, 0x20, 0x40, 0x20, 0x50, 0x23, 0xF8, 0x3C, 0x40, 0xE0, 0x40, 0x40, 0x44, 0x0F, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x05, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x0F, 0xE0, 0x00, 0x40, 0x01, 0x88, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x20, 0x00, 0x20, 0x04, 0x3D, 0xFE, 0x49, 0x24, 0x95, 0x24, 0x7F, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x7D, 0xFC, 0x54, 0x20, 0x54, 0x28, 0x7D, 0xFC, 0x00, 0x20, 0x1C, 0x24, 0xE3, 0xFE, 0x40, 0x00, 0x20, 0x40, 0x18, 0x40, 0x08, 0x40, 0x00, 0x40, 0xFE, 0x40, 0x04, 0x40, 0x08, 0x40, 0x1C, 0x40, 0x2A, 0x40, 0x4A, 0x40, 0x88, 0x40, 0x08, 0x40, 0x08, 0x42, 0x08, 0x42, 0x08, 0x3E, 0x08, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x06, 0x08, 0x78, 0x48, 0x08, 0x48, 0x08, 0x48, 0xFF, 0x48, 0x08, 0x48, 0x1C, 0x48, 0x1A, 0x48, 0x2A, 0x48, 0x48, 0x08, 0x88, 0x28, 0x08, 0x10, 0x08, 0x20, 0xFF, 0xFE, 0x0A, 0x20, 0x02, 0x00, 0x1F, 0xF0, 0x04, 0x10, 0x04, 0x90, 0x08, 0x60, 0x10, 0x20, 0x10, 0x24, 0x7E, 0xFE, 0x12, 0x24, 0x12, 0x24, 0x22, 0x44, 0x4A, 0x94, 0x85, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x29, 0x08, 0x05, 0x00, 0x02, 0x00, 0x05, 0x80, 0x18, 0x70, 0x60, 0x0E, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x48, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x03, 0x40, 0x05, 0x30, 0x19, 0x0E, 0x61, 0x04, 0x01, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x3E, 0xFC, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x32, 0xC8, 0x2A, 0xA8, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x2A, 0xA8, 0x24, 0x90, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x00, 0x20, 0x04, 0x3F, 0xFE, 0x22, 0x00, 0x22, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x44, 0x08, 0x44, 0x88, 0x88, 0x50, 0x10, 0x20, 0x01, 0x20, 0x7F, 0xA0, 0x40, 0x20, 0x41, 0x20, 0x7F, 0xA4, 0x48, 0x7E, 0x49, 0x24, 0x4F, 0xA4, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x44, 0x55, 0x44, 0x52, 0x84, 0xA0, 0xA8, 0x01, 0x10, 0x00, 0x08, 0x08, 0x1C, 0xFD, 0xE0, 0x11, 0x00, 0x11, 0x20, 0x21, 0x20, 0x25, 0x24, 0x7F, 0xFE, 0xA4, 0x20, 0x24, 0x20, 0x24, 0xA8, 0x25, 0x24, 0x3D, 0x22, 0x22, 0x22, 0x04, 0xA0, 0x00, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x04, 0x3F, 0xFE, 0x21, 0x04, 0x21, 0x04, 0x21, 0x04, 0x21, 0x04, 0x22, 0x04, 0x42, 0x04, 0x44, 0x44, 0x88, 0x28, 0x10, 0x10, 0x01, 0x04, 0x07, 0x84, 0x7C, 0x04, 0x04, 0x24, 0x04, 0x24, 0x05, 0x24, 0xFF, 0xA4, 0x0C, 0x24, 0x0E, 0x24, 0x15, 0xA4, 0x14, 0xA4, 0x24, 0x24, 0x44, 0x04, 0x04, 0x04, 0x04, 0x14, 0x04, 0x08, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0xA4, 0x27, 0xFE, 0x24, 0xA4, 0x64, 0xA4, 0xA4, 0xA4, 0x27, 0xFC, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0xE0, 0x21, 0x50, 0x22, 0x4E, 0x2C, 0x44, 0x20, 0x40, 0x10, 0x04, 0x10, 0x44, 0x1F, 0xE4, 0x22, 0x04, 0x22, 0x14, 0x67, 0xD4, 0xA4, 0x54, 0x28, 0x54, 0x34, 0x94, 0x22, 0x94, 0x21, 0x14, 0x22, 0x04, 0x24, 0x04, 0x28, 0x04, 0x20, 0x14, 0x20, 0x08, 0x10, 0x84, 0x11, 0xC4, 0x1F, 0x04, 0x21, 0x04, 0x21, 0x14, 0x7F, 0xF4, 0xA1, 0x14, 0x23, 0x14, 0x23, 0x94, 0x25, 0x54, 0x25, 0x54, 0x29, 0x04, 0x31, 0x04, 0x21, 0x04, 0x21, 0x14, 0x21, 0x08, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x44, 0x97, 0x84, 0x51, 0x14, 0x51, 0x54, 0x1F, 0xF4, 0x31, 0x14, 0x53, 0x94, 0xD3, 0x54, 0x15, 0x54, 0x29, 0x04, 0x21, 0x04, 0x41, 0x14, 0x01, 0x08, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x20, 0x08, 0x20, 0x04, 0x40, 0x04, 0x40, 0x04, 0x80, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x80, 0x10, 0x40, 0x10, 0x40, 0x54, 0x08, 0x3B, 0xFC, 0x10, 0x00, 0xFD, 0x08, 0x11, 0x08, 0x38, 0x90, 0x34, 0x90, 0x54, 0x90, 0x90, 0xA0, 0x10, 0xA0, 0x10, 0x24, 0x17, 0xFE, 0x10, 0x00, 0x00, 0x04, 0x47, 0xFE, 0x34, 0x40, 0x14, 0x40, 0x04, 0x44, 0x84, 0x44, 0x67, 0xFE, 0x24, 0x44, 0x0C, 0x44, 0x14, 0x44, 0xE4, 0x44, 0x24, 0x44, 0x24, 0x84, 0x28, 0x84, 0x29, 0x14, 0x32, 0x08, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x10, 0x01, 0x14, 0xFF, 0xFE, 0x01, 0x10, 0x01, 0x10, 0x3F, 0xF0, 0x21, 0x08, 0x11, 0x98, 0x0D, 0x60, 0x09, 0x20, 0x31, 0x18, 0xC1, 0x0E, 0x05, 0x04, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x08, 0x7F, 0xFC, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x08, 0x04, 0x08, 0x08, 0x88, 0x08, 0x50, 0x70, 0x20, 0x00, 0x40, 0x10, 0x24, 0xFF, 0xFE, 0x20, 0x90, 0x22, 0x64, 0x22, 0x94, 0xFB, 0x0C, 0x23, 0xFC, 0x20, 0x40, 0x27, 0xFE, 0x24, 0x42, 0x3C, 0x92, 0xE5, 0xFA, 0x44, 0x02, 0x04, 0x0A, 0x04, 0x04, 0x00, 0x08, 0x0B, 0xFC, 0x7E, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x48, 0x40, 0x48, 0x50, 0x4B, 0xF8, 0x78, 0x40, 0x48, 0x40, 0x00, 0x44, 0x0F, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x21, 0x20, 0x21, 0x24, 0x6F, 0xFE, 0xA9, 0x24, 0x29, 0x24, 0x29, 0x24, 0x29, 0x24, 0x2A, 0xD4, 0x2C, 0x8C, 0x28, 0x04, 0x28, 0x04, 0x28, 0x14, 0x28, 0x08, 0x01, 0x04, 0xFE, 0xCC, 0x24, 0x50, 0x24, 0x00, 0x3D, 0xFC, 0x24, 0x20, 0x24, 0x20, 0x24, 0x24, 0x3F, 0xFE, 0x24, 0x20, 0x24, 0x20, 0x24, 0x50, 0x3E, 0x50, 0xE4, 0x88, 0x05, 0x0E, 0x06, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x24, 0x40, 0x10, 0x90, 0x17, 0xF8, 0x01, 0x00, 0x71, 0x50, 0x13, 0xF8, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x28, 0x46, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x80, 0x40, 0x88, 0x2F, 0xFC, 0x21, 0x00, 0x01, 0x40, 0x02, 0x50, 0xE7, 0xF8, 0x20, 0x40, 0x20, 0x40, 0x20, 0x48, 0x2F, 0xFC, 0x20, 0x40, 0x20, 0x40, 0x50, 0x46, 0x8F, 0xFC, 0x00, 0x00, 0x20, 0x44, 0x27, 0xFE, 0x25, 0x08, 0x3F, 0xFE, 0x44, 0x90, 0x85, 0xFC, 0x7C, 0x94, 0x27, 0xFE, 0x24, 0x94, 0xFD, 0xFC, 0x24, 0x94, 0x25, 0x98, 0x2D, 0x98, 0x36, 0x96, 0x28, 0x90, 0x00, 0x90, 0x01, 0x08, 0x3F, 0xFC, 0x24, 0x20, 0x22, 0x48, 0x3F, 0xFC, 0x22, 0x40, 0x2F, 0xF8, 0x22, 0x48, 0x3F, 0xFE, 0x22, 0x48, 0x2F, 0xF8, 0x26, 0x68, 0x4A, 0x50, 0x52, 0x4E, 0xA2, 0x44, 0x02, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x18, 0xA0, 0x55, 0x10, 0x52, 0x88, 0x54, 0x4E, 0x98, 0x44, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x08, 0x10, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x00, 0x20, 0x88, 0x28, 0x65, 0xFC, 0x24, 0x40, 0x00, 0xA0, 0x81, 0x28, 0x6D, 0xFC, 0x24, 0x20, 0x0C, 0x20, 0x14, 0x24, 0xE7, 0xFE, 0x24, 0x20, 0x24, 0x20, 0x2A, 0x26, 0x31, 0xFC, 0x20, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x89, 0x24, 0x11, 0x10, 0x21, 0x08, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x01, 0x00, 0x08, 0x20, 0x08, 0x20, 0x14, 0x20, 0x13, 0x24, 0x21, 0x7E, 0x40, 0x84, 0xBE, 0x44, 0x00, 0x44, 0x11, 0x48, 0x49, 0x28, 0x2A, 0x28, 0x2A, 0x10, 0x2A, 0x28, 0x07, 0x28, 0x78, 0x46, 0x21, 0x84, 0x08, 0x40, 0x7C, 0x40, 0x48, 0xA0, 0x48, 0xA0, 0x49, 0x10, 0x7A, 0x0E, 0x4D, 0xF4, 0x48, 0x00, 0x4A, 0x88, 0x7A, 0x48, 0x49, 0x48, 0x49, 0x50, 0x49, 0x50, 0x48, 0x24, 0x4F, 0xFE, 0x98, 0x00, 0x20, 0x10, 0x24, 0x14, 0x3A, 0xFE, 0x42, 0x20, 0x40, 0x50, 0xF8, 0x94, 0x26, 0xFE, 0x22, 0x10, 0xFA, 0x10, 0x22, 0x14, 0x23, 0xFE, 0x2A, 0x10, 0x32, 0x10, 0x25, 0x16, 0x08, 0xFC, 0x00, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x0C, 0x60, 0x0C, 0x58, 0x14, 0x4C, 0x24, 0x44, 0x44, 0x40, 0x02, 0x00, 0x29, 0x10, 0x29, 0x28, 0x28, 0x24, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x00, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x14, 0x80, 0x58, 0xA0, 0x57, 0xF0, 0x51, 0x20, 0x91, 0x20, 0x12, 0x24, 0x13, 0xFE, 0x10, 0x20, 0x28, 0xA8, 0x25, 0x26, 0x42, 0x22, 0x84, 0xA0, 0x00, 0x40, 0x10, 0x40, 0x10, 0x48, 0x27, 0xFC, 0x40, 0x80, 0x48, 0xA0, 0xFB, 0xF0, 0x11, 0x20, 0x21, 0x20, 0x42, 0x24, 0xFB, 0xFE, 0x00, 0x20, 0x00, 0xA8, 0x39, 0x26, 0xC2, 0x22, 0x44, 0xA0, 0x00, 0x40, 0x10, 0x40, 0x10, 0x28, 0x57, 0xFC, 0x3A, 0x08, 0x12, 0x08, 0xFF, 0xF8, 0x12, 0x08, 0x32, 0x08, 0x3B, 0xF8, 0x56, 0x84, 0x52, 0x48, 0x92, 0x30, 0x12, 0x10, 0x12, 0x8E, 0x13, 0x04, 0x12, 0x00, 0x00, 0x80, 0x40, 0x44, 0x2F, 0xFE, 0x10, 0x08, 0x03, 0xFC, 0x02, 0x08, 0x0A, 0x08, 0x12, 0x08, 0x23, 0xF8, 0xE2, 0x48, 0x20, 0x40, 0x21, 0x50, 0x22, 0x4C, 0x24, 0x44, 0x29, 0x40, 0x00, 0x80, 0x10, 0x08, 0x0B, 0xFC, 0x40, 0x88, 0x22, 0x8C, 0x0A, 0x8A, 0x54, 0x88, 0x21, 0x08, 0x22, 0x28, 0x25, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x10, 0x08, 0x0B, 0xFC, 0x40, 0x88, 0x22, 0x8C, 0x0A, 0x8A, 0x55, 0x28, 0x22, 0x10, 0x21, 0x00, 0x09, 0x20, 0x05, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x02, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x20, 0x10, 0x3F, 0xF0, 0x20, 0x10, 0x20, 0x10, 0x3F, 0xF8, 0x24, 0x10, 0x24, 0x20, 0x22, 0x40, 0x21, 0x80, 0x28, 0x60, 0x30, 0x1C, 0x20, 0x08, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x44, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x4A, 0xA4, 0x51, 0x1C, 0x62, 0x0C, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x10, 0x04, 0x13, 0xFE, 0xFC, 0x90, 0x20, 0x94, 0x33, 0xFE, 0x52, 0x94, 0x52, 0x94, 0xFE, 0x94, 0x12, 0x94, 0x12, 0x94, 0x1F, 0x54, 0xF2, 0x2C, 0x52, 0x04, 0x12, 0x04, 0x12, 0x14, 0x12, 0x08, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x14, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFC, 0x00, 0x80, 0x00, 0x40, 0x78, 0x44, 0x4F, 0xFE, 0x48, 0x08, 0x4B, 0xFC, 0x4A, 0x08, 0x7A, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x48, 0x40, 0x49, 0x50, 0x7A, 0x4C, 0x44, 0x44, 0x09, 0x40, 0x00, 0x80, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x22, 0x8F, 0xF4, 0x08, 0x20, 0x08, 0x20, 0x08, 0x22, 0x10, 0x22, 0x60, 0x1E, 0x00, 0x80, 0x40, 0x44, 0x2F, 0xFE, 0x20, 0x08, 0x03, 0xFC, 0x02, 0x08, 0xE2, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x20, 0x40, 0x24, 0x40, 0x29, 0x50, 0x32, 0x4C, 0x24, 0x46, 0x09, 0x42, 0x00, 0x80, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0xA0, 0xFD, 0x14, 0x12, 0x08, 0x17, 0xFE, 0x1A, 0x08, 0x33, 0xF8, 0xD2, 0x08, 0x13, 0xF8, 0x10, 0x40, 0x11, 0x50, 0x12, 0x4C, 0x55, 0x44, 0x20, 0x80, 0x08, 0x80, 0xFD, 0x04, 0x4A, 0x3E, 0x4A, 0xA4, 0x4A, 0xA4, 0x7A, 0xA4, 0x4A, 0xA4, 0x4A, 0xA4, 0x4A, 0xA4, 0x7A, 0xA4, 0x4B, 0xA4, 0x4A, 0xB4, 0xFC, 0xA8, 0x08, 0xA0, 0x09, 0x20, 0x0A, 0x20, 0x10, 0x80, 0x10, 0x88, 0x1F, 0xFC, 0x21, 0x40, 0x2A, 0x28, 0x64, 0x10, 0xAF, 0xFE, 0x34, 0x14, 0x27, 0xF0, 0x24, 0x10, 0x27, 0xF0, 0x20, 0x80, 0x22, 0xA0, 0x24, 0x98, 0x2A, 0x88, 0x21, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x00, 0x57, 0xF8, 0x50, 0x10, 0x10, 0x20, 0x30, 0x40, 0x50, 0x40, 0xD0, 0x40, 0x10, 0x40, 0x20, 0x40, 0x22, 0x40, 0x41, 0x40, 0x00, 0x80, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x40, 0x56, 0xA8, 0x59, 0x10, 0x53, 0xF8, 0x96, 0x0E, 0x1B, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x28, 0x40, 0x25, 0x50, 0x42, 0x4C, 0x84, 0x44, 0x00, 0xC0, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0xBC, 0xFC, 0x24, 0x48, 0x14, 0x28, 0x25, 0x48, 0x06, 0x88, 0x08, 0x40, 0x33, 0x30, 0xCC, 0x4E, 0x01, 0x84, 0x0E, 0x20, 0x00, 0xC0, 0x03, 0x00, 0x1C, 0x00, 0x40, 0x00, 0x37, 0xFC, 0x10, 0x08, 0x00, 0x10, 0x00, 0x60, 0x70, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x40, 0x44, 0x2F, 0xFE, 0x10, 0x40, 0x82, 0xA8, 0x61, 0x10, 0x23, 0xF8, 0x0E, 0x0E, 0x13, 0xF8, 0x22, 0x08, 0xE3, 0xF8, 0x20, 0x40, 0x21, 0x50, 0x22, 0x4C, 0x25, 0x44, 0x20, 0x80, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x48, 0x13, 0xF8, 0xFE, 0x48, 0x13, 0xF8, 0x14, 0x80, 0x19, 0xF8, 0x33, 0x10, 0xD0, 0xE0, 0x13, 0x18, 0x1F, 0xFE, 0x12, 0x08, 0x12, 0x08, 0x53, 0xF8, 0x22, 0x08, 0x20, 0x40, 0x20, 0x44, 0x3F, 0xFE, 0x40, 0x40, 0x82, 0xA8, 0x79, 0x10, 0x23, 0xF8, 0x26, 0x0E, 0xFB, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x20, 0x40, 0x29, 0x50, 0x32, 0x4C, 0x25, 0x44, 0x00, 0x80, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x00, 0x3F, 0x78, 0x29, 0x48, 0x25, 0x28, 0x29, 0xC8, 0x23, 0x60, 0x2C, 0x5E, 0x31, 0x84, 0x26, 0x40, 0x21, 0x90, 0x46, 0x20, 0x40, 0xC0, 0x83, 0x00, 0x0C, 0x00, 0x08, 0x08, 0x49, 0x08, 0x2A, 0x48, 0x2C, 0x28, 0x08, 0x08, 0xFF, 0x48, 0x08, 0x28, 0x18, 0x28, 0x1C, 0x0E, 0x2B, 0xF8, 0x2A, 0x08, 0x48, 0x08, 0x88, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x01, 0x04, 0x7F, 0x84, 0x10, 0x24, 0x10, 0x24, 0x1F, 0x24, 0x21, 0x24, 0x21, 0x24, 0x52, 0x24, 0x8A, 0x24, 0x04, 0x24, 0x04, 0x24, 0x08, 0x24, 0x10, 0x04, 0x20, 0x04, 0x40, 0x14, 0x00, 0x08, 0x01, 0x04, 0xFF, 0x84, 0x10, 0x24, 0x1F, 0x24, 0x31, 0x24, 0x4A, 0x24, 0x04, 0x24, 0x39, 0x0C, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x08, 0x04, 0x90, 0x0C, 0x60, 0x15, 0x30, 0x66, 0x0E, 0x04, 0x04, 0x01, 0x04, 0x7F, 0x84, 0x10, 0x24, 0x10, 0x24, 0x1F, 0x24, 0x21, 0x24, 0x21, 0x24, 0x52, 0x24, 0x0C, 0x24, 0x08, 0x04, 0x30, 0x0C, 0x40, 0x00, 0x28, 0x90, 0x24, 0x4C, 0x44, 0x46, 0x80, 0x02, 0x01, 0x00, 0x09, 0x20, 0x09, 0x18, 0x11, 0x0C, 0x21, 0x34, 0x41, 0xC0, 0x06, 0x00, 0x19, 0x00, 0xE1, 0x08, 0x1F, 0xFC, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x08, 0x08, 0x50, 0x30, 0x20, 0x00, 0x90, 0x44, 0x90, 0x2C, 0x90, 0x13, 0xFC, 0x28, 0x90, 0x48, 0x94, 0x8F, 0xFE, 0x08, 0x08, 0x19, 0xFC, 0x29, 0x08, 0x49, 0x08, 0x89, 0xF8, 0x09, 0x08, 0x09, 0x08, 0x51, 0xF8, 0x21, 0x08, 0x02, 0x10, 0x12, 0x10, 0xFA, 0x10, 0x22, 0x14, 0x2F, 0xFE, 0x22, 0x10, 0xFA, 0x10, 0x27, 0x38, 0x26, 0xB8, 0x2A, 0x54, 0x3A, 0x54, 0xE2, 0x92, 0x42, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFE, 0xFE, 0x08, 0x20, 0x18, 0x60, 0x1C, 0x70, 0x2A, 0xA8, 0x28, 0xAE, 0x49, 0x24, 0x8A, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0xFD, 0x24, 0x10, 0xA8, 0x13, 0xFE, 0x20, 0x70, 0x20, 0xA8, 0x7D, 0x26, 0xA6, 0xA4, 0x24, 0xA4, 0x25, 0xDE, 0x26, 0x54, 0x25, 0x54, 0x24, 0xBE, 0x3D, 0x04, 0x22, 0x04, 0x00, 0x04, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x9D, 0x74, 0x01, 0x00, 0x1D, 0x70, 0x08, 0x20, 0x08, 0x28, 0x7E, 0xFC, 0x08, 0x20, 0x1C, 0x70, 0x2A, 0xAE, 0x49, 0x24, 0x08, 0x20, 0x08, 0x20, 0x10, 0x80, 0x10, 0x80, 0x51, 0x04, 0x51, 0xFE, 0x52, 0x00, 0x54, 0x80, 0x58, 0x60, 0x50, 0x24, 0x57, 0xFE, 0x54, 0x44, 0x54, 0x44, 0x54, 0x44, 0x54, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x14, 0x04, 0x08, 0x00, 0x08, 0x7C, 0x14, 0x44, 0x12, 0x44, 0x21, 0xC8, 0x50, 0xC8, 0x88, 0x50, 0x00, 0x48, 0x7F, 0x44, 0x01, 0x42, 0x02, 0x42, 0x14, 0x62, 0x08, 0x54, 0x04, 0x48, 0x04, 0x40, 0x00, 0x40, 0x20, 0x20, 0x21, 0x24, 0x3C, 0xA8, 0x4B, 0xFE, 0x90, 0x70, 0x7C, 0xA8, 0x55, 0x26, 0x56, 0xA4, 0x7C, 0x84, 0x55, 0xDE, 0x56, 0x54, 0x7D, 0x54, 0x00, 0xBE, 0x1D, 0x04, 0xE2, 0x04, 0x40, 0x04, 0x02, 0x10, 0x42, 0x10, 0x22, 0x10, 0x22, 0x14, 0x1F, 0xFE, 0x82, 0x10, 0x42, 0x10, 0x47, 0x38, 0x16, 0xB8, 0x2A, 0x54, 0xEA, 0x54, 0x32, 0x92, 0x22, 0x10, 0x22, 0x10, 0x22, 0x10, 0x22, 0x10, 0x00, 0x80, 0x9F, 0xFC, 0x60, 0x08, 0x2F, 0xFC, 0x0A, 0x28, 0x0B, 0xE8, 0x1A, 0x28, 0x1F, 0xF8, 0x20, 0x00, 0xE7, 0xF0, 0x20, 0x00, 0x3F, 0xFC, 0x24, 0x90, 0x28, 0x8C, 0x32, 0x84, 0x01, 0x00, 0x08, 0x18, 0x17, 0xE0, 0x30, 0x44, 0x5F, 0xFE, 0x90, 0x40, 0x17, 0xFC, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x06, 0xC0, 0x18, 0x30, 0xE0, 0x0E, 0x1F, 0xF4, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0xFD, 0x10, 0x12, 0x88, 0x14, 0x4E, 0x18, 0x44, 0x30, 0x00, 0xD3, 0xF8, 0x10, 0x08, 0x10, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x50, 0x20, 0x20, 0x20, 0x00, 0x40, 0x10, 0x40, 0xF8, 0xA0, 0x20, 0xA0, 0x21, 0x10, 0x22, 0x88, 0xFC, 0x4E, 0x28, 0x44, 0x20, 0x00, 0x23, 0xF8, 0x20, 0x08, 0x38, 0x10, 0xC0, 0xA0, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x08, 0x20, 0x0A, 0x18, 0x13, 0xE8, 0x24, 0x20, 0x0C, 0x20, 0x12, 0x40, 0x01, 0x80, 0x0E, 0x70, 0x70, 0x0E, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x9D, 0x74, 0x01, 0x00, 0x1D, 0x70, 0x02, 0x80, 0x0C, 0x60, 0x32, 0x18, 0xC1, 0x06, 0x0F, 0xE0, 0x00, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x80, 0x08, 0x20, 0x28, 0x20, 0x28, 0x50, 0x2F, 0x50, 0x28, 0x88, 0x29, 0x4E, 0xFF, 0x24, 0x00, 0x20, 0x49, 0x00, 0x49, 0xFC, 0x49, 0x04, 0x55, 0x08, 0x63, 0x50, 0x41, 0x20, 0x7F, 0x10, 0x41, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x1C, 0xA0, 0x21, 0x10, 0x22, 0x88, 0x7C, 0x4E, 0x90, 0x44, 0x10, 0x00, 0x7D, 0xF8, 0x10, 0x08, 0x10, 0x10, 0x14, 0xA0, 0x18, 0x40, 0x10, 0x20, 0x00, 0x20, 0x08, 0x40, 0x08, 0x40, 0x08, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x32, 0x88, 0x54, 0x4E, 0x98, 0x44, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x08, 0x10, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x00, 0x40, 0x44, 0x40, 0x28, 0xA0, 0xFE, 0xA0, 0x11, 0x10, 0x12, 0x8E, 0x7C, 0x44, 0x10, 0x40, 0x10, 0x00, 0x13, 0xF8, 0xFC, 0x08, 0x10, 0x10, 0x10, 0xA0, 0x20, 0x40, 0x20, 0x20, 0x40, 0x20, 0x00, 0x40, 0x40, 0x48, 0x37, 0xFC, 0x10, 0x40, 0x00, 0x44, 0x0F, 0xFE, 0x09, 0x10, 0x12, 0x8C, 0x24, 0xF4, 0xE1, 0x10, 0x23, 0x10, 0x24, 0xA0, 0x28, 0x40, 0x20, 0xA0, 0x23, 0x1E, 0x0C, 0x04, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x08, 0x3F, 0xF8, 0x00, 0x08, 0x7F, 0xF8, 0x01, 0x08, 0x01, 0x00, 0x21, 0x08, 0x19, 0x18, 0x0A, 0xA0, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x00, 0x20, 0x7C, 0x28, 0x45, 0xFC, 0x48, 0x20, 0x48, 0x24, 0x53, 0xFE, 0x48, 0x88, 0x49, 0x44, 0x46, 0x7A, 0x44, 0x88, 0x45, 0x88, 0x6A, 0x50, 0x50, 0x20, 0x40, 0x50, 0x41, 0x8E, 0x46, 0x04, 0x10, 0x20, 0x10, 0x20, 0x10, 0x50, 0x10, 0x50, 0x54, 0x88, 0x55, 0x4E, 0x56, 0x24, 0x54, 0x20, 0x54, 0x00, 0x55, 0xFC, 0x54, 0x04, 0x5C, 0x08, 0x74, 0x50, 0x44, 0x20, 0x00, 0x10, 0x00, 0x10, 0x10, 0x04, 0x13, 0xFE, 0x28, 0x20, 0x24, 0x44, 0x43, 0xFE, 0xA1, 0x04, 0x11, 0x24, 0x01, 0x24, 0xFF, 0x24, 0x03, 0x24, 0x05, 0x24, 0x29, 0x24, 0x10, 0x50, 0x08, 0x48, 0x08, 0x86, 0x03, 0x02, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x12, 0x00, 0x02, 0x08, 0x7F, 0xFC, 0x02, 0x08, 0x02, 0x08, 0x04, 0x08, 0x04, 0x08, 0x08, 0x88, 0x10, 0x50, 0x60, 0x20, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x0A, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC0, 0x04, 0x1F, 0xF0, 0x00, 0x10, 0x00, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x84, 0x47, 0x7E, 0x34, 0x24, 0x15, 0x24, 0x84, 0xA4, 0x65, 0x24, 0x26, 0x54, 0x08, 0x88, 0x17, 0xFC, 0x24, 0x44, 0xE4, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x00, 0x80, 0x08, 0x48, 0xFF, 0xFC, 0x10, 0x40, 0x10, 0x90, 0x11, 0x08, 0x7F, 0xFC, 0x10, 0x04, 0x11, 0x50, 0x11, 0x50, 0x1D, 0x50, 0xF1, 0x50, 0x41, 0x52, 0x01, 0x52, 0x02, 0x4E, 0x04, 0x40, 0x20, 0x84, 0x27, 0x7E, 0x24, 0x24, 0x25, 0x24, 0xFC, 0xA4, 0x25, 0x24, 0x66, 0x54, 0x70, 0x88, 0xAF, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x00, 0x80, 0x08, 0x48, 0xFF, 0xFC, 0x10, 0x40, 0x10, 0x90, 0x21, 0x08, 0x23, 0xFC, 0x3C, 0x04, 0x65, 0x50, 0xA5, 0x50, 0x25, 0x50, 0x25, 0x50, 0x25, 0x52, 0x3D, 0x52, 0x22, 0x4E, 0x04, 0x40, 0x20, 0x84, 0x27, 0x7E, 0x24, 0x24, 0x3D, 0x24, 0x4C, 0xA4, 0x55, 0x24, 0x86, 0x54, 0x20, 0x88, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x2C, 0x44, 0x34, 0x44, 0x27, 0xFC, 0x04, 0x04, 0x02, 0x04, 0x7C, 0xFE, 0x40, 0x44, 0x48, 0x44, 0x46, 0x44, 0x4A, 0x44, 0xF0, 0x94, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x04, 0x18, 0x04, 0x09, 0x24, 0xFF, 0xA4, 0x02, 0x24, 0x42, 0x24, 0x22, 0x24, 0x14, 0x24, 0x14, 0x24, 0x08, 0x24, 0x08, 0x24, 0x14, 0x24, 0x22, 0x04, 0x43, 0x04, 0x81, 0x14, 0x00, 0x08, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x80, 0x97, 0x7C, 0x54, 0x24, 0x55, 0x24, 0x15, 0xA4, 0x16, 0x4C, 0x30, 0x80, 0x57, 0xFC, 0xD4, 0x44, 0x14, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x44, 0x44, 0x07, 0xFC, 0x00, 0x80, 0x40, 0x48, 0x37, 0xFC, 0x10, 0x40, 0x80, 0x90, 0x61, 0x08, 0x27, 0xFC, 0x08, 0x04, 0x11, 0x50, 0x21, 0x50, 0xE1, 0x50, 0x21, 0x50, 0x21, 0x52, 0x21, 0x52, 0x22, 0x4E, 0x24, 0x40, 0x20, 0x84, 0x27, 0x3E, 0x24, 0x24, 0x24, 0xA4, 0xFC, 0xA4, 0x24, 0xA4, 0x64, 0xA4, 0x74, 0xA4, 0xAC, 0xA4, 0x25, 0xA4, 0x26, 0xA4, 0x24, 0xB4, 0x20, 0xA8, 0x21, 0x20, 0x22, 0x20, 0x24, 0x20, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x0C, 0x20, 0x08, 0x10, 0x10, 0x18, 0x10, 0x0C, 0x20, 0x0C, 0x40, 0x04, 0x00, 0x00, 0x02, 0x00, 0x02, 0x40, 0x02, 0x20, 0x02, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x02, 0x88, 0x04, 0x88, 0x04, 0x90, 0x04, 0xA0, 0x08, 0xC0, 0x08, 0x82, 0x11, 0x82, 0x16, 0x82, 0x20, 0x7E, 0x40, 0x00, 0x02, 0x40, 0x02, 0x24, 0xFF, 0xFE, 0x02, 0xA0, 0x04, 0xC4, 0x18, 0xFC, 0x23, 0x00, 0x7F, 0xFC, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x20, 0x00, 0x20, 0x00, 0x80, 0x08, 0xA0, 0x7C, 0x90, 0x48, 0x84, 0x4F, 0xFE, 0x48, 0xA0, 0x48, 0xA4, 0x48, 0xA4, 0x49, 0x28, 0x49, 0x28, 0x49, 0x30, 0x7A, 0x20, 0x42, 0x62, 0x04, 0xA2, 0x0B, 0x1E, 0x10, 0x00, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x02, 0x40, 0x02, 0x24, 0xFF, 0xFE, 0x02, 0x80, 0x02, 0x90, 0x04, 0x90, 0x04, 0xA0, 0x08, 0xC2, 0x08, 0x82, 0x11, 0x82, 0x26, 0x7E, 0x40, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x91, 0x14, 0x79, 0xF0, 0x4A, 0xA0, 0x54, 0x40, 0x61, 0xB0, 0x56, 0x0E, 0x49, 0xF4, 0x4A, 0x40, 0x6B, 0xF8, 0x54, 0x40, 0x43, 0xF8, 0x40, 0x40, 0x4F, 0xFC, 0x00, 0x80, 0x7C, 0xFC, 0x45, 0x88, 0x4A, 0x50, 0x48, 0x20, 0x50, 0xD8, 0x4B, 0x06, 0x48, 0xF8, 0x44, 0x20, 0x45, 0x28, 0x45, 0xFC, 0x6A, 0x20, 0x51, 0xFC, 0x40, 0x20, 0x47, 0xFE, 0x40, 0x00, 0x02, 0x80, 0x02, 0x44, 0xFF, 0xFE, 0x05, 0x00, 0x05, 0x10, 0x09, 0x20, 0x11, 0xC4, 0x27, 0x04, 0xC0, 0xFC, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x80, 0x10, 0xA0, 0x10, 0x90, 0x10, 0x90, 0xFC, 0x84, 0x13, 0xFE, 0x14, 0xA0, 0x18, 0xA0, 0x31, 0x24, 0xD1, 0x24, 0x11, 0x28, 0x12, 0x32, 0x12, 0x22, 0x14, 0x62, 0x54, 0x9E, 0x28, 0x00, 0x00, 0x80, 0x7C, 0xA0, 0x44, 0x90, 0x48, 0x90, 0x48, 0x84, 0x57, 0xFE, 0x48, 0xA0, 0x48, 0xA0, 0x45, 0x24, 0x45, 0x24, 0x65, 0x28, 0x5A, 0x32, 0x42, 0x22, 0x44, 0x62, 0x44, 0x9E, 0x48, 0x00, 0x10, 0x40, 0x12, 0x48, 0x11, 0x50, 0x10, 0x44, 0xFF, 0xFE, 0x11, 0x50, 0x3A, 0x4C, 0x34, 0x44, 0x50, 0x80, 0x5F, 0xFE, 0x91, 0x08, 0x12, 0x08, 0x11, 0xB0, 0x10, 0x40, 0x11, 0xB0, 0x16, 0x08, 0x11, 0x10, 0x0D, 0x30, 0x05, 0x40, 0x7F, 0xFC, 0x05, 0x40, 0x0D, 0x20, 0x11, 0x1C, 0x21, 0x08, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x06, 0x40, 0x01, 0x80, 0x06, 0x60, 0x38, 0x10, 0x10, 0x40, 0x12, 0x48, 0x11, 0x50, 0x10, 0x44, 0xFF, 0xFE, 0x11, 0x50, 0x12, 0x4C, 0x1C, 0x44, 0x30, 0x80, 0xD7, 0xFE, 0x11, 0x08, 0x12, 0x08, 0x11, 0xB0, 0x10, 0x40, 0x51, 0xB0, 0x26, 0x08, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x05, 0x40, 0x09, 0x20, 0x11, 0x14, 0xFF, 0xFE, 0x04, 0x20, 0x0C, 0x40, 0x03, 0x80, 0x04, 0x60, 0x38, 0x10, 0x40, 0x04, 0x2F, 0xFE, 0x28, 0x04, 0x08, 0x04, 0x8F, 0xFC, 0x68, 0x00, 0x2F, 0xFE, 0x08, 0x04, 0x2F, 0xFE, 0x4C, 0x44, 0xD5, 0x54, 0x54, 0x44, 0x55, 0x54, 0x64, 0x44, 0x44, 0x54, 0x44, 0x48, 0x00, 0x04, 0x7B, 0xFE, 0x48, 0x20, 0x50, 0x24, 0x52, 0xFE, 0x62, 0xA4, 0x52, 0xA4, 0x4A, 0xA4, 0x4A, 0xD4, 0x4A, 0xCC, 0x6A, 0x84, 0x52, 0x94, 0x42, 0x88, 0x42, 0x00, 0x43, 0xFE, 0x40, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x01, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x01, 0x00, 0x01, 0x04, 0x01, 0xFE, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x10, 0x04, 0x15, 0xFE, 0x1E, 0x20, 0x10, 0x44, 0x12, 0xFE, 0x7F, 0x84, 0x42, 0x94, 0x42, 0x94, 0x42, 0x94, 0x7E, 0xA4, 0x42, 0xA4, 0x40, 0xA4, 0x40, 0x50, 0x40, 0x48, 0x80, 0x86, 0x03, 0x02, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x21, 0x00, 0x20, 0x88, 0x27, 0xFC, 0x24, 0x08, 0x24, 0x08, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x24, 0x00, 0x44, 0x00, 0x44, 0x00, 0x88, 0x00, 0x10, 0x00, 0x10, 0x40, 0x10, 0x20, 0x12, 0x24, 0x15, 0xFE, 0x59, 0x04, 0x51, 0x04, 0x51, 0x04, 0x91, 0xFC, 0x11, 0x04, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x29, 0x00, 0x45, 0x00, 0x82, 0x00, 0x04, 0x00, 0x10, 0x48, 0x10, 0x7C, 0x10, 0x40, 0x13, 0xFE, 0xFE, 0x44, 0x12, 0x70, 0x17, 0xC4, 0x1A, 0x7C, 0x32, 0x00, 0xD2, 0x44, 0x13, 0xFE, 0x12, 0x44, 0x12, 0x44, 0x14, 0x84, 0x54, 0x94, 0x29, 0x08, 0x01, 0x04, 0x01, 0xFE, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x28, 0x28, 0x24, 0x68, 0x22, 0x88, 0x21, 0x08, 0x21, 0x88, 0x22, 0x48, 0x24, 0x28, 0x28, 0x18, 0x3F, 0xF8, 0x20, 0x08, 0x01, 0x10, 0x01, 0xF8, 0x01, 0x00, 0x3F, 0xFE, 0x21, 0x02, 0x21, 0xF4, 0x2F, 0x00, 0x21, 0x08, 0x20, 0xF8, 0x21, 0x00, 0x2F, 0xF8, 0x21, 0x08, 0x41, 0x08, 0x41, 0x08, 0x82, 0x28, 0x1C, 0x10, 0x04, 0x00, 0x0F, 0xE0, 0x10, 0x88, 0x3F, 0xFC, 0xE1, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x1C, 0x70, 0x2A, 0xAE, 0x49, 0x24, 0x3F, 0xFC, 0x22, 0x40, 0x3F, 0xF8, 0x22, 0x48, 0x3F, 0xF8, 0x28, 0x48, 0x2F, 0x50, 0x28, 0x62, 0x4F, 0x42, 0x88, 0x3E, 0x08, 0x08, 0xFF, 0xFC, 0x10, 0x08, 0x11, 0xF8, 0x20, 0x08, 0x23, 0xFE, 0x3C, 0x20, 0x64, 0x24, 0xA5, 0x2C, 0x24, 0xB0, 0x24, 0x20, 0x24, 0xB0, 0x25, 0x2E, 0x3E, 0x24, 0x20, 0xA0, 0x00, 0x40, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x49, 0x22, 0x85, 0x44, 0x09, 0x20, 0x3E, 0x40, 0x22, 0x78, 0x22, 0x88, 0x3F, 0x50, 0x08, 0x20, 0x2E, 0x50, 0x29, 0xFE, 0x2E, 0x88, 0x70, 0x88, 0x20, 0xF8, 0x04, 0x40, 0x7E, 0x40, 0x44, 0xFC, 0x45, 0x88, 0x46, 0x50, 0x44, 0x20, 0x7C, 0x50, 0x50, 0x8E, 0x13, 0x04, 0x5D, 0xFE, 0x51, 0x04, 0x51, 0x04, 0x51, 0x04, 0x5D, 0x04, 0xE1, 0xFC, 0x01, 0x04, 0x04, 0x40, 0x7E, 0x40, 0x44, 0xFC, 0x55, 0x88, 0x56, 0x50, 0x54, 0x20, 0x54, 0x50, 0x54, 0x8E, 0x57, 0x04, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x29, 0x04, 0x25, 0x04, 0x45, 0xFC, 0x81, 0x04, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x40, 0x22, 0x48, 0x3F, 0xFC, 0x22, 0x48, 0x22, 0x48, 0x3F, 0xF8, 0x28, 0x40, 0x28, 0x48, 0x2F, 0x58, 0x48, 0x60, 0x49, 0x42, 0x8A, 0x42, 0x0C, 0x3E, 0x40, 0x20, 0x2F, 0xA0, 0x28, 0xBC, 0x08, 0xC4, 0x88, 0xC4, 0x4F, 0xA8, 0x4A, 0x90, 0x02, 0x28, 0x1A, 0x46, 0x2B, 0x84, 0xCA, 0x7C, 0x4A, 0x44, 0x4A, 0x44, 0x4B, 0xC4, 0x5C, 0x7C, 0x08, 0x44, 0x20, 0x08, 0x13, 0xFC, 0x10, 0x08, 0x01, 0xF8, 0xF8, 0x08, 0x0B, 0xFE, 0x10, 0x40, 0x38, 0x44, 0x56, 0x68, 0x91, 0x70, 0x10, 0xD0, 0x11, 0x48, 0x12, 0x4E, 0x14, 0x44, 0x11, 0x40, 0x10, 0x80, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x1F, 0xF0, 0x00, 0x10, 0x00, 0x14, 0xFF, 0xFE, 0x01, 0x08, 0x11, 0x10, 0x09, 0xA0, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1E, 0x65, 0x04, 0x02, 0x00, 0x00, 0x20, 0x7C, 0x20, 0x44, 0x28, 0x49, 0xFC, 0x48, 0x20, 0x50, 0x20, 0x48, 0x24, 0x4B, 0xFE, 0x44, 0x20, 0x45, 0x24, 0x45, 0x24, 0x69, 0x24, 0x51, 0x24, 0x41, 0x24, 0x41, 0xFC, 0x41, 0x04, 0x01, 0x20, 0xF7, 0xA8, 0x11, 0x24, 0x55, 0x20, 0x33, 0x3E, 0x55, 0xE0, 0x09, 0x20, 0x14, 0x24, 0x2B, 0x24, 0xD1, 0x28, 0x24, 0x10, 0x48, 0x30, 0x12, 0x52, 0x24, 0x8A, 0x09, 0x0A, 0x10, 0x04, 0x08, 0x40, 0xFC, 0x24, 0x09, 0xFE, 0x49, 0x04, 0x49, 0x04, 0x49, 0x04, 0x49, 0x04, 0x49, 0xFC, 0x7D, 0x04, 0x05, 0x00, 0x05, 0x00, 0x1D, 0x00, 0xE5, 0x00, 0x05, 0x00, 0x2A, 0x00, 0x14, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x10, 0x08, 0x11, 0xFC, 0x1D, 0x08, 0x21, 0x08, 0x21, 0x08, 0x7D, 0x08, 0x91, 0xF8, 0x10, 0x00, 0x7C, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0x16, 0x04, 0x1A, 0x04, 0x13, 0xFC, 0x02, 0x04, 0x08, 0x08, 0x0B, 0xFC, 0x0A, 0x08, 0x12, 0x08, 0x12, 0x08, 0x33, 0xF8, 0x50, 0x00, 0x90, 0x04, 0x17, 0xFE, 0x14, 0x04, 0x14, 0x04, 0x14, 0x04, 0x14, 0x04, 0x14, 0x04, 0x17, 0xFC, 0x14, 0x04, 0x20, 0x80, 0x10, 0x80, 0x10, 0x88, 0xFD, 0xFC, 0x22, 0x10, 0x20, 0x60, 0x3D, 0x84, 0x25, 0x4C, 0x25, 0x50, 0x25, 0x20, 0x25, 0x20, 0x25, 0x10, 0x25, 0x10, 0x45, 0x4E, 0x95, 0x84, 0x09, 0x00, 0x3F, 0xFC, 0x20, 0x04, 0x3F, 0xFC, 0x25, 0x00, 0x29, 0xFC, 0x32, 0x08, 0x25, 0xFC, 0x29, 0x08, 0x39, 0xF8, 0x29, 0x08, 0x29, 0xF8, 0x29, 0x00, 0x4B, 0xF8, 0x4C, 0x90, 0x88, 0x60, 0x0B, 0x9C, 0x3F, 0xFC, 0x20, 0x04, 0x3F, 0xFC, 0x24, 0x90, 0x22, 0xA4, 0x3F, 0xFE, 0x22, 0xA0, 0x24, 0x98, 0x28, 0x88, 0x21, 0x00, 0x3F, 0xFE, 0x22, 0x10, 0x46, 0x20, 0x41, 0xC0, 0x82, 0x30, 0x0C, 0x08, 0x10, 0x40, 0x12, 0x48, 0x21, 0x50, 0x20, 0x40, 0x47, 0xFE, 0xF9, 0x50, 0x12, 0x4C, 0x24, 0x44, 0x40, 0x80, 0xFF, 0xFE, 0x01, 0x08, 0x02, 0x08, 0x19, 0xB0, 0xE0, 0x40, 0x41, 0xB0, 0x06, 0x08, 0x01, 0x10, 0x01, 0xF8, 0x01, 0x00, 0x3F, 0xFE, 0x21, 0x02, 0x21, 0xF4, 0x2F, 0x00, 0x21, 0x08, 0x20, 0xF8, 0x20, 0x00, 0x20, 0x80, 0x2A, 0x48, 0x4A, 0x46, 0x52, 0x12, 0x81, 0xF0, 0x00, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x00, 0x48, 0x3F, 0xE8, 0x00, 0x48, 0x1F, 0xC8, 0x00, 0x48, 0xFF, 0xF8, 0x12, 0x48, 0x0A, 0x8A, 0x32, 0x6A, 0x06, 0x04, 0x08, 0x40, 0x08, 0x48, 0x13, 0xFC, 0x10, 0x48, 0x27, 0xFE, 0x48, 0x48, 0x8B, 0xF8, 0x10, 0x40, 0x30, 0x48, 0x57, 0xFC, 0x90, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x42, 0x44, 0x27, 0x88, 0x11, 0x10, 0x22, 0x48, 0x4F, 0xE4, 0x01, 0x20, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x90, 0x40, 0xF8, 0x20, 0x80, 0x2F, 0xFE, 0x08, 0x82, 0x88, 0xF4, 0x5F, 0x80, 0x48, 0x88, 0x18, 0x78, 0x28, 0x00, 0xC9, 0x40, 0x4B, 0x24, 0x4D, 0x2A, 0x51, 0x0A, 0x50, 0xF8, 0x60, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x20, 0x08, 0x21, 0xF8, 0x44, 0x08, 0xFF, 0xFE, 0x10, 0x40, 0x22, 0x44, 0x41, 0x4C, 0xF9, 0x50, 0x00, 0xE0, 0x01, 0x50, 0x1A, 0x48, 0xE4, 0x4E, 0x41, 0x44, 0x00, 0x80, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x14, 0x50, 0x14, 0x48, 0x24, 0x44, 0x24, 0x44, 0x44, 0x40, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x14, 0x50, 0x34, 0x4C, 0x44, 0x74, 0x3F, 0x80, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x14, 0x50, 0x24, 0x4C, 0x44, 0x44, 0x1F, 0xE0, 0x00, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x40, 0x84, 0x3F, 0xFE, 0x22, 0x20, 0x06, 0x30, 0x8A, 0x2C, 0x52, 0x24, 0x42, 0xA0, 0x10, 0x84, 0x2F, 0xFE, 0xC1, 0xC0, 0x42, 0xA0, 0x44, 0x90, 0x48, 0x8E, 0x50, 0x84, 0x40, 0x80, 0x0C, 0x04, 0x70, 0xFE, 0x44, 0x84, 0x44, 0x84, 0x64, 0xA4, 0x54, 0x94, 0x54, 0x94, 0x44, 0x84, 0x44, 0x84, 0x5C, 0xC4, 0xE4, 0xA8, 0x04, 0x90, 0x08, 0x80, 0x10, 0x80, 0x60, 0x80, 0x00, 0x80, 0x02, 0x40, 0x07, 0x40, 0x78, 0x40, 0x08, 0x40, 0x08, 0x40, 0x09, 0x40, 0xFF, 0xC0, 0x08, 0x40, 0x0A, 0x40, 0x3F, 0x40, 0x22, 0x40, 0x22, 0x42, 0x22, 0x42, 0x22, 0x42, 0x3E, 0x3E, 0x22, 0x00, 0x10, 0x80, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x00, 0xFC, 0x08, 0x13, 0xFC, 0x16, 0x08, 0x1A, 0x08, 0x32, 0x08, 0xD3, 0xF8, 0x10, 0x40, 0x11, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x51, 0x40, 0x20, 0x80, 0x00, 0x80, 0x04, 0x80, 0x7E, 0xFC, 0x55, 0x88, 0x56, 0x50, 0x54, 0x20, 0x7C, 0x50, 0x54, 0x8E, 0x55, 0x04, 0x57, 0xFE, 0x55, 0x04, 0x7D, 0x04, 0x41, 0x04, 0x01, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0xFD, 0x10, 0x11, 0x08, 0x12, 0x0E, 0x1D, 0x04, 0x31, 0x10, 0xD1, 0x30, 0x11, 0xC0, 0x11, 0x00, 0x11, 0x04, 0x11, 0x04, 0x50, 0xFC, 0x20, 0x00, 0x10, 0x40, 0x10, 0x40, 0x20, 0xA0, 0xFC, 0xA0, 0x21, 0x10, 0x51, 0x08, 0x52, 0x0E, 0xFD, 0x04, 0x11, 0x10, 0x11, 0x30, 0x1D, 0xC0, 0xF1, 0x00, 0x51, 0x04, 0x11, 0x04, 0x10, 0xFC, 0x10, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x32, 0x08, 0x54, 0x0E, 0x99, 0x04, 0x11, 0x10, 0x11, 0x30, 0x11, 0xC0, 0x11, 0x00, 0x11, 0x04, 0x11, 0x04, 0x10, 0xFC, 0x10, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x1E, 0xC8, 0x24, 0x08, 0x60, 0x09, 0x80, 0x0E, 0x00, 0x08, 0x00, 0x08, 0x08, 0x08, 0x08, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0xA0, 0x10, 0xA0, 0x01, 0x10, 0x82, 0x08, 0x64, 0x0E, 0x29, 0x04, 0x11, 0x10, 0x11, 0x30, 0xE1, 0xC0, 0x21, 0x00, 0x21, 0x04, 0x21, 0x04, 0x20, 0xFC, 0x20, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x20, 0xA0, 0x25, 0x10, 0x7E, 0x0E, 0x04, 0x04, 0x09, 0x00, 0x11, 0x10, 0x7D, 0x30, 0x01, 0xC0, 0x01, 0x00, 0x0D, 0x04, 0x71, 0x04, 0x20, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0xA0, 0x10, 0xA0, 0x01, 0x10, 0x02, 0x0E, 0xF4, 0x04, 0x11, 0x00, 0x11, 0x10, 0x11, 0x30, 0x11, 0xC0, 0x11, 0x00, 0x15, 0x04, 0x19, 0x04, 0x10, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x48, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x02, 0x00, 0x07, 0xF8, 0x18, 0x08, 0x64, 0x10, 0x02, 0x60, 0x01, 0x80, 0x06, 0x00, 0x78, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0x15, 0xFC, 0x7F, 0x24, 0x55, 0xFC, 0x54, 0x20, 0x54, 0x48, 0x55, 0xF0, 0x7C, 0x24, 0x51, 0xFC, 0x14, 0x20, 0x1C, 0xA8, 0xE5, 0x26, 0x42, 0xA2, 0x00, 0x40, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x42, 0x04, 0x02, 0x00, 0x07, 0xF0, 0x08, 0x10, 0x14, 0x20, 0x62, 0xC0, 0x01, 0x00, 0x06, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x00, 0x04, 0x4F, 0xFE, 0x29, 0x24, 0x29, 0x24, 0x0F, 0xFC, 0x08, 0x84, 0xE1, 0x00, 0x23, 0xF8, 0x26, 0x08, 0x29, 0x10, 0x20, 0xA0, 0x20, 0xC0, 0x27, 0x00, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x22, 0x94, 0x3E, 0x94, 0x42, 0x94, 0x83, 0xFC, 0x7E, 0x44, 0x10, 0x80, 0x10, 0xFC, 0x7D, 0x04, 0x13, 0x08, 0x10, 0x90, 0x14, 0x60, 0x18, 0x40, 0x11, 0x80, 0x06, 0x00, 0x22, 0x44, 0x3F, 0x7E, 0x50, 0xA0, 0x89, 0x14, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x44, 0x04, 0x0F, 0xF0, 0x10, 0x10, 0x28, 0x20, 0x04, 0x40, 0x03, 0x80, 0x0E, 0x00, 0x70, 0x00, 0x08, 0x04, 0xFD, 0xFE, 0x09, 0x24, 0x49, 0xFC, 0x49, 0x24, 0x49, 0xFC, 0x48, 0x20, 0x48, 0x48, 0x7D, 0xF0, 0x04, 0x24, 0x05, 0xFC, 0x1C, 0x20, 0xE4, 0xA8, 0x45, 0x26, 0x16, 0xA2, 0x08, 0x40, 0x40, 0x08, 0x33, 0xFC, 0x12, 0x48, 0x02, 0x48, 0xFB, 0xF8, 0x0A, 0x48, 0x12, 0x48, 0x33, 0xF8, 0x58, 0x40, 0x97, 0xFE, 0x18, 0xE0, 0x11, 0x50, 0x12, 0x4E, 0x1C, 0x44, 0x10, 0x40, 0x10, 0x40, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x41, 0xF8, 0x23, 0x10, 0x24, 0xA0, 0x80, 0x40, 0x49, 0xB0, 0x12, 0x0E, 0x2F, 0xFC, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x01, 0x00, 0x41, 0x00, 0x31, 0xF8, 0x13, 0x10, 0x84, 0xA0, 0x60, 0x40, 0x20, 0xA0, 0x09, 0x10, 0x12, 0x0E, 0x27, 0xFC, 0xEA, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x08, 0x80, 0xFC, 0x80, 0x08, 0xFC, 0x49, 0x04, 0x4A, 0x88, 0x48, 0x50, 0x48, 0x20, 0x48, 0x50, 0x7D, 0x8E, 0x07, 0xFC, 0x05, 0x04, 0x1D, 0x04, 0xE5, 0x04, 0x45, 0x04, 0x15, 0xFC, 0x09, 0x04, 0x10, 0x80, 0x10, 0x80, 0x20, 0xFC, 0x21, 0x04, 0x4A, 0x88, 0xF8, 0x50, 0x10, 0x20, 0x20, 0x50, 0x41, 0x8E, 0xFB, 0xFC, 0x05, 0x04, 0x01, 0x04, 0x19, 0x04, 0xE1, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x10, 0x10, 0x13, 0xF8, 0x10, 0x10, 0x11, 0x10, 0xFD, 0x10, 0x25, 0x10, 0x25, 0x10, 0x25, 0x14, 0x25, 0xFE, 0x44, 0x04, 0x28, 0x24, 0x13, 0xF4, 0x28, 0x04, 0x44, 0x04, 0x84, 0x28, 0x00, 0x10, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x44, 0x20, 0x44, 0x20, 0x44, 0x24, 0x7F, 0xFE, 0x44, 0x20, 0x4E, 0x70, 0x4D, 0x68, 0x54, 0xAE, 0x54, 0xA4, 0x65, 0x20, 0x44, 0x20, 0x84, 0x20, 0x04, 0x20, 0x00, 0x10, 0x0B, 0xF8, 0xFC, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x7D, 0x10, 0x11, 0x14, 0x11, 0xFE, 0x10, 0x04, 0x1C, 0x24, 0xF3, 0xF4, 0x40, 0x04, 0x00, 0x04, 0x00, 0x14, 0x00, 0x08, 0x08, 0x10, 0xFF, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x21, 0x10, 0x25, 0x10, 0x3F, 0x10, 0x65, 0x14, 0xA5, 0xFE, 0x24, 0x04, 0x24, 0x24, 0x27, 0xF4, 0x24, 0x04, 0x3C, 0x04, 0x24, 0x14, 0x00, 0x08, 0x10, 0x10, 0x13, 0xF8, 0x10, 0x10, 0x7D, 0x10, 0x55, 0x10, 0x55, 0x10, 0x55, 0x10, 0x55, 0x10, 0x55, 0xFC, 0x7C, 0x04, 0x10, 0x24, 0x17, 0xF4, 0x1C, 0x04, 0xE4, 0x04, 0x40, 0x14, 0x00, 0x08, 0x00, 0x20, 0x3F, 0xF0, 0x00, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0x0F, 0xFE, 0x00, 0x04, 0x00, 0x24, 0xFF, 0xF4, 0x00, 0x04, 0x00, 0x04, 0x00, 0x28, 0x00, 0x10, 0x7E, 0xFC, 0x42, 0x84, 0x42, 0x84, 0x7E, 0xFC, 0x00, 0x20, 0x3F, 0xF0, 0x00, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0x0F, 0xFE, 0x00, 0x04, 0x00, 0x24, 0xFF, 0xF4, 0x00, 0x14, 0x00, 0x08, 0x00, 0x80, 0x20, 0x44, 0xFF, 0xFE, 0xA9, 0x10, 0xA9, 0x10, 0xA9, 0x14, 0xAF, 0xFE, 0xA9, 0x10, 0xAB, 0x30, 0xAB, 0xB8, 0xAD, 0x56, 0xE9, 0x54, 0x89, 0x90, 0x11, 0x10, 0x21, 0x10, 0x01, 0x10, 0x00, 0x10, 0x0B, 0xF8, 0x7C, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x14, 0x49, 0xFE, 0x48, 0x04, 0x48, 0x24, 0x7F, 0xF4, 0x48, 0x04, 0x00, 0x04, 0x00, 0x14, 0x00, 0x08, 0x20, 0x04, 0x27, 0xFE, 0x24, 0x44, 0x24, 0x44, 0xFF, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x20, 0x40, 0x38, 0x48, 0xE7, 0xFC, 0x40, 0x40, 0x00, 0x44, 0x1F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0x84, 0x08, 0x88, 0x06, 0x80, 0x02, 0x80, 0x20, 0x80, 0x19, 0x00, 0x09, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0xC0, 0x04, 0x30, 0x08, 0x18, 0x30, 0x0C, 0xC0, 0x04, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x0F, 0xF0, 0x0A, 0x20, 0x11, 0x40, 0x20, 0x80, 0x43, 0x40, 0x0C, 0x30, 0x30, 0x0E, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x7F, 0xFC, 0x08, 0x04, 0x06, 0x88, 0x22, 0x80, 0x18, 0x80, 0x08, 0x84, 0xFF, 0xFE, 0x01, 0x40, 0x02, 0x30, 0x0C, 0x18, 0x30, 0x08, 0x00, 0x04, 0x47, 0xFE, 0x31, 0x00, 0x11, 0x08, 0x01, 0xFC, 0x01, 0x08, 0xF1, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x12, 0x08, 0x14, 0x50, 0x10, 0x20, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x08, 0x80, 0x7C, 0x40, 0x48, 0x00, 0x4B, 0xC4, 0x48, 0x4C, 0x78, 0x50, 0x4F, 0xE0, 0x48, 0xE0, 0x49, 0x50, 0x79, 0x50, 0x4A, 0x48, 0x4A, 0x4E, 0x4C, 0x44, 0x48, 0x40, 0x49, 0x40, 0x98, 0x80, 0x01, 0x10, 0x79, 0x14, 0x4F, 0xFE, 0x49, 0x10, 0x48, 0x04, 0x7F, 0xFE, 0x48, 0x90, 0x48, 0x94, 0x4B, 0xFE, 0x7A, 0x94, 0x4A, 0x94, 0x4B, 0x6C, 0x4A, 0x04, 0x7A, 0x04, 0x4A, 0x14, 0x02, 0x08, 0x23, 0xFC, 0x22, 0x04, 0x23, 0xFC, 0x3A, 0x04, 0x2B, 0xFC, 0x48, 0x00, 0x57, 0xFE, 0x84, 0x92, 0x27, 0xFE, 0x20, 0x00, 0x23, 0xFC, 0x21, 0x08, 0x28, 0x90, 0x30, 0x60, 0x21, 0x9E, 0x06, 0x04, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x14, 0x50, 0x24, 0x4C, 0x45, 0x44, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x08, 0x41, 0x20, 0x31, 0x24, 0x1F, 0xFE, 0x01, 0x20, 0x80, 0x08, 0x6F, 0xFC, 0x21, 0x20, 0x01, 0x24, 0x1F, 0xFE, 0x29, 0x24, 0xE9, 0x24, 0x2A, 0xD4, 0x2C, 0x0C, 0x28, 0x04, 0x28, 0x14, 0x28, 0x08, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x7F, 0xFC, 0x40, 0x04, 0x1F, 0xF0, 0x04, 0x40, 0x03, 0x80, 0x0C, 0x60, 0x70, 0x1C, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x40, 0x04, 0x1F, 0xF0, 0x04, 0x40, 0x03, 0x80, 0x0C, 0x60, 0x70, 0x1C, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x5A, 0x08, 0x57, 0xF8, 0x50, 0x04, 0x97, 0xFE, 0x14, 0xA4, 0x14, 0xA4, 0x17, 0xFC, 0x10, 0x00, 0x13, 0xF8, 0x11, 0x10, 0x10, 0xE0, 0x11, 0x18, 0x16, 0x06, 0x47, 0xF8, 0x34, 0x08, 0x17, 0xF8, 0x04, 0x08, 0x87, 0xF8, 0x60, 0x04, 0x2F, 0xFE, 0x09, 0x24, 0x19, 0x24, 0x2F, 0xFC, 0xE0, 0x00, 0x27, 0xF0, 0x22, 0x20, 0x21, 0xC0, 0x26, 0x30, 0x38, 0x0E, 0x47, 0xF8, 0x24, 0x08, 0x27, 0xF8, 0x04, 0x08, 0x07, 0xF8, 0xE0, 0x04, 0x2F, 0xFE, 0x29, 0x24, 0x2F, 0xFC, 0x28, 0x04, 0x23, 0xF0, 0x22, 0x10, 0x29, 0x20, 0x30, 0xC0, 0x23, 0x30, 0x0C, 0x0E, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10, 0x1F, 0xF8, 0x00, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x20, 0x00, 0x10, 0x80, 0x90, 0x44, 0x47, 0xFE, 0x41, 0x00, 0x09, 0x00, 0x11, 0x00, 0xE1, 0x00, 0x21, 0x00, 0x21, 0x08, 0x21, 0xFC, 0x20, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10, 0x1F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x20, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x02, 0x08, 0xFE, 0x08, 0x43, 0xF8, 0x42, 0x40, 0x42, 0x44, 0x43, 0xFE, 0x42, 0x40, 0x42, 0x20, 0x4A, 0x20, 0x7E, 0x10, 0x02, 0x92, 0x03, 0x0A, 0x02, 0x06, 0x10, 0x80, 0x10, 0x60, 0x10, 0x20, 0x10, 0x04, 0x5F, 0xFE, 0x5A, 0x00, 0x52, 0x00, 0x92, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x08, 0x13, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x05, 0x50, 0x02, 0x08, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x30, 0x34, 0x4E, 0xC4, 0x44, 0x3F, 0xF8, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x30, 0x40, 0x01, 0x10, 0x89, 0x10, 0x51, 0x14, 0x2F, 0xFE, 0x51, 0x10, 0x91, 0x14, 0x17, 0xFE, 0x14, 0x44, 0x34, 0x44, 0x54, 0x44, 0x97, 0xFC, 0x14, 0x44, 0x14, 0x44, 0x14, 0x44, 0x57, 0xFC, 0x24, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x00, 0x20, 0x01, 0x40, 0x00, 0x80, 0xFF, 0xFE, 0x01, 0x82, 0x02, 0x84, 0x04, 0x80, 0x08, 0x80, 0x10, 0x80, 0x22, 0x80, 0x01, 0x00, 0x21, 0x10, 0x21, 0x10, 0x39, 0x14, 0x27, 0xFE, 0x41, 0x10, 0x79, 0x14, 0xA7, 0xFE, 0x24, 0x44, 0xFC, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x2C, 0x44, 0x34, 0x44, 0x27, 0xFC, 0x04, 0x04, 0x00, 0x10, 0x00, 0x78, 0x3F, 0x80, 0x02, 0x00, 0x02, 0x20, 0x03, 0xF0, 0x3E, 0x00, 0x02, 0x08, 0x03, 0xFC, 0xFE, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x20, 0x02, 0x40, 0x01, 0x80, 0x00, 0x80, 0xFF, 0xFE, 0x01, 0x84, 0x02, 0x88, 0x04, 0x80, 0x08, 0x80, 0x10, 0x80, 0x20, 0x80, 0x40, 0x80, 0x02, 0x80, 0x01, 0x00, 0x21, 0x04, 0x26, 0x3E, 0x3C, 0xA4, 0x44, 0xA4, 0x84, 0xA4, 0x7C, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0xFD, 0xA4, 0x26, 0xB4, 0x24, 0xA8, 0x20, 0xA0, 0x29, 0x20, 0x31, 0x20, 0x22, 0x20, 0x04, 0x20, 0x04, 0x00, 0x0E, 0x04, 0x30, 0x7E, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x2E, 0x64, 0x32, 0x54, 0x02, 0x48, 0x04, 0x40, 0x18, 0x40, 0x60, 0x40, 0x00, 0x40, 0x08, 0x40, 0x08, 0x44, 0xFF, 0xFE, 0x08, 0x40, 0x09, 0x20, 0x01, 0x10, 0x3F, 0xFC, 0x21, 0x00, 0x20, 0x88, 0x20, 0x88, 0x20, 0x50, 0x20, 0x60, 0x20, 0xA0, 0x23, 0x12, 0x4C, 0x0A, 0x80, 0x06, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x5F, 0xF4, 0x40, 0x04, 0x5F, 0xF4, 0x40, 0x04, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x20, 0x04, 0x23, 0xFE, 0x22, 0x04, 0xFA, 0xF4, 0xAA, 0x04, 0xAA, 0xF4, 0xA8, 0x00, 0xA9, 0xF8, 0xA9, 0x08, 0xA9, 0xF8, 0xA9, 0x08, 0xB9, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0xF8, 0x21, 0x08, 0x04, 0x40, 0x08, 0x84, 0x35, 0xFE, 0xD5, 0x04, 0x49, 0x04, 0x39, 0xFC, 0x25, 0x04, 0xCD, 0x04, 0x15, 0xFC, 0x65, 0x54, 0x0C, 0x50, 0x14, 0x50, 0x64, 0x92, 0x04, 0x92, 0x29, 0x0E, 0x12, 0x00, 0x06, 0x04, 0x78, 0xFE, 0x40, 0x44, 0x48, 0x44, 0x4E, 0x54, 0x72, 0x88, 0xC1, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x38, 0x70, 0x08, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x40, 0x08, 0x40, 0x10, 0x80, 0x21, 0x00, 0x41, 0x00, 0x02, 0x00, 0x04, 0x20, 0x08, 0x10, 0x10, 0x08, 0x3F, 0xFC, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x08, 0x40, 0xFC, 0x40, 0x10, 0x84, 0x10, 0xFE, 0x11, 0x08, 0x12, 0x88, 0x7C, 0x88, 0x10, 0x88, 0x10, 0x90, 0x10, 0x50, 0x10, 0x20, 0x1C, 0x50, 0xE0, 0x88, 0x41, 0x0E, 0x06, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x84, 0xFC, 0xFE, 0x11, 0x08, 0x32, 0x88, 0x38, 0x88, 0x54, 0x88, 0x50, 0x90, 0x90, 0x50, 0x10, 0x20, 0x10, 0x50, 0x10, 0x88, 0x11, 0x0E, 0x16, 0x04, 0x12, 0x00, 0x12, 0x08, 0x13, 0xFC, 0x14, 0x00, 0xFF, 0xF8, 0x12, 0x08, 0x32, 0x88, 0x3A, 0x48, 0x57, 0xFE, 0x52, 0x08, 0x94, 0x88, 0x14, 0x48, 0x17, 0xFC, 0x10, 0x08, 0x10, 0x28, 0x10, 0x10, 0x02, 0x40, 0xFF, 0x44, 0x28, 0x7E, 0x2A, 0x80, 0xFF, 0x04, 0xAA, 0x7E, 0xAA, 0x44, 0xAE, 0x64, 0xC2, 0x54, 0x83, 0xFE, 0x82, 0x84, 0xFE, 0xA4, 0x82, 0x94, 0x82, 0xFC, 0xFE, 0x04, 0x82, 0x18, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x49, 0x22, 0x85, 0x44, 0x09, 0x20, 0x10, 0x00, 0x1F, 0xF8, 0x20, 0x00, 0x5F, 0xF0, 0x12, 0x14, 0xFF, 0xFE, 0x20, 0x90, 0x3F, 0xF8, 0x00, 0x10, 0x00, 0x30, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0x17, 0xFE, 0x55, 0x10, 0x59, 0xF0, 0x51, 0x10, 0x91, 0xF0, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0xE0, 0x29, 0x50, 0x46, 0x4E, 0x84, 0x44, 0x00, 0x40, 0x40, 0x10, 0x31, 0xF8, 0x11, 0x10, 0x01, 0x10, 0x81, 0x10, 0x62, 0x0E, 0x24, 0x00, 0x03, 0xF8, 0x12, 0x08, 0x21, 0x10, 0xE1, 0x10, 0x20, 0xA0, 0x20, 0x40, 0x20, 0xA0, 0x23, 0x1E, 0x2C, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x2F, 0xFC, 0x28, 0x08, 0x28, 0x08, 0x2F, 0xF8, 0x28, 0x08, 0x2F, 0xF8, 0x28, 0x08, 0x48, 0x08, 0x8F, 0xF8, 0x08, 0x08, 0x21, 0x10, 0x21, 0x10, 0x21, 0x10, 0x27, 0xFC, 0xF9, 0x10, 0x49, 0xF0, 0x49, 0x10, 0x49, 0xF0, 0x48, 0x44, 0x8F, 0xFE, 0x50, 0x40, 0x20, 0xE0, 0x51, 0x50, 0x4A, 0x4E, 0x84, 0x44, 0x00, 0x40, 0x21, 0x10, 0x20, 0xA0, 0x3F, 0xFC, 0x20, 0x40, 0x43, 0xF8, 0x78, 0x40, 0xA0, 0x48, 0x27, 0xFC, 0xF8, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x28, 0xA0, 0x31, 0x10, 0x22, 0x0E, 0x0C, 0x04, 0x10, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x20, 0x10, 0x5F, 0xF8, 0x12, 0x10, 0x11, 0x10, 0x10, 0x14, 0xFF, 0xFE, 0x12, 0x10, 0x21, 0x10, 0x20, 0x10, 0x3F, 0xF8, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x08, 0x20, 0x06, 0x60, 0x02, 0x88, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x02, 0x80, 0x04, 0x60, 0x18, 0x1E, 0xE0, 0x04, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x48, 0x4B, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x48, 0x44, 0x7F, 0xFE, 0x48, 0x40, 0x48, 0xE0, 0x48, 0xD0, 0x49, 0x48, 0x7A, 0x4E, 0x44, 0x44, 0x08, 0x40, 0x00, 0x40, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0xA4, 0x24, 0x24, 0x20, 0x25, 0xFC, 0x3C, 0x20, 0x04, 0x24, 0xFF, 0xFE, 0x24, 0x20, 0x24, 0x70, 0x24, 0xA8, 0x25, 0x2E, 0x46, 0x24, 0x04, 0x20, 0x20, 0x40, 0x20, 0x40, 0x20, 0x48, 0x23, 0xFC, 0xF8, 0x40, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x88, 0xE0, 0x50, 0xD0, 0x21, 0x48, 0x52, 0x4E, 0x4C, 0x44, 0x88, 0x40, 0x00, 0x40, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0x11, 0x24, 0xFD, 0xFC, 0x25, 0x00, 0x25, 0x7C, 0x25, 0x44, 0x25, 0x44, 0x45, 0x7C, 0x29, 0x44, 0x11, 0x7C, 0x29, 0x44, 0x46, 0x44, 0x84, 0x7C, 0x00, 0x44, 0x20, 0x04, 0x1B, 0xFE, 0x48, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x20, 0x04, 0x1B, 0xFE, 0x48, 0x04, 0x42, 0x04, 0x41, 0x04, 0x44, 0x84, 0x54, 0x94, 0x54, 0x0C, 0x64, 0x0C, 0x44, 0x24, 0x44, 0x24, 0x43, 0xE4, 0x40, 0x04, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x10, 0x00, 0x12, 0x04, 0x11, 0x7E, 0x24, 0x84, 0x24, 0x04, 0x64, 0x04, 0xA4, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x24, 0x14, 0x24, 0x08, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x28, 0x7C, 0xFC, 0x44, 0x88, 0x44, 0x88, 0x44, 0xF8, 0x7C, 0x88, 0x44, 0x88, 0x44, 0xF8, 0x44, 0x88, 0x7D, 0x08, 0x41, 0x08, 0x02, 0x28, 0x0C, 0x10, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x7F, 0xFE, 0x40, 0x02, 0x8F, 0xE4, 0x00, 0x00, 0x7F, 0xFC, 0x06, 0x10, 0x3B, 0x30, 0x05, 0xC0, 0x1A, 0xA0, 0x64, 0x90, 0x18, 0x8E, 0x62, 0x84, 0x01, 0x00, 0x10, 0x90, 0x10, 0x94, 0x17, 0xFE, 0x10, 0x90, 0xFF, 0xFE, 0x14, 0x02, 0x39, 0xF4, 0x34, 0x00, 0x53, 0xFC, 0x50, 0xC0, 0x97, 0x68, 0x10, 0xB0, 0x13, 0x68, 0x10, 0xAE, 0x17, 0x24, 0x10, 0x60, 0x3E, 0xF8, 0x22, 0x88, 0x22, 0x88, 0x3E, 0xF8, 0x22, 0x88, 0x22, 0x88, 0x3E, 0xF8, 0x21, 0x08, 0x02, 0x28, 0x04, 0x10, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x20, 0x00, 0x23, 0xF8, 0x38, 0x10, 0x40, 0x60, 0x80, 0x48, 0x7B, 0xFC, 0x20, 0x40, 0x21, 0x40, 0xF8, 0x88, 0x23, 0xFC, 0x22, 0xA8, 0x22, 0xA8, 0x2A, 0xA8, 0x32, 0xA8, 0x2F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xF8, 0x50, 0x10, 0x20, 0x60, 0x50, 0x48, 0x97, 0xFC, 0x10, 0x40, 0x11, 0x40, 0x30, 0x88, 0x53, 0xFC, 0x92, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0xAF, 0xFE, 0x40, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x1C, 0x70, 0x2A, 0xAE, 0x49, 0x24, 0x8C, 0x20, 0x07, 0xF8, 0x0C, 0x10, 0x14, 0x20, 0x22, 0x40, 0x01, 0x80, 0x01, 0x00, 0x0E, 0x00, 0x70, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x20, 0x00, 0xC0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x05, 0x00, 0x02, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x40, 0x7C, 0x40, 0x4A, 0x44, 0x49, 0x4C, 0x49, 0x50, 0x78, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x78, 0xE0, 0x48, 0xE0, 0x49, 0x50, 0x49, 0x48, 0x7A, 0x4E, 0x44, 0x44, 0x00, 0x40, 0x00, 0x40, 0x02, 0x10, 0xFF, 0x10, 0x28, 0x52, 0x29, 0x34, 0xFE, 0xB8, 0xAA, 0x10, 0xAA, 0x7E, 0xAF, 0x90, 0xC2, 0xB0, 0x82, 0xB8, 0x82, 0xD6, 0xFE, 0x92, 0x82, 0x90, 0x82, 0x90, 0xFF, 0x46, 0x82, 0x3C, 0x01, 0x00, 0x00, 0x84, 0x7F, 0xFE, 0x44, 0x10, 0x5F, 0x7C, 0x4E, 0x38, 0x55, 0x54, 0x64, 0x92, 0x41, 0x40, 0x5F, 0x7C, 0x41, 0x40, 0x4F, 0x78, 0x41, 0x40, 0x5F, 0x7C, 0x81, 0x40, 0x01, 0x40, 0x01, 0x00, 0x00, 0x84, 0x7F, 0xFE, 0x44, 0x10, 0x5F, 0x7C, 0x4E, 0x38, 0x55, 0x54, 0x64, 0x92, 0x44, 0x90, 0x42, 0xA4, 0x7F, 0xFE, 0x41, 0xC0, 0x42, 0xB0, 0x4C, 0x8E, 0xB0, 0x84, 0x00, 0x80, 0x00, 0x40, 0x40, 0x40, 0x32, 0x48, 0x11, 0x50, 0x00, 0x40, 0x00, 0x44, 0xF7, 0xFE, 0x10, 0x40, 0x11, 0x60, 0x11, 0x50, 0x12, 0x48, 0x14, 0x48, 0x10, 0x40, 0x28, 0x40, 0x44, 0x06, 0x83, 0xFC, 0x00, 0x20, 0x40, 0x20, 0x29, 0x24, 0x24, 0xA8, 0x04, 0x20, 0x00, 0x24, 0xE3, 0xFE, 0x2C, 0x20, 0x24, 0x70, 0x24, 0x68, 0x24, 0xA4, 0x2D, 0x24, 0x34, 0x20, 0x24, 0x20, 0x0A, 0x06, 0x11, 0xFC, 0x08, 0x80, 0xFC, 0x80, 0x08, 0x80, 0x08, 0xFE, 0x09, 0x02, 0x79, 0x04, 0x4A, 0x20, 0x40, 0x20, 0x48, 0xA8, 0x7C, 0xA4, 0x09, 0x26, 0x0A, 0x22, 0x08, 0x20, 0x08, 0x20, 0x50, 0xA0, 0x20, 0x40, 0x01, 0x00, 0x21, 0x08, 0x19, 0x18, 0x0D, 0x20, 0x05, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x00, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x08, 0x00, 0x1C, 0x80, 0xF0, 0x60, 0x10, 0x2C, 0x11, 0x08, 0xFD, 0x10, 0x11, 0x10, 0x39, 0x20, 0x35, 0x28, 0x55, 0x44, 0x55, 0x86, 0x99, 0x02, 0x13, 0x08, 0x15, 0x08, 0x18, 0xF8, 0x10, 0x00, 0x00, 0xFC, 0x7F, 0x00, 0x11, 0x10, 0x09, 0x20, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x90, 0x02, 0x80, 0x04, 0x82, 0x18, 0x82, 0x60, 0x7E, 0x40, 0x00, 0x30, 0x80, 0x10, 0x60, 0x00, 0x2C, 0x81, 0x08, 0x61, 0x10, 0x21, 0x10, 0x09, 0x20, 0x15, 0x28, 0x25, 0x44, 0xE5, 0x86, 0x29, 0x02, 0x23, 0x08, 0x25, 0x08, 0x28, 0xF8, 0x20, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0x89, 0x24, 0x28, 0xC8, 0x4B, 0x04, 0x0C, 0x10, 0x77, 0xF0, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0x7F, 0xFC, 0x20, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0x89, 0x24, 0x28, 0xC8, 0x4B, 0x04, 0x0C, 0x10, 0x77, 0xF0, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x09, 0x20, 0x1F, 0xF0, 0x29, 0x2E, 0xC9, 0x24, 0x09, 0x60, 0x01, 0x00, 0x10, 0x40, 0x10, 0x88, 0x13, 0xFC, 0x12, 0x08, 0xFF, 0xF8, 0x12, 0x08, 0x33, 0xF8, 0x38, 0x44, 0x57, 0xFE, 0x54, 0x44, 0x94, 0x44, 0x14, 0x44, 0x14, 0x54, 0x14, 0x48, 0x10, 0x40, 0x10, 0x40, 0x00, 0x08, 0x7B, 0xFC, 0x4A, 0x08, 0x4A, 0x08, 0x4A, 0x08, 0x7B, 0xF8, 0x4A, 0x40, 0x4A, 0x44, 0x4B, 0xFE, 0x7A, 0x40, 0x4A, 0x20, 0x4A, 0x20, 0x4A, 0x10, 0x7A, 0x92, 0x4B, 0x0A, 0x02, 0x06, 0x10, 0x40, 0x10, 0x88, 0x23, 0xFC, 0x22, 0x08, 0x4B, 0xF8, 0xFA, 0x08, 0x13, 0xF8, 0x20, 0x44, 0x47, 0xFE, 0xFC, 0x44, 0x04, 0x44, 0x04, 0x44, 0x1C, 0x54, 0xE4, 0x48, 0x40, 0x40, 0x00, 0x40, 0x7F, 0xFC, 0x40, 0x04, 0x5F, 0xF4, 0x40, 0x04, 0x5F, 0xF4, 0x08, 0x00, 0x0F, 0xE0, 0x10, 0x48, 0x1F, 0xFC, 0x31, 0x08, 0x51, 0x08, 0x9F, 0xF8, 0x12, 0x88, 0x04, 0x82, 0x18, 0x82, 0x60, 0x7E, 0x08, 0x00, 0x08, 0x00, 0x1F, 0xE0, 0x10, 0x40, 0x20, 0x88, 0x7F, 0xFC, 0xA1, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x22, 0x88, 0x02, 0x80, 0x04, 0x80, 0x08, 0x82, 0x30, 0x82, 0xC0, 0x7E, 0x10, 0x20, 0x10, 0x20, 0x3E, 0x20, 0x24, 0x24, 0x48, 0xFE, 0xFF, 0x24, 0x49, 0x24, 0x49, 0x24, 0x7F, 0x24, 0x55, 0x44, 0x14, 0x44, 0x24, 0x94, 0x25, 0x0A, 0x44, 0x02, 0x83, 0xFE, 0x00, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0xF8, 0x11, 0x10, 0xFE, 0x24, 0x25, 0xFE, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x45, 0x54, 0x28, 0x50, 0x10, 0x90, 0x28, 0x92, 0x45, 0x12, 0x82, 0x0E, 0x04, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x20, 0x40, 0x20, 0x84, 0x4B, 0xFE, 0xFA, 0x94, 0x12, 0x94, 0x22, 0xF4, 0x42, 0x94, 0xFA, 0x94, 0x02, 0xF4, 0x02, 0x94, 0x1A, 0x94, 0xE2, 0x94, 0x43, 0xFC, 0x02, 0x04, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x47, 0xC4, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x47, 0xC4, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x40, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x21, 0x10, 0x21, 0x10, 0x21, 0x14, 0x2F, 0xFE, 0xF9, 0x10, 0x21, 0x14, 0x27, 0xFE, 0x2C, 0x44, 0x34, 0x44, 0xE4, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0xA7, 0xFC, 0x44, 0x04, 0x09, 0x10, 0x7D, 0x10, 0x49, 0x14, 0x4F, 0xFE, 0x49, 0x10, 0x79, 0x14, 0x4B, 0xFE, 0x4A, 0x44, 0x4A, 0x44, 0x7A, 0x44, 0x4B, 0xFC, 0x4A, 0x44, 0x4A, 0x44, 0x7A, 0x44, 0x4B, 0xFC, 0x02, 0x04, 0x08, 0x24, 0xFF, 0xFE, 0x0A, 0x20, 0x0C, 0x20, 0x12, 0x44, 0x6B, 0xFE, 0x2D, 0x04, 0x31, 0xFC, 0xC9, 0x04, 0x15, 0xFC, 0x24, 0x90, 0xCC, 0x90, 0x14, 0x92, 0xE4, 0x92, 0x29, 0x0E, 0x12, 0x00, 0x04, 0x20, 0x0E, 0x20, 0x78, 0x20, 0x08, 0x20, 0x08, 0xA8, 0xFE, 0xA6, 0x08, 0xA2, 0x1D, 0x20, 0x1A, 0x24, 0x28, 0x24, 0x28, 0x28, 0x48, 0x10, 0x88, 0x20, 0x08, 0x40, 0x08, 0x80, 0x0B, 0x00, 0x80, 0x10, 0x61, 0x10, 0x2F, 0x90, 0x09, 0x10, 0x09, 0x10, 0x8F, 0x54, 0x69, 0x52, 0x29, 0x52, 0x09, 0x90, 0x1F, 0x14, 0x29, 0x14, 0xC9, 0x08, 0x4F, 0x10, 0x48, 0x60, 0x41, 0x80, 0x46, 0x00, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x00, 0x20, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x28, 0x88, 0x28, 0x88, 0x28, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x48, 0x88, 0x48, 0x88, 0x8F, 0xF8, 0x08, 0x08, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0xFC, 0xA8, 0x24, 0xA6, 0x24, 0xA2, 0x25, 0x20, 0x24, 0x24, 0x44, 0x24, 0x28, 0x28, 0x10, 0x10, 0x28, 0x20, 0x44, 0x40, 0x80, 0x80, 0x03, 0x00, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x01, 0x20, 0x3F, 0xFC, 0x21, 0x00, 0x21, 0x08, 0x28, 0x90, 0x24, 0xA0, 0x40, 0x42, 0x41, 0xA2, 0x8E, 0x1E, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x11, 0x08, 0x11, 0x18, 0x11, 0x20, 0x21, 0x40, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x04, 0x20, 0x08, 0x10, 0x10, 0x0E, 0x60, 0x04, 0x00, 0x00, 0x00, 0x10, 0x7F, 0xF8, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x7F, 0xF0, 0x42, 0x00, 0x42, 0x08, 0x7F, 0xFC, 0x42, 0x00, 0x41, 0x00, 0x41, 0x00, 0x48, 0x80, 0x50, 0x42, 0x60, 0x32, 0x40, 0x0E, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0xFE, 0x08, 0x13, 0xF8, 0x16, 0x40, 0x1A, 0x44, 0x33, 0xFE, 0xD2, 0x40, 0x12, 0x20, 0x12, 0x20, 0x12, 0x10, 0x12, 0x92, 0x53, 0x0A, 0x22, 0x06, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x11, 0x20, 0x3F, 0xA0, 0x20, 0x24, 0x7F, 0x7E, 0xA9, 0x84, 0x25, 0x44, 0x21, 0x44, 0xFF, 0xC8, 0x29, 0x28, 0x45, 0x28, 0x41, 0x10, 0x7F, 0xA8, 0x01, 0x28, 0x0A, 0x46, 0x04, 0x84, 0x12, 0x04, 0x11, 0x7E, 0x10, 0x04, 0x12, 0x44, 0x5A, 0x24, 0x57, 0xFC, 0x52, 0x94, 0x92, 0x54, 0x12, 0x54, 0x12, 0x24, 0x12, 0x54, 0x13, 0x8C, 0x12, 0x04, 0x12, 0x04, 0x12, 0x14, 0x12, 0x08, 0x20, 0x04, 0x1B, 0xFE, 0x48, 0x04, 0x41, 0x04, 0x41, 0x24, 0x4F, 0xF4, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x4F, 0xE4, 0x49, 0x04, 0x41, 0x24, 0x41, 0xF4, 0x5F, 0x14, 0x40, 0x14, 0x40, 0x08, 0x00, 0x04, 0x04, 0xFE, 0x7E, 0x84, 0x44, 0x84, 0x44, 0x84, 0x44, 0xFC, 0x7C, 0x84, 0x44, 0x84, 0x44, 0x84, 0x44, 0xFC, 0x7C, 0x84, 0x44, 0x84, 0x01, 0x04, 0x01, 0x04, 0x02, 0x14, 0x04, 0x08, 0x10, 0x00, 0x13, 0xFE, 0x12, 0x02, 0x14, 0x04, 0x7D, 0xFE, 0x55, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x7D, 0xFC, 0x54, 0x40, 0x10, 0x24, 0x17, 0xFE, 0x1C, 0x00, 0xE4, 0x88, 0x41, 0x06, 0x02, 0x02, 0x00, 0x40, 0x08, 0x88, 0x7D, 0xFC, 0x49, 0x08, 0x49, 0x48, 0x49, 0x08, 0x49, 0x28, 0x49, 0x10, 0x49, 0x04, 0x49, 0xFE, 0x78, 0x04, 0x48, 0x24, 0x07, 0xF4, 0x00, 0x04, 0x00, 0x14, 0x00, 0x08, 0x10, 0x40, 0x10, 0x40, 0x1E, 0xFC, 0x20, 0x84, 0x21, 0x88, 0x7E, 0x50, 0x90, 0x20, 0x10, 0x40, 0x7C, 0x84, 0x11, 0xFE, 0x12, 0x84, 0x10, 0x84, 0x14, 0x84, 0x18, 0x84, 0x10, 0xFC, 0x00, 0x84, 0x02, 0x00, 0x02, 0x00, 0x07, 0xF0, 0x04, 0x10, 0x0C, 0x20, 0x12, 0x40, 0x01, 0x80, 0x06, 0x00, 0x18, 0x08, 0xEF, 0xFC, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x3F, 0xFE, 0xC0, 0x08, 0x3E, 0xFC, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0xC8, 0x3E, 0xA8, 0x22, 0x90, 0x00, 0x80, 0x00, 0x80, 0x00, 0x84, 0x4F, 0xFE, 0x24, 0xA4, 0x22, 0x94, 0x04, 0xA4, 0xE0, 0xC4, 0x21, 0x20, 0x22, 0x50, 0x2C, 0x8E, 0x21, 0x24, 0x22, 0x40, 0x20, 0x90, 0x2B, 0x20, 0x30, 0x40, 0x20, 0x80, 0x03, 0x00, 0x11, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x11, 0x10, 0xFD, 0x18, 0x13, 0xFC, 0x16, 0x08, 0x1B, 0xF8, 0x32, 0x08, 0xD3, 0xF8, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x51, 0x1C, 0x26, 0x08, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x21, 0x08, 0xDF, 0xF6, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x03, 0x00, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x7F, 0xFC, 0x44, 0x20, 0x7F, 0xFC, 0x4C, 0x70, 0x56, 0xAE, 0x65, 0x24, 0x7F, 0xFC, 0x42, 0x00, 0x44, 0x08, 0x4F, 0xFC, 0x74, 0x08, 0x84, 0x08, 0x07, 0xF8, 0x11, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x11, 0x10, 0xFD, 0x18, 0x13, 0xFC, 0x32, 0x08, 0x3B, 0xF8, 0x56, 0x08, 0x53, 0xF8, 0x90, 0x40, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0xB0, 0x11, 0x0E, 0x16, 0x04, 0x01, 0x10, 0x79, 0x14, 0x4F, 0xFE, 0x49, 0x10, 0x49, 0x18, 0x7B, 0xFC, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x7B, 0xF8, 0x48, 0x40, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0xB0, 0x49, 0x0E, 0x9E, 0x04, 0x01, 0x04, 0x7F, 0xFE, 0x44, 0x20, 0x44, 0x24, 0x7F, 0xFE, 0x4E, 0x70, 0x55, 0xA8, 0x64, 0x24, 0x7F, 0xFE, 0x42, 0x00, 0x44, 0x08, 0x4F, 0xFC, 0x54, 0x08, 0x64, 0x08, 0x87, 0xF8, 0x04, 0x08, 0x01, 0x08, 0x7F, 0xFC, 0x44, 0x20, 0x44, 0x20, 0x7F, 0xFC, 0x4E, 0x70, 0x55, 0xAE, 0x64, 0x24, 0x5F, 0xF0, 0x41, 0x00, 0x4F, 0xF0, 0x41, 0x00, 0x7F, 0xFC, 0x41, 0x00, 0x85, 0x00, 0x02, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x20, 0x3F, 0xFC, 0x26, 0x30, 0x2B, 0x6E, 0x32, 0xA4, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x49, 0x40, 0x42, 0x52, 0x8C, 0x42, 0x30, 0x3E, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0xFC, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x1C, 0x40, 0x30, 0xE0, 0xD0, 0xD0, 0x11, 0x48, 0x12, 0x4E, 0x14, 0x44, 0x10, 0x40, 0x50, 0x40, 0x20, 0x40, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x03, 0x80, 0x03, 0x40, 0x05, 0x20, 0x09, 0x18, 0x11, 0x0E, 0x61, 0x04, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x04, 0x50, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x70, 0x1C, 0x00, 0x08, 0x3F, 0xFC, 0x29, 0x28, 0x25, 0x48, 0x3F, 0xF8, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x24, 0x48, 0x42, 0x26, 0x81, 0x12, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x20, 0x7F, 0xB0, 0x49, 0x28, 0x6B, 0x20, 0x5D, 0x24, 0x7F, 0xFE, 0x08, 0x20, 0x7F, 0x20, 0x08, 0x20, 0x0F, 0x20, 0x78, 0x20, 0x05, 0x50, 0x55, 0x50, 0x54, 0x88, 0x91, 0x0E, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x30, 0x44, 0x1F, 0xFE, 0x80, 0x40, 0x60, 0x48, 0x27, 0xFC, 0x08, 0x40, 0x10, 0xE0, 0x20, 0xD0, 0xE1, 0x48, 0x22, 0x4E, 0x24, 0x44, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x01, 0x10, 0x41, 0x14, 0x2F, 0xFE, 0x11, 0x10, 0x81, 0x18, 0x63, 0xFC, 0x22, 0x08, 0x0B, 0xF8, 0x12, 0x08, 0x23, 0xF8, 0xE0, 0x40, 0x3F, 0xFE, 0x20, 0x40, 0x20, 0xB0, 0x23, 0x0E, 0x2C, 0x04, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x84, 0x54, 0x3F, 0xF8, 0x04, 0x40, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x0C, 0x60, 0x30, 0x1C, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x20, 0x48, 0x20, 0x48, 0x44, 0x51, 0xFE, 0x49, 0x04, 0x49, 0x04, 0x45, 0x04, 0x45, 0xFC, 0x45, 0x04, 0x69, 0x04, 0x51, 0x04, 0x41, 0x04, 0x41, 0xFC, 0x41, 0x04, 0x02, 0x08, 0x42, 0x08, 0x3F, 0xFE, 0x12, 0x08, 0x03, 0xF8, 0x02, 0x08, 0xF2, 0x08, 0x13, 0xF8, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0xE0, 0x15, 0x50, 0x1A, 0x4E, 0x14, 0x44, 0x00, 0x40, 0x01, 0x00, 0x02, 0x00, 0x04, 0x20, 0x08, 0x10, 0x3F, 0xF8, 0x01, 0x08, 0x11, 0x10, 0x1F, 0xF8, 0x21, 0x00, 0x41, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x03, 0x80, 0x05, 0x60, 0x19, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x88, 0xFE, 0x48, 0x12, 0x08, 0x12, 0x08, 0x1F, 0xFE, 0x34, 0x08, 0xD4, 0x88, 0x14, 0x48, 0x14, 0x08, 0x17, 0xFC, 0x10, 0x08, 0x50, 0x50, 0x20, 0x20, 0x08, 0x20, 0x08, 0x20, 0x48, 0x20, 0x4A, 0x20, 0x7F, 0x20, 0x48, 0x28, 0x89, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x0E, 0x20, 0x18, 0x20, 0xE8, 0x20, 0x08, 0x20, 0x08, 0x24, 0x0B, 0xFE, 0x08, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x10, 0x04, 0x10, 0xFE, 0x10, 0x84, 0x10, 0xA4, 0xFC, 0x94, 0x24, 0x84, 0x24, 0x84, 0x27, 0xFE, 0x25, 0x04, 0x45, 0x24, 0x29, 0x14, 0x11, 0x04, 0x29, 0xFE, 0x44, 0x04, 0x84, 0x28, 0x00, 0x10, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x12, 0x10, 0x11, 0x90, 0x10, 0x90, 0x10, 0x14, 0xFF, 0xFE, 0x20, 0x10, 0x22, 0x10, 0x21, 0x90, 0x20, 0x90, 0x3F, 0xF8, 0x00, 0x10, 0x00, 0xA0, 0x00, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x50, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x30, 0x37, 0xCE, 0xC1, 0x04, 0x01, 0x20, 0x1F, 0xF0, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x50, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x1F, 0xF0, 0x28, 0x28, 0xCF, 0xE6, 0x08, 0x20, 0x0F, 0xE0, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x50, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x04, 0xFF, 0xFE, 0x11, 0x10, 0x3F, 0xFE, 0xD1, 0x14, 0x11, 0x50, 0x11, 0x20, 0x01, 0x00, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x50, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x04, 0xFF, 0xFE, 0x12, 0x10, 0x22, 0x0E, 0xDF, 0xE4, 0x04, 0x20, 0x08, 0xA0, 0x30, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x50, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x04, 0xFF, 0xFE, 0x12, 0x10, 0x22, 0x0E, 0xCB, 0x24, 0x12, 0x90, 0x22, 0x90, 0x06, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x03, 0x80, 0x03, 0x40, 0x05, 0x20, 0x09, 0x10, 0x11, 0x08, 0x21, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x00, 0x08, 0x40, 0x7C, 0x48, 0x4B, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x78, 0x44, 0x4F, 0xFE, 0x49, 0x10, 0x4A, 0x4C, 0x7C, 0x44, 0x4B, 0xF8, 0x48, 0x40, 0x48, 0x40, 0x78, 0x44, 0x4F, 0xFE, 0x00, 0x00, 0x08, 0x40, 0x08, 0x40, 0x48, 0x40, 0x48, 0x84, 0x7E, 0xFE, 0x49, 0x08, 0x8A, 0x88, 0x08, 0x88, 0x0E, 0x88, 0x18, 0x90, 0xE8, 0x50, 0x08, 0x20, 0x08, 0x50, 0x08, 0x88, 0x09, 0x0E, 0x0E, 0x04, 0x08, 0x40, 0x1C, 0x88, 0xF3, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0xFE, 0x08, 0x33, 0xF8, 0x39, 0x50, 0x52, 0x64, 0x54, 0x42, 0x53, 0x90, 0x90, 0x20, 0x13, 0xC8, 0x10, 0x10, 0x10, 0x60, 0x17, 0x80, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x37, 0xDE, 0xC0, 0x04, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x30, 0x3F, 0xC0, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0F, 0xDE, 0x72, 0x52, 0x52, 0x54, 0x5F, 0xD4, 0x52, 0x54, 0x52, 0x58, 0x52, 0x54, 0x5F, 0xD2, 0x52, 0x52, 0x52, 0x52, 0x74, 0x52, 0x54, 0x5A, 0x09, 0x54, 0x10, 0x90, 0x00, 0x10, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x44, 0x4B, 0xFE, 0x4A, 0x44, 0x4A, 0x44, 0x4A, 0x44, 0x4A, 0x44, 0x4A, 0xA4, 0x4A, 0x94, 0x4B, 0x14, 0x4A, 0x04, 0x7A, 0x04, 0x4A, 0x04, 0x02, 0x14, 0x02, 0x08, 0x20, 0x40, 0x20, 0x40, 0x38, 0x44, 0x23, 0xFE, 0x42, 0x44, 0x7A, 0x44, 0xA2, 0x44, 0x22, 0x44, 0xFA, 0xA4, 0x22, 0x94, 0x23, 0x14, 0x22, 0x04, 0x2A, 0x04, 0x32, 0x04, 0x22, 0x14, 0x02, 0x08, 0x00, 0x04, 0x7F, 0x7E, 0x09, 0x44, 0x09, 0x44, 0x7F, 0x48, 0x09, 0x48, 0x09, 0x50, 0x09, 0x48, 0x7F, 0x44, 0x09, 0x42, 0x09, 0x42, 0x11, 0x62, 0x11, 0x54, 0x25, 0x48, 0x42, 0x40, 0x00, 0x40, 0x20, 0x00, 0x27, 0xDE, 0x22, 0x52, 0x22, 0x52, 0xFA, 0x54, 0x4F, 0xD4, 0x4A, 0x58, 0x4A, 0x54, 0x8A, 0x54, 0x57, 0xD2, 0x22, 0x52, 0x52, 0x5A, 0x4D, 0x54, 0x84, 0x90, 0x08, 0x10, 0x00, 0x10, 0x10, 0x40, 0x10, 0x40, 0x20, 0x44, 0x23, 0xFE, 0x4A, 0x44, 0xFA, 0x44, 0x12, 0x44, 0x22, 0x44, 0x42, 0xA4, 0xFA, 0x94, 0x03, 0x14, 0x02, 0x04, 0x1A, 0x04, 0xE2, 0x04, 0x42, 0x14, 0x02, 0x08, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0x9F, 0xF8, 0x00, 0x88, 0x7F, 0xC8, 0x08, 0x88, 0x08, 0x88, 0x09, 0xE8, 0x08, 0x28, 0x10, 0x2A, 0x10, 0x2A, 0x21, 0x4A, 0x40, 0x84, 0x00, 0x10, 0x7F, 0xF8, 0x08, 0x10, 0x08, 0x10, 0x08, 0x20, 0x08, 0x44, 0x08, 0xFE, 0x08, 0x04, 0x08, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x20, 0x04, 0x40, 0x44, 0x80, 0x28, 0x00, 0x10, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x88, 0x10, 0x88, 0xFC, 0x88, 0x24, 0x90, 0x24, 0x94, 0x24, 0xBE, 0x24, 0x84, 0x49, 0x04, 0x29, 0x04, 0x11, 0x04, 0x2A, 0x04, 0x4A, 0x04, 0x84, 0x28, 0x08, 0x10, 0x01, 0x08, 0xFF, 0x88, 0x08, 0x08, 0x08, 0x08, 0x10, 0xFE, 0x7F, 0x08, 0x55, 0x08, 0x55, 0x88, 0x55, 0x68, 0x55, 0x28, 0x55, 0x08, 0x55, 0x08, 0x55, 0x08, 0x55, 0x08, 0x43, 0x28, 0x00, 0x10, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x10, 0x4E, 0xEF, 0xE4, 0x00, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x09, 0x20, 0x11, 0x18, 0x65, 0x08, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x48, 0x24, 0x44, 0x44, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x04, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x04, 0x41, 0x14, 0x40, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x04, 0x02, 0x04, 0x04, 0x04, 0x18, 0x28, 0x60, 0x10, 0x00, 0x60, 0x04, 0x50, 0xFE, 0x44, 0x04, 0xFE, 0x44, 0x90, 0x45, 0x90, 0x2A, 0xFC, 0x28, 0x90, 0x10, 0x90, 0x10, 0xFC, 0x28, 0x90, 0x24, 0x90, 0x44, 0x94, 0x80, 0xFE, 0x00, 0x80, 0x00, 0x80, 0x01, 0x10, 0x3F, 0xF8, 0x09, 0x20, 0x7F, 0xFE, 0x52, 0x92, 0x9E, 0xF4, 0x04, 0x40, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x40, 0x7F, 0xFC, 0x0C, 0x90, 0x14, 0x60, 0x65, 0x1C, 0x06, 0x08, 0x10, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x17, 0x80, 0xFC, 0x48, 0x10, 0x32, 0x10, 0xD2, 0x1F, 0x0E, 0x30, 0x08, 0xD7, 0xFC, 0x11, 0x20, 0x11, 0x20, 0x11, 0x22, 0x11, 0x22, 0x52, 0x1E, 0x2C, 0x00, 0x08, 0x80, 0x7C, 0x40, 0x48, 0x04, 0x4F, 0xFE, 0x48, 0x00, 0x7A, 0x14, 0x4B, 0x14, 0x4A, 0xA4, 0x4A, 0xA4, 0x7A, 0x44, 0x4A, 0xA4, 0x4B, 0x1C, 0x4A, 0x0C, 0x4A, 0x04, 0x4B, 0xFC, 0x9A, 0x04, 0x10, 0x80, 0x10, 0x40, 0x10, 0x04, 0x17, 0xFE, 0x58, 0x00, 0x52, 0x14, 0x53, 0x14, 0x92, 0xA4, 0x12, 0xA4, 0x12, 0x44, 0x12, 0xA4, 0x13, 0x1C, 0x12, 0x0C, 0x12, 0x04, 0x13, 0xFC, 0x12, 0x04, 0x40, 0x04, 0x37, 0xFE, 0x10, 0x04, 0x42, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x24, 0x4F, 0xF4, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x64, 0x41, 0x04, 0x41, 0x14, 0x40, 0x08, 0x40, 0x88, 0x30, 0xFC, 0x10, 0x80, 0x00, 0x88, 0x87, 0xFC, 0x64, 0x08, 0x27, 0xF8, 0x0C, 0x08, 0x17, 0xF8, 0x20, 0x80, 0xE0, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x00, 0x08, 0x0B, 0xFC, 0x7E, 0x08, 0x4A, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x00, 0x4A, 0x88, 0x4A, 0x98, 0x4A, 0xA0, 0x4A, 0xC0, 0x7C, 0x80, 0x44, 0x82, 0x08, 0x82, 0x10, 0x7E, 0x20, 0x00, 0x20, 0x1C, 0x27, 0xE0, 0x20, 0x00, 0x3A, 0x44, 0x49, 0x24, 0x51, 0x28, 0x80, 0x80, 0x20, 0x84, 0x2F, 0xFE, 0x21, 0x08, 0x22, 0x08, 0x21, 0x10, 0x28, 0xA0, 0x30, 0xE0, 0x21, 0x18, 0x06, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x42, 0x04, 0x42, 0x84, 0x44, 0x64, 0x48, 0x34, 0x50, 0x14, 0x40, 0x04, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x21, 0x10, 0x21, 0x50, 0x2F, 0xF4, 0x21, 0x1E, 0xF1, 0x24, 0x57, 0xD4, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x97, 0xD4, 0x53, 0x14, 0x23, 0x88, 0x55, 0x54, 0x49, 0x14, 0x81, 0x24, 0x01, 0x42, 0x10, 0x80, 0x10, 0x88, 0x24, 0x98, 0x44, 0xA0, 0xFE, 0xC0, 0x02, 0x84, 0x7C, 0x84, 0x44, 0x7C, 0x7C, 0x00, 0x44, 0x88, 0x44, 0x98, 0x7C, 0xA0, 0x44, 0xC0, 0x44, 0x82, 0x54, 0x82, 0x48, 0x7E, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0xFD, 0x04, 0x25, 0xFC, 0x25, 0x00, 0x25, 0x40, 0x25, 0x44, 0x49, 0x4C, 0x29, 0x50, 0x12, 0x60, 0x2A, 0x42, 0x46, 0x42, 0x84, 0x3E, 0x08, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x49, 0x22, 0x85, 0x44, 0x09, 0x20, 0x02, 0x08, 0x3C, 0xFC, 0x20, 0x08, 0x3E, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x24, 0x48, 0x04, 0x42, 0x18, 0x42, 0x60, 0x3E, 0x08, 0x40, 0x08, 0x84, 0x0B, 0x3E, 0x12, 0x04, 0x12, 0x04, 0x33, 0xBC, 0x52, 0x04, 0x92, 0x04, 0x13, 0xFC, 0x12, 0x94, 0x10, 0x90, 0x10, 0x90, 0x11, 0x12, 0x11, 0x12, 0x12, 0x0E, 0x14, 0x00, 0x40, 0x08, 0x37, 0xFC, 0x14, 0x08, 0x04, 0x08, 0x84, 0x08, 0x67, 0xF8, 0x25, 0x00, 0x0D, 0x08, 0x15, 0x18, 0x25, 0x20, 0xE5, 0x40, 0x25, 0x80, 0x25, 0x02, 0x29, 0x02, 0x28, 0xFE, 0x10, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x24, 0x00, 0x24, 0x10, 0x24, 0x30, 0x24, 0xC0, 0x27, 0x00, 0x24, 0x00, 0x24, 0x02, 0x44, 0x02, 0x43, 0xFE, 0x80, 0x00, 0x10, 0x00, 0x10, 0x08, 0x10, 0x88, 0x12, 0x48, 0xFE, 0x68, 0x12, 0x28, 0x16, 0x08, 0x1A, 0x08, 0x32, 0x08, 0xD2, 0x08, 0x12, 0x48, 0x12, 0x88, 0x13, 0x14, 0x12, 0x22, 0x50, 0x42, 0x20, 0x80, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x23, 0xFC, 0x22, 0x04, 0x64, 0x08, 0xA8, 0x40, 0x20, 0x40, 0x21, 0x50, 0x21, 0x48, 0x22, 0x4C, 0x24, 0x44, 0x20, 0x40, 0x20, 0x40, 0x21, 0x40, 0x20, 0x80, 0x00, 0x08, 0x7F, 0xFC, 0x44, 0x40, 0x44, 0x50, 0x7F, 0xF8, 0x44, 0x40, 0x41, 0x08, 0x7F, 0xFC, 0x42, 0x00, 0x47, 0xF0, 0x4C, 0x10, 0x54, 0x10, 0x47, 0xF0, 0x40, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x14, 0x78, 0x10, 0x4F, 0xFE, 0x48, 0x10, 0x4B, 0xD0, 0x78, 0x10, 0x4F, 0xF0, 0x48, 0x10, 0x4B, 0xE8, 0x7A, 0x28, 0x4A, 0xA8, 0x4A, 0xA8, 0x4A, 0xAA, 0x4A, 0xAA, 0x49, 0x4A, 0x9A, 0x24, 0x02, 0x08, 0x41, 0x10, 0x30, 0xA0, 0x17, 0xFC, 0x00, 0x40, 0x02, 0x48, 0xF2, 0x48, 0x12, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x12, 0x48, 0x10, 0x40, 0x10, 0x80, 0x29, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x47, 0xBC, 0x30, 0x84, 0x10, 0x84, 0x87, 0xBC, 0x64, 0x20, 0x24, 0x24, 0x0F, 0xBE, 0x10, 0x84, 0x24, 0xA4, 0xE2, 0x94, 0x22, 0x94, 0x24, 0xA4, 0x20, 0x84, 0x22, 0x94, 0x21, 0x08, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x3F, 0xF8, 0x01, 0x00, 0x09, 0xF0, 0x09, 0x04, 0xFF, 0xFE, 0x10, 0x00, 0x1F, 0xF8, 0x10, 0x00, 0x1F, 0xFC, 0x29, 0x24, 0x24, 0x94, 0x44, 0x94, 0x00, 0x0C, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x10, 0x7E, 0xFC, 0x40, 0x10, 0x40, 0x14, 0x40, 0x18, 0x44, 0x33, 0xFE, 0xD2, 0x04, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04, 0x53, 0xFC, 0x22, 0x04, 0x08, 0x00, 0x08, 0x08, 0x1F, 0xFC, 0x11, 0x00, 0x21, 0x00, 0x41, 0x10, 0x1F, 0xF8, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x04, 0x0B, 0xFE, 0xFE, 0x04, 0x12, 0x04, 0x13, 0xFC, 0x22, 0x50, 0x2B, 0xFC, 0x7E, 0x50, 0xAA, 0x54, 0x2B, 0xFE, 0x2A, 0xC4, 0x2A, 0xA8, 0x3C, 0x90, 0x24, 0x8E, 0x08, 0xC4, 0x00, 0x80, 0x21, 0x10, 0x21, 0x10, 0x27, 0xFC, 0x21, 0x10, 0xFF, 0xFE, 0x21, 0x10, 0x22, 0xAE, 0x3C, 0x84, 0x67, 0xF8, 0xA1, 0x00, 0x22, 0x40, 0x27, 0xF8, 0x20, 0x40, 0x3F, 0xFE, 0xA0, 0x40, 0x40, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0xFD, 0x10, 0x12, 0x8E, 0x14, 0x44, 0x18, 0x00, 0x33, 0xF8, 0xD0, 0x10, 0x10, 0x20, 0x12, 0x80, 0x16, 0x64, 0x1A, 0x22, 0x52, 0x08, 0x21, 0xF8, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x12, 0x10, 0x21, 0x0E, 0xC1, 0x04, 0x1F, 0xF8, 0x00, 0x20, 0x00, 0x40, 0x04, 0x00, 0x13, 0x00, 0x51, 0x14, 0x50, 0x12, 0x8F, 0xF2, 0x00, 0x00, 0x10, 0x40, 0x10, 0x28, 0x11, 0xFC, 0x11, 0x08, 0xFD, 0x08, 0x25, 0xF8, 0x25, 0x08, 0x25, 0x08, 0x25, 0xF8, 0x45, 0x44, 0x29, 0x48, 0x11, 0x30, 0x29, 0x10, 0x45, 0x4E, 0x85, 0x84, 0x01, 0x00, 0x01, 0x20, 0xFF, 0x94, 0x14, 0x7E, 0x14, 0x44, 0x7F, 0x44, 0x55, 0x7C, 0x55, 0x44, 0x57, 0x44, 0x61, 0x7C, 0x41, 0x60, 0x41, 0x52, 0x7F, 0x54, 0x41, 0x48, 0x41, 0x48, 0x7F, 0x64, 0x41, 0x42, 0x02, 0x00, 0x04, 0x20, 0x1F, 0xF0, 0x10, 0x20, 0x14, 0x20, 0x12, 0x20, 0x12, 0x20, 0x10, 0xA0, 0x10, 0x44, 0x1F, 0xFE, 0x00, 0x04, 0x00, 0x24, 0xFF, 0xF4, 0x00, 0x04, 0x00, 0x28, 0x00, 0x10, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x04, 0x20, 0x04, 0x3F, 0xFC, 0x20, 0x84, 0x20, 0x80, 0x2E, 0xA4, 0x22, 0xA8, 0x22, 0xB0, 0x24, 0xA0, 0x24, 0x90, 0x48, 0x8E, 0x50, 0x84, 0x82, 0x80, 0x01, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0xFF, 0xF8, 0x12, 0x08, 0x16, 0x08, 0x1B, 0xF8, 0x30, 0x40, 0xD0, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x5F, 0xFE, 0x20, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x28, 0x7F, 0xFC, 0x00, 0x20, 0x7E, 0xFC, 0x02, 0x04, 0x24, 0x48, 0x14, 0x28, 0x08, 0x10, 0x16, 0x2E, 0x62, 0xC4, 0x04, 0x44, 0xFF, 0xFE, 0x10, 0x20, 0x7E, 0xF8, 0x42, 0x50, 0x7E, 0x50, 0x41, 0xFC, 0x7E, 0x20, 0x42, 0xF8, 0x7E, 0x20, 0x40, 0x20, 0x0F, 0xE0, 0x00, 0x88, 0x7F, 0xFC, 0x01, 0x00, 0x03, 0x00, 0x00, 0x40, 0x08, 0x48, 0x7D, 0x7C, 0x49, 0x40, 0x49, 0x40, 0x49, 0x44, 0x4F, 0xFE, 0x48, 0x00, 0x4A, 0x44, 0x4A, 0x44, 0x4A, 0x44, 0x4A, 0xB4, 0x7B, 0x14, 0x4A, 0x04, 0x03, 0xFC, 0x02, 0x04, 0x23, 0xFC, 0x21, 0x08, 0x39, 0xF8, 0x41, 0x08, 0x81, 0xF8, 0x79, 0x08, 0x27, 0xFE, 0x20, 0x08, 0xFF, 0xFE, 0x24, 0x62, 0x22, 0x94, 0x22, 0x94, 0x29, 0x08, 0x32, 0x98, 0x22, 0xA4, 0x0C, 0x42, 0x20, 0x80, 0x21, 0x08, 0x3B, 0xFC, 0x42, 0x08, 0x83, 0xF8, 0x7A, 0x08, 0x23, 0xF8, 0x22, 0x08, 0xFB, 0xF8, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0xE0, 0x29, 0x50, 0x32, 0x4E, 0x24, 0x44, 0x00, 0x40, 0x40, 0x04, 0x37, 0xFE, 0x14, 0x04, 0x04, 0x04, 0x87, 0xFC, 0x64, 0x04, 0x24, 0x04, 0x0F, 0xFC, 0x10, 0x40, 0x20, 0x48, 0xE7, 0xFC, 0x20, 0x40, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x09, 0x00, 0x09, 0x00, 0x13, 0xFC, 0x12, 0x04, 0x34, 0x48, 0x59, 0x40, 0x91, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x11, 0x40, 0x10, 0x80, 0x02, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x13, 0xFE, 0xFE, 0x02, 0x14, 0x04, 0x30, 0x00, 0x3B, 0xFE, 0x54, 0x20, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0xA0, 0x10, 0x40, 0x00, 0x40, 0x44, 0x20, 0x2C, 0x20, 0x13, 0xFE, 0x2A, 0x02, 0x4C, 0x04, 0x88, 0x00, 0x0B, 0xFE, 0x18, 0x20, 0x28, 0x20, 0x48, 0x20, 0x88, 0x20, 0x08, 0x20, 0x08, 0x20, 0x50, 0xA0, 0x20, 0x40, 0x08, 0x00, 0x89, 0x7C, 0x6E, 0x04, 0x28, 0x28, 0x08, 0x90, 0x07, 0x88, 0x28, 0x7E, 0x2F, 0x82, 0x32, 0x14, 0xC2, 0x50, 0x5F, 0xDC, 0x42, 0x50, 0x45, 0x70, 0x44, 0xD0, 0x48, 0x8E, 0x11, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0x00, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x13, 0xFE, 0xFA, 0x02, 0x14, 0x04, 0x10, 0x00, 0x1B, 0xFE, 0x30, 0x20, 0xD0, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x50, 0xA0, 0x20, 0x40, 0x40, 0x80, 0x30, 0x40, 0x10, 0x40, 0x07, 0xFE, 0x84, 0x02, 0x68, 0x04, 0x20, 0x00, 0x0F, 0xFE, 0x10, 0x40, 0x20, 0x40, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x21, 0x40, 0x20, 0x80, 0x01, 0x00, 0x11, 0x00, 0x11, 0x10, 0x1F, 0xF8, 0x21, 0x00, 0x21, 0x00, 0x41, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x88, 0x10, 0x88, 0xFC, 0x88, 0x10, 0x88, 0x14, 0x88, 0x1B, 0xF8, 0x30, 0x88, 0xD0, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x57, 0xFE, 0x20, 0x00, 0x20, 0x08, 0x27, 0xFC, 0x39, 0x08, 0x41, 0x08, 0x81, 0x08, 0x79, 0x08, 0x21, 0x08, 0x27, 0xF8, 0xF9, 0x08, 0x21, 0x08, 0x21, 0x08, 0x29, 0x08, 0x31, 0x08, 0x21, 0x08, 0x0F, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x49, 0x08, 0xF9, 0x08, 0x11, 0x08, 0x27, 0xF8, 0x41, 0x08, 0xF9, 0x08, 0x01, 0x08, 0x01, 0x08, 0x19, 0x08, 0xE1, 0x08, 0x47, 0xFE, 0x00, 0x00, 0x08, 0x40, 0x7C, 0x40, 0x4B, 0xFC, 0x4A, 0x44, 0x4C, 0x48, 0x78, 0x80, 0x48, 0x84, 0x49, 0x4C, 0x4B, 0x50, 0x7D, 0x20, 0x49, 0x20, 0x49, 0x10, 0x49, 0x0E, 0x49, 0x44, 0x49, 0x80, 0x99, 0x00, 0x40, 0x40, 0x30, 0x40, 0x17, 0xFC, 0x04, 0x44, 0x88, 0x48, 0x60, 0x80, 0x20, 0x84, 0x09, 0x4C, 0x13, 0x50, 0x25, 0x20, 0xE9, 0x20, 0x21, 0x10, 0x21, 0x0E, 0x21, 0x44, 0x21, 0x80, 0x21, 0x00, 0x01, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x04, 0x02, 0x00, 0x02, 0x08, 0x05, 0x18, 0x09, 0x20, 0x18, 0xC0, 0x28, 0x80, 0x48, 0x40, 0x88, 0x30, 0x0A, 0x0E, 0x0C, 0x04, 0x08, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x60, 0x40, 0x10, 0x00, 0x10, 0x00, 0x11, 0xFC, 0x10, 0x04, 0xFE, 0x84, 0x22, 0x84, 0x22, 0x88, 0x22, 0x88, 0x42, 0x48, 0x24, 0x50, 0x14, 0x50, 0x08, 0x20, 0x14, 0x50, 0x22, 0x88, 0x41, 0x0E, 0x06, 0x04, 0x10, 0x00, 0x10, 0x00, 0xFE, 0xFC, 0x22, 0x84, 0x24, 0x48, 0x64, 0x30, 0x18, 0x20, 0x14, 0x50, 0x62, 0x8E, 0x02, 0x04, 0x3F, 0xF0, 0x02, 0x10, 0x04, 0x10, 0x04, 0x10, 0x18, 0x50, 0x60, 0x20, 0x10, 0x00, 0x10, 0x00, 0xFE, 0xFC, 0x22, 0x84, 0x24, 0x48, 0x64, 0x30, 0x18, 0x20, 0x14, 0x50, 0x62, 0x8E, 0x00, 0x04, 0x12, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x04, 0x20, 0x08, 0x20, 0x10, 0x20, 0x0C, 0x40, 0x02, 0x80, 0x01, 0x80, 0x06, 0x60, 0x18, 0x18, 0x60, 0x08, 0x00, 0x0C, 0x0B, 0xF0, 0x7C, 0x84, 0x4A, 0x4C, 0x49, 0x50, 0x4B, 0xFC, 0x48, 0x80, 0x7F, 0xFE, 0x48, 0x80, 0x48, 0xF8, 0x49, 0x88, 0x49, 0x50, 0x7A, 0x20, 0x44, 0x50, 0x08, 0x8E, 0x03, 0x04, 0x01, 0x10, 0x01, 0xF8, 0x01, 0x00, 0x3F, 0xFC, 0x21, 0x04, 0x21, 0xE8, 0x3F, 0x00, 0x21, 0x08, 0x20, 0xF8, 0x20, 0x00, 0x27, 0xF0, 0x24, 0x04, 0x3F, 0xFE, 0x24, 0x00, 0x47, 0xF8, 0x80, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x08, 0x53, 0xFC, 0x52, 0x00, 0x12, 0x00, 0x32, 0x04, 0x5F, 0xFE, 0xD2, 0x00, 0x12, 0x00, 0x22, 0x00, 0x22, 0x08, 0x43, 0xFC, 0x00, 0x00, 0x10, 0x00, 0x17, 0xDE, 0x12, 0x52, 0x12, 0x54, 0xFA, 0x54, 0x17, 0xD4, 0x12, 0x58, 0x1A, 0x58, 0x32, 0x54, 0xD7, 0xD2, 0x12, 0x52, 0x12, 0x52, 0x14, 0x5A, 0x19, 0x54, 0x50, 0x90, 0x20, 0x10, 0x20, 0x08, 0x27, 0xFC, 0x20, 0x40, 0x2F, 0xFE, 0xBA, 0x4A, 0xA9, 0x50, 0xA2, 0x48, 0x20, 0x40, 0x2F, 0xFC, 0x20, 0x80, 0x27, 0xFC, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0x0C, 0x10, 0x08, 0x11, 0xFC, 0x54, 0x20, 0x3B, 0xFE, 0x12, 0xAA, 0xFC, 0x70, 0x10, 0xA8, 0x30, 0x20, 0x3B, 0xFE, 0x54, 0x40, 0x53, 0xFE, 0x92, 0x52, 0x12, 0x52, 0x12, 0x52, 0x12, 0x52, 0x12, 0x06, 0x01, 0x10, 0x41, 0x10, 0x37, 0xFC, 0x11, 0x10, 0x01, 0x50, 0x00, 0x44, 0xEF, 0xFE, 0x20, 0x80, 0x21, 0x08, 0x23, 0xFC, 0x2D, 0x08, 0x21, 0x08, 0x29, 0x08, 0x31, 0x08, 0x21, 0xF8, 0x01, 0x08, 0x00, 0x20, 0x08, 0xB0, 0x7F, 0x28, 0x49, 0x20, 0x49, 0x24, 0x4F, 0xFE, 0x49, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49, 0xD4, 0x4F, 0x18, 0x49, 0x10, 0x79, 0x30, 0x41, 0x4A, 0x05, 0x8A, 0x02, 0x06, 0x04, 0x40, 0x7E, 0x40, 0x40, 0x40, 0x42, 0x7E, 0x62, 0x82, 0x55, 0x24, 0x54, 0x20, 0x48, 0x20, 0x54, 0x20, 0x52, 0x20, 0x62, 0x50, 0x40, 0x50, 0x44, 0x88, 0x7E, 0x8E, 0x01, 0x04, 0x02, 0x00, 0x04, 0x10, 0x7E, 0x24, 0x40, 0xFE, 0x42, 0x84, 0x62, 0xA4, 0x54, 0x84, 0x54, 0x94, 0x48, 0x88, 0x54, 0x80, 0x52, 0xFE, 0x62, 0x02, 0x40, 0x12, 0x45, 0xFA, 0x7E, 0x02, 0x00, 0x14, 0x00, 0x08, 0x04, 0x08, 0x7E, 0xFC, 0x40, 0x88, 0x42, 0x88, 0x62, 0x88, 0x54, 0x88, 0x55, 0x06, 0x48, 0x00, 0x55, 0xFC, 0x52, 0x04, 0x62, 0x88, 0x40, 0x50, 0x44, 0x20, 0x7E, 0x50, 0x00, 0x8E, 0x03, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x14, 0x40, 0x11, 0xFC, 0x7D, 0x24, 0x11, 0xFC, 0x7D, 0x24, 0x11, 0xFC, 0xFC, 0x20, 0x13, 0xFE, 0x3A, 0x22, 0x56, 0x2A, 0x92, 0xFA, 0x12, 0x0A, 0x12, 0x04, 0x00, 0x08, 0x0B, 0xFC, 0x7E, 0x00, 0x4B, 0x08, 0x4A, 0x88, 0x4A, 0x50, 0x4A, 0x50, 0x4A, 0x20, 0x4A, 0x20, 0x4A, 0x50, 0x4A, 0x50, 0x4A, 0x88, 0x7B, 0x08, 0x4A, 0x04, 0x03, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x14, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x64, 0x44, 0xA4, 0x44, 0x27, 0xFC, 0x20, 0x40, 0x2F, 0xFE, 0x28, 0x42, 0x28, 0x4A, 0x2B, 0xFA, 0x28, 0x02, 0x28, 0x0A, 0x28, 0x04, 0x00, 0x08, 0x43, 0xFC, 0x32, 0x00, 0x13, 0x08, 0x82, 0x88, 0x62, 0x50, 0x22, 0x50, 0x0A, 0x20, 0x12, 0x20, 0x22, 0x50, 0xE2, 0x50, 0x22, 0x88, 0x23, 0x08, 0x22, 0x04, 0x23, 0xFE, 0x20, 0x00, 0x02, 0x10, 0x12, 0x10, 0x7A, 0x24, 0x5F, 0xFE, 0x52, 0x44, 0x52, 0x44, 0x52, 0x44, 0x52, 0xC4, 0x53, 0x7C, 0x5E, 0x44, 0x52, 0x44, 0x72, 0x44, 0x52, 0x44, 0x02, 0x44, 0x0A, 0x7C, 0x04, 0x44, 0x04, 0x10, 0x7E, 0x90, 0x44, 0x90, 0x44, 0x90, 0x44, 0x90, 0x7C, 0x90, 0x10, 0x90, 0x10, 0x90, 0x5C, 0x90, 0x51, 0x10, 0x51, 0x10, 0x51, 0x10, 0x5E, 0x08, 0xE2, 0x0E, 0x44, 0x04, 0x08, 0x00, 0x07, 0x00, 0x78, 0x04, 0x55, 0xFE, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x00, 0x55, 0x02, 0x55, 0x02, 0x52, 0xFE, 0x52, 0x00, 0x51, 0x06, 0x90, 0xFC, 0x10, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x44, 0x7D, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x55, 0x04, 0x55, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x55, 0x04, 0x55, 0x04, 0x5D, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x20, 0x10, 0x20, 0x10, 0x44, 0x11, 0xFE, 0x59, 0x04, 0x55, 0x04, 0x51, 0x04, 0x91, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x04, 0x08, 0x7E, 0xFC, 0x08, 0x20, 0x3E, 0xF8, 0x08, 0x20, 0x7E, 0xFC, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x02, 0x20, 0x02, 0x1F, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x44, 0x11, 0xFE, 0xFD, 0x04, 0x11, 0x04, 0x15, 0x04, 0x19, 0x04, 0x31, 0xFC, 0xD1, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x51, 0xFC, 0x21, 0x04, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA4, 0x17, 0xBE, 0xFC, 0xA0, 0x10, 0xA0, 0x14, 0xA8, 0x1B, 0xBC, 0x30, 0xA0, 0xD0, 0xA0, 0x10, 0xA4, 0x1F, 0xBE, 0x10, 0xA0, 0x10, 0xA0, 0x50, 0xA0, 0x20, 0xA0, 0x08, 0x40, 0x48, 0x84, 0x49, 0xFE, 0x49, 0x24, 0x49, 0x24, 0x7D, 0xFC, 0x41, 0x24, 0x41, 0x44, 0x79, 0xFC, 0x48, 0xA0, 0x49, 0x24, 0x4F, 0xFE, 0x48, 0x20, 0x48, 0x20, 0x88, 0x20, 0x08, 0x20, 0x08, 0xA0, 0x08, 0xA0, 0x10, 0xA4, 0x2F, 0xBE, 0x40, 0xA0, 0x88, 0xA0, 0x08, 0xA8, 0x17, 0xBC, 0x30, 0xA0, 0x50, 0xA0, 0x90, 0xA4, 0x1F, 0xBE, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x40, 0x88, 0x3F, 0x7C, 0x12, 0x10, 0x02, 0x10, 0x82, 0x7C, 0x6F, 0x90, 0x22, 0x10, 0x0A, 0x7C, 0x12, 0x10, 0x22, 0x10, 0xEF, 0x94, 0x22, 0xFE, 0x22, 0x10, 0x24, 0x10, 0x24, 0x10, 0x28, 0x10, 0x40, 0x1C, 0x37, 0xE0, 0x14, 0x08, 0x04, 0x3C, 0x85, 0xC0, 0x65, 0x40, 0x25, 0x40, 0x0D, 0x24, 0x15, 0x2C, 0x25, 0x30, 0xE5, 0x20, 0x25, 0x10, 0x25, 0x10, 0x29, 0x4E, 0x29, 0x84, 0x11, 0x00, 0x22, 0x88, 0x21, 0x08, 0xFA, 0xBE, 0x22, 0x88, 0x71, 0x1C, 0xAA, 0xAA, 0x22, 0x08, 0xFF, 0xFE, 0x04, 0x40, 0x0F, 0xE0, 0x31, 0x18, 0xCF, 0xE6, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x03, 0x00, 0x00, 0x3C, 0x47, 0xC0, 0x32, 0x48, 0x11, 0x50, 0x8F, 0xFE, 0x61, 0x50, 0x22, 0x48, 0x0C, 0x44, 0x17, 0xFE, 0x24, 0x44, 0xE4, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x02, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x12, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x12, 0x10, 0x21, 0x50, 0x40, 0x20, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x78, 0x3E, 0x48, 0x22, 0x48, 0x2A, 0x86, 0xFF, 0x78, 0x22, 0x48, 0x2A, 0x30, 0x22, 0x4E, 0x46, 0x84, 0xFF, 0xFE, 0x04, 0x10, 0x0F, 0xF8, 0x18, 0x10, 0x68, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x00, 0x20, 0x08, 0xA0, 0x7C, 0xA0, 0x49, 0x10, 0x49, 0x10, 0x7A, 0x08, 0x4A, 0x0E, 0x4D, 0xF4, 0x48, 0x90, 0x78, 0x90, 0x48, 0x90, 0x48, 0x90, 0x49, 0x10, 0x79, 0x10, 0x42, 0x50, 0x04, 0x20, 0x00, 0x20, 0x04, 0x20, 0x7F, 0x24, 0x54, 0xA8, 0x54, 0xA8, 0x54, 0x20, 0x55, 0xFC, 0x7C, 0x20, 0x54, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x54, 0x20, 0x7C, 0x20, 0x44, 0x20, 0x00, 0x20, 0x00, 0x20, 0x04, 0x04, 0x44, 0x44, 0x34, 0xC4, 0x15, 0x24, 0x04, 0x24, 0x7F, 0xA4, 0x04, 0x24, 0x04, 0x24, 0x05, 0x24, 0xFF, 0xA4, 0x04, 0x24, 0x08, 0x24, 0x08, 0x04, 0x10, 0x04, 0x20, 0x14, 0x00, 0x08, 0x10, 0x08, 0x10, 0x1C, 0x93, 0xE0, 0x55, 0x00, 0x39, 0x00, 0x11, 0x00, 0x7D, 0xF8, 0x11, 0x08, 0x11, 0x88, 0xFD, 0x48, 0x11, 0x50, 0x11, 0x20, 0x22, 0x50, 0x22, 0x48, 0x44, 0x8E, 0x89, 0x04, 0x00, 0x30, 0x0F, 0xC0, 0x08, 0x00, 0x08, 0x00, 0x08, 0x10, 0x0F, 0xF8, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x00, 0x30, 0x00, 0x18, 0x00, 0x08, 0x02, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x42, 0x00, 0x42, 0x40, 0x42, 0x28, 0x7F, 0xFC, 0x42, 0x80, 0x42, 0x80, 0x44, 0x88, 0x44, 0x90, 0x44, 0xA0, 0x48, 0xC2, 0x4B, 0x82, 0x90, 0x82, 0x20, 0x7E, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x04, 0x40, 0x7F, 0xFE, 0x42, 0x02, 0x81, 0x04, 0x7F, 0xFC, 0x04, 0x00, 0x07, 0xF0, 0x04, 0x10, 0x08, 0x10, 0x08, 0x10, 0x10, 0xA0, 0x60, 0x40, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0xFC, 0x88, 0x10, 0x50, 0x7F, 0xFE, 0x12, 0x42, 0xFC, 0x24, 0x13, 0xFE, 0x38, 0x80, 0x34, 0xF8, 0x50, 0x88, 0x90, 0x88, 0x11, 0x08, 0x12, 0x28, 0x14, 0x10, 0x00, 0x40, 0x78, 0x40, 0x4C, 0x44, 0x4A, 0x48, 0x49, 0x50, 0x78, 0x40, 0x4F, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x78, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x98, 0x40, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0x12, 0x24, 0xFE, 0x7E, 0x17, 0xA4, 0x12, 0xA4, 0x1A, 0xA4, 0x32, 0xA4, 0xD2, 0xA4, 0x12, 0xA4, 0x12, 0xD4, 0x12, 0x8A, 0x12, 0x82, 0x54, 0x7E, 0x28, 0x00, 0x00, 0x80, 0x08, 0x84, 0x7C, 0xFE, 0x49, 0x04, 0x49, 0x24, 0x4B, 0xF4, 0x4D, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0xE4, 0x49, 0x14, 0x79, 0x08, 0x49, 0x02, 0x01, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x11, 0x04, 0x1F, 0xA4, 0x21, 0x24, 0x21, 0x24, 0x7D, 0x24, 0xA5, 0x24, 0x25, 0x24, 0x25, 0x24, 0x3D, 0x24, 0x25, 0x24, 0x22, 0x24, 0x20, 0x84, 0x20, 0x84, 0x1F, 0x94, 0x00, 0x08, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0x15, 0x04, 0x59, 0x24, 0x53, 0xF4, 0x55, 0x24, 0x91, 0x24, 0x11, 0x24, 0x11, 0xE4, 0x11, 0x14, 0x29, 0x08, 0x25, 0x02, 0x45, 0x02, 0x80, 0xFE, 0x00, 0x00, 0x20, 0x80, 0x10, 0x84, 0x10, 0xFE, 0x01, 0x04, 0xF9, 0x24, 0x0B, 0xF4, 0x11, 0x24, 0x35, 0x24, 0x59, 0x24, 0x95, 0xE4, 0x11, 0x14, 0x11, 0x08, 0x11, 0x02, 0x11, 0x02, 0x10, 0xFE, 0x10, 0x00, 0x04, 0x80, 0x7E, 0x84, 0x44, 0xFE, 0x45, 0x04, 0x45, 0x24, 0x7F, 0xF4, 0x15, 0x24, 0x11, 0x24, 0x5D, 0x24, 0x51, 0xE4, 0x51, 0x14, 0x51, 0x08, 0x5D, 0x02, 0xE1, 0x02, 0x40, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x41, 0x04, 0x31, 0xFE, 0x12, 0x04, 0x82, 0x24, 0x67, 0xF4, 0x2A, 0x24, 0x02, 0x24, 0x0A, 0x24, 0x13, 0xE4, 0xE2, 0x14, 0x22, 0x08, 0x22, 0x02, 0x22, 0x02, 0x21, 0xFE, 0x20, 0x00, 0x00, 0x08, 0x07, 0xFC, 0x78, 0x20, 0x48, 0x20, 0x48, 0x40, 0x48, 0xC0, 0x48, 0xC0, 0x49, 0x50, 0x49, 0x4C, 0x4A, 0x46, 0x4C, 0x42, 0x78, 0x40, 0x48, 0x40, 0x00, 0x44, 0x0F, 0xFE, 0x00, 0x00, 0x08, 0x08, 0x7F, 0xFC, 0x48, 0x20, 0x48, 0x20, 0x48, 0x40, 0x78, 0xC0, 0x48, 0xC0, 0x49, 0x50, 0x49, 0x4C, 0x7A, 0x46, 0x4C, 0x42, 0x48, 0x40, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x98, 0x00, 0x20, 0x80, 0x20, 0x48, 0x27, 0xFC, 0x20, 0x00, 0x21, 0x10, 0xF8, 0xA0, 0x20, 0x04, 0x2F, 0xFE, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x22, 0x08, 0x3A, 0x08, 0xE2, 0x08, 0x43, 0xF8, 0x02, 0x08, 0x02, 0x80, 0x02, 0x88, 0x7E, 0xFC, 0x02, 0x80, 0x3E, 0xF8, 0x02, 0x80, 0x7E, 0xFC, 0x02, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x88, 0x0C, 0x50, 0x35, 0x30, 0xC6, 0x0E, 0x04, 0x04, 0x00, 0x40, 0x7C, 0x20, 0x45, 0xFC, 0x54, 0x00, 0x54, 0x88, 0x54, 0x50, 0x54, 0x04, 0x57, 0xFE, 0x54, 0x04, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x11, 0x04, 0x29, 0x04, 0x45, 0xFC, 0x81, 0x04, 0x00, 0x80, 0x78, 0x48, 0x4F, 0xFC, 0x50, 0x00, 0x51, 0x10, 0x50, 0xA0, 0x60, 0x04, 0x57, 0xFE, 0x48, 0x08, 0x4B, 0xFC, 0x6A, 0x08, 0x52, 0x08, 0x42, 0x08, 0x42, 0x08, 0x43, 0xF8, 0x42, 0x08, 0x01, 0x04, 0xFF, 0xFE, 0x14, 0x04, 0x14, 0x04, 0x7F, 0x04, 0x55, 0x04, 0x55, 0x7C, 0x55, 0x44, 0x55, 0x40, 0x63, 0x40, 0x41, 0x40, 0x7F, 0x40, 0x41, 0x42, 0x41, 0x42, 0x7F, 0x3E, 0x41, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x28, 0x08, 0x2F, 0xF8, 0x68, 0x88, 0xA8, 0xA8, 0x2B, 0xF8, 0x2A, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, 0x2A, 0xEA, 0x28, 0x8A, 0x30, 0x86, 0x20, 0x80, 0x00, 0x40, 0x40, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x80, 0x40, 0x60, 0x44, 0x27, 0xFE, 0x0C, 0x44, 0x14, 0x44, 0x24, 0x44, 0xE4, 0x44, 0x24, 0x54, 0x24, 0x48, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x48, 0x0B, 0xFC, 0x7C, 0x40, 0x49, 0x14, 0x4F, 0xFE, 0x49, 0x10, 0x48, 0x08, 0x4B, 0xFC, 0x4A, 0x08, 0x4A, 0x48, 0x4A, 0x48, 0x7A, 0x48, 0x4A, 0x48, 0x00, 0x90, 0x01, 0x0C, 0x06, 0x04, 0x00, 0x80, 0x04, 0x80, 0x08, 0x40, 0x10, 0x20, 0x2F, 0xD0, 0xC4, 0x4E, 0x04, 0x44, 0x09, 0x40, 0x30, 0x80, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x08, 0xFF, 0xFC, 0x10, 0x20, 0x10, 0x20, 0x21, 0x24, 0x24, 0xA8, 0x3E, 0x20, 0x64, 0x24, 0xA7, 0xFE, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x20, 0x00, 0x20, 0x10, 0x08, 0x11, 0xFC, 0x10, 0x20, 0x10, 0x20, 0xFD, 0x24, 0x10, 0xA8, 0x14, 0x20, 0x18, 0x24, 0x33, 0xFE, 0xD0, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x50, 0x20, 0x20, 0x20, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x40, 0x01, 0x80, 0x05, 0x00, 0x03, 0x00, 0x48, 0x48, 0x44, 0x24, 0x84, 0x24, 0x41, 0x00, 0x21, 0x42, 0x2F, 0xE6, 0x01, 0x08, 0x87, 0xD0, 0x60, 0x02, 0x27, 0xC6, 0x0C, 0x48, 0x14, 0x50, 0x27, 0xC0, 0xE0, 0x02, 0x24, 0x46, 0x22, 0x88, 0x20, 0xF0, 0x2F, 0x20, 0x00, 0x40, 0x08, 0x04, 0x09, 0x0C, 0xFF, 0x90, 0x08, 0x20, 0x7F, 0x40, 0x00, 0x04, 0x7F, 0x0C, 0x41, 0x10, 0x41, 0x20, 0x7F, 0x42, 0x00, 0x06, 0x22, 0x08, 0x14, 0x10, 0x0F, 0x20, 0xF0, 0x40, 0x40, 0x80, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x41, 0xF8, 0x33, 0x10, 0x14, 0xE0, 0x01, 0x18, 0xF6, 0x46, 0x1B, 0xF8, 0x10, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x28, 0x46, 0x47, 0xFC, 0x20, 0x04, 0x27, 0xBE, 0x24, 0xA4, 0x24, 0xA4, 0xFC, 0xA4, 0x27, 0xBC, 0x64, 0xA4, 0x74, 0xA4, 0xAC, 0xA4, 0x27, 0xBC, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x25, 0xA4, 0x28, 0x4C, 0x10, 0x04, 0xFF, 0xBE, 0x24, 0xA4, 0x24, 0xA4, 0x44, 0xA4, 0x47, 0xBC, 0x74, 0xA4, 0xD4, 0xA4, 0x54, 0xA4, 0x57, 0xBC, 0x54, 0xA4, 0x54, 0xA4, 0x54, 0xA4, 0x74, 0xA4, 0x45, 0xA4, 0x08, 0x4C, 0x10, 0x40, 0x3E, 0xFC, 0x49, 0x20, 0x81, 0xF8, 0x43, 0x10, 0x24, 0xE0, 0x01, 0x18, 0xF6, 0x46, 0x1B, 0xF8, 0x10, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x28, 0x46, 0x47, 0xFC, 0x00, 0x80, 0x78, 0xA2, 0x4F, 0xF2, 0x48, 0x84, 0x4B, 0xE8, 0x78, 0x12, 0x4B, 0xE2, 0x4A, 0x24, 0x4A, 0x28, 0x7B, 0xF0, 0x48, 0x02, 0x4A, 0x22, 0x49, 0x44, 0x4F, 0xE8, 0x48, 0x10, 0x98, 0x60, 0x02, 0x04, 0x3F, 0x7E, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x3E, 0x7C, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x3E, 0x7C, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x4A, 0x84, 0x44, 0x94, 0x81, 0x08, 0x00, 0x10, 0x77, 0x24, 0x55, 0x7E, 0x55, 0x44, 0x55, 0x54, 0x77, 0x44, 0x55, 0x54, 0x55, 0x48, 0x55, 0x40, 0x77, 0x7E, 0x55, 0x02, 0x55, 0x0A, 0x55, 0xFE, 0x55, 0x02, 0x8B, 0x0A, 0x00, 0x04, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0xFC, 0x40, 0x13, 0xF8, 0x10, 0x80, 0x17, 0xFE, 0x18, 0xA0, 0x31, 0x50, 0xD2, 0x4E, 0x1D, 0xF4, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x50, 0x40, 0x20, 0x40, 0x01, 0x08, 0x08, 0x88, 0xFC, 0x90, 0x20, 0x08, 0x23, 0xFC, 0x40, 0x90, 0x48, 0x90, 0x7C, 0x92, 0xCA, 0x96, 0x4A, 0x94, 0x4A, 0x98, 0x48, 0x90, 0x48, 0x90, 0x78, 0x94, 0x47, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x10, 0x10, 0x10, 0xFC, 0x20, 0x10, 0x20, 0x10, 0x68, 0x10, 0xA4, 0x11, 0x22, 0x12, 0x22, 0x1C, 0x20, 0xF0, 0x20, 0x40, 0x24, 0x07, 0xFE, 0x00, 0x00, 0x00, 0x10, 0x05, 0x10, 0xFF, 0x10, 0x11, 0x10, 0x11, 0x12, 0x21, 0x16, 0x25, 0xD8, 0x3F, 0x10, 0x65, 0x10, 0xA5, 0x10, 0x25, 0x10, 0x25, 0x10, 0x25, 0x12, 0x3D, 0x52, 0x25, 0x8E, 0x00, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x3E, 0x20, 0x23, 0xFC, 0x22, 0x88, 0x3E, 0x50, 0x21, 0xFE, 0x3E, 0x20, 0x62, 0xFC, 0xA2, 0x20, 0x3E, 0x20, 0x20, 0x20, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0xFE, 0x24, 0x12, 0x2C, 0x13, 0xB0, 0x1A, 0x20, 0x32, 0x20, 0xD2, 0x20, 0x12, 0x20, 0x12, 0x20, 0x12, 0xA4, 0x13, 0x24, 0x52, 0x1C, 0x20, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x13, 0xFE, 0xFE, 0x22, 0x12, 0x24, 0x16, 0x20, 0x1B, 0xF8, 0x32, 0x88, 0xD2, 0x88, 0x12, 0x50, 0x12, 0x20, 0x12, 0x50, 0x14, 0x48, 0x54, 0x8E, 0x29, 0x04, 0x00, 0x40, 0x3E, 0x20, 0x23, 0xFC, 0x22, 0x88, 0x3E, 0x50, 0x21, 0xFE, 0x3E, 0x20, 0x62, 0xF8, 0xA2, 0x20, 0x3E, 0x20, 0x00, 0x08, 0x7F, 0xFC, 0x04, 0x08, 0x04, 0x08, 0x08, 0x50, 0x30, 0x20, 0x04, 0x08, 0x7E, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x3E, 0xF8, 0x08, 0x20, 0x08, 0x28, 0x7E, 0xFC, 0x00, 0x00, 0x20, 0x80, 0x24, 0x98, 0x3E, 0xE0, 0x20, 0x80, 0x20, 0x82, 0x2E, 0x82, 0x30, 0x7E, 0x00, 0x10, 0x05, 0x10, 0x7F, 0x10, 0x55, 0x10, 0x55, 0x10, 0x55, 0x12, 0x55, 0xDC, 0x7D, 0x10, 0x55, 0x10, 0x55, 0x10, 0x55, 0x10, 0x55, 0x10, 0x7D, 0x52, 0x45, 0x92, 0x01, 0x0E, 0x00, 0x00, 0x00, 0x40, 0x08, 0x88, 0x7F, 0xFC, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x4A, 0x88, 0x4B, 0xF8, 0x48, 0x80, 0x49, 0x44, 0x4F, 0xFE, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x00, 0x40, 0x04, 0x20, 0x3E, 0x44, 0x25, 0xFE, 0x25, 0x24, 0x25, 0x24, 0x3D, 0xFC, 0x25, 0x24, 0x25, 0x44, 0x25, 0xFC, 0x3C, 0x40, 0x24, 0xA4, 0x27, 0xFE, 0x24, 0x20, 0x24, 0x20, 0x54, 0x20, 0x88, 0x20, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x90, 0x40, 0x50, 0x40, 0x57, 0xFC, 0x14, 0x44, 0x14, 0x40, 0x37, 0xF8, 0x54, 0x08, 0xD5, 0x10, 0x14, 0xA0, 0x24, 0x40, 0x24, 0xB0, 0x49, 0x0E, 0x12, 0x04, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x3F, 0xFC, 0x20, 0x84, 0x20, 0x88, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x08, 0x24, 0x10, 0x22, 0x20, 0x21, 0x40, 0x20, 0x80, 0x41, 0x60, 0x46, 0x1E, 0x98, 0x04, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x44, 0x40, 0x44, 0x40, 0x44, 0x40, 0x44, 0x40, 0x44, 0x40, 0x44, 0x40, 0x44, 0x44, 0x44, 0x44, 0x48, 0x3C, 0x50, 0x00, 0x40, 0x04, 0x7F, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x90, 0x08, 0x57, 0xFC, 0x50, 0x20, 0x10, 0x40, 0x10, 0xD8, 0x31, 0x46, 0x56, 0x42, 0xDB, 0xF8, 0x12, 0x08, 0x22, 0x08, 0x22, 0x08, 0x43, 0xF8, 0x02, 0x08, 0x10, 0x20, 0x10, 0x10, 0x1F, 0x14, 0x29, 0xFE, 0x29, 0x44, 0x69, 0x28, 0xAF, 0x10, 0x28, 0xFE, 0x28, 0x10, 0x2F, 0x10, 0x29, 0xFE, 0x39, 0x10, 0x29, 0x10, 0x2F, 0x10, 0x28, 0x10, 0x20, 0x10, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x48, 0x28, 0x40, 0x28, 0x40, 0x2A, 0x4C, 0x2F, 0x70, 0x28, 0x40, 0x28, 0x40, 0x29, 0x42, 0x4E, 0x42, 0x48, 0x3E, 0x80, 0x00, 0x3F, 0x10, 0x21, 0x7C, 0x3F, 0x28, 0x20, 0xFE, 0x7F, 0x10, 0xA1, 0x7C, 0x3F, 0x10, 0x21, 0x14, 0x7F, 0xFE, 0x00, 0x00, 0x3F, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x80, 0x80, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x04, 0x3F, 0xFE, 0x32, 0x24, 0x52, 0x24, 0x5F, 0xFC, 0x52, 0x24, 0x92, 0x34, 0x10, 0x08, 0x10, 0x80, 0x10, 0x44, 0x17, 0xFE, 0x24, 0x04, 0x24, 0x04, 0x67, 0xFC, 0xA4, 0x00, 0x24, 0x04, 0x27, 0xFE, 0x26, 0x94, 0x2A, 0x94, 0x2B, 0xFC, 0x2A, 0x94, 0x32, 0x94, 0x22, 0x94, 0x22, 0x0C, 0x00, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x20, 0x00, 0x20, 0x00, 0x3F, 0xC0, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x40, 0x40, 0x80, 0x40, 0x10, 0x40, 0xF8, 0x28, 0x13, 0xFC, 0x52, 0x08, 0x52, 0x08, 0x53, 0xF8, 0x52, 0x00, 0x52, 0x04, 0x7B, 0xFE, 0x0A, 0x94, 0x0A, 0x94, 0x3B, 0xFC, 0xCE, 0x94, 0x0A, 0x94, 0x2A, 0x94, 0x12, 0x0C, 0x04, 0x08, 0xFE, 0xFC, 0x28, 0x88, 0xFE, 0x88, 0xAA, 0x88, 0xAA, 0xD8, 0xFE, 0xD8, 0x00, 0xA8, 0x7C, 0xA8, 0x00, 0xD8, 0xFE, 0xD8, 0x10, 0x88, 0x58, 0x8A, 0x55, 0x0A, 0x92, 0x06, 0x34, 0x00, 0x40, 0x04, 0x3F, 0xFE, 0x10, 0xA0, 0x07, 0xFC, 0x84, 0xA4, 0x64, 0xA4, 0x27, 0xFC, 0x08, 0x00, 0x13, 0xF8, 0x20, 0x00, 0xEF, 0xFE, 0x20, 0x40, 0x22, 0x50, 0x24, 0x4C, 0x29, 0x44, 0x20, 0x80, 0x04, 0x04, 0xFE, 0xF8, 0x28, 0x80, 0xFE, 0xA8, 0xAA, 0xA8, 0xAA, 0xA8, 0xFE, 0xA8, 0x00, 0xA8, 0x7C, 0xA8, 0x00, 0xA8, 0xFE, 0xA8, 0x10, 0xA4, 0x59, 0x24, 0x55, 0x52, 0x92, 0x78, 0x30, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x11, 0x20, 0x21, 0x18, 0x45, 0x08, 0x02, 0x00, 0x22, 0x10, 0x22, 0x10, 0x2A, 0x90, 0x27, 0x24, 0xF2, 0x3E, 0x2F, 0xC4, 0x2A, 0xA4, 0x2A, 0xA4, 0x3A, 0xA8, 0xEF, 0xA8, 0x2E, 0x90, 0x2A, 0x90, 0x2A, 0xA8, 0x29, 0xA8, 0xA8, 0x46, 0x40, 0x84, 0x08, 0x20, 0x49, 0x20, 0x2A, 0x7E, 0x7F, 0xC4, 0x49, 0x28, 0x5D, 0x10, 0x6B, 0x2E, 0x49, 0x44, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x12, 0x08, 0x11, 0x18, 0x10, 0xA0, 0x13, 0xFC, 0xFD, 0x10, 0x11, 0x10, 0x15, 0x10, 0x19, 0x14, 0x37, 0xFE, 0xD1, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x52, 0x10, 0x24, 0x10, 0x10, 0x04, 0x13, 0xFE, 0x54, 0x20, 0x5E, 0x44, 0x51, 0xFE, 0x55, 0x04, 0xFF, 0x24, 0x11, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x95, 0x24, 0x08, 0x20, 0x10, 0x50, 0x20, 0x8C, 0x43, 0x04, 0x00, 0x40, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xD0, 0x24, 0x4E, 0xC4, 0x44, 0x09, 0x40, 0x30, 0x90, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x02, 0x04, 0x7F, 0xFE, 0x42, 0x84, 0x42, 0x84, 0x42, 0x84, 0x42, 0x84, 0x42, 0x84, 0x7E, 0xFC, 0x42, 0x84, 0x08, 0x40, 0xFC, 0x48, 0x4B, 0xFC, 0x4A, 0x48, 0x7B, 0xF8, 0x4A, 0x48, 0x4B, 0xF8, 0x78, 0x00, 0x4F, 0xFE, 0x48, 0x80, 0x5C, 0x80, 0xE9, 0xF8, 0x48, 0x08, 0x08, 0x08, 0x08, 0x50, 0x08, 0x20, 0x00, 0x30, 0x0F, 0xC0, 0x08, 0x00, 0x08, 0x00, 0x08, 0x08, 0x0F, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x12, 0x48, 0xFD, 0x48, 0x11, 0x50, 0x11, 0x50, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x1C, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x00, 0x40, 0x00, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x20, 0x08, 0x17, 0xFC, 0x80, 0x40, 0x4A, 0x48, 0x11, 0x50, 0x20, 0x44, 0xEF, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x11, 0x10, 0x11, 0x10, 0x09, 0x20, 0x09, 0x20, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x30, 0x0B, 0xC0, 0x10, 0x40, 0x10, 0x48, 0x37, 0xFC, 0x50, 0x40, 0x90, 0x50, 0x13, 0xF8, 0x10, 0x20, 0x07, 0xF0, 0x04, 0x20, 0x04, 0x20, 0x04, 0x22, 0x04, 0x22, 0x08, 0x1E, 0x30, 0x00, 0x42, 0x04, 0x25, 0xFE, 0x28, 0x80, 0xFE, 0x88, 0x24, 0xFC, 0x24, 0x88, 0x24, 0x88, 0x24, 0xC8, 0xFF, 0xA8, 0x24, 0xA8, 0x24, 0x88, 0x25, 0x08, 0x25, 0x28, 0x45, 0xCA, 0x85, 0x0A, 0x04, 0x06, 0x00, 0x08, 0x47, 0xFC, 0x30, 0x40, 0x10, 0x40, 0x04, 0x44, 0x03, 0x4C, 0xF1, 0x50, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x14, 0x40, 0x18, 0x40, 0x10, 0x40, 0x00, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x22, 0x20, 0x21, 0x48, 0x2F, 0xFC, 0x22, 0x20, 0x22, 0x24, 0x3F, 0xFE, 0x22, 0x20, 0x22, 0x20, 0x42, 0x20, 0x84, 0x20, 0x08, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x13, 0xFE, 0xFE, 0x22, 0x12, 0x24, 0x12, 0x20, 0x13, 0xFC, 0x12, 0x84, 0x12, 0x88, 0x1E, 0x48, 0xE2, 0x50, 0x42, 0x20, 0x04, 0x50, 0x08, 0x8E, 0x13, 0x04, 0x00, 0x40, 0x42, 0x50, 0x32, 0x48, 0x14, 0x40, 0x87, 0xFE, 0x60, 0x80, 0x20, 0x80, 0x09, 0xF8, 0x11, 0x08, 0x23, 0x10, 0xE2, 0x90, 0x24, 0xA0, 0x28, 0x40, 0x20, 0xB0, 0x21, 0x0E, 0x26, 0x04, 0x08, 0x04, 0x09, 0xFE, 0x08, 0x20, 0x7F, 0x44, 0x49, 0xFE, 0x4A, 0x84, 0x48, 0x94, 0x7E, 0x94, 0x42, 0x94, 0x54, 0xA4, 0x54, 0xA4, 0x48, 0xA4, 0x54, 0x20, 0x52, 0x50, 0xA2, 0x8C, 0x01, 0x04, 0x20, 0x20, 0x1B, 0xFE, 0x4A, 0x22, 0x22, 0x24, 0x03, 0xF8, 0x12, 0x88, 0x22, 0x50, 0x64, 0x20, 0x28, 0x50, 0x22, 0x8C, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x0C, 0x60, 0x30, 0x10, 0x00, 0x20, 0x08, 0x20, 0xFC, 0x20, 0x13, 0xFE, 0x12, 0x22, 0x22, 0x24, 0x22, 0x20, 0x7B, 0xFC, 0xAA, 0x84, 0x2A, 0x88, 0x2A, 0x48, 0x2A, 0x50, 0x3C, 0x20, 0x24, 0x50, 0x08, 0x8E, 0x13, 0x04, 0x00, 0x40, 0x10, 0x88, 0x23, 0xFC, 0x7A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x7A, 0x88, 0x4B, 0xF8, 0x48, 0x80, 0x48, 0xD0, 0x49, 0x54, 0x79, 0x7C, 0x42, 0x42, 0x04, 0x42, 0x08, 0x3E, 0x00, 0x40, 0x40, 0x88, 0x33, 0xFC, 0x12, 0x08, 0x02, 0x08, 0x02, 0x08, 0xF3, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x00, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x54, 0x44, 0x39, 0xFE, 0x11, 0x04, 0xFF, 0x04, 0x11, 0x04, 0x31, 0x04, 0x39, 0xFC, 0x55, 0x04, 0x51, 0x04, 0x91, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x08, 0x04, 0x04, 0x04, 0x7F, 0x84, 0x21, 0x24, 0x11, 0x24, 0x12, 0x24, 0xFF, 0xE4, 0x01, 0x24, 0x3F, 0xA4, 0x21, 0x24, 0x21, 0x24, 0x21, 0x24, 0x21, 0x04, 0x3F, 0x04, 0x21, 0x14, 0x00, 0x08, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x0A, 0x40, 0x7F, 0x40, 0x08, 0x50, 0x0A, 0x4C, 0x0C, 0x46, 0x18, 0x42, 0x68, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x28, 0x40, 0x10, 0x40, 0x10, 0x20, 0x10, 0x28, 0x1C, 0x24, 0x23, 0xFE, 0x20, 0x20, 0x7D, 0xFC, 0x91, 0x24, 0x11, 0x24, 0x7D, 0xFC, 0x11, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x15, 0x24, 0x19, 0x24, 0x11, 0x34, 0x01, 0x28, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x80, 0x08, 0x80, 0x10, 0xA0, 0x30, 0x98, 0x50, 0x8C, 0x90, 0x84, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x05, 0x50, 0x01, 0x08, 0xFF, 0xFE, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x1F, 0xFC, 0x21, 0x44, 0x7F, 0xFC, 0x81, 0x04, 0x1F, 0xF4, 0x11, 0x14, 0x1F, 0xF4, 0x11, 0x14, 0x1F, 0xF4, 0x11, 0x14, 0x11, 0x34, 0x11, 0x0C, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x50, 0x40, 0x48, 0x2F, 0xFE, 0x00, 0x44, 0x87, 0xFE, 0x54, 0x44, 0x17, 0xFC, 0x24, 0x44, 0xE7, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x24, 0x54, 0x24, 0x48, 0x20, 0x40, 0x20, 0x50, 0x20, 0x48, 0x2F, 0xFE, 0xF8, 0x40, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x3C, 0x44, 0xE7, 0xFC, 0x44, 0x44, 0x04, 0x44, 0x04, 0x54, 0x04, 0x48, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x14, 0x40, 0xFE, 0x40, 0x10, 0x60, 0x30, 0x58, 0x38, 0x4C, 0x54, 0x44, 0x54, 0x40, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x00, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x44, 0x5F, 0xF4, 0x41, 0x04, 0x4F, 0xE4, 0x49, 0x24, 0x4F, 0xE4, 0x49, 0x24, 0x4F, 0xE4, 0x49, 0x24, 0x49, 0x64, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x08, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x24, 0x48, 0x14, 0x50, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x40, 0x40, 0x50, 0x30, 0x48, 0x1F, 0xFE, 0x80, 0x40, 0x67, 0xFC, 0x24, 0x44, 0x04, 0x44, 0x17, 0xFC, 0x24, 0x44, 0xE4, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x24, 0x54, 0x24, 0x48, 0x01, 0x10, 0x40, 0xA0, 0x27, 0xFC, 0x20, 0xA0, 0x02, 0xA8, 0x01, 0xB0, 0xEF, 0xFE, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x2A, 0x08, 0x32, 0x08, 0x23, 0xF8, 0x02, 0x08, 0x03, 0xF8, 0x0A, 0x08, 0x7F, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x49, 0x10, 0x7B, 0xF8, 0x49, 0x10, 0x4F, 0xFE, 0x49, 0x10, 0x4A, 0x48, 0x7D, 0x56, 0x48, 0xE0, 0x01, 0x58, 0x02, 0x48, 0x00, 0xC0, 0x03, 0xF8, 0x42, 0x08, 0x33, 0xF8, 0x12, 0x08, 0x83, 0xF8, 0x61, 0x10, 0x27, 0xFC, 0x01, 0x10, 0x1F, 0xFE, 0x21, 0x10, 0xE2, 0x48, 0x25, 0x56, 0x28, 0xE0, 0x21, 0x58, 0x22, 0x48, 0x20, 0xC0, 0x22, 0x04, 0x22, 0x7E, 0x22, 0x44, 0x7F, 0x44, 0x22, 0x44, 0x3E, 0x7C, 0x22, 0x44, 0x3E, 0x44, 0x22, 0x44, 0x22, 0x7C, 0xFF, 0xC4, 0x00, 0x44, 0x24, 0x44, 0x22, 0x84, 0x41, 0x14, 0x82, 0x08, 0x22, 0x40, 0x22, 0x40, 0x22, 0x40, 0x7F, 0x7C, 0x22, 0x44, 0x3E, 0x88, 0x23, 0x20, 0x3E, 0x20, 0x22, 0x20, 0x22, 0x20, 0xFF, 0xD0, 0x00, 0x50, 0x24, 0x50, 0x22, 0x88, 0x41, 0x0E, 0x82, 0x04, 0x20, 0x00, 0x20, 0x04, 0x2F, 0xFE, 0x20, 0xA0, 0xF8, 0xA4, 0x27, 0xFE, 0x64, 0xA4, 0x74, 0xA4, 0xAC, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x25, 0x1C, 0x26, 0x04, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x00, 0x20, 0x00, 0x28, 0x00, 0x24, 0x3F, 0xFE, 0x22, 0x20, 0x23, 0xA0, 0x22, 0x24, 0x22, 0xA4, 0x3F, 0xE8, 0x22, 0x28, 0x2B, 0x10, 0x2A, 0x90, 0x32, 0x30, 0x42, 0x4A, 0x8A, 0x8A, 0x04, 0x06, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF0, 0x01, 0x14, 0xFF, 0xFE, 0x01, 0x10, 0x3F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x06, 0x40, 0x01, 0x80, 0x06, 0x60, 0x18, 0x10, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x04, 0x03, 0xFE, 0xFE, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x88, 0x8F, 0xFC, 0x60, 0x80, 0x27, 0xF8, 0x00, 0x88, 0x1F, 0xFE, 0x00, 0x88, 0x17, 0xF8, 0x20, 0x80, 0xE1, 0x04, 0x3F, 0xFE, 0x22, 0x20, 0x26, 0x20, 0x21, 0xC0, 0x22, 0x30, 0x0C, 0x08, 0x00, 0x40, 0x40, 0x48, 0x37, 0xFC, 0x11, 0x50, 0x81, 0x4C, 0x62, 0x44, 0x24, 0xA0, 0x01, 0x10, 0x12, 0x4E, 0x2C, 0x44, 0xE2, 0x48, 0x21, 0x50, 0x22, 0x4C, 0x24, 0x44, 0x21, 0x40, 0x20, 0x80, 0x20, 0x80, 0x10, 0x80, 0x40, 0x88, 0x20, 0xFC, 0x0F, 0x80, 0x10, 0x88, 0x60, 0x88, 0x20, 0x78, 0x21, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x05, 0x20, 0x09, 0x10, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x44, 0x00, 0x34, 0x04, 0x14, 0xFE, 0x04, 0x24, 0x85, 0x24, 0x5F, 0xA4, 0x44, 0x24, 0x04, 0x24, 0x14, 0x24, 0x24, 0x24, 0xE5, 0x44, 0x26, 0x44, 0x24, 0x44, 0x20, 0x84, 0x21, 0x14, 0x22, 0x08, 0x08, 0x20, 0x08, 0x20, 0x3F, 0xF8, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x20, 0x18, 0x18, 0x20, 0x08, 0x11, 0x08, 0x11, 0x08, 0x13, 0xFC, 0x11, 0x08, 0xFD, 0x08, 0x11, 0xF8, 0x31, 0x08, 0x39, 0x08, 0x55, 0xF8, 0x51, 0x08, 0x91, 0x08, 0x17, 0xFE, 0x10, 0x00, 0x11, 0x08, 0x13, 0x06, 0x14, 0x02, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x02, 0x80, 0x04, 0x60, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x10, 0x00, 0x90, 0x1F, 0xD0, 0x10, 0x90, 0x10, 0x90, 0x1F, 0x90, 0x10, 0x90, 0x00, 0x50, 0x00, 0x20, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x50, 0x40, 0x5C, 0x40, 0x53, 0xF8, 0x52, 0x08, 0x51, 0x10, 0x51, 0x10, 0x50, 0xA0, 0x5C, 0x40, 0xE0, 0xA0, 0x41, 0x10, 0x06, 0x0E, 0x18, 0x04, 0x00, 0x20, 0x04, 0x20, 0x7E, 0x28, 0x55, 0xFC, 0x54, 0x20, 0x54, 0x20, 0x54, 0x24, 0x7F, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x54, 0x28, 0x55, 0xFC, 0x7C, 0x20, 0x44, 0x20, 0x00, 0x24, 0x03, 0xFE, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x54, 0x40, 0x54, 0xA0, 0x55, 0x14, 0x57, 0xFE, 0x54, 0x08, 0x55, 0xE8, 0x55, 0x28, 0x55, 0x28, 0x55, 0x28, 0x7D, 0xE8, 0x45, 0x08, 0x00, 0x28, 0x00, 0x10, 0x00, 0x80, 0x78, 0x48, 0x4F, 0xFC, 0x49, 0x10, 0x48, 0xA0, 0x78, 0x40, 0x48, 0xB0, 0x49, 0x0E, 0x4E, 0x14, 0x79, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x4A, 0x10, 0x8C, 0x10, 0x18, 0x10, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x06, 0xC0, 0x18, 0x30, 0x20, 0x2E, 0xC8, 0x24, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x20, 0x80, 0x10, 0x84, 0x10, 0xFE, 0xFF, 0x00, 0x22, 0x88, 0x21, 0xFC, 0x3C, 0x88, 0x24, 0xF8, 0x24, 0x88, 0x24, 0xF8, 0x24, 0x88, 0x27, 0xFE, 0x24, 0x00, 0x34, 0x88, 0x49, 0x86, 0x82, 0x02, 0x20, 0x00, 0x10, 0x0C, 0x11, 0xF0, 0xFD, 0x00, 0x05, 0x00, 0x09, 0x04, 0x11, 0xFE, 0x39, 0x10, 0x55, 0x10, 0x91, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x14, 0x10, 0x10, 0x10, 0x10, 0x00, 0x08, 0xF8, 0x08, 0x88, 0xFE, 0x88, 0x02, 0x90, 0x04, 0x90, 0x08, 0xA0, 0x1C, 0x90, 0x2A, 0x88, 0x48, 0x84, 0x88, 0x84, 0x08, 0xC4, 0x08, 0xA8, 0x08, 0x90, 0x08, 0x80, 0x08, 0x80, 0x08, 0x40, 0xFC, 0x48, 0x0B, 0xFC, 0x48, 0x40, 0x48, 0xB0, 0x49, 0x14, 0x4F, 0xFE, 0x48, 0x08, 0x7D, 0xE8, 0x05, 0x28, 0x05, 0x28, 0x1D, 0x28, 0xE5, 0xE8, 0x45, 0x08, 0x14, 0x28, 0x08, 0x10, 0x08, 0x00, 0x08, 0x08, 0x08, 0xFC, 0x7E, 0x08, 0x08, 0x08, 0x08, 0x08, 0xFE, 0xF8, 0x08, 0x88, 0x28, 0x80, 0x2E, 0x84, 0x28, 0x84, 0x28, 0x7C, 0x28, 0x00, 0x58, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x10, 0x7F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x3F, 0xF0, 0x20, 0x10, 0x20, 0x00, 0x20, 0x02, 0x20, 0x02, 0x1F, 0xFE, 0x08, 0x00, 0x08, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x20, 0x00, 0x40, 0x00, 0x9F, 0xE0, 0x00, 0x40, 0x01, 0x80, 0x06, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x02, 0x10, 0x02, 0x0F, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC9, 0x24, 0x09, 0xF0, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x1F, 0xFC, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x18, 0x04, 0x28, 0x04, 0x28, 0x04, 0x48, 0x04, 0x8F, 0xFC, 0x08, 0x04, 0x08, 0x00, 0x0A, 0x04, 0x7F, 0x7E, 0x08, 0x24, 0x3E, 0x24, 0x08, 0x24, 0x7F, 0x44, 0x08, 0x54, 0x09, 0x88, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x04, 0x60, 0x18, 0x1C, 0x60, 0x08, 0x01, 0x00, 0x09, 0x04, 0xFD, 0x7E, 0x11, 0x24, 0x11, 0x24, 0x21, 0xE4, 0x27, 0x24, 0x79, 0x24, 0xA9, 0x24, 0x29, 0x24, 0x29, 0x64, 0x29, 0xA4, 0x29, 0x24, 0x38, 0x44, 0x20, 0x94, 0x01, 0x08, 0x3E, 0xF8, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x3E, 0xF8, 0x01, 0x20, 0x01, 0x14, 0xFF, 0xFE, 0x02, 0x80, 0x0C, 0x60, 0x30, 0x18, 0xFE, 0xFE, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x3E, 0xF8, 0x10, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x20, 0x00, 0x2F, 0xF0, 0x40, 0x00, 0xBF, 0xE0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x22, 0x00, 0x12, 0x00, 0x0A, 0x00, 0x04, 0x01, 0x00, 0x41, 0x08, 0x31, 0xFC, 0x12, 0x00, 0x04, 0x00, 0x01, 0xF8, 0xF0, 0x10, 0x10, 0x60, 0x11, 0x80, 0x12, 0x00, 0x12, 0x04, 0x12, 0x04, 0x11, 0xFC, 0x10, 0x00, 0x28, 0x06, 0x47, 0xFC, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x04, 0x50, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x30, 0x40, 0x00, 0x40, 0x02, 0x00, 0x42, 0x08, 0x33, 0xFC, 0x14, 0x00, 0x87, 0xF8, 0x68, 0x00, 0x27, 0xF0, 0x00, 0x10, 0x10, 0x10, 0x20, 0x10, 0xE0, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x0A, 0x20, 0x0A, 0x20, 0x06, 0x00, 0x80, 0x40, 0x40, 0x30, 0x48, 0x17, 0xFC, 0x00, 0x00, 0x82, 0x08, 0x42, 0x08, 0x4A, 0x08, 0x12, 0x10, 0x21, 0x10, 0xE1, 0x10, 0x21, 0x20, 0x21, 0x20, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x01, 0x00, 0x41, 0x08, 0x21, 0xFC, 0x22, 0x00, 0x02, 0x00, 0x04, 0x00, 0xEB, 0xF0, 0x20, 0x10, 0x20, 0x20, 0x20, 0x40, 0x20, 0x80, 0x21, 0x00, 0x2A, 0x02, 0x32, 0x02, 0x21, 0xFE, 0x00, 0x00, 0x10, 0x80, 0x10, 0x80, 0x11, 0xFC, 0x12, 0x08, 0xFC, 0x10, 0x10, 0xA4, 0x17, 0x1E, 0x1A, 0x04, 0x32, 0x04, 0xD2, 0x04, 0x13, 0xBC, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04, 0x53, 0xFC, 0x22, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x59, 0x10, 0x56, 0x0E, 0x54, 0x04, 0x9B, 0xF8, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x00, 0x40, 0x40, 0x40, 0x30, 0xA0, 0x10, 0xA0, 0x81, 0x10, 0x62, 0x0E, 0x2C, 0x04, 0x03, 0xF8, 0x10, 0x00, 0x20, 0x08, 0xE3, 0xFC, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x02, 0x80, 0x04, 0x60, 0x08, 0x20, 0x7F, 0xFE, 0x49, 0x02, 0x89, 0x24, 0x1F, 0xF0, 0x21, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x10, 0x10, 0x38, 0x13, 0xC0, 0x10, 0x40, 0xFC, 0x40, 0x10, 0x40, 0x14, 0x44, 0x1F, 0xFE, 0x30, 0x40, 0xD0, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x50, 0x40, 0x20, 0x40, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x1C, 0x20, 0x20, 0x20, 0x40, 0x20, 0xBC, 0x24, 0x13, 0xFE, 0x10, 0x20, 0xFC, 0x20, 0x10, 0x20, 0x10, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x00, 0x20, 0x10, 0x08, 0x10, 0xFC, 0x10, 0x88, 0x1C, 0x88, 0x20, 0x88, 0x40, 0x88, 0xBD, 0x06, 0x12, 0x00, 0x10, 0x04, 0xFD, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x15, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x00, 0x20, 0x00, 0xF0, 0x3F, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x10, 0x40, 0x38, 0x33, 0xC0, 0x10, 0x40, 0x00, 0x40, 0x00, 0x48, 0xF7, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x10, 0x40, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x4E, 0xCF, 0xE4, 0x00, 0x00, 0x12, 0x10, 0x09, 0x10, 0x09, 0x20, 0x00, 0x40, 0x3F, 0xF8, 0x08, 0x10, 0x08, 0x38, 0x0B, 0xC0, 0x10, 0x40, 0x10, 0x40, 0x30, 0x40, 0x50, 0x44, 0x9F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x42, 0x10, 0x21, 0x20, 0x2F, 0xFC, 0x01, 0x20, 0x07, 0xF8, 0xE1, 0x28, 0x21, 0x28, 0x3F, 0xFE, 0x21, 0x28, 0x21, 0x28, 0x27, 0xF8, 0x29, 0x20, 0x33, 0x30, 0x25, 0x2E, 0x09, 0x24, 0x01, 0x20, 0x10, 0x40, 0x14, 0x40, 0xFE, 0x44, 0x10, 0x7E, 0x10, 0x80, 0x7D, 0x00, 0x46, 0xF8, 0x7C, 0x10, 0x44, 0x20, 0x7C, 0x40, 0x10, 0x40, 0x14, 0x80, 0xFE, 0x82, 0x10, 0x82, 0x10, 0x7E, 0x10, 0x00, 0x01, 0x10, 0x7F, 0x90, 0x49, 0x28, 0x6B, 0x28, 0x5D, 0x44, 0x49, 0x86, 0x7F, 0x20, 0x08, 0x10, 0x7F, 0x00, 0x08, 0x7C, 0x7F, 0x04, 0x00, 0x04, 0x55, 0x08, 0x55, 0x08, 0x94, 0x90, 0x00, 0x00, 0x10, 0x40, 0x10, 0x50, 0x10, 0x48, 0x3C, 0x7C, 0x43, 0xC0, 0x80, 0x40, 0x3C, 0x44, 0x10, 0x7E, 0x13, 0xC0, 0xFC, 0x44, 0x10, 0x4C, 0x10, 0x30, 0x14, 0x20, 0x18, 0x52, 0x11, 0x8A, 0x00, 0x06, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x1C, 0x88, 0x23, 0xFE, 0x40, 0x88, 0xBC, 0x88, 0x10, 0x88, 0x10, 0x88, 0xFC, 0xF8, 0x10, 0x88, 0x10, 0x88, 0x14, 0x88, 0x18, 0x88, 0x10, 0xF8, 0x00, 0x88, 0x10, 0x10, 0x0C, 0x30, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x3E, 0x08, 0x22, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x08, 0x22, 0x08, 0x2A, 0x28, 0x24, 0x10, 0x42, 0x10, 0x22, 0x10, 0x2F, 0xBC, 0x82, 0x10, 0x62, 0x10, 0x2F, 0xFE, 0x02, 0x10, 0x15, 0x28, 0x28, 0xC6, 0xE7, 0xF8, 0x24, 0x08, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x24, 0x08, 0x27, 0xF8, 0x00, 0x48, 0x43, 0xFC, 0x32, 0x48, 0x13, 0xF8, 0x00, 0x40, 0x0F, 0xFE, 0xF0, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x2A, 0x06, 0x47, 0xFC, 0x40, 0x80, 0x30, 0xA0, 0x10, 0x90, 0x00, 0xFC, 0x87, 0x80, 0x60, 0x80, 0x20, 0x88, 0x08, 0xFC, 0x17, 0x80, 0x20, 0x90, 0xE0, 0xA0, 0x20, 0x40, 0x20, 0xC0, 0x23, 0x24, 0x2C, 0x14, 0x20, 0x0C, 0x40, 0x20, 0x21, 0xFC, 0x29, 0x24, 0x05, 0xFC, 0x00, 0x20, 0xEF, 0xFE, 0x24, 0x00, 0x25, 0xFC, 0x25, 0x04, 0x25, 0xFC, 0x25, 0x00, 0x2D, 0xFC, 0x35, 0x04, 0x25, 0xFC, 0x0A, 0x00, 0x11, 0xFE, 0x10, 0x0C, 0xFE, 0xF0, 0x20, 0x80, 0x28, 0x84, 0x7E, 0xFE, 0x08, 0x90, 0x0F, 0x90, 0xF9, 0x10, 0x4A, 0x10, 0x09, 0x10, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x22, 0x28, 0x22, 0x20, 0xFF, 0x7C, 0x22, 0x44, 0x22, 0xA8, 0x22, 0x20, 0x3E, 0x20, 0x22, 0x20, 0x22, 0x50, 0x22, 0x48, 0x3E, 0x8E, 0x21, 0x04, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1F, 0xFC, 0x10, 0x04, 0x21, 0x08, 0x41, 0x10, 0x81, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x20, 0x0E, 0xC0, 0x04, 0x22, 0x20, 0x14, 0x20, 0xFF, 0xA0, 0x14, 0x3E, 0x7F, 0x42, 0x15, 0x94, 0x15, 0x10, 0xFF, 0xD0, 0x15, 0x10, 0x15, 0x10, 0x7F, 0x28, 0x14, 0x28, 0x36, 0x48, 0x55, 0x4C, 0x94, 0x86, 0x15, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0xFD, 0x10, 0x12, 0x0E, 0x35, 0xF4, 0x39, 0x10, 0x55, 0x10, 0x51, 0x10, 0x91, 0x50, 0x11, 0x20, 0x11, 0x04, 0x11, 0x04, 0x10, 0xFC, 0x10, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0xA0, 0x48, 0xA0, 0x49, 0x10, 0x4A, 0x0E, 0x4D, 0xF4, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x50, 0x79, 0x20, 0x49, 0x04, 0x01, 0x04, 0x00, 0xFC, 0x00, 0x00, 0x08, 0x80, 0x7C, 0x40, 0x4B, 0xFE, 0x4A, 0x02, 0x4C, 0x04, 0x79, 0x10, 0x4A, 0x08, 0x4C, 0x04, 0x48, 0x00, 0x7B, 0xF8, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x98, 0x00, 0x08, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x04, 0x80, 0x08, 0x82, 0x10, 0x82, 0x60, 0x7E, 0x20, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x20, 0x40, 0xFA, 0x48, 0x21, 0x50, 0x2F, 0xFE, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x3A, 0xE8, 0xE2, 0xA8, 0x42, 0xE8, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x08, 0x28, 0x7F, 0xFC, 0x09, 0x20, 0x01, 0x08, 0x7F, 0xFC, 0x09, 0x20, 0x05, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x17, 0xD0, 0x14, 0x50, 0x17, 0xD0, 0x10, 0x10, 0x1F, 0xF0, 0x08, 0x04, 0xFD, 0xFE, 0x09, 0x04, 0x09, 0x04, 0x09, 0xFC, 0x79, 0x24, 0x48, 0x20, 0x43, 0xFE, 0x42, 0x22, 0x7A, 0x22, 0x0B, 0xFE, 0x0A, 0x22, 0x08, 0x20, 0x88, 0x24, 0x53, 0xFE, 0x20, 0x02, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0xFD, 0x10, 0x12, 0x0E, 0x15, 0xF4, 0x19, 0x10, 0x31, 0x10, 0xD1, 0x10, 0x11, 0x50, 0x11, 0x20, 0x11, 0x04, 0x11, 0x04, 0x50, 0xFC, 0x20, 0x00, 0x13, 0xF8, 0x10, 0x40, 0x11, 0xF0, 0x10, 0x40, 0xFF, 0xF8, 0x10, 0x42, 0x30, 0x7E, 0x38, 0x00, 0x57, 0xBC, 0x51, 0x10, 0x97, 0xBC, 0x11, 0x10, 0x1F, 0xBE, 0x11, 0x10, 0x11, 0x52, 0x11, 0x8E, 0x20, 0xD0, 0x27, 0x10, 0x39, 0x10, 0x41, 0x52, 0x41, 0x34, 0xFF, 0xD8, 0x21, 0x10, 0x23, 0x10, 0xFB, 0x90, 0x25, 0x50, 0x29, 0x28, 0x21, 0x28, 0x29, 0x44, 0x31, 0x44, 0x21, 0x82, 0x01, 0x00, 0x10, 0x10, 0x09, 0x10, 0xFF, 0x94, 0x00, 0x1E, 0x3E, 0x10, 0x22, 0x10, 0x3E, 0xFC, 0x00, 0x04, 0x7F, 0x44, 0x41, 0x44, 0x5D, 0x28, 0x55, 0x28, 0x5D, 0x10, 0x41, 0x28, 0x45, 0x4E, 0x42, 0x84, 0x10, 0x40, 0x12, 0x44, 0x11, 0x48, 0x11, 0x50, 0x58, 0x48, 0x57, 0xFC, 0x52, 0x08, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x28, 0x12, 0x10, 0x10, 0x38, 0x13, 0xC0, 0x10, 0x40, 0x10, 0x40, 0xFC, 0x84, 0x17, 0xFE, 0x31, 0x20, 0x39, 0x10, 0x56, 0x0E, 0x55, 0x14, 0x99, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x14, 0x10, 0x10, 0x10, 0x09, 0x40, 0x7D, 0x28, 0x49, 0xFC, 0x4B, 0x20, 0x4D, 0x20, 0x79, 0xF8, 0x49, 0x20, 0x49, 0x20, 0x49, 0xF8, 0x79, 0x20, 0x49, 0x28, 0x49, 0xFC, 0x49, 0x00, 0x7A, 0xA8, 0x42, 0xA6, 0x04, 0x02, 0x00, 0xF0, 0x1F, 0x00, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x20, 0x08, 0x50, 0x34, 0x4E, 0xC4, 0x44, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x00, 0x40, 0x08, 0x38, 0x0B, 0xC0, 0x08, 0x40, 0x10, 0x40, 0x10, 0x84, 0x3F, 0xFE, 0x51, 0x20, 0x91, 0x10, 0x12, 0x0E, 0x15, 0x14, 0x19, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x14, 0x10, 0x10, 0x10, 0x00, 0x04, 0x0B, 0xFE, 0xFC, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x80, 0x10, 0x84, 0x11, 0xFE, 0x10, 0x04, 0x10, 0x04, 0x1E, 0x04, 0xF0, 0x04, 0x40, 0x04, 0x00, 0x44, 0x00, 0x28, 0x00, 0x10, 0x44, 0x20, 0x45, 0x24, 0xFE, 0xA4, 0x44, 0xA8, 0x7C, 0x24, 0x11, 0xFE, 0x7D, 0x04, 0x55, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x7D, 0x04, 0x11, 0xFC, 0xFF, 0x04, 0x11, 0x04, 0x11, 0x14, 0x11, 0x08, 0x13, 0xF8, 0x10, 0x40, 0x11, 0xF0, 0x10, 0x40, 0xFF, 0xF8, 0x10, 0x42, 0x14, 0x7E, 0x18, 0x00, 0x37, 0xBC, 0xD1, 0x10, 0x17, 0xBC, 0x11, 0x10, 0x1F, 0xBE, 0x11, 0x10, 0x51, 0x52, 0x21, 0x8E, 0x20, 0x04, 0x21, 0xDE, 0xFE, 0x44, 0x28, 0x44, 0x11, 0x54, 0x2A, 0xCC, 0xC6, 0x44, 0x00, 0xCC, 0xFD, 0x54, 0x2A, 0x64, 0x28, 0x44, 0x29, 0x54, 0x28, 0x88, 0x28, 0x02, 0x47, 0xFE, 0x80, 0x00, 0x10, 0x20, 0x11, 0x24, 0x10, 0xA8, 0x54, 0x24, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x55, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x7D, 0x04, 0x45, 0x04, 0x01, 0x14, 0x01, 0x08, 0x08, 0x20, 0x09, 0x24, 0x08, 0xA8, 0x10, 0x24, 0x11, 0xFE, 0x31, 0x04, 0x51, 0x04, 0x91, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x14, 0x11, 0x08, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x88, 0x34, 0x10, 0x10, 0x03, 0xFC, 0x7E, 0x80, 0x08, 0x88, 0x09, 0xFC, 0x08, 0x08, 0x08, 0x08, 0x0E, 0x08, 0x78, 0x88, 0x20, 0x50, 0x00, 0x20, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x10, 0x44, 0x14, 0x44, 0x1E, 0x44, 0xF0, 0x44, 0x10, 0x44, 0x10, 0x44, 0x12, 0x44, 0x14, 0x44, 0x18, 0x84, 0x10, 0x84, 0x01, 0x04, 0x02, 0x28, 0x0C, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x14, 0x40, 0x12, 0x04, 0xFF, 0x7E, 0x12, 0x44, 0x12, 0x44, 0x12, 0x44, 0x12, 0x44, 0x12, 0x44, 0x22, 0x44, 0x22, 0x44, 0x4A, 0x7C, 0x84, 0x44, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x5B, 0xFC, 0x54, 0x40, 0x50, 0x40, 0x90, 0x44, 0x17, 0xFE, 0x10, 0x40, 0x10, 0x80, 0x10, 0x80, 0x11, 0x10, 0x12, 0x08, 0x17, 0xFC, 0x10, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x88, 0x34, 0x10, 0x10, 0x00, 0x04, 0x11, 0xFE, 0x14, 0x44, 0xFE, 0x44, 0x10, 0x44, 0x10, 0x44, 0x14, 0x84, 0x18, 0x84, 0x11, 0x28, 0x02, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x1C, 0x7C, 0x20, 0x84, 0x21, 0x08, 0x7E, 0x20, 0x90, 0x20, 0x10, 0x20, 0xFC, 0x20, 0x10, 0x50, 0x12, 0x50, 0x14, 0x88, 0x18, 0x8E, 0x11, 0x04, 0x02, 0x00, 0x08, 0x08, 0x0B, 0xFC, 0x08, 0x08, 0x13, 0xF8, 0x10, 0x08, 0x33, 0xF8, 0x50, 0x00, 0x97, 0xFE, 0x14, 0x02, 0x19, 0xF4, 0x11, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0xB0, 0x11, 0x0E, 0x16, 0x04, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x04, 0x40, 0x02, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x09, 0x20, 0x19, 0x18, 0x21, 0x0C, 0x45, 0x04, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0xE0, 0x37, 0x1E, 0xC1, 0x24, 0x1F, 0xF0, 0x01, 0x00, 0x05, 0x60, 0x09, 0x18, 0x31, 0x08, 0x01, 0x00, 0x04, 0x08, 0x7E, 0xFC, 0x08, 0x20, 0x3E, 0xF8, 0x08, 0x20, 0x7E, 0xFC, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x32, 0x1E, 0xC1, 0x04, 0x0F, 0xE0, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x22, 0x20, 0xFF, 0xA0, 0x22, 0x20, 0x3E, 0x24, 0x08, 0xFE, 0x7F, 0x24, 0x49, 0x24, 0x49, 0x24, 0x7F, 0x24, 0x08, 0x24, 0x7F, 0x24, 0x08, 0x24, 0x3E, 0x44, 0x08, 0x44, 0xFF, 0x94, 0x01, 0x08, 0x08, 0x20, 0x08, 0x20, 0xFF, 0xFE, 0x08, 0x20, 0x00, 0x18, 0x1F, 0xE0, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x20, 0x40, 0x40, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x48, 0xFD, 0xF6, 0x10, 0xA4, 0x12, 0x48, 0x1A, 0xA8, 0x33, 0xF8, 0xD0, 0x44, 0x17, 0xFE, 0x14, 0x84, 0x14, 0xA4, 0x15, 0xF4, 0x54, 0x04, 0x24, 0x0C, 0x01, 0x00, 0x02, 0x80, 0x06, 0x40, 0x08, 0x30, 0x3F, 0xFE, 0xC4, 0x44, 0x13, 0x90, 0x14, 0x50, 0x1F, 0xF0, 0x01, 0x08, 0x3F, 0xFC, 0x22, 0x08, 0x24, 0x48, 0x2F, 0xE8, 0x20, 0x08, 0x20, 0x18, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x97, 0xFC, 0x10, 0x08, 0x97, 0xF8, 0x50, 0x08, 0x57, 0xF8, 0x10, 0x00, 0x37, 0xFC, 0x58, 0x04, 0x93, 0xF0, 0x11, 0x20, 0x10, 0xC0, 0x11, 0x20, 0x16, 0x1C, 0x20, 0x00, 0x18, 0x80, 0x08, 0x40, 0x80, 0x60, 0x61, 0x20, 0x21, 0x20, 0x01, 0x00, 0x15, 0x08, 0x25, 0x04, 0x25, 0x06, 0xE9, 0x02, 0x29, 0x08, 0x21, 0x08, 0x21, 0x08, 0x20, 0xF8, 0x20, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x10, 0x00, 0x11, 0xFC, 0x14, 0x08, 0xFE, 0x10, 0x20, 0x38, 0x28, 0xCC, 0x4B, 0x02, 0x7C, 0x00, 0x08, 0x08, 0x09, 0xFC, 0x0E, 0x20, 0xF8, 0x20, 0x48, 0x20, 0x08, 0x24, 0x0B, 0xFE, 0x08, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x00, 0x2F, 0xF8, 0x40, 0x10, 0xBF, 0xF8, 0x00, 0x10, 0x3F, 0x90, 0x02, 0x10, 0x0D, 0x90, 0x70, 0x70, 0x1F, 0xD0, 0x02, 0x10, 0x02, 0x52, 0x7F, 0xEA, 0x00, 0x06, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x20, 0x28, 0x44, 0x29, 0xFE, 0x69, 0x04, 0xAF, 0x24, 0x29, 0x24, 0x29, 0x24, 0x29, 0x24, 0x2B, 0x24, 0x2D, 0x24, 0x28, 0x50, 0x20, 0x4C, 0x20, 0x86, 0x23, 0x02, 0x08, 0x04, 0x77, 0xBE, 0x44, 0xA4, 0x54, 0xA4, 0x54, 0xA4, 0x57, 0xA4, 0x54, 0xA4, 0x54, 0xA4, 0x54, 0xA4, 0x57, 0xA4, 0x74, 0x24, 0x55, 0x34, 0x14, 0xA8, 0x25, 0xA0, 0x46, 0x20, 0x80, 0x20, 0x00, 0x40, 0x40, 0x48, 0x37, 0xFC, 0x10, 0x40, 0x83, 0xF8, 0x60, 0x40, 0x2F, 0xFE, 0x08, 0x08, 0x13, 0xFC, 0x22, 0x08, 0xE3, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x22, 0x28, 0x22, 0x10, 0x24, 0x20, 0xFF, 0x24, 0x24, 0x3E, 0x3F, 0x44, 0x41, 0xA8, 0xBD, 0x10, 0x25, 0x2E, 0x3D, 0x44, 0x02, 0x70, 0x3F, 0x80, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x03, 0x00, 0x00, 0x40, 0x08, 0x48, 0x7F, 0xFC, 0x48, 0x40, 0x4B, 0xF8, 0x48, 0x40, 0x4F, 0xFE, 0x78, 0x08, 0x4B, 0xFC, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x7B, 0xF8, 0x4A, 0x08, 0x02, 0x28, 0x02, 0x10, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x00, 0x2F, 0xF8, 0x40, 0x10, 0xBF, 0xF8, 0x04, 0x10, 0x3F, 0x90, 0x04, 0x10, 0x3F, 0x90, 0x04, 0x10, 0x7F, 0xD0, 0x00, 0x90, 0x09, 0x12, 0x06, 0x0A, 0x02, 0x06, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x13, 0xF8, 0x58, 0x40, 0x57, 0xFE, 0x50, 0x08, 0x93, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x28, 0x12, 0x10, 0x00, 0x04, 0x4F, 0xFE, 0x40, 0x40, 0x40, 0x88, 0x53, 0xFC, 0x7A, 0x08, 0x42, 0x48, 0x42, 0x48, 0x42, 0x48, 0x4A, 0x48, 0x52, 0x48, 0x62, 0x88, 0x40, 0xA0, 0x01, 0x18, 0x02, 0x0C, 0x0C, 0x04, 0x00, 0x48, 0x47, 0xFC, 0x20, 0x40, 0x23, 0xF8, 0x00, 0x40, 0xEF, 0xFE, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x2A, 0x08, 0x32, 0x08, 0x22, 0x28, 0x02, 0x10, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x21, 0x40, 0x21, 0x40, 0x22, 0x20, 0x22, 0x20, 0x44, 0x10, 0x88, 0x0E, 0x30, 0x04, 0x00, 0x80, 0x10, 0x40, 0xF8, 0x04, 0x27, 0xFE, 0x20, 0x08, 0x23, 0xFC, 0xFA, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x20, 0x40, 0x39, 0x50, 0xE3, 0x4C, 0x44, 0x44, 0x01, 0x40, 0x00, 0x80, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x84, 0x44, 0x0C, 0x30, 0x12, 0x10, 0x02, 0x08, 0x3F, 0xFC, 0x02, 0x08, 0x02, 0x08, 0x04, 0x08, 0x04, 0x08, 0x08, 0x88, 0x10, 0x50, 0x20, 0x20, 0x08, 0x40, 0x1C, 0x40, 0xF0, 0x40, 0x10, 0x40, 0x11, 0x44, 0xFD, 0x4C, 0x11, 0x50, 0x32, 0x40, 0x38, 0x40, 0x54, 0xA0, 0x50, 0xA0, 0x91, 0x10, 0x11, 0x08, 0x12, 0x0E, 0x14, 0x04, 0x18, 0x00, 0x00, 0x20, 0x00, 0x70, 0x01, 0x80, 0x0E, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x10, 0x0F, 0xF8, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x02, 0x00, 0x06, 0x7C, 0x38, 0x44, 0x20, 0x44, 0x20, 0x48, 0x21, 0x48, 0x3F, 0xD0, 0x22, 0x48, 0x22, 0x44, 0x22, 0x42, 0x22, 0x42, 0x22, 0x62, 0x3F, 0xD4, 0xE0, 0x48, 0x40, 0x40, 0x00, 0x40, 0x00, 0x40, 0x08, 0x50, 0xFC, 0x48, 0x13, 0xFE, 0x10, 0x40, 0x12, 0x44, 0x7D, 0x4C, 0x11, 0x50, 0x10, 0x60, 0x10, 0xD0, 0x11, 0x50, 0x1E, 0x4E, 0xE4, 0x44, 0x00, 0x40, 0x01, 0x40, 0x00, 0x80, 0x01, 0x00, 0x01, 0x40, 0x01, 0x28, 0x7F, 0xFC, 0x01, 0x00, 0x21, 0x08, 0x19, 0x18, 0x09, 0xA0, 0x03, 0x40, 0x05, 0x40, 0x09, 0x30, 0x11, 0x0E, 0x61, 0x04, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x42, 0x84, 0x42, 0x84, 0x44, 0x44, 0x44, 0x24, 0x48, 0x3C, 0x50, 0x14, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x10, 0x10, 0x0C, 0x30, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x48, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x38, 0x38, 0x20, 0x08, 0x2F, 0xE8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x40, 0x04, 0x37, 0xFE, 0x14, 0x04, 0x04, 0x44, 0x84, 0x44, 0x44, 0x44, 0x54, 0x44, 0x14, 0xA4, 0x14, 0xA4, 0x24, 0xA4, 0xE4, 0x94, 0x25, 0x1C, 0x26, 0x04, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x08, 0x40, 0x08, 0x40, 0x08, 0x78, 0x7E, 0x88, 0x09, 0x10, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x04, 0x28, 0x04, 0x2E, 0xFC, 0x28, 0x04, 0x28, 0x04, 0x29, 0xFC, 0x58, 0x00, 0x88, 0x06, 0x07, 0xFC, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x00, 0x28, 0x08, 0x24, 0x18, 0x22, 0x20, 0x21, 0x40, 0x20, 0x80, 0x21, 0x40, 0x22, 0x30, 0x24, 0x18, 0x28, 0x08, 0x20, 0x00, 0x20, 0x04, 0x3F, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x15, 0x08, 0x7F, 0x08, 0x55, 0x08, 0x55, 0x08, 0x55, 0xF8, 0x55, 0x08, 0x55, 0x08, 0x7D, 0x08, 0x51, 0xF8, 0x15, 0x08, 0x1D, 0x08, 0xF5, 0x08, 0x47, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x40, 0x04, 0x08, 0x04, 0x11, 0xFE, 0x7D, 0x00, 0x45, 0x44, 0x7D, 0x44, 0x45, 0x28, 0x7D, 0x28, 0x45, 0x10, 0x45, 0x10, 0xFD, 0x28, 0x15, 0x28, 0x25, 0x44, 0x45, 0x84, 0x85, 0x00, 0x15, 0xFE, 0x08, 0x00, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x04, 0x20, 0x04, 0x3F, 0xFC, 0x20, 0x80, 0x28, 0x88, 0x28, 0x88, 0x28, 0x88, 0x2F, 0xF8, 0x20, 0x80, 0x30, 0x84, 0x50, 0x84, 0x50, 0x84, 0x9F, 0xFC, 0x10, 0x04, 0x08, 0x04, 0xFD, 0xFE, 0x09, 0x00, 0x49, 0x44, 0x49, 0x44, 0x49, 0x28, 0x49, 0x28, 0x49, 0x10, 0x7D, 0x10, 0x05, 0x28, 0x05, 0x28, 0x1D, 0x44, 0xE5, 0x84, 0x45, 0x00, 0x15, 0xFE, 0x08, 0x00, 0x23, 0xFC, 0x12, 0x00, 0x43, 0xF8, 0x22, 0x08, 0x0A, 0x08, 0x13, 0xF8, 0x62, 0x00, 0x23, 0xFC, 0x20, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x01, 0x00, 0xFF, 0x80, 0x22, 0x00, 0x23, 0xFC, 0x3E, 0x04, 0x22, 0x84, 0x22, 0x88, 0x3E, 0x88, 0x22, 0x48, 0x22, 0x50, 0x22, 0x20, 0x3E, 0x50, 0xE2, 0x48, 0x42, 0x8E, 0x03, 0x04, 0x02, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x22, 0xFC, 0x3E, 0x44, 0x22, 0x48, 0x3E, 0x28, 0x22, 0x10, 0xFF, 0x2E, 0x02, 0x44, 0x01, 0x00, 0xFF, 0xFE, 0x04, 0x20, 0x0C, 0x20, 0x02, 0x40, 0x01, 0x80, 0x0E, 0x70, 0x10, 0x0C, 0x13, 0xF0, 0x10, 0x24, 0x5D, 0xFE, 0x51, 0x24, 0x51, 0x24, 0xFD, 0xFC, 0x00, 0x20, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x6D, 0x54, 0x45, 0x74, 0x7D, 0x04, 0x45, 0x14, 0x01, 0x08, 0x10, 0x40, 0x17, 0xE0, 0x12, 0x40, 0x7E, 0x7C, 0x13, 0xC4, 0x12, 0x54, 0xFE, 0x54, 0x13, 0xD4, 0x52, 0x48, 0x5E, 0x54, 0x52, 0x52, 0x57, 0xE2, 0x70, 0x40, 0x50, 0x46, 0x8F, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x00, 0x04, 0x7F, 0xFE, 0x49, 0x24, 0x45, 0x44, 0x5F, 0xF4, 0x42, 0x04, 0x7F, 0xFC, 0x44, 0x44, 0x4F, 0xE4, 0x74, 0x5C, 0x45, 0x84, 0x44, 0x24, 0x43, 0xE4, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x22, 0x04, 0x22, 0xFE, 0xFF, 0x90, 0x22, 0x24, 0x77, 0x7E, 0x55, 0x44, 0x77, 0x54, 0x24, 0x54, 0x3F, 0x54, 0x64, 0x54, 0xBF, 0x54, 0x24, 0x54, 0x3F, 0x10, 0x24, 0x28, 0x3F, 0x46, 0x20, 0x82, 0x10, 0x00, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x08, 0xFE, 0x08, 0x12, 0x08, 0x31, 0x08, 0x39, 0x10, 0x55, 0x10, 0x50, 0xA0, 0x90, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x14, 0x04, 0x10, 0x00, 0x04, 0x88, 0xFE, 0x88, 0x2B, 0xFE, 0x28, 0x88, 0xFE, 0x20, 0xAA, 0x50, 0xAA, 0x8E, 0xAB, 0x04, 0xC6, 0xF8, 0x82, 0x20, 0xFE, 0x20, 0x82, 0xF8, 0x82, 0x20, 0xFE, 0x24, 0x83, 0xFE, 0x00, 0x00, 0x02, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0x7D, 0x8C, 0x05, 0x50, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC5, 0x04, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x50, 0x2F, 0xEE, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x40, 0x0F, 0xE0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x90, 0xA0, 0x51, 0x10, 0x52, 0x0E, 0x1D, 0xF4, 0x30, 0x40, 0x50, 0x50, 0xD3, 0xF8, 0x10, 0x40, 0x20, 0x40, 0x20, 0x44, 0x4F, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0xE0, 0x1F, 0x10, 0x21, 0x0E, 0xCF, 0xE4, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x40, 0x01, 0x30, 0x01, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x04, 0x20, 0x08, 0x10, 0x10, 0x0E, 0x60, 0x04, 0x00, 0x00, 0x01, 0x00, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x22, 0x2E, 0xC2, 0x24, 0x04, 0x20, 0x04, 0x20, 0x08, 0x20, 0x10, 0xA0, 0x20, 0x40, 0x00, 0x40, 0x00, 0x40, 0x7E, 0x40, 0x02, 0x44, 0x23, 0xFE, 0x22, 0x44, 0x14, 0x44, 0x14, 0x44, 0x08, 0x44, 0x14, 0x44, 0x14, 0x44, 0x22, 0x84, 0x42, 0x84, 0x81, 0x04, 0x02, 0x28, 0x04, 0x10, 0x20, 0x40, 0x20, 0x40, 0x24, 0x40, 0x3E, 0x48, 0x51, 0xFC, 0x90, 0x48, 0x14, 0x48, 0xFE, 0x48, 0x13, 0xFE, 0x54, 0x40, 0x54, 0x40, 0x54, 0xA0, 0x54, 0xA0, 0x7D, 0x10, 0x46, 0x0E, 0x04, 0x04, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x56, 0x48, 0x59, 0xFC, 0x50, 0x48, 0x90, 0x48, 0x10, 0x48, 0x17, 0xFE, 0x28, 0x40, 0x28, 0x40, 0x24, 0xA0, 0x44, 0xA0, 0x41, 0x10, 0x82, 0x0E, 0x04, 0x04, 0x00, 0x84, 0x1F, 0xFE, 0x12, 0x00, 0x9F, 0xBC, 0x52, 0xA4, 0x52, 0xA4, 0x12, 0xA4, 0x15, 0xBC, 0x38, 0x44, 0x57, 0xFE, 0xD4, 0x44, 0x15, 0xB4, 0x24, 0x44, 0x24, 0xA4, 0x45, 0x14, 0x04, 0x08, 0x08, 0x00, 0x08, 0x04, 0x0A, 0x7E, 0x7F, 0x44, 0x08, 0x44, 0x08, 0x44, 0x09, 0x44, 0xFF, 0xC4, 0x08, 0x44, 0x10, 0x44, 0x10, 0x64, 0x24, 0x54, 0x22, 0x48, 0x7F, 0x40, 0x01, 0x40, 0x00, 0x40, 0x24, 0x20, 0x24, 0x48, 0x24, 0xFC, 0x7E, 0x88, 0x24, 0xA8, 0x24, 0x88, 0xFF, 0xA8, 0x00, 0x90, 0x7E, 0x84, 0x42, 0xFE, 0x42, 0x04, 0x7E, 0x14, 0x43, 0xFC, 0x42, 0x04, 0x7E, 0x14, 0x42, 0x08, 0x10, 0x40, 0x10, 0x40, 0x13, 0xFE, 0x12, 0xA2, 0xFC, 0xA4, 0x11, 0xFE, 0x31, 0x20, 0x3B, 0x28, 0x55, 0xFC, 0x51, 0x20, 0x91, 0x28, 0x11, 0xFC, 0x11, 0x20, 0x11, 0x24, 0x11, 0xFE, 0x11, 0x00, 0x00, 0x40, 0x04, 0x40, 0xFE, 0x78, 0x10, 0x90, 0x11, 0x24, 0x23, 0xFE, 0x25, 0x24, 0x7D, 0x24, 0xA5, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x3D, 0x24, 0x22, 0x24, 0x04, 0x0C, 0x01, 0x00, 0x09, 0x20, 0x0D, 0x18, 0x11, 0x4C, 0x21, 0x84, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x88, 0xDF, 0xFC, 0x10, 0x80, 0x1F, 0xF8, 0x10, 0x80, 0x1F, 0xF8, 0x10, 0x80, 0x1F, 0xFE, 0x10, 0x00, 0x20, 0x04, 0x11, 0xFE, 0x10, 0x84, 0x00, 0x84, 0xFB, 0xFE, 0x08, 0x84, 0x10, 0x84, 0x35, 0xFC, 0x58, 0x80, 0x95, 0x04, 0x11, 0xFE, 0x12, 0x84, 0x14, 0x84, 0x10, 0x84, 0x10, 0xFC, 0x10, 0x84, 0x02, 0x82, 0x7F, 0x44, 0x22, 0x28, 0x22, 0xFE, 0xFF, 0x10, 0x22, 0x10, 0x22, 0x14, 0x7E, 0xFE, 0x20, 0x10, 0x42, 0x10, 0xBF, 0x14, 0x22, 0xFE, 0x22, 0x10, 0x22, 0x10, 0x3E, 0x10, 0x22, 0x10, 0x10, 0x20, 0x10, 0x20, 0x10, 0x28, 0x1E, 0x24, 0x22, 0x20, 0x33, 0xFE, 0x4A, 0x20, 0xA4, 0x50, 0x14, 0x50, 0x08, 0x88, 0x11, 0x0E, 0x22, 0x04, 0x40, 0x00, 0x24, 0x48, 0x24, 0x46, 0x40, 0x02, 0x11, 0x10, 0x11, 0x18, 0x11, 0xD4, 0x15, 0x50, 0x5A, 0x7E, 0x53, 0x50, 0x54, 0x90, 0x9A, 0x90, 0x11, 0x28, 0x12, 0x28, 0x20, 0x46, 0x28, 0x84, 0x44, 0x00, 0x42, 0xA8, 0x82, 0xA4, 0x04, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0xFF, 0xFE, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x28, 0x20, 0x10, 0x20, 0x80, 0x10, 0x90, 0x43, 0xF8, 0x20, 0x90, 0x08, 0x90, 0x51, 0x12, 0x22, 0x12, 0x25, 0x0E, 0x01, 0x00, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x10, 0x08, 0xFE, 0x1C, 0x00, 0xE0, 0xEE, 0xA8, 0xAA, 0xA8, 0xEE, 0xA8, 0x28, 0xA8, 0xFE, 0xA8, 0x28, 0xA8, 0x7C, 0xA8, 0x28, 0xA8, 0xFE, 0xA8, 0x24, 0xA4, 0x68, 0xAA, 0xA5, 0x38, 0x32, 0x00, 0x20, 0x44, 0x27, 0xFE, 0x20, 0x00, 0x23, 0xB8, 0xFA, 0xA8, 0x23, 0xB8, 0x21, 0x10, 0x27, 0xFC, 0x21, 0x10, 0x23, 0xF8, 0x39, 0x10, 0xEF, 0xFE, 0x41, 0x48, 0x03, 0x30, 0x0D, 0x0E, 0x01, 0x84, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x00, 0x13, 0xB8, 0xFE, 0xA8, 0x13, 0xB8, 0x11, 0x10, 0x1F, 0xFC, 0x31, 0x10, 0xD3, 0xF8, 0x11, 0x10, 0x1F, 0xFE, 0x11, 0x48, 0x13, 0x30, 0x55, 0x0E, 0x21, 0x84, 0x00, 0x44, 0x0F, 0xFE, 0x70, 0x00, 0x53, 0xB8, 0x52, 0xA8, 0x53, 0xB8, 0x51, 0x10, 0x57, 0xFC, 0x51, 0x10, 0x53, 0xF8, 0x51, 0x10, 0x5F, 0xFE, 0x71, 0x48, 0x43, 0x30, 0x0D, 0x0E, 0x01, 0x84, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x40, 0x00, 0x48, 0x00, 0x7C, 0xF0, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x14, 0x40, 0x18, 0x44, 0x17, 0xFE, 0x00, 0x00, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0x38, 0xFC, 0x4F, 0x80, 0x50, 0x50, 0x80, 0x22, 0x20, 0xD2, 0x27, 0x0E, 0x20, 0x08, 0x27, 0xFC, 0x21, 0x20, 0x29, 0x20, 0x31, 0x22, 0x22, 0x22, 0x0C, 0x1E, 0x10, 0x40, 0x10, 0x50, 0x10, 0x48, 0x10, 0x40, 0xFC, 0x44, 0x13, 0xFE, 0x14, 0x40, 0x18, 0x60, 0x30, 0xA0, 0xD0, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x22, 0x11, 0x22, 0x52, 0x1E, 0x24, 0x00, 0x10, 0x80, 0x10, 0x80, 0x20, 0x88, 0x20, 0xFC, 0x47, 0x80, 0xF8, 0x50, 0x10, 0x22, 0x20, 0xD2, 0x47, 0x0E, 0xF8, 0x08, 0x07, 0xFC, 0x01, 0x20, 0x19, 0x20, 0xE1, 0x22, 0x42, 0x22, 0x0C, 0x1E, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x0A, 0x20, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x10, 0x0F, 0xF8, 0x18, 0x10, 0x28, 0x10, 0xCF, 0xF0, 0x02, 0x00, 0x29, 0x88, 0x28, 0x84, 0x48, 0x14, 0x07, 0xF0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x48, 0x7F, 0xFC, 0x08, 0x48, 0x0A, 0x48, 0x1C, 0xC8, 0x68, 0x48, 0x08, 0xA8, 0x08, 0x8A, 0x29, 0x0A, 0x12, 0x04, 0x00, 0x00, 0x48, 0x88, 0x44, 0x46, 0x84, 0x42, 0x00, 0x10, 0x00, 0x78, 0x3F, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x08, 0x17, 0xFC, 0x10, 0x00, 0x30, 0x00, 0x50, 0x00, 0x90, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x20, 0x0E, 0x40, 0x04, 0x00, 0x10, 0x7F, 0xF8, 0x02, 0x10, 0x12, 0x10, 0x12, 0x10, 0x22, 0x10, 0x04, 0x10, 0x18, 0x50, 0x60, 0x20, 0x00, 0x00, 0x04, 0x00, 0x13, 0x00, 0x51, 0x14, 0x50, 0x12, 0x8F, 0xF2, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x15, 0xFE, 0xFE, 0x24, 0x10, 0x24, 0x10, 0xA4, 0x7C, 0xA4, 0x10, 0xA4, 0x11, 0x24, 0xFE, 0x24, 0x12, 0x24, 0x12, 0x44, 0x1A, 0x44, 0x14, 0x84, 0x10, 0x94, 0x13, 0x08, 0x08, 0x00, 0x08, 0x18, 0x0B, 0xE0, 0x10, 0x40, 0x10, 0x40, 0x30, 0x40, 0x50, 0x44, 0x9F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x40, 0x00, 0x40, 0x00, 0x40, 0xF0, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x11, 0x10, 0x15, 0x10, 0x1A, 0x08, 0x12, 0x08, 0x04, 0x06, 0x08, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x09, 0x04, 0x09, 0x04, 0x11, 0x04, 0x21, 0x04, 0x01, 0x04, 0x02, 0x04, 0x02, 0x04, 0x04, 0x04, 0x08, 0x44, 0x10, 0x28, 0x60, 0x10, 0x10, 0x08, 0x10, 0x3C, 0x11, 0xE0, 0x10, 0x20, 0xFC, 0x20, 0x24, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x44, 0x20, 0x28, 0x20, 0x10, 0x20, 0x28, 0x20, 0x44, 0x28, 0x85, 0xFC, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x23, 0xFE, 0x20, 0x44, 0x44, 0x44, 0xF9, 0x44, 0x11, 0x44, 0x22, 0x44, 0x40, 0x44, 0xFC, 0x44, 0x00, 0x84, 0x00, 0x84, 0x1C, 0x84, 0xE1, 0x04, 0x42, 0x28, 0x04, 0x10, 0x10, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x88, 0xFC, 0x88, 0x10, 0x90, 0x14, 0x94, 0x18, 0xBE, 0x30, 0x84, 0xD0, 0x84, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x12, 0x44, 0x54, 0x28, 0x28, 0x10, 0x10, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x61, 0x08, 0xA1, 0x10, 0x21, 0x14, 0x21, 0x3E, 0x21, 0x04, 0x22, 0x04, 0x22, 0x04, 0x22, 0x04, 0x24, 0x44, 0x28, 0x28, 0x30, 0x10, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x00, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x94, 0xFF, 0xFE, 0x00, 0x80, 0x08, 0x80, 0x08, 0x88, 0x08, 0x88, 0x7E, 0x90, 0x08, 0x60, 0x08, 0x40, 0x10, 0xC0, 0x11, 0x20, 0x22, 0x12, 0x4C, 0x0A, 0x00, 0x06, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x28, 0x08, 0x3C, 0x7F, 0xE0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x89, 0x24, 0x12, 0x90, 0x04, 0x40, 0x1F, 0xF0, 0x28, 0x2E, 0xC8, 0x24, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x04, 0x01, 0x00, 0x7F, 0xFC, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x02, 0x10, 0x7F, 0x10, 0x00, 0x10, 0x3E, 0x14, 0x22, 0x7E, 0x22, 0x54, 0x3E, 0x54, 0x00, 0x54, 0x7F, 0x54, 0x63, 0x7C, 0x55, 0x54, 0x7F, 0x10, 0x49, 0x10, 0x49, 0x14, 0x49, 0xFE, 0x43, 0x02, 0x10, 0x80, 0x10, 0x40, 0x17, 0xFE, 0x14, 0x02, 0x59, 0x14, 0x52, 0x48, 0x54, 0xA4, 0x91, 0x10, 0x12, 0x0E, 0x14, 0x04, 0x1B, 0xF8, 0x12, 0x08, 0x2A, 0x08, 0x26, 0x08, 0x43, 0xF8, 0x82, 0x08, 0x40, 0x80, 0x30, 0x40, 0x17, 0xFE, 0x04, 0x02, 0x89, 0x14, 0x62, 0x48, 0x24, 0xA4, 0x01, 0x10, 0x12, 0x0E, 0x24, 0x04, 0xEB, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x84, 0x44, 0x09, 0x30, 0x12, 0x90, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x2F, 0xEE, 0xC8, 0x24, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x10, 0x20, 0x10, 0x30, 0x20, 0x28, 0x27, 0xFE, 0x44, 0x20, 0xF9, 0x24, 0x11, 0x24, 0x21, 0x28, 0x47, 0xE8, 0xF9, 0x28, 0x01, 0x30, 0x01, 0x20, 0x1A, 0x50, 0xE2, 0x92, 0x45, 0x0A, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x44, 0x0F, 0xE0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x44, 0x10, 0x44, 0x20, 0x3C, 0x40, 0x00, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x90, 0x10, 0x60, 0xFB, 0xFC, 0x10, 0xA8, 0x11, 0x20, 0x1A, 0x60, 0x30, 0x44, 0xD7, 0xFE, 0x10, 0xE0, 0x11, 0x50, 0x11, 0x48, 0x12, 0x4E, 0x54, 0x44, 0x20, 0x40, 0x00, 0x00, 0x1F, 0xE0, 0x02, 0x40, 0x01, 0x80, 0x7F, 0xFC, 0x02, 0x88, 0x04, 0x90, 0x19, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x42, 0x84, 0x44, 0x64, 0x49, 0x24, 0x41, 0x04, 0x42, 0x84, 0x44, 0x64, 0x48, 0x24, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x14, 0x40, 0x10, 0x04, 0xFE, 0xFE, 0x22, 0x84, 0x22, 0x84, 0x22, 0x84, 0x42, 0x84, 0x24, 0x84, 0x14, 0x84, 0x08, 0xFC, 0x14, 0x84, 0x62, 0x00, 0x20, 0x10, 0x23, 0xF8, 0x20, 0x40, 0x27, 0xFE, 0xFD, 0x52, 0xAC, 0xE4, 0xA9, 0x50, 0xA8, 0x40, 0xAF, 0xFC, 0xF8, 0x88, 0xA3, 0xFC, 0x22, 0xA8, 0x2A, 0xA8, 0xFA, 0xA8, 0x4A, 0xA8, 0x02, 0x18, 0x10, 0x10, 0x13, 0xF8, 0x10, 0x40, 0x27, 0xFE, 0x25, 0x52, 0x68, 0xE4, 0xA1, 0x50, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x84, 0x27, 0xFE, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0x0C, 0x00, 0x10, 0xFB, 0xF8, 0x08, 0x40, 0x17, 0xFE, 0x25, 0x52, 0x28, 0xE4, 0x21, 0x50, 0x28, 0x44, 0x37, 0xFE, 0xE0, 0x84, 0x27, 0xFE, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0xA4, 0xA4, 0x44, 0x0C, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0xFE, 0xFE, 0x22, 0x84, 0x22, 0x84, 0x22, 0x84, 0x22, 0x84, 0x42, 0x84, 0x24, 0x84, 0x14, 0x84, 0x08, 0x84, 0x14, 0xFC, 0x22, 0x84, 0x40, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x00, 0x2F, 0xF0, 0x20, 0x00, 0x3F, 0xFC, 0x29, 0x10, 0x28, 0xA0, 0x4A, 0x60, 0x8C, 0x1C, 0x00, 0x20, 0xFF, 0xFE, 0x04, 0x20, 0x02, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x02, 0x40, 0x0F, 0x40, 0x70, 0x40, 0x29, 0x40, 0x2A, 0x40, 0x7F, 0x40, 0x02, 0x40, 0x0C, 0x40, 0x08, 0x40, 0x0B, 0x40, 0x0C, 0x40, 0x38, 0x42, 0xC8, 0x42, 0x08, 0x42, 0x28, 0x3E, 0x10, 0x00, 0x20, 0x80, 0x18, 0x80, 0x08, 0x80, 0x80, 0x80, 0x60, 0x84, 0x2F, 0xFE, 0x01, 0x08, 0x09, 0x08, 0x12, 0x08, 0x24, 0x10, 0xE2, 0x10, 0x21, 0x20, 0x20, 0xC0, 0x21, 0x20, 0x22, 0x18, 0x2C, 0x08, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x04, 0x40, 0x08, 0x20, 0x08, 0x20, 0x10, 0x10, 0x20, 0x10, 0x40, 0x0E, 0x80, 0x04, 0x20, 0x08, 0x13, 0xFC, 0x12, 0x00, 0x03, 0xFC, 0xFE, 0x00, 0x0B, 0xFE, 0x12, 0xC4, 0x36, 0xA8, 0x5A, 0x90, 0x94, 0xCE, 0x10, 0x08, 0x17, 0xFE, 0x11, 0x08, 0x10, 0x88, 0x10, 0x28, 0x10, 0x10, 0x10, 0x40, 0x10, 0x40, 0x14, 0x40, 0xFE, 0x7C, 0x20, 0x84, 0x29, 0x08, 0x48, 0x20, 0x7E, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0E, 0x50, 0xF8, 0x50, 0x48, 0x88, 0x08, 0x88, 0x09, 0x06, 0x0A, 0x04, 0x00, 0x08, 0x7D, 0xFC, 0x44, 0x00, 0x48, 0x00, 0x48, 0x04, 0x53, 0xFE, 0x48, 0x90, 0x48, 0x90, 0x44, 0x90, 0x44, 0x90, 0x44, 0x90, 0x68, 0x90, 0x51, 0x12, 0x41, 0x12, 0x42, 0x0E, 0x44, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x02, 0x00, 0x29, 0x08, 0x29, 0x24, 0x48, 0x24, 0x07, 0xE0, 0x10, 0x20, 0x08, 0x10, 0x20, 0x40, 0x66, 0xCC, 0xA5, 0x4A, 0x3C, 0x78, 0x00, 0x00, 0x00, 0x40, 0x14, 0x44, 0xFC, 0x44, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x20, 0x00, 0xFF, 0xFE, 0x20, 0x84, 0x27, 0xFE, 0x24, 0xA4, 0x24, 0xA4, 0x3C, 0xA4, 0xE4, 0xA4, 0x44, 0xA4, 0x04, 0x0C, 0x11, 0x04, 0x10, 0x88, 0x10, 0x50, 0x1C, 0x04, 0x21, 0xFE, 0x21, 0x04, 0x7D, 0x04, 0x91, 0x04, 0x11, 0xFC, 0x7C, 0x90, 0x10, 0x90, 0x10, 0x90, 0x15, 0x12, 0x19, 0x12, 0x12, 0x0E, 0x04, 0x00, 0x20, 0x04, 0x1B, 0xFE, 0x08, 0x04, 0x40, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x04, 0x41, 0x44, 0x4F, 0xE4, 0x41, 0x04, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x04, 0x04, 0x43, 0x7E, 0x31, 0x04, 0x14, 0x24, 0x85, 0xF4, 0x44, 0x44, 0x44, 0x44, 0x14, 0x44, 0x15, 0xF4, 0x24, 0x44, 0xE4, 0x44, 0x24, 0x44, 0x25, 0xF4, 0x24, 0x04, 0x24, 0x14, 0x24, 0x08, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x0A, 0x20, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x10, 0x1F, 0xF8, 0x28, 0x10, 0x48, 0x10, 0x88, 0x10, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x00, 0x04, 0x7E, 0xFE, 0x02, 0x04, 0x02, 0x04, 0x7E, 0xFC, 0x40, 0x80, 0x40, 0x84, 0x7E, 0xFE, 0x22, 0x44, 0x12, 0x24, 0x06, 0x0C, 0x1A, 0x34, 0x62, 0xC4, 0x22, 0x44, 0x02, 0x14, 0x04, 0x08, 0x22, 0x90, 0x22, 0x90, 0x27, 0xD4, 0x22, 0x9E, 0xFA, 0xA4, 0x2F, 0xF4, 0x20, 0x14, 0x2F, 0xD4, 0x34, 0x54, 0xE7, 0xD4, 0x24, 0x48, 0x27, 0xC8, 0x24, 0x54, 0x24, 0x54, 0xA5, 0x62, 0x44, 0x80, 0x00, 0x00, 0x40, 0x04, 0x3F, 0xFE, 0x10, 0xA0, 0x00, 0xA4, 0x87, 0xFE, 0x44, 0xA4, 0x4C, 0xA4, 0x14, 0xA4, 0x24, 0xA4, 0xE5, 0x1C, 0x26, 0x04, 0x24, 0x04, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x7C, 0x20, 0x45, 0xFC, 0x48, 0x88, 0x50, 0x50, 0x49, 0xFE, 0x45, 0x00, 0x45, 0x00, 0x65, 0x00, 0x59, 0x00, 0x41, 0x00, 0x42, 0x00, 0x44, 0x00, 0x08, 0x04, 0x7D, 0xFE, 0x49, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x79, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x49, 0x04, 0x78, 0x00, 0x48, 0x40, 0x4A, 0xA4, 0x4A, 0xA2, 0x4C, 0x8A, 0x48, 0x88, 0x98, 0x78, 0x20, 0x04, 0x21, 0xFE, 0x7D, 0x24, 0x89, 0x24, 0x11, 0xFC, 0x7D, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x7D, 0x04, 0x54, 0x00, 0x54, 0x40, 0x7E, 0xA4, 0x02, 0xA2, 0x1C, 0x8A, 0xE0, 0x88, 0x40, 0x78, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x9F, 0xF4, 0x04, 0x40, 0x1F, 0xF0, 0x04, 0x40, 0x7F, 0xFC, 0x05, 0x40, 0x19, 0x30, 0x67, 0xCE, 0x81, 0x04, 0x01, 0x10, 0x7F, 0xF8, 0x00, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x9F, 0xF4, 0x04, 0x40, 0x1F, 0xF0, 0x04, 0x40, 0x7F, 0xFC, 0x08, 0x20, 0x1F, 0xF0, 0x28, 0x2E, 0xC9, 0x24, 0x09, 0x20, 0x01, 0x00, 0x06, 0xC0, 0x18, 0x30, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x3F, 0xF0, 0x02, 0x10, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x0F, 0xE0, 0x10, 0x10, 0x20, 0x4E, 0xCF, 0xE4, 0x00, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xD1, 0x14, 0x0D, 0x30, 0x05, 0x44, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x24, 0x40, 0x24, 0x40, 0x7E, 0x40, 0x24, 0x84, 0x24, 0xFE, 0xFF, 0x08, 0x02, 0x88, 0x7F, 0x88, 0x42, 0x88, 0x7E, 0x50, 0x42, 0x50, 0x7E, 0x20, 0x42, 0x50, 0x42, 0x48, 0x4A, 0x8E, 0x45, 0x04, 0x1F, 0xF0, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x04, 0x40, 0x08, 0x20, 0x7F, 0xFC, 0x24, 0x48, 0x18, 0x30, 0x66, 0xCC, 0x01, 0x00, 0xFF, 0xFE, 0x05, 0x40, 0x19, 0x30, 0x61, 0x0C, 0x01, 0x00, 0x03, 0xF8, 0x11, 0x10, 0xF8, 0xE0, 0x91, 0x10, 0x92, 0x08, 0x97, 0xBC, 0x94, 0xA4, 0x93, 0x18, 0x94, 0xA4, 0x90, 0x40, 0x9F, 0xFE, 0x90, 0xE0, 0xF1, 0x50, 0x92, 0x4E, 0x0C, 0x44, 0x00, 0x40, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x11, 0x10, 0x0D, 0x30, 0x05, 0x44, 0xFF, 0xFE, 0x10, 0x10, 0x12, 0x20, 0x11, 0x40, 0x10, 0x80, 0x10, 0x40, 0x14, 0x30, 0x18, 0x0E, 0x10, 0x04, 0x10, 0x00, 0x17, 0xFC, 0x10, 0x48, 0x11, 0x10, 0xFC, 0xE0, 0x11, 0x10, 0x16, 0x4E, 0x18, 0x48, 0x33, 0xFC, 0xD2, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x12, 0x40, 0x10, 0x48, 0x57, 0xFC, 0x20, 0x04, 0x08, 0x00, 0xFF, 0xFC, 0x09, 0x24, 0x48, 0x88, 0x48, 0x70, 0x48, 0x88, 0x4B, 0x26, 0x48, 0x24, 0x7D, 0xFE, 0x05, 0x24, 0x1D, 0x24, 0xE5, 0xFC, 0x45, 0x20, 0x04, 0x28, 0x15, 0xFC, 0x08, 0x04, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x04, 0xFC, 0x04, 0x10, 0x04, 0x14, 0x04, 0x19, 0xFC, 0x30, 0x04, 0xD0, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x13, 0xFC, 0x50, 0x04, 0x20, 0x00, 0x10, 0xA0, 0x11, 0x2C, 0x11, 0x24, 0x11, 0x24, 0xFD, 0xAC, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x24, 0x20, 0x45, 0xFC, 0x28, 0x88, 0x10, 0x50, 0x28, 0x20, 0x44, 0x50, 0x84, 0x8E, 0x03, 0x04, 0x04, 0x08, 0x7E, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x3E, 0xF8, 0x08, 0x20, 0x08, 0x28, 0x7E, 0xFC, 0x02, 0x00, 0x01, 0x20, 0x11, 0x40, 0x50, 0x84, 0x51, 0x02, 0x96, 0x0A, 0x18, 0x08, 0x6F, 0xF8, 0x04, 0x00, 0x04, 0x00, 0x07, 0xF0, 0x08, 0x20, 0x08, 0x48, 0x1F, 0xFC, 0x28, 0x88, 0x48, 0x88, 0x08, 0x88, 0x0F, 0xF8, 0x08, 0x08, 0x08, 0x00, 0x08, 0x02, 0x08, 0x02, 0x07, 0xFE, 0x00, 0x00, 0x20, 0x04, 0x1B, 0xFE, 0x08, 0x44, 0x81, 0x44, 0x62, 0x44, 0x20, 0x84, 0x09, 0x14, 0x12, 0x08, 0x24, 0x40, 0xE2, 0x48, 0x22, 0x7C, 0x22, 0x40, 0x22, 0x40, 0x22, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x03, 0x80, 0x05, 0x60, 0x19, 0x1C, 0x61, 0x08, 0x09, 0x20, 0x08, 0x28, 0x7E, 0xFC, 0x08, 0x20, 0x1C, 0x70, 0x2A, 0xAE, 0xC9, 0x24, 0x08, 0x20, 0x08, 0x20, 0x12, 0x08, 0x11, 0x14, 0x17, 0xFE, 0x24, 0x44, 0x25, 0x54, 0x64, 0x44, 0xA7, 0xFC, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x20, 0x40, 0x10, 0x40, 0x81, 0x48, 0x49, 0x46, 0x12, 0x42, 0x24, 0x48, 0xE0, 0x50, 0x20, 0x20, 0x20, 0x40, 0x20, 0x80, 0x23, 0x00, 0x2C, 0x00, 0x00, 0x20, 0x04, 0x20, 0xFE, 0x20, 0x10, 0x20, 0x10, 0xA8, 0x20, 0xA6, 0x20, 0xA2, 0x3D, 0x20, 0x64, 0x24, 0xA4, 0x28, 0x24, 0x10, 0x24, 0x20, 0x24, 0x40, 0x3C, 0x80, 0x23, 0x00, 0x0C, 0x00, 0x10, 0x10, 0x08, 0x30, 0x06, 0xC0, 0x01, 0x00, 0x02, 0xC0, 0x0C, 0x30, 0x31, 0x08, 0x01, 0x00, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x05, 0x00, 0x02, 0x00, 0x20, 0x84, 0x11, 0x84, 0x0A, 0x24, 0x04, 0x24, 0x0A, 0x24, 0x11, 0xA4, 0x64, 0xA4, 0x04, 0x24, 0xFF, 0xE4, 0x04, 0x24, 0x15, 0x24, 0x14, 0x84, 0x24, 0x84, 0x44, 0x04, 0x14, 0x14, 0x08, 0x08, 0x00, 0x40, 0x20, 0x40, 0x18, 0x40, 0x08, 0x40, 0x81, 0x50, 0x61, 0x48, 0x22, 0x46, 0x0A, 0x42, 0x14, 0x48, 0x20, 0x48, 0xE0, 0x50, 0x20, 0x20, 0x20, 0x40, 0x20, 0x80, 0x23, 0x00, 0x2C, 0x00, 0x10, 0x40, 0x10, 0x40, 0x20, 0x40, 0x20, 0x40, 0x49, 0x50, 0xF9, 0x48, 0x12, 0x46, 0x22, 0x42, 0x44, 0x48, 0xF8, 0x48, 0x00, 0x50, 0x00, 0x20, 0x18, 0x40, 0xE0, 0x80, 0x43, 0x00, 0x0C, 0x00, 0x10, 0x80, 0x11, 0x04, 0x17, 0xFE, 0x25, 0x14, 0x24, 0xE4, 0x65, 0x14, 0xA7, 0xFC, 0x22, 0x08, 0x25, 0x06, 0x29, 0xFA, 0x23, 0x08, 0x24, 0x90, 0x28, 0x60, 0x20, 0x90, 0x23, 0x0E, 0x2C, 0x04, 0x00, 0x40, 0x08, 0x40, 0x7C, 0xA0, 0x49, 0x10, 0x4B, 0xFE, 0x4C, 0x44, 0x48, 0x40, 0x4F, 0xFC, 0x48, 0x40, 0x48, 0x48, 0x4B, 0xFC, 0x7A, 0x08, 0x4A, 0x08, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x10, 0x20, 0x10, 0x24, 0x1E, 0x3E, 0x24, 0x44, 0x48, 0xA4, 0xFF, 0x24, 0x01, 0x24, 0x01, 0x28, 0x7F, 0x10, 0x01, 0x28, 0x01, 0x46, 0x7F, 0x84, 0x00, 0x00, 0x44, 0x88, 0x42, 0x46, 0x80, 0x02, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x08, 0x04, 0x4B, 0xFE, 0x48, 0x20, 0x49, 0xFC, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x11, 0x34, 0x11, 0x28, 0x20, 0x20, 0x40, 0x20, 0x00, 0x04, 0x07, 0xFE, 0x78, 0x90, 0x48, 0x94, 0x4B, 0xFE, 0x4A, 0x94, 0x4A, 0x94, 0x7A, 0x94, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0x9C, 0x4B, 0x04, 0x7A, 0x04, 0x4A, 0x04, 0x03, 0xFC, 0x02, 0x04, 0x00, 0x04, 0x17, 0xBE, 0xFC, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0xFC, 0xA4, 0x2F, 0xFE, 0x24, 0xA4, 0x24, 0xA4, 0x3C, 0xA4, 0xE4, 0xA4, 0x44, 0xA4, 0x05, 0xA4, 0x08, 0x44, 0x10, 0x8C, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x09, 0x20, 0x01, 0x08, 0x01, 0xFC, 0x01, 0x00, 0x01, 0x08, 0x1F, 0xFC, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x1F, 0xF8, 0x10, 0x08, 0x08, 0x04, 0x08, 0x08, 0x08, 0x10, 0x08, 0x20, 0xFE, 0xC0, 0x08, 0x04, 0x18, 0x08, 0x1C, 0x10, 0x2A, 0x20, 0x2A, 0xC0, 0x48, 0x02, 0x88, 0x04, 0x08, 0x08, 0x08, 0x10, 0x08, 0x60, 0x09, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x00, 0x00, 0x44, 0x7B, 0xE4, 0x4A, 0x44, 0x4A, 0x54, 0x4A, 0x54, 0x4A, 0x54, 0x4A, 0x54, 0xFF, 0xF4, 0x4A, 0x54, 0x4A, 0x54, 0x4A, 0x54, 0x4A, 0x54, 0x4A, 0x44, 0x5A, 0x44, 0x42, 0x54, 0x84, 0xC8, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x16, 0x04, 0x5A, 0x04, 0x53, 0xFC, 0x52, 0x00, 0x92, 0x44, 0x13, 0xFE, 0x12, 0x44, 0x13, 0x54, 0x2A, 0xCC, 0x25, 0x54, 0x44, 0x44, 0x89, 0x54, 0x00, 0x88, 0x10, 0x04, 0x08, 0x08, 0x08, 0x10, 0xFE, 0x20, 0x02, 0xC0, 0x04, 0x04, 0x08, 0x08, 0x0A, 0x10, 0x1C, 0x20, 0x2A, 0xC0, 0x48, 0x02, 0x08, 0x04, 0x08, 0x08, 0x08, 0x10, 0x08, 0x60, 0x09, 0x80, 0x20, 0x04, 0x1B, 0xFE, 0x08, 0x04, 0x40, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x42, 0x84, 0x42, 0x44, 0x44, 0x24, 0x48, 0x24, 0x40, 0x04, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x00, 0x40, 0x78, 0x40, 0x48, 0x48, 0x57, 0xFC, 0x50, 0x40, 0x62, 0x48, 0x51, 0x50, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x68, 0xA0, 0x50, 0xA0, 0x41, 0x10, 0x42, 0x08, 0x44, 0x0E, 0x48, 0x04, 0x10, 0x40, 0x17, 0xFE, 0x10, 0x00, 0x13, 0xFC, 0xFE, 0x94, 0x12, 0xF4, 0x16, 0x94, 0x1B, 0xFC, 0x30, 0x00, 0xD1, 0xF8, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0xF8, 0x50, 0x00, 0x27, 0xFE, 0x00, 0x80, 0x7C, 0xFC, 0x45, 0x08, 0x57, 0xFE, 0x55, 0x44, 0x55, 0x92, 0x55, 0xFE, 0x55, 0x00, 0x55, 0x7C, 0x55, 0x00, 0x55, 0x7C, 0x55, 0x00, 0x55, 0x7C, 0x2A, 0x44, 0x44, 0x44, 0x88, 0x7C, 0x02, 0x08, 0x79, 0x10, 0x4F, 0xFC, 0x48, 0x40, 0x4B, 0xF8, 0x78, 0x40, 0x4F, 0xFC, 0x4A, 0x48, 0x49, 0x50, 0x7F, 0xFE, 0x48, 0x08, 0x4B, 0xFC, 0x4A, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x9A, 0x08, 0x08, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x09, 0x20, 0x05, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x40, 0x84, 0x44, 0x64, 0x44, 0x24, 0x44, 0x0C, 0x44, 0x14, 0x44, 0x24, 0x44, 0xE4, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x02, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x00, 0x20, 0x04, 0x3F, 0x7E, 0x21, 0x04, 0x29, 0x24, 0x25, 0x14, 0x29, 0x24, 0x51, 0x44, 0x85, 0x14, 0x02, 0x08, 0x12, 0x08, 0x11, 0x10, 0x27, 0xFC, 0x20, 0x40, 0x4B, 0xF8, 0xF8, 0x40, 0x17, 0xFC, 0x22, 0x48, 0x41, 0x50, 0xFF, 0xFE, 0x40, 0x08, 0x03, 0xFC, 0x1A, 0x08, 0xE2, 0x08, 0x43, 0xF8, 0x02, 0x08, 0x10, 0x40, 0x10, 0x24, 0x17, 0xFE, 0x11, 0x08, 0xFC, 0x94, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x94, 0x13, 0x0C, 0x12, 0xF4, 0x1E, 0x94, 0xF2, 0x94, 0x42, 0xF4, 0x02, 0x04, 0x02, 0x14, 0x02, 0x08, 0x09, 0x00, 0x09, 0x00, 0x0A, 0x04, 0x13, 0xFE, 0x14, 0x80, 0x38, 0x80, 0x50, 0x88, 0x97, 0xFC, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x11, 0x08, 0x11, 0x08, 0x12, 0x08, 0x14, 0x50, 0x18, 0x20, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x48, 0x3F, 0xFC, 0x20, 0x08, 0x24, 0x48, 0x28, 0x28, 0x37, 0xD8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x20, 0x28, 0x20, 0x10, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x7F, 0xFE, 0x40, 0x02, 0x8F, 0xE4, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x00, 0x20, 0x08, 0x40, 0x7C, 0x84, 0x4B, 0xFE, 0x4A, 0x04, 0x4A, 0x14, 0x4A, 0xFC, 0x7A, 0x94, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0xF4, 0x7A, 0x94, 0x4A, 0x04, 0x02, 0x14, 0x02, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x01, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x21, 0x08, 0x19, 0x18, 0x09, 0x20, 0x01, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x40, 0x24, 0x4F, 0xF4, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x40, 0x14, 0x40, 0x08, 0x01, 0x00, 0x09, 0x20, 0x05, 0x40, 0x7F, 0xFE, 0x40, 0x02, 0x8F, 0xE4, 0x08, 0x20, 0x0F, 0xE0, 0x01, 0x08, 0x7F, 0xFC, 0x05, 0x10, 0x0C, 0xA0, 0x14, 0x40, 0x25, 0x20, 0x46, 0x1C, 0x04, 0x08, 0x10, 0x20, 0x11, 0x24, 0x10, 0xA4, 0x10, 0xA8, 0xFC, 0x24, 0x11, 0xFE, 0x31, 0x04, 0x39, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x91, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0x14, 0x11, 0x08, 0x10, 0x20, 0x11, 0x24, 0x10, 0xA4, 0x10, 0xA8, 0xFC, 0x24, 0x11, 0xFE, 0x15, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x31, 0x04, 0xD1, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x51, 0x14, 0x21, 0x08, 0x08, 0x20, 0x1D, 0x24, 0xF0, 0xA4, 0x10, 0xA8, 0x10, 0x24, 0xFD, 0xFE, 0x11, 0x04, 0x39, 0x04, 0x35, 0xFC, 0x51, 0x04, 0x51, 0x04, 0x91, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0x14, 0x11, 0x08, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x14, 0xFC, 0x5F, 0x80, 0x50, 0x50, 0x50, 0x22, 0x90, 0xD2, 0x17, 0x0E, 0x10, 0x08, 0x17, 0xFC, 0x29, 0x20, 0x25, 0x20, 0x45, 0x22, 0x82, 0x22, 0x0C, 0x1E, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x08, 0x20, 0x08, 0x24, 0x08, 0x43, 0x08, 0x81, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x50, 0x00, 0x20, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x3F, 0xFE, 0x20, 0x04, 0x40, 0x04, 0x80, 0x04, 0x04, 0x04, 0x02, 0x04, 0x03, 0x04, 0x01, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x28, 0x00, 0x10, 0x10, 0x04, 0x08, 0xFE, 0x7F, 0x24, 0x00, 0x24, 0x22, 0x24, 0x14, 0x44, 0xFF, 0x54, 0x02, 0x88, 0x3F, 0x04, 0x22, 0xFE, 0x22, 0x84, 0x3E, 0x84, 0x22, 0x84, 0x22, 0x84, 0x3E, 0xFC, 0x22, 0x84, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x20, 0x09, 0x10, 0x11, 0x0C, 0x11, 0x04, 0x21, 0x10, 0x41, 0x10, 0x01, 0x20, 0x01, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x70, 0x00, 0x00, 0x20, 0x09, 0x24, 0x7C, 0xA4, 0x48, 0xA8, 0x48, 0x24, 0x49, 0xFE, 0x49, 0x04, 0x49, 0x04, 0x49, 0xFC, 0x49, 0x04, 0x49, 0x04, 0x79, 0xFC, 0x49, 0x04, 0x01, 0x04, 0x01, 0x14, 0x01, 0x08, 0x02, 0x00, 0xFF, 0xFC, 0x22, 0x84, 0x22, 0x84, 0x22, 0x88, 0x42, 0x88, 0x4A, 0x90, 0x84, 0x88, 0x02, 0x84, 0x7F, 0x82, 0x42, 0xC2, 0x42, 0xA2, 0x42, 0x94, 0x7E, 0x88, 0x42, 0x80, 0x00, 0x80, 0x10, 0x04, 0x13, 0xFE, 0x20, 0x84, 0x20, 0x84, 0x44, 0x84, 0xF9, 0x04, 0x11, 0x04, 0x22, 0x14, 0x44, 0x08, 0xFC, 0x04, 0x01, 0xFE, 0x01, 0x04, 0x1D, 0x04, 0xE1, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x02, 0x00, 0x02, 0x08, 0xFF, 0xFC, 0x04, 0x40, 0x0A, 0x20, 0x32, 0x5E, 0xCF, 0xE4, 0x02, 0x80, 0x7F, 0xFE, 0x04, 0x10, 0x0F, 0xF8, 0x38, 0x10, 0xCF, 0xF0, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x04, 0x20, 0x7E, 0x20, 0x44, 0x50, 0x54, 0x88, 0x55, 0x06, 0x56, 0xF8, 0x54, 0x00, 0x54, 0x04, 0x57, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x10, 0xA8, 0x29, 0xA6, 0x26, 0x22, 0x44, 0xA0, 0x80, 0x40, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x11, 0xFE, 0x7D, 0x02, 0x56, 0x04, 0x54, 0x80, 0x54, 0x88, 0x54, 0x98, 0x7C, 0xA0, 0x50, 0xC0, 0x14, 0x80, 0x1C, 0x82, 0xE4, 0x82, 0x40, 0x7E, 0x00, 0x00, 0x00, 0x20, 0x00, 0xF0, 0x1F, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x37, 0xCE, 0xC1, 0x04, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x08, 0x20, 0x08, 0x20, 0x0A, 0x20, 0x7F, 0x24, 0x08, 0x7E, 0x0A, 0x84, 0xFF, 0x44, 0x14, 0x44, 0x14, 0x48, 0x56, 0x28, 0x55, 0x28, 0x94, 0x10, 0x14, 0x28, 0x24, 0x28, 0x44, 0x46, 0x8C, 0x84, 0x10, 0x08, 0x13, 0xFC, 0x11, 0x08, 0x11, 0xF8, 0xFD, 0x08, 0x11, 0xF8, 0x15, 0x08, 0x1B, 0xFE, 0x30, 0x08, 0xD7, 0xBC, 0x14, 0xA4, 0x12, 0xA8, 0x11, 0x10, 0x12, 0xA8, 0x54, 0x46, 0x28, 0x04, 0x08, 0x08, 0x12, 0x08, 0x3F, 0x08, 0x22, 0x08, 0x22, 0x08, 0x3F, 0xFE, 0x22, 0x08, 0x3E, 0x08, 0x22, 0x88, 0x22, 0x48, 0xFE, 0x48, 0x0A, 0x08, 0x12, 0x08, 0x22, 0x08, 0xCA, 0x28, 0x04, 0x10, 0x10, 0x08, 0x13, 0xFC, 0x11, 0x08, 0x59, 0xF8, 0x55, 0x08, 0x51, 0xF8, 0x91, 0x08, 0x17, 0xFE, 0x10, 0x08, 0x17, 0xBC, 0x14, 0xA4, 0x12, 0xA8, 0x11, 0x10, 0x12, 0xA8, 0x14, 0x46, 0x18, 0x04, 0x00, 0x40, 0x40, 0x48, 0x32, 0x7C, 0x12, 0x40, 0x82, 0x40, 0x62, 0x44, 0x2F, 0xFE, 0x08, 0x40, 0x10, 0x44, 0x22, 0x44, 0xE2, 0x48, 0x24, 0x50, 0x20, 0x20, 0x20, 0xC0, 0x23, 0x00, 0x2C, 0x00, 0x20, 0x40, 0x10, 0x40, 0x10, 0x40, 0x00, 0x40, 0xFC, 0x48, 0x0B, 0xFC, 0x10, 0x40, 0x38, 0x40, 0x54, 0x40, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x01, 0xF0, 0x21, 0x10, 0x11, 0x10, 0x11, 0x10, 0x01, 0x10, 0x02, 0x0E, 0xF4, 0x00, 0x13, 0xF8, 0x11, 0x08, 0x11, 0x10, 0x10, 0x90, 0x10, 0xA0, 0x14, 0x40, 0x18, 0xB0, 0x13, 0x0E, 0x0C, 0x04, 0x00, 0x20, 0x04, 0x20, 0xFE, 0x24, 0x11, 0xFE, 0x11, 0x24, 0x21, 0x24, 0x25, 0x24, 0x7F, 0xFC, 0xA5, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x3D, 0x24, 0x24, 0x20, 0x00, 0x20, 0x00, 0x20, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x20, 0x08, 0x24, 0x7D, 0xFE, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x79, 0xFC, 0x49, 0x24, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x08, 0x40, 0x08, 0x40, 0x08, 0x44, 0x17, 0xFE, 0x14, 0x44, 0x34, 0x44, 0x54, 0x44, 0x97, 0xFC, 0x14, 0x44, 0x14, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x01, 0x00, 0x02, 0x10, 0x0F, 0xF8, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x0F, 0xF2, 0x08, 0x14, 0x08, 0x18, 0x7F, 0xF0, 0x00, 0x50, 0x00, 0x90, 0x03, 0x10, 0x1C, 0x10, 0xE0, 0x50, 0x00, 0x20, 0x00, 0x00, 0x47, 0xFE, 0x34, 0x02, 0x18, 0xA4, 0x81, 0x10, 0x62, 0x48, 0x20, 0x40, 0x08, 0x44, 0x17, 0xFE, 0x20, 0xE0, 0xE1, 0x50, 0x22, 0x4E, 0x2C, 0x44, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x00, 0x11, 0x08, 0xFD, 0x7C, 0x25, 0x00, 0x25, 0x04, 0x25, 0xFE, 0x25, 0x54, 0x45, 0x58, 0x29, 0x50, 0x12, 0x48, 0x2A, 0x48, 0x44, 0x56, 0x88, 0x64, 0x00, 0x40, 0x10, 0x20, 0x10, 0x20, 0x20, 0x24, 0x21, 0xFE, 0x45, 0x24, 0xF9, 0x24, 0x11, 0x24, 0x21, 0xFC, 0x41, 0x24, 0xFD, 0x24, 0x01, 0x24, 0x01, 0xFC, 0x1D, 0x24, 0xE0, 0x20, 0x40, 0x20, 0x00, 0x20, 0x20, 0x20, 0x10, 0x20, 0x10, 0x24, 0xFD, 0xFE, 0x09, 0x24, 0x11, 0x24, 0x39, 0x24, 0x55, 0xFC, 0x91, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x11, 0x24, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x00, 0x80, 0x40, 0x80, 0x30, 0x80, 0x17, 0xFC, 0x84, 0x84, 0x68, 0x88, 0x20, 0xC0, 0x09, 0x40, 0x11, 0x40, 0x21, 0x40, 0xE1, 0x40, 0x22, 0x40, 0x22, 0x42, 0x24, 0x42, 0x28, 0x3E, 0x30, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x04, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFE, 0x12, 0x22, 0xFC, 0x20, 0x25, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x45, 0x24, 0x29, 0x24, 0x11, 0xFC, 0x29, 0x24, 0x44, 0x20, 0x80, 0x20, 0x00, 0x20, 0x08, 0x20, 0x08, 0x28, 0xFF, 0xFC, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x10, 0x00, 0x12, 0x20, 0x14, 0x10, 0x10, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x08, 0x00, 0x4B, 0xF8, 0x49, 0x10, 0x48, 0xA0, 0x48, 0x40, 0x48, 0xA0, 0x49, 0x10, 0x4A, 0x0E, 0x1F, 0xF4, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x5B, 0xF8, 0x56, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x1F, 0xFE, 0x11, 0x10, 0x12, 0x0C, 0x14, 0x04, 0x40, 0x80, 0x31, 0x20, 0x12, 0x10, 0x07, 0xF8, 0x80, 0x80, 0x6F, 0xFC, 0x21, 0x20, 0x0A, 0x50, 0x14, 0x8E, 0x29, 0x24, 0xE2, 0x40, 0x20, 0x90, 0x23, 0x20, 0x20, 0x40, 0x21, 0x80, 0x26, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x7F, 0xFC, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x01, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x08, 0x3F, 0xFC, 0x21, 0x00, 0x41, 0x00, 0x41, 0x00, 0x81, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x51, 0x24, 0x51, 0x24, 0x7D, 0xFC, 0x91, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x7C, 0x40, 0x13, 0xFC, 0x10, 0x44, 0x10, 0x44, 0x1C, 0x84, 0xF0, 0x84, 0x41, 0x28, 0x02, 0x10, 0x08, 0x20, 0x28, 0x20, 0x29, 0x20, 0x29, 0x28, 0x3F, 0xFC, 0x4A, 0x20, 0x8C, 0x20, 0x0A, 0x28, 0x0D, 0xFC, 0x38, 0x20, 0xC8, 0x20, 0x08, 0x20, 0x08, 0x24, 0x0B, 0xFE, 0x08, 0x00, 0x08, 0x00, 0x01, 0x20, 0x07, 0xA0, 0x7C, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x24, 0xFF, 0xFE, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x00, 0x20, 0x10, 0x08, 0x13, 0xFC, 0x22, 0x08, 0x22, 0x08, 0x4B, 0xF8, 0xF8, 0x44, 0x17, 0xFE, 0x24, 0x44, 0x44, 0x44, 0xFF, 0xFC, 0x44, 0x44, 0x04, 0x44, 0x1F, 0xFC, 0xE4, 0x40, 0x40, 0x42, 0x00, 0x3E, 0x01, 0x00, 0x09, 0x20, 0x09, 0x10, 0x11, 0x0C, 0x11, 0x24, 0x20, 0xC0, 0x03, 0x00, 0x0C, 0x08, 0x3F, 0xFC, 0xC8, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x00, 0xA0, 0x00, 0x90, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x88, 0x3E, 0x88, 0x22, 0x50, 0x22, 0x50, 0x4A, 0x22, 0x44, 0xD2, 0x80, 0x0E, 0x1F, 0xF0, 0x12, 0x90, 0x12, 0x94, 0xFF, 0xFE, 0x00, 0x00, 0x03, 0x84, 0x3C, 0x04, 0x04, 0x84, 0xFF, 0xD4, 0x04, 0x14, 0x15, 0x14, 0x75, 0xD4, 0x15, 0x14, 0x75, 0xD4, 0x0C, 0x14, 0x16, 0x14, 0x25, 0x94, 0x44, 0x84, 0x04, 0x04, 0x04, 0x14, 0x04, 0x08, 0x08, 0x20, 0x7C, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49, 0x28, 0x79, 0xFC, 0x4A, 0x20, 0x4C, 0x20, 0x48, 0x28, 0x79, 0xFC, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x48, 0x24, 0x4B, 0xFE, 0x98, 0x00, 0x00, 0x00, 0x3F, 0xF8, 0x10, 0x10, 0x0C, 0x60, 0x02, 0x80, 0x01, 0x00, 0x02, 0xC0, 0x0C, 0x30, 0x31, 0x0E, 0xC1, 0x24, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x04, 0x0B, 0xFE, 0x48, 0x20, 0x48, 0x24, 0x49, 0xFE, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x11, 0x34, 0x11, 0x28, 0x20, 0x20, 0x40, 0x20, 0x01, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x10, 0x1F, 0xF8, 0x21, 0x00, 0x41, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x10, 0x0E, 0x60, 0x04, 0x01, 0x04, 0x89, 0xFE, 0x51, 0x10, 0x25, 0x10, 0x55, 0x7C, 0x95, 0x54, 0x15, 0x54, 0x15, 0x54, 0x35, 0x54, 0x55, 0x54, 0x95, 0x54, 0x15, 0x54, 0x11, 0x54, 0x12, 0x5C, 0x54, 0x10, 0x20, 0x10, 0x20, 0x80, 0x10, 0x80, 0x14, 0x84, 0xFE, 0xFE, 0x21, 0x20, 0x22, 0x20, 0x3D, 0x24, 0x25, 0x3E, 0x25, 0xE4, 0x27, 0x24, 0x25, 0x34, 0x25, 0x28, 0x25, 0x22, 0x45, 0x02, 0x94, 0xFE, 0x08, 0x00, 0x00, 0x08, 0x47, 0xFC, 0x34, 0x08, 0x14, 0x08, 0x87, 0xF8, 0x64, 0x08, 0x24, 0x08, 0x0F, 0xF8, 0x11, 0x20, 0x21, 0x20, 0xE9, 0x24, 0x25, 0x28, 0x23, 0x30, 0x21, 0x24, 0x3F, 0xFE, 0x20, 0x00, 0x00, 0x40, 0x20, 0x48, 0x13, 0xFC, 0x10, 0x40, 0x00, 0x44, 0x07, 0xFE, 0xF0, 0x10, 0x10, 0x14, 0x17, 0xFE, 0x10, 0x10, 0x11, 0x10, 0x10, 0x90, 0x14, 0x10, 0x18, 0x10, 0x10, 0x50, 0x00, 0x20, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x10, 0x7F, 0xF8, 0x00, 0x90, 0x03, 0xD0, 0x7C, 0x10, 0x04, 0x90, 0x3F, 0xD0, 0x24, 0x90, 0x24, 0x90, 0x24, 0x90, 0x3F, 0x90, 0x04, 0x10, 0x04, 0x92, 0x07, 0xCA, 0x7C, 0x46, 0x20, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x08, 0x1F, 0xFC, 0x28, 0x08, 0x48, 0x08, 0x88, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0xFD, 0x10, 0x12, 0x08, 0x15, 0xF6, 0x1C, 0x00, 0x30, 0x08, 0xD3, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x53, 0xF8, 0x22, 0x08, 0x00, 0x08, 0x04, 0x08, 0x7E, 0x08, 0x44, 0x08, 0x47, 0xFE, 0x44, 0x08, 0x44, 0x08, 0x7C, 0x88, 0x44, 0x48, 0x44, 0x48, 0x44, 0x08, 0x44, 0x08, 0x7C, 0x08, 0x44, 0x48, 0x00, 0x28, 0x00, 0x10, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x10, 0x40, 0x30, 0x44, 0x5F, 0xFE, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x0A, 0x30, 0x31, 0x0E, 0xDF, 0xF4, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x13, 0x20, 0x10, 0xC0, 0x14, 0x30, 0x18, 0x18, 0x10, 0x08, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x3D, 0xFE, 0x25, 0x24, 0x49, 0x24, 0x41, 0x24, 0xA1, 0x24, 0x21, 0x24, 0x21, 0xFC, 0x21, 0x24, 0x24, 0x20, 0x28, 0x24, 0x30, 0x3E, 0x23, 0xC2, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x48, 0x02, 0x86, 0x84, 0x02, 0x80, 0x10, 0x80, 0x0C, 0x80, 0x04, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x18, 0x0C, 0x60, 0x04, 0x20, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x02, 0x08, 0x02, 0x08, 0xF2, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x00, 0x15, 0x20, 0x19, 0x10, 0x12, 0x08, 0x04, 0x04, 0x08, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x05, 0x80, 0x08, 0x60, 0x30, 0x1E, 0xC0, 0x04, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10, 0x1F, 0xF8, 0x11, 0x00, 0x21, 0x00, 0x41, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x1C, 0x60, 0x08, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x20, 0x40, 0x27, 0xFC, 0x64, 0x44, 0xA4, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x22, 0x40, 0x21, 0x80, 0x20, 0xC0, 0x21, 0x30, 0x26, 0x0E, 0x28, 0x04, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x04, 0x20, 0x04, 0x3F, 0xFC, 0x20, 0x84, 0x24, 0x90, 0x22, 0xA4, 0x3F, 0xFE, 0x20, 0x80, 0x21, 0xC0, 0x22, 0xA0, 0x44, 0x90, 0x48, 0x8E, 0x90, 0x84, 0x00, 0x80, 0x08, 0x20, 0xFC, 0x20, 0x08, 0x24, 0x49, 0xFE, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x7D, 0xFC, 0x04, 0x20, 0x04, 0xA0, 0x1C, 0x40, 0xE4, 0x60, 0x44, 0x90, 0x15, 0x0E, 0x0A, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x80, 0xFC, 0x88, 0x25, 0x04, 0x27, 0xFE, 0x24, 0x02, 0x24, 0x04, 0x49, 0xFE, 0x29, 0x04, 0x11, 0x04, 0x29, 0x04, 0x45, 0x04, 0x85, 0xFC, 0x01, 0x04, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x90, 0x00, 0x84, 0xFF, 0xFE, 0x00, 0x80, 0x00, 0x80, 0x3E, 0x80, 0x08, 0x80, 0x08, 0x40, 0x08, 0x40, 0x09, 0x20, 0x0E, 0x22, 0x70, 0x12, 0x20, 0x0A, 0x00, 0x04, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x09, 0x20, 0x19, 0x18, 0x21, 0x0C, 0x41, 0x04, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x01, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0xF0, 0x11, 0x10, 0x10, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x00, 0x00, 0x10, 0x40, 0x10, 0x20, 0x10, 0x04, 0x13, 0xFE, 0xFC, 0x20, 0x10, 0x24, 0x31, 0xFE, 0x39, 0x24, 0x55, 0x24, 0x51, 0x24, 0x91, 0x24, 0x11, 0x24, 0x11, 0x34, 0x11, 0x28, 0x10, 0x20, 0x10, 0x20, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x08, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xF8, 0x01, 0x08, 0x05, 0x00, 0x02, 0x00, 0x10, 0x20, 0x10, 0x28, 0x10, 0x24, 0x10, 0x20, 0xFF, 0xFE, 0x10, 0x20, 0x14, 0x20, 0x1B, 0xE0, 0x31, 0x20, 0xD1, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0xD2, 0x17, 0x12, 0x52, 0x0A, 0x20, 0x04, 0x08, 0x08, 0x7E, 0xF0, 0x08, 0x80, 0x1C, 0xFC, 0x68, 0x90, 0x0A, 0x90, 0x19, 0x14, 0xFF, 0xFE, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x04, 0x42, 0x78, 0x22, 0x40, 0x2F, 0xC0, 0x02, 0x40, 0x02, 0x7E, 0xE3, 0x48, 0x26, 0x48, 0x2A, 0x48, 0x22, 0x48, 0x22, 0x88, 0x2B, 0x08, 0x24, 0x08, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x08, 0x40, 0x08, 0x48, 0x7D, 0xFC, 0x08, 0x48, 0x1C, 0x48, 0xE9, 0x88, 0x08, 0xCA, 0x29, 0x2A, 0x12, 0x06, 0x02, 0x00, 0x7F, 0xF8, 0x02, 0x08, 0x04, 0x08, 0x08, 0x88, 0x10, 0x50, 0x60, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x09, 0x20, 0x09, 0xF0, 0x09, 0x00, 0x15, 0x00, 0x23, 0x06, 0x40, 0xFC, 0x00, 0x80, 0x00, 0x88, 0x7B, 0xF0, 0x48, 0xA4, 0x4F, 0xFE, 0x48, 0x80, 0x49, 0xF0, 0x4A, 0x82, 0x4C, 0x7E, 0x48, 0x08, 0x4B, 0xFC, 0x7A, 0x08, 0x4B, 0xF8, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x02, 0x10, 0x02, 0x10, 0x7B, 0xDE, 0x4D, 0x28, 0x48, 0x84, 0x48, 0x00, 0x4F, 0xFC, 0x48, 0x40, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x7D, 0x54, 0x48, 0xE2, 0x00, 0x40, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x38, 0x47, 0xC0, 0x30, 0x40, 0x10, 0x44, 0x0F, 0xFE, 0x00, 0x40, 0xF0, 0x48, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x10, 0x44, 0x3F, 0xFE, 0x50, 0x40, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x30, 0x44, 0x5F, 0xFE, 0x90, 0x10, 0x10, 0x10, 0x17, 0xFC, 0x10, 0x10, 0x12, 0x10, 0x11, 0x10, 0x11, 0x10, 0x10, 0x50, 0x10, 0x20, 0x04, 0x00, 0xF9, 0xFC, 0x10, 0x88, 0x54, 0x50, 0x38, 0x20, 0x10, 0x50, 0xFE, 0x8E, 0x13, 0x24, 0x30, 0x20, 0x39, 0xFC, 0x54, 0x20, 0x50, 0x24, 0x93, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x20, 0x80, 0x20, 0x80, 0x20, 0x84, 0x3C, 0xFE, 0x25, 0x20, 0x4A, 0x24, 0x41, 0xFE, 0xA1, 0x24, 0x21, 0x24, 0x21, 0x24, 0x21, 0x24, 0x25, 0x24, 0x29, 0x34, 0x31, 0x28, 0x20, 0x20, 0x00, 0x20, 0x00, 0x20, 0x20, 0xF0, 0x3F, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x08, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x20, 0x40, 0x24, 0x40, 0x28, 0x22, 0x30, 0x12, 0x60, 0x0A, 0x00, 0x06, 0x02, 0x00, 0x01, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x21, 0x10, 0x01, 0x00, 0x01, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x58, 0x40, 0x54, 0x44, 0x57, 0xFE, 0x90, 0x10, 0x10, 0x10, 0x17, 0xFC, 0x10, 0x10, 0x12, 0x10, 0x11, 0x10, 0x11, 0x10, 0x10, 0x50, 0x10, 0x20, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x14, 0x3F, 0xF8, 0x04, 0x00, 0x08, 0x20, 0x1F, 0xF0, 0x01, 0x10, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x20, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x02, 0x48, 0xFE, 0x48, 0x0A, 0x48, 0x12, 0x48, 0x32, 0x48, 0x5A, 0x48, 0x96, 0x68, 0x12, 0xA8, 0x10, 0xA0, 0x11, 0x22, 0x11, 0x22, 0x12, 0x1E, 0x14, 0x00, 0x00, 0x20, 0x40, 0x28, 0x20, 0x24, 0x20, 0x20, 0x0F, 0xFE, 0x00, 0x20, 0xE0, 0x20, 0x27, 0xE0, 0x21, 0x20, 0x21, 0x10, 0x21, 0x10, 0x21, 0x10, 0x29, 0xD2, 0x37, 0x12, 0x22, 0x0A, 0x00, 0x04, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x48, 0x84, 0x48, 0xFE, 0x49, 0x08, 0x49, 0x88, 0x4A, 0x88, 0x48, 0x88, 0x58, 0x50, 0x68, 0x50, 0x48, 0x20, 0x08, 0x50, 0x08, 0x88, 0x09, 0x0E, 0x0E, 0x04, 0x00, 0x10, 0x00, 0xF8, 0x7F, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x24, 0x00, 0x20, 0x00, 0x28, 0x7F, 0xFC, 0x00, 0x20, 0x08, 0x20, 0x04, 0x20, 0x04, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x02, 0x00, 0x02, 0x08, 0x7F, 0xFC, 0x02, 0x00, 0x3F, 0xF8, 0x04, 0x00, 0xFF, 0xFE, 0x08, 0x10, 0x08, 0x14, 0x17, 0xFE, 0x10, 0x10, 0x22, 0x10, 0x41, 0x10, 0x81, 0x10, 0x00, 0x50, 0x00, 0x20, 0x10, 0x0C, 0x13, 0xF0, 0x10, 0x00, 0x11, 0x24, 0xFC, 0xA8, 0x13, 0xFE, 0x12, 0x02, 0x1C, 0x04, 0x31, 0xFC, 0xD1, 0x04, 0x10, 0x88, 0x10, 0x50, 0x10, 0x20, 0x10, 0x50, 0x51, 0x8E, 0x26, 0x04, 0x09, 0x00, 0x08, 0x88, 0x0F, 0xFC, 0x10, 0x80, 0x3F, 0xF8, 0x50, 0x80, 0x9F, 0xF8, 0x10, 0x80, 0x1F, 0xFE, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x1F, 0xF8, 0x10, 0x08, 0x00, 0x78, 0x3F, 0x80, 0x11, 0x10, 0x09, 0x10, 0x09, 0x20, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0x1F, 0xF0, 0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x06, 0xC0, 0x18, 0x3C, 0x60, 0x08, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x22, 0x80, 0xAC, 0xB8, 0x68, 0x88, 0x2E, 0xB8, 0x28, 0x88, 0x2F, 0xF8, 0x60, 0x80, 0xAF, 0xF0, 0x22, 0x20, 0x21, 0x40, 0x40, 0x80, 0x83, 0x60, 0x1C, 0x1C, 0x08, 0x20, 0x04, 0x48, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x24, 0xFD, 0xFE, 0x08, 0x40, 0x10, 0x88, 0x51, 0xFC, 0x5C, 0x00, 0x50, 0xA8, 0x50, 0xA8, 0x5E, 0xAA, 0xF0, 0xAA, 0x41, 0x26, 0x02, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x00, 0x12, 0x08, 0xFE, 0x88, 0x12, 0x50, 0x32, 0x50, 0x3A, 0x20, 0x56, 0x20, 0x52, 0x50, 0x92, 0x48, 0x12, 0x88, 0x12, 0x00, 0x12, 0x04, 0x13, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0xFC, 0x20, 0x10, 0x40, 0x30, 0x88, 0x39, 0xFC, 0x54, 0x00, 0x50, 0xA8, 0x90, 0xA8, 0x10, 0xA8, 0x10, 0xAA, 0x11, 0x2A, 0x12, 0x26, 0x14, 0x20, 0x00, 0x40, 0x0A, 0x40, 0xFE, 0x48, 0x23, 0xFC, 0x22, 0x40, 0x3C, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0xC0, 0xB0, 0xE0, 0x11, 0x50, 0x22, 0x4E, 0x44, 0x44, 0x88, 0x40, 0x00, 0x40, 0x00, 0x40, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x10, 0x10, 0xA0, 0xFC, 0x40, 0x10, 0x40, 0x17, 0xFE, 0x18, 0x42, 0x30, 0x44, 0xD0, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x51, 0x40, 0x20, 0x80, 0x20, 0x40, 0x20, 0xA0, 0x28, 0xA0, 0xFD, 0x10, 0x22, 0x0E, 0x45, 0xF4, 0x50, 0x00, 0x93, 0xC4, 0xFA, 0x54, 0x13, 0xD4, 0x3A, 0x54, 0xD3, 0xD4, 0x12, 0x54, 0x12, 0x44, 0x12, 0x44, 0x12, 0xCC, 0x08, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x08, 0xFC, 0x08, 0x84, 0x0A, 0x84, 0xFF, 0x48, 0x08, 0x48, 0x08, 0x48, 0x2C, 0x50, 0x2B, 0x20, 0x49, 0x50, 0x48, 0x50, 0x88, 0x88, 0x29, 0x0E, 0x12, 0x04, 0x08, 0x00, 0x08, 0xFC, 0x14, 0x04, 0x22, 0x48, 0x41, 0x28, 0xBE, 0x10, 0x09, 0xFE, 0x08, 0x12, 0x7F, 0x14, 0x0A, 0x10, 0x3F, 0x10, 0x22, 0x10, 0x22, 0x10, 0x22, 0x10, 0x3E, 0x50, 0x22, 0x20, 0x02, 0x00, 0x42, 0x00, 0x33, 0x80, 0x12, 0x7C, 0x82, 0x44, 0x62, 0x44, 0x2F, 0xC4, 0x0A, 0x44, 0x12, 0x28, 0x27, 0x28, 0xEA, 0x90, 0x32, 0x10, 0x22, 0x28, 0x2A, 0x46, 0x24, 0x84, 0x21, 0x00, 0x00, 0x40, 0x00, 0x20, 0x3C, 0x24, 0x0B, 0xFE, 0x10, 0x20, 0x10, 0x40, 0x10, 0x88, 0x5D, 0xFC, 0x50, 0x00, 0x50, 0xA8, 0x50, 0xA8, 0x50, 0xA8, 0x5C, 0xAA, 0xF1, 0x2A, 0x42, 0x26, 0x04, 0x20, 0x02, 0x00, 0x02, 0x10, 0x02, 0x0C, 0x7F, 0xE4, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0xFF, 0xFC, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x28, 0x02, 0x10, 0x02, 0x00, 0x04, 0x20, 0x7E, 0x28, 0x45, 0xFC, 0x54, 0x20, 0x54, 0x20, 0x57, 0xFE, 0x54, 0x82, 0x54, 0x54, 0x55, 0x10, 0x54, 0x90, 0x54, 0x14, 0x55, 0xFE, 0x28, 0x20, 0x24, 0x50, 0x44, 0x8C, 0x83, 0x04, 0x10, 0x40, 0x0A, 0x40, 0xFF, 0x40, 0x00, 0x48, 0x7F, 0xFC, 0x42, 0x48, 0x7E, 0x48, 0x00, 0x48, 0x7E, 0xC8, 0x04, 0x68, 0x08, 0x58, 0x1E, 0x88, 0xE8, 0x89, 0x09, 0x09, 0x2A, 0x03, 0x14, 0x00, 0x08, 0x40, 0xFF, 0x40, 0x00, 0x48, 0x7E, 0xFC, 0x42, 0x48, 0x7E, 0x48, 0x00, 0xC8, 0x7E, 0x48, 0x04, 0xA8, 0x08, 0x8A, 0x7C, 0x8A, 0x09, 0x06, 0x1A, 0x00, 0x44, 0x88, 0x42, 0x46, 0x82, 0x42, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x02, 0x20, 0x3F, 0xF0, 0x02, 0x84, 0xFF, 0xFE, 0x0C, 0x00, 0x1F, 0xF8, 0x30, 0x08, 0xDF, 0xF8, 0x10, 0x08, 0x1F, 0xF8, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x14, 0x1F, 0xF8, 0x02, 0x20, 0x3F, 0xF0, 0x02, 0x84, 0xFF, 0xFE, 0x04, 0x08, 0x0F, 0xFC, 0x38, 0x08, 0xCF, 0xF8, 0x08, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x00, 0x04, 0x0B, 0xFE, 0x7E, 0x94, 0x4A, 0x94, 0x4B, 0xFC, 0x48, 0x48, 0x4B, 0xFC, 0x78, 0x50, 0x4F, 0xFE, 0x48, 0x40, 0x49, 0xFC, 0x49, 0x04, 0x7B, 0xFC, 0x4D, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x02, 0x20, 0x3F, 0xF0, 0x02, 0x44, 0xFF, 0xFE, 0x03, 0x00, 0x0C, 0x08, 0x3F, 0xFC, 0xC8, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x10, 0x04, 0x3F, 0xFE, 0x42, 0x04, 0xBF, 0xE4, 0x22, 0x24, 0x22, 0x24, 0x3F, 0xE4, 0x02, 0x24, 0x03, 0xF4, 0x7E, 0x14, 0x20, 0x08, 0x00, 0xF0, 0x3F, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x30, 0x32, 0x90, 0x04, 0x40, 0x09, 0x30, 0x39, 0x2E, 0xC5, 0x44, 0x03, 0x80, 0x0D, 0x60, 0x31, 0x18, 0x05, 0x08, 0x02, 0x00, 0x0C, 0x08, 0x71, 0xFC, 0x40, 0x08, 0x7C, 0xF8, 0x40, 0x08, 0x7F, 0xF8, 0x02, 0x00, 0x52, 0x90, 0x4A, 0x50, 0x42, 0x10, 0x52, 0x90, 0x4A, 0x50, 0x42, 0x10, 0x73, 0x8A, 0xC6, 0x0A, 0x00, 0x06, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x00, 0x2F, 0xF8, 0x20, 0x80, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x20, 0x84, 0x3F, 0xFE, 0x50, 0x84, 0x50, 0x94, 0x57, 0xF4, 0x90, 0x14, 0x10, 0x08, 0x01, 0x00, 0x01, 0x40, 0x01, 0x30, 0x01, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x40, 0xA0, 0x20, 0x90, 0x20, 0x80, 0x0F, 0xFC, 0x00, 0x80, 0xE1, 0xC0, 0x22, 0xA0, 0x24, 0x98, 0x28, 0x88, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x17, 0xC8, 0xFC, 0x7E, 0x14, 0x48, 0x32, 0x88, 0x3A, 0xA8, 0x51, 0x18, 0x51, 0x08, 0x92, 0x88, 0x12, 0x48, 0x14, 0x48, 0x18, 0x08, 0x10, 0x28, 0x10, 0x10, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x23, 0x88, 0x05, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x90, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0x28, 0x48, 0x26, 0x50, 0x22, 0x50, 0x20, 0x20, 0x20, 0x60, 0x20, 0x90, 0x21, 0x12, 0x42, 0x0A, 0x84, 0x06, 0x04, 0x00, 0x25, 0xFC, 0x25, 0x04, 0x24, 0x88, 0x24, 0x50, 0x24, 0x20, 0x24, 0x50, 0x24, 0x8E, 0x07, 0x04, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0x7C, 0x49, 0x04, 0x7F, 0x28, 0x49, 0x10, 0x7F, 0xFE, 0x08, 0x12, 0x7F, 0x14, 0x08, 0x10, 0x0F, 0x50, 0x79, 0x20, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x00, 0x22, 0x20, 0x22, 0x24, 0x3F, 0xFE, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x23, 0xE0, 0x22, 0x20, 0x40, 0x00, 0x4A, 0x48, 0x89, 0x26, 0x11, 0x22, 0x08, 0x40, 0x49, 0x40, 0x2A, 0x40, 0x08, 0x84, 0xFF, 0xFE, 0x19, 0x08, 0x2C, 0x88, 0x4A, 0x88, 0x10, 0x88, 0xFE, 0x90, 0x22, 0x50, 0x22, 0x20, 0x14, 0x50, 0x18, 0x88, 0x25, 0x0E, 0x42, 0x04, 0x02, 0x10, 0x42, 0x90, 0x3F, 0xD0, 0x22, 0x10, 0x82, 0xBE, 0x4F, 0xC2, 0x4A, 0x94, 0x0A, 0x90, 0x1F, 0x90, 0x22, 0x10, 0xE7, 0x10, 0x2A, 0xA8, 0x32, 0x28, 0x22, 0x48, 0x22, 0x86, 0x23, 0x04, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0xFE, 0xFC, 0x22, 0x88, 0x22, 0x88, 0x14, 0x88, 0x08, 0x88, 0x14, 0xF8, 0x62, 0x88, 0x00, 0x00, 0x2A, 0x10, 0x29, 0x88, 0x28, 0xA4, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x44, 0x3F, 0xE4, 0x20, 0x44, 0x20, 0x54, 0x3F, 0xD4, 0x22, 0x14, 0x22, 0x54, 0x3F, 0xF4, 0x32, 0x54, 0x32, 0x54, 0x52, 0x54, 0x52, 0x54, 0x53, 0x44, 0x92, 0x84, 0x02, 0x14, 0x02, 0x08, 0x00, 0x08, 0x7F, 0xFC, 0x02, 0x00, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x22, 0x18, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x0C, 0x60, 0x30, 0x10, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x20, 0xFC, 0x48, 0x12, 0xF2, 0x15, 0x24, 0x1A, 0x52, 0x30, 0xF8, 0xD0, 0x20, 0x17, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x50, 0x20, 0x20, 0x20, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x08, 0x09, 0x10, 0x18, 0xA0, 0x28, 0x40, 0x4A, 0x30, 0x8C, 0x0E, 0x08, 0x04, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x21, 0x12, 0x41, 0x02, 0x80, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x48, 0x24, 0x49, 0xFE, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x09, 0x24, 0x11, 0x34, 0x11, 0x28, 0x20, 0x20, 0x40, 0x20, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0xFE, 0x0E, 0x14, 0x04, 0x33, 0xF8, 0x38, 0x40, 0x54, 0x40, 0x50, 0x48, 0x97, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0xFE, 0x0E, 0x14, 0x04, 0x13, 0xF8, 0x1C, 0x40, 0x30, 0x40, 0xD0, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x5F, 0xFE, 0x20, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x9D, 0x74, 0x01, 0x00, 0x1D, 0x70, 0x08, 0x04, 0x08, 0xFE, 0x7E, 0x84, 0x08, 0xFC, 0x1C, 0x84, 0x2A, 0xFC, 0x48, 0x84, 0x08, 0xFC, 0x08, 0x84, 0x00, 0x00, 0x00, 0x04, 0xFD, 0xFE, 0x04, 0x84, 0x44, 0x84, 0x44, 0x84, 0x28, 0x88, 0x28, 0x48, 0x10, 0x48, 0x10, 0x50, 0x28, 0x20, 0x28, 0x30, 0x44, 0x50, 0x44, 0x88, 0x81, 0x0E, 0x06, 0x04, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x29, 0x28, 0x11, 0x10, 0x29, 0x28, 0x01, 0x00, 0x29, 0x28, 0x11, 0x10, 0x29, 0x28, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x00, 0x80, 0x20, 0xA0, 0x11, 0x14, 0x11, 0xFE, 0x03, 0x10, 0x05, 0x10, 0xF1, 0xFC, 0x11, 0x10, 0x11, 0x10, 0x11, 0xFC, 0x11, 0x10, 0x11, 0x10, 0x15, 0x14, 0x19, 0xFE, 0x11, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x01, 0x18, 0x7D, 0x20, 0x05, 0xC0, 0x05, 0x80, 0x09, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0x41, 0x04, 0x81, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x18, 0x7B, 0xE0, 0x48, 0x40, 0x48, 0x48, 0x4F, 0xFC, 0x79, 0x50, 0x49, 0x54, 0x4F, 0xFE, 0x79, 0x50, 0x49, 0x50, 0x49, 0x50, 0x4F, 0xFC, 0x78, 0x40, 0x48, 0x50, 0x03, 0xF8, 0x08, 0x00, 0x1D, 0x04, 0xF0, 0x88, 0x10, 0x50, 0x11, 0xFC, 0xFD, 0x04, 0x11, 0x04, 0x39, 0x04, 0x35, 0xFC, 0x51, 0x54, 0x90, 0x50, 0x10, 0x50, 0x10, 0x92, 0x10, 0x92, 0x11, 0x0E, 0x12, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x80, 0x48, 0x80, 0x49, 0x08, 0x4B, 0xFC, 0x48, 0x94, 0x48, 0x90, 0x48, 0x90, 0x48, 0x90, 0x49, 0x10, 0x79, 0x10, 0x4A, 0x12, 0x02, 0x12, 0x04, 0x0E, 0x08, 0x00, 0x00, 0x08, 0x08, 0x3C, 0x7F, 0xC0, 0x49, 0x24, 0x48, 0xA8, 0x4B, 0xFE, 0x7A, 0x02, 0x4D, 0x04, 0x49, 0xDE, 0x7A, 0x44, 0x4D, 0x54, 0x48, 0x94, 0x48, 0xBE, 0x79, 0x04, 0x4A, 0x04, 0x00, 0x04, 0x00, 0x04, 0x47, 0xFE, 0x54, 0x20, 0x54, 0x44, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x54, 0x20, 0x44, 0x58, 0x84, 0x84, 0x03, 0x02, 0x00, 0x78, 0x3F, 0x80, 0x11, 0x10, 0x09, 0x20, 0x7F, 0xFE, 0x48, 0x22, 0x88, 0x24, 0x1E, 0xF8, 0x12, 0x20, 0x22, 0xA0, 0x54, 0xA8, 0x0D, 0xFC, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x40, 0x20, 0x00, 0x00, 0x22, 0x08, 0x11, 0x10, 0x10, 0xA0, 0x03, 0xF8, 0x02, 0x08, 0xF2, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0xA8, 0x10, 0xA0, 0x10, 0xA0, 0x15, 0x22, 0x19, 0x22, 0x12, 0x1E, 0x04, 0x00, 0x08, 0x04, 0xFD, 0xFE, 0x10, 0x20, 0x10, 0x44, 0x21, 0xFE, 0x25, 0x04, 0x3F, 0x24, 0x65, 0x24, 0xA5, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x3C, 0x20, 0x24, 0x58, 0x00, 0x84, 0x03, 0x02, 0x41, 0x04, 0x22, 0x7E, 0x14, 0x44, 0xFF, 0xC4, 0x08, 0x44, 0x49, 0x7C, 0x49, 0x44, 0x49, 0x44, 0x49, 0x44, 0x49, 0x7C, 0x7F, 0x44, 0x09, 0x44, 0x08, 0x84, 0x10, 0x84, 0x21, 0x14, 0x42, 0x08, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x16, 0x00, 0x5A, 0x20, 0x52, 0x20, 0x52, 0x24, 0x93, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0xA8, 0x29, 0x24, 0x26, 0x22, 0x44, 0x22, 0x80, 0xA0, 0x00, 0x40, 0x22, 0x08, 0x22, 0x1C, 0x7F, 0x60, 0x22, 0x40, 0x22, 0x40, 0x3E, 0x40, 0x22, 0x7E, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x22, 0x48, 0xFF, 0x48, 0x00, 0x88, 0x15, 0x08, 0x22, 0x08, 0x40, 0x08, 0x24, 0x80, 0x24, 0x8C, 0x2F, 0xF0, 0x24, 0xA0, 0xFC, 0xA0, 0x27, 0xA4, 0x2C, 0xBE, 0x34, 0xA8, 0x27, 0xA8, 0xE4, 0xA8, 0x24, 0xA8, 0x3F, 0xE8, 0x20, 0x28, 0x24, 0xA8, 0xA8, 0x48, 0x40, 0x08, 0x04, 0x80, 0x14, 0x8C, 0x7F, 0xF0, 0x54, 0xA0, 0x54, 0xA0, 0x57, 0xA4, 0x54, 0xBE, 0x54, 0xA8, 0x57, 0xA8, 0x54, 0xA8, 0x54, 0xA8, 0x7F, 0xE8, 0x50, 0x28, 0x04, 0xA8, 0x08, 0x48, 0x00, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x02, 0x00, 0x51, 0x88, 0x50, 0x96, 0x90, 0x12, 0x0F, 0xF0, 0x04, 0x20, 0x0E, 0x20, 0xF8, 0x20, 0x08, 0x20, 0x0A, 0x40, 0xFF, 0x40, 0x08, 0x40, 0x1C, 0x40, 0x1A, 0x80, 0x28, 0x80, 0x48, 0x80, 0x89, 0x08, 0x09, 0x04, 0x0B, 0xFE, 0x08, 0x02, 0x08, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x00, 0x08, 0x00, 0x48, 0xFF, 0xE8, 0x00, 0x08, 0x00, 0x88, 0x3F, 0xC8, 0x20, 0x88, 0x20, 0x88, 0x20, 0x88, 0x20, 0x88, 0x3F, 0x88, 0x20, 0x88, 0x00, 0x28, 0x00, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x10, 0x20, 0x10, 0x20, 0x22, 0x44, 0x7E, 0xFC, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x7E, 0xFC, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x1F, 0x44, 0x21, 0x4C, 0x21, 0x50, 0x62, 0x60, 0x92, 0x40, 0x0C, 0x40, 0x04, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x3E, 0x40, 0x00, 0x04, 0x20, 0x3E, 0x20, 0x21, 0xFC, 0x24, 0x24, 0x3F, 0xFE, 0x20, 0x24, 0x25, 0xFC, 0x3E, 0x20, 0x20, 0x28, 0x21, 0xFC, 0xFF, 0x20, 0x10, 0x24, 0x25, 0xFE, 0x7E, 0x20, 0x02, 0x20, 0x00, 0x20, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x20, 0x00, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x04, 0x20, 0x04, 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x02, 0x04, 0x3F, 0x7E, 0x22, 0x04, 0x22, 0x04, 0x3E, 0xFC, 0x00, 0x04, 0x7F, 0x74, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x7F, 0x54, 0x55, 0x54, 0x55, 0x74, 0x55, 0x04, 0x55, 0x14, 0x43, 0x08, 0x00, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x3C, 0x48, 0x04, 0x50, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x00, 0x08, 0x04, 0x0B, 0xFE, 0x08, 0x04, 0x10, 0x24, 0x17, 0xF4, 0x30, 0x04, 0x50, 0x24, 0x93, 0xF4, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0x13, 0xE4, 0x12, 0x04, 0x10, 0x14, 0x10, 0x08, 0x10, 0x00, 0x11, 0x08, 0x10, 0x88, 0x20, 0x48, 0x24, 0x48, 0x64, 0x08, 0xA4, 0x08, 0x24, 0x08, 0x24, 0x08, 0x24, 0x10, 0x24, 0x90, 0x25, 0x20, 0x26, 0x28, 0x24, 0x46, 0x20, 0x82, 0x21, 0x00, 0x20, 0x04, 0x23, 0xFE, 0x20, 0x04, 0x3C, 0x24, 0x27, 0xF4, 0x48, 0x04, 0x40, 0x04, 0xA3, 0xF4, 0x22, 0x24, 0x22, 0x24, 0x22, 0x24, 0x26, 0x24, 0x2B, 0xE4, 0x32, 0x04, 0x20, 0x14, 0x00, 0x08, 0x00, 0x08, 0x7F, 0xFC, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x7F, 0xF8, 0x40, 0x08, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x02, 0x40, 0x02, 0x3F, 0xFE, 0x00, 0x00, 0x10, 0x10, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0xFD, 0x08, 0x11, 0x08, 0x39, 0x04, 0x36, 0x42, 0x54, 0x40, 0x50, 0x40, 0x90, 0x80, 0x10, 0x88, 0x11, 0x04, 0x13, 0xFC, 0x10, 0x04, 0x10, 0x00, 0x08, 0x20, 0x08, 0x20, 0x18, 0x50, 0x24, 0x88, 0x43, 0x06, 0x82, 0x00, 0x7F, 0xFC, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x14, 0x10, 0xFE, 0xFF, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x14, 0x50, 0x14, 0x50, 0x22, 0x88, 0x22, 0x8E, 0x41, 0x04, 0x80, 0x00, 0x2A, 0x10, 0x29, 0x88, 0x28, 0xA4, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x04, 0x2B, 0xFE, 0x28, 0x20, 0x28, 0x44, 0x45, 0xFE, 0x53, 0x04, 0x91, 0x24, 0x11, 0x24, 0x21, 0x24, 0x21, 0x24, 0x29, 0x24, 0x45, 0x24, 0x7C, 0x20, 0x04, 0x58, 0x00, 0x84, 0x03, 0x02, 0x02, 0x08, 0x41, 0x10, 0x30, 0xA0, 0x17, 0xFC, 0x00, 0x40, 0x00, 0x40, 0xF0, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x80, 0x10, 0xA0, 0x11, 0x18, 0x2A, 0x08, 0x44, 0x06, 0x03, 0xFC, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x81, 0x04, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x11, 0x0E, 0x21, 0x04, 0x41, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x40, 0x40, 0x20, 0x31, 0x20, 0x11, 0x20, 0x01, 0x10, 0x02, 0x08, 0xF2, 0x0E, 0x14, 0x44, 0x18, 0x40, 0x10, 0x40, 0x10, 0x80, 0x10, 0x90, 0x15, 0x08, 0x1B, 0xF8, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x20, 0x10, 0x20, 0xA0, 0x00, 0x44, 0x07, 0xFE, 0xE4, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x2C, 0x44, 0x34, 0x44, 0x24, 0x54, 0x04, 0x48, 0x10, 0x24, 0x10, 0xAE, 0x11, 0x24, 0x11, 0x24, 0xFD, 0xAC, 0x11, 0x24, 0x15, 0x24, 0x19, 0xFC, 0x30, 0x20, 0xD3, 0xFC, 0x10, 0x88, 0x10, 0x50, 0x10, 0x20, 0x10, 0x50, 0x50, 0x8E, 0x23, 0x04, 0x08, 0x24, 0x10, 0xAE, 0x3D, 0x24, 0x25, 0x24, 0x35, 0xAC, 0x2D, 0x24, 0x25, 0x24, 0x25, 0xFC, 0xFC, 0x20, 0x27, 0xFC, 0x34, 0x88, 0x2C, 0x50, 0x44, 0x20, 0x44, 0x50, 0x94, 0x8E, 0x0B, 0x04, 0x22, 0x10, 0x2A, 0x90, 0x27, 0x10, 0x22, 0x14, 0xFF, 0xBE, 0x22, 0x44, 0x37, 0x24, 0x2A, 0xA4, 0x62, 0x28, 0xBF, 0xE8, 0x24, 0x90, 0x28, 0x90, 0x25, 0x28, 0x22, 0x28, 0xA5, 0x46, 0x48, 0x84, 0x02, 0x10, 0x22, 0x90, 0xFF, 0xD0, 0xA2, 0x10, 0xA2, 0xBE, 0xAF, 0xC2, 0xAA, 0x94, 0xAA, 0x90, 0xAF, 0x90, 0xA2, 0x10, 0xA7, 0x10, 0xEA, 0xA8, 0x92, 0x28, 0x02, 0x48, 0x02, 0x86, 0x03, 0x04, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x0A, 0x20, 0x02, 0x10, 0x3F, 0xF8, 0x02, 0x10, 0x02, 0x10, 0x22, 0x18, 0x24, 0x16, 0x44, 0x12, 0x08, 0x10, 0x10, 0x10, 0x20, 0x50, 0x40, 0x20, 0x04, 0x08, 0xFE, 0x1C, 0x29, 0xE0, 0x28, 0x20, 0xFE, 0x20, 0xAA, 0x24, 0xAB, 0xFE, 0xAA, 0x20, 0xAE, 0x70, 0xC2, 0x68, 0x82, 0xAE, 0xFF, 0x24, 0x82, 0x20, 0xFE, 0x20, 0x82, 0x20, 0x00, 0x20, 0x10, 0x00, 0x11, 0x10, 0x11, 0x0C, 0x22, 0x44, 0x24, 0x40, 0x60, 0xA0, 0xA1, 0x10, 0x22, 0x0E, 0x24, 0x04, 0x2B, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x04, 0x20, 0x1F, 0xC0, 0x01, 0x00, 0x02, 0x20, 0x1F, 0xF0, 0x01, 0x00, 0x09, 0x20, 0x15, 0x18, 0x22, 0x08, 0x00, 0x40, 0x40, 0x44, 0x37, 0xFE, 0x10, 0x40, 0x07, 0xFC, 0x04, 0x44, 0xF4, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x10, 0xE0, 0x11, 0x58, 0x12, 0x48, 0x14, 0x40, 0x28, 0x46, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x01, 0x00, 0x11, 0x10, 0x09, 0x24, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0xA0, 0x27, 0xFC, 0x24, 0xA4, 0x64, 0xA4, 0xA7, 0xFC, 0x20, 0x40, 0x22, 0x48, 0x21, 0x50, 0x2F, 0xFE, 0x21, 0x50, 0x22, 0x48, 0x24, 0x46, 0x28, 0x44, 0x20, 0x40, 0x22, 0x04, 0x14, 0x7E, 0xFF, 0xC4, 0x08, 0x7C, 0x2A, 0x44, 0x2A, 0x7C, 0x2A, 0x44, 0x3E, 0x44, 0x08, 0x94, 0x11, 0x08, 0x21, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x48, 0x84, 0x25, 0x3E, 0x20, 0x24, 0x1F, 0xE4, 0x82, 0x24, 0x4A, 0xBC, 0x4A, 0xA4, 0x0A, 0xA4, 0x1A, 0xA4, 0x2A, 0xBC, 0xEF, 0xA4, 0x22, 0xA4, 0x22, 0x44, 0x24, 0x44, 0x28, 0x94, 0x21, 0x08, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x88, 0x04, 0x0F, 0xFE, 0x08, 0x40, 0x10, 0x88, 0x13, 0xFC, 0x32, 0x08, 0x52, 0x08, 0x93, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x00, 0x1C, 0x43, 0xE0, 0x32, 0x00, 0x12, 0x00, 0x02, 0x00, 0x02, 0x04, 0xF3, 0xFE, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0x12, 0x60, 0x16, 0x30, 0x1A, 0x2C, 0x14, 0x24, 0x08, 0x20, 0x00, 0x20, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x01, 0x08, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x21, 0x08, 0x25, 0x48, 0x25, 0x48, 0x25, 0x28, 0x29, 0x28, 0x21, 0x08, 0x41, 0x08, 0x81, 0x08, 0x04, 0x20, 0xFE, 0x20, 0x28, 0x40, 0x28, 0x84, 0xFF, 0xFE, 0xAA, 0x48, 0xAA, 0x86, 0xAB, 0x42, 0xAE, 0x78, 0xC2, 0x88, 0x83, 0x48, 0xFE, 0x50, 0x82, 0x20, 0xFE, 0x50, 0x82, 0x8E, 0x01, 0x04, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x08, 0x7E, 0xFC, 0x00, 0x00, 0x04, 0x04, 0xFE, 0xFE, 0x08, 0x10, 0x2C, 0x58, 0x2A, 0x56, 0x48, 0x92, 0x89, 0x10, 0x28, 0x50, 0x10, 0x20, 0x20, 0x80, 0x3E, 0xFC, 0x49, 0x20, 0x9F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x10, 0x01, 0xFC, 0x7F, 0x04, 0x00, 0x00, 0x00, 0x80, 0x78, 0x84, 0x4F, 0xFE, 0x51, 0x00, 0x51, 0xF8, 0x62, 0x40, 0x55, 0xFC, 0x48, 0x08, 0x4B, 0xFC, 0x4A, 0x08, 0x6B, 0xF8, 0x52, 0x08, 0x43, 0xF8, 0x42, 0x08, 0x42, 0x28, 0x42, 0x10, 0x00, 0x20, 0x78, 0x24, 0x4A, 0xFE, 0x51, 0x20, 0x51, 0x44, 0x60, 0xFE, 0x57, 0x44, 0x49, 0x7C, 0x49, 0x44, 0x49, 0x7C, 0x69, 0x44, 0x51, 0x44, 0x41, 0x54, 0x41, 0x48, 0x42, 0x80, 0x44, 0x7E, 0x10, 0x1C, 0x17, 0xE0, 0x20, 0x00, 0x22, 0x48, 0x41, 0x50, 0xF8, 0x20, 0x10, 0x84, 0x2F, 0xFE, 0x41, 0x08, 0xF9, 0x08, 0x42, 0x10, 0x01, 0x10, 0x18, 0xA0, 0xE0, 0x40, 0x41, 0xB0, 0x06, 0x08, 0x00, 0x20, 0x7D, 0xFE, 0x44, 0x40, 0x76, 0x7C, 0x55, 0x90, 0x55, 0x7C, 0xFE, 0x00, 0x83, 0x7C, 0x7D, 0x44, 0x45, 0x7C, 0x7D, 0x44, 0x45, 0x7C, 0x7D, 0x44, 0x45, 0x4C, 0x56, 0x80, 0x48, 0x7E, 0x00, 0x40, 0x08, 0x20, 0xFD, 0xFC, 0x10, 0x88, 0x10, 0x88, 0x21, 0x54, 0x22, 0x22, 0x7C, 0x20, 0xA4, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x20, 0x20, 0x20, 0x00, 0x20, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x24, 0x08, 0x04, 0x00, 0x0F, 0xFC, 0x10, 0x08, 0x24, 0x10, 0x42, 0x20, 0x01, 0x40, 0x01, 0x80, 0x03, 0x00, 0x1C, 0x00, 0xE0, 0x00, 0x08, 0x20, 0x1C, 0x24, 0xF3, 0xFE, 0x10, 0x20, 0x11, 0xFC, 0xFF, 0x24, 0x11, 0xFC, 0x31, 0x24, 0x39, 0xFC, 0x54, 0x28, 0x51, 0xFC, 0x90, 0x40, 0x12, 0xA4, 0x12, 0xA2, 0x14, 0x8A, 0x10, 0x78, 0x02, 0x10, 0x81, 0x20, 0x60, 0x48, 0x2F, 0xFC, 0x01, 0x00, 0x02, 0x88, 0xE4, 0xD0, 0x29, 0x60, 0x22, 0x40, 0x24, 0xE0, 0x29, 0x58, 0x22, 0x48, 0x25, 0x40, 0x50, 0x86, 0x8F, 0xFC, 0x00, 0x00, 0x00, 0x44, 0x78, 0x28, 0x49, 0xFE, 0x54, 0x20, 0x52, 0x40, 0x60, 0xA4, 0x50, 0x38, 0x4E, 0x50, 0x4A, 0x98, 0x4A, 0x34, 0x6A, 0x54, 0x52, 0x90, 0x42, 0x30, 0x45, 0x06, 0x48, 0xFC, 0x40, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x41, 0x04, 0x7F, 0xFC, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x00, 0x20, 0x7E, 0x20, 0x02, 0x20, 0x04, 0x20, 0x08, 0x20, 0x0A, 0xB0, 0x0C, 0xA8, 0x39, 0x24, 0xC9, 0x26, 0x0A, 0x22, 0x0C, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x28, 0xA0, 0x10, 0x40, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0xFD, 0xFC, 0x10, 0x00, 0x15, 0xFC, 0x19, 0x04, 0x31, 0x24, 0xD1, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x10, 0x50, 0x50, 0x8C, 0x23, 0x04, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0xBF, 0xF0, 0x04, 0x10, 0x04, 0x14, 0xFF, 0xFE, 0x04, 0x10, 0x04, 0x10, 0x3F, 0xF0, 0x04, 0x10, 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x7F, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x1F, 0xF0, 0x09, 0x08, 0x18, 0x90, 0x2A, 0x60, 0xCC, 0x1C, 0x08, 0x08, 0x10, 0x40, 0x10, 0x90, 0x11, 0x08, 0x13, 0xFC, 0xFC, 0x04, 0x10, 0x88, 0x31, 0x06, 0x3A, 0x82, 0x54, 0xF8, 0x51, 0x08, 0x92, 0x90, 0x14, 0x50, 0x10, 0x20, 0x10, 0x50, 0x11, 0x8E, 0x16, 0x04, 0x00, 0x40, 0x08, 0x90, 0x7D, 0x08, 0x4B, 0xFC, 0x48, 0x04, 0x48, 0x88, 0x49, 0x06, 0x4A, 0x82, 0x48, 0xF8, 0x49, 0x08, 0x4A, 0x90, 0x7C, 0x50, 0x48, 0x20, 0x00, 0x50, 0x01, 0x8E, 0x06, 0x04, 0x20, 0x40, 0x20, 0x20, 0x27, 0xFE, 0x44, 0x02, 0x49, 0x04, 0xF1, 0xFE, 0x12, 0x20, 0x26, 0x44, 0x4A, 0xFE, 0xFA, 0x84, 0x42, 0x84, 0x02, 0xFC, 0x1A, 0x84, 0xE2, 0x84, 0x42, 0xFC, 0x02, 0x84, 0x00, 0x20, 0x09, 0x24, 0xFC, 0xA4, 0x10, 0xA8, 0x10, 0x24, 0x11, 0xFE, 0x11, 0x04, 0x7D, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x1D, 0x24, 0xF0, 0x20, 0x40, 0x58, 0x01, 0x84, 0x06, 0x02, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0x84, 0x24, 0x0F, 0xC0, 0x01, 0x00, 0x02, 0x10, 0x3F, 0xF8, 0x01, 0x08, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x10, 0x20, 0x11, 0x24, 0x10, 0xA4, 0x1C, 0xA8, 0x20, 0x24, 0x21, 0xFE, 0x7D, 0x04, 0x91, 0x24, 0x11, 0x24, 0x7D, 0x24, 0x11, 0x24, 0x11, 0x24, 0x14, 0x20, 0x18, 0x58, 0x11, 0x84, 0x06, 0x02, 0x02, 0x08, 0x07, 0x1C, 0x38, 0xE0, 0x20, 0x80, 0x20, 0x80, 0x3E, 0x84, 0x22, 0xFE, 0x22, 0x88, 0x22, 0x88, 0x3E, 0x88, 0x22, 0x88, 0x20, 0x88, 0x21, 0x08, 0x42, 0x08, 0x84, 0x08, 0x00, 0x08, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0xFB, 0xF8, 0x20, 0x04, 0x27, 0xBE, 0x20, 0x84, 0x24, 0xA4, 0x22, 0x94, 0x39, 0x8C, 0xE2, 0x94, 0x44, 0xA4, 0x02, 0x94, 0x01, 0x08, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x12, 0x48, 0x32, 0x7C, 0x53, 0xC8, 0x9E, 0x48, 0x12, 0x48, 0x12, 0x68, 0x12, 0x50, 0x12, 0x40, 0x12, 0x42, 0x12, 0x02, 0x11, 0xFE, 0x10, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0x08, 0x00, 0x08, 0x20, 0x08, 0x60, 0x09, 0x80, 0x0E, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x08, 0x08, 0x08, 0x07, 0xF8, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0xFD, 0x24, 0x25, 0x3E, 0x25, 0xE4, 0x27, 0x24, 0x25, 0x24, 0x45, 0x34, 0x29, 0x28, 0x11, 0x20, 0x29, 0x22, 0x45, 0x02, 0x84, 0xFE, 0x00, 0x00, 0x21, 0x10, 0x21, 0x10, 0x27, 0xFC, 0x21, 0x10, 0x20, 0x40, 0xF8, 0xA0, 0x21, 0x10, 0x22, 0x0E, 0x2D, 0xF4, 0x20, 0x08, 0x23, 0xFC, 0x3A, 0x08, 0xE2, 0x08, 0x42, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x8A, 0x10, 0x52, 0x10, 0x2F, 0x9C, 0x62, 0x24, 0xAF, 0xC8, 0x2A, 0xBE, 0x2A, 0xA2, 0x6A, 0xAA, 0xAF, 0xAA, 0x22, 0x2A, 0x27, 0x2A, 0x2A, 0xAA, 0x32, 0x08, 0x22, 0x14, 0xA2, 0x22, 0x42, 0x42, 0x10, 0x10, 0x12, 0x10, 0x11, 0x10, 0x11, 0x14, 0xFC, 0xFE, 0x10, 0x10, 0x17, 0x10, 0x19, 0x10, 0x31, 0x28, 0xD1, 0x28, 0x11, 0x46, 0x11, 0x84, 0x11, 0x00, 0x12, 0x86, 0x54, 0x7C, 0x20, 0x00, 0x00, 0x04, 0x7D, 0xFE, 0x45, 0x04, 0x45, 0xFC, 0x45, 0x04, 0x7D, 0xFC, 0x10, 0x00, 0x13, 0xDC, 0x5C, 0x44, 0x51, 0x54, 0x50, 0xCC, 0x51, 0x54, 0x5E, 0x64, 0xF0, 0x44, 0x41, 0x54, 0x00, 0x88, 0x00, 0x20, 0x7D, 0x24, 0x44, 0xA8, 0x44, 0x70, 0x44, 0xA8, 0x7D, 0x26, 0x12, 0x24, 0x10, 0x60, 0x5D, 0xFC, 0x51, 0x04, 0x51, 0x04, 0x51, 0xFC, 0x5D, 0x04, 0xF1, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x04, 0x20, 0x3E, 0x20, 0x24, 0x40, 0x24, 0x40, 0x24, 0x88, 0x3D, 0x04, 0x27, 0xFE, 0x24, 0x02, 0x24, 0x04, 0x3D, 0xFE, 0x25, 0x04, 0x25, 0x04, 0x25, 0x04, 0x45, 0x04, 0x95, 0xFC, 0x09, 0x04, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x02, 0x00, 0x04, 0x20, 0x08, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x20, 0x10, 0x20, 0x10, 0x40, 0x10, 0x40, 0xFC, 0x88, 0x11, 0x04, 0x17, 0xFE, 0x18, 0x02, 0x30, 0x04, 0xD1, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x51, 0xFC, 0x21, 0x04, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x20, 0x10, 0x10, 0x20, 0x08, 0x7F, 0xFC, 0x00, 0x04, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x39, 0x30, 0xC5, 0x4E, 0x03, 0x84, 0x0D, 0x60, 0x11, 0x10, 0x05, 0x00, 0x02, 0x00, 0x01, 0x10, 0xFF, 0x90, 0x14, 0x10, 0x14, 0x10, 0x7F, 0x14, 0x55, 0xFE, 0x55, 0x10, 0x55, 0x10, 0x57, 0x28, 0x61, 0x28, 0x41, 0x28, 0x7F, 0x28, 0x41, 0x44, 0x41, 0x54, 0x7F, 0x82, 0x41, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x06, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xC0, 0x04, 0x00, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x0A, 0x30, 0x31, 0x0E, 0xC0, 0x04, 0x02, 0x00, 0x29, 0x10, 0x29, 0x08, 0x28, 0x24, 0x48, 0x24, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x44, 0x87, 0xFE, 0x60, 0x40, 0x20, 0x40, 0x08, 0x40, 0x10, 0xA0, 0x20, 0xA0, 0xE1, 0x10, 0x21, 0x90, 0x22, 0x48, 0x24, 0x4E, 0x28, 0x04, 0x20, 0x00, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x22, 0x08, 0x22, 0x88, 0xFA, 0x48, 0x22, 0x48, 0x22, 0x08, 0x2F, 0xFE, 0x22, 0x08, 0x22, 0x08, 0x3A, 0x08, 0xE2, 0x08, 0x44, 0x08, 0x04, 0x28, 0x08, 0x10, 0x20, 0x40, 0x20, 0x50, 0x20, 0x44, 0x2E, 0xFE, 0xF3, 0x90, 0x2A, 0x90, 0x2A, 0xFC, 0x3A, 0x90, 0x6A, 0x90, 0xA4, 0xFC, 0x2A, 0x90, 0x29, 0x90, 0x31, 0x94, 0x20, 0xFE, 0xA0, 0x80, 0x40, 0x80, 0x01, 0x00, 0x02, 0x80, 0x06, 0x40, 0x09, 0x30, 0x37, 0xCE, 0xC0, 0x44, 0x00, 0x90, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x04, 0xC0, 0x08, 0x30, 0x30, 0x08, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x20, 0x90, 0x28, 0x5F, 0x7E, 0x51, 0x48, 0x19, 0xC8, 0x35, 0x7E, 0x52, 0x48, 0x92, 0x48, 0x15, 0x7E, 0x25, 0x48, 0x28, 0x48, 0x40, 0x7E, 0x00, 0x40, 0x00, 0x20, 0x40, 0x28, 0x30, 0x20, 0x1F, 0x7E, 0x81, 0x48, 0x69, 0xC8, 0x29, 0x7C, 0x06, 0x48, 0x12, 0x48, 0x25, 0x7C, 0xE9, 0x48, 0x30, 0x48, 0x20, 0x48, 0x20, 0x7E, 0x20, 0x40, 0x20, 0x40, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x00, 0x10, 0x00, 0xFC, 0x04, 0x17, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x80, 0x10, 0x90, 0x1D, 0x08, 0xF1, 0x04, 0x43, 0xFC, 0x00, 0x04, 0x00, 0x00, 0x10, 0x40, 0x17, 0xFE, 0x10, 0x00, 0x17, 0xFC, 0xFD, 0x14, 0x15, 0xF4, 0x3D, 0x14, 0x37, 0xFC, 0x50, 0x00, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x10, 0x00, 0x1F, 0xFE, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x40, 0x92, 0x48, 0x51, 0x50, 0x50, 0xA0, 0x11, 0x10, 0x36, 0x4C, 0x50, 0x40, 0x92, 0x48, 0x11, 0x50, 0x20, 0xA0, 0x21, 0x10, 0x42, 0x0E, 0x0C, 0x04, 0x40, 0x04, 0x3F, 0xFE, 0x10, 0xA0, 0x07, 0xFC, 0x84, 0xA4, 0x67, 0xFC, 0x20, 0x08, 0x0B, 0xFC, 0x12, 0x08, 0x23, 0xF8, 0xE2, 0x08, 0x23, 0xF8, 0x20, 0x40, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x40, 0x04, 0x2F, 0xFE, 0x20, 0xA0, 0x07, 0xFC, 0x04, 0xA4, 0xE7, 0xFC, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x28, 0x40, 0x37, 0xFE, 0x20, 0x40, 0x00, 0x40, 0x00, 0x40, 0x40, 0x40, 0x32, 0x48, 0x11, 0x50, 0x00, 0xA0, 0x00, 0x90, 0xF1, 0x0E, 0x16, 0x44, 0x10, 0x40, 0x12, 0x48, 0x11, 0x50, 0x10, 0xA0, 0x14, 0xA0, 0x19, 0x10, 0x12, 0x0E, 0x04, 0x04, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0xFD, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x1D, 0xFC, 0xF1, 0x04, 0x40, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x04, 0x20, 0x0E, 0xA4, 0xF0, 0xA8, 0x11, 0x30, 0x10, 0x50, 0x7C, 0x8C, 0x11, 0x24, 0x10, 0x20, 0xFE, 0xA8, 0x10, 0xB0, 0x11, 0x20, 0x10, 0x50, 0x10, 0x8C, 0x13, 0x06, 0x10, 0x02, 0x0F, 0xFE, 0x20, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x01, 0x04, 0xFD, 0x04, 0x09, 0x04, 0x11, 0x04, 0x35, 0xFC, 0x59, 0x04, 0x95, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x00, 0x17, 0xFE, 0x10, 0x00, 0x00, 0x20, 0x08, 0x20, 0xFD, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x20, 0x80, 0x23, 0xFE, 0x7C, 0x80, 0xA4, 0xA0, 0x25, 0x24, 0x25, 0xA8, 0x26, 0x50, 0x24, 0x50, 0x3C, 0x88, 0x25, 0x0E, 0x02, 0x04, 0x10, 0x00, 0x13, 0xFE, 0x12, 0x02, 0x14, 0x54, 0xFC, 0x88, 0x11, 0x04, 0x14, 0x20, 0x18, 0x24, 0x33, 0xFE, 0xD0, 0x20, 0x10, 0x70, 0x10, 0xA8, 0x11, 0x26, 0x12, 0x24, 0x50, 0x20, 0x20, 0x20, 0x00, 0x00, 0x08, 0x00, 0x7F, 0xF8, 0x4A, 0x08, 0x4A, 0x08, 0x49, 0x10, 0x49, 0x10, 0x48, 0xA0, 0x48, 0xA0, 0x48, 0x40, 0x48, 0xA0, 0x78, 0xA0, 0x49, 0x10, 0x02, 0x10, 0x04, 0x0E, 0x18, 0x04, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x08, 0x04, 0xFF, 0xFE, 0x09, 0x00, 0x09, 0x10, 0x15, 0x30, 0x15, 0x40, 0x2A, 0x80, 0x22, 0x80, 0x44, 0x40, 0x84, 0x20, 0x08, 0x1C, 0x30, 0x08, 0x00, 0x00, 0x23, 0xF8, 0x18, 0x10, 0x08, 0x20, 0x80, 0x40, 0x60, 0x84, 0x23, 0xFE, 0x08, 0xA4, 0x10, 0xA4, 0x21, 0x24, 0xE1, 0x44, 0x22, 0x44, 0x24, 0x84, 0x29, 0x04, 0x22, 0x28, 0x20, 0x10, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x12, 0x20, 0x13, 0xFC, 0xFE, 0x24, 0x13, 0xFE, 0x12, 0x24, 0x13, 0xFC, 0x12, 0x20, 0x13, 0xFC, 0x1D, 0x04, 0xF5, 0x04, 0x45, 0x04, 0x09, 0xFC, 0x01, 0x04, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x12, 0x20, 0xFF, 0xFC, 0x12, 0x24, 0x17, 0xFE, 0x1A, 0x24, 0x33, 0xFC, 0xD2, 0x20, 0x13, 0xFC, 0x15, 0x04, 0x15, 0x04, 0x15, 0x04, 0x59, 0xFC, 0x21, 0x04, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x09, 0x20, 0x05, 0x40, 0x7F, 0xFE, 0x40, 0x02, 0x8F, 0xE4, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x60, 0x19, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x08, 0x20, 0x7D, 0x24, 0x48, 0xA8, 0x4B, 0xFE, 0x4A, 0x02, 0x7D, 0xFC, 0x49, 0x04, 0x49, 0x04, 0x49, 0xFC, 0x78, 0x20, 0x48, 0x28, 0x49, 0xFC, 0x48, 0x20, 0x48, 0x24, 0x8B, 0xFE, 0x18, 0x00, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x88, 0x3F, 0xFE, 0x20, 0x88, 0x2F, 0xF8, 0x20, 0x80, 0x2F, 0xF8, 0x28, 0x08, 0x48, 0x08, 0x48, 0x08, 0x8F, 0xF8, 0x08, 0x08, 0x10, 0x40, 0x10, 0x24, 0x57, 0xFE, 0x3A, 0x20, 0x13, 0xFC, 0xFE, 0x24, 0x13, 0xFE, 0x32, 0x24, 0x3B, 0xFC, 0x56, 0x20, 0x53, 0xFC, 0x93, 0x04, 0x15, 0x04, 0x15, 0x04, 0x19, 0xFC, 0x11, 0x04, 0x08, 0x40, 0x0A, 0x48, 0x09, 0x48, 0x11, 0x50, 0x10, 0x44, 0x37, 0xFE, 0x54, 0x04, 0x94, 0x04, 0x15, 0xF4, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0xF4, 0x15, 0x04, 0x14, 0x14, 0x14, 0x08, 0x10, 0x40, 0x22, 0x48, 0x79, 0x48, 0x49, 0x50, 0x48, 0x44, 0x7B, 0xFE, 0x4A, 0x04, 0x7A, 0x04, 0x4A, 0xF4, 0x4A, 0x94, 0xFA, 0x94, 0x2A, 0x94, 0x4A, 0xF4, 0x8A, 0x84, 0x2A, 0x14, 0x12, 0x08, 0x00, 0x40, 0x42, 0x48, 0x31, 0x48, 0x11, 0x50, 0x80, 0x44, 0x67, 0xFE, 0x24, 0x04, 0x0C, 0x04, 0x15, 0xF4, 0x25, 0x14, 0xE5, 0x14, 0x25, 0x14, 0x25, 0xF4, 0x25, 0x04, 0x24, 0x14, 0x24, 0x08, 0x10, 0x40, 0x12, 0x48, 0x11, 0x48, 0x7D, 0x50, 0x10, 0x44, 0x13, 0xFE, 0xFE, 0x04, 0x12, 0xF4, 0x52, 0x94, 0x5E, 0x94, 0x52, 0x94, 0x72, 0xF4, 0x52, 0x0C, 0x48, 0x06, 0x87, 0xFC, 0x00, 0x00, 0x23, 0xF0, 0x10, 0x40, 0x40, 0x84, 0x23, 0xFE, 0x09, 0x24, 0x71, 0x24, 0x11, 0x24, 0x12, 0x54, 0x14, 0x88, 0x01, 0x00, 0x09, 0x10, 0x0A, 0xA0, 0x12, 0x80, 0x04, 0x60, 0x18, 0x1C, 0x60, 0x08, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0x13, 0xFE, 0xFC, 0x04, 0x12, 0x44, 0x13, 0xE4, 0x1C, 0x84, 0x30, 0xA4, 0xD3, 0xF4, 0x10, 0x84, 0x12, 0xA4, 0x12, 0xA4, 0x13, 0xE4, 0x50, 0x14, 0x20, 0x08, 0x00, 0x80, 0x40, 0x88, 0x37, 0xFC, 0x10, 0x80, 0x83, 0xF8, 0x60, 0x80, 0x2F, 0xFE, 0x09, 0x08, 0x11, 0x08, 0x23, 0xFE, 0xE2, 0x08, 0x25, 0x08, 0x28, 0x88, 0x30, 0x88, 0x20, 0x28, 0x20, 0x10, 0x40, 0x08, 0x30, 0x3C, 0x17, 0xC0, 0x00, 0x04, 0x82, 0x4C, 0x61, 0x50, 0x20, 0x84, 0x0F, 0x3E, 0x14, 0x04, 0x24, 0x04, 0xE7, 0xBC, 0x24, 0x04, 0x24, 0x04, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x10, 0x80, 0x10, 0x80, 0x21, 0xF8, 0x23, 0x10, 0x4C, 0xA0, 0xF8, 0x40, 0x10, 0xA0, 0x21, 0x10, 0x46, 0x4E, 0xF8, 0x44, 0x47, 0xFC, 0x00, 0x40, 0x19, 0x50, 0xE2, 0x4C, 0x45, 0x44, 0x00, 0x80, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x14, 0x40, 0x1F, 0xFC, 0x28, 0x04, 0x4F, 0xF4, 0x11, 0x04, 0x21, 0x14, 0xFF, 0xFC, 0x01, 0x04, 0x11, 0x14, 0x11, 0x14, 0x1F, 0xF4, 0x00, 0x14, 0x00, 0x08, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0xFC, 0xA4, 0x12, 0xAC, 0x39, 0xB0, 0x34, 0xA0, 0x51, 0xB0, 0x52, 0xA8, 0x94, 0xA8, 0x11, 0x20, 0x11, 0x22, 0x12, 0x22, 0x14, 0x1E, 0x18, 0x00, 0x01, 0x40, 0x41, 0x40, 0x29, 0x48, 0x25, 0x58, 0x05, 0x60, 0x01, 0x40, 0xE3, 0x60, 0x25, 0x50, 0x29, 0x50, 0x21, 0x40, 0x22, 0x44, 0x24, 0x44, 0x28, 0x3C, 0x50, 0x00, 0x88, 0x06, 0x07, 0xFC, 0x42, 0x00, 0x32, 0x04, 0x13, 0xFE, 0x05, 0x04, 0x89, 0x24, 0x63, 0xF4, 0x24, 0x84, 0x00, 0x94, 0x1F, 0xFC, 0x20, 0x84, 0xE4, 0x94, 0x24, 0x94, 0x27, 0xF4, 0x20, 0x04, 0x20, 0x14, 0x20, 0x08, 0x01, 0x00, 0x79, 0x04, 0x49, 0xFE, 0x52, 0x04, 0x55, 0x24, 0x61, 0xF4, 0x52, 0x44, 0x48, 0x54, 0x4F, 0xFC, 0x48, 0x44, 0x69, 0x54, 0x51, 0x54, 0x41, 0xF4, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x00, 0x08, 0x40, 0x08, 0x30, 0x08, 0x10, 0x08, 0x07, 0xFE, 0x00, 0x08, 0xF0, 0x08, 0x11, 0x08, 0x10, 0x88, 0x10, 0x88, 0x10, 0x08, 0x10, 0x08, 0x14, 0x08, 0x18, 0x08, 0x10, 0x28, 0x00, 0x10, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x40, 0x0F, 0xE0, 0x18, 0x10, 0x2F, 0xEE, 0xC8, 0x04, 0x0F, 0xE0, 0x08, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x20, 0x1F, 0xF0, 0x00, 0x10, 0x10, 0x40, 0x10, 0x40, 0x50, 0x48, 0x53, 0xFC, 0x7C, 0x40, 0x90, 0x44, 0x17, 0xFE, 0x18, 0x10, 0x30, 0x14, 0xD7, 0xFE, 0x11, 0x10, 0x10, 0x90, 0x10, 0x90, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x04, 0x20, 0x04, 0x24, 0xFF, 0xFE, 0x04, 0x20, 0x7A, 0x48, 0x49, 0x50, 0x4B, 0xFC, 0x78, 0x80, 0x4F, 0xFE, 0x49, 0x10, 0x7A, 0x4E, 0x4D, 0x54, 0x48, 0xE0, 0x49, 0x58, 0x8A, 0x48, 0x18, 0xC0, 0x00, 0x40, 0x7A, 0x48, 0x49, 0x50, 0x4B, 0xFC, 0x48, 0x80, 0x7F, 0xFE, 0x49, 0x10, 0x4A, 0x0E, 0x4D, 0xF4, 0x78, 0x10, 0x49, 0x14, 0x49, 0xFE, 0x48, 0x04, 0x4F, 0xE4, 0x88, 0x14, 0x18, 0x08, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x11, 0x00, 0x91, 0x00, 0x53, 0xF8, 0x55, 0x10, 0x10, 0xA0, 0x30, 0x40, 0x50, 0xB0, 0x93, 0x8E, 0x2C, 0x64, 0x20, 0x20, 0x40, 0x80, 0x80, 0x60, 0x00, 0x20, 0x11, 0x10, 0x09, 0x20, 0x7F, 0xFC, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x3F, 0xFE, 0xC0, 0x04, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x12, 0x08, 0x11, 0x10, 0x10, 0xA0, 0x13, 0xF8, 0xFC, 0x48, 0x10, 0x48, 0x33, 0xF8, 0x3A, 0x40, 0x56, 0x44, 0x53, 0xFE, 0x90, 0xC4, 0x11, 0x44, 0x12, 0x54, 0x14, 0x48, 0x18, 0x40, 0x10, 0x40, 0x01, 0x04, 0x3F, 0x84, 0x21, 0x24, 0x21, 0x24, 0x3F, 0x24, 0x21, 0x24, 0x21, 0x24, 0x3F, 0x24, 0x10, 0xA4, 0x3F, 0xE4, 0x54, 0xA4, 0x94, 0x84, 0x14, 0x84, 0x24, 0x84, 0x4A, 0x94, 0x11, 0x08, 0x00, 0x08, 0x7D, 0xFC, 0x45, 0x08, 0x45, 0x08, 0x45, 0xF8, 0x7D, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x5C, 0x84, 0x51, 0xFE, 0x52, 0xA4, 0x54, 0xA4, 0x5C, 0xA4, 0xF1, 0x24, 0x42, 0x54, 0x00, 0x88, 0x22, 0x08, 0x21, 0x10, 0x38, 0xA0, 0x43, 0xF8, 0x80, 0x48, 0x78, 0x48, 0x23, 0xF8, 0x22, 0x40, 0xFA, 0x44, 0x23, 0xFE, 0x20, 0xC4, 0x29, 0x44, 0x32, 0x54, 0x24, 0x48, 0x08, 0x40, 0x00, 0x40, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFD, 0xF8, 0x11, 0x08, 0x15, 0x08, 0x19, 0xF8, 0x30, 0x00, 0xD7, 0xFE, 0x10, 0x20, 0x11, 0x28, 0x11, 0x3C, 0x11, 0x20, 0x52, 0xA6, 0x24, 0x7C, 0x3E, 0x04, 0x23, 0xFE, 0x22, 0x20, 0x3E, 0x44, 0x22, 0xFE, 0x22, 0x84, 0x3E, 0x94, 0x00, 0x94, 0xFF, 0x94, 0x08, 0xA4, 0x2A, 0xA4, 0x2F, 0x20, 0x28, 0x58, 0x58, 0x84, 0x49, 0x06, 0x87, 0xFC, 0x00, 0x40, 0x7C, 0x20, 0x45, 0xFC, 0x44, 0x88, 0x44, 0x50, 0x7F, 0xFE, 0x12, 0x22, 0x14, 0x24, 0x5D, 0xFE, 0x51, 0x24, 0x51, 0x24, 0x51, 0x24, 0x5D, 0x24, 0xF1, 0x2C, 0x40, 0x20, 0x00, 0x20, 0x00, 0x40, 0x08, 0x20, 0x7D, 0xFC, 0x48, 0x88, 0x48, 0x50, 0x4B, 0xFE, 0x4A, 0x22, 0x4C, 0x24, 0x49, 0xFE, 0x49, 0x24, 0x49, 0x24, 0x79, 0x24, 0x49, 0x24, 0x01, 0x2C, 0x00, 0x20, 0x00, 0x20, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x62, 0xA0, 0xA2, 0xA0, 0x24, 0x90, 0x24, 0x90, 0x28, 0x88, 0x2B, 0xEE, 0x30, 0x84, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x08, 0x20, 0x08, 0x28, 0x7E, 0xFC, 0x08, 0x20, 0xFE, 0xFE, 0x08, 0x20, 0x14, 0x50, 0x22, 0x8E, 0xDF, 0xF4, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x50, 0x13, 0xF8, 0x78, 0x40, 0x57, 0xFE, 0x54, 0x02, 0x5B, 0xFC, 0x52, 0x48, 0x53, 0xF8, 0x52, 0x48, 0x53, 0xF8, 0x50, 0x00, 0x77, 0xFC, 0x52, 0x44, 0x03, 0x70, 0x04, 0xC0, 0x08, 0x7E, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0x59, 0xF8, 0x55, 0x08, 0x51, 0x08, 0x91, 0xF8, 0x10, 0x84, 0x11, 0xFE, 0x12, 0xA4, 0x14, 0xA4, 0x10, 0xA4, 0x11, 0x24, 0x12, 0x54, 0x10, 0x88, 0x02, 0x08, 0x41, 0x10, 0x30, 0xA0, 0x17, 0xF8, 0x80, 0x48, 0x60, 0x48, 0x27, 0xF8, 0x0C, 0x40, 0x14, 0x44, 0x27, 0xFE, 0xE0, 0xC4, 0x21, 0x44, 0x22, 0x54, 0x24, 0x48, 0x28, 0x40, 0x20, 0x40, 0x41, 0x04, 0x22, 0x04, 0x14, 0x24, 0x7F, 0x24, 0x09, 0x24, 0x09, 0x24, 0x7F, 0x24, 0x48, 0x24, 0x49, 0x24, 0x7F, 0xA4, 0x19, 0x24, 0x29, 0x24, 0x4D, 0x24, 0x8A, 0x04, 0x08, 0x14, 0x08, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x90, 0x24, 0x90, 0x24, 0x94, 0x3F, 0xFE, 0x24, 0x90, 0x24, 0x90, 0x24, 0xF0, 0x24, 0x00, 0x44, 0x08, 0x87, 0xFC, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x20, 0x0E, 0xC0, 0x04, 0x40, 0x08, 0x37, 0xFC, 0x10, 0x80, 0x00, 0x84, 0x8F, 0xFE, 0x61, 0x20, 0x21, 0x10, 0x0A, 0x90, 0x14, 0x8E, 0x28, 0x84, 0xE2, 0xD0, 0x22, 0xA8, 0x24, 0xA8, 0x20, 0x88, 0x22, 0x80, 0x21, 0x00, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x48, 0x13, 0xFC, 0xFE, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x1F, 0xF8, 0xF2, 0x08, 0x4F, 0xFE, 0x01, 0x10, 0x03, 0x0C, 0x04, 0x04, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x00, 0x00, 0x04, 0x88, 0x0E, 0x88, 0xF8, 0x88, 0x08, 0x88, 0x0B, 0xFE, 0x08, 0x88, 0xFF, 0x88, 0x08, 0x88, 0x0A, 0x88, 0x3F, 0xF8, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x3E, 0x88, 0x22, 0xF8, 0x00, 0x88, 0x10, 0x10, 0x10, 0x78, 0x17, 0xC0, 0x10, 0x40, 0x58, 0x40, 0x54, 0x44, 0x57, 0xFE, 0x90, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x0C, 0x08, 0xF3, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x13, 0xFE, 0xFE, 0x90, 0x10, 0x88, 0x11, 0x48, 0x7D, 0x46, 0x46, 0x44, 0x45, 0x48, 0x45, 0x64, 0x46, 0x54, 0x7C, 0x54, 0x45, 0x40, 0x00, 0x80, 0x08, 0x90, 0x7C, 0x90, 0x48, 0x94, 0x4B, 0xFE, 0x4A, 0x94, 0x7A, 0x94, 0x4A, 0x94, 0x4B, 0xFC, 0x4A, 0x94, 0x7A, 0x94, 0x4A, 0x94, 0x4F, 0xFE, 0x48, 0x00, 0x49, 0x10, 0x8B, 0x0C, 0x1C, 0x04, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0xFC, 0xA4, 0x12, 0xAC, 0x15, 0xB0, 0x18, 0xA0, 0x31, 0xB0, 0xD2, 0xA8, 0x14, 0xA8, 0x11, 0x20, 0x11, 0x22, 0x12, 0x22, 0x54, 0x1E, 0x28, 0x00, 0x08, 0x00, 0x0F, 0xF0, 0x18, 0x20, 0x24, 0x40, 0x43, 0x80, 0x0C, 0x60, 0x30, 0x1E, 0xC1, 0x04, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x09, 0x20, 0x11, 0x18, 0x21, 0x08, 0x05, 0x00, 0x02, 0x00, 0x00, 0x08, 0x47, 0xFC, 0x31, 0x08, 0x11, 0x08, 0x01, 0x08, 0x02, 0x28, 0xF4, 0x10, 0x1B, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x08, 0xA0, 0x7C, 0xA0, 0x48, 0xA0, 0x48, 0xA0, 0x48, 0xA4, 0x7A, 0xAC, 0x49, 0xB0, 0x48, 0xA0, 0x49, 0xB0, 0x7A, 0xA8, 0x4C, 0xA8, 0x49, 0x20, 0x49, 0x22, 0x7A, 0x22, 0x44, 0x1E, 0x08, 0x00, 0x04, 0xA0, 0x7E, 0xA0, 0x44, 0xA0, 0x44, 0xA0, 0x44, 0xA4, 0x7E, 0xAC, 0x11, 0xB0, 0x10, 0xA0, 0x5D, 0xB0, 0x52, 0xA8, 0x54, 0xA8, 0x51, 0x20, 0x5D, 0x22, 0xF2, 0x22, 0x44, 0x1E, 0x08, 0x00, 0x04, 0x40, 0x7E, 0x40, 0x44, 0x44, 0x54, 0x7E, 0x54, 0x40, 0x54, 0x40, 0x54, 0x44, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x55, 0x04, 0x55, 0x04, 0x11, 0x04, 0x29, 0x04, 0x45, 0xFC, 0x81, 0x04, 0x10, 0x40, 0x11, 0x40, 0x11, 0x50, 0x1D, 0xF8, 0x21, 0x40, 0x22, 0x40, 0x7C, 0x48, 0x93, 0xFC, 0x10, 0x40, 0x7C, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x15, 0x10, 0x19, 0x10, 0x12, 0x0E, 0x04, 0x04, 0x10, 0x40, 0x10, 0x40, 0x14, 0x44, 0x7E, 0x7E, 0x54, 0x40, 0x54, 0x40, 0x54, 0x44, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x55, 0x04, 0x55, 0x04, 0x5D, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x00, 0x20, 0x00, 0x20, 0x04, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x82, 0x80, 0x01, 0x00, 0x00, 0x10, 0x08, 0x38, 0x7D, 0xC0, 0x49, 0x00, 0x49, 0x00, 0x49, 0x04, 0x49, 0xFE, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x4A, 0x10, 0x7A, 0x10, 0x44, 0x10, 0x08, 0x10, 0x00, 0x10, 0x10, 0x00, 0x13, 0xFC, 0x10, 0x08, 0x14, 0x10, 0x58, 0x20, 0x50, 0x58, 0x51, 0x86, 0x96, 0x02, 0x10, 0x08, 0x11, 0xFC, 0x10, 0x20, 0x28, 0x20, 0x24, 0x20, 0x40, 0x24, 0x87, 0xFE, 0x00, 0x00, 0x40, 0x00, 0x30, 0x04, 0x17, 0xFE, 0x00, 0x40, 0x80, 0x40, 0x60, 0x40, 0x20, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x21, 0x40, 0x20, 0x80, 0x00, 0x10, 0x00, 0x38, 0xFB, 0xC0, 0x08, 0x40, 0x10, 0x40, 0x20, 0x48, 0x47, 0xFC, 0x78, 0x40, 0x08, 0x40, 0x08, 0x40, 0x48, 0x50, 0x2B, 0xF8, 0x10, 0x00, 0x28, 0x06, 0x47, 0xFC, 0x80, 0x00, 0x10, 0x80, 0x10, 0x48, 0x17, 0xFC, 0x20, 0x00, 0x23, 0xF8, 0x62, 0x08, 0xA3, 0xF8, 0x20, 0x00, 0x2F, 0xFE, 0x28, 0x02, 0x33, 0xF4, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x21, 0x40, 0x20, 0x80, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x00, 0x3F, 0x1C, 0x22, 0x70, 0x24, 0x10, 0x28, 0x14, 0x2F, 0xFE, 0x21, 0x10, 0x21, 0x10, 0x2A, 0x10, 0x44, 0x7C, 0x4A, 0x00, 0x91, 0x06, 0x20, 0xFC, 0x20, 0x00, 0x20, 0x0C, 0x2F, 0x70, 0x21, 0x10, 0xF2, 0x10, 0x24, 0x14, 0x28, 0xFE, 0x2F, 0x10, 0x31, 0x10, 0xE1, 0x10, 0x29, 0x10, 0x25, 0x7C, 0x22, 0x00, 0x25, 0x00, 0xA8, 0x86, 0x50, 0x7C, 0x10, 0x00, 0x20, 0x0C, 0x7F, 0xF0, 0x48, 0x90, 0x49, 0x10, 0x6A, 0x14, 0x5C, 0x7E, 0x4F, 0x90, 0xF8, 0x90, 0x48, 0x90, 0x48, 0x90, 0x6C, 0xFC, 0x5A, 0x80, 0x49, 0x00, 0x8A, 0x86, 0x1C, 0x7C, 0x03, 0xF8, 0x40, 0x10, 0x30, 0xA0, 0x10, 0x48, 0x03, 0xFC, 0x02, 0x48, 0xF2, 0x48, 0x13, 0xF8, 0x12, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x12, 0x48, 0x12, 0x68, 0x2A, 0x50, 0x44, 0x06, 0x03, 0xFC, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0xFE, 0xF4, 0x12, 0x04, 0x32, 0x04, 0x3A, 0xF4, 0x56, 0x94, 0x52, 0x94, 0x92, 0x94, 0x12, 0xF4, 0x12, 0x04, 0x12, 0x04, 0x12, 0x14, 0x12, 0x08, 0x04, 0x00, 0xFE, 0xFE, 0x28, 0x82, 0x28, 0x82, 0xFE, 0xFE, 0xAA, 0x82, 0xAA, 0x82, 0xAE, 0xBA, 0xC2, 0xAA, 0x82, 0xAA, 0x82, 0xAA, 0xFE, 0xBA, 0x82, 0x82, 0x82, 0x82, 0xFE, 0x8A, 0x82, 0x84, 0x00, 0x80, 0x00, 0x48, 0x7B, 0xFC, 0x49, 0x10, 0x48, 0xA4, 0x4F, 0xFE, 0x78, 0x00, 0x4B, 0xF8, 0x4A, 0x48, 0x7B, 0xF8, 0x4A, 0x48, 0x4B, 0xF8, 0x48, 0x40, 0x7B, 0xF8, 0x40, 0x40, 0x0F, 0xFE, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x40, 0x24, 0x5F, 0xF4, 0x40, 0x04, 0x40, 0x24, 0x4F, 0xF4, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x40, 0x14, 0x40, 0x08, 0x20, 0x04, 0x23, 0xFE, 0x3E, 0x04, 0x42, 0x04, 0x82, 0xF4, 0x7A, 0x04, 0x22, 0x04, 0x22, 0xF4, 0xFA, 0x94, 0x22, 0x94, 0x22, 0x94, 0x26, 0xF4, 0x2A, 0x04, 0x32, 0x04, 0x22, 0x14, 0x02, 0x08, 0x02, 0x04, 0x3F, 0x0C, 0x22, 0x10, 0x22, 0x20, 0x32, 0x40, 0x2A, 0x84, 0x2A, 0x0C, 0x22, 0x10, 0xFF, 0xA0, 0x22, 0x42, 0x22, 0x06, 0x22, 0x08, 0x22, 0x10, 0x42, 0x20, 0x4A, 0x40, 0x85, 0x80, 0x02, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x20, 0x00, 0x27, 0xF8, 0x20, 0x10, 0x20, 0xA0, 0xF8, 0x44, 0x27, 0xFE, 0x74, 0x44, 0x6C, 0x44, 0xA7, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x24, 0x54, 0x24, 0x48, 0x20, 0x00, 0x27, 0xF8, 0x20, 0x10, 0x20, 0xA0, 0xF8, 0x44, 0x27, 0xFE, 0x24, 0x44, 0x2C, 0x44, 0x37, 0xFC, 0xE4, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0xA4, 0x54, 0x44, 0x48, 0x10, 0x40, 0x14, 0x44, 0x3E, 0xFE, 0x49, 0x20, 0x84, 0x10, 0x3F, 0xF8, 0x20, 0x08, 0x2F, 0xE8, 0x20, 0x08, 0x27, 0xC8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x20, 0x28, 0x20, 0x10, 0x10, 0x80, 0x10, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x48, 0x80, 0xF9, 0x10, 0x12, 0x08, 0x27, 0xFC, 0x41, 0x24, 0xF9, 0x20, 0x41, 0x20, 0x01, 0x20, 0x1A, 0x22, 0xE2, 0x22, 0x44, 0x1E, 0x08, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x00, 0x97, 0xF8, 0x50, 0xA0, 0x50, 0x44, 0x17, 0xFE, 0x34, 0x44, 0x57, 0xFC, 0xD4, 0x44, 0x17, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x44, 0x54, 0x04, 0x48, 0x10, 0x80, 0x10, 0x80, 0x11, 0x40, 0x22, 0x20, 0x24, 0x10, 0x6B, 0xEE, 0xB0, 0x04, 0x27, 0x88, 0x24, 0xA8, 0x27, 0xA8, 0x24, 0xA8, 0x27, 0xA8, 0x24, 0xA8, 0x24, 0x88, 0x24, 0xA8, 0x25, 0x90, 0x10, 0x10, 0x11, 0xF8, 0x11, 0x10, 0x11, 0x10, 0xFD, 0x10, 0x11, 0x14, 0x15, 0x0E, 0x1A, 0x00, 0x33, 0xF8, 0xD0, 0x08, 0x11, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0xB0, 0x51, 0x0E, 0x26, 0x04, 0x00, 0x80, 0x00, 0x80, 0x08, 0x80, 0x06, 0x80, 0x22, 0x80, 0x18, 0x80, 0x08, 0x80, 0x00, 0x84, 0xFF, 0xFE, 0x00, 0x80, 0x01, 0x00, 0x01, 0x60, 0x02, 0x10, 0x04, 0x08, 0x18, 0x0C, 0x60, 0x04, 0x00, 0x18, 0x43, 0xE0, 0x30, 0x40, 0x17, 0xFC, 0x00, 0xE0, 0x01, 0x50, 0xF2, 0x4E, 0x17, 0xF4, 0x11, 0x10, 0x11, 0x38, 0x12, 0x08, 0x12, 0x08, 0x14, 0x50, 0x28, 0x20, 0x44, 0x06, 0x03, 0xFC, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0x78, 0x3E, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0xF0, 0x3F, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x27, 0xCE, 0x44, 0x44, 0x04, 0x40, 0x04, 0x40, 0x08, 0x42, 0x08, 0x42, 0x10, 0x3E, 0x60, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x88, 0x34, 0x11, 0x10, 0x01, 0x40, 0x01, 0x24, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x04, 0x47, 0xE4, 0x4C, 0x44, 0x52, 0x84, 0x41, 0x04, 0x42, 0x84, 0x46, 0x44, 0x49, 0x3C, 0x70, 0x94, 0x46, 0x04, 0x41, 0x04, 0x40, 0x84, 0x7F, 0xFC, 0x40, 0x04, 0x08, 0x40, 0x08, 0x40, 0x10, 0x48, 0x27, 0xFC, 0x48, 0x40, 0x08, 0x44, 0x17, 0xFE, 0x30, 0x40, 0x52, 0x48, 0x92, 0x7C, 0x12, 0x40, 0x12, 0x40, 0x15, 0x40, 0x14, 0xC6, 0x18, 0x7C, 0x10, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0xA0, 0x11, 0x10, 0x02, 0x0E, 0x05, 0xF4, 0xF0, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x11, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x29, 0x40, 0x44, 0x86, 0x03, 0xFC, 0x00, 0x80, 0x40, 0x80, 0x31, 0x40, 0x12, 0x20, 0x84, 0x10, 0x48, 0x2E, 0x57, 0xF4, 0x00, 0x80, 0x10, 0x88, 0x2F, 0xFC, 0xE0, 0x80, 0x22, 0xA0, 0x24, 0x98, 0x28, 0x88, 0x22, 0x80, 0x21, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x21, 0x10, 0x2F, 0xE0, 0x21, 0x44, 0x3F, 0xFE, 0x21, 0x00, 0x22, 0x08, 0x27, 0xFC, 0x2C, 0x08, 0x57, 0xF8, 0x64, 0x08, 0x87, 0xF8, 0x04, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x48, 0x4F, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x00, 0x44, 0x0F, 0xFE, 0x00, 0x00, 0x08, 0x00, 0x0F, 0xE0, 0x10, 0x40, 0x20, 0x88, 0x7F, 0xFC, 0xA1, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x22, 0x88, 0x02, 0xA0, 0x04, 0x90, 0x04, 0x92, 0x08, 0x82, 0x10, 0x7E, 0x60, 0x00, 0x00, 0x40, 0x44, 0x44, 0x34, 0x44, 0x14, 0x44, 0x87, 0xFC, 0x40, 0x00, 0x4F, 0xFE, 0x08, 0x84, 0x17, 0xFE, 0x24, 0xA4, 0xE4, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0x0C, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x84, 0x40, 0x84, 0x40, 0x94, 0x7F, 0xFC, 0x41, 0x84, 0x42, 0x84, 0x44, 0x84, 0x48, 0x84, 0x50, 0x84, 0x60, 0x84, 0x42, 0x84, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x10, 0xA0, 0x10, 0x90, 0x10, 0x84, 0x11, 0xFE, 0xFD, 0x10, 0x13, 0x10, 0x15, 0xFC, 0x19, 0x10, 0x31, 0x10, 0xD1, 0xFC, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0x11, 0xFF, 0x51, 0x00, 0x21, 0x00, 0x0C, 0x04, 0xF1, 0xFE, 0x10, 0x20, 0x14, 0x44, 0xFE, 0xFE, 0x10, 0x84, 0x38, 0x94, 0x56, 0x94, 0x92, 0x94, 0x38, 0xA4, 0x28, 0xA4, 0x28, 0x20, 0x2A, 0x58, 0x4C, 0x44, 0x48, 0x82, 0x81, 0x02, 0x00, 0x08, 0x78, 0xFC, 0x4C, 0x88, 0x4A, 0x88, 0x48, 0xF8, 0x78, 0x88, 0x4E, 0x88, 0x4A, 0xF8, 0x4A, 0x84, 0x7A, 0xA8, 0x4A, 0x90, 0x4A, 0x8C, 0x4A, 0xC4, 0x4D, 0x80, 0x88, 0x86, 0x18, 0x7C, 0x10, 0x00, 0x11, 0x08, 0x10, 0x90, 0x14, 0x08, 0x7F, 0xFC, 0x55, 0x08, 0x55, 0x08, 0x55, 0x08, 0x55, 0xF8, 0x7C, 0x90, 0x50, 0x90, 0x14, 0x90, 0x1D, 0x12, 0xF5, 0x12, 0x42, 0x0E, 0x04, 0x00, 0x40, 0x04, 0x34, 0x7E, 0x13, 0x44, 0x01, 0x44, 0xFC, 0x7C, 0x08, 0x44, 0x17, 0x44, 0x39, 0x7C, 0x55, 0x42, 0x91, 0x54, 0x11, 0x48, 0x11, 0x66, 0x11, 0x42, 0x12, 0x80, 0x14, 0x46, 0x10, 0x3C, 0x03, 0xF8, 0x42, 0x08, 0x32, 0x08, 0x13, 0xF8, 0x02, 0x08, 0x02, 0x08, 0xF3, 0xFC, 0x12, 0x08, 0x12, 0xD0, 0x12, 0x20, 0x12, 0x90, 0x13, 0x0C, 0x12, 0x04, 0x28, 0x00, 0x44, 0x06, 0x03, 0xFC, 0x00, 0x10, 0x3F, 0xF8, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x2F, 0xEE, 0x48, 0x24, 0x88, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x02, 0x01, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x78, 0x41, 0x48, 0x7F, 0x4C, 0x52, 0x80, 0x7F, 0xFC, 0x52, 0x48, 0x7F, 0x30, 0x52, 0x4E, 0xA1, 0x84, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x30, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0xFD, 0x20, 0x12, 0x20, 0x11, 0x24, 0x1D, 0x3E, 0x31, 0xE4, 0xD7, 0x24, 0x11, 0x34, 0x11, 0x28, 0x11, 0x22, 0x11, 0x02, 0x50, 0xFE, 0x20, 0x00, 0x10, 0x10, 0x10, 0x38, 0x17, 0xC0, 0x10, 0x40, 0xFC, 0x40, 0x10, 0x40, 0x14, 0x40, 0x18, 0x44, 0x37, 0xFE, 0xD0, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x42, 0x10, 0x42, 0x50, 0x3E, 0x20, 0x00, 0x08, 0x00, 0x7D, 0x10, 0x48, 0xA0, 0x48, 0x08, 0x4B, 0xFC, 0x7A, 0x08, 0x4A, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x7A, 0xA8, 0x48, 0xA0, 0x48, 0xA0, 0x49, 0x20, 0x49, 0x22, 0x8A, 0x22, 0x1C, 0x1E, 0x10, 0x40, 0x20, 0x20, 0x7C, 0x00, 0x45, 0xFE, 0x55, 0x02, 0x46, 0x04, 0x54, 0x80, 0x48, 0x88, 0x40, 0x90, 0x7E, 0xE0, 0x02, 0x80, 0x12, 0x80, 0xFA, 0x82, 0x02, 0x82, 0x14, 0x7E, 0x08, 0x00, 0x00, 0x40, 0x7C, 0x20, 0x44, 0x00, 0x49, 0xFE, 0x49, 0x02, 0x52, 0x04, 0x48, 0x80, 0x48, 0x88, 0x44, 0x90, 0x44, 0xE0, 0x44, 0x80, 0x68, 0x80, 0x50, 0x82, 0x40, 0x82, 0x40, 0x7E, 0x40, 0x00, 0x04, 0x20, 0x7E, 0x20, 0x04, 0x20, 0x24, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x24, 0x20, 0x3E, 0x20, 0x02, 0x50, 0x02, 0x50, 0x1A, 0x50, 0xE2, 0x90, 0x42, 0x88, 0x15, 0x0E, 0x0A, 0x04, 0x04, 0x40, 0x7E, 0x20, 0x04, 0x00, 0x25, 0xFE, 0x25, 0x02, 0x26, 0x04, 0x24, 0x80, 0x24, 0x88, 0x3E, 0x90, 0x02, 0xE0, 0x02, 0x80, 0x1A, 0x80, 0xE2, 0x82, 0x42, 0x82, 0x14, 0x7E, 0x08, 0x00, 0x20, 0x10, 0x27, 0x90, 0x24, 0x94, 0x25, 0x7E, 0xFD, 0x10, 0x26, 0x24, 0x75, 0x7E, 0x6D, 0xA4, 0xA4, 0xA4, 0x24, 0xBC, 0x26, 0xA4, 0x25, 0x24, 0x24, 0x3C, 0x24, 0x24, 0x24, 0x24, 0x24, 0x2C, 0x00, 0x78, 0x3F, 0x80, 0x02, 0x08, 0x11, 0x18, 0x0D, 0x20, 0x04, 0x40, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x10, 0x08, 0x10, 0x18, 0x20, 0x06, 0x40, 0x01, 0x80, 0x06, 0x60, 0x18, 0x10, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x80, 0xFC, 0x80, 0x11, 0x00, 0x15, 0x04, 0x19, 0xFE, 0x33, 0x04, 0xD5, 0x04, 0x19, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x51, 0xFC, 0x21, 0x04, 0x00, 0x38, 0x0B, 0xC0, 0x7C, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x49, 0x50, 0x49, 0x50, 0x49, 0x54, 0x4F, 0xFE, 0x49, 0x50, 0x49, 0x50, 0x79, 0x54, 0x4F, 0xFE, 0x00, 0x40, 0x00, 0x48, 0x07, 0xFC, 0x10, 0x40, 0x10, 0x20, 0x10, 0x00, 0x13, 0xFE, 0xFA, 0x02, 0x14, 0x94, 0x11, 0x08, 0x1A, 0x04, 0x31, 0xF8, 0xD0, 0x10, 0x10, 0x60, 0x11, 0x80, 0x12, 0x00, 0x12, 0x02, 0x52, 0x02, 0x21, 0xFE, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x48, 0x4B, 0xFC, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x40, 0x48, 0x48, 0x4F, 0xFC, 0x78, 0x40, 0x48, 0x40, 0x00, 0x44, 0x0F, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x28, 0x11, 0xFC, 0x7C, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x7C, 0x28, 0x51, 0xFC, 0x14, 0x20, 0x1C, 0x20, 0xF4, 0x24, 0x43, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0x48, 0x17, 0xFC, 0x80, 0x40, 0x60, 0x44, 0x2F, 0xFE, 0x08, 0x40, 0x10, 0x40, 0x20, 0x48, 0xE7, 0xFC, 0x20, 0x40, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x28, 0x11, 0xFC, 0xFC, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x24, 0x20, 0x44, 0x28, 0x29, 0xFC, 0x10, 0x20, 0x28, 0x20, 0x44, 0x24, 0x87, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x08, 0x00, 0x08, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x0A, 0x20, 0x11, 0x20, 0x11, 0x20, 0x10, 0x20, 0x24, 0x22, 0x28, 0x22, 0x30, 0x22, 0x60, 0x1E, 0x00, 0x00, 0x40, 0x40, 0x30, 0x40, 0x10, 0x44, 0x07, 0xFE, 0xFC, 0x40, 0x08, 0x40, 0x10, 0x48, 0x37, 0xFC, 0x58, 0xE0, 0x94, 0xD0, 0x11, 0x48, 0x11, 0x4E, 0x12, 0x44, 0x14, 0x40, 0x10, 0x40, 0x10, 0x40, 0x00, 0x08, 0x7F, 0xFC, 0x03, 0x00, 0x05, 0x60, 0x19, 0x18, 0x61, 0x08, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x09, 0x10, 0x09, 0xF8, 0x09, 0x00, 0x09, 0x00, 0x09, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x1F, 0x40, 0x21, 0x60, 0x21, 0x50, 0x62, 0x48, 0x92, 0x46, 0x0A, 0x42, 0x04, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0x40, 0x40, 0x00, 0x40, 0x08, 0x40, 0xFC, 0x20, 0x03, 0xFE, 0x02, 0x02, 0x7D, 0x04, 0x49, 0xDE, 0x49, 0x54, 0x49, 0x54, 0x7A, 0x54, 0x02, 0x54, 0x4D, 0x5C, 0x48, 0x94, 0x10, 0x90, 0xF9, 0x12, 0x02, 0x0E, 0x04, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x14, 0x50, 0x34, 0x4C, 0x44, 0x44, 0x3F, 0xF0, 0x00, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x88, 0x00, 0x50, 0x00, 0x20, 0x40, 0x44, 0x3F, 0xFE, 0x10, 0xA0, 0x02, 0xA8, 0x86, 0xA6, 0x68, 0xA2, 0x27, 0xF8, 0x08, 0x08, 0x17, 0xF8, 0x24, 0x00, 0xE7, 0xFC, 0x20, 0x04, 0x20, 0x04, 0x20, 0x44, 0x20, 0x28, 0x20, 0x10, 0x08, 0x08, 0xFD, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x7C, 0x90, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x1C, 0x90, 0xF1, 0x12, 0x41, 0x12, 0x02, 0x0E, 0x04, 0x00, 0x08, 0x04, 0x7D, 0xFE, 0x00, 0x10, 0x00, 0x24, 0x04, 0xFE, 0xFE, 0x84, 0x28, 0x94, 0x28, 0x94, 0x28, 0x94, 0x28, 0xA4, 0x28, 0xA4, 0x2A, 0xA4, 0x2C, 0x58, 0x48, 0x44, 0x80, 0x82, 0x01, 0x02, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x20, 0x7F, 0xF0, 0x02, 0x20, 0x02, 0x20, 0x0E, 0x20, 0x02, 0x20, 0x05, 0x20, 0x04, 0xA0, 0x04, 0xA2, 0x08, 0x22, 0x08, 0x22, 0x30, 0x1E, 0xC0, 0x00, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFE, 0x16, 0x02, 0x5A, 0x14, 0x51, 0xF8, 0x50, 0x00, 0x90, 0x08, 0x13, 0xFC, 0x10, 0x90, 0x10, 0x90, 0x28, 0x90, 0x25, 0x12, 0x45, 0x12, 0x82, 0x0E, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x24, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x82, 0x08, 0x82, 0x10, 0x7E, 0x60, 0x00, 0x00, 0x40, 0x08, 0x20, 0xFF, 0xFE, 0x12, 0x02, 0x15, 0x04, 0x21, 0xDE, 0x21, 0x54, 0x79, 0x54, 0xAA, 0x54, 0x2A, 0x54, 0x2D, 0x5C, 0x28, 0x94, 0x28, 0x90, 0x39, 0x12, 0x22, 0x0E, 0x04, 0x00, 0x10, 0x80, 0x10, 0x80, 0x11, 0xF8, 0x12, 0x10, 0xFC, 0x24, 0x13, 0xFE, 0x12, 0x44, 0x1A, 0x44, 0x32, 0x44, 0xD3, 0xFC, 0x12, 0x64, 0x10, 0xA0, 0x10, 0xA2, 0x11, 0x22, 0x52, 0x1E, 0x24, 0x00, 0x00, 0x80, 0x08, 0x80, 0x7D, 0xF8, 0x4A, 0x10, 0x4C, 0x24, 0x4B, 0xFE, 0x4A, 0x44, 0x7A, 0x44, 0x4A, 0x44, 0x4B, 0xFC, 0x4A, 0x64, 0x48, 0xA0, 0x78, 0xA2, 0x49, 0x22, 0x02, 0x1E, 0x04, 0x00, 0x10, 0x40, 0x10, 0x20, 0x21, 0xFE, 0x7D, 0x02, 0x46, 0x14, 0x44, 0xF8, 0x44, 0x00, 0x7C, 0x04, 0x47, 0xFE, 0x44, 0x90, 0x44, 0x90, 0x44, 0x90, 0x7D, 0x12, 0x45, 0x12, 0x02, 0x0E, 0x04, 0x00, 0x20, 0x80, 0x20, 0x40, 0x27, 0xFE, 0x34, 0x02, 0xAA, 0x04, 0xA2, 0x00, 0xA3, 0xBC, 0xA4, 0xA4, 0x24, 0xA4, 0x24, 0xB4, 0x2A, 0xA8, 0x21, 0x20, 0x21, 0x22, 0x22, 0x22, 0x24, 0x1E, 0x28, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x90, 0x04, 0x1E, 0xF8, 0x12, 0x88, 0x12, 0x88, 0x22, 0x88, 0x32, 0xA8, 0x4A, 0x90, 0x04, 0x80, 0x08, 0x82, 0x10, 0x82, 0x20, 0x7E, 0x40, 0x00, 0x20, 0x40, 0x20, 0x20, 0x23, 0xFE, 0x22, 0x02, 0xFD, 0x04, 0x49, 0xDE, 0x49, 0x54, 0x49, 0x54, 0x4A, 0x54, 0x92, 0x5C, 0x55, 0x54, 0x20, 0x90, 0x50, 0x92, 0x49, 0x12, 0x82, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x02, 0x10, 0x03, 0xF8, 0x02, 0x10, 0x02, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x08, 0x10, 0x10, 0x10, 0x20, 0xA0, 0x40, 0x40, 0x08, 0x40, 0x7C, 0x20, 0x4B, 0xFE, 0x4A, 0x02, 0x4D, 0x04, 0x79, 0xDC, 0x49, 0x54, 0x49, 0x54, 0x4A, 0x54, 0x7A, 0x54, 0x4D, 0x5C, 0x48, 0x94, 0x48, 0x90, 0x49, 0x12, 0x4A, 0x0E, 0x9C, 0x00, 0x00, 0x00, 0x40, 0x08, 0x37, 0xFC, 0x10, 0x40, 0x80, 0x40, 0x60, 0x40, 0x20, 0x48, 0x0B, 0xFC, 0x10, 0x40, 0x20, 0x40, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x0F, 0xFC, 0x00, 0x00, 0x10, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x40, 0xFC, 0x40, 0x10, 0x40, 0x30, 0x40, 0x38, 0x48, 0x57, 0xFC, 0x50, 0x40, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x42, 0x0C, 0x62, 0x8C, 0x54, 0x54, 0x54, 0x54, 0x48, 0x24, 0x48, 0x24, 0x54, 0x54, 0x52, 0x4C, 0x62, 0x8C, 0x61, 0x04, 0x42, 0x04, 0x40, 0x14, 0x40, 0x08, 0x08, 0x80, 0x08, 0x40, 0x10, 0x08, 0x27, 0xFC, 0x40, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x48, 0x37, 0xFC, 0x50, 0x40, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x07, 0xFC, 0x78, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x78, 0x48, 0x4F, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x78, 0x40, 0x40, 0x44, 0x0F, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x0A, 0x7E, 0xFF, 0x44, 0x20, 0x7C, 0x20, 0x44, 0x26, 0x7C, 0x38, 0x44, 0x20, 0x8C, 0x00, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10, 0x1F, 0xF8, 0x00, 0x00, 0x02, 0x00, 0x11, 0x00, 0x50, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x10, 0x20, 0x1F, 0xF0, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x04, 0x60, 0x38, 0x10, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x90, 0x3F, 0xFC, 0x20, 0x80, 0x3F, 0x80, 0x24, 0x84, 0x24, 0x44, 0x3F, 0xC8, 0x29, 0x48, 0x31, 0x30, 0x2A, 0x20, 0x24, 0x60, 0x4A, 0x92, 0x91, 0x0A, 0x02, 0x06, 0x01, 0x00, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x20, 0x7C, 0x44, 0x11, 0xFE, 0xFF, 0x24, 0x39, 0xFC, 0x55, 0x24, 0x11, 0xFC, 0xFD, 0x44, 0x24, 0x60, 0x48, 0xA8, 0x30, 0xA2, 0x29, 0x22, 0x46, 0x1E, 0x12, 0x10, 0x12, 0x10, 0x2A, 0x90, 0x4A, 0xA4, 0x8A, 0xBE, 0x1F, 0xC4, 0x20, 0x24, 0x7F, 0xA8, 0xA0, 0x28, 0x2F, 0x28, 0x29, 0x10, 0x29, 0x50, 0x29, 0xA8, 0x29, 0x28, 0x30, 0x46, 0x20, 0x84, 0x08, 0x00, 0x0F, 0xE0, 0x10, 0x40, 0x20, 0x88, 0x5F, 0xFC, 0x10, 0x00, 0x10, 0x10, 0x13, 0xF8, 0x12, 0x10, 0x12, 0x10, 0x12, 0x50, 0x12, 0x20, 0x22, 0x02, 0x22, 0x02, 0x41, 0xFE, 0x80, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x28, 0x01, 0x10, 0x01, 0x00, 0x00, 0x80, 0x40, 0x88, 0x2F, 0xFC, 0x20, 0x80, 0x00, 0x90, 0x07, 0xF8, 0xE0, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x20, 0x88, 0x20, 0x88, 0x20, 0xA8, 0x20, 0x90, 0x50, 0x86, 0x8F, 0xFC, 0x00, 0x00, 0x10, 0x80, 0x10, 0xF8, 0x11, 0x10, 0x12, 0x24, 0xFF, 0xFE, 0x12, 0x00, 0x32, 0x08, 0x3A, 0xFC, 0x56, 0x88, 0x52, 0x88, 0x92, 0xA8, 0x12, 0x90, 0x12, 0x82, 0x14, 0x82, 0x14, 0x7E, 0x18, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x4F, 0xE4, 0x41, 0x04, 0x5F, 0xF4, 0x41, 0x14, 0x41, 0x14, 0x41, 0x54, 0x41, 0x24, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x80, 0x08, 0xA0, 0x7C, 0x94, 0x49, 0xFE, 0x49, 0x10, 0x4B, 0x10, 0x4D, 0xFC, 0x49, 0x10, 0x49, 0x10, 0x49, 0xFC, 0x49, 0x10, 0x79, 0x10, 0x49, 0x14, 0x01, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x10, 0x80, 0x10, 0xA0, 0x10, 0x94, 0x11, 0xFE, 0x59, 0x10, 0x57, 0x10, 0x55, 0xFC, 0x91, 0x10, 0x11, 0x10, 0x11, 0xFC, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0x11, 0xFE, 0x11, 0x00, 0x11, 0x00, 0x00, 0x80, 0x10, 0x80, 0x0C, 0x80, 0x04, 0x80, 0x00, 0x84, 0xFF, 0xFE, 0x01, 0x04, 0x01, 0x04, 0x02, 0x04, 0x02, 0x84, 0x04, 0x64, 0x08, 0x24, 0x10, 0x04, 0x20, 0x04, 0x40, 0x28, 0x00, 0x10, 0x00, 0x40, 0x44, 0x50, 0x24, 0x44, 0x24, 0xFE, 0x88, 0x90, 0x5F, 0x90, 0x42, 0xFC, 0x04, 0x90, 0x28, 0x90, 0x5F, 0xFC, 0xC0, 0x90, 0x40, 0x90, 0x43, 0x94, 0x5C, 0xFE, 0x48, 0x80, 0x40, 0x80, 0x10, 0x80, 0x10, 0xA0, 0x20, 0x94, 0x21, 0xFE, 0x49, 0x10, 0xFB, 0x10, 0x15, 0xFC, 0x21, 0x10, 0x41, 0x10, 0xFD, 0xFC, 0x01, 0x10, 0x01, 0x10, 0x1D, 0x14, 0xE1, 0xFE, 0x41, 0x00, 0x01, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFC, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x28, 0x01, 0x10, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFC, 0x05, 0x40, 0x19, 0x30, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x40, 0x07, 0x80, 0x04, 0x60, 0x18, 0x10, 0x00, 0x30, 0x3F, 0xC0, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x38, 0x31, 0x10, 0x05, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x0C, 0x60, 0x30, 0x10, 0x08, 0x40, 0x08, 0x40, 0x08, 0x44, 0x17, 0xFE, 0x10, 0x40, 0x30, 0x48, 0x57, 0xFC, 0x90, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x44, 0x10, 0x44, 0x10, 0x54, 0x10, 0x48, 0x10, 0x40, 0x10, 0x40, 0x08, 0x40, 0x0A, 0x40, 0x09, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x30, 0x44, 0x50, 0x44, 0x90, 0x44, 0x10, 0xC4, 0x10, 0xA4, 0x11, 0x14, 0x11, 0x04, 0x12, 0x04, 0x14, 0x04, 0x18, 0x28, 0x10, 0x10, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x20, 0x2F, 0xF0, 0x21, 0x08, 0x21, 0xFC, 0x2F, 0x00, 0x21, 0x08, 0x21, 0xFC, 0x5F, 0x00, 0x41, 0x02, 0x81, 0x02, 0x00, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x20, 0x44, 0x27, 0xFE, 0x48, 0x40, 0xF8, 0x48, 0x17, 0xFC, 0x20, 0x40, 0x40, 0x44, 0xFF, 0xFE, 0x00, 0x44, 0x00, 0x44, 0x1C, 0x54, 0xE0, 0x48, 0x40, 0x40, 0x00, 0x40, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0x41, 0x04, 0x01, 0x00, 0x01, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x3F, 0x08, 0x21, 0x08, 0x3F, 0x08, 0x20, 0xFE, 0x3F, 0x08, 0x20, 0x48, 0x3F, 0x28, 0x44, 0x28, 0x56, 0x08, 0x95, 0x08, 0x24, 0x28, 0x0C, 0x10, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x48, 0x4B, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0xE0, 0x49, 0x50, 0x7A, 0x50, 0x44, 0x4E, 0x08, 0x44, 0x00, 0x40, 0x00, 0x40, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x10, 0x00, 0x12, 0x20, 0x11, 0x40, 0x10, 0x80, 0x14, 0x60, 0x18, 0x1C, 0x10, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x00, 0x08, 0x0B, 0xFC, 0x7E, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x48, 0x00, 0x4F, 0xFE, 0x4A, 0x88, 0x7A, 0x50, 0x4A, 0x20, 0x02, 0x90, 0x03, 0x0E, 0x02, 0x04, 0x06, 0x40, 0xF8, 0x84, 0x11, 0xFE, 0x11, 0x24, 0xFF, 0x24, 0x39, 0xFC, 0x55, 0x24, 0x91, 0x44, 0x11, 0xFC, 0xFE, 0x40, 0x24, 0x60, 0x44, 0xA0, 0x28, 0xA8, 0x11, 0x22, 0x2A, 0x22, 0x44, 0x1E, 0x08, 0x80, 0x08, 0x40, 0x08, 0x40, 0x10, 0x08, 0x17, 0xFC, 0x30, 0x00, 0x52, 0x08, 0x92, 0x08, 0x11, 0x10, 0x11, 0x10, 0x10, 0x90, 0x10, 0xA0, 0x10, 0x24, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x00, 0x04, 0x47, 0xFE, 0x34, 0x44, 0x17, 0xFC, 0x84, 0x44, 0x67, 0xFC, 0x20, 0x08, 0x0B, 0xFC, 0x12, 0x08, 0x23, 0xF8, 0xE2, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x22, 0x28, 0x22, 0x10, 0x00, 0x04, 0x47, 0xFE, 0x24, 0x44, 0x27, 0xFC, 0x04, 0x44, 0x07, 0xFC, 0xE0, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x2A, 0x08, 0x32, 0x08, 0x22, 0x28, 0x02, 0x10, 0x01, 0x08, 0x3F, 0x88, 0x21, 0x08, 0x21, 0x08, 0x3F, 0x08, 0x20, 0xFE, 0x3F, 0x08, 0x20, 0x48, 0x3F, 0x28, 0x24, 0x28, 0x24, 0x08, 0x55, 0x08, 0x54, 0x88, 0xA4, 0x08, 0x14, 0x28, 0x08, 0x10, 0x3F, 0x08, 0x21, 0x08, 0x3F, 0x08, 0x20, 0xFE, 0x3F, 0x08, 0x20, 0x48, 0x3F, 0x28, 0x24, 0x28, 0x56, 0x08, 0x95, 0x28, 0x2C, 0x10, 0x02, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x28, 0x02, 0x10, 0x02, 0x00, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x08, 0x93, 0xFC, 0x52, 0x08, 0x53, 0xF8, 0x12, 0x08, 0x33, 0xF8, 0x50, 0x00, 0xD7, 0xFC, 0x14, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x4F, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x43, 0xFC, 0x32, 0x08, 0x12, 0x08, 0x83, 0xF8, 0x62, 0x08, 0x22, 0x08, 0x0B, 0xF8, 0x10, 0x00, 0x27, 0xFC, 0xE4, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x2F, 0xFE, 0x20, 0x00, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x14, 0x04, 0x7F, 0xFE, 0x54, 0x88, 0x54, 0x88, 0x54, 0x88, 0x54, 0x50, 0x7C, 0x50, 0x50, 0x20, 0x14, 0x50, 0x1E, 0x50, 0xE2, 0x88, 0x41, 0x0E, 0x02, 0x04, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x10, 0x10, 0x08, 0x10, 0x08, 0x20, 0x04, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x60, 0x08, 0x10, 0x30, 0x0E, 0xC0, 0x04, 0x20, 0x04, 0x1B, 0xFE, 0x48, 0x04, 0x40, 0x24, 0x5F, 0xF4, 0x44, 0x44, 0x47, 0xC4, 0x44, 0x44, 0x47, 0xC4, 0x44, 0x44, 0x44, 0x44, 0x5F, 0xF4, 0x40, 0x44, 0x40, 0x44, 0x40, 0x54, 0x40, 0x08, 0x10, 0x80, 0x10, 0x40, 0x20, 0x40, 0x20, 0x04, 0x4F, 0xFE, 0xFA, 0x08, 0x11, 0x10, 0x21, 0x10, 0x40, 0xA0, 0xFC, 0xA0, 0x00, 0x40, 0x00, 0xA0, 0x1C, 0xA0, 0xE1, 0x10, 0x42, 0x0E, 0x04, 0x04, 0x01, 0x00, 0x09, 0x00, 0x7D, 0x04, 0x49, 0xFE, 0x4A, 0xA4, 0x4C, 0xA4, 0x48, 0xA4, 0x48, 0xA4, 0x49, 0x24, 0x49, 0x24, 0x49, 0x44, 0x7A, 0x44, 0x4C, 0x84, 0x01, 0x04, 0x02, 0x28, 0x00, 0x10, 0x08, 0x40, 0x1C, 0x40, 0xF0, 0xF8, 0x11, 0x10, 0x12, 0x24, 0xFF, 0xFE, 0x10, 0x04, 0x33, 0xFC, 0x38, 0x04, 0x57, 0xFC, 0x50, 0x40, 0x95, 0x24, 0x15, 0x22, 0x19, 0x0A, 0x10, 0xF8, 0x10, 0x00, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x1C, 0x70, 0xE2, 0x4E, 0x1F, 0x80, 0x01, 0x20, 0x02, 0x10, 0x3F, 0xF0, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x20, 0x04, 0x1B, 0xFE, 0x08, 0x04, 0x40, 0x04, 0x40, 0x24, 0x4F, 0xF4, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x00, 0x20, 0x10, 0xA0, 0x79, 0x10, 0x52, 0x48, 0x54, 0x86, 0x59, 0x14, 0x53, 0xF8, 0x50, 0x00, 0x57, 0xBC, 0x50, 0x84, 0x54, 0xA4, 0x72, 0x94, 0x54, 0xA4, 0x00, 0x84, 0x02, 0x94, 0x01, 0x08, 0x04, 0x40, 0x04, 0x40, 0x09, 0x20, 0x12, 0x10, 0xE4, 0x4E, 0x0F, 0xE0, 0x00, 0x08, 0x3E, 0xFC, 0x02, 0x08, 0x22, 0x88, 0x12, 0x48, 0x0A, 0x28, 0x12, 0x48, 0x22, 0x88, 0x0A, 0x28, 0x04, 0x10, 0x04, 0x40, 0x04, 0x40, 0x09, 0x20, 0x12, 0x10, 0xE4, 0x4E, 0x0F, 0xE0, 0x00, 0x08, 0x7F, 0xFC, 0x08, 0x00, 0x08, 0x20, 0x0F, 0xF0, 0x09, 0x20, 0x08, 0xA0, 0x0B, 0x22, 0x1C, 0x22, 0x00, 0x1E, 0x10, 0x08, 0x10, 0x08, 0x14, 0x08, 0x12, 0x08, 0xF8, 0xFE, 0x10, 0x08, 0x16, 0x08, 0x1A, 0x48, 0x32, 0x28, 0xD2, 0x28, 0x12, 0x08, 0x12, 0x08, 0x12, 0x28, 0x15, 0x16, 0x58, 0xFC, 0x20, 0x00, 0x10, 0x08, 0x10, 0xFC, 0x10, 0x88, 0x14, 0x88, 0x7E, 0x88, 0x54, 0xF8, 0x54, 0x24, 0x55, 0xFE, 0x7D, 0x24, 0x55, 0x24, 0x11, 0x54, 0x15, 0x8C, 0x1D, 0x04, 0xE5, 0x04, 0x41, 0x14, 0x01, 0x08, 0x00, 0x08, 0x43, 0xFC, 0x32, 0x08, 0x12, 0x08, 0x82, 0x08, 0x63, 0xF8, 0x20, 0x44, 0x0F, 0xFE, 0x14, 0x44, 0x24, 0x44, 0xE4, 0x44, 0x24, 0xA4, 0x25, 0x14, 0x24, 0x04, 0x24, 0x14, 0x24, 0x08, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x88, 0x24, 0x1F, 0xF0, 0x28, 0x28, 0x08, 0x20, 0x0F, 0xE0, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x22, 0x88, 0x2C, 0x68, 0x20, 0x28, 0x20, 0x10, 0x04, 0x80, 0x0E, 0xA0, 0x78, 0x90, 0x08, 0x90, 0x08, 0x84, 0xFF, 0xFE, 0x08, 0x80, 0x08, 0x90, 0x0A, 0x90, 0x0C, 0x60, 0x18, 0x40, 0x68, 0xA0, 0x09, 0x20, 0x0A, 0x14, 0x28, 0x14, 0x10, 0x0C, 0x10, 0x20, 0x14, 0x20, 0xFE, 0x50, 0x10, 0x50, 0x7C, 0x88, 0x45, 0x16, 0x7E, 0x94, 0x44, 0x50, 0x7D, 0x10, 0x10, 0x94, 0xFE, 0x1E, 0x11, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x02, 0x40, 0x7F, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x7E, 0x60, 0x42, 0x50, 0x42, 0x48, 0x42, 0x44, 0x7E, 0x44, 0x48, 0x40, 0x48, 0x40, 0x4A, 0x40, 0x7F, 0x40, 0x00, 0x40, 0x00, 0x40, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0xFF, 0xF8, 0x12, 0x00, 0x17, 0xFC, 0x1A, 0x40, 0x32, 0x88, 0xD3, 0xFC, 0x12, 0x20, 0x12, 0xF8, 0x14, 0x20, 0x14, 0x24, 0x5B, 0xFE, 0x20, 0x00, 0x00, 0x08, 0x40, 0x3C, 0x37, 0xC0, 0x10, 0x40, 0x80, 0x40, 0x60, 0x44, 0x2F, 0xFE, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0xE0, 0xA0, 0x20, 0xA0, 0x21, 0x10, 0x22, 0x08, 0x24, 0x0E, 0x28, 0x04, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x29, 0x28, 0x29, 0x28, 0x45, 0x44, 0x85, 0x84, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x08, 0x88, 0x7D, 0xFC, 0x49, 0x08, 0x49, 0x08, 0x49, 0x08, 0x49, 0x28, 0x49, 0x10, 0x49, 0x04, 0x49, 0xFE, 0x48, 0x04, 0x78, 0x24, 0x47, 0xF4, 0x00, 0x04, 0x00, 0x14, 0x00, 0x08, 0x10, 0x40, 0x10, 0x88, 0x11, 0xFC, 0x1D, 0x08, 0x21, 0x08, 0x21, 0x08, 0x7D, 0x28, 0x91, 0x10, 0x11, 0x04, 0x7D, 0xFE, 0x10, 0x04, 0x10, 0x24, 0x17, 0xF4, 0x18, 0x04, 0x10, 0x14, 0x00, 0x08, 0x02, 0x00, 0x04, 0x20, 0x1F, 0xF0, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0xA0, 0x10, 0x40, 0x10, 0x04, 0x1F, 0xFE, 0x00, 0x04, 0x00, 0x24, 0xFF, 0xF4, 0x00, 0x04, 0x00, 0x28, 0x00, 0x10, 0x00, 0x08, 0x23, 0xFC, 0x18, 0x00, 0x08, 0x00, 0x80, 0x04, 0x6F, 0xFE, 0x21, 0x00, 0x09, 0x00, 0x11, 0x08, 0x23, 0xFC, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x88, 0x20, 0x50, 0x20, 0x20, 0x40, 0x08, 0x37, 0xFC, 0x10, 0x40, 0x00, 0x40, 0x02, 0x48, 0xE2, 0x48, 0x22, 0x48, 0x22, 0x48, 0x25, 0x54, 0x29, 0x64, 0x20, 0x40, 0x28, 0x40, 0x30, 0x40, 0x20, 0x44, 0x1F, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x00, 0x2F, 0xFC, 0x21, 0x00, 0x22, 0x20, 0x27, 0xF0, 0x20, 0x80, 0x20, 0x88, 0x3F, 0xFC, 0x40, 0x80, 0x40, 0x84, 0xBF, 0xFE, 0x00, 0x00, 0x00, 0x20, 0x3F, 0xF0, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0x02, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x80, 0x08, 0x82, 0x10, 0x82, 0x20, 0x7E, 0x40, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x00, 0x3F, 0xF0, 0x02, 0x00, 0x02, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0x02, 0x80, 0x04, 0x80, 0x04, 0x82, 0x08, 0x82, 0x10, 0x7E, 0x60, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x80, 0x10, 0x88, 0xFD, 0xFC, 0x10, 0x88, 0x39, 0x08, 0x35, 0x08, 0x57, 0xFE, 0x50, 0x08, 0x91, 0xFC, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x00, 0x08, 0x7F, 0xFC, 0x04, 0x00, 0x04, 0x20, 0x3F, 0xF0, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x02, 0x40, 0x04, 0x20, 0x18, 0x1C, 0x60, 0x08, 0x00, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x11, 0x10, 0x11, 0x10, 0x22, 0x10, 0x22, 0x10, 0x3F, 0xFC, 0x08, 0x10, 0x10, 0x50, 0x20, 0x20, 0x00, 0x40, 0x02, 0x50, 0x3F, 0x48, 0x00, 0x48, 0x00, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x27, 0x40, 0x24, 0x40, 0x24, 0x20, 0x24, 0x20, 0x27, 0xA0, 0xF8, 0x12, 0x40, 0x0A, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x10, 0x3F, 0xFC, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x14, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x80, 0x10, 0x88, 0xFD, 0xFC, 0x10, 0x88, 0x15, 0x08, 0x19, 0x08, 0x37, 0xFE, 0xD0, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x51, 0xF8, 0x21, 0x08, 0x08, 0x00, 0x08, 0x10, 0x0F, 0xF8, 0x11, 0x00, 0x11, 0x00, 0x21, 0x00, 0x41, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x08, 0x3F, 0xFC, 0x52, 0x90, 0x92, 0x90, 0x7F, 0xFC, 0x12, 0x90, 0x12, 0x94, 0xFF, 0xFE, 0x10, 0x10, 0x1E, 0xFC, 0x22, 0x90, 0x52, 0x94, 0x0D, 0xFE, 0x18, 0x10, 0xE0, 0x10, 0x00, 0x10, 0x10, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x60, 0x80, 0xA0, 0x88, 0x27, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x3F, 0xFE, 0x20, 0x00, 0x09, 0x00, 0x09, 0x08, 0x09, 0xFC, 0x12, 0x00, 0x15, 0xF8, 0x31, 0x48, 0x51, 0x28, 0x91, 0x08, 0x1F, 0xFE, 0x12, 0x48, 0x12, 0x28, 0x12, 0x08, 0x13, 0xFC, 0x10, 0x08, 0x10, 0x28, 0x10, 0x10, 0x10, 0x40, 0x10, 0x88, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFD, 0x08, 0x11, 0x28, 0x11, 0x10, 0x11, 0x04, 0x11, 0xFE, 0x10, 0x04, 0x1C, 0x24, 0xF3, 0xF4, 0x40, 0x04, 0x00, 0x14, 0x00, 0x08, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x90, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x20, 0x84, 0x20, 0x44, 0x20, 0x48, 0x20, 0x48, 0x20, 0x30, 0x20, 0x20, 0x40, 0x60, 0x40, 0x92, 0x83, 0x0A, 0x00, 0x06, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x89, 0x24, 0x14, 0x10, 0x07, 0xE0, 0x0C, 0x40, 0x13, 0x80, 0x0C, 0x60, 0xF2, 0x1E, 0x0F, 0xE4, 0x02, 0x20, 0x04, 0x20, 0x08, 0xA0, 0x30, 0x40, 0x00, 0x08, 0x0B, 0xFC, 0x7C, 0x80, 0x48, 0x88, 0x49, 0xFC, 0x48, 0x88, 0x49, 0x08, 0x79, 0x08, 0x4F, 0xFE, 0x48, 0x08, 0x49, 0xFC, 0x49, 0x08, 0x79, 0x08, 0x49, 0x08, 0x01, 0xF8, 0x01, 0x08, 0x11, 0x00, 0x11, 0x00, 0x51, 0x00, 0x51, 0x04, 0x7B, 0xFE, 0x54, 0xA4, 0x90, 0xA4, 0x1C, 0xA4, 0x31, 0x24, 0xD1, 0x44, 0x12, 0x44, 0x12, 0x44, 0x14, 0x84, 0x10, 0x84, 0x11, 0x28, 0x10, 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x24, 0x44, 0x44, 0x44, 0x84, 0x44, 0x08, 0x44, 0x08, 0x84, 0x08, 0x84, 0x10, 0x84, 0x11, 0x04, 0x21, 0x04, 0x42, 0x04, 0x04, 0x28, 0x08, 0x10, 0x08, 0x00, 0x08, 0x00, 0x0F, 0xF0, 0x18, 0x20, 0x26, 0xC0, 0x41, 0x00, 0x06, 0xC0, 0x1A, 0x30, 0xE2, 0x0E, 0x1F, 0xF4, 0x02, 0x10, 0x02, 0x10, 0x04, 0x10, 0x04, 0x10, 0x08, 0xA0, 0x30, 0x40, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x80, 0x10, 0x88, 0x59, 0xFC, 0x54, 0x88, 0x51, 0x08, 0x91, 0x08, 0x17, 0xFE, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x00, 0x08, 0x43, 0xFC, 0x32, 0x08, 0x12, 0x08, 0x03, 0xF8, 0x00, 0x00, 0xE7, 0xFC, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0xA0, 0x28, 0xA0, 0x31, 0x10, 0x22, 0x0E, 0x04, 0x04, 0x04, 0x40, 0x04, 0x50, 0x3F, 0xF8, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x02, 0x04, 0x7F, 0x7E, 0x44, 0x44, 0x44, 0x44, 0x5F, 0x44, 0x51, 0x7C, 0x51, 0x40, 0x5F, 0x40, 0x44, 0x44, 0x44, 0x44, 0x7F, 0x3C, 0x00, 0x00, 0x24, 0x88, 0x22, 0x44, 0x42, 0x42, 0x80, 0x02, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x11, 0x00, 0xFD, 0x00, 0x11, 0x04, 0x31, 0xFE, 0x39, 0x10, 0x55, 0x10, 0x51, 0x10, 0x91, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x10, 0x14, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x48, 0x34, 0x50, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x0B, 0xFE, 0xFC, 0x50, 0x10, 0x50, 0x10, 0x54, 0x21, 0xFE, 0x25, 0x54, 0x7F, 0x54, 0xA5, 0x54, 0x25, 0x54, 0x25, 0x5C, 0x25, 0x84, 0x25, 0x04, 0x3D, 0x04, 0x25, 0xFC, 0x01, 0x04, 0x00, 0x40, 0x04, 0x40, 0xFE, 0x40, 0x10, 0x7E, 0x10, 0x42, 0x20, 0x82, 0x20, 0x84, 0x7D, 0x44, 0xA6, 0x24, 0x24, 0x18, 0x24, 0x08, 0x24, 0x10, 0x24, 0x20, 0x3C, 0x40, 0x24, 0x80, 0x01, 0x00, 0x01, 0x00, 0x09, 0x06, 0x7D, 0x38, 0x49, 0x20, 0x4F, 0xE0, 0x49, 0x20, 0x4B, 0xBE, 0x7B, 0x68, 0x4D, 0x28, 0x49, 0x28, 0x49, 0x28, 0x49, 0x28, 0x79, 0x48, 0x49, 0x48, 0x01, 0x88, 0x01, 0x08, 0x00, 0x40, 0x08, 0x48, 0x7F, 0xFC, 0x48, 0x40, 0x4B, 0xF8, 0x48, 0x00, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x49, 0x10, 0x4F, 0xFE, 0x78, 0x08, 0x4B, 0xFC, 0x02, 0x08, 0x02, 0x08, 0x03, 0xF8, 0x00, 0x08, 0x07, 0xFC, 0x7A, 0x08, 0x4A, 0x08, 0x4A, 0x10, 0x4A, 0x20, 0x4B, 0x3C, 0x4A, 0x84, 0x4A, 0x88, 0x4A, 0x48, 0x4A, 0x50, 0x7A, 0x20, 0x4C, 0x50, 0x08, 0x88, 0x11, 0x0E, 0x02, 0x04, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x1D, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x7D, 0xF8, 0x91, 0x04, 0x11, 0xFE, 0x7D, 0x54, 0x12, 0x54, 0x10, 0xA4, 0x15, 0x24, 0x1A, 0x44, 0x10, 0xA8, 0x00, 0x10, 0x10, 0x00, 0x10, 0x04, 0x57, 0xFE, 0x50, 0x90, 0x7C, 0x90, 0x50, 0x94, 0x97, 0xFE, 0x1A, 0x94, 0x32, 0x94, 0xD2, 0x94, 0x12, 0x94, 0x12, 0x8C, 0x13, 0x04, 0x12, 0x04, 0x13, 0xFC, 0x12, 0x04, 0x09, 0x04, 0x1C, 0xD8, 0xF0, 0x20, 0x10, 0xD8, 0x11, 0x04, 0xFC, 0x80, 0x13, 0xFE, 0x38, 0xA0, 0x35, 0x24, 0x51, 0xFE, 0x53, 0x24, 0x95, 0x24, 0x11, 0x34, 0x10, 0x28, 0x10, 0x20, 0x10, 0x20, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x08, 0x30, 0x06, 0xC0, 0x01, 0x00, 0x06, 0xC0, 0x3A, 0x38, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x80, 0x08, 0x88, 0x1F, 0xFC, 0x28, 0x88, 0xC8, 0x88, 0x08, 0xA8, 0x08, 0x90, 0x00, 0x80, 0x00, 0x80, 0x00, 0xF8, 0x3F, 0x00, 0x11, 0x10, 0x09, 0x20, 0x05, 0x44, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x60, 0x09, 0x1C, 0x31, 0x08, 0x00, 0x00, 0x12, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x40, 0x78, 0x44, 0x4F, 0xFE, 0x48, 0xE0, 0x49, 0x58, 0x7A, 0x48, 0x48, 0xA0, 0x49, 0x10, 0x4E, 0x4E, 0x7A, 0x48, 0x49, 0x50, 0x48, 0xE0, 0x49, 0x58, 0x4A, 0x48, 0x48, 0x40, 0x98, 0xC0, 0x02, 0x00, 0x02, 0x00, 0x02, 0x08, 0x07, 0xFC, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x24, 0x10, 0x43, 0x20, 0x01, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x18, 0x00, 0x60, 0x00, 0x11, 0x10, 0x11, 0x10, 0x17, 0xFC, 0x11, 0x10, 0x59, 0x10, 0x55, 0x14, 0x5F, 0xFE, 0x90, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x40, 0x10, 0x88, 0x13, 0xFC, 0x12, 0x08, 0x56, 0x08, 0x5B, 0xF8, 0x52, 0x08, 0x93, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x28, 0x80, 0x2A, 0x60, 0x46, 0x2C, 0x8A, 0x0A, 0x01, 0xF8, 0x11, 0x04, 0x10, 0xD8, 0x10, 0x20, 0x14, 0xD8, 0x59, 0x04, 0x50, 0x80, 0x57, 0xFE, 0x90, 0xA0, 0x11, 0x24, 0x11, 0xFE, 0x13, 0x24, 0x2D, 0x24, 0x29, 0x34, 0x45, 0x28, 0x80, 0x20, 0x00, 0x20, 0x40, 0x1C, 0x37, 0xE0, 0x12, 0x48, 0x01, 0x50, 0x80, 0x80, 0x61, 0x10, 0x23, 0xF8, 0x08, 0x40, 0x10, 0x84, 0x27, 0xFC, 0xE0, 0x40, 0x3F, 0xFE, 0x20, 0xA0, 0x21, 0x10, 0x22, 0x0E, 0x2C, 0x04, 0x20, 0x80, 0x18, 0x80, 0x08, 0x84, 0x00, 0xFE, 0x81, 0x04, 0x61, 0x04, 0x22, 0x04, 0x0B, 0x08, 0x14, 0xC8, 0x20, 0x50, 0xE0, 0x20, 0x20, 0x40, 0x20, 0x80, 0x21, 0x00, 0x22, 0x00, 0x2C, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x24, 0x90, 0x22, 0xA0, 0x24, 0x98, 0x28, 0x88, 0x24, 0x80, 0x27, 0xF0, 0x28, 0x84, 0x3F, 0xFE, 0x40, 0x80, 0x40, 0x80, 0x80, 0x80, 0x00, 0x80, 0x21, 0x10, 0x22, 0x10, 0x27, 0x90, 0x24, 0x94, 0xFF, 0xBE, 0x24, 0xC4, 0x77, 0xA4, 0x62, 0x28, 0xBF, 0xE8, 0x24, 0x28, 0x27, 0x90, 0x24, 0x90, 0x24, 0xA8, 0x2A, 0xA8, 0x31, 0x46, 0x20, 0x84, 0x02, 0x40, 0x02, 0x28, 0x7F, 0xFC, 0x04, 0x80, 0x04, 0xF0, 0x0B, 0x84, 0x10, 0x7C, 0x22, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x08, 0x09, 0x10, 0x38, 0xA0, 0xCA, 0x60, 0x0C, 0x1C, 0x08, 0x08, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x22, 0x20, 0x22, 0x24, 0x3F, 0xFE, 0x22, 0x20, 0x22, 0x20, 0x23, 0xE0, 0x20, 0x88, 0x2F, 0xFC, 0x28, 0x88, 0x48, 0x88, 0x48, 0xA8, 0x88, 0x90, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x04, 0x08, 0x04, 0x04, 0x04, 0x02, 0x04, 0x02, 0x24, 0x00, 0xC4, 0x03, 0x04, 0x0C, 0x04, 0x30, 0x04, 0x10, 0x04, 0x00, 0x44, 0x00, 0x28, 0x00, 0x10, 0x10, 0x40, 0x10, 0x84, 0x11, 0xFE, 0x11, 0x04, 0xFD, 0x04, 0x25, 0xFC, 0x25, 0x04, 0x25, 0xFC, 0x25, 0x04, 0x45, 0x04, 0x29, 0xFC, 0x10, 0x40, 0x29, 0x20, 0x47, 0x2C, 0x85, 0x0A, 0x00, 0xF8, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x20, 0x11, 0x20, 0x11, 0x28, 0x1D, 0xFC, 0x21, 0x20, 0x22, 0x20, 0x7C, 0x24, 0x93, 0xFE, 0x10, 0x50, 0x7C, 0x50, 0x10, 0x50, 0x10, 0x90, 0x14, 0x92, 0x19, 0x12, 0x12, 0x0E, 0x04, 0x00, 0x00, 0x40, 0x42, 0x40, 0x32, 0x48, 0x13, 0xFC, 0x82, 0x40, 0x64, 0x40, 0x20, 0x44, 0x0F, 0xFE, 0x10, 0xA0, 0x20, 0xA0, 0xE0, 0xA0, 0x21, 0x20, 0x21, 0x22, 0x22, 0x22, 0x24, 0x1E, 0x28, 0x00, 0x00, 0x38, 0x7F, 0xC0, 0x04, 0x00, 0x04, 0x10, 0x08, 0x20, 0x3F, 0xC0, 0x01, 0x00, 0x02, 0x20, 0x04, 0x10, 0x3F, 0xF8, 0x01, 0x08, 0x09, 0x20, 0x09, 0x10, 0x11, 0x08, 0x25, 0x08, 0x02, 0x00, 0x00, 0x40, 0x79, 0x50, 0x4B, 0x4C, 0x54, 0x44, 0x50, 0x40, 0x63, 0xF8, 0x52, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x68, 0x40, 0x51, 0x50, 0x42, 0x4C, 0x44, 0x44, 0x41, 0x40, 0x40, 0x80, 0x00, 0x40, 0x00, 0x50, 0x7E, 0x48, 0x02, 0x40, 0x43, 0xFE, 0x24, 0x40, 0x14, 0x44, 0x14, 0x44, 0x08, 0x48, 0x14, 0x48, 0x12, 0x50, 0x22, 0x20, 0x40, 0x60, 0x80, 0x92, 0x01, 0x0A, 0x02, 0x06, 0x10, 0x00, 0x10, 0x04, 0x21, 0xFE, 0x21, 0x24, 0x45, 0x24, 0xF9, 0x24, 0x11, 0x24, 0x21, 0x24, 0x41, 0xFC, 0xFD, 0x24, 0x01, 0x24, 0x01, 0x24, 0x1D, 0x24, 0xE1, 0x24, 0x41, 0xFC, 0x01, 0x04, 0x00, 0x40, 0x00, 0x20, 0x7B, 0xFE, 0x4A, 0x22, 0x4D, 0xFC, 0x78, 0x20, 0x48, 0xF8, 0x48, 0x20, 0x7F, 0xFE, 0x48, 0x20, 0x49, 0xFC, 0x49, 0x04, 0x79, 0x04, 0x49, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x14, 0x20, 0x7E, 0x20, 0x54, 0x20, 0x54, 0x30, 0x54, 0x28, 0x54, 0x24, 0x7C, 0x24, 0x50, 0x20, 0x14, 0x20, 0x1E, 0x20, 0xF2, 0x20, 0x40, 0x20, 0x00, 0x20, 0x00, 0x08, 0x7F, 0xFC, 0x40, 0x10, 0x5F, 0xF8, 0x51, 0x10, 0x51, 0x10, 0x5F, 0xF0, 0x51, 0x10, 0x51, 0x10, 0x5F, 0xF0, 0x51, 0x10, 0x41, 0x00, 0x41, 0x00, 0x41, 0x04, 0x7F, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x3E, 0xF8, 0x22, 0x08, 0x3E, 0xF8, 0x20, 0x00, 0x3E, 0xF8, 0x20, 0x88, 0x3E, 0x50, 0x20, 0x20, 0x20, 0xDE, 0x23, 0x04, 0x10, 0x40, 0x10, 0x20, 0x23, 0xFE, 0xFE, 0x22, 0x25, 0xFC, 0x50, 0x20, 0x51, 0xF8, 0xFC, 0x20, 0x13, 0xFE, 0x10, 0x04, 0x1D, 0xFE, 0xF1, 0x04, 0x51, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x00, 0x04, 0x17, 0xBE, 0x7C, 0x84, 0x54, 0x84, 0x54, 0x84, 0x57, 0xBC, 0x54, 0x00, 0x74, 0x7C, 0x57, 0xC4, 0x54, 0x44, 0x54, 0x28, 0x57, 0x90, 0x74, 0x28, 0x54, 0x28, 0x04, 0x46, 0x04, 0x84, 0x10, 0x20, 0x10, 0x20, 0x10, 0x28, 0x55, 0xFC, 0x54, 0x20, 0x55, 0x24, 0x54, 0xA8, 0x54, 0x20, 0x57, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x7C, 0x50, 0x04, 0x50, 0x00, 0x88, 0x01, 0x0E, 0x06, 0x04, 0x08, 0x40, 0x08, 0x40, 0x08, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x32, 0x48, 0x51, 0x50, 0x90, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x08, 0x14, 0x0E, 0x18, 0x04, 0x00, 0x20, 0x44, 0x20, 0x2C, 0x28, 0x11, 0xFC, 0x28, 0x20, 0x49, 0x24, 0x88, 0xA8, 0x08, 0x20, 0x1B, 0xFE, 0x28, 0x20, 0x48, 0x20, 0x88, 0x50, 0x08, 0x50, 0x08, 0x88, 0x51, 0x0E, 0x26, 0x04, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x80, 0x02, 0x40, 0x02, 0x30, 0x02, 0x10, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3F, 0xFE, 0x20, 0x00, 0x3F, 0xFE, 0x22, 0x00, 0x27, 0xF8, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x27, 0xF8, 0x22, 0x00, 0x47, 0xF0, 0x4A, 0x20, 0x81, 0xC0, 0x1E, 0x3E, 0x7F, 0xFC, 0x02, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x08, 0x00, 0x0F, 0xF0, 0x14, 0x20, 0x22, 0x40, 0x41, 0x80, 0x06, 0x60, 0x38, 0x1C, 0x00, 0x04, 0x0F, 0xFE, 0x7C, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x50, 0x48, 0x48, 0x48, 0x44, 0x48, 0x44, 0x48, 0x40, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x20, 0x10, 0x20, 0x90, 0x27, 0x10, 0x24, 0x20, 0xFC, 0x3E, 0x24, 0x42, 0x27, 0x94, 0x2D, 0x10, 0x35, 0x10, 0xE5, 0x10, 0x25, 0x28, 0x25, 0x28, 0x25, 0x28, 0x29, 0x44, 0xA1, 0x44, 0x40, 0x82, 0x20, 0x10, 0x20, 0x90, 0x27, 0x10, 0x3C, 0x20, 0x44, 0x3E, 0x84, 0x42, 0x7F, 0x94, 0x25, 0x10, 0x25, 0x10, 0xFD, 0x10, 0x25, 0x28, 0x25, 0x28, 0x2D, 0x28, 0x35, 0x44, 0x29, 0x44, 0x00, 0x82, 0x01, 0x00, 0x11, 0x00, 0x11, 0x10, 0x1F, 0xF8, 0x11, 0x00, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x80, 0x08, 0x82, 0x10, 0x82, 0x20, 0x7E, 0x40, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x20, 0x40, 0x24, 0x44, 0x64, 0x44, 0xA4, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x11, 0x04, 0x10, 0x88, 0x1E, 0x54, 0x25, 0xFE, 0x28, 0x20, 0x7E, 0x20, 0xAA, 0x28, 0x2B, 0xFC, 0x3E, 0x20, 0x2A, 0x20, 0x2A, 0x24, 0x3F, 0xFE, 0x00, 0x20, 0x0E, 0x20, 0xF0, 0x20, 0x40, 0x20, 0x08, 0x08, 0x08, 0x1C, 0x11, 0xE0, 0x10, 0x20, 0x22, 0x20, 0x7E, 0x20, 0x08, 0x24, 0x13, 0xFE, 0x20, 0x20, 0x7E, 0x20, 0x00, 0x20, 0x00, 0x20, 0x1E, 0x20, 0xE0, 0x20, 0x40, 0x20, 0x00, 0x20, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x90, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x3F, 0x84, 0x20, 0x44, 0x2F, 0x48, 0x29, 0x48, 0x29, 0x30, 0x29, 0x20, 0x4F, 0x60, 0x48, 0x92, 0x83, 0x0A, 0x00, 0x06, 0x08, 0x00, 0x4B, 0xF8, 0x49, 0x10, 0x48, 0xA0, 0x48, 0x40, 0x48, 0xA0, 0x4B, 0x1E, 0x1F, 0xF4, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x09, 0x04, 0x09, 0x3E, 0x11, 0x00, 0x23, 0xC0, 0x42, 0x04, 0x0C, 0x7E, 0x13, 0x88, 0x31, 0x08, 0x51, 0x08, 0x97, 0xC8, 0x11, 0x08, 0x11, 0x48, 0x11, 0x88, 0x11, 0x08, 0x10, 0x28, 0x10, 0x10, 0x08, 0x40, 0x12, 0x20, 0x3F, 0x04, 0x23, 0xFE, 0x32, 0x20, 0x2A, 0x20, 0x22, 0x40, 0xFE, 0x84, 0x22, 0xF8, 0x32, 0x10, 0x2A, 0x20, 0x22, 0x40, 0x22, 0x88, 0x43, 0xFC, 0x8A, 0x04, 0x04, 0x00, 0x20, 0x04, 0x1B, 0xFE, 0x48, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x43, 0x84, 0x45, 0x44, 0x49, 0x34, 0x51, 0x14, 0x41, 0x04, 0x41, 0x04, 0x40, 0x14, 0x40, 0x08, 0x40, 0x00, 0x20, 0x0C, 0x2F, 0x70, 0x01, 0x10, 0x82, 0x10, 0x42, 0x50, 0x44, 0x5C, 0x07, 0x50, 0x11, 0x50, 0x29, 0x50, 0xE6, 0x54, 0x22, 0xFE, 0x25, 0x00, 0x24, 0x80, 0x28, 0x7E, 0x30, 0x00, 0x00, 0x80, 0xF8, 0x40, 0x08, 0x04, 0x0F, 0xFE, 0x08, 0x40, 0x78, 0x40, 0x40, 0x80, 0x41, 0x08, 0x41, 0xF0, 0x78, 0x20, 0x08, 0x40, 0x08, 0x80, 0x09, 0x08, 0x0B, 0xFC, 0x50, 0x04, 0x20, 0x00, 0x21, 0x10, 0x20, 0xA4, 0x2F, 0xFE, 0x20, 0xA0, 0xFB, 0xF8, 0x48, 0xA8, 0x4F, 0xFE, 0x48, 0xA8, 0x4B, 0xF8, 0x88, 0xA0, 0x51, 0xB0, 0x22, 0xA8, 0x52, 0xA8, 0x4C, 0xA6, 0x88, 0xA0, 0x00, 0xA0, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x14, 0x50, 0x44, 0x44, 0x34, 0x4C, 0x14, 0x50, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x78, 0x40, 0x48, 0xA0, 0x51, 0x10, 0x52, 0x2E, 0x65, 0xF4, 0x50, 0x00, 0x4A, 0x48, 0x4A, 0x48, 0x49, 0x48, 0x69, 0x48, 0x51, 0x50, 0x41, 0x50, 0x40, 0x24, 0x4F, 0xFE, 0x40, 0x00, 0x00, 0x08, 0x09, 0xFC, 0xFD, 0x08, 0x11, 0x28, 0x11, 0x28, 0x11, 0x28, 0x11, 0x28, 0x7D, 0x48, 0x11, 0x48, 0x11, 0x48, 0x10, 0x40, 0x1C, 0xA0, 0xF0, 0xA0, 0x41, 0x22, 0x02, 0x22, 0x0C, 0x1E, 0x08, 0x10, 0x08, 0x10, 0x09, 0x18, 0xFF, 0x94, 0x08, 0x10, 0x09, 0x14, 0x7F, 0xFE, 0x55, 0x10, 0x55, 0x10, 0x7F, 0x10, 0x49, 0x28, 0x7F, 0x28, 0x49, 0x28, 0x49, 0x44, 0x43, 0x44, 0x41, 0x82, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x20, 0x10, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x08, 0x40, 0x7C, 0x88, 0x4B, 0xFC, 0x4A, 0x08, 0x4B, 0xF8, 0x7A, 0x08, 0x4B, 0xFC, 0x48, 0x48, 0x48, 0x50, 0x7F, 0xE0, 0x49, 0x60, 0x49, 0x50, 0x4A, 0x4E, 0x4C, 0x44, 0x49, 0x40, 0x98, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0xF8, 0x3D, 0x08, 0x26, 0x10, 0x48, 0x24, 0x41, 0x9E, 0xA2, 0x04, 0x22, 0x04, 0x22, 0x04, 0x23, 0x9C, 0x26, 0x04, 0x2A, 0x04, 0x32, 0x04, 0x23, 0xFC, 0x02, 0x04, 0x04, 0x40, 0x02, 0x88, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x80, 0x44, 0xFC, 0x29, 0x04, 0x12, 0x48, 0x20, 0x40, 0x60, 0xA0, 0x20, 0x90, 0x23, 0x0E, 0x2C, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x49, 0x02, 0x89, 0x24, 0x0F, 0xF0, 0x11, 0x00, 0x21, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x04, 0x82, 0x04, 0x82, 0x18, 0x7E, 0x60, 0x00, 0x00, 0x80, 0x78, 0x80, 0x48, 0xF8, 0x51, 0x08, 0x52, 0x10, 0x64, 0x24, 0x51, 0x9E, 0x4A, 0x04, 0x4A, 0x04, 0x4A, 0x04, 0x6B, 0x9C, 0x52, 0x04, 0x42, 0x04, 0x42, 0x04, 0x43, 0xFC, 0x42, 0x04, 0x00, 0x08, 0x7D, 0xFC, 0x45, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x51, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x45, 0x04, 0x45, 0x88, 0x45, 0x50, 0x69, 0x20, 0x51, 0x10, 0x41, 0x4E, 0x41, 0x84, 0x41, 0x00, 0x08, 0x40, 0x08, 0x50, 0x10, 0x48, 0x10, 0x40, 0x22, 0x7C, 0x7F, 0xC0, 0x08, 0x44, 0x10, 0x7E, 0x23, 0xC0, 0x7C, 0x48, 0x00, 0x50, 0x00, 0x20, 0x1C, 0x60, 0xE0, 0x92, 0x43, 0x0A, 0x00, 0x06, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0xFD, 0x04, 0x11, 0xFC, 0x31, 0x04, 0x39, 0x04, 0x55, 0x04, 0x51, 0xFC, 0x91, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x00, 0x04, 0x3F, 0xFE, 0x22, 0x00, 0x22, 0x04, 0x22, 0x7E, 0x3F, 0xC4, 0x22, 0x44, 0x26, 0x7C, 0x27, 0x44, 0x2A, 0xC4, 0x2A, 0x7C, 0x32, 0x44, 0x42, 0x44, 0x42, 0x44, 0x82, 0x7C, 0x02, 0x44, 0x20, 0x40, 0x27, 0xFC, 0x38, 0x00, 0x43, 0xB8, 0x82, 0xA8, 0x7B, 0xB8, 0x21, 0x10, 0x27, 0xFC, 0xF9, 0x10, 0x23, 0xF8, 0x21, 0x10, 0x2F, 0xFE, 0x29, 0x48, 0x33, 0x30, 0x2D, 0x8E, 0x01, 0x04, 0x00, 0x30, 0x3F, 0xC0, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xCF, 0xE4, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x08, 0x04, 0x08, 0xFE, 0xFE, 0x84, 0x08, 0x84, 0x18, 0xFC, 0x1C, 0x84, 0x2A, 0x84, 0x28, 0xFC, 0x48, 0x84, 0x88, 0x84, 0x08, 0xFC, 0x08, 0x84, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x3E, 0xF8, 0x22, 0x88, 0x3E, 0xF8, 0x04, 0x40, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x40, 0xFF, 0xFE, 0x09, 0x10, 0x18, 0xA0, 0x6C, 0x70, 0x08, 0x0E, 0x02, 0x00, 0x42, 0x04, 0x32, 0x7E, 0x12, 0x44, 0x8F, 0xC4, 0x62, 0x44, 0x26, 0x7C, 0x07, 0x44, 0x1A, 0xC4, 0x2A, 0x44, 0xF2, 0x7C, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x7C, 0x22, 0x44, 0x02, 0x00, 0x02, 0x00, 0x04, 0x20, 0x08, 0x20, 0x10, 0x40, 0x3F, 0x80, 0x01, 0x00, 0x02, 0x08, 0x04, 0x08, 0x3F, 0xF0, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x70, 0x00, 0x82, 0x00, 0x44, 0x04, 0x29, 0xDE, 0xFE, 0x44, 0x10, 0x44, 0x11, 0x54, 0x7C, 0xCC, 0x10, 0x44, 0x10, 0x44, 0xFE, 0xCC, 0x11, 0x54, 0x12, 0x64, 0x10, 0x44, 0x20, 0x44, 0x21, 0x54, 0x40, 0x88, 0x22, 0x08, 0x11, 0x10, 0x10, 0xA0, 0xFF, 0xFC, 0x08, 0x40, 0x10, 0x50, 0x3B, 0xF8, 0x54, 0x40, 0x90, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x02, 0x08, 0x41, 0x10, 0x30, 0xA0, 0x17, 0xFC, 0x00, 0x40, 0x00, 0x50, 0xF3, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x14, 0x40, 0x18, 0x40, 0x10, 0x40, 0x00, 0x40, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0xFF, 0x08, 0x11, 0xF8, 0x31, 0x08, 0x39, 0xF8, 0x55, 0x08, 0x91, 0x08, 0x11, 0xF8, 0x00, 0x00, 0x12, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x20, 0x08, 0x40, 0x7C, 0x84, 0x4B, 0xFE, 0x4A, 0x04, 0x4A, 0x04, 0x4A, 0xF4, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0x94, 0x7A, 0xF4, 0x4A, 0x04, 0x02, 0x04, 0x02, 0x14, 0x02, 0x08, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x40, 0x01, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x04, 0x0B, 0xFE, 0xFC, 0x20, 0x10, 0x44, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x1D, 0x24, 0xF1, 0x24, 0x41, 0x24, 0x00, 0x58, 0x00, 0x84, 0x03, 0x02, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x28, 0x2E, 0xC8, 0x24, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x08, 0x08, 0x08, 0x07, 0xF8, 0x11, 0x00, 0x11, 0xF0, 0x12, 0x24, 0x17, 0xFE, 0xFC, 0x44, 0x17, 0xFC, 0x30, 0x80, 0x39, 0x44, 0x56, 0x68, 0x51, 0xB0, 0x96, 0x30, 0x10, 0x68, 0x11, 0xA6, 0x16, 0x20, 0x10, 0xA0, 0x10, 0x40, 0x09, 0x00, 0x09, 0xF0, 0x0A, 0x24, 0x17, 0xFE, 0x1C, 0x44, 0x37, 0xFC, 0x50, 0x80, 0x91, 0x44, 0x16, 0x68, 0x10, 0xB0, 0x17, 0x30, 0x10, 0x68, 0x11, 0xA6, 0x16, 0x20, 0x10, 0xA0, 0x10, 0x40, 0x02, 0x00, 0x04, 0x00, 0x08, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x40, 0x24, 0x4F, 0xF4, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x08, 0x00, 0x0F, 0xE0, 0x10, 0x48, 0x3F, 0xFC, 0x61, 0x08, 0xA1, 0x08, 0x3F, 0xF8, 0x06, 0x10, 0x19, 0x20, 0x62, 0xC0, 0x0C, 0xC0, 0x31, 0xA0, 0x06, 0x90, 0x18, 0x8E, 0x62, 0x84, 0x01, 0x00, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x3F, 0xF8, 0x01, 0x08, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x21, 0x08, 0x25, 0x48, 0x25, 0x28, 0x25, 0x28, 0x29, 0x28, 0x41, 0x08, 0x01, 0x08, 0x00, 0x20, 0x05, 0x24, 0xFE, 0xA8, 0x10, 0x24, 0x11, 0xFE, 0x21, 0x04, 0x25, 0x04, 0x7F, 0xFC, 0xA5, 0x04, 0x25, 0x04, 0x25, 0xFC, 0x25, 0x04, 0x25, 0x04, 0x3D, 0x04, 0x25, 0x14, 0x01, 0x08, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x89, 0x24, 0x11, 0x10, 0x05, 0x40, 0x03, 0x90, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x08, 0x04, 0x49, 0x04, 0x2A, 0x04, 0x09, 0x24, 0x7F, 0xA4, 0x41, 0x24, 0x41, 0x24, 0x7F, 0x24, 0x41, 0x24, 0x41, 0x24, 0x7F, 0x24, 0x41, 0x24, 0x41, 0x04, 0x41, 0x04, 0x45, 0x14, 0x42, 0x08, 0x00, 0x40, 0x08, 0x44, 0x7F, 0xF8, 0x48, 0x50, 0x48, 0x64, 0x4F, 0xFE, 0x48, 0x80, 0x49, 0xF8, 0x4A, 0x10, 0x4C, 0x24, 0x4B, 0xFE, 0x48, 0x20, 0x78, 0x20, 0x48, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x3E, 0xF8, 0x22, 0x88, 0x3E, 0xF8, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x11, 0x10, 0x12, 0x90, 0x04, 0x40, 0x78, 0x3C, 0x00, 0x00, 0x3E, 0xF8, 0x22, 0x88, 0x3E, 0xF8, 0x10, 0x20, 0x11, 0x24, 0x10, 0xA8, 0x3C, 0x24, 0x21, 0xFE, 0x41, 0x04, 0xBD, 0x04, 0x11, 0xFC, 0x11, 0x04, 0xFD, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x15, 0x04, 0x19, 0x04, 0x11, 0x14, 0x01, 0x08, 0x00, 0x40, 0x42, 0x48, 0x31, 0x50, 0x10, 0x48, 0x83, 0xFC, 0x62, 0x08, 0x22, 0x08, 0x0B, 0xF8, 0x12, 0x08, 0x22, 0x08, 0xE3, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x28, 0x22, 0x10, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x89, 0x24, 0x05, 0x50, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x02, 0x08, 0x41, 0xB0, 0x30, 0x40, 0x11, 0xB0, 0x82, 0x48, 0x6F, 0xFE, 0x20, 0x80, 0x09, 0xF8, 0x13, 0x08, 0x25, 0xF8, 0xE9, 0x08, 0x21, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x21, 0x10, 0x00, 0x80, 0x08, 0x88, 0x7C, 0xFC, 0x4F, 0x80, 0x48, 0x50, 0x48, 0x22, 0x78, 0xD2, 0x4B, 0x0E, 0x48, 0x00, 0x4B, 0xFC, 0x48, 0xA0, 0x78, 0xA0, 0x49, 0x22, 0x01, 0x22, 0x02, 0x1E, 0x0C, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x40, 0x05, 0x20, 0x09, 0x10, 0x09, 0x08, 0x11, 0x04, 0x21, 0x04, 0x41, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x10, 0x3F, 0xE0, 0x02, 0x40, 0x02, 0x84, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x00, 0x3F, 0xE0, 0x10, 0x80, 0x21, 0x08, 0x5F, 0xFC, 0x81, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x40, 0x10, 0x20, 0x10, 0x04, 0x13, 0xFE, 0xFC, 0x00, 0x10, 0x88, 0x31, 0x06, 0x3A, 0x8A, 0x54, 0x88, 0x50, 0x50, 0x90, 0x50, 0x10, 0x20, 0x10, 0x50, 0x10, 0x88, 0x13, 0x0E, 0x1C, 0x04, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x05, 0x40, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x00, 0x40, 0x00, 0x48, 0x7B, 0xFC, 0x48, 0x48, 0x4F, 0xFE, 0x48, 0x48, 0x4B, 0xF8, 0x48, 0x40, 0x4A, 0x48, 0x4A, 0xE8, 0x4A, 0xD8, 0x7B, 0x58, 0x42, 0x48, 0x04, 0x48, 0x08, 0x48, 0x00, 0x40, 0x10, 0x40, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x00, 0xF8, 0x3F, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x10, 0x0E, 0x60, 0x04, 0x10, 0x20, 0x08, 0x20, 0x02, 0x20, 0xFF, 0x24, 0x24, 0x7E, 0x22, 0x84, 0x41, 0x44, 0xA4, 0x44, 0x14, 0x48, 0x08, 0x28, 0x14, 0x28, 0x24, 0x10, 0x22, 0x28, 0x42, 0x28, 0x80, 0x46, 0x01, 0x84, 0x21, 0x00, 0x21, 0x04, 0x27, 0xFE, 0x21, 0x14, 0xFF, 0xD4, 0x21, 0x14, 0x77, 0xD4, 0x69, 0x24, 0xA1, 0x4C, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0xA0, 0x20, 0x90, 0x23, 0x0E, 0x2C, 0x04, 0x04, 0x40, 0x04, 0x40, 0x24, 0x40, 0x27, 0x4C, 0x24, 0x70, 0x24, 0x40, 0x24, 0x42, 0x27, 0x42, 0xFC, 0x3E, 0x00, 0x00, 0x00, 0x20, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x01, 0x20, 0x3F, 0xA0, 0x21, 0x20, 0x3F, 0x3E, 0x21, 0x42, 0x3F, 0x94, 0x10, 0x10, 0x10, 0x90, 0x3F, 0xD0, 0x48, 0x90, 0xC8, 0x90, 0x54, 0xA8, 0x40, 0xA8, 0x7C, 0xA4, 0x05, 0x44, 0x02, 0x82, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x15, 0xFC, 0x7F, 0x04, 0x55, 0xFC, 0x54, 0x80, 0x54, 0x80, 0x55, 0xFE, 0x7E, 0x22, 0x51, 0x22, 0x15, 0x52, 0x1D, 0x02, 0xF5, 0xFA, 0x40, 0x0A, 0x00, 0x04, 0x28, 0x20, 0x28, 0x20, 0xFE, 0x28, 0x29, 0xFC, 0x38, 0x20, 0x10, 0x24, 0x7F, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x7C, 0x28, 0x11, 0xFC, 0xFE, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x00, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0xFB, 0xFC, 0x20, 0x88, 0x20, 0x88, 0x24, 0x8C, 0x24, 0x8A, 0x24, 0x8A, 0x29, 0x08, 0x21, 0x08, 0x21, 0x08, 0x22, 0x08, 0x24, 0x28, 0x20, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0xF8, 0x40, 0x12, 0x48, 0x11, 0x50, 0x18, 0x44, 0x37, 0xFE, 0xD0, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x11, 0x10, 0x52, 0x0E, 0x24, 0x04, 0x12, 0x80, 0x12, 0x48, 0x13, 0xFC, 0x16, 0x40, 0xFB, 0xF8, 0x12, 0x40, 0x13, 0xF8, 0x1A, 0x40, 0x33, 0xFC, 0xD2, 0x00, 0x17, 0xF8, 0x11, 0x10, 0x11, 0x3C, 0x11, 0x04, 0x52, 0x14, 0x24, 0x08, 0x02, 0x00, 0x7F, 0x7C, 0x04, 0x44, 0x24, 0x44, 0x24, 0x48, 0x45, 0x48, 0x7F, 0xD0, 0x0C, 0x48, 0x0C, 0x44, 0x14, 0x42, 0x24, 0x42, 0x44, 0x62, 0x84, 0x54, 0x04, 0x48, 0x14, 0x40, 0x08, 0x40, 0x08, 0x08, 0x08, 0x08, 0x14, 0x08, 0x22, 0x48, 0x41, 0x28, 0xBE, 0x08, 0x08, 0x48, 0x08, 0x28, 0x7F, 0x0E, 0x08, 0xF8, 0x2A, 0x08, 0x29, 0x08, 0x49, 0x08, 0x08, 0x08, 0x28, 0x08, 0x10, 0x08, 0x08, 0x80, 0x7C, 0x80, 0x48, 0x80, 0x48, 0x88, 0x4B, 0xFC, 0x78, 0x88, 0x48, 0x88, 0x4A, 0x8C, 0x4A, 0x8A, 0x7A, 0x8A, 0x4D, 0x08, 0x49, 0x08, 0x49, 0x08, 0x4A, 0x08, 0x4C, 0x28, 0x98, 0x10, 0x04, 0x20, 0x24, 0x24, 0x17, 0xA8, 0x14, 0x30, 0x04, 0x22, 0x05, 0xA2, 0xF6, 0x5E, 0x10, 0x88, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x16, 0x08, 0x1A, 0x08, 0x13, 0xF8, 0x02, 0x08, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x88, 0x04, 0x08, 0x20, 0x0F, 0xF0, 0x08, 0x00, 0x08, 0x08, 0x0F, 0xFC, 0x00, 0x08, 0x00, 0x48, 0x7F, 0xE8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x50, 0x00, 0x20, 0x10, 0x20, 0x10, 0x28, 0x10, 0x24, 0x17, 0xFE, 0xFC, 0x20, 0x12, 0xA0, 0x32, 0xA0, 0x3A, 0xA4, 0x57, 0xE4, 0x52, 0xA8, 0x92, 0xA8, 0x12, 0x90, 0x14, 0xB0, 0x18, 0x52, 0x10, 0x8A, 0x13, 0x06, 0x20, 0x00, 0x22, 0x04, 0x3F, 0x7E, 0x48, 0x44, 0x88, 0x44, 0x0A, 0x44, 0xFF, 0x44, 0x08, 0x44, 0x28, 0x44, 0x2E, 0x44, 0x28, 0x44, 0x28, 0x64, 0x2F, 0x54, 0xF8, 0x48, 0x40, 0x40, 0x00, 0x40, 0x20, 0x00, 0x3E, 0xFC, 0x44, 0x24, 0xBE, 0x4C, 0x2A, 0xD0, 0x3E, 0x7C, 0x2A, 0x90, 0x3F, 0xFE, 0x2A, 0x10, 0x41, 0x10, 0x9F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x08, 0x7F, 0xFC, 0x20, 0x04, 0x22, 0x04, 0x22, 0x7E, 0x27, 0xA4, 0x29, 0x24, 0xBF, 0xA4, 0xAA, 0xC8, 0xAA, 0xA8, 0x2F, 0xBE, 0x2A, 0xC8, 0x2A, 0x88, 0x2F, 0xFE, 0x2A, 0x88, 0x2A, 0x88, 0x2A, 0x88, 0x31, 0x88, 0x20, 0x08, 0x02, 0x48, 0x42, 0x48, 0x32, 0x48, 0x12, 0x48, 0x82, 0x48, 0x62, 0x48, 0x2F, 0xFE, 0x0A, 0x48, 0x12, 0x48, 0x22, 0x48, 0xE2, 0x48, 0x22, 0x78, 0x22, 0x40, 0x22, 0x08, 0x23, 0xFC, 0x20, 0x00, 0x40, 0x00, 0x27, 0xFE, 0x24, 0x02, 0x09, 0x04, 0x81, 0x00, 0x61, 0xFC, 0x21, 0x00, 0x09, 0x04, 0x11, 0xFE, 0x20, 0x04, 0xE0, 0x24, 0x2F, 0xF4, 0x20, 0x04, 0x20, 0x04, 0x20, 0x14, 0x20, 0x08, 0x02, 0x08, 0x44, 0x88, 0x2F, 0xC8, 0x28, 0x88, 0x0F, 0x88, 0x08, 0xFE, 0xEF, 0x88, 0x28, 0x88, 0x28, 0xC8, 0x3F, 0xA8, 0x21, 0xA8, 0x2A, 0x88, 0x34, 0x88, 0x28, 0x88, 0x12, 0xA8, 0x01, 0x10, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x80, 0x24, 0x90, 0x22, 0xA8, 0x2F, 0xFC, 0x28, 0x08, 0x28, 0x08, 0x2F, 0xF8, 0x28, 0x08, 0x28, 0x08, 0x4F, 0xF8, 0x48, 0x08, 0x88, 0x28, 0x08, 0x10, 0x04, 0x40, 0xFF, 0xFE, 0x14, 0x40, 0x08, 0x06, 0x7F, 0x78, 0x22, 0x40, 0x14, 0x44, 0xFF, 0xFE, 0x08, 0x48, 0x0A, 0x48, 0x7F, 0x48, 0x2A, 0x48, 0x49, 0x88, 0x88, 0x88, 0x29, 0x08, 0x10, 0x08, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x50, 0x84, 0x50, 0x82, 0x50, 0x02, 0x90, 0x02, 0x10, 0x08, 0x10, 0x08, 0x0F, 0xF8, 0x00, 0x00, 0x10, 0x40, 0x10, 0x20, 0x1D, 0xFC, 0x20, 0x00, 0x20, 0x88, 0x7C, 0x50, 0x93, 0xFE, 0x10, 0x20, 0x7C, 0x20, 0x10, 0x28, 0x11, 0xFC, 0x10, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x00, 0x20, 0x02, 0x40, 0x07, 0x40, 0x38, 0x40, 0x20, 0x40, 0x20, 0x7E, 0x20, 0x82, 0x3F, 0x24, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x50, 0x24, 0x50, 0x44, 0x88, 0x44, 0x88, 0x85, 0x06, 0x02, 0x04, 0x02, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x08, 0x0A, 0x1C, 0x7F, 0x60, 0x00, 0x40, 0x22, 0x40, 0x14, 0x44, 0xFF, 0xFE, 0x0A, 0x48, 0x7F, 0x48, 0x08, 0x48, 0x0A, 0x48, 0x29, 0x88, 0x48, 0x88, 0x89, 0x08, 0x28, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x11, 0x00, 0x59, 0x00, 0x55, 0x04, 0x51, 0xFE, 0x91, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x10, 0x14, 0x10, 0x18, 0x10, 0x10, 0x10, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x08, 0x80, 0x08, 0x00, 0x28, 0x08, 0x28, 0x04, 0x28, 0x02, 0x48, 0x02, 0x88, 0x02, 0x08, 0x00, 0x08, 0x10, 0x08, 0x10, 0x07, 0xF0, 0x00, 0x00, 0x08, 0x80, 0x08, 0x44, 0x0F, 0xFE, 0x10, 0x00, 0x10, 0x08, 0x37, 0xFC, 0x50, 0x00, 0x90, 0x08, 0x17, 0xFC, 0x10, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x04, 0x10, 0x08, 0x92, 0x10, 0x54, 0x7F, 0x54, 0x55, 0x10, 0x55, 0xFE, 0x55, 0x10, 0x55, 0x10, 0x55, 0x14, 0x55, 0xFE, 0x55, 0x10, 0x57, 0x90, 0xF8, 0x10, 0x40, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x21, 0x08, 0x3F, 0xFC, 0x21, 0x00, 0x41, 0x10, 0xBF, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7B, 0xFC, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x7B, 0xF8, 0x48, 0x40, 0x4A, 0x48, 0x4B, 0xFC, 0x7C, 0x40, 0x48, 0x50, 0x4B, 0xF8, 0x48, 0x40, 0x48, 0x44, 0x8F, 0xFE, 0x18, 0x00, 0x02, 0x04, 0x45, 0xFE, 0x29, 0x04, 0x11, 0xFC, 0x29, 0x04, 0x49, 0xFC, 0x88, 0x20, 0x09, 0x24, 0x19, 0xFE, 0x2A, 0x20, 0x4C, 0x28, 0x89, 0xFC, 0x08, 0x20, 0x08, 0x24, 0x57, 0xFE, 0x20, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x5A, 0x08, 0x57, 0xF8, 0x50, 0x40, 0x92, 0x48, 0x13, 0xFC, 0x14, 0x40, 0x18, 0x50, 0x13, 0xF8, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x02, 0x00, 0x02, 0x08, 0x21, 0x08, 0x11, 0x10, 0x19, 0x10, 0x09, 0x20, 0x00, 0x20, 0x00, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x0C, 0x20, 0x10, 0x18, 0x20, 0x0C, 0x40, 0x04, 0x00, 0x84, 0x7F, 0xC4, 0x11, 0x04, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0xFF, 0xE4, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x21, 0x04, 0x21, 0x04, 0x41, 0x14, 0x01, 0x08, 0x01, 0x04, 0x7F, 0x84, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0xFF, 0xA4, 0x12, 0x24, 0x12, 0x24, 0x12, 0x04, 0x23, 0x14, 0x41, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x7F, 0xC4, 0x11, 0x0C, 0x11, 0x10, 0x11, 0x20, 0x11, 0x44, 0x11, 0x0C, 0xFF, 0xD0, 0x11, 0x20, 0x11, 0x42, 0x11, 0x06, 0x11, 0x08, 0x21, 0x10, 0x21, 0x20, 0x41, 0x40, 0x01, 0x80, 0x00, 0x00, 0x7F, 0x7C, 0x12, 0x44, 0x12, 0x44, 0x12, 0x48, 0x12, 0x48, 0x12, 0x50, 0xFF, 0xC8, 0x12, 0x44, 0x12, 0x42, 0x12, 0x42, 0x12, 0x62, 0x22, 0x54, 0x22, 0x48, 0x42, 0x40, 0x02, 0x40, 0x08, 0x08, 0x0B, 0xFC, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x08, 0x04, 0x17, 0xFE, 0x30, 0x10, 0x50, 0x10, 0x90, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x04, 0x04, 0xFE, 0xFE, 0x28, 0x84, 0x28, 0xFC, 0xFE, 0x84, 0xAA, 0xFC, 0xAA, 0x20, 0xAE, 0xA0, 0xC2, 0xFC, 0x83, 0x20, 0x82, 0x20, 0xFE, 0xFC, 0x82, 0x20, 0x82, 0x24, 0xFF, 0xFE, 0x82, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x50, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x12, 0x48, 0x5B, 0xFC, 0x54, 0x40, 0x54, 0x40, 0x98, 0x40, 0x10, 0x50, 0x13, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x20, 0x10, 0x20, 0x11, 0x20, 0x11, 0x24, 0xFD, 0xFE, 0x25, 0x20, 0x26, 0x20, 0x24, 0x20, 0x24, 0x28, 0x45, 0xFC, 0x28, 0x20, 0x10, 0x20, 0x28, 0x20, 0x44, 0x24, 0x87, 0xFE, 0x00, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x14, 0x50, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x3E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x10, 0x50, 0x24, 0x48, 0x24, 0x44, 0x44, 0x42, 0x84, 0x41, 0x04, 0x42, 0x84, 0x44, 0x44, 0x48, 0x34, 0x50, 0x14, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x00, 0x08, 0x80, 0x7C, 0x80, 0x49, 0x00, 0x49, 0xFE, 0x4A, 0x02, 0x7C, 0x02, 0x49, 0x12, 0x4A, 0xAA, 0x4A, 0x4A, 0x7A, 0xAA, 0x4B, 0x1A, 0x4A, 0x0A, 0x4B, 0xFA, 0x4A, 0x02, 0x88, 0x14, 0x18, 0x08, 0x08, 0x00, 0x08, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x04, 0x40, 0x04, 0x90, 0x44, 0x28, 0xA4, 0x25, 0x24, 0x22, 0x24, 0x25, 0x24, 0x28, 0xA4, 0x20, 0x24, 0x3F, 0xE4, 0x20, 0x14, 0x00, 0x08, 0x00, 0x00, 0x42, 0x08, 0x31, 0x10, 0x14, 0x94, 0x84, 0xA4, 0x64, 0x44, 0x24, 0x44, 0x0C, 0xA4, 0x14, 0xA4, 0x25, 0x14, 0xE5, 0x0C, 0x26, 0x0C, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x20, 0x00, 0x10, 0x40, 0x10, 0xA0, 0x10, 0x88, 0xFD, 0xFC, 0x11, 0x20, 0x13, 0x28, 0x25, 0xFC, 0x21, 0x20, 0x51, 0x28, 0x51, 0xFC, 0x91, 0x20, 0x25, 0x20, 0x45, 0x24, 0x7D, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x10, 0x80, 0x10, 0x98, 0x22, 0xE0, 0x7F, 0x84, 0x00, 0x84, 0x3E, 0x7C, 0x22, 0x80, 0x3E, 0x98, 0x22, 0xE0, 0x3E, 0x84, 0x22, 0x84, 0x26, 0x7C, 0x00, 0x00, 0x48, 0x88, 0x44, 0x46, 0x80, 0x02, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x30, 0x40, 0x50, 0xE0, 0x90, 0xE0, 0x11, 0x50, 0x11, 0x50, 0x12, 0x48, 0x14, 0x46, 0x18, 0x44, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x11, 0x00, 0x11, 0x00, 0x11, 0xF8, 0x21, 0x10, 0x2A, 0xA0, 0x6C, 0x40, 0xA9, 0xB0, 0x2E, 0x2E, 0x28, 0xC0, 0x2B, 0x10, 0x28, 0x60, 0x28, 0x88, 0x23, 0x10, 0x20, 0x60, 0x21, 0x80, 0x26, 0x00, 0x08, 0x20, 0x04, 0x40, 0x02, 0x88, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x10, 0x0F, 0xF8, 0x11, 0x10, 0x2F, 0xF0, 0x42, 0x10, 0x84, 0x14, 0x3F, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x80, 0xFC, 0x80, 0x10, 0x80, 0x31, 0x08, 0x39, 0xFC, 0x54, 0x08, 0x50, 0x08, 0x90, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x88, 0x10, 0x50, 0x10, 0x20, 0x00, 0x40, 0x08, 0x88, 0x7F, 0xFC, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x48, 0x50, 0x48, 0x48, 0x7F, 0xFE, 0x48, 0xA0, 0x01, 0x10, 0x02, 0x0E, 0x0C, 0x04, 0x10, 0x18, 0x13, 0xE0, 0x1C, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x7C, 0xE0, 0x91, 0x50, 0x12, 0x4E, 0x7D, 0xF8, 0x10, 0x88, 0x10, 0x90, 0x10, 0x9C, 0x15, 0x04, 0x19, 0x04, 0x12, 0x28, 0x04, 0x10, 0x00, 0x78, 0x3F, 0x80, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x05, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xCF, 0xE4, 0x04, 0x20, 0x04, 0x40, 0x04, 0x70, 0x08, 0x10, 0x08, 0x10, 0x10, 0xA0, 0x20, 0x40, 0x20, 0x20, 0x10, 0x20, 0x10, 0x20, 0x00, 0x24, 0xFD, 0xFE, 0x09, 0x24, 0x11, 0x24, 0x35, 0x24, 0x59, 0x24, 0x95, 0xFC, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x18, 0x13, 0xE0, 0x20, 0x40, 0x20, 0x48, 0x4F, 0xFC, 0xF8, 0xE0, 0x11, 0x50, 0x22, 0x4E, 0x45, 0xF8, 0xF8, 0x88, 0x00, 0x90, 0x00, 0x9C, 0x19, 0x04, 0xE1, 0x04, 0x42, 0x28, 0x04, 0x10, 0x20, 0x88, 0x20, 0xFC, 0x20, 0x80, 0x27, 0xFE, 0xFC, 0x82, 0x24, 0xF0, 0x27, 0x84, 0x24, 0xFC, 0x24, 0x00, 0x24, 0xA0, 0x3E, 0xA8, 0xE5, 0xB0, 0x48, 0xA0, 0x08, 0xA4, 0x17, 0xFE, 0x20, 0x00, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x90, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x20, 0x84, 0x24, 0x44, 0x3E, 0x48, 0x20, 0x48, 0x20, 0x30, 0x20, 0x20, 0x40, 0x60, 0x40, 0x92, 0x83, 0x0A, 0x00, 0x06, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x08, 0x3F, 0xFC, 0x24, 0x88, 0x24, 0x88, 0x24, 0x88, 0x24, 0xA8, 0x20, 0x10, 0x02, 0x10, 0x03, 0xF8, 0x02, 0x00, 0x3F, 0xFE, 0x22, 0x02, 0x23, 0xE4, 0x3E, 0x08, 0x23, 0xF8, 0x20, 0x00, 0x22, 0x40, 0x32, 0x48, 0x2A, 0x58, 0x4A, 0x60, 0x42, 0x40, 0xBF, 0xFE, 0x00, 0x00, 0x00, 0x48, 0x08, 0x7C, 0x7C, 0x40, 0x4B, 0xFE, 0x4A, 0x42, 0x4A, 0x70, 0x4B, 0xC4, 0x4A, 0x7C, 0x4A, 0x00, 0x4A, 0x50, 0x4B, 0x54, 0x7A, 0xD8, 0x4C, 0x50, 0x04, 0x54, 0x0B, 0xFE, 0x00, 0x00, 0x04, 0x04, 0x0B, 0xFE, 0x10, 0x20, 0x20, 0x44, 0x41, 0xFE, 0x05, 0x04, 0x09, 0x24, 0x11, 0x24, 0x21, 0x24, 0x41, 0x24, 0x05, 0x24, 0x09, 0x24, 0x11, 0x44, 0x20, 0x58, 0x40, 0x86, 0x03, 0x02, 0x08, 0x40, 0x08, 0x40, 0x10, 0xA0, 0x21, 0x10, 0x42, 0x0E, 0x0C, 0x04, 0x13, 0xF8, 0x30, 0x40, 0x50, 0x48, 0x97, 0xFC, 0x10, 0x40, 0x11, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x11, 0x40, 0x10, 0x80, 0x02, 0x00, 0x42, 0x08, 0x33, 0xFC, 0x12, 0x40, 0x04, 0x40, 0x00, 0x40, 0xF0, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x14, 0x40, 0x18, 0x40, 0x10, 0x40, 0x00, 0x40, 0x08, 0x20, 0x7F, 0xFC, 0x09, 0x20, 0x7F, 0xFC, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xE0, 0x01, 0x00, 0x02, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x04, 0x00, 0xFE, 0x00, 0x28, 0x44, 0x28, 0x44, 0xFE, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAE, 0x92, 0xA2, 0x92, 0xC2, 0xAA, 0x82, 0xAA, 0xFE, 0xA6, 0x82, 0xC6, 0x82, 0x82, 0xFE, 0xFE, 0x82, 0x82, 0x08, 0x00, 0x08, 0x00, 0x14, 0x08, 0x12, 0xFC, 0x21, 0x08, 0x5E, 0x88, 0x88, 0x88, 0x08, 0x88, 0x7E, 0x50, 0x08, 0x50, 0x2C, 0x20, 0x2A, 0x50, 0x4A, 0x50, 0x08, 0x88, 0x29, 0x0E, 0x12, 0x04, 0x10, 0x00, 0x10, 0x08, 0x10, 0xFC, 0x10, 0x88, 0xFE, 0x88, 0x12, 0x88, 0x12, 0x88, 0x12, 0xF8, 0x12, 0x88, 0x12, 0x88, 0x12, 0x88, 0x12, 0x88, 0x22, 0xFA, 0x22, 0x02, 0x41, 0xFE, 0x80, 0x00, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x00, 0x2F, 0xF8, 0x20, 0x20, 0x21, 0x40, 0x20, 0x80, 0x2F, 0xFC, 0x20, 0x88, 0x20, 0x90, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x82, 0x80, 0x01, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xE0, 0x01, 0x00, 0x02, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x80, 0x10, 0x80, 0x11, 0x08, 0x13, 0xFC, 0x5A, 0xA8, 0x56, 0xA8, 0x52, 0xA8, 0x92, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0xFE, 0xFE, 0x22, 0x84, 0x64, 0x84, 0x18, 0x84, 0x14, 0xFC, 0x62, 0x84, 0x04, 0x20, 0x1F, 0xC0, 0x03, 0x00, 0x0C, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x11, 0x30, 0x65, 0x08, 0x02, 0x00, 0x10, 0x00, 0x13, 0xFE, 0x10, 0x42, 0x11, 0x70, 0xFD, 0x40, 0x25, 0x40, 0x26, 0xFE, 0x24, 0x04, 0x25, 0xFE, 0x45, 0x04, 0x29, 0xFC, 0x11, 0x04, 0x29, 0xFC, 0x45, 0x04, 0x85, 0x04, 0x01, 0x0C, 0x10, 0x40, 0x10, 0x44, 0x23, 0xF8, 0x20, 0x50, 0x48, 0x60, 0xF8, 0x44, 0x17, 0xFE, 0x21, 0x08, 0x43, 0xFC, 0xFD, 0x08, 0x09, 0x08, 0x01, 0xF8, 0x1D, 0x08, 0xE1, 0x08, 0x41, 0xF8, 0x01, 0x08, 0x10, 0x40, 0x10, 0x50, 0x23, 0xF8, 0x20, 0x40, 0x48, 0x40, 0xFF, 0xFC, 0x11, 0x24, 0x20, 0xA8, 0x42, 0x20, 0xF9, 0x24, 0x07, 0xFE, 0x00, 0x40, 0x1C, 0x60, 0xE0, 0x90, 0x41, 0x0C, 0x02, 0x04, 0x10, 0x08, 0x11, 0xFC, 0x14, 0x20, 0xFE, 0x20, 0x20, 0x20, 0x28, 0x20, 0x48, 0x24, 0x7F, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x0E, 0x20, 0xF8, 0x20, 0x48, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x00, 0x40, 0x00, 0x20, 0x7B, 0xFE, 0x4A, 0x02, 0x4C, 0x04, 0x4B, 0xFC, 0x48, 0x00, 0x4B, 0xFC, 0x4A, 0x04, 0x4B, 0xFC, 0x4A, 0x04, 0x7B, 0xFC, 0x48, 0x00, 0x00, 0x04, 0x07, 0xFE, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x14, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x14, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x20, 0x1F, 0xF0, 0x02, 0x10, 0x51, 0x84, 0x50, 0x82, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x20, 0x80, 0x10, 0x84, 0x14, 0xFE, 0xFE, 0x80, 0x21, 0x00, 0x22, 0xFE, 0x3C, 0x22, 0x24, 0x24, 0x24, 0xA0, 0x24, 0xA8, 0x24, 0xBC, 0x24, 0xA0, 0x44, 0xA0, 0x55, 0x60, 0x8A, 0x26, 0x04, 0x1C, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x04, 0x10, 0x08, 0x20, 0x3F, 0xC0, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x10, 0x10, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x00, 0x40, 0x42, 0x40, 0x32, 0x48, 0x13, 0xFC, 0x02, 0x40, 0x04, 0x44, 0xF7, 0xFE, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x22, 0x11, 0x22, 0x12, 0x1E, 0x2C, 0x00, 0x44, 0x06, 0x03, 0xFC, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x24, 0x44, 0xA4, 0x28, 0x6F, 0x7C, 0x32, 0x10, 0x2F, 0x90, 0x6A, 0xFC, 0xAF, 0x90, 0x2A, 0x94, 0x2F, 0xFE, 0x40, 0x10, 0x43, 0x90, 0x9C, 0x10, 0x08, 0x10, 0x00, 0x80, 0x08, 0x40, 0x7C, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x80, 0x79, 0x08, 0x4A, 0x10, 0x4B, 0xE0, 0x78, 0x40, 0x48, 0x80, 0x49, 0x00, 0x4A, 0x08, 0x7B, 0xFC, 0x48, 0x04, 0x00, 0x00, 0x10, 0x80, 0x10, 0x80, 0x20, 0x84, 0x20, 0xFE, 0x45, 0x04, 0xFA, 0x04, 0x11, 0xF4, 0x21, 0x14, 0x41, 0x14, 0xFD, 0xF4, 0x01, 0x14, 0x01, 0x14, 0x1D, 0xF4, 0xE0, 0x04, 0x40, 0x14, 0x00, 0x08, 0x28, 0xA0, 0x28, 0xA0, 0xFE, 0xA0, 0x29, 0x20, 0x29, 0x24, 0x3B, 0x28, 0x15, 0x30, 0x7D, 0x20, 0x55, 0x60, 0x55, 0xA0, 0x7D, 0x20, 0x11, 0x22, 0xFF, 0x22, 0x11, 0x22, 0x11, 0x1E, 0x11, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x20, 0x40, 0x7C, 0x28, 0x45, 0xFC, 0x44, 0x88, 0x7C, 0x50, 0x43, 0xFE, 0x7C, 0x20, 0x44, 0x28, 0x45, 0xFC, 0x7C, 0x20, 0x40, 0x20, 0x00, 0x20, 0x22, 0x08, 0x11, 0x08, 0x11, 0x10, 0x00, 0x20, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0x1F, 0xE0, 0x00, 0x40, 0x01, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x84, 0x04, 0x80, 0x04, 0x80, 0x04, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x20, 0x10, 0x10, 0x20, 0x0E, 0x40, 0x04, 0x00, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x9D, 0x74, 0x01, 0x00, 0x1D, 0x70, 0x01, 0x08, 0x3F, 0xFC, 0x00, 0x08, 0x00, 0x08, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x3F, 0xF8, 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x02, 0x20, 0x3F, 0x20, 0x22, 0x20, 0x22, 0x20, 0x3E, 0x24, 0x00, 0xFE, 0x7F, 0x24, 0x41, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x44, 0x14, 0x44, 0x23, 0x94, 0xC1, 0x08, 0x00, 0x38, 0x3F, 0xC0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x29, 0x28, 0x25, 0x48, 0x3F, 0xF8, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x24, 0x48, 0x22, 0x24, 0x40, 0x04, 0x10, 0x1C, 0x17, 0xE0, 0x24, 0x20, 0x24, 0x24, 0x47, 0xFE, 0x94, 0x20, 0x25, 0xFC, 0x65, 0x04, 0xA5, 0x04, 0x25, 0xFC, 0x25, 0x04, 0x25, 0xFC, 0x29, 0x04, 0x29, 0x04, 0x31, 0xFC, 0x21, 0x04, 0x08, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x10, 0x04, 0x10, 0x24, 0x2F, 0xF4, 0x48, 0x24, 0x88, 0x24, 0x0F, 0xE4, 0x08, 0x24, 0x08, 0x24, 0x0F, 0xE4, 0x08, 0x24, 0x00, 0x04, 0x00, 0x28, 0x00, 0x10, 0x02, 0x00, 0x42, 0x04, 0x33, 0xFE, 0x14, 0x04, 0x04, 0x04, 0x09, 0xF4, 0xF1, 0x14, 0x11, 0x14, 0x11, 0xF4, 0x11, 0x14, 0x11, 0x14, 0x13, 0xF4, 0x15, 0x14, 0x18, 0x04, 0x10, 0x14, 0x00, 0x08, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x1F, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x3F, 0xF0, 0x00, 0x20, 0x00, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x20, 0x04, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x09, 0x04, 0xFD, 0x24, 0x09, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x7D, 0x24, 0x05, 0x24, 0x1D, 0x24, 0xE5, 0x24, 0x45, 0x24, 0x15, 0x24, 0x0A, 0x04, 0x04, 0x04, 0x00, 0x00, 0x41, 0x24, 0x31, 0x24, 0x12, 0x48, 0x02, 0x48, 0x04, 0x90, 0xF9, 0x20, 0x14, 0x90, 0x12, 0x48, 0x12, 0x48, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x28, 0x00, 0x44, 0x06, 0x03, 0xFC, 0x00, 0x80, 0x04, 0x84, 0xFE, 0xFE, 0x21, 0x04, 0x21, 0x04, 0x3F, 0xF4, 0x45, 0x14, 0x45, 0x14, 0xA5, 0xF4, 0x19, 0x14, 0x09, 0x14, 0x11, 0xF4, 0x21, 0x14, 0x40, 0x04, 0x80, 0x14, 0x00, 0x08, 0x00, 0x10, 0x47, 0xF8, 0x30, 0x10, 0x11, 0x10, 0x81, 0x10, 0x61, 0x10, 0x21, 0x10, 0x09, 0x50, 0x17, 0xF0, 0x21, 0x10, 0xE1, 0x10, 0x21, 0x10, 0x21, 0x0A, 0x21, 0x0A, 0x21, 0x06, 0x21, 0x00, 0x01, 0x04, 0x41, 0x04, 0x31, 0x24, 0x11, 0x24, 0x01, 0x24, 0x01, 0x24, 0xF1, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x16, 0x24, 0x1A, 0x04, 0x14, 0x04, 0x08, 0x04, 0x00, 0x10, 0x47, 0xF8, 0x30, 0x10, 0x11, 0x10, 0x01, 0x10, 0x01, 0x10, 0xF1, 0x10, 0x11, 0x50, 0x17, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x15, 0x0A, 0x19, 0x0A, 0x11, 0x06, 0x01, 0x00, 0x00, 0x10, 0x40, 0x10, 0x3F, 0x10, 0x21, 0x10, 0x02, 0x10, 0x04, 0x10, 0xE4, 0x58, 0x27, 0x54, 0x3C, 0x94, 0x24, 0x92, 0x25, 0x12, 0x24, 0x50, 0x2C, 0x20, 0x54, 0x00, 0x88, 0x06, 0x07, 0xFC, 0x00, 0x10, 0x47, 0xF8, 0x30, 0x10, 0x11, 0x10, 0x01, 0x10, 0x01, 0x50, 0xF7, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x12, 0x11, 0x0A, 0x11, 0x06, 0x29, 0x00, 0x44, 0x06, 0x03, 0xFC, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x20, 0x80, 0x20, 0xA0, 0x20, 0x98, 0x20, 0x88, 0x40, 0x80, 0x40, 0x84, 0x9F, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0x11, 0x24, 0xFD, 0x24, 0x11, 0xFC, 0x15, 0x24, 0x19, 0x24, 0x31, 0x24, 0xD1, 0xFC, 0x11, 0x24, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x50, 0x20, 0x20, 0x20, 0x04, 0x40, 0xFE, 0x88, 0x09, 0xFC, 0x29, 0x08, 0x29, 0x48, 0x49, 0x08, 0xFF, 0x28, 0x09, 0x10, 0x19, 0x04, 0x29, 0xFE, 0x48, 0x04, 0x88, 0x24, 0x0B, 0xF4, 0x08, 0x04, 0x28, 0x14, 0x10, 0x08, 0x02, 0x20, 0xFF, 0x44, 0x92, 0xFE, 0x92, 0x84, 0x92, 0xA4, 0xFE, 0x84, 0x92, 0x94, 0x92, 0x88, 0x92, 0x80, 0xFE, 0xFE, 0x92, 0x02, 0x10, 0x12, 0x11, 0xFA, 0x10, 0x02, 0x10, 0x0A, 0x10, 0x04, 0x00, 0x08, 0x0B, 0xFC, 0x7C, 0x10, 0x48, 0x90, 0x48, 0x90, 0x49, 0x10, 0x49, 0x14, 0x4B, 0xFE, 0x48, 0x10, 0x48, 0x30, 0x48, 0x50, 0x79, 0x90, 0x46, 0x10, 0x00, 0x10, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x20, 0x10, 0x10, 0x30, 0x0C, 0x40, 0x04, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x40, 0x08, 0x44, 0xFF, 0xFE, 0x08, 0x40, 0x00, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x08, 0x20, 0x10, 0x24, 0x3F, 0xFE, 0x00, 0xA0, 0x03, 0x20, 0x0C, 0x20, 0x30, 0x20, 0xC0, 0xA0, 0x00, 0x40, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x40, 0x10, 0x40, 0x10, 0x40, 0x20, 0x40, 0x20, 0x44, 0x7F, 0xFE, 0x01, 0x40, 0x02, 0x40, 0x04, 0x40, 0x08, 0x40, 0x30, 0x40, 0xC0, 0x40, 0x01, 0x40, 0x00, 0x80, 0x10, 0x08, 0x11, 0xFC, 0x14, 0x08, 0x7E, 0x88, 0x54, 0x88, 0x55, 0x08, 0x55, 0x08, 0x57, 0xFE, 0x7C, 0x28, 0x10, 0x28, 0x14, 0x48, 0x1C, 0x48, 0xF4, 0x88, 0x41, 0x08, 0x02, 0x28, 0x00, 0x10, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x3F, 0xFC, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x80, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x80, 0x2F, 0xF8, 0x40, 0x80, 0x5F, 0xFE, 0x80, 0x00, 0x10, 0x80, 0x1F, 0xC4, 0x22, 0x3E, 0x42, 0x00, 0x8F, 0x84, 0x14, 0xFE, 0x24, 0x88, 0x7F, 0xE8, 0xA0, 0x48, 0x2F, 0xE8, 0x28, 0x48, 0x28, 0x48, 0x28, 0x48, 0x2F, 0xC8, 0x28, 0x28, 0x20, 0x10, 0x00, 0x08, 0x43, 0xFC, 0x32, 0x20, 0x12, 0x28, 0x83, 0xFC, 0x62, 0x20, 0x22, 0x24, 0x0B, 0xFE, 0x12, 0x20, 0x22, 0x28, 0xE3, 0xFC, 0x22, 0x20, 0x24, 0x20, 0x24, 0x24, 0x2B, 0xFE, 0x30, 0x00, 0x02, 0x40, 0x7F, 0x50, 0x04, 0x54, 0x24, 0xFE, 0x24, 0x90, 0x45, 0x90, 0xFE, 0xFC, 0x04, 0x90, 0x0C, 0x90, 0x14, 0xFC, 0x24, 0x90, 0x44, 0x90, 0x84, 0x94, 0x04, 0xFE, 0x14, 0x80, 0x08, 0x80, 0x00, 0x08, 0x0B, 0xFC, 0x7C, 0x90, 0x48, 0x90, 0x48, 0x90, 0x48, 0x90, 0x4C, 0x92, 0x4A, 0x94, 0x4A, 0x94, 0x49, 0x98, 0x48, 0x90, 0x78, 0x90, 0x48, 0x90, 0x00, 0x94, 0x07, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x44, 0x48, 0x24, 0x4C, 0x24, 0x50, 0x14, 0x50, 0x14, 0x60, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x47, 0xFC, 0x20, 0x10, 0x22, 0x10, 0x02, 0x10, 0x04, 0x14, 0xEF, 0xFE, 0x20, 0x10, 0x20, 0x30, 0x20, 0x50, 0x24, 0x90, 0x29, 0x10, 0x32, 0x10, 0x24, 0x10, 0x08, 0x50, 0x00, 0x20, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x11, 0xF0, 0x11, 0x00, 0x11, 0x04, 0xFF, 0xFE, 0x10, 0x00, 0x1F, 0xF0, 0x10, 0x04, 0x1F, 0xFE, 0x00, 0x04, 0x29, 0x24, 0x24, 0x94, 0x40, 0x14, 0x00, 0x08, 0x00, 0x04, 0x17, 0xFE, 0x7C, 0x04, 0x54, 0x44, 0x54, 0x44, 0x54, 0x44, 0x57, 0xFC, 0x54, 0x44, 0x54, 0x44, 0x54, 0xA4, 0x54, 0x94, 0x75, 0x0C, 0x56, 0x0C, 0x04, 0x04, 0x07, 0xFC, 0x04, 0x04, 0x20, 0x04, 0x1B, 0xFE, 0x49, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x42, 0x84, 0x44, 0x44, 0x49, 0x24, 0x5F, 0xFC, 0x69, 0x24, 0x4F, 0xE4, 0x49, 0x24, 0x4F, 0xE4, 0x41, 0x14, 0x40, 0xF4, 0x40, 0x08, 0x20, 0x04, 0x27, 0xFE, 0x24, 0x04, 0x24, 0x44, 0x2C, 0x44, 0xB4, 0x44, 0xA7, 0xFC, 0xA4, 0x44, 0x24, 0x44, 0x24, 0xA4, 0x24, 0x94, 0x25, 0x0C, 0x56, 0x0C, 0x4C, 0x04, 0x87, 0xFC, 0x04, 0x04, 0x00, 0x40, 0x40, 0x48, 0x37, 0xFC, 0x10, 0xA0, 0x81, 0x10, 0x62, 0x08, 0x27, 0xFE, 0x0A, 0x48, 0x12, 0x48, 0x23, 0xF8, 0xE2, 0x48, 0x22, 0x48, 0x23, 0xF8, 0x20, 0x42, 0x20, 0x42, 0x20, 0x3E, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x7F, 0x50, 0x08, 0x48, 0x08, 0x44, 0x0F, 0x44, 0x78, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x02, 0x40, 0x12, 0x48, 0x0A, 0x50, 0x02, 0x44, 0x3F, 0xFE, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x08, 0x08, 0xFD, 0xFC, 0x10, 0x88, 0x10, 0x88, 0x20, 0x88, 0x20, 0x88, 0x7C, 0x88, 0xA7, 0xFE, 0x24, 0x88, 0x24, 0x88, 0x24, 0x88, 0x25, 0x08, 0x3D, 0x08, 0x22, 0x08, 0x04, 0x08, 0x00, 0x08, 0x20, 0x00, 0x20, 0x06, 0x27, 0xB8, 0x20, 0x88, 0xF9, 0x08, 0xA9, 0x08, 0xAA, 0x2E, 0xAF, 0xA8, 0xA8, 0xA8, 0xF8, 0xA8, 0x22, 0xA8, 0x29, 0x3E, 0x39, 0x00, 0xEA, 0x86, 0x44, 0x7C, 0x08, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x08, 0x0F, 0xFC, 0x18, 0x08, 0x28, 0x08, 0x48, 0x08, 0x08, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x00, 0x08, 0x00, 0x1C, 0x7D, 0xE0, 0x04, 0x20, 0x08, 0x20, 0x11, 0x28, 0x21, 0x3C, 0x7D, 0x20, 0x05, 0x20, 0x05, 0x20, 0x49, 0x28, 0x29, 0xFC, 0x10, 0x00, 0x28, 0x06, 0x47, 0xFC, 0x80, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x20, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x04, 0x09, 0xFE, 0x7F, 0x20, 0x22, 0x44, 0x14, 0xFE, 0x7F, 0x84, 0x44, 0x94, 0x48, 0x94, 0x52, 0x94, 0x44, 0xA4, 0x48, 0xA4, 0x52, 0xA4, 0x44, 0xA4, 0x48, 0x48, 0x90, 0x86, 0x21, 0x02, 0x20, 0x04, 0x1B, 0xFE, 0x4A, 0x04, 0x42, 0x04, 0x47, 0xC4, 0x48, 0x84, 0x51, 0x24, 0x4E, 0xF4, 0x48, 0x24, 0x48, 0x24, 0x4E, 0xE4, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x40, 0x14, 0x40, 0x08, 0x01, 0x00, 0x01, 0x08, 0x11, 0x18, 0x11, 0x20, 0x22, 0xC0, 0x04, 0x30, 0x19, 0x0C, 0x61, 0x04, 0x01, 0x10, 0x11, 0x30, 0x11, 0x40, 0x22, 0x80, 0x02, 0x40, 0x04, 0x30, 0x18, 0x0E, 0x60, 0x04, 0x00, 0x10, 0x41, 0xF8, 0x31, 0x10, 0x11, 0x10, 0x81, 0x10, 0x61, 0x10, 0x22, 0x10, 0x0C, 0x0E, 0x10, 0x08, 0x23, 0xFC, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0x0C, 0x60, 0x31, 0x1E, 0xDF, 0xF4, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x14, 0x01, 0x04, 0x00, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0xFC, 0xA0, 0x11, 0x50, 0x13, 0xF8, 0x1E, 0x4E, 0x32, 0x48, 0xD3, 0xF8, 0x12, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x10, 0x42, 0x50, 0x42, 0x20, 0x3E, 0x00, 0x08, 0x0B, 0xFC, 0x7E, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x7A, 0x08, 0x4B, 0xF8, 0x4A, 0x84, 0x7A, 0x88, 0x4A, 0x50, 0x4A, 0x20, 0x4A, 0x10, 0x7A, 0x8E, 0x4B, 0x04, 0x02, 0x00, 0x10, 0x08, 0x14, 0x7C, 0x23, 0x00, 0x41, 0x00, 0x80, 0x00, 0x14, 0x04, 0x23, 0x7E, 0x61, 0x08, 0xA0, 0x08, 0x21, 0x08, 0x22, 0x08, 0x2E, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x28, 0x22, 0x10, 0x40, 0x80, 0x20, 0x40, 0x2F, 0xFE, 0x08, 0x02, 0x90, 0x04, 0x67, 0xFC, 0x20, 0x40, 0x0F, 0xFC, 0x14, 0x44, 0x27, 0xFC, 0xE4, 0x44, 0x27, 0xFC, 0x20, 0x00, 0x21, 0x10, 0x23, 0x0C, 0x24, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0xF8, 0xFF, 0x10, 0x11, 0x24, 0x13, 0xFE, 0x7D, 0x24, 0x11, 0x24, 0x11, 0x24, 0xFF, 0xFC, 0x11, 0x04, 0x11, 0x00, 0x11, 0x02, 0x11, 0x02, 0x10, 0xFE, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x00, 0x12, 0xFC, 0x12, 0x84, 0xFE, 0xFC, 0x12, 0x84, 0x12, 0xFC, 0x12, 0x20, 0x13, 0xFE, 0x1E, 0x48, 0xF2, 0xC8, 0x42, 0x30, 0x02, 0x48, 0x03, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x14, 0x50, 0x17, 0xD0, 0xF0, 0x12, 0x17, 0xDC, 0x14, 0x50, 0x14, 0x52, 0x34, 0x52, 0xC7, 0xCE, 0x00, 0x00, 0x48, 0x88, 0x44, 0x46, 0x80, 0x02, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0xA0, 0x20, 0x90, 0x20, 0x94, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x80, 0x21, 0x40, 0x21, 0x40, 0x22, 0x20, 0x42, 0x20, 0x44, 0x10, 0x88, 0x0E, 0x10, 0x04, 0x04, 0x08, 0x7F, 0xFC, 0x11, 0x08, 0x11, 0x28, 0x21, 0x28, 0x25, 0x28, 0x7F, 0x48, 0xA5, 0x48, 0x25, 0x48, 0x25, 0x48, 0x24, 0x60, 0x24, 0xA0, 0x3C, 0xA2, 0x25, 0x22, 0x02, 0x1E, 0x04, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x80, 0x24, 0xA0, 0x29, 0x14, 0x29, 0xFE, 0x3B, 0x10, 0x2D, 0x10, 0x29, 0xFC, 0x29, 0x10, 0x29, 0x10, 0x29, 0xFC, 0x49, 0x10, 0x49, 0x14, 0x89, 0xFE, 0x09, 0x00, 0x00, 0x40, 0x08, 0x24, 0x7F, 0xFE, 0x48, 0x00, 0x48, 0x08, 0x4B, 0xFC, 0x48, 0x00, 0x4B, 0xFC, 0x48, 0x00, 0x48, 0x04, 0x4B, 0xFE, 0x7A, 0x04, 0x4A, 0x04, 0x02, 0x04, 0x03, 0xFC, 0x02, 0x04, 0x02, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x44, 0x3F, 0xFE, 0x20, 0x20, 0x20, 0xC0, 0x23, 0x10, 0x2C, 0x20, 0x20, 0xC0, 0x23, 0x08, 0x4C, 0x10, 0x40, 0x60, 0x83, 0x80, 0x1C, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0xFC, 0x15, 0x08, 0x5A, 0x10, 0x50, 0x84, 0x53, 0x3E, 0x92, 0x04, 0x12, 0x04, 0x12, 0x04, 0x13, 0xBC, 0x2A, 0x04, 0x26, 0x04, 0x46, 0x04, 0x83, 0xFC, 0x02, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x0C, 0x40, 0x03, 0x80, 0x0C, 0x60, 0x30, 0x18, 0x00, 0x40, 0x40, 0x24, 0x33, 0xFE, 0x10, 0x88, 0x00, 0x50, 0x03, 0xFE, 0xF2, 0x10, 0x12, 0x20, 0x12, 0x48, 0x12, 0x90, 0x12, 0x24, 0x12, 0x44, 0x16, 0x88, 0x1A, 0x10, 0x14, 0x60, 0x09, 0x80, 0x08, 0x40, 0xFC, 0x40, 0x08, 0xA0, 0x48, 0xA0, 0x49, 0x10, 0x4A, 0x0E, 0x4D, 0xF4, 0x48, 0x00, 0x7C, 0x48, 0x06, 0x48, 0x05, 0x48, 0x1D, 0x50, 0xE5, 0x10, 0x44, 0x24, 0x17, 0xFE, 0x08, 0x00, 0x04, 0x20, 0xFE, 0x20, 0x20, 0x24, 0x21, 0xFE, 0x3D, 0x24, 0x25, 0x24, 0x25, 0x24, 0x45, 0x24, 0x65, 0x24, 0x9B, 0xFE, 0x08, 0x20, 0x10, 0x50, 0x20, 0x50, 0x40, 0x88, 0x81, 0x06, 0x02, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x60, 0x08, 0x1C, 0x30, 0x08, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x04, 0x40, 0x0A, 0x30, 0x3F, 0xEE, 0xCA, 0x24, 0x08, 0xA0, 0x08, 0x44, 0x0F, 0xFE, 0x00, 0x04, 0x7F, 0xC4, 0x00, 0x14, 0x00, 0x08, 0x08, 0x20, 0x1C, 0x20, 0xF0, 0x24, 0x11, 0xFE, 0x15, 0x24, 0xFF, 0x24, 0x11, 0x24, 0x39, 0x24, 0x35, 0x24, 0x53, 0xFE, 0x50, 0x20, 0x90, 0x50, 0x10, 0x50, 0x10, 0x88, 0x11, 0x06, 0x12, 0x04, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x10, 0x10, 0x20, 0xFC, 0x40, 0x10, 0x84, 0x33, 0xFE, 0x38, 0xA4, 0x54, 0xA4, 0x50, 0xA4, 0x91, 0x24, 0x11, 0x44, 0x12, 0x44, 0x14, 0x84, 0x11, 0x28, 0x10, 0x10, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x10, 0x10, 0x20, 0xFC, 0x40, 0x10, 0x84, 0x17, 0xFE, 0x18, 0xA4, 0x30, 0xA4, 0xD0, 0xA4, 0x11, 0x24, 0x11, 0x44, 0x12, 0x44, 0x14, 0x84, 0x51, 0x28, 0x20, 0x10, 0x0A, 0x08, 0x09, 0x10, 0x08, 0xA0, 0x17, 0xFC, 0x10, 0x40, 0x30, 0x50, 0x53, 0xF8, 0x90, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x10, 0x00, 0x97, 0xF0, 0x50, 0x40, 0x50, 0x80, 0x11, 0x04, 0x37, 0xFE, 0x51, 0x24, 0xD1, 0x24, 0x12, 0x44, 0x22, 0x44, 0x24, 0x84, 0x49, 0x28, 0x00, 0x10, 0x08, 0x20, 0x04, 0x40, 0x02, 0x88, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x08, 0x41, 0x10, 0x30, 0xA0, 0x17, 0xFC, 0x80, 0x40, 0x60, 0x40, 0x23, 0xF8, 0x08, 0x40, 0x10, 0x40, 0x20, 0x44, 0xEF, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x04, 0x7D, 0xFE, 0x45, 0x04, 0x49, 0x04, 0x49, 0x04, 0x51, 0x04, 0x49, 0x04, 0x49, 0xFC, 0x45, 0x04, 0x45, 0x04, 0x45, 0x04, 0x69, 0x04, 0x51, 0x04, 0x41, 0x04, 0x41, 0xFC, 0x41, 0x04, 0x10, 0x00, 0x1F, 0xFC, 0x20, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x08, 0x88, 0x05, 0x08, 0x3F, 0xE8, 0x02, 0x08, 0x1F, 0xC8, 0x02, 0x08, 0x7F, 0xFA, 0x02, 0x0A, 0x02, 0x04, 0x02, 0x00, 0x10, 0x80, 0x11, 0x04, 0x12, 0x7E, 0x24, 0x44, 0x24, 0x44, 0x64, 0x44, 0xA4, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x25, 0x44, 0x26, 0x54, 0x24, 0x48, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x01, 0x00, 0x00, 0x84, 0x1F, 0xFE, 0x11, 0x10, 0x90, 0xA4, 0x5F, 0xFE, 0x50, 0x40, 0x10, 0x48, 0x37, 0xFC, 0x50, 0x40, 0xD0, 0x44, 0x1F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x40, 0x40, 0x00, 0x40, 0x08, 0x20, 0x04, 0x40, 0x02, 0x88, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x30, 0x34, 0x4E, 0xC4, 0x44, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x10, 0x40, 0x12, 0x08, 0x11, 0x10, 0x10, 0xA0, 0x17, 0xFC, 0xFC, 0x40, 0x10, 0x50, 0x3B, 0xF8, 0x34, 0x40, 0x50, 0x40, 0x50, 0x44, 0x9F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x01, 0x10, 0x40, 0xA4, 0x3F, 0xFE, 0x10, 0x40, 0x87, 0xFC, 0x60, 0x40, 0x2F, 0xFE, 0x08, 0x80, 0x10, 0x40, 0x23, 0xC8, 0xE0, 0x50, 0x27, 0x60, 0x21, 0x50, 0x22, 0x4E, 0x2D, 0x44, 0x20, 0x80, 0x02, 0x10, 0x44, 0x10, 0x2F, 0x94, 0x28, 0xBE, 0x0F, 0xC4, 0x08, 0xA4, 0xEF, 0xA4, 0x22, 0x28, 0x3F, 0xA8, 0x24, 0x10, 0x27, 0x90, 0x24, 0xA8, 0x28, 0xA4, 0x52, 0xC4, 0x89, 0x06, 0x07, 0xFC, 0x08, 0x04, 0x7F, 0xFE, 0x48, 0x90, 0x4B, 0xFC, 0x4A, 0x94, 0x7A, 0x94, 0x4B, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x7F, 0xFE, 0x48, 0x88, 0x49, 0x08, 0x48, 0x90, 0x48, 0x60, 0x88, 0x98, 0x1B, 0x04, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x10, 0x20, 0xFC, 0x20, 0x24, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x44, 0x20, 0x28, 0x50, 0x10, 0x50, 0x28, 0x88, 0x45, 0x08, 0x82, 0x06, 0x04, 0x04, 0x08, 0x1C, 0xFD, 0xE0, 0x10, 0x00, 0x11, 0x24, 0x10, 0xA4, 0x10, 0xA8, 0x7D, 0x00, 0x11, 0xFC, 0x12, 0x20, 0x14, 0x24, 0x13, 0xFE, 0x1C, 0x20, 0xF1, 0x24, 0x41, 0x24, 0x01, 0xFC, 0x01, 0x04, 0x10, 0x08, 0x10, 0x3C, 0x17, 0xC0, 0x12, 0x48, 0xFD, 0x48, 0x11, 0x50, 0x16, 0x00, 0x1B, 0xFC, 0x34, 0x40, 0xD0, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x12, 0x48, 0x12, 0x48, 0x53, 0xF8, 0x22, 0x08, 0x04, 0x00, 0x04, 0x08, 0x03, 0xFC, 0x7E, 0x20, 0x01, 0x40, 0x00, 0x84, 0x07, 0x64, 0x38, 0x1C, 0x00, 0x08, 0x7F, 0xFC, 0x02, 0x40, 0x02, 0x40, 0x04, 0x40, 0x04, 0x42, 0x08, 0x42, 0x70, 0x3E, 0x00, 0x38, 0x47, 0xC0, 0x32, 0x48, 0x11, 0x50, 0x02, 0x40, 0x03, 0xF8, 0xF4, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x12, 0x48, 0x13, 0xF8, 0x12, 0x08, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x90, 0x14, 0x28, 0x08, 0x0F, 0xF0, 0x11, 0x00, 0x21, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x00, 0x08, 0x40, 0x3C, 0x27, 0xC0, 0x22, 0x48, 0x01, 0x48, 0x01, 0x50, 0xE2, 0x00, 0x23, 0xFC, 0x24, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x2A, 0x48, 0x32, 0x48, 0x23, 0xF8, 0x02, 0x08, 0x10, 0x50, 0x10, 0x50, 0x10, 0x50, 0x12, 0x52, 0xFD, 0x54, 0x25, 0x58, 0x24, 0x50, 0x24, 0x50, 0x24, 0xD8, 0x45, 0x54, 0x2A, 0x54, 0x10, 0x90, 0x28, 0x92, 0x45, 0x12, 0x82, 0x0E, 0x04, 0x00, 0x00, 0x80, 0x08, 0x40, 0x7C, 0x44, 0x4F, 0xFE, 0x48, 0x00, 0x49, 0x10, 0x4A, 0x08, 0x4D, 0x14, 0x49, 0x10, 0x48, 0xA0, 0x48, 0xA0, 0x48, 0x40, 0x78, 0xA0, 0x49, 0x10, 0x02, 0x0E, 0x0C, 0x04, 0x00, 0x10, 0x00, 0x78, 0x7F, 0x80, 0x02, 0x08, 0x21, 0x08, 0x11, 0x10, 0x11, 0x20, 0x04, 0x08, 0x38, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3E, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x40, 0x10, 0x44, 0x22, 0x7E, 0x7C, 0x84, 0x09, 0x04, 0x10, 0x44, 0x7E, 0x24, 0x00, 0x24, 0x0E, 0x04, 0x70, 0x04, 0x20, 0x28, 0x00, 0x10, 0x00, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x06, 0x40, 0x01, 0x80, 0x06, 0x60, 0x38, 0x10, 0x10, 0x00, 0x13, 0xFC, 0x11, 0x54, 0x54, 0xCC, 0x39, 0x54, 0x10, 0x44, 0xFD, 0x20, 0x29, 0xFE, 0x2B, 0x20, 0x2D, 0xFC, 0x29, 0x20, 0x2B, 0xFC, 0x2D, 0x20, 0x49, 0x24, 0x81, 0xFE, 0x01, 0x00, 0x10, 0x00, 0x17, 0xFE, 0x12, 0x52, 0x12, 0x54, 0xFE, 0x54, 0x13, 0xD8, 0x3A, 0x54, 0x36, 0x52, 0x53, 0xD2, 0x52, 0x52, 0x92, 0x5A, 0x13, 0xD4, 0x1E, 0x50, 0x10, 0x50, 0x10, 0x50, 0x10, 0x50, 0x00, 0x48, 0x17, 0xFC, 0x78, 0x40, 0x53, 0xF8, 0x50, 0x00, 0x57, 0xFE, 0x54, 0x02, 0x5B, 0xFC, 0x50, 0x00, 0x53, 0xF8, 0x52, 0x08, 0x73, 0xF8, 0x41, 0x10, 0x00, 0xA4, 0x0F, 0xFE, 0x00, 0x00, 0x02, 0x00, 0x7F, 0x7C, 0x22, 0x44, 0x22, 0x44, 0x3E, 0x48, 0x22, 0x48, 0x22, 0x50, 0x3E, 0x48, 0x22, 0x44, 0x22, 0x42, 0x27, 0x42, 0xFA, 0x64, 0x42, 0x58, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x04, 0x40, 0x08, 0x20, 0x14, 0x50, 0x02, 0x80, 0x01, 0x00, 0x06, 0xC0, 0x18, 0x30, 0xE0, 0x0E, 0x1F, 0xF0, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x50, 0x02, 0x20, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7F, 0x7C, 0x49, 0x04, 0x49, 0x28, 0x7F, 0x10, 0x49, 0x10, 0x49, 0xFE, 0x7F, 0x12, 0x08, 0x14, 0x0A, 0x10, 0x7F, 0x10, 0x08, 0x10, 0x08, 0x10, 0x0F, 0x10, 0xF8, 0x50, 0x40, 0x20, 0x00, 0x40, 0x40, 0x40, 0x30, 0x80, 0x10, 0x80, 0x01, 0x10, 0x02, 0x08, 0x0F, 0xFC, 0x10, 0x00, 0x20, 0x08, 0xE3, 0xFC, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x02, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x00, 0x11, 0x30, 0x11, 0xD0, 0x1F, 0x10, 0xF1, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x11, 0x02, 0x10, 0x02, 0x10, 0x02, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x90, 0x04, 0x60, 0x08, 0x18, 0x30, 0x08, 0x10, 0x80, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x20, 0xF9, 0x20, 0x11, 0x3C, 0x12, 0x44, 0x1A, 0x64, 0x36, 0x98, 0xDB, 0x48, 0x12, 0x50, 0x12, 0x20, 0x12, 0x50, 0x12, 0x8E, 0x53, 0x04, 0x22, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x44, 0x44, 0x24, 0x44, 0x24, 0x48, 0x14, 0x48, 0x14, 0x50, 0x14, 0x50, 0x14, 0x60, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x02, 0x00, 0x02, 0x10, 0x3F, 0xF8, 0x22, 0x10, 0x22, 0x10, 0x3F, 0xF0, 0x22, 0x10, 0x22, 0x10, 0x3F, 0xF0, 0x22, 0x10, 0x01, 0x20, 0x01, 0xC0, 0x06, 0x80, 0x18, 0x44, 0xE0, 0x34, 0x00, 0x0C, 0x00, 0x80, 0x78, 0x44, 0x4F, 0xFE, 0x48, 0x20, 0x49, 0x20, 0x79, 0x3C, 0x4A, 0x44, 0x4A, 0x64, 0x4E, 0x98, 0x7B, 0x48, 0x4A, 0x50, 0x4A, 0x20, 0x4A, 0x50, 0x4A, 0x8E, 0x8B, 0x04, 0x1A, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x80, 0x08, 0x80, 0x10, 0xF8, 0x11, 0x08, 0x32, 0x88, 0x56, 0x50, 0x99, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x1C, 0x04, 0x00, 0x80, 0x40, 0x44, 0x37, 0xFE, 0x10, 0x20, 0x81, 0x20, 0x61, 0x3C, 0x22, 0x44, 0x0A, 0x64, 0x16, 0x98, 0x2B, 0x48, 0xE2, 0x50, 0x22, 0x20, 0x22, 0x50, 0x22, 0x8E, 0x23, 0x04, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x44, 0x00, 0x44, 0x10, 0x4F, 0xF8, 0x50, 0x80, 0x40, 0x88, 0x5F, 0xFC, 0x40, 0x80, 0x41, 0x40, 0x41, 0x30, 0x42, 0x18, 0x4C, 0x08, 0x40, 0x00, 0x7F, 0xFC, 0x00, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFD, 0xF8, 0x10, 0x00, 0x17, 0xFE, 0x19, 0x08, 0x31, 0xF8, 0xD1, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0x0E, 0x17, 0xF8, 0x50, 0x08, 0x20, 0x08, 0x10, 0x40, 0x10, 0x20, 0x10, 0x24, 0x1F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x7C, 0xA0, 0x90, 0xA4, 0x11, 0xA8, 0x7E, 0x90, 0x14, 0x90, 0x10, 0x88, 0x14, 0x8E, 0x18, 0xA4, 0x10, 0xC0, 0x00, 0x80, 0x08, 0x40, 0x08, 0x20, 0x08, 0x24, 0x17, 0xFE, 0x10, 0x40, 0x30, 0x40, 0x50, 0xA0, 0x90, 0xA4, 0x11, 0xA8, 0x12, 0x90, 0x14, 0x90, 0x10, 0x88, 0x10, 0x8E, 0x10, 0xA4, 0x10, 0xC0, 0x10, 0x80, 0x08, 0x08, 0x0B, 0xFC, 0x08, 0x88, 0x10, 0x88, 0x10, 0x88, 0x3F, 0xFE, 0x50, 0x88, 0x90, 0x88, 0x10, 0x88, 0x13, 0xF8, 0x10, 0x88, 0x10, 0x80, 0x11, 0x00, 0x11, 0x00, 0x12, 0x00, 0x14, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x08, 0x05, 0x18, 0x05, 0x20, 0x0C, 0xC0, 0x14, 0x80, 0x24, 0x40, 0xC4, 0x20, 0x04, 0x18, 0x05, 0x0E, 0x06, 0x04, 0x04, 0x00, 0x04, 0x04, 0x7F, 0xFE, 0x48, 0x20, 0x48, 0x44, 0x48, 0xFE, 0x5E, 0x84, 0x52, 0x94, 0x52, 0x94, 0x52, 0x94, 0x5E, 0x94, 0x48, 0xA4, 0x48, 0xA4, 0x48, 0xA4, 0x48, 0x58, 0x7E, 0x86, 0x01, 0x02, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x00, 0x3F, 0xFC, 0x01, 0x04, 0x02, 0x94, 0x0C, 0x48, 0x30, 0x30, 0xC0, 0x0E, 0x00, 0x48, 0x43, 0xFC, 0x32, 0x48, 0x13, 0xF8, 0x00, 0x40, 0x0F, 0xFE, 0xF0, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x48, 0x12, 0x48, 0x10, 0xA0, 0x11, 0x18, 0x2A, 0x08, 0x44, 0x06, 0x03, 0xFC, 0x08, 0x40, 0x1C, 0x40, 0xF0, 0xFC, 0x11, 0x84, 0x12, 0x48, 0xFC, 0x30, 0x10, 0x60, 0x39, 0xA0, 0x34, 0x3E, 0x54, 0x42, 0x90, 0xC4, 0x11, 0x24, 0x10, 0x18, 0x10, 0x30, 0x10, 0xC0, 0x17, 0x00, 0x08, 0x00, 0x08, 0x80, 0x08, 0x64, 0x12, 0x24, 0x12, 0x04, 0x32, 0x08, 0x51, 0x08, 0x91, 0x10, 0x10, 0x90, 0x10, 0xA0, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x08, 0x14, 0x0E, 0x18, 0x04, 0x00, 0x40, 0x78, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x4B, 0xF8, 0x78, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x4A, 0x40, 0x7B, 0xFE, 0x48, 0x42, 0x48, 0x4A, 0x48, 0xA4, 0x48, 0x90, 0x89, 0x0E, 0x1E, 0x04, 0x20, 0x00, 0x26, 0xFC, 0x38, 0x08, 0x22, 0x50, 0x1E, 0x20, 0x21, 0xFE, 0x3E, 0x22, 0x48, 0x24, 0x08, 0xA0, 0xFE, 0xB8, 0x08, 0xA0, 0x08, 0xA0, 0x14, 0xE0, 0x22, 0xA0, 0x41, 0x1E, 0x02, 0x04, 0x00, 0x08, 0x40, 0x3C, 0x33, 0xC0, 0x12, 0x00, 0x82, 0x00, 0x62, 0x04, 0x23, 0xFE, 0x0A, 0x10, 0x12, 0x10, 0x22, 0x10, 0xE2, 0x10, 0x22, 0x10, 0x24, 0x10, 0x24, 0x10, 0x28, 0x10, 0x20, 0x10, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x24, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0xFB, 0xF8, 0x48, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x4A, 0x40, 0x93, 0xFE, 0x50, 0x42, 0x20, 0x4A, 0x50, 0xA4, 0x48, 0x90, 0x81, 0x0E, 0x06, 0x04, 0x08, 0x20, 0x0F, 0xF0, 0x10, 0x20, 0x1F, 0xE0, 0x00, 0x24, 0xFF, 0xFE, 0x49, 0x20, 0x2A, 0x78, 0x7F, 0x24, 0x1C, 0xFE, 0x2A, 0x54, 0x48, 0x92, 0xFF, 0xFE, 0x08, 0x10, 0x10, 0x10, 0x60, 0x10, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0xFC, 0xA0, 0x11, 0x14, 0x37, 0xFE, 0x38, 0x08, 0x57, 0xE8, 0x52, 0x28, 0x92, 0x28, 0x12, 0x28, 0x13, 0xE8, 0x12, 0x08, 0x10, 0x28, 0x10, 0x10, 0x10, 0x00, 0x10, 0x80, 0x10, 0x64, 0x12, 0x24, 0x7E, 0x04, 0x55, 0x08, 0x55, 0x08, 0x55, 0x10, 0x54, 0x90, 0x7C, 0xA0, 0x10, 0x40, 0x14, 0xA0, 0x1C, 0x90, 0xF5, 0x08, 0x42, 0x0E, 0x0C, 0x04, 0x08, 0x40, 0x08, 0x48, 0x0F, 0xFC, 0x10, 0x40, 0x10, 0xA0, 0x31, 0x14, 0x5F, 0xFE, 0x90, 0x08, 0x13, 0xE8, 0x12, 0x28, 0x12, 0x28, 0x12, 0x28, 0x13, 0xE8, 0x12, 0x08, 0x10, 0x28, 0x10, 0x10, 0x00, 0x10, 0x7F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x3F, 0xF0, 0x20, 0x10, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x1F, 0xFC, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x20, 0x10, 0x10, 0x3F, 0xF8, 0x08, 0x08, 0x08, 0x10, 0x1F, 0xF8, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x10, 0x1C, 0x60, 0x08, 0x00, 0x00, 0x04, 0x08, 0x42, 0x08, 0x43, 0x08, 0x41, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x41, 0x10, 0x42, 0x10, 0x44, 0x10, 0x48, 0x20, 0x50, 0x30, 0x60, 0x48, 0x01, 0x84, 0x06, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x84, 0x13, 0x3E, 0x12, 0x24, 0xFE, 0x24, 0x12, 0x24, 0x16, 0x24, 0x1A, 0x24, 0x32, 0x24, 0xD2, 0x24, 0x12, 0xA4, 0x13, 0x34, 0x12, 0x28, 0x10, 0x20, 0x50, 0x20, 0x20, 0x20, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x08, 0x04, 0x1F, 0xFE, 0x24, 0x44, 0x44, 0x44, 0x88, 0x84, 0x10, 0x84, 0x21, 0x04, 0x02, 0x28, 0x04, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x00, 0x20, 0x04, 0x20, 0x04, 0x1F, 0xFC, 0x00, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x55, 0x00, 0x56, 0x00, 0x55, 0xF8, 0x54, 0x10, 0x54, 0x20, 0x54, 0x40, 0x54, 0x80, 0x55, 0x00, 0x7D, 0x02, 0x45, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0B, 0xF8, 0x10, 0x10, 0x10, 0x20, 0x30, 0x40, 0x50, 0x80, 0x91, 0x00, 0x12, 0x00, 0x12, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x02, 0x14, 0x02, 0x13, 0xFE, 0x10, 0x00, 0x08, 0x10, 0x09, 0xF8, 0x11, 0x10, 0x21, 0x10, 0x41, 0x10, 0x0A, 0x0E, 0x14, 0x00, 0x33, 0xF8, 0x51, 0x08, 0x91, 0x10, 0x10, 0x90, 0x10, 0xE0, 0x10, 0x40, 0x10, 0xB0, 0x13, 0x0E, 0x1C, 0x04, 0x00, 0x40, 0x7B, 0xF8, 0x49, 0x10, 0x48, 0xA4, 0x4F, 0xFE, 0x78, 0x08, 0x4B, 0xFC, 0x4A, 0x08, 0x4B, 0xF8, 0x7A, 0x08, 0x4B, 0xF8, 0x48, 0x80, 0x4B, 0x68, 0x4B, 0x26, 0x8D, 0x0A, 0x18, 0xF8, 0x02, 0x00, 0x43, 0xE0, 0x24, 0x20, 0x28, 0x48, 0x1F, 0xFC, 0x08, 0x88, 0xE8, 0x88, 0x2F, 0xF8, 0x20, 0x80, 0x21, 0x40, 0x21, 0x54, 0x22, 0x44, 0x24, 0x3C, 0x58, 0x00, 0x88, 0x06, 0x07, 0xFC, 0x40, 0x20, 0x4C, 0x20, 0x71, 0xFC, 0x40, 0x24, 0x47, 0xFE, 0x3C, 0x24, 0x41, 0xFC, 0x7C, 0x20, 0x91, 0xFC, 0x10, 0x20, 0xFE, 0x24, 0x13, 0xFE, 0x28, 0x20, 0x24, 0x20, 0x44, 0x20, 0x80, 0x20, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x91, 0xF0, 0x51, 0x10, 0x51, 0x10, 0x12, 0x0C, 0x34, 0x00, 0x53, 0xF8, 0xD1, 0x10, 0x10, 0xA0, 0x20, 0x40, 0x21, 0xB0, 0x46, 0x0E, 0x18, 0x04, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x14, 0x50, 0x14, 0x48, 0x24, 0x44, 0x44, 0x44, 0x04, 0x40, 0x08, 0x40, 0x08, 0x40, 0x11, 0x40, 0x00, 0x80, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x10, 0x0C, 0xA0, 0x34, 0x60, 0xC5, 0x1C, 0x06, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x28, 0x28, 0x37, 0xD8, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x20, 0x18, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x10, 0x08, 0x08, 0x7C, 0x7F, 0x48, 0x22, 0x48, 0x14, 0x48, 0xFF, 0x86, 0x20, 0x00, 0x52, 0xF8, 0x9C, 0x48, 0x28, 0x48, 0x4C, 0x48, 0x1B, 0x30, 0x29, 0x20, 0xC8, 0x50, 0x28, 0x8E, 0x11, 0x04, 0x10, 0x00, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x10, 0x58, 0x20, 0x54, 0x40, 0x50, 0x80, 0x91, 0x00, 0x12, 0x00, 0x12, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x02, 0x14, 0x02, 0x13, 0xFE, 0x10, 0x00, 0x00, 0x00, 0x02, 0x08, 0x21, 0x08, 0x21, 0x10, 0x10, 0x10, 0x10, 0x20, 0x08, 0x20, 0x08, 0x40, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x60, 0x08, 0x18, 0x10, 0x0E, 0x60, 0x04, 0x08, 0x20, 0x04, 0x40, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x08, 0x30, 0x10, 0x10, 0x00, 0x00, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x02, 0x10, 0x41, 0x20, 0x30, 0x08, 0x17, 0xFC, 0x80, 0x00, 0x61, 0x20, 0x22, 0x18, 0x0C, 0x08, 0x10, 0x00, 0x27, 0xF8, 0xE5, 0x28, 0x25, 0x28, 0x25, 0x28, 0x25, 0x28, 0x3F, 0xFE, 0x20, 0x00, 0x02, 0x00, 0x42, 0x38, 0x33, 0xC0, 0x12, 0x02, 0x02, 0x02, 0x01, 0xFE, 0xF0, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0x13, 0xFC, 0x16, 0x04, 0x1A, 0x04, 0x13, 0xFC, 0x02, 0x04, 0x00, 0x00, 0x40, 0x80, 0x30, 0x44, 0x12, 0x44, 0x02, 0x04, 0x02, 0x08, 0xF1, 0x08, 0x11, 0x10, 0x10, 0x90, 0x10, 0xA0, 0x10, 0x40, 0x14, 0xA0, 0x19, 0x10, 0x12, 0x08, 0x04, 0x0E, 0x08, 0x04, 0x00, 0x80, 0x40, 0x40, 0x2F, 0xFE, 0x28, 0x02, 0x10, 0x04, 0x03, 0xF8, 0xE2, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x2A, 0x08, 0x32, 0x08, 0x2F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x47, 0xFC, 0x22, 0x08, 0x21, 0xB0, 0x00, 0x40, 0x00, 0xA0, 0xE3, 0x1E, 0x2C, 0x44, 0x20, 0x50, 0x23, 0xF8, 0x20, 0x40, 0x24, 0x48, 0x2F, 0xFC, 0x30, 0x40, 0x20, 0x40, 0x00, 0x40, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x20, 0x10, 0x3F, 0xF0, 0x20, 0x04, 0x20, 0x04, 0x1F, 0xFC, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x7E, 0xF8, 0x22, 0x88, 0x1A, 0x68, 0x22, 0x88, 0x02, 0x08, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x40, 0xFF, 0xFE, 0x08, 0x20, 0x30, 0x10, 0x00, 0x04, 0x7E, 0xFE, 0x22, 0x44, 0x12, 0x24, 0x06, 0x0C, 0x1A, 0x34, 0x62, 0xC4, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x20, 0x08, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x11, 0xFC, 0x20, 0x88, 0x20, 0x50, 0x44, 0x20, 0xF8, 0x50, 0x10, 0x8E, 0x23, 0x24, 0x40, 0x20, 0xFD, 0xFC, 0x00, 0x20, 0x00, 0x24, 0x1D, 0xFE, 0xE0, 0x20, 0x40, 0x20, 0x00, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x2F, 0xE8, 0x21, 0x08, 0x22, 0x88, 0x22, 0x88, 0x24, 0x48, 0x28, 0x28, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x7C, 0xFC, 0x44, 0x84, 0x48, 0x84, 0x50, 0xFC, 0x48, 0x84, 0x44, 0x84, 0x44, 0xFC, 0x64, 0x84, 0x59, 0x04, 0x41, 0x04, 0x42, 0x14, 0x44, 0x08, 0x00, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x04, 0x42, 0x84, 0x42, 0x84, 0x44, 0x44, 0x48, 0x34, 0x50, 0x14, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x0C, 0x08, 0x70, 0xFC, 0x44, 0x88, 0x7E, 0x88, 0x44, 0x88, 0x7D, 0x06, 0x46, 0x00, 0x7D, 0xFC, 0x40, 0x88, 0x7C, 0x88, 0x44, 0x50, 0x44, 0x20, 0x44, 0x50, 0x54, 0x50, 0x48, 0x8E, 0x83, 0x04, 0x02, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x04, 0x7C, 0xFE, 0x44, 0x84, 0x48, 0x84, 0x48, 0x84, 0x50, 0xFC, 0x48, 0x84, 0x48, 0x84, 0x44, 0x84, 0x44, 0xFC, 0x44, 0x84, 0x68, 0x84, 0x51, 0x04, 0x41, 0x04, 0x42, 0x14, 0x44, 0x08, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0x11, 0x24, 0xFD, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x25, 0x54, 0x45, 0x54, 0x29, 0x54, 0x11, 0x8C, 0x29, 0x04, 0x45, 0x04, 0x85, 0xFC, 0x01, 0x04, 0x00, 0x40, 0x08, 0x40, 0x7C, 0xA0, 0x48, 0xA0, 0x49, 0x10, 0x49, 0x10, 0x4A, 0x8E, 0x4C, 0x44, 0x48, 0x40, 0x4B, 0xF8, 0x48, 0x08, 0x78, 0x10, 0x48, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x3D, 0x08, 0x21, 0xF8, 0x21, 0x08, 0x7D, 0x08, 0x91, 0xF8, 0x11, 0x04, 0xFD, 0x8C, 0x11, 0x50, 0x13, 0x20, 0x15, 0x10, 0x19, 0x4E, 0x11, 0x84, 0x01, 0x00, 0x40, 0x08, 0x30, 0x3C, 0x17, 0xC0, 0x00, 0x04, 0x84, 0x84, 0x62, 0x48, 0x22, 0x10, 0x07, 0xFC, 0x10, 0x40, 0x20, 0x44, 0xEF, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x20, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x14, 0x3F, 0xF8, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x0C, 0x60, 0x30, 0x18, 0x40, 0x04, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x40, 0x1E, 0x7E, 0x22, 0x82, 0x25, 0x24, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x50, 0x12, 0x50, 0x14, 0x90, 0x18, 0x88, 0x11, 0x0E, 0x02, 0x04, 0x00, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x04, 0x10, 0x04, 0x14, 0xFF, 0xFE, 0x04, 0x10, 0x04, 0x10, 0x3F, 0xF0, 0x04, 0x10, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x01, 0x08, 0x7F, 0x88, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x3F, 0x08, 0x20, 0x08, 0x20, 0x08, 0x41, 0x08, 0x7F, 0x88, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x11, 0x08, 0x0A, 0x08, 0x04, 0x08, 0x00, 0x80, 0x78, 0x80, 0x48, 0xF0, 0x51, 0x10, 0x52, 0x24, 0x67, 0xFE, 0x50, 0x04, 0x4B, 0xFC, 0x48, 0x04, 0x4B, 0xFC, 0x68, 0x04, 0x52, 0x80, 0x42, 0x60, 0x46, 0x2C, 0x4A, 0x0A, 0x41, 0xF8, 0x06, 0x04, 0x78, 0xFE, 0x40, 0x84, 0x40, 0x84, 0x40, 0x84, 0x44, 0x84, 0x7E, 0x84, 0x40, 0x84, 0x40, 0x84, 0x40, 0x84, 0x40, 0x84, 0x4E, 0xA8, 0x70, 0x90, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x60, 0x18, 0x1C, 0x60, 0x08, 0x10, 0x00, 0x17, 0xBC, 0x14, 0xA4, 0x15, 0xAC, 0xFD, 0xAC, 0x16, 0xB4, 0x3B, 0x18, 0x34, 0xA4, 0x50, 0x80, 0x5F, 0xFE, 0x90, 0x90, 0x11, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x11, 0xB0, 0x16, 0x08, 0x00, 0x08, 0x3E, 0xFC, 0x22, 0x88, 0x2A, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, 0x14, 0x50, 0x62, 0x88, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x04, 0x60, 0x38, 0x10, 0x00, 0x80, 0x3F, 0xFE, 0x22, 0x50, 0x24, 0x7C, 0x2C, 0xD0, 0x35, 0x7C, 0x24, 0x50, 0x24, 0x5C, 0x21, 0x00, 0x27, 0xF0, 0x24, 0x90, 0x24, 0x20, 0x47, 0xFC, 0x40, 0x04, 0x9F, 0xE4, 0x00, 0x0C, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x00, 0x21, 0x04, 0x28, 0x84, 0x24, 0x84, 0x24, 0x48, 0x22, 0x48, 0x22, 0x48, 0x22, 0x10, 0x22, 0x10, 0x40, 0x20, 0x40, 0x44, 0x9F, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x17, 0xBC, 0x24, 0xA4, 0x25, 0xAC, 0x45, 0xAC, 0xFE, 0xB4, 0x13, 0x18, 0x24, 0xA4, 0x40, 0x80, 0xFF, 0xFE, 0x00, 0x90, 0x01, 0x10, 0x1C, 0xA0, 0xE0, 0x40, 0x41, 0xB0, 0x06, 0x08, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x04, 0x40, 0x7F, 0xFE, 0x40, 0x02, 0xBF, 0xF4, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x40, 0x01, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x04, 0x40, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x14, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x7F, 0xFE, 0x40, 0x02, 0x8F, 0xE4, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x04, 0x40, 0x04, 0x48, 0x7F, 0xFC, 0x04, 0x40, 0x04, 0x40, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x14, 0x09, 0x30, 0x09, 0x40, 0x11, 0x00, 0x02, 0x80, 0x02, 0x40, 0x04, 0x30, 0x18, 0x0E, 0x60, 0x04, 0x10, 0x08, 0x10, 0xFC, 0x14, 0x88, 0x7E, 0x88, 0x54, 0xF8, 0x54, 0x04, 0x55, 0xFE, 0x55, 0x24, 0x55, 0x24, 0x7D, 0xFC, 0x11, 0x24, 0x15, 0x24, 0x1D, 0xFC, 0xF4, 0x20, 0x40, 0x22, 0x00, 0x1E, 0x00, 0x00, 0x41, 0x84, 0x26, 0x7E, 0x14, 0x44, 0x04, 0x44, 0x04, 0x44, 0xF4, 0x44, 0x14, 0xC4, 0x15, 0x44, 0x16, 0x54, 0x14, 0x48, 0x10, 0x40, 0x10, 0x40, 0x28, 0x46, 0x47, 0xFC, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFE, 0x10, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x77, 0xDC, 0x54, 0x54, 0x75, 0x54, 0x55, 0x5C, 0x71, 0x14, 0x52, 0x96, 0xB4, 0x62, 0x00, 0x10, 0x7F, 0xF8, 0x10, 0x10, 0x17, 0xD0, 0x14, 0x7C, 0x12, 0x84, 0x21, 0x04, 0x22, 0xD4, 0x44, 0x48, 0x00, 0x00, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x84, 0x3F, 0xC4, 0x20, 0x88, 0x3F, 0x90, 0x20, 0xA0, 0x3F, 0x84, 0x04, 0x04, 0xFF, 0xE8, 0x00, 0x10, 0x3F, 0xA2, 0x20, 0x82, 0x3F, 0x84, 0x15, 0x08, 0x24, 0x90, 0x54, 0xA0, 0x08, 0x40, 0x40, 0x04, 0x4B, 0xFE, 0x70, 0x20, 0x40, 0x44, 0x45, 0xFE, 0x3D, 0x04, 0x01, 0x24, 0x1D, 0x24, 0xF1, 0x24, 0x15, 0x24, 0xFF, 0x24, 0x11, 0x24, 0x38, 0x20, 0x54, 0x58, 0x91, 0x84, 0x16, 0x02, 0x04, 0x04, 0xFF, 0xFE, 0x10, 0x20, 0x10, 0x24, 0x21, 0xFE, 0x25, 0x24, 0x7F, 0x24, 0xA5, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x24, 0x20, 0x3D, 0xA0, 0x24, 0x60, 0x00, 0x9E, 0x03, 0x04, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x48, 0x4B, 0xFC, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x7A, 0x48, 0x4A, 0x48, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0xA0, 0x78, 0xA0, 0x49, 0x10, 0x02, 0x0E, 0x0C, 0x04, 0x00, 0x20, 0x11, 0x20, 0x79, 0x24, 0x52, 0x3E, 0x52, 0x44, 0x54, 0x84, 0x5F, 0x04, 0x52, 0x44, 0x54, 0x24, 0x5F, 0xA4, 0x50, 0x04, 0x71, 0x84, 0x4E, 0x04, 0x04, 0x44, 0x00, 0x28, 0x00, 0x10, 0x20, 0x04, 0x27, 0xFE, 0x24, 0x44, 0x24, 0x44, 0xFC, 0x44, 0x27, 0xFC, 0x2C, 0x44, 0x34, 0x44, 0x64, 0x44, 0xA7, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x28, 0x44, 0x28, 0x44, 0xB0, 0x54, 0x40, 0x08, 0x10, 0x04, 0x17, 0xFE, 0x14, 0x44, 0x24, 0x44, 0x24, 0x44, 0x67, 0xFC, 0xA4, 0x44, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x28, 0x44, 0x28, 0x44, 0x30, 0x54, 0x20, 0x08, 0x00, 0x40, 0x78, 0x24, 0x4F, 0xFE, 0x49, 0x10, 0x4A, 0x28, 0x7A, 0xBE, 0x4F, 0x68, 0x49, 0x28, 0x4A, 0xBE, 0x7C, 0xA8, 0x4F, 0xA8, 0x48, 0xBE, 0x48, 0xA8, 0x49, 0x28, 0x4A, 0x3E, 0x9C, 0x20, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x97, 0xFC, 0x54, 0x44, 0x54, 0x44, 0x17, 0xFC, 0x34, 0x44, 0x54, 0x44, 0xD7, 0xFC, 0x14, 0x44, 0x24, 0x44, 0x24, 0x44, 0x48, 0x54, 0x10, 0x08, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x88, 0x3F, 0xFE, 0x20, 0x88, 0x2F, 0xF8, 0x20, 0x80, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x48, 0x88, 0x4F, 0xF8, 0x88, 0x88, 0x08, 0x98, 0x01, 0x00, 0x00, 0x84, 0xFF, 0xFE, 0x08, 0xA0, 0x10, 0x94, 0x21, 0xFE, 0x49, 0x10, 0xFB, 0x10, 0x11, 0xFC, 0x25, 0x10, 0x45, 0x10, 0xF9, 0xFC, 0x09, 0x10, 0x11, 0x14, 0x21, 0xFE, 0x41, 0x00, 0x00, 0x00, 0x7D, 0xFC, 0x44, 0x08, 0x44, 0x50, 0x44, 0x24, 0x7D, 0xFE, 0x11, 0x24, 0x11, 0x24, 0x5D, 0xFC, 0x51, 0x24, 0x51, 0x24, 0x51, 0xFC, 0x5D, 0x24, 0xF1, 0x24, 0x41, 0x24, 0x01, 0x0C, 0x10, 0x00, 0x11, 0xFC, 0x10, 0x08, 0x14, 0x50, 0x7E, 0x24, 0x55, 0xFE, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x7D, 0x24, 0x51, 0x24, 0x15, 0xFC, 0x1D, 0x24, 0xF5, 0x24, 0x41, 0x24, 0x01, 0x0C, 0x00, 0x80, 0x08, 0x40, 0x7C, 0x00, 0x4B, 0xC0, 0x48, 0x44, 0x48, 0x4C, 0x4F, 0xF0, 0x48, 0xE0, 0x49, 0x50, 0x49, 0x50, 0x4A, 0x48, 0x7A, 0x4E, 0x44, 0x44, 0x08, 0x40, 0x01, 0x40, 0x00, 0x80, 0x00, 0x80, 0x40, 0x40, 0x30, 0x00, 0x13, 0xC0, 0x80, 0x44, 0x60, 0x4C, 0x27, 0xF0, 0x08, 0xE0, 0x11, 0x50, 0x21, 0x50, 0xE2, 0x48, 0x22, 0x4E, 0x24, 0x44, 0x28, 0x40, 0x21, 0x40, 0x20, 0x80, 0x00, 0x00, 0x47, 0xF8, 0x30, 0x10, 0x10, 0xA0, 0x80, 0x44, 0x67, 0xFE, 0x24, 0x44, 0x0C, 0x44, 0x17, 0xFC, 0x24, 0x44, 0xE4, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x24, 0x54, 0x24, 0x08, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x01, 0x08, 0x01, 0x18, 0x7D, 0xA0, 0x05, 0x40, 0x05, 0x40, 0x09, 0x20, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0x41, 0x04, 0x05, 0x00, 0x02, 0x00, 0x3F, 0xF0, 0x02, 0x40, 0x01, 0x88, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x18, 0x02, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x3F, 0xF0, 0x02, 0x40, 0x01, 0x88, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x10, 0x7F, 0xF8, 0x02, 0x08, 0x02, 0x08, 0x04, 0x08, 0x18, 0x50, 0x60, 0x20, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x41, 0x08, 0x41, 0x28, 0x80, 0x10, 0x01, 0x00, 0x01, 0x00, 0x09, 0x20, 0x49, 0x24, 0x49, 0x24, 0x51, 0x44, 0x53, 0x4C, 0x7D, 0xF4, 0x45, 0x14, 0x49, 0x24, 0x55, 0x54, 0x7F, 0xFC, 0x43, 0x0C, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x10, 0x80, 0x10, 0xA0, 0x10, 0x90, 0x20, 0x90, 0x20, 0x84, 0x7F, 0xFE, 0xA1, 0x40, 0x21, 0x40, 0x21, 0x40, 0x22, 0x40, 0x22, 0x40, 0x22, 0x40, 0x24, 0x42, 0x24, 0x42, 0x28, 0x3E, 0x30, 0x00, 0x08, 0x80, 0x08, 0x84, 0x10, 0xFE, 0x15, 0x08, 0x36, 0x88, 0x54, 0x50, 0x94, 0x20, 0x14, 0x50, 0x14, 0x8E, 0x11, 0x04, 0x02, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x10, 0x80, 0x10, 0xA0, 0x10, 0x90, 0x10, 0x90, 0x58, 0x84, 0x57, 0xFE, 0x51, 0x40, 0x91, 0x40, 0x11, 0x40, 0x11, 0x40, 0x12, 0x40, 0x12, 0x40, 0x12, 0x42, 0x14, 0x42, 0x14, 0x3E, 0x18, 0x00, 0x01, 0x00, 0x01, 0x40, 0x01, 0x20, 0x01, 0x20, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x80, 0x08, 0x82, 0x10, 0x82, 0x20, 0x7E, 0x40, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x08, 0x00, 0x08, 0x00, 0x09, 0x7C, 0x7F, 0xC4, 0x49, 0x48, 0x49, 0x48, 0x49, 0x50, 0x49, 0x48, 0x7F, 0x44, 0x49, 0x42, 0x49, 0x42, 0x49, 0x62, 0x49, 0x54, 0x7F, 0x48, 0x41, 0x40, 0x00, 0x40, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x1D, 0xFE, 0x21, 0x24, 0x21, 0x24, 0x7D, 0x24, 0x91, 0x24, 0x11, 0xFC, 0x7D, 0x24, 0x11, 0x24, 0x11, 0x24, 0x15, 0x24, 0x19, 0xFC, 0x11, 0x04, 0x00, 0x00, 0x00, 0x80, 0x44, 0xA0, 0x2C, 0x90, 0x10, 0x90, 0x28, 0x84, 0x4F, 0xFE, 0x89, 0x40, 0x09, 0x40, 0x19, 0x40, 0x29, 0x40, 0x49, 0x40, 0x8A, 0x40, 0x0A, 0x42, 0x0A, 0x42, 0x54, 0x3E, 0x28, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x44, 0x87, 0xFE, 0x64, 0x44, 0x24, 0x44, 0x0C, 0x44, 0x14, 0x44, 0x27, 0xFC, 0xE4, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x02, 0x10, 0x41, 0x14, 0x20, 0x1E, 0x2F, 0xE0, 0x82, 0x40, 0x62, 0x3E, 0x23, 0x84, 0x02, 0x88, 0x12, 0x88, 0x22, 0xFE, 0xE2, 0x88, 0x24, 0x88, 0x24, 0x88, 0x28, 0x88, 0x31, 0xA8, 0x20, 0x10, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x48, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x78, 0x28, 0x08, 0x30, 0x48, 0x2F, 0xE8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x10, 0x0F, 0xF8, 0x08, 0x10, 0x18, 0x10, 0x2F, 0xF0, 0x48, 0x10, 0x88, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x08, 0x10, 0x08, 0x50, 0x08, 0x20, 0x04, 0x00, 0x04, 0x00, 0x04, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x00, 0x0F, 0xF0, 0x08, 0x10, 0x14, 0x20, 0x12, 0x20, 0x21, 0x40, 0x40, 0x80, 0x81, 0x40, 0x06, 0x30, 0x18, 0x0E, 0x60, 0x04, 0x02, 0x00, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x08, 0x1F, 0xFC, 0x28, 0x08, 0x48, 0x08, 0x88, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x10, 0x84, 0x1F, 0xFE, 0x31, 0x00, 0x51, 0x00, 0x92, 0x04, 0x13, 0xFE, 0x15, 0x04, 0x19, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x04, 0x20, 0x0E, 0x20, 0xF0, 0x20, 0x12, 0x24, 0x57, 0xFE, 0x39, 0x24, 0x11, 0x24, 0xFF, 0x24, 0x11, 0x24, 0x39, 0xFC, 0x35, 0x24, 0x55, 0x24, 0x91, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x11, 0x04, 0x00, 0x38, 0x47, 0xC0, 0x20, 0x40, 0x20, 0x44, 0x0F, 0xFE, 0x01, 0x60, 0xE2, 0x50, 0x24, 0x4E, 0x2B, 0xF4, 0x21, 0x10, 0x21, 0x20, 0x21, 0x3C, 0x2A, 0x04, 0x32, 0x04, 0x24, 0x28, 0x08, 0x10, 0x00, 0x00, 0x7F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x08, 0x20, 0x08, 0x40, 0x04, 0x40, 0x04, 0x80, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x00, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x20, 0x44, 0x25, 0xFE, 0x44, 0x44, 0xF8, 0x44, 0x10, 0x44, 0x10, 0x44, 0x20, 0x44, 0x48, 0x84, 0xFC, 0x84, 0x45, 0x04, 0x02, 0x28, 0x04, 0x10, 0x00, 0x10, 0x43, 0xF8, 0x30, 0x40, 0x10, 0x40, 0x00, 0x48, 0x07, 0xFC, 0xF0, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x04, 0x10, 0x42, 0x10, 0x22, 0x90, 0x3F, 0xD0, 0x84, 0x28, 0x44, 0x28, 0x47, 0x44, 0x0D, 0x82, 0x15, 0x20, 0x25, 0x18, 0xE5, 0x08, 0x25, 0x00, 0x25, 0x20, 0x29, 0x18, 0x35, 0x0C, 0x22, 0x04, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x10, 0x60, 0x10, 0x90, 0x11, 0x08, 0xFE, 0xF6, 0x14, 0x00, 0x33, 0xC4, 0x3A, 0x54, 0x56, 0x54, 0x53, 0xD4, 0x92, 0x54, 0x12, 0x54, 0x13, 0xC4, 0x12, 0x44, 0x12, 0x54, 0x12, 0xC8, 0x01, 0xF8, 0x01, 0x00, 0x3F, 0xFE, 0x20, 0x84, 0x2F, 0xF0, 0x20, 0x84, 0x27, 0xFC, 0x24, 0x10, 0x27, 0xF0, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x80, 0x5F, 0xFE, 0x41, 0x40, 0x86, 0x30, 0x18, 0x0C, 0x00, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x22, 0x48, 0x27, 0xE8, 0x22, 0x10, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x01, 0x00, 0x09, 0x08, 0x31, 0x3C, 0x27, 0xC8, 0x22, 0x08, 0x3D, 0x38, 0x27, 0xC8, 0x21, 0x08, 0x39, 0x38, 0x27, 0xC8, 0x21, 0x08, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x10, 0x30, 0x0C, 0x40, 0x04, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x2F, 0xEE, 0xC1, 0x04, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x09, 0x20, 0x19, 0x18, 0x21, 0x0C, 0x45, 0x04, 0x02, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x37, 0xCE, 0xC0, 0x04, 0x3E, 0x08, 0x22, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x22, 0x08, 0x26, 0x18, 0x00, 0x80, 0x41, 0x40, 0x22, 0x20, 0x24, 0x10, 0x0B, 0xEE, 0x10, 0x04, 0xE7, 0x88, 0x24, 0xA8, 0x27, 0xA8, 0x24, 0xA8, 0x27, 0xA8, 0x24, 0x88, 0x25, 0x98, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0F, 0xE0, 0x10, 0x40, 0x20, 0x88, 0x7F, 0xFC, 0xA1, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x20, 0x40, 0x20, 0xC0, 0x21, 0x20, 0x22, 0x10, 0xB5, 0xEE, 0xA8, 0x04, 0xA7, 0x88, 0x24, 0xA8, 0x24, 0xA8, 0x27, 0xA8, 0x24, 0xA8, 0x24, 0xA8, 0x27, 0xA8, 0x24, 0x88, 0x24, 0xA8, 0x25, 0x90, 0x00, 0x40, 0x40, 0xC0, 0x31, 0x20, 0x12, 0x10, 0x85, 0xEE, 0x68, 0x04, 0x27, 0x88, 0x0C, 0xA8, 0x14, 0xA8, 0x27, 0xA8, 0xE4, 0xA8, 0x24, 0xA8, 0x27, 0xA8, 0x24, 0x88, 0x24, 0xA8, 0x25, 0x90, 0x01, 0x00, 0x41, 0x00, 0x31, 0xF8, 0x12, 0x10, 0x84, 0x24, 0x6F, 0xFE, 0x24, 0x44, 0x0C, 0x44, 0x17, 0xFC, 0x24, 0x44, 0xE4, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x20, 0x00, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x08, 0x7B, 0xFC, 0x4A, 0x48, 0x52, 0x48, 0x53, 0xF8, 0x62, 0x48, 0x52, 0x48, 0x4B, 0xF8, 0x48, 0x44, 0x4F, 0xFE, 0x6C, 0x44, 0x54, 0x54, 0x45, 0xF4, 0x44, 0x84, 0x44, 0x14, 0x44, 0x08, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFC, 0x01, 0x04, 0x01, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFD, 0xF8, 0x25, 0x08, 0x24, 0x00, 0x25, 0xF8, 0x24, 0x40, 0x44, 0x44, 0x2F, 0xFE, 0x10, 0x40, 0x28, 0xA0, 0x45, 0x10, 0x82, 0x0E, 0x04, 0x04, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x29, 0x48, 0x25, 0x28, 0x21, 0x08, 0x21, 0x08, 0x29, 0x48, 0x25, 0x28, 0x21, 0x08, 0x21, 0x28, 0x20, 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x00, 0x08, 0x00, 0x08, 0x00, 0x48, 0xFF, 0xE8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x50, 0x00, 0x20, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x54, 0x80, 0x54, 0x80, 0x54, 0x84, 0x54, 0xFE, 0x54, 0x04, 0x54, 0x24, 0x57, 0xF4, 0x7C, 0x04, 0x44, 0x04, 0x00, 0x04, 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x78, 0x7F, 0x80, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x44, 0x5F, 0xE4, 0x48, 0x24, 0x40, 0x04, 0x40, 0x0C, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x24, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x08, 0x4F, 0xFC, 0x21, 0x00, 0x21, 0x10, 0x07, 0xF8, 0x02, 0x10, 0xE2, 0x14, 0x3F, 0xFE, 0x20, 0x00, 0x20, 0x08, 0x27, 0xFC, 0x24, 0x08, 0x2C, 0x08, 0x34, 0x08, 0x27, 0xF8, 0x04, 0x08, 0x00, 0x04, 0x7E, 0xFE, 0x02, 0x04, 0x02, 0x04, 0x22, 0x44, 0x12, 0x24, 0x12, 0x24, 0x02, 0x04, 0x0A, 0x14, 0x12, 0x24, 0x62, 0xC4, 0x22, 0x44, 0x02, 0x04, 0x02, 0x04, 0x14, 0x28, 0x08, 0x10, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x40, 0x01, 0x30, 0x01, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x20, 0x20, 0x20, 0x28, 0x20, 0x24, 0x27, 0xFE, 0xF8, 0x20, 0x20, 0xA0, 0x27, 0xE0, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA8, 0x3F, 0x90, 0xE0, 0x10, 0x43, 0xAA, 0x0C, 0x4A, 0x00, 0x86, 0x01, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x00, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x00, 0x11, 0x7C, 0xFF, 0xC4, 0x20, 0x44, 0x22, 0x48, 0x7F, 0x48, 0x62, 0x50, 0xA2, 0x48, 0x3E, 0x44, 0x22, 0x42, 0x22, 0x42, 0x3E, 0x62, 0x22, 0x54, 0x22, 0x48, 0x2A, 0x40, 0x24, 0x40, 0x00, 0x08, 0x0B, 0xFC, 0x7C, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x01, 0x40, 0x00, 0x80, 0x00, 0x08, 0x47, 0xFC, 0x24, 0x88, 0x27, 0xF8, 0x04, 0x88, 0x07, 0xF8, 0xE0, 0x84, 0x2F, 0xFE, 0x28, 0x84, 0x28, 0xA4, 0x2B, 0xF4, 0x28, 0x04, 0x28, 0x14, 0x50, 0x08, 0x88, 0x06, 0x07, 0xFC, 0x00, 0x40, 0x10, 0xC0, 0x79, 0x20, 0x52, 0x10, 0x55, 0xEE, 0x58, 0x04, 0x57, 0x88, 0x54, 0xA8, 0x54, 0xA8, 0x57, 0xA8, 0x54, 0xA8, 0x74, 0xA8, 0x57, 0xA8, 0x04, 0x88, 0x04, 0xA8, 0x05, 0x90, 0x10, 0x50, 0x10, 0x50, 0x10, 0x88, 0x55, 0x24, 0x54, 0x50, 0x54, 0x50, 0x54, 0x88, 0x55, 0x06, 0x56, 0x04, 0x55, 0xFE, 0x55, 0x04, 0x7D, 0x04, 0x45, 0x04, 0x01, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x14, 0x00, 0x14, 0x04, 0x27, 0xBE, 0x4A, 0x24, 0x82, 0x24, 0x12, 0xA4, 0x2F, 0xE4, 0x62, 0x24, 0xAA, 0x24, 0x2B, 0xA4, 0x2A, 0x24, 0x2A, 0x34, 0x2B, 0xA8, 0x3C, 0x20, 0x28, 0x20, 0x20, 0x20, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x0F, 0xF0, 0x30, 0x0E, 0xDE, 0x14, 0x12, 0x90, 0x1E, 0x90, 0x12, 0x90, 0x1E, 0x90, 0x12, 0x10, 0x16, 0x30, 0x29, 0x04, 0x28, 0x92, 0x48, 0x12, 0x07, 0xF0, 0x28, 0x40, 0x28, 0x40, 0x44, 0x40, 0x92, 0x7C, 0x10, 0x84, 0x29, 0x28, 0x46, 0x20, 0x82, 0x20, 0x7C, 0x20, 0x44, 0x20, 0x44, 0x50, 0x44, 0x50, 0x44, 0x90, 0x7C, 0x88, 0x45, 0x0E, 0x02, 0x04, 0x04, 0x20, 0x88, 0x20, 0x54, 0x30, 0x22, 0x28, 0x52, 0x20, 0x91, 0xFE, 0x1E, 0x20, 0x12, 0x20, 0x32, 0x20, 0x52, 0x20, 0x92, 0xD0, 0x13, 0x50, 0x12, 0x88, 0x10, 0x88, 0xA1, 0x06, 0x42, 0x04, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x22, 0x08, 0x11, 0x10, 0x09, 0x24, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x1F, 0xF0, 0x20, 0x0E, 0xDF, 0xF4, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x01, 0x10, 0x41, 0x10, 0x32, 0x08, 0x14, 0x44, 0x80, 0x40, 0x60, 0xA0, 0x20, 0xA0, 0x09, 0x10, 0x12, 0x08, 0x27, 0xFE, 0xEA, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x28, 0x2F, 0xE8, 0x20, 0x28, 0x20, 0x10, 0x21, 0x10, 0x11, 0x10, 0x12, 0x08, 0xFC, 0x44, 0x08, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x35, 0x10, 0x5A, 0x08, 0x97, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x00, 0x04, 0x7D, 0xFE, 0x04, 0x20, 0x08, 0x44, 0x29, 0xFE, 0x11, 0x04, 0xFF, 0x24, 0x15, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x10, 0x58, 0x50, 0x84, 0x23, 0x02, 0x00, 0x40, 0x7C, 0x78, 0x04, 0x90, 0x09, 0x24, 0x2B, 0xFE, 0x11, 0x24, 0xFF, 0x44, 0x15, 0xFC, 0x10, 0x84, 0x11, 0x48, 0x12, 0xB0, 0x11, 0x30, 0x16, 0x68, 0x10, 0xA6, 0x53, 0x24, 0x20, 0x60, 0x04, 0x00, 0x7E, 0x00, 0x05, 0xFC, 0x24, 0x04, 0x24, 0x04, 0x24, 0x84, 0x24, 0x84, 0x24, 0x88, 0x3E, 0x88, 0x02, 0x50, 0x02, 0x20, 0x1E, 0x50, 0xE2, 0x50, 0x42, 0x88, 0x14, 0x8E, 0x0B, 0x04, 0x10, 0x08, 0x1E, 0xFC, 0x22, 0x88, 0x52, 0xA8, 0x14, 0x98, 0x08, 0x82, 0x12, 0x7E, 0xEF, 0xE0, 0x0A, 0x20, 0x08, 0xA0, 0x08, 0x48, 0x0F, 0xFC, 0x00, 0x08, 0x7F, 0xE8, 0x00, 0x08, 0x00, 0x18, 0x00, 0x04, 0x44, 0x44, 0x36, 0x4C, 0x15, 0x54, 0x85, 0x64, 0x64, 0x44, 0x27, 0xFC, 0x04, 0x44, 0x0C, 0xC4, 0x14, 0xE4, 0x25, 0x5C, 0xE5, 0x4C, 0x26, 0x44, 0x24, 0x44, 0x28, 0x44, 0x30, 0x04, 0x00, 0x00, 0x7F, 0xFE, 0x44, 0x02, 0x87, 0xE4, 0x08, 0x40, 0x10, 0x90, 0x3F, 0xF8, 0x51, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x12, 0x90, 0x02, 0x80, 0x04, 0xA2, 0x08, 0x92, 0x10, 0x7E, 0x60, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x3E, 0xC0, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x00, 0x10, 0x04, 0xFD, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x1D, 0xFC, 0xF1, 0x04, 0x40, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x05, 0x08, 0x08, 0x90, 0x18, 0x60, 0xEA, 0x30, 0x0C, 0x0E, 0x08, 0x04, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x00, 0x21, 0x00, 0x22, 0x08, 0x2F, 0xFC, 0x28, 0x08, 0x2F, 0xF8, 0x28, 0x08, 0x2F, 0xF8, 0x20, 0x80, 0x24, 0x90, 0x44, 0x88, 0x48, 0x84, 0x92, 0x84, 0x01, 0x00, 0x10, 0x1C, 0x17, 0xE8, 0x12, 0x48, 0x11, 0x50, 0xFF, 0xFC, 0x10, 0x80, 0x10, 0x84, 0x1F, 0xFE, 0x30, 0x80, 0xD1, 0xF8, 0x11, 0x08, 0x12, 0x90, 0x12, 0x60, 0x14, 0x90, 0x59, 0x0E, 0x22, 0x04, 0x10, 0x40, 0x10, 0x48, 0x23, 0xFC, 0xFC, 0x40, 0x27, 0xFE, 0x40, 0x08, 0x93, 0xFC, 0xFE, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x1D, 0x44, 0xF1, 0x28, 0x53, 0x10, 0x15, 0x4E, 0x11, 0x84, 0x11, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x44, 0x4F, 0xE4, 0x40, 0x04, 0x40, 0x24, 0x5F, 0xF4, 0x44, 0x84, 0x44, 0x84, 0x44, 0x84, 0x44, 0x94, 0x48, 0x94, 0x50, 0x74, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x22, 0x08, 0x04, 0x60, 0x18, 0x18, 0x60, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x40, 0x04, 0x5F, 0xF4, 0x50, 0x14, 0x51, 0x14, 0x51, 0x14, 0x52, 0x94, 0x44, 0x44, 0x48, 0x24, 0x7F, 0xFC, 0x40, 0x04, 0x02, 0x40, 0x44, 0x48, 0x2B, 0xFC, 0x10, 0x40, 0x2F, 0xFE, 0x48, 0x08, 0x8B, 0xFC, 0x0A, 0x08, 0x1A, 0x08, 0x2B, 0xF8, 0x49, 0x44, 0x89, 0x28, 0x0B, 0x10, 0x0D, 0x4E, 0x51, 0x84, 0x21, 0x00, 0x00, 0x04, 0x47, 0xFE, 0x34, 0x20, 0x14, 0x20, 0x84, 0x44, 0x65, 0xFE, 0x25, 0x04, 0x0D, 0xFC, 0x15, 0x04, 0x25, 0xFC, 0xE4, 0x20, 0x24, 0xA8, 0x29, 0xA6, 0x2A, 0x22, 0x30, 0xA0, 0x20, 0x40, 0x10, 0x80, 0x10, 0xF8, 0x21, 0x08, 0x23, 0xF0, 0x48, 0x14, 0xFF, 0xFE, 0x10, 0x80, 0x21, 0x88, 0x42, 0x50, 0xFC, 0xE0, 0x01, 0x60, 0x02, 0x50, 0x1C, 0xC8, 0xE1, 0x4E, 0x46, 0x44, 0x00, 0xC0, 0x00, 0x10, 0x43, 0xF8, 0x30, 0x00, 0x10, 0x00, 0x00, 0x08, 0x07, 0xFC, 0xF1, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x24, 0x12, 0x24, 0x12, 0x1C, 0x14, 0x00, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x08, 0x1E, 0xFC, 0x12, 0x88, 0x22, 0x88, 0x22, 0x88, 0x64, 0x88, 0x94, 0xA8, 0x08, 0x90, 0x08, 0x82, 0x10, 0x82, 0x20, 0x7E, 0x40, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x00, 0x22, 0x08, 0x2F, 0xFC, 0x28, 0x08, 0x2F, 0xF8, 0x28, 0x08, 0x2F, 0xF8, 0x20, 0x80, 0x44, 0x90, 0x89, 0x88, 0x09, 0x00, 0x28, 0x94, 0x28, 0x12, 0x47, 0xF2, 0x10, 0x08, 0x1E, 0xFC, 0x12, 0x88, 0x22, 0x88, 0x22, 0x88, 0x54, 0xA8, 0x8C, 0x90, 0x08, 0x84, 0x10, 0x84, 0x20, 0x7C, 0x42, 0x00, 0x11, 0x00, 0x51, 0x14, 0x50, 0x12, 0x8F, 0xF2, 0x00, 0x00, 0x00, 0x80, 0x78, 0x40, 0x4F, 0xFE, 0x54, 0x02, 0x58, 0x14, 0x63, 0xF8, 0x50, 0x00, 0x48, 0x08, 0x4F, 0xFC, 0x48, 0xA0, 0x68, 0xA0, 0x50, 0xA0, 0x41, 0x22, 0x41, 0x22, 0x42, 0x1E, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x10, 0x80, 0x20, 0x80, 0x21, 0x04, 0x45, 0xFE, 0xFA, 0x04, 0x14, 0x04, 0x20, 0x84, 0x40, 0x64, 0xFC, 0x24, 0x00, 0x04, 0x00, 0x04, 0x1C, 0x04, 0xE0, 0x44, 0x40, 0x28, 0x00, 0x10, 0x10, 0x20, 0x10, 0x28, 0x10, 0x28, 0x7D, 0xFC, 0x11, 0x20, 0x11, 0x20, 0xFF, 0x28, 0x11, 0x28, 0x51, 0x70, 0x5D, 0xA0, 0x51, 0x24, 0x50, 0x54, 0x70, 0x8C, 0x49, 0x00, 0x44, 0x06, 0x83, 0xFC, 0x00, 0x08, 0x7C, 0x1C, 0x47, 0xE0, 0x44, 0x40, 0x44, 0x40, 0x7C, 0x40, 0x10, 0x44, 0x13, 0xFE, 0x5C, 0x40, 0x50, 0xA0, 0x50, 0xA0, 0x51, 0x10, 0x5D, 0x10, 0xF2, 0x08, 0x44, 0x0E, 0x08, 0x04, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x1D, 0x08, 0x21, 0x08, 0x21, 0xF8, 0x7D, 0x08, 0x91, 0x08, 0x11, 0x08, 0xFD, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x15, 0x08, 0x19, 0x08, 0x12, 0x28, 0x04, 0x10, 0x00, 0xF0, 0x1F, 0x00, 0x10, 0x00, 0x10, 0x10, 0x1F, 0xF8, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x02, 0x10, 0x1F, 0xF8, 0x15, 0x50, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x15, 0x50, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x0F, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x10, 0x0F, 0xF8, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x50, 0x40, 0x20, 0x12, 0x08, 0x11, 0x18, 0x10, 0xA0, 0x13, 0xF8, 0x5A, 0x08, 0x56, 0x08, 0x52, 0x08, 0x92, 0x08, 0x13, 0xF8, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x12, 0x22, 0x12, 0x22, 0x14, 0x1E, 0x18, 0x00, 0x20, 0x04, 0x17, 0xFE, 0x50, 0x04, 0x44, 0x44, 0x42, 0x84, 0x4F, 0xE4, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x4A, 0xA4, 0x42, 0x84, 0x42, 0x94, 0x44, 0x94, 0x48, 0x74, 0x50, 0x04, 0x40, 0x0C, 0x08, 0x00, 0x08, 0x08, 0x7E, 0xFC, 0x08, 0x00, 0x08, 0x00, 0x7E, 0x04, 0x09, 0xFE, 0x08, 0x20, 0xFE, 0x20, 0x18, 0x40, 0x1C, 0x40, 0x2A, 0x88, 0x28, 0x84, 0x49, 0xFC, 0x08, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x20, 0x10, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x02, 0x00, 0x3F, 0x7C, 0x22, 0x44, 0x22, 0x48, 0x3E, 0x48, 0x01, 0x50, 0x7F, 0xC8, 0x41, 0x44, 0x49, 0x42, 0x49, 0x42, 0x49, 0x62, 0x49, 0x54, 0x14, 0x48, 0x12, 0x40, 0x21, 0x40, 0x41, 0x40, 0x08, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x10, 0x04, 0x10, 0x04, 0x26, 0x04, 0x43, 0x04, 0x81, 0x04, 0x00, 0x24, 0x00, 0xC4, 0x03, 0x04, 0x1C, 0x04, 0x08, 0x04, 0x00, 0x44, 0x00, 0x28, 0x00, 0x10, 0x00, 0x08, 0x7C, 0xFC, 0x44, 0x88, 0x48, 0x88, 0x48, 0xF8, 0x50, 0x04, 0x49, 0xFE, 0x49, 0x04, 0x45, 0x24, 0x45, 0x24, 0x45, 0x24, 0x69, 0x24, 0x50, 0x50, 0x40, 0x48, 0x40, 0x84, 0x43, 0x04, 0x02, 0x00, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x7F, 0xF8, 0x04, 0x88, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x80, 0x08, 0x80, 0x10, 0x82, 0x10, 0x82, 0x20, 0x7E, 0xC0, 0x00, 0x00, 0x10, 0x43, 0xF8, 0x30, 0x00, 0x10, 0x00, 0x00, 0x08, 0x07, 0xFC, 0xF0, 0x80, 0x10, 0x80, 0x11, 0x00, 0x11, 0x20, 0x12, 0x10, 0x17, 0xF8, 0x10, 0x08, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x48, 0x11, 0xFC, 0x21, 0x08, 0x45, 0xF8, 0x79, 0x08, 0x11, 0xF8, 0x20, 0x00, 0x7F, 0xFC, 0x02, 0x94, 0x1E, 0x94, 0xE2, 0x94, 0x47, 0xFE, 0x00, 0x00, 0x01, 0x00, 0xFF, 0x88, 0x14, 0x7C, 0x14, 0x00, 0x7F, 0x00, 0x55, 0x04, 0x55, 0xFE, 0x55, 0x10, 0x53, 0x10, 0x61, 0x10, 0x41, 0x20, 0x7F, 0x20, 0x41, 0x44, 0x41, 0xFE, 0x7F, 0x02, 0x41, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0x9F, 0xF4, 0x04, 0x00, 0x09, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x10, 0x20, 0x08, 0x20, 0x7F, 0x24, 0x00, 0x7E, 0x22, 0x84, 0x14, 0x04, 0xFF, 0x44, 0x02, 0x24, 0x3F, 0x24, 0x22, 0x0C, 0x22, 0x34, 0x3E, 0xC4, 0x22, 0x04, 0x22, 0x04, 0x3E, 0x28, 0x22, 0x10, 0x00, 0x20, 0x3F, 0xF0, 0x08, 0x20, 0x08, 0x24, 0x08, 0x7E, 0x10, 0x04, 0x1F, 0xC4, 0x20, 0x54, 0x40, 0x88, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x28, 0x88, 0x28, 0x88, 0x28, 0x88, 0x28, 0x88, 0x28, 0xA8, 0x28, 0x90, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x00, 0x00, 0x08, 0x04, 0xFD, 0xFE, 0x11, 0x10, 0x11, 0x10, 0x21, 0x7C, 0x25, 0x54, 0x7F, 0x54, 0xA5, 0x54, 0x25, 0x54, 0x25, 0x54, 0x25, 0x54, 0x25, 0x5C, 0x3D, 0x10, 0x25, 0x14, 0x01, 0xFE, 0x00, 0x00, 0x04, 0x00, 0x04, 0x20, 0x3F, 0xF0, 0x04, 0x20, 0x04, 0x20, 0x08, 0x24, 0x08, 0x24, 0x11, 0x1C, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x08, 0x40, 0x0A, 0x50, 0x7F, 0x48, 0x08, 0x48, 0x08, 0x40, 0xFF, 0xFE, 0x08, 0x40, 0x0A, 0x40, 0x7F, 0x48, 0x08, 0x48, 0x1C, 0x30, 0x1A, 0x20, 0x2A, 0x60, 0x48, 0x92, 0x89, 0x0A, 0x0A, 0x06, 0x08, 0x40, 0x08, 0x60, 0x0A, 0x58, 0x7F, 0x48, 0x08, 0x40, 0x08, 0x44, 0xFF, 0xFE, 0x02, 0x40, 0x3F, 0x48, 0x22, 0x48, 0x22, 0x30, 0x22, 0x20, 0x22, 0x60, 0x3E, 0x92, 0x21, 0x0A, 0x02, 0x06, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x81, 0x04, 0x01, 0x00, 0x11, 0x10, 0x11, 0x18, 0x11, 0x20, 0x21, 0x40, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x10, 0x0E, 0x60, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0x81, 0x14, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x40, 0x02, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x40, 0x0A, 0x50, 0x7F, 0x48, 0x08, 0x48, 0x08, 0x40, 0xFF, 0xFE, 0x10, 0x40, 0xFF, 0x40, 0x20, 0x48, 0x28, 0x48, 0x7E, 0x30, 0x08, 0x20, 0x0F, 0x60, 0xF8, 0x92, 0x09, 0x0A, 0x0A, 0x06, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x02, 0x00, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x40, 0x08, 0x40, 0x08, 0x50, 0x13, 0xF8, 0x30, 0x40, 0x50, 0x40, 0x90, 0x40, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x00, 0x00, 0x20, 0x08, 0x44, 0x7D, 0xFE, 0x49, 0x04, 0x49, 0x04, 0x49, 0x04, 0x49, 0xFC, 0x49, 0x04, 0x49, 0x04, 0x49, 0x04, 0x49, 0xFC, 0x79, 0x04, 0x49, 0x04, 0x01, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x22, 0x08, 0x2A, 0x28, 0x2F, 0xBE, 0x32, 0x48, 0xFF, 0xFE, 0x25, 0x14, 0x25, 0x14, 0x29, 0xA6, 0x33, 0xF8, 0xE2, 0x08, 0x22, 0x48, 0x22, 0x48, 0x22, 0x48, 0x20, 0xA0, 0xA3, 0x18, 0x4C, 0x04, 0x10, 0x0C, 0x7E, 0xF0, 0x10, 0x80, 0x28, 0x84, 0x7E, 0xFE, 0x08, 0x90, 0xFE, 0x90, 0x09, 0x10, 0x0A, 0x10, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x08, 0x10, 0x28, 0x50, 0x3E, 0x7C, 0x48, 0x90, 0xFF, 0xFE, 0x14, 0x28, 0x16, 0x28, 0x24, 0x4A, 0x40, 0x86, 0x1F, 0xF0, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x90, 0x0C, 0x60, 0x30, 0x18, 0x04, 0x20, 0x7E, 0x14, 0x45, 0xFE, 0x55, 0x00, 0x55, 0x10, 0x55, 0x10, 0x55, 0x14, 0x55, 0xFE, 0x55, 0x10, 0x55, 0x10, 0x55, 0x10, 0x55, 0x10, 0x55, 0x10, 0x29, 0x14, 0x45, 0xFE, 0x82, 0x00, 0x04, 0x20, 0x3E, 0x14, 0x25, 0xFE, 0x25, 0x00, 0x25, 0x10, 0x3D, 0x10, 0x25, 0x14, 0x25, 0xFE, 0x25, 0x10, 0x3D, 0x10, 0x25, 0x10, 0x25, 0x10, 0x25, 0x10, 0x45, 0x14, 0x95, 0xFE, 0x0A, 0x00, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x7F, 0xFC, 0x10, 0x80, 0x1E, 0x98, 0x22, 0xE0, 0x54, 0x84, 0x08, 0x84, 0x70, 0x7C, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x10, 0x40, 0x00, 0xA4, 0x4F, 0xFE, 0x30, 0xA0, 0x17, 0xFC, 0x04, 0xA4, 0x07, 0xFC, 0xF4, 0xA4, 0x17, 0xFC, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x28, 0x06, 0x47, 0xFC, 0x20, 0xA0, 0x20, 0xA4, 0xAF, 0xFE, 0x70, 0xA0, 0x27, 0xFC, 0x24, 0xA4, 0xFF, 0xFC, 0x24, 0xA4, 0x77, 0xFC, 0x68, 0x08, 0xA3, 0xFC, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x04, 0x40, 0x24, 0x48, 0x14, 0x50, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x22, 0x88, 0x2F, 0xE8, 0x21, 0x08, 0x21, 0x48, 0x2F, 0xE8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x23, 0xF8, 0x1A, 0x08, 0x8B, 0xF8, 0x40, 0x00, 0x4F, 0xBC, 0x14, 0xA4, 0x27, 0xBC, 0xE0, 0x40, 0x2F, 0xFE, 0x20, 0xE0, 0x21, 0x50, 0x22, 0x4E, 0x24, 0x44, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x23, 0x88, 0x25, 0x50, 0x09, 0x30, 0x30, 0x0E, 0xC7, 0x04, 0x00, 0xC0, 0x00, 0x40, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x40, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0xF8, 0x42, 0x08, 0x32, 0x08, 0x13, 0xF8, 0x80, 0x00, 0x67, 0xBC, 0x24, 0xA4, 0x0C, 0xA4, 0x17, 0xBC, 0x20, 0x40, 0xEF, 0xFE, 0x20, 0xE0, 0x21, 0x50, 0x22, 0x4E, 0x24, 0x44, 0x28, 0x40, 0x3F, 0xF8, 0x00, 0x08, 0x11, 0x10, 0x09, 0x20, 0x04, 0x40, 0x03, 0x80, 0x0D, 0x60, 0x11, 0x10, 0x7F, 0xFE, 0x91, 0x14, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x20, 0x01, 0xF0, 0x3F, 0x08, 0x10, 0x08, 0x04, 0xF8, 0x7E, 0x88, 0x44, 0x88, 0x44, 0xF8, 0x44, 0x00, 0x7D, 0xDC, 0x11, 0x54, 0x51, 0x54, 0x5D, 0xDC, 0x50, 0x20, 0x53, 0xFE, 0x50, 0x70, 0x5C, 0xA8, 0xF1, 0x2E, 0x42, 0x24, 0x00, 0x20, 0x03, 0xF8, 0x12, 0x08, 0x7A, 0x08, 0x53, 0xF8, 0x50, 0x00, 0x57, 0xBC, 0x54, 0xA4, 0x54, 0xA4, 0x57, 0xBC, 0x50, 0x40, 0x5F, 0xFE, 0x70, 0xE0, 0x51, 0x50, 0x02, 0x4E, 0x04, 0x44, 0x00, 0x40, 0x00, 0x40, 0x42, 0x40, 0x32, 0x50, 0x13, 0xF8, 0x04, 0x40, 0x00, 0x44, 0xF7, 0xFE, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0x01, 0xFE, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x04, 0x01, 0x04, 0x00, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x54, 0x40, 0x58, 0x48, 0x53, 0xFC, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x28, 0x40, 0x24, 0x40, 0x44, 0x44, 0x87, 0xFE, 0x00, 0x00, 0x10, 0xF8, 0x10, 0x88, 0x10, 0x88, 0x12, 0xF8, 0x54, 0x00, 0x59, 0xDC, 0x51, 0x54, 0x91, 0x54, 0x11, 0xDC, 0x10, 0x20, 0x13, 0xFE, 0x28, 0x70, 0x24, 0xA8, 0x45, 0x2E, 0x82, 0x24, 0x00, 0x20, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x10, 0x00, 0x13, 0xF8, 0x11, 0x10, 0x10, 0xA0, 0xFC, 0x40, 0x10, 0xA0, 0x15, 0x10, 0x1A, 0x4E, 0x35, 0xF4, 0xD0, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x50, 0x40, 0x20, 0x40, 0x01, 0x04, 0x7F, 0x84, 0x41, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x04, 0x14, 0x04, 0x12, 0x04, 0x21, 0x14, 0xC1, 0x08, 0x40, 0x00, 0x33, 0xF8, 0x11, 0x10, 0x00, 0xA0, 0x80, 0x40, 0x60, 0xA0, 0x21, 0x10, 0x0A, 0x4E, 0x15, 0xF4, 0x20, 0x40, 0xE0, 0x40, 0x27, 0xFC, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x04, 0x20, 0x7E, 0x28, 0x44, 0x24, 0x54, 0x20, 0x57, 0xFE, 0x54, 0xA0, 0x54, 0xA0, 0x54, 0x94, 0x57, 0xF4, 0x54, 0x98, 0x54, 0x98, 0x54, 0x90, 0x29, 0x28, 0x25, 0x2A, 0x42, 0x4A, 0x84, 0x86, 0x08, 0x00, 0x08, 0x08, 0x0F, 0xFC, 0x14, 0x00, 0x24, 0x20, 0x47, 0xF0, 0x04, 0x00, 0x04, 0x20, 0x07, 0xF0, 0x04, 0x00, 0x04, 0x00, 0x52, 0x04, 0x51, 0x92, 0x90, 0x92, 0x0F, 0xF0, 0x00, 0x00, 0x22, 0x08, 0x21, 0x10, 0x20, 0xA0, 0x20, 0x04, 0x27, 0xFE, 0xFC, 0x44, 0x25, 0x54, 0x24, 0x44, 0x27, 0xFC, 0x20, 0x08, 0x3B, 0xFC, 0xE2, 0x08, 0x43, 0xF8, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x12, 0x08, 0x11, 0x10, 0x10, 0xA0, 0x10, 0x04, 0x5F, 0xFE, 0x54, 0x44, 0x55, 0x54, 0x94, 0x44, 0x17, 0xFC, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x10, 0x08, 0x20, 0x04, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x29, 0x28, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x01, 0x04, 0x7C, 0x88, 0x44, 0x50, 0x54, 0x04, 0x55, 0xFE, 0x55, 0x24, 0x55, 0xAC, 0x55, 0x24, 0x55, 0xFC, 0x54, 0x08, 0x54, 0xFC, 0x54, 0x88, 0x20, 0xF8, 0x28, 0x88, 0x44, 0xF8, 0x80, 0x88, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x0A, 0x40, 0xFF, 0x40, 0x08, 0x40, 0x0A, 0x40, 0x0C, 0x40, 0x38, 0x40, 0xC8, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x42, 0x08, 0x42, 0x28, 0x3E, 0x10, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x48, 0x4F, 0xFC, 0x48, 0xE0, 0x49, 0x50, 0x4A, 0x4E, 0x4C, 0x44, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x7A, 0x08, 0x4B, 0xF8, 0x00, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0x48, 0x17, 0xFC, 0x80, 0xE0, 0x61, 0x50, 0x22, 0x4E, 0x0C, 0x44, 0x13, 0xF8, 0x22, 0x08, 0xE3, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x20, 0x00, 0x2F, 0xFE, 0x20, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0xFF, 0x40, 0x08, 0x40, 0x18, 0x40, 0x1C, 0x40, 0x2A, 0x40, 0x28, 0x40, 0x48, 0x40, 0x08, 0x40, 0x08, 0x42, 0x08, 0x42, 0x08, 0x3E, 0x08, 0x00, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0xFF, 0x40, 0x20, 0x40, 0x28, 0x40, 0x4A, 0x40, 0x7F, 0x40, 0x08, 0x40, 0x08, 0x40, 0x0F, 0x40, 0xF8, 0x40, 0x48, 0x42, 0x08, 0x42, 0x08, 0x3E, 0x08, 0x00, 0x20, 0x44, 0x27, 0xE4, 0x3C, 0x44, 0x45, 0x54, 0x85, 0x54, 0x7D, 0x54, 0x25, 0x54, 0x25, 0x54, 0xFD, 0x54, 0x25, 0x54, 0x25, 0x54, 0x21, 0x14, 0x2A, 0x84, 0x32, 0x44, 0x24, 0x54, 0x08, 0x08, 0x20, 0x04, 0x1B, 0xFE, 0x48, 0x04, 0x40, 0x24, 0x4F, 0xF4, 0x49, 0x24, 0x49, 0x24, 0x4F, 0xE4, 0x49, 0x24, 0x49, 0x24, 0x4F, 0xE4, 0x49, 0x24, 0x41, 0x04, 0x41, 0x04, 0x41, 0x14, 0x40, 0x08, 0x08, 0x0C, 0x7C, 0x30, 0x4B, 0xC0, 0x48, 0x80, 0x48, 0x40, 0x78, 0x40, 0x4B, 0xF8, 0x48, 0x10, 0x48, 0x20, 0x78, 0x40, 0x48, 0x80, 0x49, 0x00, 0x4E, 0x00, 0x7D, 0x06, 0x48, 0xFC, 0x00, 0x00, 0x20, 0x04, 0x27, 0xBE, 0x24, 0xA4, 0x24, 0xA4, 0xFC, 0xA4, 0x24, 0xA4, 0x74, 0xA4, 0x6F, 0xFE, 0xA4, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x29, 0xA4, 0x30, 0x54, 0x20, 0x88, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFE, 0x12, 0x8A, 0xFD, 0x04, 0x10, 0x40, 0x38, 0xFE, 0x35, 0x80, 0x52, 0x88, 0x54, 0xFC, 0x90, 0x80, 0x10, 0x84, 0x10, 0xFE, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x01, 0x00, 0x09, 0x00, 0x7D, 0x04, 0x49, 0xFE, 0x4A, 0x80, 0x4A, 0x80, 0x4C, 0x88, 0x48, 0xFC, 0x48, 0x80, 0x48, 0x80, 0x48, 0x84, 0x78, 0xFE, 0x48, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x08, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x12, 0x00, 0x12, 0x00, 0x22, 0x10, 0x43, 0xF8, 0x82, 0x00, 0x02, 0x00, 0x02, 0x08, 0x03, 0xFC, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0x15, 0xFE, 0x5A, 0x80, 0x52, 0x80, 0x54, 0x88, 0x90, 0xFC, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x28, 0xFE, 0x24, 0x80, 0x44, 0x80, 0x80, 0x80, 0x00, 0x80, 0x01, 0x00, 0x41, 0x00, 0x31, 0x04, 0x11, 0xFE, 0x02, 0x80, 0x02, 0x80, 0xF4, 0x88, 0x10, 0xFC, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0x14, 0x80, 0x18, 0x80, 0x10, 0x80, 0x00, 0x80, 0x10, 0x80, 0x10, 0x44, 0x17, 0xFE, 0x11, 0x10, 0xF8, 0xA4, 0x17, 0xFE, 0x14, 0x44, 0x1C, 0x44, 0x37, 0xFC, 0xD4, 0x44, 0x15, 0xF4, 0x15, 0x14, 0x15, 0x14, 0x15, 0xF4, 0x55, 0x14, 0x24, 0x08, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x1C, 0x70, 0xE0, 0x0E, 0x1F, 0xF0, 0x02, 0x00, 0x04, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x20, 0x18, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x34, 0x03, 0xC0, 0x3E, 0x00, 0x02, 0x08, 0x03, 0xFC, 0x7E, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0xFE, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x94, 0x14, 0x04, 0x00, 0x0B, 0xFC, 0x12, 0x00, 0x22, 0x20, 0x43, 0xF0, 0x02, 0x00, 0x02, 0x10, 0x03, 0xF8, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x08, 0x40, 0x0F, 0xFC, 0x08, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x3F, 0xFE, 0x50, 0x08, 0x93, 0xFC, 0x12, 0x08, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x10, 0xB0, 0x11, 0x08, 0x16, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0xBF, 0xFC, 0x04, 0x40, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x3F, 0xF8, 0xC5, 0x46, 0x09, 0x30, 0x15, 0x10, 0x02, 0x00, 0x08, 0x80, 0x7C, 0xF8, 0x49, 0x10, 0x4B, 0xFE, 0x4A, 0x88, 0x7B, 0x24, 0x4B, 0xFE, 0x4A, 0x00, 0x4A, 0xFC, 0x7A, 0x00, 0x4A, 0xFC, 0x4A, 0x00, 0x4A, 0xFC, 0x7A, 0x84, 0x44, 0xFC, 0x08, 0x84, 0x04, 0x40, 0x0E, 0x40, 0xF0, 0x40, 0x10, 0x48, 0x14, 0x7C, 0x1E, 0x40, 0x70, 0x40, 0x14, 0x48, 0x1F, 0xFC, 0xF1, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0xFA, 0x11, 0x0A, 0x0F, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x1F, 0xF0, 0x20, 0x44, 0x7F, 0xFE, 0xA5, 0x10, 0x28, 0x88, 0x3F, 0xFE, 0x20, 0x00, 0x27, 0xF8, 0x20, 0x00, 0x27, 0xF8, 0x20, 0x08, 0x47, 0xFC, 0x44, 0x08, 0x87, 0xF8, 0x04, 0x08, 0x08, 0x20, 0x08, 0x20, 0x49, 0x24, 0x2A, 0x3E, 0x08, 0x20, 0xFF, 0x20, 0x08, 0x20, 0x18, 0x24, 0x1D, 0xFE, 0x2B, 0x04, 0x29, 0x04, 0x49, 0x04, 0x89, 0x04, 0x09, 0xFC, 0x09, 0x04, 0x08, 0x00, 0x00, 0x80, 0x40, 0x80, 0x30, 0x84, 0x10, 0xFE, 0x80, 0x80, 0x60, 0x80, 0x20, 0x88, 0x0F, 0xFC, 0x14, 0x08, 0x24, 0x08, 0xE4, 0x08, 0x24, 0x08, 0x24, 0x08, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x02, 0x40, 0x02, 0x20, 0x03, 0xF8, 0x7E, 0x00, 0x03, 0xFC, 0x7E, 0x20, 0x01, 0x40, 0x01, 0x82, 0x0E, 0x62, 0x70, 0x1E, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x10, 0x1C, 0x14, 0xE0, 0xFE, 0x80, 0x20, 0x80, 0x28, 0x84, 0x48, 0xFE, 0x7E, 0x90, 0x08, 0x90, 0x08, 0x90, 0x0E, 0x90, 0xF8, 0x90, 0x49, 0x10, 0x09, 0x10, 0x0A, 0x10, 0x08, 0x10, 0x20, 0x04, 0x23, 0xFE, 0x2A, 0x04, 0xFF, 0xFC, 0x42, 0x50, 0x52, 0x50, 0x93, 0xFC, 0xFE, 0x50, 0x12, 0x54, 0x13, 0xFE, 0x1E, 0xA4, 0xF2, 0xA8, 0x54, 0x90, 0x14, 0x88, 0x18, 0xCE, 0x10, 0x84, 0x01, 0x00, 0x21, 0x08, 0x3F, 0xF8, 0x10, 0x00, 0x14, 0x1C, 0xFE, 0xE0, 0x20, 0x80, 0x48, 0x84, 0x7E, 0xFE, 0x08, 0x90, 0x0E, 0x90, 0xF8, 0x90, 0x49, 0x10, 0x09, 0x10, 0x0A, 0x10, 0x08, 0x10, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x22, 0x20, 0x22, 0x20, 0x2F, 0xF8, 0x22, 0x20, 0x22, 0x24, 0x3F, 0xFE, 0x24, 0x88, 0x24, 0x50, 0x24, 0x30, 0x45, 0x0E, 0x86, 0x04, 0x04, 0x00, 0x08, 0x20, 0xFF, 0xFE, 0x08, 0x20, 0xFE, 0x90, 0x28, 0x90, 0x29, 0xFE, 0x7E, 0x90, 0x54, 0xFC, 0x54, 0x90, 0x54, 0xFC, 0x6C, 0x90, 0x44, 0xFE, 0x7C, 0x00, 0x45, 0x54, 0x7D, 0x52, 0x46, 0x02, 0x10, 0x80, 0x10, 0x90, 0x10, 0x88, 0x10, 0x80, 0xFC, 0xF8, 0x13, 0x80, 0x30, 0x88, 0x38, 0xFC, 0x57, 0x80, 0x50, 0x48, 0x10, 0x50, 0x10, 0x20, 0x10, 0x60, 0x11, 0x92, 0x16, 0x0A, 0x10, 0x06, 0x02, 0x00, 0x02, 0x00, 0x02, 0x08, 0x03, 0xFC, 0x02, 0x00, 0x02, 0x00, 0x02, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x3F, 0xF0, 0x20, 0x10, 0x10, 0x40, 0x10, 0x50, 0x12, 0x48, 0x1F, 0x48, 0x10, 0x7E, 0x13, 0xC0, 0x10, 0x40, 0x7E, 0x40, 0x42, 0x48, 0x42, 0x28, 0x42, 0x30, 0x42, 0x20, 0x42, 0x50, 0x7E, 0x92, 0x41, 0x0A, 0x02, 0x06, 0x00, 0x40, 0x20, 0x40, 0x10, 0x44, 0x10, 0x7E, 0xFE, 0x40, 0x00, 0x40, 0x44, 0x40, 0x44, 0x44, 0x25, 0xFE, 0x25, 0x04, 0x29, 0x04, 0x09, 0x04, 0x1F, 0x04, 0xE1, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x01, 0x10, 0x41, 0x10, 0x37, 0xFC, 0x11, 0x10, 0x81, 0xF0, 0x61, 0x10, 0x21, 0xF0, 0x09, 0x10, 0x11, 0x14, 0x2F, 0xFE, 0xE4, 0xA0, 0x25, 0x18, 0x26, 0x08, 0x24, 0x00, 0x27, 0xFC, 0x20, 0x00, 0x10, 0x40, 0x10, 0x20, 0x23, 0xFE, 0x22, 0x02, 0x44, 0x04, 0xF8, 0x00, 0x13, 0xFE, 0x20, 0x20, 0x40, 0xA8, 0xFC, 0xBC, 0x40, 0xA0, 0x01, 0x20, 0x1D, 0xA0, 0xE2, 0x66, 0x44, 0x1C, 0x00, 0x00, 0x10, 0x48, 0x17, 0xFC, 0x11, 0x10, 0x10, 0xA4, 0xFF, 0xFE, 0x10, 0x08, 0x33, 0xFC, 0x3A, 0x08, 0x57, 0xF8, 0x52, 0x08, 0x93, 0xF8, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x01, 0x00, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x04, 0x7F, 0xC4, 0x11, 0x08, 0x0A, 0x10, 0xFF, 0xE0, 0x00, 0x84, 0x3F, 0xC4, 0x20, 0x88, 0x3F, 0x90, 0x20, 0xA2, 0x3F, 0x82, 0x04, 0x04, 0xFF, 0xE8, 0x04, 0x10, 0x04, 0x20, 0x04, 0xC0, 0x00, 0x40, 0x47, 0xFC, 0x31, 0x10, 0x10, 0xA4, 0x8F, 0xFE, 0x60, 0x08, 0x23, 0xFC, 0x0A, 0x08, 0x13, 0xF8, 0x22, 0x08, 0xE3, 0xF8, 0x20, 0x40, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x09, 0x00, 0xFD, 0x08, 0x09, 0x08, 0x09, 0x10, 0x09, 0x20, 0x79, 0x40, 0x41, 0x04, 0x47, 0xFE, 0x41, 0x40, 0x79, 0x40, 0x09, 0x20, 0x09, 0x20, 0x09, 0x10, 0x09, 0x4E, 0x51, 0x84, 0x21, 0x00, 0x11, 0x10, 0x09, 0x20, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x38, 0x7F, 0xC0, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x40, 0x40, 0x2F, 0x40, 0x21, 0x44, 0x01, 0x44, 0x81, 0x48, 0x4F, 0x50, 0x48, 0x44, 0x08, 0xFE, 0x18, 0x50, 0x2F, 0x50, 0xE1, 0x50, 0x21, 0x48, 0x21, 0x48, 0x21, 0x44, 0x2A, 0x62, 0x24, 0x40, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0xFF, 0xFE, 0x10, 0x20, 0x31, 0x20, 0x39, 0x20, 0x54, 0xA0, 0x50, 0xA0, 0x90, 0xA0, 0x10, 0x40, 0x10, 0x60, 0x10, 0x90, 0x11, 0x0E, 0x16, 0x04, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x84, 0xFF, 0xFE, 0x00, 0x80, 0x08, 0x80, 0x08, 0x80, 0x04, 0x80, 0x04, 0x80, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x60, 0x18, 0x1E, 0xE0, 0x04, 0x10, 0x80, 0x10, 0x84, 0x14, 0x84, 0x7E, 0x88, 0x54, 0x90, 0x54, 0xA0, 0x54, 0x84, 0x57, 0xFE, 0x54, 0xA0, 0x54, 0xA0, 0x54, 0x90, 0x5C, 0x90, 0x10, 0x88, 0x10, 0x8E, 0x10, 0xC4, 0x10, 0x80, 0x04, 0x80, 0x7E, 0x84, 0x44, 0x84, 0x54, 0x88, 0x54, 0x90, 0x54, 0xA0, 0x54, 0x84, 0x57, 0xFE, 0x54, 0xA0, 0x54, 0xA0, 0x54, 0x90, 0x54, 0x90, 0x10, 0x88, 0x28, 0x8E, 0x44, 0xC4, 0x80, 0x80, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x24, 0x17, 0xFE, 0x30, 0x20, 0x51, 0x20, 0x91, 0x20, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0x40, 0x10, 0x60, 0x10, 0x90, 0x11, 0x0E, 0x16, 0x04, 0x04, 0x80, 0x3E, 0x84, 0x24, 0x84, 0x24, 0x88, 0x24, 0x90, 0x3C, 0xA0, 0x24, 0x84, 0x27, 0xFE, 0x24, 0xA0, 0x3C, 0xA0, 0x24, 0x90, 0x24, 0x90, 0x24, 0x88, 0x44, 0x8E, 0x94, 0xC4, 0x08, 0x80, 0x00, 0x80, 0x1F, 0xFE, 0x10, 0x40, 0x97, 0xFC, 0x51, 0x10, 0x5F, 0xFE, 0x10, 0x00, 0x17, 0xFC, 0x34, 0x04, 0x57, 0xFC, 0x94, 0x04, 0x17, 0xFC, 0x20, 0x40, 0x2F, 0xFE, 0x40, 0x40, 0x00, 0x40, 0x00, 0x40, 0x7B, 0xF8, 0x49, 0x10, 0x50, 0xA4, 0x57, 0xFE, 0x60, 0x08, 0x53, 0xFC, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x6B, 0xF8, 0x50, 0x40, 0x4F, 0xFE, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x84, 0x10, 0x84, 0xFC, 0x84, 0x10, 0x84, 0x15, 0x14, 0x19, 0x08, 0x32, 0x04, 0xD5, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x51, 0xFC, 0x21, 0x04, 0x00, 0x04, 0x0B, 0xFE, 0x7C, 0x84, 0x48, 0x84, 0x48, 0x84, 0x48, 0x84, 0x49, 0x14, 0x79, 0x08, 0x4A, 0x04, 0x4D, 0xFE, 0x49, 0x04, 0x49, 0x04, 0x79, 0x04, 0x49, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x10, 0x80, 0x10, 0xA0, 0x10, 0x90, 0x10, 0x84, 0xFC, 0x9E, 0x13, 0xE0, 0x10, 0x80, 0x1C, 0x88, 0x30, 0x50, 0xD0, 0x60, 0x10, 0x40, 0x10, 0xC0, 0x11, 0x20, 0x12, 0x12, 0x54, 0x0A, 0x20, 0x06, 0x40, 0x04, 0x33, 0xFE, 0x10, 0x84, 0x00, 0x84, 0x80, 0x84, 0x60, 0x84, 0x21, 0x14, 0x09, 0x08, 0x12, 0x04, 0x25, 0xFE, 0xE1, 0x04, 0x21, 0x04, 0x21, 0x04, 0x21, 0x04, 0x21, 0xFC, 0x21, 0x04, 0x08, 0x00, 0x08, 0x08, 0x08, 0x88, 0x7E, 0x88, 0x08, 0x50, 0x0A, 0x50, 0xFF, 0x20, 0x08, 0x20, 0x28, 0x50, 0x2E, 0x48, 0x28, 0x8C, 0x39, 0x04, 0x48, 0x00, 0x44, 0x06, 0x83, 0xFC, 0x00, 0x00, 0x00, 0x04, 0x7D, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x44, 0x84, 0x44, 0x94, 0x7D, 0x08, 0x44, 0xFC, 0x44, 0x84, 0x44, 0x84, 0x44, 0x84, 0x7C, 0xFC, 0x00, 0x00, 0x24, 0x88, 0x62, 0x46, 0x82, 0x42, 0x7F, 0xFC, 0x44, 0x44, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x24, 0x90, 0x14, 0xA0, 0x14, 0xC0, 0x04, 0x80, 0x04, 0xC0, 0x1C, 0xB0, 0x64, 0x90, 0x04, 0x80, 0x08, 0x80, 0x08, 0x82, 0x10, 0x82, 0x20, 0x7E, 0x40, 0x00, 0x08, 0x44, 0x3E, 0x7E, 0x22, 0xA8, 0x3E, 0x10, 0x21, 0x6E, 0x5F, 0xF0, 0x81, 0x14, 0xFF, 0xFE, 0x01, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x08, 0x28, 0x08, 0x10, 0x10, 0x08, 0x3F, 0xFC, 0x50, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x1F, 0xF8, 0x10, 0x08, 0x00, 0x40, 0x40, 0x20, 0x27, 0xFC, 0x24, 0x90, 0x04, 0x94, 0x07, 0xFE, 0xE4, 0x90, 0x24, 0x90, 0x24, 0xF0, 0x24, 0x00, 0x25, 0x54, 0x29, 0x52, 0x32, 0x52, 0x50, 0x00, 0x88, 0x06, 0x07, 0xFC, 0x10, 0x08, 0x10, 0x3C, 0x11, 0xC0, 0x11, 0x00, 0xFD, 0x00, 0x11, 0x04, 0x15, 0xFE, 0x19, 0x10, 0x31, 0x10, 0xD1, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x10, 0x54, 0x10, 0x20, 0x10, 0x08, 0x0C, 0x08, 0xF0, 0xFE, 0x80, 0x08, 0x84, 0x0E, 0xFE, 0x78, 0x90, 0x09, 0x10, 0x09, 0x10, 0x2A, 0x10, 0x10, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x08, 0x40, 0x08, 0x48, 0xFF, 0xFC, 0x08, 0x48, 0x0E, 0xC8, 0x78, 0x48, 0x08, 0x6A, 0x29, 0x8A, 0x11, 0x06, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0x7F, 0xFC, 0x00, 0x04, 0x22, 0x20, 0x21, 0x20, 0x27, 0xE4, 0xFA, 0x3E, 0x24, 0xC4, 0x57, 0xA4, 0x50, 0xA4, 0xFF, 0xA4, 0x14, 0xA4, 0x17, 0xA8, 0x1C, 0x90, 0xF7, 0x90, 0x54, 0xA8, 0x14, 0xA8, 0x14, 0xC6, 0x15, 0x84, 0x02, 0x00, 0x02, 0x10, 0x3F, 0xE0, 0x02, 0x40, 0x02, 0x84, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x10, 0x0F, 0xF8, 0x18, 0x10, 0x28, 0x10, 0x4F, 0xF0, 0x88, 0x10, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x10, 0x40, 0x10, 0x44, 0x13, 0xF8, 0x1C, 0x50, 0x20, 0x64, 0x23, 0xFE, 0x7C, 0x80, 0x91, 0x08, 0x13, 0xFC, 0xFD, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x15, 0x08, 0x19, 0x08, 0x11, 0xF8, 0x01, 0x08, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x00, 0x88, 0x3F, 0xFC, 0x22, 0x20, 0x22, 0x28, 0x3F, 0xFC, 0x22, 0x20, 0x22, 0x20, 0x23, 0xE0, 0x40, 0x00, 0x49, 0x24, 0x89, 0x22, 0x10, 0x02, 0x00, 0x80, 0x40, 0x40, 0x30, 0x48, 0x17, 0xFC, 0x00, 0x10, 0x02, 0x10, 0xF1, 0x20, 0x10, 0xA0, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x10, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x02, 0x00, 0x42, 0x0C, 0x32, 0x70, 0x12, 0x40, 0x8F, 0xC0, 0x62, 0x44, 0x22, 0x7E, 0x0A, 0xC8, 0x13, 0x48, 0x2E, 0x48, 0xE2, 0x48, 0x22, 0x48, 0x22, 0x48, 0x22, 0x88, 0x2B, 0x08, 0x24, 0x08, 0x00, 0x40, 0x08, 0x40, 0xFC, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x2E, 0x14, 0x44, 0x7D, 0x80, 0x10, 0x10, 0x10, 0x60, 0x11, 0x84, 0x1C, 0x08, 0xF0, 0x10, 0x40, 0x20, 0x00, 0xC0, 0x03, 0x00, 0x22, 0x08, 0x22, 0x08, 0x7F, 0x48, 0x22, 0x28, 0x3E, 0x08, 0x22, 0x88, 0x3E, 0x48, 0x22, 0x08, 0x22, 0x08, 0xFF, 0x8E, 0x40, 0xF8, 0x54, 0x08, 0x62, 0x08, 0x40, 0x08, 0x7F, 0x08, 0x00, 0x08, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x14, 0xFF, 0xFE, 0x08, 0x20, 0x10, 0x18, 0x20, 0x08, 0x02, 0x04, 0xFF, 0xFE, 0x14, 0x40, 0x15, 0x40, 0x7F, 0xC8, 0x55, 0x7C, 0x55, 0x48, 0x7F, 0x48, 0x49, 0x68, 0x08, 0x58, 0x7F, 0x58, 0x08, 0x88, 0x08, 0x88, 0x0F, 0xAA, 0x78, 0xCA, 0x20, 0x06, 0x04, 0x40, 0xFE, 0x40, 0x10, 0x44, 0x10, 0x7E, 0x20, 0x40, 0x24, 0x40, 0x7E, 0x44, 0xA5, 0xFE, 0x25, 0x04, 0x25, 0x04, 0x25, 0x04, 0x25, 0x04, 0x3D, 0x04, 0x25, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x08, 0x40, 0xFC, 0x48, 0x23, 0xFC, 0x20, 0x40, 0x4B, 0xF8, 0xFC, 0x80, 0x27, 0xFE, 0x21, 0x10, 0xFA, 0x0E, 0x25, 0xF4, 0x20, 0x40, 0x3B, 0xF8, 0xE1, 0x50, 0x42, 0x4C, 0x04, 0x44, 0x00, 0x40, 0x01, 0x00, 0x01, 0x08, 0x01, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0x40, 0x04, 0x30, 0x18, 0x08, 0x60, 0x04, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x1E, 0x20, 0x20, 0x20, 0x20, 0x24, 0x7D, 0xFE, 0x90, 0x20, 0x10, 0x20, 0xFE, 0x20, 0x10, 0x20, 0x12, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x00, 0x20, 0x08, 0x40, 0x08, 0x44, 0x08, 0x7E, 0x10, 0x40, 0x10, 0x44, 0x37, 0xFE, 0x54, 0x04, 0x94, 0x44, 0x14, 0x44, 0x14, 0x44, 0x14, 0x44, 0x14, 0x44, 0x10, 0x90, 0x11, 0x0C, 0x16, 0x06, 0x18, 0x02, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x13, 0xFC, 0xFE, 0x44, 0x14, 0x48, 0x30, 0x40, 0x38, 0x60, 0x54, 0x60, 0x50, 0xA0, 0x90, 0xA0, 0x10, 0xA0, 0x11, 0x22, 0x11, 0x22, 0x12, 0x1E, 0x14, 0x00, 0x01, 0x00, 0x00, 0x88, 0x1F, 0xFC, 0x10, 0x80, 0x90, 0x80, 0x51, 0x40, 0x52, 0x30, 0x14, 0x8E, 0x39, 0x24, 0x52, 0x40, 0xD4, 0x80, 0x11, 0x10, 0x22, 0x20, 0x20, 0xC0, 0x43, 0x00, 0x0C, 0x00, 0x00, 0x40, 0x40, 0x40, 0x20, 0xA0, 0x21, 0x20, 0x02, 0x10, 0x04, 0x2E, 0xE8, 0x44, 0x20, 0x90, 0x23, 0x20, 0x20, 0x40, 0x20, 0x88, 0x23, 0x10, 0x28, 0x20, 0x30, 0xC0, 0x23, 0x00, 0x0C, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x3F, 0xF8, 0x20, 0x00, 0x2F, 0xF0, 0x20, 0x00, 0x3F, 0xF8, 0x2A, 0x10, 0x29, 0x20, 0x48, 0xC0, 0x8C, 0x30, 0x08, 0x0C, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x00, 0x12, 0x08, 0xFF, 0xFC, 0x12, 0x00, 0x16, 0x04, 0x1B, 0xFE, 0x32, 0xA0, 0xD2, 0xA2, 0x12, 0xA4, 0x12, 0x98, 0x14, 0x90, 0x14, 0x8E, 0x58, 0xC4, 0x20, 0x80, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x1C, 0x20, 0x21, 0xFC, 0x21, 0x04, 0x7D, 0xFC, 0x91, 0x04, 0x11, 0xFC, 0xFD, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x17, 0xFE, 0x18, 0x88, 0x11, 0x06, 0x02, 0x02, 0x00, 0x80, 0x78, 0x84, 0x4F, 0xFE, 0x50, 0x80, 0x50, 0xA0, 0x61, 0x20, 0x51, 0x28, 0x4B, 0xFC, 0x48, 0x20, 0x48, 0x20, 0x68, 0x24, 0x57, 0xFE, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x1F, 0xE0, 0x00, 0x48, 0x3D, 0x98, 0x05, 0x20, 0x05, 0x40, 0x09, 0x30, 0x35, 0x0E, 0xC2, 0x04, 0x0F, 0xE0, 0x20, 0x10, 0x24, 0x8C, 0x42, 0x44, 0x10, 0x80, 0x10, 0x80, 0x11, 0xF8, 0x12, 0x10, 0xFC, 0x20, 0x13, 0xF8, 0x14, 0x48, 0x18, 0x48, 0x37, 0xFE, 0xD0, 0x48, 0x10, 0x48, 0x13, 0xF8, 0x10, 0x48, 0x10, 0x40, 0x51, 0x40, 0x20, 0x80, 0x08, 0x80, 0x7C, 0x80, 0x49, 0xF8, 0x4A, 0x10, 0x48, 0x20, 0x7B, 0xF8, 0x48, 0x48, 0x48, 0x48, 0x4F, 0xFE, 0x78, 0x48, 0x48, 0x48, 0x4B, 0xF8, 0x48, 0x48, 0x78, 0x40, 0x49, 0x40, 0x00, 0x80, 0x08, 0x08, 0x0B, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x20, 0x40, 0x48, 0x40, 0x88, 0x48, 0x12, 0x7C, 0x32, 0x40, 0x52, 0x40, 0x92, 0x40, 0x12, 0x40, 0x12, 0x40, 0x12, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x02, 0x80, 0x44, 0x80, 0x29, 0xF8, 0x12, 0x10, 0x28, 0x20, 0x4B, 0xF8, 0x88, 0x48, 0x08, 0x48, 0x1F, 0xFE, 0x28, 0x48, 0x48, 0x48, 0x8B, 0xF8, 0x08, 0x48, 0x08, 0x40, 0x29, 0x40, 0x10, 0x80, 0x08, 0x00, 0x0F, 0xE0, 0x08, 0x40, 0x10, 0x90, 0x3F, 0xF8, 0x41, 0x10, 0x01, 0x14, 0xFF, 0xFE, 0x01, 0x10, 0x01, 0x10, 0x3F, 0xF0, 0x01, 0x10, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x58, 0x40, 0x54, 0x40, 0x50, 0x48, 0x92, 0x7C, 0x12, 0x40, 0x12, 0x40, 0x12, 0x40, 0x12, 0x40, 0x12, 0x40, 0x12, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x08, 0x40, 0x7F, 0x44, 0x08, 0x7E, 0x7F, 0x88, 0x49, 0x48, 0x7F, 0x50, 0x1C, 0x20, 0x2A, 0x50, 0xC8, 0x8E, 0x3F, 0xF8, 0x01, 0x00, 0x09, 0xF0, 0x09, 0x00, 0x09, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x10, 0x10, 0x20, 0xFC, 0x44, 0x13, 0x48, 0x15, 0x70, 0x19, 0x50, 0x31, 0x50, 0xD2, 0x4E, 0x14, 0x44, 0x10, 0x40, 0x11, 0x40, 0x10, 0x84, 0x5F, 0xFE, 0x20, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x10, 0x11, 0xF8, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x04, 0x40, 0xFE, 0x44, 0x10, 0xFE, 0x10, 0x88, 0x11, 0x08, 0x5E, 0x88, 0x50, 0x88, 0x50, 0x50, 0x50, 0x50, 0x50, 0x20, 0x5E, 0x50, 0xF0, 0x50, 0x40, 0x88, 0x01, 0x0E, 0x02, 0x04, 0x10, 0x20, 0x10, 0x24, 0x10, 0x3E, 0x7C, 0x20, 0x55, 0xFC, 0x55, 0x04, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x5D, 0x24, 0x11, 0x44, 0x10, 0x58, 0x10, 0x84, 0x13, 0x02, 0x00, 0x80, 0x00, 0x48, 0x1F, 0xFC, 0x10, 0x00, 0x90, 0x08, 0x57, 0xFC, 0x50, 0x40, 0x10, 0x40, 0x32, 0x48, 0x52, 0x7C, 0xD2, 0x40, 0x12, 0x40, 0x22, 0x40, 0x22, 0x44, 0x5F, 0xFE, 0x00, 0x00, 0x41, 0x00, 0x22, 0x7C, 0x14, 0x44, 0x7F, 0x44, 0x08, 0x48, 0x08, 0x48, 0x09, 0x50, 0xFF, 0xC8, 0x08, 0x44, 0x08, 0x42, 0x08, 0x42, 0x14, 0x62, 0x12, 0x54, 0x22, 0x48, 0x40, 0x40, 0x00, 0x40, 0x20, 0x04, 0x17, 0xFE, 0x10, 0x20, 0x00, 0x20, 0x00, 0x20, 0xF0, 0x20, 0x11, 0x24, 0x11, 0x3E, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x15, 0x20, 0x19, 0x24, 0x17, 0xFE, 0x00, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x02, 0x00, 0x01, 0x00, 0x3F, 0xF0, 0x00, 0x20, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x60, 0x00, 0x90, 0x06, 0x0F, 0xFC, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0xFC, 0x20, 0x10, 0x20, 0x31, 0xFC, 0x39, 0x04, 0x54, 0x88, 0x50, 0x88, 0x90, 0x50, 0x10, 0x20, 0x10, 0x50, 0x10, 0x88, 0x11, 0x0E, 0x16, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x3F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x30, 0x1E, 0xC0, 0x04, 0x00, 0x20, 0x08, 0x20, 0x7C, 0x24, 0x4B, 0xFE, 0x48, 0x20, 0x48, 0x20, 0x49, 0xFC, 0x49, 0x04, 0x48, 0x88, 0x48, 0x88, 0x48, 0x50, 0x78, 0x20, 0x48, 0x50, 0x00, 0x88, 0x01, 0x0E, 0x06, 0x04, 0x22, 0x00, 0x22, 0x00, 0x22, 0x04, 0xFB, 0xFE, 0xAD, 0x24, 0xA9, 0x24, 0xA9, 0x24, 0xAF, 0xE4, 0xF9, 0x24, 0xA1, 0x24, 0x29, 0x24, 0x39, 0x24, 0xEA, 0xBC, 0x42, 0x64, 0x04, 0x40, 0x08, 0x00, 0x20, 0x00, 0x20, 0x00, 0x22, 0x04, 0x3F, 0x7E, 0x28, 0x44, 0x48, 0x44, 0x88, 0x44, 0x09, 0x44, 0xFF, 0xC4, 0x08, 0x44, 0x08, 0x44, 0x14, 0x44, 0x12, 0x44, 0x22, 0x7C, 0x40, 0x44, 0x80, 0x00, 0x04, 0x20, 0x3E, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x3C, 0x20, 0x25, 0xFC, 0x25, 0x04, 0x24, 0x88, 0x3C, 0x88, 0x24, 0x50, 0x24, 0x20, 0x24, 0x50, 0x44, 0x88, 0x95, 0x0E, 0x0A, 0x04, 0x05, 0x00, 0x3F, 0x08, 0x25, 0x1C, 0x25, 0xE0, 0x25, 0x02, 0x3D, 0x02, 0x24, 0xFE, 0x24, 0x04, 0x25, 0xFE, 0x3D, 0x04, 0x25, 0x04, 0x25, 0xFC, 0x25, 0x04, 0x45, 0x04, 0x95, 0xFC, 0x09, 0x04, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x40, 0x80, 0x40, 0x60, 0x44, 0x27, 0xFE, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x48, 0x06, 0x07, 0xFC, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x21, 0xFE, 0x21, 0x04, 0x45, 0x04, 0xF9, 0x04, 0x11, 0x04, 0x21, 0x04, 0x41, 0xFC, 0xFD, 0x04, 0x40, 0x00, 0x00, 0x50, 0x1C, 0x48, 0xE0, 0x84, 0x41, 0x02, 0x02, 0x02, 0x04, 0x00, 0xFE, 0x04, 0x24, 0xFE, 0x24, 0x84, 0x3C, 0x84, 0x24, 0x84, 0x24, 0x84, 0x3C, 0x84, 0x24, 0xFC, 0x24, 0x84, 0x27, 0x48, 0xFC, 0x48, 0x44, 0x84, 0x04, 0x86, 0x05, 0x02, 0x04, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x14, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0xFC, 0x48, 0x13, 0xFC, 0x32, 0x08, 0x3B, 0xF8, 0x56, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x1F, 0xFE, 0x10, 0x00, 0x04, 0x20, 0xFE, 0x24, 0x13, 0xFE, 0x10, 0x20, 0x10, 0x24, 0x3D, 0xFE, 0x25, 0x04, 0x45, 0xFC, 0xA5, 0x04, 0x19, 0xFC, 0x09, 0x04, 0x11, 0xFC, 0x21, 0x04, 0x41, 0x04, 0x87, 0xFE, 0x00, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x90, 0xFF, 0xF8, 0x10, 0x90, 0x14, 0x90, 0x18, 0x90, 0x31, 0x90, 0xD0, 0x90, 0x11, 0x50, 0x11, 0x52, 0x11, 0x12, 0x12, 0x12, 0x54, 0x0E, 0x28, 0x00, 0x08, 0x40, 0x08, 0x48, 0x0F, 0xFC, 0x10, 0x40, 0x10, 0x48, 0x33, 0xFC, 0x52, 0x08, 0x93, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x1F, 0xFE, 0x10, 0x00, 0x08, 0x00, 0x08, 0x08, 0x0F, 0xFC, 0x10, 0x80, 0x11, 0x00, 0x32, 0x08, 0x57, 0xFC, 0x90, 0x44, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x15, 0x20, 0xFF, 0x24, 0x11, 0x3E, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x13, 0x20, 0x1D, 0x20, 0xF1, 0x24, 0x47, 0xFE, 0x00, 0x00, 0x11, 0x00, 0x11, 0x08, 0x11, 0x1C, 0x11, 0xE0, 0xFD, 0x02, 0x11, 0x02, 0x14, 0xFE, 0x18, 0x04, 0x31, 0xFE, 0xD1, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x51, 0xFC, 0x21, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x10, 0x11, 0xF8, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x20, 0x7E, 0x20, 0x44, 0x20, 0x44, 0x20, 0x45, 0x28, 0x7D, 0x3C, 0x11, 0x20, 0x51, 0x20, 0x5D, 0x20, 0x51, 0x20, 0x51, 0x20, 0x51, 0x20, 0x5D, 0x20, 0xF1, 0x24, 0x47, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x00, 0x04, 0x40, 0x0C, 0x20, 0x10, 0x18, 0x20, 0x0C, 0x40, 0x04, 0x20, 0x00, 0x20, 0x18, 0x21, 0xE0, 0x3E, 0x00, 0x20, 0x04, 0x20, 0x04, 0x1F, 0xFC, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x00, 0x10, 0x3C, 0x23, 0xE0, 0x22, 0x20, 0x46, 0x20, 0xFA, 0x20, 0x12, 0x28, 0x23, 0xFC, 0x42, 0x20, 0xFE, 0x20, 0x02, 0x20, 0x02, 0x20, 0x1E, 0x10, 0xE2, 0x92, 0x43, 0x0A, 0x02, 0x06, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x02, 0x00, 0x11, 0x80, 0x50, 0x84, 0x50, 0x12, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x08, 0x40, 0x08, 0x48, 0x7E, 0xFC, 0x08, 0x48, 0x0E, 0xC8, 0xF8, 0x68, 0x48, 0x8A, 0x19, 0x36, 0x3F, 0xC0, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x28, 0x80, 0x25, 0x7C, 0x20, 0x44, 0x2F, 0xC4, 0xF2, 0x48, 0x22, 0x48, 0x22, 0x50, 0x2A, 0x48, 0x3F, 0xC4, 0xE2, 0x42, 0x22, 0x42, 0x25, 0x62, 0x24, 0xD4, 0x28, 0x48, 0xB0, 0x40, 0x40, 0x40, 0x00, 0x08, 0x7F, 0xFC, 0x02, 0x00, 0x04, 0x00, 0x08, 0x20, 0x10, 0x10, 0x3F, 0xF8, 0x01, 0x08, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0xFE, 0x40, 0x10, 0x40, 0x10, 0x44, 0x20, 0xFE, 0x45, 0x08, 0xFE, 0x88, 0x10, 0x88, 0x10, 0x88, 0x7C, 0x90, 0x10, 0x50, 0x10, 0x20, 0x1E, 0x50, 0xF0, 0x88, 0x41, 0x0E, 0x06, 0x04, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x14, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x15, 0xFE, 0x7F, 0x04, 0x55, 0x04, 0x55, 0x04, 0x55, 0x04, 0x55, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x54, 0x00, 0x5C, 0x50, 0x10, 0x48, 0x10, 0x84, 0x11, 0x06, 0x12, 0x02, 0x10, 0x20, 0x10, 0x28, 0x11, 0xFC, 0x54, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x54, 0x08, 0x54, 0x08, 0x57, 0xFE, 0x54, 0x08, 0x54, 0x88, 0x54, 0x48, 0x7C, 0x48, 0x44, 0x08, 0x00, 0x28, 0x00, 0x10, 0x04, 0x04, 0x24, 0x04, 0x25, 0x04, 0x3F, 0xA4, 0x24, 0x24, 0x44, 0xA4, 0xFF, 0xE4, 0x04, 0x24, 0x3F, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0x84, 0x26, 0x84, 0x25, 0x04, 0x04, 0x14, 0x04, 0x08, 0x20, 0x00, 0x22, 0x04, 0x3F, 0x7E, 0x48, 0x44, 0x08, 0x44, 0xFF, 0xC4, 0x10, 0x44, 0x14, 0x7C, 0x22, 0x44, 0x42, 0x10, 0x9F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x08, 0x40, 0x1C, 0x40, 0xF2, 0x40, 0x12, 0x48, 0x13, 0xFC, 0xFE, 0x40, 0x14, 0x40, 0x30, 0x44, 0x3B, 0xFE, 0x54, 0x40, 0x50, 0xA0, 0x90, 0xA0, 0x11, 0x10, 0x11, 0x10, 0x12, 0x0E, 0x1C, 0x04, 0x08, 0xA0, 0x1C, 0x90, 0xF0, 0x84, 0x11, 0xFE, 0x13, 0x20, 0xFD, 0x28, 0x11, 0xFC, 0x31, 0x20, 0x39, 0x28, 0x55, 0xFC, 0x51, 0x20, 0x91, 0x20, 0x11, 0x24, 0x11, 0xFE, 0x11, 0x00, 0x11, 0x00, 0x00, 0x78, 0x3F, 0x80, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x28, 0x08, 0x28, 0x88, 0x28, 0x88, 0x28, 0x88, 0x49, 0x08, 0x42, 0x70, 0x8C, 0x0C, 0x30, 0x04, 0x04, 0x00, 0x04, 0x00, 0x0F, 0xF8, 0x11, 0x10, 0x28, 0xA0, 0x44, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x71, 0x10, 0x09, 0x30, 0x09, 0x40, 0x12, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x01, 0x00, 0x00, 0x88, 0x1F, 0xFC, 0x10, 0x80, 0x90, 0x90, 0x57, 0xF8, 0x50, 0x80, 0x10, 0x84, 0x3F, 0xFE, 0x50, 0x10, 0xD7, 0xFC, 0x12, 0x10, 0x21, 0x10, 0x21, 0x10, 0x40, 0x50, 0x00, 0x20, 0x02, 0x48, 0x42, 0x48, 0x2F, 0xFE, 0x22, 0x48, 0x80, 0x00, 0x67, 0xFE, 0x24, 0x42, 0x08, 0x44, 0x13, 0xF8, 0x22, 0x48, 0xE2, 0x48, 0x22, 0x48, 0x22, 0x48, 0x22, 0x58, 0x20, 0x40, 0x20, 0x40, 0x00, 0x80, 0x40, 0x80, 0x31, 0x00, 0x11, 0x10, 0x82, 0x08, 0x67, 0xFC, 0x20, 0x00, 0x08, 0x08, 0x13, 0xFC, 0x22, 0x08, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x88, 0x24, 0x3F, 0xF8, 0x02, 0x00, 0x04, 0x20, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x41, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00, 0x01, 0x00, 0x12, 0x00, 0x51, 0x04, 0x51, 0x12, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x1C, 0x24, 0x21, 0xFE, 0x21, 0x24, 0x7D, 0x24, 0x91, 0x24, 0x11, 0x24, 0xFD, 0xFC, 0x11, 0x24, 0x10, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x00, 0x20, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x08, 0x05, 0x18, 0x08, 0xA0, 0x18, 0x40, 0x28, 0x30, 0xCA, 0x0E, 0x0C, 0x04, 0x08, 0x00, 0x10, 0x80, 0x10, 0x80, 0x20, 0xFC, 0x21, 0x08, 0x45, 0x90, 0xFA, 0x50, 0x10, 0x20, 0x20, 0x50, 0x40, 0x88, 0xFD, 0x0E, 0x02, 0x64, 0x00, 0x10, 0x1C, 0x08, 0xE0, 0xC0, 0x40, 0x30, 0x00, 0x08, 0x08, 0x20, 0x1C, 0x20, 0xF0, 0x20, 0x10, 0x24, 0x11, 0xFE, 0xFF, 0x24, 0x11, 0x24, 0x39, 0x24, 0x35, 0x24, 0x55, 0xFC, 0x51, 0x24, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x04, 0x20, 0x3E, 0x20, 0x24, 0x20, 0x24, 0x24, 0x25, 0xFE, 0x3D, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x3D, 0xFC, 0x25, 0x24, 0x24, 0x20, 0x24, 0x20, 0x44, 0x20, 0x94, 0x20, 0x08, 0x20, 0x00, 0x38, 0x3F, 0xC0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x34, 0x44, 0x54, 0x44, 0x94, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x38, 0x30, 0x10, 0x00, 0x00, 0x08, 0x20, 0x08, 0x20, 0x14, 0x50, 0x12, 0x50, 0x22, 0x88, 0x41, 0x0E, 0x82, 0x04, 0x00, 0x00, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x12, 0x10, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x12, 0x10, 0x11, 0x10, 0x11, 0x10, 0x10, 0x10, 0x20, 0x10, 0x40, 0x50, 0x00, 0x20, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x48, 0x2F, 0xE8, 0x21, 0x08, 0x21, 0x28, 0x3F, 0xF8, 0x20, 0x48, 0x27, 0xE8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x47, 0xC8, 0x84, 0x28, 0x00, 0x10, 0x10, 0x04, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x54, 0xA4, 0x52, 0x94, 0x52, 0x94, 0x90, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x20, 0x84, 0x20, 0x84, 0x40, 0x04, 0x00, 0x04, 0x01, 0x04, 0x41, 0x04, 0x31, 0x24, 0x11, 0x24, 0x81, 0x24, 0x65, 0xB4, 0x23, 0x6C, 0x0B, 0x6C, 0x11, 0x24, 0x21, 0x24, 0xE1, 0x24, 0x21, 0x24, 0x22, 0x24, 0x22, 0x24, 0x24, 0x04, 0x20, 0x04, 0x01, 0x00, 0x41, 0x00, 0x21, 0xF8, 0x22, 0x10, 0x04, 0x20, 0x08, 0x44, 0xE7, 0xFE, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x23, 0xFC, 0x20, 0x04, 0x28, 0x04, 0x30, 0x04, 0x27, 0xFC, 0x00, 0x04, 0x09, 0x04, 0xFD, 0x3E, 0x09, 0x04, 0x09, 0x04, 0x0D, 0x44, 0x7B, 0xBC, 0x41, 0x20, 0x47, 0xE0, 0x41, 0x24, 0x79, 0x3E, 0x0B, 0x84, 0x0D, 0x44, 0x09, 0x04, 0x89, 0x04, 0x51, 0x28, 0x21, 0x10, 0x10, 0x20, 0x10, 0x20, 0x14, 0x20, 0xFE, 0x24, 0x21, 0xFE, 0x21, 0x24, 0x49, 0x24, 0x7F, 0x24, 0x09, 0xFC, 0x09, 0x24, 0x0F, 0x24, 0xF9, 0x24, 0x49, 0x24, 0x09, 0xFC, 0x09, 0x04, 0x08, 0x00, 0x04, 0x08, 0x3E, 0x08, 0x24, 0x08, 0x24, 0x08, 0x24, 0x08, 0x3D, 0xFE, 0x24, 0x08, 0x24, 0x08, 0x24, 0x88, 0x3C, 0x48, 0x24, 0x48, 0x24, 0x08, 0x24, 0x08, 0x44, 0x08, 0x94, 0x28, 0x08, 0x10, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x10, 0x1F, 0xF0, 0x00, 0x10, 0x3F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x9F, 0xF4, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x01, 0x00, 0x01, 0x00, 0x04, 0x08, 0x7E, 0xFC, 0x44, 0x88, 0x44, 0x88, 0x44, 0x88, 0x7C, 0xF8, 0x00, 0x40, 0x0F, 0xE0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x3E, 0x40, 0x00, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x10, 0x22, 0xFE, 0xC4, 0x92, 0x08, 0x94, 0x7E, 0x90, 0x02, 0xFC, 0x02, 0x84, 0x7E, 0xC4, 0x02, 0xA8, 0x02, 0xA8, 0x7F, 0x10, 0x01, 0x28, 0x02, 0x4E, 0x00, 0x84, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x81, 0x04, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x90, 0x10, 0x40, 0x20, 0x20, 0x3F, 0xFE, 0x50, 0x14, 0x9F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0x00, 0x10, 0x00, 0xFF, 0xFC, 0x12, 0x44, 0x53, 0xD4, 0x52, 0x48, 0x53, 0xD4, 0x52, 0x62, 0x57, 0xD8, 0x78, 0x60, 0x0B, 0xA4, 0x08, 0x68, 0x3B, 0xB0, 0xC8, 0x68, 0x09, 0xA6, 0x2E, 0x20, 0x10, 0x20, 0x00, 0x20, 0x09, 0x20, 0xFD, 0x28, 0x11, 0xFC, 0x11, 0x20, 0x12, 0x20, 0x7C, 0x24, 0x13, 0xFE, 0x10, 0x60, 0x10, 0x70, 0x1C, 0xB0, 0xF0, 0xA8, 0x41, 0x2E, 0x02, 0x24, 0x04, 0x20, 0x00, 0x20, 0x10, 0x20, 0x11, 0x20, 0x11, 0x28, 0x11, 0xFC, 0xFD, 0x20, 0x12, 0x20, 0x30, 0x24, 0x3B, 0xFE, 0x54, 0x60, 0x50, 0x70, 0x90, 0xB0, 0x10, 0xA8, 0x11, 0x2E, 0x12, 0x24, 0x14, 0x20, 0x10, 0x20, 0x10, 0x20, 0x11, 0x20, 0x11, 0x28, 0x11, 0xFC, 0x7D, 0x20, 0x56, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x54, 0x60, 0x7C, 0x70, 0x10, 0xB0, 0x14, 0xA8, 0x1D, 0x2E, 0xF6, 0x24, 0x44, 0x20, 0x00, 0x20, 0x01, 0x00, 0x11, 0x00, 0x11, 0x10, 0x1F, 0xF8, 0x11, 0x00, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x00, 0x05, 0x80, 0x09, 0x40, 0x11, 0x30, 0x21, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x02, 0x40, 0x44, 0x44, 0x2B, 0xF8, 0x10, 0x50, 0x28, 0x64, 0x4B, 0xFE, 0x88, 0x80, 0x09, 0x08, 0x1B, 0xFC, 0x2D, 0x08, 0x49, 0x08, 0x89, 0xF8, 0x09, 0x08, 0x09, 0x08, 0x29, 0xF8, 0x11, 0x08, 0x00, 0x40, 0x20, 0x44, 0x1B, 0xF8, 0x08, 0x50, 0x00, 0x64, 0x07, 0xFE, 0xF0, 0x80, 0x11, 0x08, 0x13, 0xFC, 0x15, 0x08, 0x19, 0x08, 0x11, 0xF8, 0x15, 0x08, 0x19, 0x08, 0x11, 0xF8, 0x01, 0x08, 0x00, 0x40, 0x42, 0x40, 0x22, 0x48, 0x23, 0xFC, 0x02, 0x40, 0x04, 0x40, 0xE0, 0x44, 0x2F, 0xFE, 0x20, 0xC0, 0x20, 0xE0, 0x21, 0x60, 0x29, 0x50, 0x32, 0x4E, 0x24, 0x44, 0x08, 0x40, 0x00, 0x40, 0x00, 0x08, 0x4F, 0xFC, 0x20, 0x80, 0x21, 0x00, 0x03, 0x88, 0x0C, 0xD8, 0xE1, 0x60, 0x22, 0x40, 0x2C, 0xE0, 0x21, 0x50, 0x22, 0x48, 0x2C, 0x48, 0x21, 0x40, 0x50, 0x86, 0x8F, 0xFC, 0x00, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0x90, 0x49, 0x10, 0x8A, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x50, 0x08, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x12, 0x24, 0x55, 0xFE, 0x59, 0x24, 0x51, 0x24, 0x91, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x11, 0x24, 0x28, 0x20, 0x24, 0x24, 0x44, 0x3C, 0x83, 0xE2, 0x01, 0x02, 0x02, 0x00, 0x02, 0x20, 0x3F, 0xF0, 0x02, 0x84, 0xFF, 0xFE, 0x02, 0x10, 0x0F, 0xF8, 0x38, 0x10, 0xC8, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x08, 0x10, 0x0F, 0xF0, 0x20, 0x08, 0x24, 0x84, 0x42, 0x44, 0x10, 0x40, 0x10, 0x20, 0x10, 0x04, 0x13, 0xFE, 0xFC, 0x20, 0x10, 0x20, 0x14, 0x20, 0x18, 0x28, 0x31, 0xFC, 0xD0, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x57, 0xFE, 0x20, 0x00, 0x00, 0x04, 0x07, 0xFE, 0x74, 0x04, 0x57, 0xFC, 0x54, 0x00, 0x75, 0xFC, 0x54, 0x20, 0x55, 0xFC, 0x75, 0x24, 0x55, 0xFC, 0x54, 0x20, 0x77, 0xFE, 0x4A, 0x22, 0x12, 0x2A, 0x22, 0xFA, 0x02, 0x06, 0x00, 0x04, 0x07, 0xFE, 0x74, 0x04, 0x57, 0xFC, 0x54, 0x00, 0x55, 0xFC, 0x54, 0x20, 0x55, 0xFC, 0x55, 0x24, 0x55, 0xFC, 0x54, 0x20, 0x77, 0xFE, 0x4A, 0x22, 0x12, 0x2A, 0x22, 0xFA, 0x02, 0x06, 0x02, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x09, 0x20, 0x01, 0x10, 0x1F, 0xE0, 0x01, 0x44, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x10, 0x0F, 0xF8, 0x18, 0x10, 0x2F, 0xF0, 0xC8, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x10, 0x40, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0xFC, 0x20, 0x10, 0x20, 0x30, 0x20, 0x38, 0x28, 0x55, 0xFC, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x17, 0xFE, 0x10, 0x00, 0x02, 0x20, 0x3F, 0x20, 0x22, 0x20, 0x22, 0x24, 0x23, 0xFE, 0x3E, 0x24, 0x22, 0x24, 0x22, 0x24, 0x3E, 0x24, 0x22, 0x24, 0x22, 0x44, 0x22, 0x44, 0x2F, 0x44, 0xF0, 0x84, 0x41, 0x28, 0x02, 0x10, 0x10, 0x40, 0x10, 0x20, 0x10, 0x24, 0x15, 0xFE, 0x7E, 0x20, 0x54, 0x20, 0x54, 0x20, 0x54, 0x28, 0x55, 0xFC, 0x7C, 0x20, 0x54, 0x20, 0x10, 0x20, 0x14, 0x20, 0xFC, 0x24, 0x47, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x7E, 0x20, 0x44, 0x20, 0x54, 0x00, 0x55, 0xFE, 0x55, 0x02, 0x56, 0x04, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x10, 0x04, 0x2B, 0xFE, 0x44, 0x00, 0x84, 0x00, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x1C, 0x40, 0x20, 0x48, 0x23, 0xFC, 0x7C, 0x80, 0x90, 0x84, 0x13, 0xFE, 0xFD, 0x08, 0x12, 0x08, 0x15, 0xFE, 0x10, 0x08, 0x14, 0x88, 0x18, 0x48, 0x00, 0x18, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x80, 0x00, 0x08, 0x10, 0x7D, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x90, 0x11, 0x50, 0x1D, 0x52, 0xF2, 0x12, 0x44, 0x0E, 0x08, 0x00, 0x08, 0x80, 0x08, 0x40, 0x08, 0x44, 0x17, 0xFE, 0x10, 0x40, 0x30, 0x40, 0x50, 0x40, 0x90, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x00, 0x80, 0x40, 0x40, 0x30, 0x44, 0x17, 0xFE, 0x80, 0x40, 0x60, 0x40, 0x20, 0x40, 0x08, 0x48, 0x17, 0xFC, 0x20, 0x40, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x20, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x02, 0x08, 0xFE, 0x08, 0x0A, 0x08, 0x12, 0x08, 0x3B, 0xF8, 0x56, 0xA8, 0x90, 0xA0, 0x10, 0xA0, 0x11, 0x20, 0x11, 0x22, 0x12, 0x22, 0x14, 0x1E, 0x18, 0x00, 0x08, 0x40, 0xFC, 0x20, 0x08, 0x24, 0x4B, 0xFE, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x48, 0x28, 0x7D, 0xFC, 0x04, 0x20, 0x04, 0x20, 0x1C, 0x20, 0xE4, 0x20, 0x44, 0x24, 0x17, 0xFE, 0x08, 0x00, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x12, 0x50, 0xFE, 0x50, 0x12, 0x50, 0x16, 0x50, 0x1A, 0x50, 0x32, 0x50, 0xD2, 0x48, 0x12, 0x48, 0x12, 0x48, 0x14, 0x44, 0x14, 0x44, 0x58, 0x42, 0x20, 0x40, 0x00, 0x10, 0x00, 0x78, 0x1F, 0x80, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x10, 0x11, 0x10, 0x21, 0x10, 0x21, 0x08, 0x41, 0x0E, 0x81, 0x04, 0x01, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0xFE, 0x48, 0x12, 0x48, 0x17, 0xF8, 0x1A, 0x48, 0x32, 0x48, 0xD3, 0xFC, 0x12, 0x48, 0x10, 0x50, 0x10, 0x20, 0x10, 0xD2, 0x57, 0x0A, 0x20, 0x06, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x00, 0x0F, 0xF8, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x06, 0x80, 0x01, 0x80, 0x00, 0x40, 0x00, 0x40, 0x04, 0x40, 0xFE, 0x48, 0x11, 0xFC, 0x10, 0x40, 0x20, 0x44, 0x23, 0xFE, 0x7C, 0x80, 0xA4, 0x80, 0x25, 0xFC, 0x24, 0x08, 0x24, 0x10, 0x24, 0x90, 0x3C, 0x60, 0x24, 0x20, 0x00, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0xFD, 0xFC, 0x20, 0x40, 0x28, 0x44, 0x4B, 0xFE, 0x7C, 0x80, 0x08, 0x80, 0x09, 0xFC, 0x1C, 0x08, 0xE8, 0x10, 0x48, 0x90, 0x08, 0x60, 0x08, 0x20, 0x08, 0x10, 0x10, 0x04, 0x17, 0xBE, 0x14, 0xA4, 0x14, 0xA4, 0xFF, 0xBC, 0x14, 0x62, 0x13, 0xDE, 0x19, 0x10, 0x31, 0x10, 0xD7, 0xFC, 0x11, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x11, 0x10, 0x52, 0x0C, 0x24, 0x04, 0x00, 0x88, 0x7C, 0x50, 0x47, 0xFE, 0x54, 0x50, 0x55, 0xFC, 0x54, 0x54, 0x54, 0x54, 0x57, 0xFE, 0x54, 0x54, 0x54, 0x54, 0x55, 0xFC, 0x54, 0x50, 0x10, 0xD8, 0x29, 0x56, 0x46, 0x54, 0x80, 0x50, 0x10, 0x40, 0x1E, 0x7C, 0x28, 0xA0, 0x4F, 0xC0, 0x08, 0x40, 0x1F, 0x80, 0x00, 0x84, 0xFF, 0xFE, 0x02, 0x10, 0x0D, 0x20, 0x71, 0xC0, 0x06, 0xA0, 0x39, 0x90, 0x06, 0x8E, 0x78, 0x84, 0x03, 0x00, 0x10, 0x40, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0xFE, 0x00, 0x12, 0x20, 0x32, 0x20, 0x3A, 0x28, 0x57, 0xFC, 0x52, 0x20, 0x92, 0x20, 0x12, 0x20, 0x14, 0x20, 0x14, 0x24, 0x1B, 0xFE, 0x10, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x00, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0x2F, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x84, 0xBF, 0xFE, 0x00, 0x00, 0x08, 0x40, 0x48, 0x48, 0x2B, 0xFC, 0x08, 0x40, 0x18, 0x50, 0x29, 0xF8, 0x4A, 0x00, 0x09, 0x04, 0xFF, 0xFE, 0x02, 0x08, 0x04, 0x90, 0x0C, 0xA0, 0x14, 0x40, 0x65, 0x30, 0x06, 0x0E, 0x04, 0x04, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x48, 0x80, 0x28, 0x84, 0x2F, 0xFE, 0x09, 0x08, 0x09, 0x08, 0x19, 0x08, 0x2A, 0x08, 0x49, 0x10, 0xC8, 0xA0, 0x08, 0x40, 0x08, 0xB0, 0x09, 0x0C, 0x0A, 0x04, 0x10, 0x40, 0x17, 0xFC, 0x11, 0x10, 0x10, 0xA4, 0xFF, 0xFE, 0x10, 0x08, 0x17, 0xFC, 0x1A, 0x48, 0x33, 0xF8, 0xD2, 0x48, 0x13, 0xF8, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x5F, 0xFE, 0x20, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x90, 0x40, 0x50, 0x40, 0x50, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x30, 0x40, 0x50, 0x40, 0xD0, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x08, 0x40, 0x08, 0x50, 0x08, 0x48, 0x48, 0x40, 0x28, 0x44, 0x2F, 0xFE, 0x08, 0x40, 0x08, 0x40, 0x18, 0xA0, 0x28, 0xA0, 0x49, 0x10, 0xC9, 0x10, 0x09, 0x08, 0x0A, 0x0E, 0x0C, 0x04, 0x08, 0x00, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0x84, 0x11, 0xFE, 0xFD, 0x20, 0x13, 0x28, 0x35, 0xFC, 0x39, 0x20, 0x55, 0x28, 0x51, 0xFC, 0x91, 0x20, 0x11, 0x20, 0x11, 0x24, 0x11, 0xFE, 0x11, 0x00, 0x11, 0x00, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0x84, 0x1D, 0xFE, 0x21, 0x20, 0x23, 0x28, 0x7D, 0xFC, 0x91, 0x20, 0x11, 0x28, 0xFD, 0xFC, 0x11, 0x20, 0x11, 0x20, 0x15, 0x24, 0x19, 0xFE, 0x11, 0x00, 0x01, 0x00, 0x00, 0x40, 0x40, 0x90, 0x33, 0xF8, 0x12, 0x10, 0x02, 0x10, 0x03, 0xF0, 0xF2, 0x00, 0x12, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x2A, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x08, 0x40, 0x7F, 0x44, 0x08, 0x7E, 0x3E, 0x84, 0x08, 0xC4, 0xFF, 0x28, 0x10, 0x10, 0x1E, 0x28, 0x22, 0x46, 0xCC, 0x90, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x06, 0xC0, 0x38, 0x38, 0x00, 0x40, 0x7C, 0x40, 0x44, 0x40, 0x48, 0xA0, 0x50, 0xA0, 0x48, 0xA0, 0x45, 0x10, 0x65, 0x08, 0x5A, 0x0E, 0x44, 0x04, 0x41, 0x00, 0x5F, 0xF0, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x17, 0xBC, 0x24, 0xA4, 0x22, 0xA8, 0x41, 0x10, 0xFA, 0xA8, 0x12, 0xA6, 0x24, 0x40, 0x47, 0xBC, 0xFC, 0xA4, 0x04, 0xA4, 0x02, 0xA8, 0x19, 0x10, 0xE2, 0xA8, 0x44, 0x46, 0x08, 0x04, 0x00, 0x44, 0x4F, 0xFE, 0x30, 0x08, 0x13, 0xFC, 0x02, 0x08, 0x02, 0x08, 0xF3, 0xF8, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x20, 0x10, 0x44, 0x17, 0xFE, 0x14, 0x40, 0x18, 0x40, 0x11, 0x40, 0x00, 0x80, 0x01, 0x40, 0x41, 0x20, 0x31, 0x24, 0x13, 0xFE, 0x02, 0x20, 0x16, 0x28, 0x1B, 0xFC, 0x12, 0x20, 0x22, 0x28, 0xE3, 0xFC, 0x22, 0x20, 0x22, 0x20, 0x22, 0x24, 0x23, 0xFE, 0x22, 0x00, 0x02, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0xFE, 0x08, 0x12, 0x08, 0x17, 0xF8, 0x1A, 0x48, 0x30, 0x40, 0xD2, 0x48, 0x12, 0x7C, 0x12, 0x40, 0x13, 0x40, 0x14, 0xC6, 0x58, 0x7C, 0x20, 0x00, 0x10, 0x40, 0x10, 0x40, 0x12, 0x48, 0x12, 0x48, 0xFE, 0x48, 0x12, 0x48, 0x17, 0xF8, 0x18, 0x48, 0x30, 0x40, 0xD4, 0x44, 0x14, 0x44, 0x14, 0x44, 0x14, 0x44, 0x14, 0x44, 0x57, 0xFC, 0x20, 0x04, 0x01, 0x08, 0x01, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x01, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x60, 0x09, 0x1C, 0x31, 0x08, 0x01, 0x00, 0x00, 0x04, 0x17, 0xFE, 0xF8, 0x40, 0x20, 0x80, 0x21, 0x84, 0x22, 0x4C, 0x26, 0xB0, 0xF9, 0x20, 0x22, 0xB0, 0x24, 0x68, 0x20, 0xA8, 0x21, 0x24, 0x3A, 0x22, 0xE4, 0x20, 0x41, 0x40, 0x00, 0x80, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x01, 0x20, 0xFF, 0xA0, 0x14, 0x20, 0x14, 0x24, 0x7F, 0x7E, 0x55, 0x84, 0x55, 0x04, 0x55, 0x44, 0x55, 0x24, 0x63, 0x24, 0x41, 0x04, 0x7F, 0x04, 0x41, 0x04, 0x41, 0x04, 0x7F, 0x28, 0x41, 0x10, 0x00, 0x04, 0x0B, 0xFE, 0x7C, 0x40, 0x48, 0x80, 0x49, 0x84, 0x4A, 0x4C, 0x4E, 0xB0, 0x49, 0x20, 0x4A, 0xB0, 0x4C, 0x68, 0x48, 0xA8, 0x79, 0x24, 0x4A, 0x22, 0x04, 0x20, 0x01, 0x40, 0x00, 0x80, 0x08, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x10, 0x0F, 0xF8, 0x18, 0x10, 0x2F, 0xF0, 0xC8, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x12, 0x44, 0x54, 0xFE, 0x59, 0x04, 0x52, 0x04, 0x90, 0x84, 0x10, 0x44, 0x10, 0x44, 0x10, 0x04, 0x28, 0x04, 0x24, 0x04, 0x44, 0x44, 0x80, 0x28, 0x00, 0x10, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x44, 0x87, 0xFE, 0x64, 0x44, 0x24, 0x44, 0x0C, 0x44, 0x14, 0x44, 0x27, 0xFC, 0xE4, 0x44, 0x20, 0x50, 0x20, 0x48, 0x20, 0x7C, 0x2F, 0xC4, 0x24, 0x04, 0x10, 0x10, 0x0C, 0x30, 0x04, 0x40, 0x00, 0x04, 0xFF, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x22, 0x44, 0x24, 0x48, 0x78, 0xF0, 0x08, 0x10, 0x10, 0x20, 0x14, 0x28, 0x22, 0x44, 0x7E, 0xFC, 0x02, 0x04, 0x41, 0x00, 0x31, 0x00, 0x11, 0xFC, 0x02, 0x04, 0x0A, 0x48, 0xF4, 0x40, 0x20, 0xA0, 0x20, 0x90, 0x21, 0x0E, 0x26, 0x04, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x41, 0x00, 0x21, 0x00, 0x21, 0xFC, 0x0A, 0x44, 0x34, 0x48, 0xE0, 0xA0, 0x21, 0x10, 0x26, 0x0E, 0x1F, 0xF4, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x20, 0x80, 0x10, 0xFC, 0x10, 0x84, 0x05, 0x28, 0x0A, 0x20, 0x70, 0x50, 0x10, 0x8E, 0x13, 0x04, 0x12, 0x00, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x04, 0x60, 0x38, 0x10, 0x44, 0x08, 0x22, 0x10, 0x21, 0x24, 0x0F, 0xFE, 0x82, 0x10, 0x42, 0x10, 0x44, 0x20, 0x14, 0xA4, 0x1F, 0x78, 0x21, 0x08, 0xE2, 0x10, 0x24, 0x20, 0x29, 0x44, 0x2F, 0x7C, 0x21, 0x04, 0x20, 0x00, 0x02, 0x48, 0x42, 0x48, 0x24, 0x90, 0x29, 0x20, 0x84, 0x90, 0x62, 0x48, 0x22, 0x48, 0x08, 0x04, 0x17, 0xFE, 0x24, 0x44, 0xE4, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x00, 0x80, 0x00, 0x80, 0xFE, 0x80, 0x04, 0x84, 0x08, 0xFE, 0x11, 0x08, 0x15, 0x88, 0x1A, 0x88, 0xF0, 0x88, 0x50, 0x50, 0x10, 0x50, 0x10, 0x20, 0x10, 0x50, 0x10, 0x88, 0x51, 0x0E, 0x26, 0x04, 0x08, 0x80, 0x28, 0x80, 0x2E, 0x98, 0x28, 0xE2, 0x2E, 0x82, 0xF8, 0x7E, 0x42, 0x00, 0x04, 0x10, 0x3F, 0xE0, 0x01, 0x00, 0x02, 0x10, 0x3F, 0xF8, 0x01, 0x08, 0x09, 0x20, 0x11, 0x18, 0x23, 0x08, 0x08, 0x00, 0x0B, 0xF8, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x30, 0x40, 0x50, 0x44, 0x9F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x10, 0x00, 0x11, 0xFC, 0x52, 0x04, 0x34, 0x08, 0x18, 0x10, 0xFE, 0x20, 0x10, 0x24, 0x33, 0xFE, 0x38, 0x20, 0x54, 0x20, 0x54, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0xA0, 0x10, 0x40, 0x00, 0x80, 0x40, 0x40, 0x37, 0xFE, 0x14, 0x02, 0x88, 0x44, 0x67, 0xFC, 0x20, 0x00, 0x09, 0x10, 0x10, 0xA4, 0x2F, 0xFE, 0xE0, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x01, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x48, 0x47, 0xFC, 0x30, 0x40, 0x13, 0xF8, 0x80, 0x40, 0x6F, 0xFE, 0x20, 0x08, 0x0B, 0xFC, 0x12, 0x08, 0x22, 0x48, 0xE2, 0x48, 0x22, 0x48, 0x22, 0x48, 0x20, 0xB0, 0x23, 0x0C, 0x2C, 0x04, 0x02, 0x00, 0x01, 0x00, 0x3F, 0xFC, 0x20, 0x04, 0x40, 0x08, 0x1F, 0xE0, 0x00, 0x40, 0x00, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x04, 0x13, 0x18, 0x1C, 0x64, 0x10, 0x18, 0x7F, 0x64, 0x14, 0x18, 0x3E, 0x60, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x00, 0x00, 0x7F, 0xFC, 0x09, 0x20, 0x11, 0x18, 0x23, 0x08, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFE, 0x12, 0x02, 0xFC, 0x04, 0x11, 0xFC, 0x30, 0x00, 0x38, 0x04, 0x57, 0xFE, 0x50, 0x20, 0x90, 0xA8, 0x11, 0x24, 0x11, 0x22, 0x12, 0x22, 0x10, 0xA0, 0x10, 0x40, 0x00, 0x40, 0x78, 0x20, 0x4B, 0xFE, 0x4A, 0x02, 0x4C, 0x04, 0x79, 0xFC, 0x50, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x5C, 0x20, 0x50, 0xA8, 0x51, 0x24, 0x5D, 0x22, 0xF2, 0x22, 0x40, 0xA0, 0x00, 0x40, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x24, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x09, 0x20, 0x09, 0x10, 0x11, 0x08, 0x21, 0x08, 0x05, 0x00, 0x02, 0x00, 0x10, 0x40, 0x10, 0x20, 0x23, 0xFE, 0x22, 0x02, 0x44, 0x04, 0xF9, 0xFC, 0x10, 0x00, 0x20, 0x04, 0x43, 0xFE, 0xF8, 0x20, 0x00, 0xA8, 0x01, 0x24, 0x19, 0x22, 0xE2, 0x22, 0x40, 0xA0, 0x00, 0x40, 0x10, 0x10, 0x08, 0x20, 0x04, 0x40, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x02, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x11, 0x10, 0x11, 0x10, 0x21, 0x10, 0x21, 0x10, 0x45, 0x10, 0xF9, 0x10, 0x11, 0x10, 0x21, 0x10, 0x41, 0x10, 0xFD, 0x10, 0x42, 0xA8, 0x02, 0xA8, 0x1C, 0x48, 0xE4, 0x44, 0x48, 0x82, 0x11, 0x00, 0x10, 0x00, 0x10, 0x7C, 0x10, 0x44, 0x3F, 0x44, 0x42, 0x48, 0x84, 0x48, 0x7F, 0x50, 0x01, 0x48, 0x01, 0x44, 0x3F, 0x42, 0x01, 0x42, 0x01, 0x62, 0x7F, 0x54, 0x01, 0x48, 0x00, 0x40, 0x00, 0x40, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x09, 0x00, 0x09, 0x10, 0x09, 0xF8, 0x09, 0x00, 0x09, 0x00, 0x15, 0x06, 0x23, 0xFC, 0x40, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x30, 0x37, 0xCE, 0xC1, 0x04, 0x1F, 0xF0, 0x01, 0x00, 0x02, 0xC0, 0x04, 0x30, 0x38, 0x08, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0xFB, 0xF8, 0x10, 0x80, 0x17, 0xFE, 0x19, 0x10, 0x32, 0x0E, 0xDD, 0xF4, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x10, 0xB0, 0x51, 0x0C, 0x26, 0x04, 0x08, 0x00, 0x1C, 0x08, 0xF1, 0xFC, 0x11, 0x08, 0x15, 0x08, 0xFF, 0x08, 0x11, 0xF8, 0x31, 0x08, 0x39, 0x08, 0x55, 0x08, 0x51, 0xF8, 0x91, 0x08, 0x11, 0x08, 0x11, 0x08, 0x1F, 0xFE, 0x10, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x01, 0x00, 0x11, 0x10, 0x11, 0xF8, 0x11, 0x00, 0x11, 0x00, 0x29, 0x06, 0x47, 0xFC, 0x80, 0x00, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x14, 0x50, 0x22, 0x88, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x40, 0x18, 0x40, 0x08, 0x48, 0x00, 0x7C, 0xFE, 0x80, 0x21, 0x48, 0x20, 0x7C, 0x3C, 0xA0, 0x24, 0xA0, 0x25, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x44, 0x50, 0x44, 0x50, 0x94, 0x8E, 0x09, 0x04, 0x20, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x01, 0x08, 0xFD, 0x08, 0x09, 0x08, 0x11, 0xF8, 0x39, 0x08, 0x55, 0x08, 0x91, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x17, 0xFE, 0x10, 0x00, 0x40, 0x00, 0x30, 0x08, 0x11, 0xFC, 0x01, 0x08, 0x01, 0x08, 0xF1, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x13, 0x08, 0x15, 0x08, 0x19, 0x08, 0x17, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x08, 0x45, 0xFC, 0x49, 0x08, 0x49, 0x08, 0x51, 0x08, 0x49, 0xF8, 0x49, 0x08, 0x45, 0x08, 0x45, 0x08, 0x45, 0xF8, 0x69, 0x08, 0x51, 0x08, 0x41, 0x08, 0x47, 0xFE, 0x40, 0x00, 0x10, 0x00, 0x10, 0x08, 0x21, 0xFC, 0x21, 0x08, 0x45, 0x08, 0xF9, 0x08, 0x11, 0xF8, 0x21, 0x08, 0x41, 0x08, 0xFD, 0x08, 0x41, 0xF8, 0x01, 0x08, 0x1D, 0x08, 0xE1, 0x08, 0x47, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x1E, 0x3E, 0x20, 0x20, 0x20, 0x20, 0x7C, 0x24, 0x91, 0xFE, 0x11, 0x04, 0xFF, 0x04, 0x11, 0x04, 0x13, 0x04, 0x15, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x20, 0x40, 0x3E, 0x7E, 0x48, 0x90, 0x9F, 0xF0, 0x12, 0x10, 0x10, 0x90, 0x1F, 0xF0, 0x08, 0x04, 0xFF, 0xFE, 0x14, 0x50, 0x2F, 0x88, 0x41, 0x2E, 0x9F, 0xE4, 0x05, 0x40, 0x09, 0x30, 0x13, 0x10, 0x01, 0x20, 0x05, 0x20, 0x75, 0xE6, 0x55, 0x38, 0x55, 0xE2, 0x5F, 0x1E, 0x51, 0xF0, 0x52, 0x28, 0x57, 0xFC, 0x5A, 0x48, 0x53, 0xF8, 0x72, 0x48, 0x43, 0xF8, 0x02, 0x48, 0x04, 0x48, 0x08, 0x58, 0x04, 0x20, 0xFE, 0x24, 0x29, 0xFE, 0x28, 0x00, 0xFE, 0x88, 0xAA, 0x88, 0xAA, 0x88, 0xAB, 0x54, 0xA6, 0x20, 0xC2, 0x24, 0x83, 0xFE, 0xFE, 0x20, 0x82, 0x20, 0x82, 0x20, 0xFE, 0x20, 0x82, 0x20, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x22, 0x00, 0x3F, 0xFC, 0x22, 0x84, 0x3E, 0x88, 0x22, 0x50, 0x3E, 0x20, 0xE2, 0x58, 0x02, 0x8E, 0x03, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x00, 0x00, 0x04, 0x44, 0xFC, 0x7E, 0x04, 0x40, 0x04, 0x48, 0x7C, 0x7C, 0x04, 0x40, 0x04, 0x44, 0xFC, 0x7E, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x7F, 0xFC, 0x04, 0x80, 0x3F, 0xF8, 0x24, 0x88, 0x24, 0xE8, 0x28, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x00, 0x20, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x20, 0x04, 0xA0, 0x00, 0x40, 0x02, 0x20, 0x5F, 0xFC, 0x21, 0x40, 0x2F, 0xF8, 0x09, 0x48, 0x0A, 0x38, 0xE8, 0x08, 0x2B, 0xE8, 0x28, 0x08, 0x2F, 0xF8, 0x20, 0x20, 0x3F, 0xFE, 0x24, 0x20, 0x22, 0xA0, 0x50, 0x46, 0x8F, 0xFC, 0x01, 0x00, 0x09, 0x00, 0x7D, 0x04, 0x49, 0xFE, 0x4A, 0x80, 0x4C, 0x80, 0x48, 0x90, 0x78, 0xF8, 0x48, 0x80, 0x48, 0x80, 0x48, 0x88, 0x48, 0xFC, 0x78, 0x80, 0x48, 0x80, 0x00, 0x80, 0x00, 0x80, 0x02, 0x00, 0x02, 0x00, 0x02, 0x08, 0xFF, 0xFC, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x10, 0x0F, 0xF8, 0x10, 0x80, 0x10, 0x80, 0x20, 0x80, 0x40, 0x80, 0x80, 0x84, 0x7F, 0xFE, 0x00, 0x00, 0x08, 0x80, 0x08, 0x80, 0x08, 0x84, 0x17, 0xFE, 0x10, 0x80, 0x30, 0x80, 0x51, 0x00, 0x91, 0x08, 0x11, 0xFC, 0x12, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x10, 0x24, 0x17, 0xFE, 0x10, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0x11, 0xFE, 0xFE, 0x80, 0x14, 0x80, 0x30, 0x90, 0x38, 0xF8, 0x54, 0x80, 0x50, 0x80, 0x90, 0x88, 0x10, 0xFC, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x20, 0x12, 0x20, 0x12, 0x20, 0x22, 0x24, 0x3F, 0xFE, 0x62, 0x84, 0xA2, 0x44, 0x22, 0x44, 0x2F, 0xC8, 0x28, 0xA8, 0x28, 0xA8, 0x28, 0x90, 0x28, 0xA8, 0x2F, 0xA8, 0x28, 0x46, 0x20, 0x84, 0x09, 0x00, 0x09, 0x00, 0x09, 0x04, 0x11, 0xFE, 0x12, 0x80, 0x32, 0x80, 0x54, 0x90, 0x98, 0xF8, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x01, 0x00, 0x01, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x29, 0x28, 0x25, 0x24, 0x45, 0x44, 0x81, 0x80, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x24, 0x90, 0x24, 0x90, 0x24, 0x90, 0x2A, 0xA8, 0x29, 0xA4, 0x31, 0xC4, 0x20, 0x90, 0x2F, 0xF8, 0x40, 0x80, 0x40, 0x84, 0xBF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x3E, 0x40, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x21, 0xF8, 0x21, 0x00, 0x21, 0x00, 0x21, 0x04, 0x3F, 0xFE, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x21, 0x10, 0x20, 0x10, 0x40, 0x10, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x05, 0x60, 0x09, 0x10, 0x11, 0x08, 0x21, 0x04, 0x41, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x20, 0x3F, 0xF0, 0x00, 0x40, 0x00, 0x80, 0x01, 0x08, 0x7D, 0x18, 0x05, 0xA0, 0x09, 0x40, 0x09, 0x20, 0x11, 0x10, 0x11, 0x0E, 0x21, 0x04, 0x45, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x42, 0x84, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x04, 0x41, 0x14, 0x40, 0x08, 0x00, 0x08, 0x7F, 0xFC, 0x03, 0x00, 0x05, 0x60, 0x19, 0x18, 0x61, 0x04, 0x10, 0x00, 0x10, 0xF8, 0xFE, 0x08, 0x22, 0x10, 0x22, 0x24, 0x23, 0xFE, 0x14, 0x20, 0x08, 0x20, 0x14, 0xA0, 0x62, 0x40, 0x00, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x3D, 0x78, 0x25, 0x48, 0x3D, 0x78, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x3D, 0x78, 0x25, 0x48, 0x25, 0x48, 0x3D, 0x78, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x24, 0x4F, 0xE4, 0x40, 0x24, 0x40, 0x14, 0x40, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x20, 0x10, 0x60, 0x10, 0x80, 0x11, 0x00, 0x12, 0x00, 0x14, 0x00, 0x18, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x10, 0x04, 0x0F, 0xFC, 0x00, 0x00, 0x00, 0x10, 0x03, 0xF8, 0x7E, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x08, 0x03, 0xFC, 0xFE, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0xFE, 0x00, 0x10, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x04, 0x20, 0x08, 0x10, 0x30, 0x0E, 0xC0, 0x04, 0x00, 0x10, 0x10, 0x30, 0x0C, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0xC0, 0x0C, 0x30, 0x70, 0x28, 0x08, 0x40, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x30, 0x1E, 0xC0, 0x04, 0x00, 0x10, 0x01, 0xF8, 0x3E, 0x00, 0x20, 0x04, 0x3F, 0xFE, 0x20, 0x00, 0x20, 0x10, 0x27, 0xF8, 0x24, 0x10, 0x24, 0x10, 0x24, 0x90, 0x24, 0x50, 0x44, 0x20, 0x44, 0x02, 0x84, 0x02, 0x03, 0xFE, 0x00, 0x10, 0x00, 0xF8, 0x3F, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x80, 0x20, 0x40, 0x22, 0x40, 0x24, 0x20, 0x28, 0x20, 0x33, 0x12, 0x20, 0x8A, 0x00, 0x06, 0x02, 0x00, 0x02, 0x00, 0x04, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x28, 0x28, 0x24, 0x48, 0x22, 0x88, 0x21, 0x08, 0x22, 0x88, 0x24, 0x48, 0x28, 0x28, 0x30, 0x18, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x01, 0x00, 0x12, 0x10, 0x14, 0x50, 0x1F, 0x90, 0x11, 0x10, 0x12, 0x50, 0x1F, 0xF0, 0x10, 0x10, 0x17, 0xD0, 0x14, 0x50, 0x17, 0xD0, 0x24, 0x50, 0x27, 0xD2, 0x44, 0x52, 0x85, 0x4E, 0x04, 0x80, 0x10, 0x00, 0x10, 0x88, 0x10, 0x50, 0x13, 0xFE, 0xFC, 0x20, 0x14, 0xF8, 0x14, 0x88, 0x14, 0xF8, 0x14, 0x88, 0x14, 0xF8, 0x14, 0x88, 0x14, 0xF8, 0x24, 0x8A, 0x24, 0x02, 0x43, 0xFE, 0x80, 0x00, 0x20, 0x40, 0x20, 0x20, 0x24, 0x24, 0x7F, 0xFE, 0x80, 0x40, 0x7C, 0x50, 0x44, 0x88, 0x55, 0xFC, 0x44, 0x00, 0xFE, 0xA8, 0x44, 0xA8, 0x54, 0xA8, 0x44, 0xAA, 0x7E, 0xAA, 0x05, 0x2E, 0x1A, 0x00, 0x04, 0x00, 0x08, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x3F, 0xF8, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x12, 0x48, 0x0A, 0x50, 0x12, 0x48, 0x02, 0x44, 0x3C, 0x3C, 0x08, 0x20, 0x7E, 0x28, 0x09, 0xFC, 0xFF, 0x20, 0x00, 0xF8, 0x3E, 0x88, 0x22, 0x88, 0x3E, 0x50, 0x14, 0x20, 0x7E, 0x50, 0x01, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7F, 0xF0, 0x00, 0x40, 0x00, 0x80, 0x01, 0x08, 0x3D, 0x7C, 0x25, 0x08, 0x25, 0x48, 0x25, 0x30, 0x25, 0x10, 0x25, 0x28, 0x3D, 0x48, 0x01, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xF0, 0x10, 0x10, 0x17, 0xD4, 0x14, 0x5E, 0x27, 0xC4, 0x24, 0x44, 0x57, 0xD4, 0x94, 0x5C, 0x17, 0xD0, 0x10, 0x10, 0x1E, 0xF0, 0x02, 0x80, 0x7E, 0xF8, 0x12, 0x88, 0x12, 0x88, 0x62, 0x88, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x20, 0x08, 0x70, 0x09, 0xA0, 0x0E, 0x20, 0x18, 0x20, 0x68, 0x20, 0x08, 0x20, 0x08, 0xA0, 0x08, 0x44, 0x08, 0x04, 0x08, 0x04, 0x07, 0xFC, 0x00, 0x00, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x1F, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x7F, 0x40, 0x42, 0x40, 0x42, 0x40, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x3E, 0x42, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0x01, 0x00, 0x09, 0x20, 0x09, 0x28, 0x79, 0x3C, 0x09, 0x20, 0x09, 0x20, 0x09, 0x28, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x41, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xE4, 0x00, 0x40, 0x01, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x09, 0x20, 0x05, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x3F, 0xF8, 0x20, 0x08, 0x27, 0xC8, 0x24, 0x48, 0x27, 0xC8, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x04, 0x27, 0xBE, 0x24, 0x84, 0xFC, 0x84, 0x24, 0x84, 0x27, 0xBC, 0x24, 0x84, 0x74, 0x00, 0x57, 0xBC, 0x54, 0x04, 0x54, 0x24, 0x57, 0xA8, 0x74, 0x10, 0x54, 0x28, 0x04, 0x2E, 0x04, 0xC4, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x00, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x21, 0x40, 0x21, 0x40, 0x22, 0x20, 0x22, 0x20, 0x44, 0x10, 0x48, 0x10, 0x90, 0x0E, 0x20, 0x04, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x00, 0x21, 0x08, 0x2F, 0xFC, 0x22, 0x40, 0x22, 0x40, 0x24, 0x50, 0x2F, 0xF8, 0x20, 0x40, 0x20, 0x44, 0x3F, 0xFE, 0x40, 0x40, 0x40, 0x40, 0x80, 0x40, 0x00, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x22, 0x20, 0x22, 0x28, 0x2F, 0xFC, 0x22, 0x20, 0x3F, 0xFE, 0x20, 0x08, 0x27, 0xFC, 0x24, 0x08, 0x24, 0x08, 0x27, 0xF8, 0x44, 0x08, 0x44, 0x08, 0x87, 0xF8, 0x04, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0xA0, 0x20, 0x90, 0x2F, 0xFC, 0x21, 0x40, 0x3E, 0x3C, 0x20, 0x08, 0x2F, 0xFC, 0x28, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x4F, 0xF8, 0x48, 0x88, 0x80, 0x80, 0x00, 0x80, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x20, 0x28, 0xA0, 0x25, 0x20, 0x3F, 0xBE, 0x22, 0x22, 0x2A, 0xD4, 0x2A, 0x90, 0x2A, 0x90, 0x2F, 0x90, 0x22, 0x90, 0x42, 0x28, 0x44, 0x28, 0x88, 0x44, 0x10, 0x82, 0x00, 0x08, 0x3F, 0xFC, 0x29, 0x00, 0x29, 0x0C, 0x3F, 0xF0, 0x29, 0x40, 0x2F, 0x44, 0x29, 0x7E, 0x2F, 0x48, 0x29, 0x48, 0x29, 0x48, 0x3F, 0xC8, 0x42, 0x48, 0x49, 0x48, 0x90, 0x88, 0x01, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0xA0, 0x2F, 0xFC, 0x21, 0x40, 0x26, 0x30, 0x38, 0x0E, 0x2F, 0xFC, 0x20, 0x80, 0x2F, 0xFC, 0x29, 0x24, 0x29, 0xE4, 0x49, 0x24, 0x49, 0xE4, 0x89, 0x24, 0x0F, 0xFC, 0x00, 0x08, 0x3F, 0xFC, 0x22, 0x50, 0x24, 0xFC, 0x2D, 0x90, 0x36, 0xFC, 0x24, 0x90, 0x24, 0x9E, 0x24, 0x80, 0x2F, 0xF8, 0x28, 0x08, 0x28, 0x88, 0x48, 0x88, 0x41, 0x60, 0x86, 0x18, 0x18, 0x04, 0x00, 0x08, 0x7F, 0xFC, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x04, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x40, 0x00, 0x40, 0x20, 0x47, 0xF0, 0x44, 0x20, 0x44, 0x20, 0x44, 0x20, 0x44, 0x20, 0x44, 0x20, 0x47, 0xE0, 0x44, 0x20, 0x40, 0x00, 0x40, 0x04, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x48, 0x40, 0x4A, 0x40, 0x7F, 0x50, 0x50, 0xF8, 0x54, 0x50, 0x7F, 0x50, 0x44, 0x50, 0x44, 0x50, 0x7F, 0x54, 0x44, 0x54, 0x44, 0x8C, 0x45, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x40, 0x80, 0x4F, 0xF8, 0x48, 0x88, 0x4F, 0xF8, 0x40, 0x80, 0x7F, 0xFC, 0x40, 0x08, 0x4F, 0xFC, 0x48, 0x88, 0x48, 0x88, 0x43, 0x60, 0x4C, 0x18, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x40, 0x80, 0x4F, 0xF8, 0x48, 0x08, 0x4F, 0xF8, 0x48, 0x00, 0x4F, 0xFC, 0x59, 0x24, 0x69, 0x24, 0x4F, 0xFC, 0x49, 0x24, 0x49, 0x2C, 0x48, 0x04, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x20, 0x04, 0x24, 0x7F, 0xFE, 0x48, 0x20, 0x49, 0xFC, 0x48, 0x20, 0x5F, 0xFE, 0x54, 0x04, 0x55, 0xFE, 0x55, 0x04, 0x5D, 0x24, 0x49, 0x24, 0x49, 0x24, 0x48, 0x50, 0x7E, 0x4C, 0x01, 0x84, 0x08, 0x40, 0x08, 0x40, 0x0A, 0x40, 0x7F, 0x40, 0x08, 0x40, 0x09, 0x60, 0xFF, 0xD0, 0x08, 0x48, 0x0A, 0x44, 0x7F, 0x44, 0x08, 0x40, 0x08, 0x40, 0x0F, 0x40, 0x78, 0x40, 0x20, 0x40, 0x00, 0x40, 0x01, 0x00, 0x01, 0x08, 0x01, 0xFC, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x88, 0x3F, 0xC8, 0x20, 0x88, 0x20, 0x88, 0x3F, 0x88, 0x20, 0x88, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x14, 0x00, 0x08, 0x00, 0x04, 0x41, 0x04, 0x21, 0x04, 0x11, 0x24, 0x12, 0x24, 0x0A, 0x24, 0x0A, 0x24, 0x04, 0x24, 0x04, 0x24, 0x0A, 0x24, 0x09, 0x24, 0x11, 0x04, 0x10, 0x84, 0x20, 0x84, 0x40, 0x14, 0x00, 0x08, 0x20, 0x04, 0x20, 0x04, 0x20, 0xA4, 0x3F, 0xE4, 0x2A, 0xA4, 0x4A, 0xA4, 0x4A, 0xA4, 0x8A, 0xA4, 0x12, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x24, 0xA4, 0x48, 0x84, 0x12, 0x84, 0x01, 0x14, 0x00, 0x08, 0x00, 0x04, 0x7F, 0x84, 0x01, 0x04, 0x02, 0x24, 0x04, 0x24, 0x0B, 0x24, 0x30, 0xA4, 0xC0, 0x24, 0x3F, 0xA4, 0x04, 0x24, 0x04, 0x24, 0x04, 0x04, 0x07, 0x84, 0x7C, 0x04, 0x20, 0x14, 0x00, 0x08, 0x08, 0x04, 0x09, 0x04, 0xFF, 0x84, 0x14, 0x24, 0x12, 0x24, 0x21, 0xA4, 0xDE, 0xA4, 0x00, 0x24, 0xFF, 0xA4, 0x10, 0x24, 0x3F, 0x24, 0x01, 0x04, 0x01, 0x04, 0x11, 0x04, 0x0A, 0x14, 0x04, 0x08, 0x04, 0x04, 0x04, 0x04, 0x24, 0x84, 0x24, 0xA4, 0x3F, 0xA4, 0x08, 0xA4, 0x08, 0x24, 0x0F, 0xA4, 0x10, 0xA4, 0x11, 0x24, 0x31, 0x24, 0x4A, 0x04, 0x04, 0x04, 0x08, 0x04, 0x10, 0x14, 0x60, 0x08, 0x08, 0x04, 0x08, 0x04, 0x49, 0x04, 0x49, 0x24, 0x7F, 0x24, 0x00, 0x24, 0x7F, 0x24, 0x01, 0x24, 0x01, 0x24, 0x3F, 0x24, 0x21, 0x24, 0x20, 0x04, 0x21, 0x84, 0x26, 0x04, 0x38, 0x14, 0x00, 0x08, 0x08, 0x04, 0x09, 0x04, 0xFF, 0x84, 0x08, 0x24, 0x09, 0x24, 0x7F, 0xA4, 0x49, 0x24, 0x49, 0x24, 0x7F, 0x24, 0x59, 0x24, 0x1C, 0x24, 0x2A, 0x04, 0x29, 0x04, 0x49, 0x04, 0x88, 0x14, 0x08, 0x08, 0x08, 0x04, 0x09, 0x04, 0xFF, 0x84, 0x08, 0x24, 0x14, 0x24, 0x22, 0xA4, 0xFF, 0xE4, 0x01, 0x24, 0x3D, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0x04, 0x3D, 0x04, 0x21, 0x04, 0x05, 0x14, 0x02, 0x08, 0x08, 0x04, 0x49, 0x04, 0x29, 0x04, 0x2A, 0x24, 0x08, 0x24, 0x16, 0x24, 0x21, 0xA4, 0xC8, 0xA4, 0x08, 0x24, 0x29, 0x24, 0x2A, 0x24, 0x48, 0x04, 0x16, 0x04, 0x21, 0x84, 0xC0, 0x94, 0x00, 0x08, 0x08, 0x04, 0x44, 0x04, 0x7F, 0xC4, 0x40, 0x54, 0xA0, 0x94, 0x3B, 0xD4, 0x2A, 0x94, 0x4A, 0x94, 0x6A, 0x94, 0x93, 0x94, 0x12, 0x14, 0x22, 0x04, 0x22, 0x44, 0x42, 0x84, 0x83, 0x14, 0x00, 0x08, 0x11, 0x04, 0x11, 0x44, 0xFF, 0xE4, 0x11, 0x14, 0x7B, 0xD4, 0x4A, 0x54, 0x4A, 0x54, 0x7B, 0xD4, 0x4A, 0x54, 0x4A, 0x54, 0x7B, 0xD4, 0x4A, 0x44, 0x4A, 0x44, 0x4A, 0x44, 0x9C, 0xD4, 0x08, 0x48, 0x00, 0x84, 0xFF, 0xC4, 0x0A, 0x04, 0x0A, 0x54, 0x7F, 0xF4, 0x4A, 0x54, 0x4A, 0x54, 0x7F, 0xD4, 0x00, 0x14, 0x7F, 0xD4, 0x00, 0x14, 0xFF, 0xE4, 0x15, 0x04, 0x24, 0xC4, 0x44, 0x54, 0x0C, 0x08, 0x00, 0x22, 0x7F, 0xF2, 0x40, 0x02, 0x51, 0x4A, 0x4A, 0x4A, 0x7F, 0x7A, 0x44, 0x9A, 0x55, 0x0A, 0x55, 0x4A, 0x55, 0x4A, 0x5F, 0x4A, 0x44, 0x4A, 0x44, 0xA2, 0x48, 0x92, 0x91, 0x16, 0x22, 0x02, 0x04, 0x04, 0x25, 0x04, 0x3F, 0x84, 0x24, 0x24, 0x25, 0x24, 0x7F, 0xA4, 0xA4, 0x24, 0x25, 0x24, 0x3F, 0xA4, 0x24, 0x24, 0x25, 0x24, 0x3F, 0x84, 0x20, 0x04, 0x54, 0x84, 0x4A, 0x54, 0x8A, 0x48, 0x11, 0x04, 0x7F, 0xC4, 0x11, 0x04, 0x12, 0x24, 0x3F, 0xA4, 0x52, 0x24, 0x1F, 0xA4, 0x12, 0x24, 0x13, 0xA4, 0x10, 0x24, 0x3F, 0xA4, 0x11, 0x04, 0x0A, 0x04, 0x04, 0x04, 0x1B, 0x14, 0x60, 0x88, 0x04, 0x04, 0x3F, 0x84, 0x28, 0x84, 0x24, 0x94, 0x3F, 0x94, 0x00, 0x14, 0x7F, 0xD4, 0x44, 0x54, 0x7F, 0xD4, 0x44, 0x54, 0x7F, 0xD4, 0x00, 0x04, 0xFF, 0xC4, 0x11, 0x04, 0x11, 0x14, 0x21, 0x08, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x00, 0x04, 0x7F, 0xFE, 0x48, 0x24, 0x44, 0x44, 0x42, 0x84, 0x5F, 0xF4, 0x42, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x48, 0x04, 0x48, 0x04, 0x48, 0x44, 0x4F, 0xE4, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x30, 0x00, 0x50, 0x00, 0x90, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x04, 0x0B, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x30, 0x20, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x11, 0x20, 0x10, 0xA0, 0x10, 0x40, 0x08, 0x00, 0x08, 0x10, 0x09, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x31, 0x10, 0x51, 0x10, 0x91, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x12, 0x12, 0x12, 0x14, 0x0E, 0x18, 0x00, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x10, 0x84, 0x17, 0xFE, 0x30, 0x84, 0x50, 0x84, 0x90, 0x84, 0x10, 0x84, 0x10, 0x84, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x12, 0x48, 0x14, 0x28, 0x18, 0x10, 0x08, 0x00, 0x08, 0x08, 0x0B, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x30, 0x00, 0x50, 0x08, 0x93, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x09, 0x00, 0x09, 0x08, 0x09, 0xFC, 0x12, 0x00, 0x12, 0x00, 0x37, 0xF8, 0x58, 0x10, 0x90, 0x20, 0x10, 0x40, 0x10, 0x80, 0x11, 0x00, 0x12, 0x00, 0x12, 0x02, 0x12, 0x02, 0x11, 0xFE, 0x10, 0x00, 0x08, 0x20, 0x08, 0x20, 0x08, 0x40, 0x10, 0x40, 0x10, 0x80, 0x30, 0xA0, 0x51, 0x20, 0x92, 0x40, 0x14, 0x40, 0x18, 0x80, 0x11, 0x00, 0x12, 0x10, 0x14, 0x08, 0x17, 0xFC, 0x10, 0x04, 0x10, 0x00, 0x08, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x10, 0x44, 0x10, 0x44, 0x32, 0x44, 0x52, 0x44, 0x92, 0x44, 0x12, 0x44, 0x14, 0x84, 0x10, 0x84, 0x11, 0x04, 0x11, 0x04, 0x12, 0x04, 0x14, 0x28, 0x18, 0x10, 0x08, 0x00, 0x08, 0x08, 0x0B, 0xFC, 0x12, 0x00, 0x12, 0x08, 0x32, 0x88, 0x52, 0x50, 0x92, 0x50, 0x12, 0x20, 0x12, 0x20, 0x12, 0x50, 0x12, 0x88, 0x13, 0x08, 0x12, 0x04, 0x13, 0xFE, 0x10, 0x00, 0x08, 0x20, 0x0A, 0x20, 0x0A, 0x20, 0x12, 0x20, 0x12, 0x22, 0x32, 0x24, 0x53, 0xB8, 0x92, 0x20, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0x13, 0xA2, 0x12, 0x22, 0x10, 0x1E, 0x08, 0x00, 0x08, 0x08, 0x0B, 0xFC, 0x10, 0x10, 0x11, 0x10, 0x31, 0x14, 0x53, 0xFE, 0x90, 0x30, 0x10, 0x30, 0x10, 0x50, 0x10, 0x90, 0x11, 0x10, 0x12, 0x10, 0x14, 0x10, 0x10, 0x50, 0x10, 0x20, 0x08, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x11, 0x00, 0x11, 0x10, 0x31, 0xF8, 0x51, 0x10, 0x91, 0x10, 0x11, 0x90, 0x12, 0x50, 0x12, 0x30, 0x12, 0x10, 0x13, 0xD2, 0x16, 0x12, 0x10, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0A, 0x08, 0x13, 0xFC, 0x14, 0x40, 0x38, 0x40, 0x50, 0x40, 0x90, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x09, 0x00, 0x09, 0x08, 0x09, 0x10, 0x11, 0x20, 0x11, 0x40, 0x31, 0x80, 0x51, 0x04, 0x9F, 0xFE, 0x11, 0x40, 0x11, 0x40, 0x11, 0x20, 0x11, 0x10, 0x11, 0x08, 0x11, 0x46, 0x11, 0x84, 0x11, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x32, 0x0E, 0x54, 0x04, 0x99, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x11, 0x04, 0x11, 0x04, 0x10, 0xFC, 0x10, 0x00, 0x08, 0x80, 0x08, 0x40, 0x08, 0x44, 0x17, 0xFE, 0x10, 0x00, 0x30, 0x10, 0x51, 0xF8, 0x91, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x12, 0x12, 0x12, 0x14, 0x0E, 0x18, 0x00, 0x08, 0x80, 0x08, 0x40, 0x08, 0x40, 0x13, 0xFC, 0x12, 0x04, 0x34, 0x08, 0x50, 0x00, 0x90, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x08, 0x10, 0x0B, 0xF8, 0x08, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x30, 0x80, 0x50, 0x84, 0x9F, 0xFE, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x11, 0xA0, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x18, 0x16, 0x04, 0x08, 0x80, 0x08, 0x80, 0x08, 0x90, 0x10, 0xF8, 0x10, 0x80, 0x30, 0x80, 0x50, 0x84, 0x9F, 0xFE, 0x10, 0x80, 0x10, 0xC0, 0x10, 0xA0, 0x10, 0x98, 0x10, 0x88, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x10, 0x84, 0x15, 0xFE, 0x35, 0x08, 0x56, 0x88, 0x94, 0x88, 0x14, 0x88, 0x14, 0x50, 0x14, 0x50, 0x14, 0x20, 0x14, 0x50, 0x10, 0x90, 0x11, 0x0E, 0x16, 0x04, 0x08, 0x40, 0x08, 0x40, 0x0A, 0x40, 0x12, 0x48, 0x13, 0xFC, 0x34, 0x40, 0x58, 0x40, 0x90, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x11, 0x10, 0x12, 0x0E, 0x14, 0x04, 0x09, 0x00, 0x09, 0x00, 0x09, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x34, 0x24, 0x5B, 0xF4, 0x92, 0x24, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0x13, 0xE4, 0x12, 0x24, 0x10, 0x44, 0x10, 0x28, 0x10, 0x10, 0x09, 0x00, 0x09, 0x00, 0x09, 0xF8, 0x12, 0x08, 0x15, 0x10, 0x38, 0xA0, 0x50, 0x40, 0x90, 0xA0, 0x11, 0x10, 0x12, 0x8E, 0x1C, 0x64, 0x10, 0x20, 0x11, 0x80, 0x10, 0x60, 0x10, 0x30, 0x10, 0x10, 0x08, 0x80, 0x08, 0x40, 0x08, 0x40, 0x13, 0xFC, 0x12, 0x04, 0x35, 0x08, 0x51, 0x00, 0x91, 0x10, 0x11, 0x30, 0x11, 0x40, 0x11, 0x80, 0x11, 0x00, 0x11, 0x04, 0x11, 0x04, 0x10, 0xFC, 0x10, 0x00, 0x08, 0x08, 0x0B, 0xFC, 0x0A, 0x08, 0x12, 0x08, 0x12, 0x08, 0x33, 0xF8, 0x52, 0x08, 0x92, 0x80, 0x12, 0x88, 0x12, 0x98, 0x12, 0xA0, 0x12, 0xC0, 0x14, 0x82, 0x14, 0x82, 0x18, 0x7E, 0x10, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x04, 0x24, 0xBE, 0x3F, 0xE4, 0x64, 0xA4, 0xA4, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x28, 0xA4, 0x28, 0xBC, 0x32, 0xA4, 0x21, 0x00, 0x08, 0x40, 0x08, 0x40, 0x08, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x30, 0x48, 0x57, 0xFC, 0x90, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x08, 0x04, 0x0F, 0xFE, 0x09, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x31, 0x08, 0x51, 0x08, 0x91, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x11, 0x7E, 0x17, 0x88, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x08, 0x80, 0x08, 0x80, 0x08, 0x84, 0x17, 0xFE, 0x11, 0x00, 0x31, 0x08, 0x53, 0xFC, 0x95, 0x08, 0x19, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0x28, 0x11, 0x10, 0x08, 0x40, 0x08, 0x40, 0x08, 0x44, 0x1F, 0xFE, 0x10, 0xA0, 0x31, 0x10, 0x52, 0xEE, 0x9C, 0x04, 0x13, 0xF8, 0x11, 0x00, 0x11, 0xF8, 0x10, 0x08, 0x10, 0x08, 0x10, 0x90, 0x10, 0x50, 0x10, 0x20, 0x08, 0x08, 0x0B, 0xFC, 0x0A, 0x08, 0x12, 0x08, 0x12, 0x08, 0x33, 0xF8, 0x50, 0x00, 0x92, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x4A, 0x14, 0x4A, 0x18, 0x4E, 0x10, 0x00, 0x08, 0x40, 0x0A, 0x40, 0x0A, 0x48, 0x13, 0xFC, 0x14, 0x40, 0x38, 0x40, 0x50, 0x44, 0x9F, 0xFE, 0x10, 0xC0, 0x10, 0xE0, 0x11, 0x50, 0x12, 0x48, 0x14, 0x4E, 0x18, 0x44, 0x10, 0x40, 0x10, 0x40, 0x08, 0x40, 0x09, 0x40, 0x09, 0x20, 0x12, 0x10, 0x14, 0x0E, 0x3B, 0xF4, 0x52, 0x10, 0x92, 0x10, 0x13, 0xF0, 0x12, 0x10, 0x12, 0x10, 0x13, 0xF0, 0x12, 0x10, 0x12, 0x10, 0x12, 0x50, 0x12, 0x20, 0x08, 0xA0, 0x08, 0xA0, 0x08, 0xA0, 0x14, 0xA4, 0x12, 0xAC, 0x32, 0xB0, 0x50, 0xA0, 0x91, 0xB0, 0x12, 0xAC, 0x14, 0xA4, 0x10, 0xA0, 0x11, 0x20, 0x11, 0x22, 0x12, 0x22, 0x14, 0x1E, 0x18, 0x00, 0x08, 0x40, 0x08, 0x28, 0x0F, 0xFC, 0x11, 0x10, 0x10, 0xA0, 0x30, 0x40, 0x50, 0xB0, 0x93, 0x0E, 0x1D, 0x14, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x14, 0x10, 0x08, 0x80, 0x08, 0x40, 0x08, 0x48, 0x17, 0xFC, 0x11, 0x20, 0x31, 0x10, 0x52, 0x0C, 0x95, 0x14, 0x11, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x1C, 0x04, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x17, 0xFE, 0x14, 0x82, 0x38, 0x84, 0x51, 0x40, 0x91, 0x48, 0x13, 0x30, 0x15, 0x20, 0x19, 0x10, 0x11, 0x10, 0x11, 0x08, 0x11, 0x4E, 0x11, 0x84, 0x11, 0x00, 0x08, 0x80, 0x08, 0x80, 0x09, 0x10, 0x12, 0x08, 0x17, 0xFC, 0x32, 0x44, 0x52, 0x50, 0x93, 0xF8, 0x14, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x08, 0x80, 0x08, 0x88, 0x0F, 0xFC, 0x10, 0x80, 0x17, 0xF8, 0x31, 0x00, 0x5F, 0xFE, 0x91, 0x10, 0x12, 0x14, 0x13, 0xFE, 0x15, 0x10, 0x18, 0x90, 0x10, 0x90, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x08, 0x08, 0x0F, 0xFC, 0x08, 0xA0, 0x14, 0xA4, 0x12, 0xA8, 0x30, 0xA0, 0x57, 0xFE, 0x94, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x18, 0x00, 0x08, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x10, 0x00, 0x10, 0x04, 0x37, 0xBE, 0x54, 0xA4, 0x94, 0xA4, 0x16, 0xB4, 0x15, 0xAC, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x15, 0xAC, 0x08, 0x40, 0x08, 0x50, 0x08, 0x48, 0x10, 0x48, 0x17, 0xFE, 0x30, 0x40, 0x54, 0x48, 0x92, 0x50, 0x12, 0x60, 0x10, 0xD0, 0x11, 0x50, 0x12, 0x48, 0x14, 0x4E, 0x10, 0x44, 0x11, 0x40, 0x10, 0x80, 0x08, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x14, 0x44, 0x14, 0x44, 0x37, 0xFC, 0x54, 0x44, 0x94, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x08, 0x08, 0x0B, 0xFC, 0x0A, 0x08, 0x12, 0x08, 0x12, 0x08, 0x33, 0xF8, 0x50, 0x00, 0x97, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x1C, 0x04, 0x08, 0x40, 0x08, 0x48, 0x0B, 0xFC, 0x12, 0x48, 0x13, 0xF8, 0x32, 0x48, 0x53, 0xF8, 0x90, 0x00, 0x1F, 0xFE, 0x11, 0x00, 0x11, 0xF8, 0x10, 0x08, 0x10, 0x08, 0x10, 0x88, 0x10, 0x50, 0x10, 0x20, 0x08, 0x00, 0x0B, 0xF8, 0x08, 0x10, 0x10, 0xA0, 0x10, 0x44, 0x37, 0xFE, 0x54, 0x44, 0x94, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x14, 0x44, 0x14, 0x54, 0x14, 0x08, 0x08, 0x80, 0x08, 0x80, 0x09, 0x10, 0x12, 0x08, 0x17, 0xFC, 0x31, 0x04, 0x51, 0x00, 0x91, 0xF8, 0x12, 0x40, 0x14, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x10, 0x90, 0x11, 0x0E, 0x16, 0x04, 0x08, 0x40, 0x08, 0x48, 0x0F, 0xFC, 0x10, 0x40, 0x13, 0xF8, 0x30, 0x80, 0x5F, 0xFE, 0x91, 0x10, 0x12, 0x48, 0x15, 0xFE, 0x18, 0x44, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x08, 0x40, 0x08, 0x48, 0x0F, 0xFC, 0x10, 0x40, 0x13, 0xF8, 0x30, 0x40, 0x5F, 0xFE, 0x90, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x28, 0x12, 0x10, 0x09, 0x10, 0x09, 0x10, 0x0F, 0xFC, 0x11, 0x10, 0x11, 0x90, 0x30, 0x84, 0x5F, 0xFE, 0x91, 0x00, 0x11, 0x00, 0x12, 0x08, 0x13, 0xFC, 0x16, 0x08, 0x1A, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x08, 0xA0, 0x08, 0xA0, 0x08, 0xA4, 0x17, 0xBE, 0x10, 0xA0, 0x30, 0xA0, 0x50, 0xA8, 0x97, 0xBC, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA4, 0x1F, 0xBE, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x08, 0x40, 0x08, 0x48, 0x08, 0x7C, 0x10, 0x40, 0x13, 0xF8, 0x32, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x11, 0x00, 0x11, 0x08, 0x11, 0xFC, 0x29, 0x10, 0x2A, 0xA0, 0x6C, 0x40, 0xA8, 0xB0, 0x29, 0x4E, 0x2E, 0x50, 0x28, 0x48, 0x2F, 0xFC, 0x28, 0x40, 0x20, 0xA0, 0x20, 0x90, 0x21, 0x0E, 0x26, 0x04, 0x08, 0x04, 0x0F, 0xFE, 0x0C, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x34, 0x44, 0x54, 0x44, 0x97, 0xFC, 0x14, 0x44, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0xE0, 0x11, 0x50, 0x12, 0x4E, 0x1C, 0x44, 0x10, 0x40, 0x08, 0x18, 0x0B, 0xE0, 0x08, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x31, 0x50, 0x52, 0x48, 0x94, 0x46, 0x10, 0x80, 0x1F, 0xFE, 0x11, 0x10, 0x12, 0x10, 0x11, 0xA0, 0x10, 0x40, 0x11, 0xB0, 0x16, 0x08, 0x08, 0x80, 0x09, 0x08, 0x0B, 0xFC, 0x12, 0x48, 0x12, 0x48, 0x33, 0xF8, 0x52, 0x48, 0x92, 0x48, 0x13, 0xF8, 0x10, 0xA0, 0x11, 0x24, 0x1F, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x08, 0x04, 0x0F, 0xFE, 0x0C, 0x44, 0x14, 0x54, 0x17, 0xFC, 0x34, 0x44, 0x54, 0x44, 0x95, 0xF4, 0x14, 0x04, 0x15, 0xF4, 0x15, 0x14, 0x15, 0x14, 0x15, 0xF4, 0x14, 0x04, 0x14, 0x14, 0x18, 0x08, 0x08, 0x80, 0x08, 0x40, 0x0B, 0xFE, 0x12, 0x02, 0x14, 0x04, 0x33, 0xF8, 0x52, 0x08, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x08, 0x80, 0x08, 0x40, 0x08, 0x40, 0x17, 0xFE, 0x14, 0x02, 0x39, 0x14, 0x52, 0x08, 0x94, 0x04, 0x10, 0x10, 0x13, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x08, 0x04, 0x0B, 0xFE, 0x0A, 0x04, 0x12, 0x04, 0x13, 0xFC, 0x32, 0x24, 0x52, 0x20, 0x93, 0xFE, 0x12, 0x20, 0x12, 0x24, 0x13, 0xFE, 0x13, 0x04, 0x15, 0x04, 0x15, 0x04, 0x19, 0xFC, 0x11, 0x04, 0x08, 0x40, 0x08, 0x48, 0x0F, 0xFC, 0x10, 0x40, 0x11, 0x54, 0x3F, 0xFE, 0x51, 0x10, 0x90, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x10, 0xB0, 0x11, 0x0C, 0x16, 0x04, 0x08, 0x04, 0x0F, 0xFE, 0x0C, 0x00, 0x15, 0xFC, 0x15, 0x04, 0x35, 0xFC, 0x55, 0x04, 0x95, 0xFC, 0x14, 0x40, 0x17, 0xFE, 0x14, 0x48, 0x14, 0x90, 0x14, 0x70, 0x14, 0x88, 0x17, 0xFE, 0x10, 0x00, 0x0A, 0x20, 0x0A, 0x24, 0x0B, 0xAC, 0x12, 0x30, 0x12, 0xA2, 0x33, 0x22, 0x56, 0x5E, 0x90, 0x88, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x08, 0x08, 0x0B, 0xFC, 0x0A, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x33, 0xF8, 0x51, 0x00, 0x91, 0x04, 0x13, 0xFE, 0x14, 0x44, 0x1A, 0x44, 0x12, 0xA4, 0x12, 0x04, 0x13, 0xE4, 0x10, 0x14, 0x10, 0x08, 0x08, 0x08, 0x0B, 0xFC, 0x0A, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x32, 0x48, 0x52, 0x48, 0x93, 0xF8, 0x10, 0x04, 0x1F, 0xFE, 0x12, 0x88, 0x12, 0x50, 0x12, 0x20, 0x12, 0x90, 0x13, 0x0E, 0x12, 0x04, 0x09, 0x00, 0x09, 0x04, 0x09, 0xFE, 0x12, 0xA4, 0x13, 0xA4, 0x34, 0xF4, 0x59, 0x2C, 0x92, 0x44, 0x14, 0x94, 0x11, 0x08, 0x10, 0x40, 0x15, 0x24, 0x15, 0x22, 0x19, 0x0A, 0x10, 0xF8, 0x10, 0x00, 0x08, 0x40, 0x0A, 0x48, 0x09, 0x50, 0x10, 0x40, 0x17, 0xFC, 0x30, 0xE0, 0x51, 0x50, 0x92, 0x4C, 0x10, 0x80, 0x1F, 0xFE, 0x11, 0x10, 0x12, 0x10, 0x11, 0x20, 0x10, 0xC0, 0x11, 0x30, 0x16, 0x08, 0x10, 0x80, 0x14, 0x90, 0x12, 0xA0, 0x20, 0x80, 0x2F, 0xFC, 0x68, 0x04, 0xB7, 0xF8, 0x24, 0x10, 0x24, 0x10, 0x24, 0x10, 0x27, 0xF0, 0x25, 0x50, 0x21, 0x40, 0x21, 0x44, 0x22, 0x44, 0x2C, 0x3C, 0x08, 0x80, 0x08, 0x40, 0x0B, 0xFE, 0x12, 0x02, 0x14, 0x34, 0x31, 0xC0, 0x51, 0x08, 0x91, 0xFC, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x90, 0x11, 0x0C, 0x16, 0x04, 0x10, 0x20, 0x10, 0x30, 0x10, 0x28, 0x2F, 0x7E, 0x21, 0x48, 0x71, 0xC8, 0xAA, 0x7E, 0x2A, 0x48, 0x24, 0x48, 0x24, 0x7E, 0x2A, 0x48, 0x29, 0x48, 0x31, 0x48, 0x20, 0x7E, 0x20, 0x40, 0x20, 0x40, 0x0A, 0x00, 0x0A, 0x20, 0x0B, 0xBC, 0x14, 0xA4, 0x1A, 0xA8, 0x35, 0x10, 0x53, 0x10, 0x92, 0xE8, 0x14, 0x06, 0x18, 0x00, 0x17, 0xFC, 0x11, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x11, 0x40, 0x10, 0x80, 0x08, 0x48, 0x0F, 0xFC, 0x08, 0x40, 0x13, 0xF8, 0x10, 0x00, 0x33, 0xF8, 0x52, 0x08, 0x93, 0xF8, 0x11, 0x10, 0x1F, 0xFE, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x15, 0x20, 0x15, 0x20, 0x1F, 0xA0, 0x25, 0x24, 0x25, 0x7E, 0x68, 0x84, 0xAF, 0xC4, 0x28, 0xC4, 0x30, 0xA8, 0x2E, 0xA8, 0x2A, 0xA8, 0x2A, 0x90, 0x2E, 0xA8, 0x20, 0xA8, 0x22, 0xC6, 0x21, 0x04, 0x11, 0x04, 0x1F, 0xBE, 0x1A, 0x28, 0x2A, 0x28, 0x2F, 0xBE, 0x62, 0x08, 0xA6, 0x18, 0x2A, 0xAA, 0x33, 0x4E, 0x20, 0x08, 0x27, 0xFC, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x09, 0x40, 0x09, 0x24, 0x09, 0xFE, 0x12, 0x20, 0x16, 0x28, 0x3B, 0xFC, 0x52, 0x20, 0x92, 0x28, 0x13, 0xFC, 0x12, 0x20, 0x12, 0x24, 0x13, 0xFE, 0x12, 0x00, 0x15, 0x24, 0x14, 0x92, 0x18, 0x02, 0x14, 0x10, 0x12, 0x10, 0x12, 0x98, 0x3F, 0xD4, 0x20, 0x10, 0x6F, 0xFE, 0xA8, 0x90, 0x28, 0x90, 0x28, 0x98, 0x2F, 0x98, 0x22, 0x28, 0x2B, 0x28, 0x2A, 0xA8, 0x32, 0xCA, 0x26, 0x4A, 0x20, 0x86, 0x08, 0x40, 0x0F, 0xFC, 0x09, 0x10, 0x10, 0xA4, 0x1F, 0xFE, 0x30, 0x00, 0x57, 0xFC, 0x94, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x17, 0xFC, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0x00, 0x08, 0x04, 0x0F, 0xFE, 0x0C, 0xA4, 0x14, 0xA4, 0x17, 0xFC, 0x30, 0x00, 0x5F, 0xFE, 0x90, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x10, 0xC4, 0x11, 0x28, 0x13, 0x10, 0x1D, 0x8E, 0x11, 0x04, 0x09, 0x00, 0x09, 0xF8, 0x0A, 0x10, 0x17, 0xFE, 0x14, 0x88, 0x35, 0x24, 0x57, 0xFE, 0x94, 0x00, 0x15, 0xFC, 0x14, 0x00, 0x15, 0xFC, 0x14, 0x00, 0x15, 0xFC, 0x15, 0x04, 0x19, 0xFC, 0x11, 0x04, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x20, 0x0E, 0xC0, 0x24, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x3D, 0x90, 0x05, 0x60, 0x09, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0x41, 0x04, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x4E, 0xCF, 0xE4, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x09, 0x20, 0x19, 0x18, 0x21, 0x0C, 0x45, 0x04, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x50, 0x2F, 0xEE, 0xC0, 0x04, 0x12, 0x10, 0x09, 0x10, 0x09, 0x20, 0x09, 0x20, 0x08, 0x40, 0x00, 0x84, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x29, 0x08, 0x29, 0x08, 0x45, 0xF8, 0x95, 0x08, 0x11, 0x08, 0x11, 0x08, 0x29, 0xF8, 0x29, 0x08, 0x45, 0x08, 0x45, 0x08, 0x81, 0x08, 0x0F, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x37, 0xD8, 0xC0, 0x06, 0x3B, 0xB8, 0x2A, 0xA8, 0x3B, 0xB8, 0x00, 0x00, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x20, 0x18, 0x06, 0x00, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x31, 0x18, 0xC1, 0x06, 0x01, 0x00, 0x3D, 0x90, 0x05, 0x60, 0x09, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0x41, 0x04, 0x05, 0x00, 0x02, 0x00, 0x06, 0x00, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x31, 0x18, 0xC1, 0x06, 0x11, 0x10, 0x09, 0x20, 0x01, 0x08, 0x7F, 0xFC, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x04, 0x40, 0x04, 0x40, 0x08, 0x20, 0x08, 0x20, 0x10, 0x10, 0x20, 0x58, 0x5F, 0xEE, 0x88, 0x04, 0x08, 0x20, 0x1F, 0xF0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x02, 0x20, 0x01, 0x40, 0x00, 0x80, 0x00, 0x08, 0x3E, 0xFC, 0x22, 0x88, 0x22, 0x88, 0x3E, 0xF8, 0x20, 0x80, 0x22, 0x84, 0x1E, 0x7C, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x18, 0x30, 0x20, 0x08, 0x22, 0x08, 0x11, 0x10, 0x7F, 0xFE, 0x44, 0x42, 0x9F, 0xF4, 0x04, 0x40, 0xFF, 0xFE, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x04, 0x40, 0x18, 0x30, 0x20, 0x08, 0x00, 0x10, 0x44, 0x18, 0x28, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x20, 0x10, 0x7D, 0xD4, 0x45, 0x54, 0x45, 0x54, 0x7D, 0x54, 0x45, 0xD4, 0x7C, 0x18, 0x44, 0xD2, 0x47, 0x2A, 0x7C, 0x46, 0x44, 0x82, 0x44, 0x04, 0x25, 0xFE, 0x29, 0x04, 0x7D, 0x04, 0x55, 0xFC, 0x55, 0x48, 0x7D, 0xFC, 0x55, 0x48, 0x55, 0x48, 0x7D, 0xFE, 0x12, 0xA4, 0xFE, 0xA8, 0x12, 0x90, 0x14, 0x88, 0x18, 0xC6, 0x10, 0x80, 0x04, 0x40, 0xFF, 0xFE, 0x01, 0x00, 0x17, 0xDC, 0x54, 0x54, 0x5F, 0xD4, 0x54, 0x5C, 0x57, 0xD0, 0x5C, 0x52, 0xE7, 0xCE, 0x14, 0x10, 0x27, 0xC8, 0x4C, 0x44, 0x13, 0x80, 0x0C, 0x60, 0x70, 0x1C, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x04, 0x40, 0x04, 0x80, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x28, 0x00, 0x10, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x22, 0x84, 0x42, 0x44, 0xBF, 0xF4, 0x02, 0x04, 0x3F, 0xE4, 0x22, 0x24, 0x3F, 0xE4, 0x22, 0x24, 0x3F, 0xE4, 0x22, 0x24, 0x22, 0x64, 0x22, 0x34, 0x00, 0x08, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x24, 0x04, 0x42, 0x44, 0xBF, 0xE4, 0x00, 0x04, 0x1F, 0xC4, 0x00, 0x04, 0x1F, 0xC4, 0x00, 0x04, 0x1F, 0xC4, 0x10, 0x44, 0x10, 0x44, 0x1F, 0xD4, 0x00, 0x08, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x44, 0x7F, 0xE4, 0x80, 0x04, 0x1F, 0xC4, 0x10, 0x44, 0x1F, 0xC4, 0x00, 0x04, 0x3F, 0xE4, 0x22, 0x24, 0x3F, 0xE4, 0x22, 0x24, 0x3F, 0xF4, 0x00, 0x08, 0x02, 0x00, 0x04, 0x20, 0x3F, 0xF0, 0x20, 0x20, 0x24, 0x20, 0x22, 0xA0, 0x20, 0x48, 0x3F, 0xFC, 0x00, 0x08, 0x0F, 0xA8, 0x08, 0x90, 0x08, 0x80, 0x08, 0x80, 0x10, 0x82, 0x20, 0x82, 0xC0, 0x7E, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x20, 0x90, 0x2F, 0xD0, 0x22, 0x10, 0x22, 0x10, 0x27, 0xD0, 0x24, 0x50, 0x2C, 0x50, 0x32, 0x90, 0x21, 0x10, 0x22, 0x12, 0x44, 0x12, 0x48, 0x0A, 0x80, 0x04, 0x00, 0x08, 0x3C, 0x7C, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x24, 0x48, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x3E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x12, 0x18, 0x22, 0x0C, 0x44, 0x44, 0x08, 0x20, 0x1F, 0xF0, 0x04, 0x90, 0x04, 0x80, 0x04, 0x80, 0x04, 0x84, 0x08, 0x84, 0x10, 0x7C, 0x60, 0x00, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x40, 0x00, 0x7F, 0xFE, 0x40, 0x12, 0x9F, 0xE4, 0x01, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0x04, 0x01, 0x04, 0x00, 0xFC, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x12, 0x18, 0x22, 0x4C, 0x44, 0x24, 0x1F, 0xF0, 0x02, 0x00, 0x06, 0x18, 0x0D, 0x10, 0x14, 0xA0, 0x24, 0x40, 0xC5, 0x30, 0x06, 0x0E, 0x04, 0x04, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x02, 0x40, 0x01, 0x80, 0x7F, 0xFC, 0x04, 0x84, 0x08, 0x88, 0x32, 0x80, 0x01, 0x10, 0x02, 0xA0, 0x0C, 0x40, 0x15, 0x30, 0x66, 0x0E, 0x04, 0x04, 0x01, 0x00, 0xFF, 0xFE, 0x08, 0x40, 0x08, 0x48, 0x7E, 0xFC, 0x08, 0x48, 0x0E, 0xC8, 0x78, 0xA8, 0x09, 0x0A, 0x1A, 0x06, 0x01, 0x10, 0x02, 0xA0, 0x0C, 0x40, 0x15, 0x30, 0x66, 0x0E, 0x04, 0x04, 0x01, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x14, 0x50, 0x24, 0x4C, 0x45, 0x44, 0x01, 0x00, 0x3F, 0xF8, 0x22, 0x88, 0x24, 0x68, 0x29, 0x28, 0x22, 0x88, 0x24, 0x68, 0x28, 0x28, 0x20, 0x28, 0x20, 0x10, 0x01, 0x00, 0xFF, 0xFE, 0x02, 0x10, 0x1C, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1C, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x05, 0x08, 0x08, 0x90, 0x18, 0x60, 0x2A, 0x30, 0xCC, 0x0E, 0x08, 0x04, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x27, 0xC8, 0x24, 0x48, 0x3F, 0xF8, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x09, 0x20, 0x11, 0x18, 0x21, 0x08, 0x03, 0x00, 0x01, 0x00, 0xFF, 0xFE, 0x20, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x79, 0x38, 0x49, 0x28, 0x7F, 0xE8, 0x4A, 0xB8, 0x7A, 0xA8, 0x49, 0x2A, 0x4E, 0xEA, 0x98, 0x46, 0x01, 0x00, 0xFF, 0xFE, 0x20, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x71, 0x1C, 0x57, 0xD4, 0x75, 0x54, 0x57, 0xDC, 0x71, 0x14, 0x51, 0x54, 0x57, 0xD4, 0xB0, 0x22, 0x01, 0x00, 0xFF, 0xFE, 0x20, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x7A, 0xB8, 0x4F, 0xE8, 0x79, 0x28, 0x4F, 0xE8, 0x79, 0x38, 0x4F, 0xEA, 0x49, 0x2A, 0x99, 0x46, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0xE0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x08, 0x4F, 0xFC, 0x22, 0x00, 0x12, 0x00, 0x12, 0x10, 0x03, 0xF8, 0x02, 0x10, 0x12, 0x10, 0x22, 0x10, 0x22, 0x10, 0xE7, 0xF0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x2F, 0xFE, 0x00, 0x00, 0x00, 0x44, 0x4F, 0xE4, 0x22, 0x04, 0x12, 0x14, 0x13, 0xD4, 0x02, 0x54, 0x14, 0x54, 0x14, 0x54, 0x26, 0x54, 0x29, 0x94, 0xE0, 0x94, 0x21, 0x14, 0x22, 0x04, 0x24, 0x04, 0x28, 0x14, 0x00, 0x08, 0x00, 0x40, 0x42, 0x40, 0x22, 0x48, 0x13, 0xFC, 0x12, 0x40, 0x04, 0x40, 0x00, 0x44, 0x17, 0xFE, 0x21, 0x20, 0x21, 0x20, 0xE1, 0x20, 0x21, 0x20, 0x22, 0x22, 0x22, 0x22, 0x24, 0x1E, 0x08, 0x00, 0x02, 0x00, 0x42, 0x28, 0x22, 0x28, 0x22, 0x28, 0x1F, 0xC4, 0x02, 0x44, 0x26, 0x92, 0x27, 0x10, 0x2A, 0x90, 0x4A, 0xA0, 0xD2, 0x20, 0x42, 0x48, 0x42, 0x44, 0x42, 0xFE, 0x42, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x24, 0x3F, 0xF0, 0x06, 0x00, 0x09, 0x08, 0x1A, 0x90, 0x74, 0xE0, 0x0B, 0xA0, 0x16, 0xA0, 0x64, 0x90, 0x08, 0x8E, 0x10, 0x84, 0x62, 0x80, 0x01, 0x00, 0x40, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x14, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x12, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x20, 0x10, 0x18, 0x20, 0x08, 0x00, 0x00, 0x40, 0x00, 0x30, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x14, 0x00, 0x18, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x47, 0xFC, 0x30, 0x40, 0x10, 0x40, 0x00, 0x40, 0x00, 0x40, 0xF0, 0x44, 0x17, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x14, 0x40, 0x18, 0x40, 0x10, 0x40, 0x00, 0x40, 0x00, 0x00, 0x40, 0x08, 0x37, 0xFC, 0x10, 0x40, 0x00, 0x40, 0x00, 0x40, 0xF0, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x12, 0x40, 0x14, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x20, 0x40, 0x20, 0x40, 0x04, 0x44, 0x04, 0x44, 0xE4, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x2C, 0x44, 0x37, 0xFC, 0x20, 0x04, 0x00, 0x00, 0x00, 0x08, 0x47, 0xFC, 0x24, 0x00, 0x24, 0x04, 0x05, 0x04, 0x04, 0x88, 0xE4, 0x50, 0x24, 0x20, 0x24, 0x50, 0x24, 0x88, 0x25, 0x0C, 0x26, 0x04, 0x2C, 0x00, 0x34, 0x04, 0x27, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x43, 0xFC, 0x32, 0x00, 0x12, 0x00, 0x02, 0x08, 0x03, 0xFC, 0xF2, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x00, 0x16, 0x00, 0x1A, 0x04, 0x13, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x20, 0x40, 0x20, 0x44, 0x07, 0xFE, 0x04, 0x44, 0xE4, 0x44, 0x24, 0x44, 0x24, 0xA4, 0x24, 0xA4, 0x25, 0x14, 0x25, 0x14, 0x2E, 0x0C, 0x34, 0x04, 0x24, 0x14, 0x04, 0x08, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x44, 0x07, 0xFE, 0x00, 0x40, 0xF0, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x16, 0x08, 0x1A, 0x08, 0x13, 0xF8, 0x02, 0x08, 0x00, 0x00, 0x40, 0x04, 0x37, 0xFE, 0x10, 0x08, 0x00, 0x48, 0x03, 0xE8, 0xF2, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x13, 0xC8, 0x10, 0x08, 0x14, 0x08, 0x18, 0x08, 0x10, 0x28, 0x00, 0x10, 0x00, 0x10, 0x40, 0x78, 0x27, 0xC0, 0x24, 0x40, 0x04, 0x40, 0x04, 0x48, 0xE7, 0xFC, 0x24, 0x40, 0x24, 0x40, 0x24, 0x40, 0x24, 0x20, 0x24, 0xA0, 0x2D, 0x12, 0x36, 0x92, 0x24, 0x4A, 0x00, 0x06, 0x00, 0x04, 0x47, 0xFE, 0x30, 0x84, 0x10, 0x84, 0x00, 0x84, 0x01, 0x04, 0xF1, 0x14, 0x12, 0x08, 0x14, 0x00, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x15, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x00, 0x40, 0x40, 0x40, 0x22, 0x48, 0x22, 0x48, 0x02, 0x48, 0x02, 0x48, 0xE2, 0x48, 0x23, 0xF8, 0x20, 0x40, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x2C, 0x44, 0x34, 0x44, 0x27, 0xFC, 0x00, 0x04, 0x00, 0x40, 0x40, 0x40, 0x30, 0x80, 0x11, 0x08, 0x02, 0x04, 0x07, 0xFE, 0xF0, 0x02, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04, 0x16, 0x04, 0x1A, 0x04, 0x13, 0xFC, 0x02, 0x04, 0x00, 0x08, 0x43, 0xFC, 0x32, 0x00, 0x12, 0x08, 0x03, 0xFC, 0x02, 0x20, 0xF2, 0x20, 0x12, 0xF8, 0x12, 0x20, 0x12, 0x20, 0x12, 0x28, 0x13, 0xFC, 0x16, 0x00, 0x1A, 0x04, 0x13, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x40, 0x48, 0x37, 0xFC, 0x10, 0x40, 0x00, 0x50, 0x03, 0xF8, 0xF0, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0xC0, 0x10, 0xE0, 0x15, 0x50, 0x19, 0x48, 0x12, 0x4E, 0x04, 0x44, 0x00, 0x40, 0x00, 0x40, 0x40, 0x50, 0x33, 0xF8, 0x10, 0x40, 0x00, 0x40, 0x00, 0x48, 0xF7, 0xFC, 0x10, 0x00, 0x10, 0x40, 0x10, 0x50, 0x13, 0xF8, 0x10, 0x40, 0x14, 0x40, 0x18, 0x44, 0x17, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0x44, 0x1F, 0xFE, 0x00, 0x40, 0x00, 0x48, 0xF7, 0xFC, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x16, 0x08, 0x1A, 0x08, 0x13, 0xF8, 0x02, 0x08, 0x00, 0x80, 0x40, 0x80, 0x30, 0x84, 0x17, 0xFE, 0x01, 0x00, 0x01, 0x20, 0xF1, 0x20, 0x12, 0xA4, 0x12, 0xAC, 0x14, 0xB0, 0x19, 0x20, 0x10, 0x50, 0x14, 0x50, 0x18, 0x88, 0x11, 0x0E, 0x02, 0x04, 0x00, 0x40, 0x42, 0x40, 0x32, 0x48, 0x13, 0xFC, 0x04, 0x40, 0x00, 0x40, 0xF0, 0x44, 0x1F, 0xFE, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x15, 0x10, 0x1A, 0x12, 0x12, 0x12, 0x04, 0x0E, 0x08, 0x00, 0x00, 0x08, 0x40, 0x1C, 0x33, 0xE0, 0x12, 0x00, 0x02, 0x04, 0x03, 0xFE, 0xF2, 0x00, 0x12, 0x04, 0x12, 0xFE, 0x12, 0x84, 0x12, 0x84, 0x16, 0x84, 0x1A, 0x84, 0x12, 0x84, 0x04, 0xFC, 0x08, 0x84, 0x00, 0x40, 0x40, 0x40, 0x30, 0xA0, 0x11, 0x10, 0x02, 0x0E, 0x0C, 0x04, 0xF3, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x10, 0x50, 0x13, 0xF8, 0x10, 0x40, 0x14, 0x40, 0x18, 0x48, 0x17, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x41, 0x00, 0x31, 0xF0, 0x12, 0x20, 0x04, 0x48, 0x0B, 0xFC, 0xF0, 0x48, 0x10, 0x48, 0x1F, 0xFE, 0x10, 0x48, 0x10, 0x48, 0x13, 0xF8, 0x14, 0x48, 0x18, 0x40, 0x11, 0x40, 0x00, 0x80, 0x00, 0x00, 0x47, 0xFC, 0x34, 0x84, 0x18, 0x88, 0x07, 0xFC, 0x01, 0x00, 0xF1, 0x40, 0x12, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x14, 0x40, 0x18, 0x40, 0x00, 0x40, 0x00, 0x00, 0x40, 0x04, 0x37, 0xBE, 0x10, 0x84, 0x00, 0x84, 0x04, 0xA4, 0xF2, 0x94, 0x12, 0x94, 0x10, 0x84, 0x11, 0x8C, 0x16, 0xB4, 0x10, 0x84, 0x14, 0x84, 0x18, 0x84, 0x12, 0x94, 0x01, 0x08, 0x00, 0x40, 0x42, 0x48, 0x31, 0x58, 0x11, 0x60, 0x00, 0x48, 0x03, 0xFC, 0xF2, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x16, 0x08, 0x1A, 0x08, 0x12, 0x28, 0x02, 0x10, 0x00, 0x40, 0x42, 0x40, 0x32, 0x48, 0x13, 0xFC, 0x04, 0x40, 0x08, 0x44, 0xF7, 0xFE, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x16, 0x08, 0x1A, 0x08, 0x13, 0xF8, 0x02, 0x08, 0x08, 0x80, 0x45, 0x04, 0x32, 0xFE, 0x15, 0x10, 0x09, 0x10, 0x01, 0x10, 0xF1, 0x10, 0x13, 0x10, 0x15, 0x7C, 0x19, 0x10, 0x11, 0x10, 0x11, 0x10, 0x15, 0x10, 0x19, 0x14, 0x15, 0xFE, 0x02, 0x00, 0x00, 0x80, 0x40, 0x80, 0x31, 0x10, 0x12, 0x08, 0x07, 0xFC, 0x01, 0x04, 0xF1, 0x10, 0x11, 0xF8, 0x12, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x14, 0xA0, 0x18, 0x90, 0x11, 0x0E, 0x06, 0x04, 0x00, 0x04, 0x5F, 0xFE, 0x24, 0x80, 0x24, 0x80, 0x07, 0xBE, 0x04, 0x82, 0xE4, 0xA2, 0x27, 0x94, 0x24, 0x94, 0x24, 0x94, 0x24, 0x88, 0x2F, 0xC8, 0x28, 0x94, 0x30, 0x94, 0x20, 0xA2, 0x00, 0xC0, 0x00, 0x04, 0x4F, 0xFE, 0x20, 0x80, 0x21, 0x00, 0x03, 0x04, 0x04, 0x8C, 0xE8, 0xD0, 0x25, 0x60, 0x22, 0x60, 0x26, 0x50, 0x29, 0xD0, 0x21, 0x48, 0x2A, 0x4E, 0x34, 0x44, 0x21, 0x40, 0x00, 0x80, 0x00, 0x3C, 0x43, 0xC0, 0x30, 0x40, 0x10, 0x48, 0x07, 0xFC, 0x01, 0x50, 0xF2, 0x4E, 0x14, 0x44, 0x10, 0x80, 0x1F, 0xFE, 0x11, 0x10, 0x11, 0x10, 0x14, 0xA0, 0x18, 0x60, 0x11, 0x98, 0x06, 0x04, 0x00, 0x40, 0x41, 0x44, 0x36, 0x5E, 0x14, 0x44, 0x04, 0x44, 0x07, 0x5C, 0xF4, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x10, 0xA0, 0x10, 0xA0, 0x15, 0x10, 0x19, 0x08, 0x12, 0x0E, 0x0C, 0x04, 0x00, 0x40, 0x40, 0x40, 0x20, 0xA0, 0x21, 0x10, 0x02, 0x88, 0x04, 0x46, 0xE8, 0x04, 0x23, 0xF0, 0x20, 0x10, 0x20, 0x20, 0x21, 0x00, 0x2D, 0x48, 0x35, 0x24, 0x25, 0x04, 0x09, 0x10, 0x00, 0xF0, 0x00, 0x80, 0x40, 0x80, 0x30, 0xFC, 0x11, 0x08, 0x02, 0x10, 0x04, 0x20, 0xF0, 0x84, 0x13, 0x3E, 0x12, 0x04, 0x12, 0x04, 0x13, 0xBC, 0x12, 0x04, 0x16, 0x04, 0x1A, 0x04, 0x13, 0xFC, 0x02, 0x04, 0x00, 0x80, 0x40, 0x48, 0x37, 0xFC, 0x11, 0x10, 0x01, 0x10, 0x01, 0x10, 0xF2, 0xA8, 0x14, 0x44, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x14, 0x40, 0x18, 0x40, 0x10, 0x40, 0x00, 0x40, 0x01, 0x10, 0x41, 0x10, 0x37, 0xFC, 0x11, 0x10, 0x01, 0xF0, 0x01, 0x10, 0xF1, 0xF0, 0x11, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x12, 0x00, 0x12, 0x90, 0x17, 0x08, 0x1A, 0x00, 0x13, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x40, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x07, 0xFC, 0x04, 0x44, 0xE5, 0x54, 0x24, 0xE4, 0x24, 0x44, 0x27, 0xFC, 0x21, 0x60, 0x29, 0x50, 0x32, 0x48, 0x24, 0x4E, 0x08, 0x44, 0x00, 0x40, 0x00, 0x48, 0x40, 0x7C, 0x20, 0x40, 0x27, 0xFE, 0x04, 0x42, 0x04, 0x7C, 0xE7, 0xC0, 0x24, 0x44, 0x24, 0x7C, 0x24, 0x00, 0x25, 0xFC, 0x2D, 0x00, 0x37, 0xFE, 0x29, 0x00, 0x09, 0xFC, 0x10, 0x00, 0x00, 0x08, 0x43, 0xFC, 0x22, 0x08, 0x23, 0xF8, 0x02, 0x08, 0x03, 0xF8, 0xE1, 0x04, 0x23, 0xFE, 0x24, 0x44, 0x28, 0x44, 0x22, 0xB4, 0x23, 0x14, 0x2A, 0x04, 0x33, 0xF4, 0x20, 0x14, 0x00, 0x08, 0x00, 0x04, 0x47, 0xBE, 0x24, 0xA4, 0x24, 0xA4, 0x07, 0xBC, 0x00, 0x00, 0xE3, 0xF8, 0x20, 0x00, 0x2F, 0xFE, 0x21, 0x00, 0x21, 0xF8, 0x24, 0x08, 0x28, 0x08, 0x30, 0x88, 0x20, 0x50, 0x00, 0x20, 0x00, 0x80, 0x40, 0x80, 0x21, 0x40, 0x22, 0x20, 0x04, 0x10, 0x0B, 0xEE, 0xF0, 0x04, 0x27, 0x88, 0x24, 0xA8, 0x27, 0xA8, 0x24, 0xA8, 0x27, 0xA8, 0x2C, 0xA8, 0x34, 0x88, 0x24, 0xA8, 0x05, 0x90, 0x00, 0x3C, 0x47, 0xC0, 0x20, 0x88, 0x22, 0x48, 0x01, 0x50, 0x0F, 0xFC, 0xE0, 0x80, 0x20, 0x84, 0x2F, 0xFE, 0x21, 0x00, 0x21, 0xF0, 0x2B, 0x10, 0x32, 0xA0, 0x24, 0x40, 0x08, 0xB0, 0x03, 0x0C, 0x00, 0x80, 0x40, 0x48, 0x37, 0xFC, 0x12, 0x10, 0x01, 0x10, 0x00, 0xA4, 0xF7, 0xFE, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x16, 0x08, 0x1A, 0x08, 0x13, 0xF8, 0x02, 0x08, 0x00, 0x80, 0x40, 0x48, 0x37, 0xFC, 0x11, 0x10, 0x00, 0xA0, 0x07, 0xFE, 0xF4, 0x42, 0x18, 0x44, 0x13, 0xF8, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x16, 0x48, 0x1A, 0x58, 0x10, 0x40, 0x00, 0x40, 0x00, 0x80, 0x48, 0x80, 0x24, 0x80, 0x24, 0xFC, 0x01, 0x04, 0x06, 0x48, 0xE8, 0x40, 0x30, 0xA0, 0x21, 0x10, 0x22, 0x0E, 0x27, 0xFC, 0x22, 0x08, 0x2A, 0x08, 0x32, 0x08, 0x23, 0xF8, 0x02, 0x08, 0x00, 0x80, 0x40, 0x48, 0x27, 0xFC, 0x24, 0x08, 0x04, 0x08, 0x07, 0xF8, 0xE4, 0x00, 0x24, 0x04, 0x27, 0xFE, 0x24, 0xA4, 0x2C, 0xA4, 0x37, 0xFC, 0x24, 0xA4, 0x2C, 0xA4, 0x34, 0xB4, 0x04, 0x08, 0x01, 0x10, 0x41, 0x14, 0x37, 0xFE, 0x11, 0x10, 0x00, 0x08, 0x03, 0xFC, 0xF2, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0xA0, 0x19, 0x10, 0x12, 0x0E, 0x0C, 0x04, 0x00, 0x40, 0x42, 0x48, 0x21, 0x50, 0x2F, 0xFE, 0x08, 0x02, 0x13, 0xFC, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x20, 0xA0, 0x21, 0x20, 0x29, 0x22, 0x32, 0x22, 0x24, 0x1E, 0x08, 0x00, 0x00, 0x04, 0x47, 0xFE, 0x24, 0x44, 0x27, 0xFC, 0x04, 0x44, 0x07, 0xFC, 0xE2, 0x08, 0x25, 0x04, 0x29, 0xFA, 0x22, 0x08, 0x25, 0x10, 0x20, 0xA0, 0x28, 0x40, 0x30, 0xB0, 0x23, 0x0E, 0x0C, 0x04, 0x04, 0x04, 0x42, 0x08, 0x21, 0x10, 0x2F, 0xFE, 0x00, 0x00, 0x01, 0x10, 0xE2, 0x0C, 0x24, 0x04, 0x23, 0xF8, 0x22, 0xA8, 0x22, 0xA8, 0x22, 0xA8, 0x2A, 0xA8, 0x32, 0xA8, 0x2F, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x40, 0xC8, 0x30, 0x48, 0x15, 0x14, 0x05, 0x22, 0x09, 0x42, 0xF1, 0x88, 0x12, 0xF8, 0x14, 0x00, 0x13, 0xF8, 0x12, 0xA8, 0x12, 0xA8, 0x16, 0xA8, 0x1A, 0xA8, 0x17, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x40, 0x44, 0x2F, 0xFE, 0x21, 0x10, 0x00, 0xA4, 0x07, 0xFE, 0xE4, 0x44, 0x24, 0x54, 0x27, 0xFC, 0x24, 0x44, 0x25, 0xF4, 0x25, 0x14, 0x2D, 0x14, 0x35, 0xF4, 0x25, 0x14, 0x04, 0x08, 0x01, 0x08, 0x40, 0x90, 0x37, 0xFE, 0x10, 0x00, 0x03, 0xD4, 0x02, 0x54, 0xF3, 0xD4, 0x12, 0x54, 0x13, 0xC4, 0x12, 0x4C, 0x10, 0x00, 0x13, 0xFC, 0x14, 0x84, 0x18, 0x84, 0x11, 0x14, 0x06, 0x08, 0x02, 0x04, 0x4F, 0xBE, 0x22, 0x08, 0x2A, 0x28, 0x0F, 0xBE, 0x02, 0x08, 0xE6, 0x98, 0x2B, 0x2A, 0x32, 0x4E, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x2B, 0xF8, 0x32, 0x08, 0x23, 0xF8, 0x02, 0x08, 0x01, 0x40, 0x41, 0x24, 0x23, 0xFE, 0x22, 0x20, 0x06, 0x28, 0x0B, 0xFC, 0xE2, 0x20, 0x22, 0x28, 0x23, 0xFC, 0x22, 0x20, 0x22, 0x24, 0x23, 0xFE, 0x2A, 0x00, 0x35, 0x24, 0x24, 0x92, 0x08, 0x02, 0x00, 0x00, 0x47, 0xF8, 0x20, 0x90, 0x20, 0x60, 0x0F, 0xFE, 0x01, 0x44, 0xE2, 0x40, 0x2C, 0xC4, 0x27, 0xFE, 0x24, 0xA4, 0x27, 0x1C, 0x25, 0xF4, 0x2D, 0x14, 0x35, 0xF4, 0x24, 0x14, 0x04, 0x08, 0x01, 0x08, 0x41, 0x08, 0x21, 0x4C, 0x2F, 0xE8, 0x01, 0x3E, 0x01, 0x08, 0xEF, 0xE8, 0x2A, 0xA8, 0x2A, 0xA8, 0x2F, 0xE8, 0x29, 0x28, 0x2F, 0xE8, 0x29, 0x28, 0x39, 0x74, 0x28, 0x24, 0x00, 0x42, 0x01, 0x00, 0x41, 0xF8, 0x22, 0x10, 0x27, 0xFE, 0x0C, 0x88, 0x05, 0x24, 0xE7, 0xFE, 0x24, 0x00, 0x25, 0xFC, 0x24, 0x00, 0x25, 0xFC, 0x2C, 0x00, 0x35, 0xFC, 0x25, 0x04, 0x09, 0xFC, 0x01, 0x04, 0x00, 0x10, 0x44, 0x90, 0x24, 0x98, 0x2B, 0x54, 0x00, 0x10, 0x1F, 0xFE, 0xE2, 0x90, 0x2E, 0xF0, 0x22, 0x94, 0x2E, 0xF4, 0x22, 0x94, 0x2E, 0xE8, 0x2A, 0x9A, 0x32, 0xAA, 0x2F, 0xE6, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x34, 0x00, 0x28, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x1F, 0xF0, 0x00, 0x40, 0x01, 0x88, 0x3D, 0xB0, 0x05, 0x40, 0x09, 0x30, 0x33, 0x0E, 0xC1, 0x04, 0x3F, 0xF8, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x90, 0x10, 0x64, 0x10, 0x04, 0x0F, 0xFC, 0x00, 0x00, 0x78, 0x00, 0x48, 0x00, 0x48, 0x00, 0x50, 0x00, 0x50, 0x00, 0x60, 0x00, 0x50, 0x00, 0x50, 0x00, 0x48, 0x00, 0x48, 0x00, 0x68, 0x00, 0x50, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x78, 0x04, 0x4F, 0xFE, 0x49, 0x20, 0x51, 0x20, 0x51, 0x20, 0x61, 0x20, 0x51, 0x20, 0x51, 0x20, 0x49, 0x20, 0x49, 0x20, 0x69, 0x20, 0x52, 0x22, 0x42, 0x22, 0x44, 0x1E, 0x48, 0x00, 0x00, 0x08, 0x7C, 0x1C, 0x45, 0xE0, 0x48, 0x20, 0x48, 0x20, 0x50, 0x20, 0x48, 0x24, 0x4B, 0xFE, 0x44, 0x20, 0x44, 0x20, 0x44, 0x20, 0x68, 0x20, 0x50, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x01, 0x10, 0x79, 0x10, 0x49, 0x10, 0x49, 0x10, 0x57, 0xFC, 0x51, 0x10, 0x61, 0x10, 0x51, 0x10, 0x51, 0x14, 0x4F, 0xFE, 0x49, 0x10, 0x69, 0x10, 0x51, 0x10, 0x42, 0x10, 0x42, 0x10, 0x44, 0x10, 0x00, 0x08, 0x78, 0x3C, 0x4B, 0xC0, 0x4A, 0x00, 0x52, 0x08, 0x53, 0xFC, 0x62, 0x08, 0x52, 0x88, 0x52, 0x88, 0x4A, 0x90, 0x4A, 0x50, 0x6A, 0x20, 0x54, 0x50, 0x44, 0x88, 0x49, 0x0E, 0x42, 0x04, 0x00, 0x40, 0x7C, 0x40, 0x44, 0x44, 0x48, 0x7E, 0x48, 0x40, 0x50, 0x40, 0x48, 0x44, 0x49, 0xFE, 0x45, 0x04, 0x45, 0x04, 0x45, 0x04, 0x69, 0x04, 0x51, 0x04, 0x41, 0x04, 0x41, 0xFC, 0x41, 0x04, 0x01, 0x00, 0x7D, 0x00, 0x45, 0x04, 0x49, 0xFE, 0x4A, 0x80, 0x52, 0x80, 0x4C, 0x88, 0x48, 0xFC, 0x44, 0x80, 0x44, 0x80, 0x44, 0x88, 0x68, 0xFC, 0x50, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x00, 0x20, 0x78, 0x20, 0x48, 0x20, 0x4B, 0xFE, 0x52, 0x22, 0x52, 0x24, 0x62, 0x20, 0x53, 0xF8, 0x52, 0x88, 0x4A, 0x88, 0x4A, 0x50, 0x6A, 0x20, 0x54, 0x50, 0x44, 0x88, 0x49, 0x0E, 0x42, 0x04, 0x00, 0x00, 0x7B, 0xF8, 0x48, 0x10, 0x48, 0x20, 0x50, 0x40, 0x50, 0xB0, 0x61, 0x0C, 0x56, 0x04, 0x50, 0x10, 0x4B, 0xF8, 0x48, 0x40, 0x68, 0x40, 0x50, 0x40, 0x40, 0x44, 0x4F, 0xFE, 0x40, 0x00, 0x00, 0x80, 0x78, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x50, 0x80, 0x50, 0x90, 0x61, 0x10, 0x53, 0xE0, 0x51, 0x28, 0x48, 0x48, 0x48, 0x90, 0x6B, 0x10, 0x50, 0x20, 0x40, 0xD8, 0x43, 0x06, 0x4C, 0x02, 0x00, 0x40, 0x78, 0x48, 0x49, 0x7C, 0x49, 0x40, 0x51, 0x40, 0x51, 0x44, 0x67, 0xFE, 0x50, 0x40, 0x51, 0x48, 0x49, 0x48, 0x4A, 0x50, 0x68, 0x60, 0x50, 0x40, 0x40, 0x80, 0x43, 0x00, 0x4C, 0x00, 0x00, 0x08, 0x7B, 0xFC, 0x4A, 0x08, 0x4A, 0x08, 0x53, 0xF8, 0x52, 0x08, 0x62, 0x08, 0x53, 0xF8, 0x52, 0x48, 0x48, 0x40, 0x4B, 0xF8, 0x68, 0x40, 0x50, 0x40, 0x40, 0x44, 0x4F, 0xFE, 0x40, 0x00, 0x00, 0x00, 0x70, 0x40, 0x5F, 0xE0, 0x54, 0x80, 0x54, 0xBC, 0x57, 0x84, 0x64, 0xA4, 0x54, 0xA8, 0x57, 0xA8, 0x54, 0x90, 0x54, 0x90, 0x5F, 0xE8, 0x70, 0xA8, 0x40, 0xC6, 0x40, 0x80, 0x40, 0x80, 0x00, 0x08, 0x78, 0x3C, 0x4F, 0xC0, 0x48, 0x40, 0x50, 0x44, 0x5F, 0xFE, 0x61, 0x50, 0x51, 0x50, 0x57, 0xFC, 0x49, 0x50, 0x49, 0x54, 0x6F, 0xFE, 0x50, 0x40, 0x40, 0x48, 0x47, 0xFC, 0x40, 0x00, 0x00, 0x80, 0x79, 0x08, 0x4B, 0xFC, 0x4A, 0x48, 0x52, 0x48, 0x53, 0xF8, 0x62, 0x48, 0x52, 0x48, 0x53, 0xF8, 0x48, 0xA0, 0x49, 0x24, 0x6F, 0xFE, 0x50, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x00, 0x08, 0x7B, 0xFC, 0x4A, 0x48, 0x4A, 0x48, 0x53, 0xF8, 0x52, 0x48, 0x62, 0x48, 0x53, 0xF8, 0x50, 0x04, 0x4F, 0xFE, 0x4A, 0x88, 0x6A, 0x50, 0x52, 0x20, 0x42, 0x90, 0x43, 0x0E, 0x42, 0x04, 0x00, 0x40, 0x78, 0x88, 0x4B, 0xFC, 0x4A, 0x08, 0x53, 0xF8, 0x52, 0x08, 0x63, 0xF8, 0x50, 0x00, 0x57, 0xFC, 0x48, 0x40, 0x48, 0x50, 0x6B, 0xF8, 0x50, 0x40, 0x40, 0x44, 0x4F, 0xFE, 0x40, 0x00, 0x00, 0x40, 0x78, 0x88, 0x4B, 0xFC, 0x4A, 0x48, 0x52, 0x48, 0x53, 0xF8, 0x62, 0x48, 0x52, 0x48, 0x4B, 0xF8, 0x48, 0x80, 0x68, 0xC8, 0x51, 0x54, 0x41, 0x5C, 0x42, 0x42, 0x44, 0x42, 0x48, 0x3E, 0x00, 0x04, 0x7B, 0xFE, 0x4A, 0x04, 0x4B, 0xFC, 0x52, 0x04, 0x53, 0xFC, 0x61, 0x08, 0x52, 0x10, 0x57, 0xBE, 0x49, 0x08, 0x4A, 0x94, 0x6F, 0xBE, 0x50, 0x00, 0x45, 0x24, 0x44, 0x92, 0x48, 0x02, 0x02, 0x00, 0x7F, 0x7C, 0x08, 0x44, 0x08, 0x44, 0x08, 0x48, 0x09, 0x48, 0xFF, 0xD0, 0x08, 0x48, 0x08, 0x44, 0x08, 0x42, 0x08, 0x42, 0x08, 0x62, 0x08, 0x54, 0x08, 0x48, 0x08, 0x40, 0x08, 0x40, 0x00, 0x00, 0x02, 0x7C, 0x7F, 0x44, 0x08, 0x44, 0x08, 0x48, 0x08, 0x48, 0x08, 0x50, 0x08, 0x48, 0x08, 0x44, 0x08, 0x42, 0x08, 0x42, 0x0F, 0x62, 0xF8, 0x54, 0x40, 0x48, 0x00, 0x40, 0x00, 0x40, 0x04, 0x00, 0x02, 0x7C, 0x3F, 0xC4, 0x20, 0x44, 0x20, 0x48, 0x20, 0x48, 0x20, 0x50, 0x20, 0x48, 0x20, 0x44, 0x20, 0x42, 0x20, 0x42, 0x20, 0x62, 0x40, 0x54, 0x40, 0x48, 0x80, 0x40, 0x00, 0x40, 0x10, 0x00, 0x08, 0x7C, 0x09, 0x44, 0xFF, 0xC4, 0x20, 0x48, 0x20, 0x48, 0x20, 0x50, 0x20, 0x48, 0x20, 0x44, 0x20, 0x42, 0x22, 0x42, 0x3F, 0x62, 0x00, 0x54, 0x00, 0x48, 0x00, 0x40, 0x00, 0x40, 0x08, 0x00, 0x12, 0x3C, 0x3F, 0x24, 0x22, 0x24, 0x22, 0x28, 0x22, 0x28, 0x2A, 0x30, 0x24, 0x28, 0x20, 0xA4, 0x3F, 0xE2, 0x00, 0xA2, 0x04, 0xA2, 0xFE, 0xB4, 0x00, 0xA8, 0x02, 0xA0, 0x01, 0x20, 0x10, 0x00, 0x08, 0x7C, 0x09, 0x44, 0xFF, 0xC4, 0x10, 0x48, 0x12, 0x48, 0x1F, 0x50, 0x12, 0x48, 0x12, 0x44, 0x12, 0x42, 0x12, 0x42, 0x22, 0x62, 0x22, 0x54, 0x4A, 0x48, 0x84, 0x40, 0x00, 0x40, 0x01, 0x00, 0xFF, 0xFC, 0x08, 0x44, 0x08, 0x44, 0x09, 0x48, 0x7F, 0xC8, 0x49, 0x50, 0x49, 0x48, 0x49, 0x44, 0x55, 0x42, 0x63, 0x42, 0x41, 0x62, 0x41, 0x54, 0x45, 0x48, 0x42, 0x40, 0x00, 0x40, 0x01, 0x00, 0xFF, 0xFC, 0x04, 0x44, 0x08, 0x44, 0x18, 0x48, 0x1C, 0x48, 0x2A, 0x50, 0x29, 0x48, 0x49, 0x44, 0x88, 0x42, 0x08, 0x42, 0x08, 0x62, 0x0F, 0x54, 0xF8, 0x48, 0x40, 0x40, 0x00, 0x40, 0x14, 0x00, 0x14, 0x7C, 0x14, 0x44, 0x14, 0x44, 0x15, 0x48, 0xF7, 0xC8, 0x14, 0x50, 0x14, 0x48, 0x14, 0x44, 0x14, 0x42, 0x14, 0xC2, 0x35, 0x62, 0xD6, 0x54, 0x14, 0x48, 0x00, 0x40, 0x00, 0x40, 0x14, 0x00, 0x14, 0x7C, 0x14, 0x44, 0x14, 0x44, 0x94, 0xC8, 0x54, 0xC8, 0x55, 0x50, 0x35, 0x48, 0x36, 0x44, 0x14, 0x42, 0x14, 0x42, 0x17, 0xE2, 0xF8, 0x54, 0x40, 0x48, 0x00, 0x40, 0x00, 0x40, 0x02, 0x00, 0x07, 0x3C, 0x78, 0x24, 0x48, 0x24, 0x48, 0x28, 0x4A, 0x28, 0x7F, 0x30, 0x48, 0x28, 0x48, 0x24, 0x48, 0x22, 0x44, 0x22, 0x44, 0xA2, 0x52, 0xB4, 0x69, 0xA8, 0x44, 0x20, 0x00, 0x20, 0x10, 0x00, 0x10, 0x7C, 0x20, 0x44, 0x24, 0x44, 0x42, 0x48, 0xFF, 0x48, 0x00, 0x50, 0x02, 0x48, 0x7F, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x62, 0x42, 0x54, 0x7E, 0x48, 0x42, 0x40, 0x00, 0x40, 0x08, 0x00, 0x08, 0x7C, 0x09, 0x44, 0xFF, 0xC4, 0x08, 0x48, 0x49, 0x48, 0x29, 0x50, 0x2A, 0x48, 0xFF, 0xC4, 0x08, 0x42, 0x08, 0x42, 0x14, 0x62, 0x12, 0x54, 0x23, 0x48, 0xC1, 0x40, 0x00, 0x40, 0x02, 0x00, 0xFF, 0x7C, 0x10, 0x44, 0x10, 0x44, 0x22, 0x48, 0x41, 0x48, 0x7F, 0x50, 0x08, 0x48, 0x08, 0x44, 0x7F, 0x42, 0x08, 0x42, 0x08, 0x62, 0x0F, 0xD4, 0xF8, 0x48, 0x40, 0x40, 0x00, 0x40, 0x08, 0x00, 0x08, 0x7C, 0x4A, 0x44, 0x7F, 0x44, 0x48, 0x48, 0x88, 0x48, 0x09, 0x50, 0xFF, 0xC8, 0x08, 0x44, 0x1C, 0x42, 0x1C, 0x42, 0x2A, 0x62, 0x29, 0x54, 0x48, 0x48, 0x88, 0x40, 0x08, 0x40, 0x08, 0x00, 0x08, 0x7C, 0x14, 0x44, 0x12, 0x44, 0x21, 0x48, 0x20, 0x48, 0x7F, 0xD0, 0x80, 0x48, 0x01, 0x44, 0xFF, 0xC2, 0x10, 0x42, 0x14, 0x62, 0x22, 0x54, 0x7F, 0x48, 0x21, 0x40, 0x00, 0x40, 0x41, 0x00, 0x22, 0x7C, 0x14, 0x44, 0x08, 0x44, 0x14, 0x48, 0x63, 0x48, 0x10, 0x50, 0xFF, 0xC8, 0x10, 0x44, 0x24, 0x42, 0x28, 0x42, 0x48, 0x62, 0x92, 0x54, 0x3F, 0x48, 0x01, 0x40, 0x00, 0x40, 0x20, 0x00, 0x21, 0x7C, 0x3F, 0xC4, 0x41, 0x44, 0x41, 0x48, 0xBD, 0x48, 0x25, 0x50, 0x25, 0x48, 0x3D, 0x44, 0x25, 0x42, 0x25, 0x42, 0x3D, 0x62, 0x25, 0x54, 0x01, 0x48, 0x0A, 0x40, 0x04, 0x40, 0x00, 0x00, 0x7F, 0xFC, 0x50, 0xC4, 0x91, 0x44, 0x3F, 0x48, 0x10, 0x48, 0x14, 0x50, 0x25, 0x48, 0x7F, 0xC4, 0x04, 0x42, 0x04, 0x42, 0x07, 0xE2, 0xFC, 0x54, 0x44, 0x48, 0x04, 0x40, 0x04, 0x40, 0x00, 0x40, 0xFF, 0xFE, 0x00, 0x12, 0x00, 0x52, 0x7B, 0xF4, 0x4A, 0x54, 0x4A, 0x58, 0x4A, 0x54, 0x6B, 0x54, 0x5A, 0xD2, 0x4A, 0x52, 0x4A, 0x5A, 0x4A, 0x54, 0x4A, 0x50, 0x5A, 0xD0, 0x00, 0x10, 0x02, 0x00, 0x3F, 0x7C, 0x22, 0x44, 0x22, 0x44, 0x22, 0x48, 0x3E, 0x48, 0x00, 0x50, 0xFF, 0x48, 0x08, 0x44, 0x0A, 0x42, 0x7F, 0x42, 0x08, 0x62, 0x0F, 0xD4, 0xF8, 0x48, 0x40, 0x40, 0x00, 0x40, 0x08, 0x00, 0x28, 0x7C, 0x2A, 0x44, 0x3F, 0x44, 0x48, 0x48, 0x88, 0x48, 0x09, 0x50, 0xFF, 0xC8, 0x00, 0x44, 0x7F, 0x42, 0x41, 0x42, 0x41, 0x62, 0x41, 0x54, 0x7F, 0x48, 0x41, 0x40, 0x00, 0x40, 0x20, 0x80, 0x11, 0x3C, 0x0E, 0x24, 0x11, 0x24, 0x28, 0xA8, 0x08, 0x28, 0xFF, 0xF0, 0x14, 0x28, 0x24, 0xA4, 0x7F, 0xE2, 0xA4, 0xA2, 0x24, 0xA2, 0x24, 0xB4, 0x25, 0xA8, 0x24, 0xA0, 0x04, 0x20, 0x01, 0x00, 0x03, 0xFC, 0xFC, 0x44, 0x49, 0x44, 0x29, 0x48, 0x02, 0x48, 0x7F, 0x50, 0x02, 0x48, 0x0C, 0x44, 0x08, 0x42, 0xFF, 0x42, 0x48, 0x62, 0x08, 0x54, 0x08, 0x48, 0x28, 0x40, 0x10, 0x40, 0x08, 0x00, 0x11, 0x7C, 0x7F, 0xC4, 0x49, 0x44, 0x49, 0x48, 0x7F, 0x48, 0x49, 0x50, 0x51, 0x48, 0x7F, 0x44, 0x10, 0x42, 0x29, 0x42, 0xFF, 0xE2, 0x08, 0x54, 0x08, 0x48, 0x08, 0x40, 0x08, 0x40, 0x08, 0x00, 0x29, 0x7C, 0x2A, 0x44, 0x4C, 0x44, 0x94, 0x48, 0x12, 0x48, 0x21, 0x50, 0xC8, 0x48, 0x08, 0x44, 0x29, 0x42, 0x2A, 0x42, 0x54, 0x62, 0x12, 0x54, 0x21, 0x48, 0xC1, 0x40, 0x00, 0x40, 0x01, 0x00, 0x7F, 0xBC, 0x40, 0x24, 0x5F, 0x24, 0x51, 0x28, 0x5F, 0x28, 0x51, 0x30, 0x5F, 0x28, 0x48, 0x24, 0x7F, 0xE2, 0x49, 0x22, 0x52, 0x22, 0x4E, 0x34, 0x51, 0x28, 0x7F, 0xA0, 0x00, 0x20, 0x01, 0x00, 0xFF, 0xFC, 0x14, 0x44, 0x15, 0x44, 0x7F, 0xC8, 0x55, 0x48, 0x55, 0x50, 0x55, 0x48, 0x7F, 0x44, 0x49, 0x42, 0x08, 0x42, 0x7F, 0x62, 0x08, 0x54, 0x0F, 0x48, 0xF8, 0x40, 0x40, 0x40, 0x01, 0x00, 0x7F, 0xBC, 0x04, 0x24, 0x17, 0xA4, 0x14, 0x28, 0xFF, 0xE8, 0x20, 0x30, 0x3F, 0x28, 0x20, 0x24, 0x3F, 0xA2, 0x00, 0xA2, 0xAA, 0xA2, 0xAA, 0xB4, 0x00, 0xA8, 0x02, 0xA0, 0x01, 0x20, 0x22, 0x00, 0xFF, 0xFC, 0x22, 0x44, 0x3E, 0x44, 0x08, 0x48, 0x7F, 0x48, 0x49, 0x50, 0x7F, 0x48, 0x08, 0x44, 0x7F, 0x42, 0x08, 0x42, 0x3E, 0x62, 0x08, 0x54, 0x0F, 0x48, 0x78, 0x40, 0x20, 0x40, 0x08, 0x00, 0x7F, 0x7C, 0x22, 0x44, 0x14, 0x44, 0xFF, 0xC8, 0x00, 0x48, 0x7F, 0x50, 0x41, 0x48, 0x7F, 0x44, 0x41, 0x42, 0x7F, 0x42, 0x08, 0x62, 0xFF, 0xD4, 0x08, 0x48, 0x08, 0x40, 0x08, 0x40, 0x03, 0x80, 0x7C, 0x3C, 0x24, 0xA4, 0x15, 0x24, 0x7F, 0xE8, 0x0C, 0x28, 0x15, 0x30, 0x24, 0xA8, 0xFF, 0xE4, 0x24, 0xA2, 0x24, 0xA2, 0x3F, 0xA2, 0x24, 0xB4, 0x24, 0xA8, 0x3F, 0xA0, 0x20, 0xA0, 0x11, 0x00, 0x0A, 0x3C, 0x7F, 0xE4, 0x04, 0x24, 0x3F, 0xA8, 0x04, 0x28, 0x7F, 0xF0, 0x24, 0xA8, 0x15, 0x24, 0xFF, 0xE2, 0x00, 0x22, 0x3F, 0xA2, 0x20, 0xB4, 0x20, 0xA8, 0x3F, 0xA0, 0x20, 0xA0, 0xFF, 0x80, 0x48, 0x3C, 0x7B, 0xA4, 0x4A, 0xA4, 0x7A, 0xA8, 0x49, 0x28, 0xFA, 0xB0, 0x08, 0x28, 0x7F, 0x24, 0x14, 0xA2, 0x25, 0x22, 0x4E, 0x22, 0x15, 0xB4, 0x24, 0xA8, 0xC4, 0x20, 0x04, 0x20, 0x02, 0x00, 0x7F, 0x7C, 0x08, 0x44, 0x7F, 0xC4, 0x48, 0xC8, 0xAA, 0x48, 0x08, 0x50, 0x2A, 0x48, 0x00, 0x44, 0x7F, 0x42, 0x55, 0x42, 0x55, 0x62, 0x55, 0x54, 0x55, 0x48, 0x7F, 0x40, 0x00, 0x40, 0x2A, 0x00, 0x7F, 0x3C, 0xAA, 0xA4, 0xFF, 0xA4, 0xAA, 0xA8, 0xFF, 0xA8, 0xAA, 0xB0, 0xFF, 0xA8, 0x00, 0x24, 0xFF, 0xA2, 0x01, 0x22, 0x7F, 0xA2, 0x41, 0x34, 0x7F, 0x28, 0x22, 0x20, 0xFF, 0xA0, 0x08, 0x00, 0x08, 0x20, 0x0F, 0xF0, 0x10, 0x20, 0x10, 0x40, 0x20, 0x88, 0x5F, 0xFC, 0x80, 0x08, 0x00, 0x08, 0x00, 0x08, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x3F, 0xF8, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x0F, 0xE0, 0x10, 0x20, 0x10, 0x40, 0x20, 0x90, 0x5F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x04, 0x60, 0x18, 0x1C, 0x60, 0x08, 0x00, 0x20, 0x01, 0x20, 0xFF, 0xA0, 0x10, 0x24, 0x10, 0xFE, 0x12, 0x24, 0x1F, 0x24, 0x12, 0x24, 0x12, 0x24, 0x12, 0x24, 0x12, 0x44, 0x22, 0x44, 0x22, 0x44, 0x4A, 0x84, 0x84, 0xA8, 0x01, 0x10, 0x20, 0x20, 0x22, 0x20, 0x3F, 0x20, 0x42, 0x24, 0x42, 0xFE, 0x8A, 0x24, 0x7E, 0x24, 0x4A, 0x24, 0x4A, 0x24, 0x4A, 0x24, 0x4A, 0x44, 0x7A, 0x44, 0x42, 0x44, 0x0A, 0x84, 0x04, 0xA8, 0x01, 0x10, 0x02, 0x20, 0xFF, 0x20, 0x22, 0x20, 0x22, 0x24, 0x22, 0xFE, 0x2A, 0x24, 0x44, 0x24, 0x80, 0x24, 0x7E, 0x24, 0x42, 0x24, 0x42, 0x44, 0x42, 0x44, 0x42, 0x44, 0x7E, 0x84, 0x42, 0xA8, 0x01, 0x10, 0x10, 0x20, 0x09, 0x20, 0xFF, 0xA0, 0x10, 0x24, 0x12, 0xFE, 0x22, 0x24, 0x24, 0x24, 0x7C, 0x24, 0x08, 0x24, 0x0A, 0x24, 0x12, 0x44, 0x24, 0x44, 0x4C, 0x44, 0x92, 0x84, 0x20, 0xA8, 0x01, 0x10, 0x08, 0x00, 0x08, 0x04, 0x7F, 0x7E, 0x09, 0x44, 0x11, 0x44, 0x15, 0x44, 0x62, 0x7C, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0x90, 0x10, 0x90, 0x10, 0x90, 0x1F, 0x90, 0x10, 0x50, 0x00, 0x20, 0x00, 0x20, 0x7F, 0x20, 0x02, 0x20, 0x04, 0x24, 0x7E, 0xFE, 0x04, 0x24, 0x14, 0x24, 0x08, 0x24, 0x7F, 0x24, 0x55, 0x24, 0x55, 0x44, 0x55, 0x44, 0x55, 0x44, 0xFF, 0x84, 0x00, 0xA8, 0x01, 0x10, 0x01, 0x20, 0xFF, 0xA0, 0x81, 0x20, 0xBD, 0x24, 0x81, 0xFE, 0xBD, 0x24, 0x00, 0x24, 0x7E, 0x24, 0x42, 0x24, 0x7E, 0x24, 0x42, 0x44, 0x7E, 0x44, 0x42, 0x44, 0x7E, 0x84, 0x42, 0xA8, 0x01, 0x10, 0x10, 0x00, 0x12, 0xFE, 0x7F, 0x92, 0x12, 0x92, 0x12, 0xFE, 0x2A, 0x92, 0x44, 0x92, 0x00, 0xFE, 0x44, 0x82, 0xFF, 0x20, 0x55, 0x10, 0x55, 0x50, 0x55, 0xC2, 0x55, 0xC6, 0x99, 0x44, 0x33, 0x3C, 0x05, 0x08, 0x39, 0x7C, 0x21, 0x08, 0x21, 0x08, 0x3D, 0x78, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xF0, 0x08, 0x20, 0x06, 0xC0, 0x01, 0x00, 0x06, 0xC0, 0x18, 0x30, 0xE0, 0x0E, 0x21, 0x08, 0x2F, 0xE8, 0x20, 0x08, 0xAF, 0xEA, 0x70, 0x1C, 0x2F, 0xE8, 0x20, 0x08, 0x27, 0xC8, 0x54, 0x54, 0x87, 0xC2, 0x00, 0x00, 0x1F, 0xE0, 0x04, 0x40, 0x03, 0x80, 0x0C, 0x60, 0x70, 0x1C, 0x3E, 0xF8, 0x32, 0xC8, 0x2A, 0xA8, 0x26, 0x98, 0x3E, 0xF8, 0x08, 0x80, 0x1F, 0xF8, 0x28, 0x80, 0x4F, 0xF0, 0x08, 0x84, 0x08, 0x7C, 0x1F, 0xE0, 0x04, 0x40, 0x03, 0x80, 0x1C, 0x70, 0xE0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x78, 0x00, 0x08, 0x00, 0x88, 0x00, 0x50, 0x00, 0x30, 0x00, 0x20, 0x00, 0x50, 0x00, 0x88, 0x06, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x41, 0x14, 0x41, 0x34, 0x5F, 0x44, 0x43, 0x84, 0x45, 0x44, 0x45, 0x44, 0x49, 0x24, 0x51, 0x24, 0x61, 0x1C, 0x45, 0x04, 0x42, 0x04, 0x7F, 0xFC, 0x00, 0x04, 0x09, 0x20, 0x04, 0x40, 0x22, 0x88, 0x29, 0x28, 0x22, 0x88, 0x24, 0x48, 0x29, 0x28, 0x20, 0x08, 0x3F, 0xF8, 0x28, 0x08, 0x08, 0x60, 0x09, 0x80, 0x0E, 0x00, 0x08, 0x04, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x20, 0x10, 0x10, 0x20, 0x08, 0x7F, 0xFC, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x20, 0x1F, 0xF0, 0x00, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x3F, 0xF8, 0xD1, 0x16, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x80, 0x00, 0x44, 0xFB, 0xFE, 0x08, 0x80, 0x10, 0x80, 0x2D, 0x08, 0xC3, 0xFC, 0x08, 0x04, 0x7D, 0x50, 0x11, 0x50, 0x11, 0x50, 0x11, 0x50, 0x1D, 0x52, 0xF2, 0x52, 0x44, 0x4E, 0x08, 0x00, 0x01, 0x80, 0x04, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x2F, 0xEE, 0xC4, 0x24, 0x04, 0x20, 0x08, 0xA0, 0x31, 0x40, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0x22, 0x88, 0x1A, 0x98, 0x0A, 0xA0, 0x02, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x09, 0x20, 0x09, 0x10, 0x09, 0x00, 0x11, 0xFC, 0x1F, 0x00, 0x30, 0x90, 0x50, 0xA0, 0x90, 0x44, 0x11, 0xA4, 0x17, 0x1C, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x08, 0x20, 0xFF, 0xA0, 0x00, 0x28, 0x3E, 0xFC, 0x22, 0x28, 0x3E, 0x68, 0x00, 0x28, 0x7E, 0x58, 0x04, 0x48, 0x7E, 0x8A, 0x09, 0x06, 0x19, 0x10, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x08, 0xFF, 0x7C, 0x08, 0x48, 0x7F, 0x48, 0x49, 0x86, 0x7F, 0x7C, 0x49, 0x44, 0x7F, 0x44, 0x08, 0x28, 0xFF, 0x90, 0x49, 0x28, 0x7F, 0xC6, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0xFF, 0xFE, 0x10, 0x90, 0x14, 0xFE, 0x25, 0x90, 0x7A, 0xFC, 0x10, 0x90, 0x24, 0xFC, 0x7C, 0x90, 0x08, 0xFE, 0x11, 0x80, 0x61, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x00, 0x0F, 0x00, 0x48, 0x7C, 0x7F, 0x84, 0x40, 0xC4, 0xBF, 0x28, 0x08, 0x28, 0x55, 0x10, 0x3E, 0x28, 0xE3, 0xA8, 0x22, 0x46, 0x3E, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x10, 0x20, 0x14, 0x20, 0xFE, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x1E, 0x20, 0xF0, 0x20, 0x40, 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x10, 0x00, 0x14, 0x00, 0xFE, 0x04, 0x13, 0xFE, 0x10, 0x80, 0x10, 0x88, 0x11, 0xFC, 0x1E, 0x08, 0xF0, 0x08, 0x40, 0x08, 0x00, 0x88, 0x00, 0x50, 0x00, 0x20, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0x15, 0x00, 0xFE, 0x00, 0x11, 0xF8, 0x10, 0x10, 0x10, 0x20, 0x10, 0x40, 0x1E, 0x80, 0xF1, 0x00, 0x41, 0x02, 0x01, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x11, 0x04, 0x11, 0x24, 0x11, 0x24, 0x15, 0x24, 0xFF, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x1D, 0x24, 0xF1, 0x24, 0x42, 0x24, 0x02, 0x04, 0x04, 0x04, 0x00, 0x04, 0x10, 0x40, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x12, 0x00, 0xFE, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x1E, 0x00, 0xF2, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x08, 0x14, 0x08, 0xFE, 0x08, 0x10, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x00, 0x1E, 0x00, 0xF2, 0x00, 0x42, 0x02, 0x02, 0x02, 0x01, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0xFE, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x00, 0x1E, 0x00, 0xF2, 0x00, 0x42, 0x02, 0x02, 0x02, 0x01, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x40, 0x12, 0x40, 0xFE, 0x44, 0x13, 0xFE, 0x12, 0x44, 0x12, 0x44, 0x12, 0x44, 0x1E, 0x44, 0xF2, 0x44, 0x44, 0x84, 0x04, 0x84, 0x09, 0x28, 0x12, 0x10, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x11, 0x00, 0x15, 0x00, 0xFF, 0x04, 0x11, 0xFE, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x1D, 0x10, 0xF1, 0x10, 0x42, 0x10, 0x02, 0x10, 0x04, 0x10, 0x08, 0x10, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x11, 0x00, 0x11, 0x00, 0xFD, 0xFC, 0x11, 0x04, 0x11, 0x88, 0x11, 0x48, 0x11, 0x50, 0x1D, 0x30, 0xF2, 0x20, 0x42, 0x50, 0x04, 0x88, 0x09, 0x0E, 0x12, 0x04, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x0A, 0x17, 0xFE, 0xFD, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x1D, 0x08, 0xF1, 0x08, 0x41, 0x08, 0x01, 0x08, 0x01, 0xF8, 0x01, 0x08, 0x10, 0x80, 0x10, 0xA0, 0x10, 0x90, 0x10, 0x94, 0x17, 0xFE, 0xFC, 0xA0, 0x10, 0xA0, 0x10, 0xA4, 0x10, 0xA4, 0x11, 0x28, 0x1D, 0x28, 0xF1, 0x30, 0x42, 0x62, 0x02, 0xA2, 0x04, 0x1E, 0x08, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x10, 0x7E, 0x14, 0x40, 0xFE, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x1E, 0x08, 0xF2, 0x08, 0x42, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x10, 0x40, 0x10, 0x44, 0x10, 0x7E, 0x10, 0x40, 0x10, 0x48, 0xFF, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x1E, 0x08, 0xF2, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x11, 0x00, 0x11, 0x00, 0xFD, 0x04, 0x11, 0xFE, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x1D, 0x30, 0xF1, 0x18, 0x42, 0x14, 0x02, 0x10, 0x04, 0x10, 0x00, 0x10, 0x10, 0x08, 0x10, 0x3C, 0x13, 0xE0, 0x12, 0x20, 0x12, 0x20, 0xFE, 0x28, 0x13, 0xFC, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0x1E, 0x20, 0xF2, 0x10, 0x42, 0x90, 0x03, 0x52, 0x06, 0x2A, 0x00, 0x06, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x13, 0xFE, 0x12, 0x02, 0xFC, 0x04, 0x11, 0x00, 0x11, 0x10, 0x11, 0x30, 0x11, 0x40, 0x1D, 0x80, 0xF1, 0x00, 0x41, 0x02, 0x01, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0xFF, 0xF8, 0x12, 0x00, 0x12, 0x80, 0x12, 0x88, 0x12, 0x98, 0x1E, 0xA0, 0xF2, 0xC0, 0x44, 0x82, 0x04, 0x82, 0x08, 0x7E, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x48, 0x11, 0x28, 0xFD, 0x28, 0x11, 0x0A, 0x17, 0xFE, 0x12, 0x08, 0x12, 0x88, 0x1E, 0x48, 0xF2, 0x48, 0x43, 0xFC, 0x00, 0x08, 0x00, 0x50, 0x00, 0x20, 0x10, 0x20, 0x11, 0x20, 0x11, 0x20, 0x12, 0x24, 0x12, 0x7E, 0xFC, 0xA4, 0x17, 0xA4, 0x11, 0x24, 0x12, 0x24, 0x14, 0xA4, 0x17, 0xA4, 0x1C, 0x24, 0xF0, 0x44, 0x40, 0x44, 0x00, 0x94, 0x01, 0x08, 0x10, 0x08, 0x17, 0xFC, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0xFC, 0xA4, 0x14, 0xA4, 0x12, 0xA4, 0x12, 0xA8, 0x12, 0xA8, 0x1C, 0xA0, 0xF0, 0xA0, 0x40, 0xA0, 0x00, 0xA4, 0x0F, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x80, 0x10, 0x80, 0x11, 0x10, 0xFD, 0x08, 0x13, 0xFC, 0x10, 0x00, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x1C, 0x40, 0xF0, 0x40, 0x40, 0x44, 0x0F, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0x12, 0xF4, 0xFE, 0x04, 0x12, 0x04, 0x12, 0xF4, 0x12, 0x94, 0x12, 0x94, 0x1E, 0x94, 0xF2, 0xF4, 0x42, 0x04, 0x02, 0x04, 0x02, 0x14, 0x02, 0x08, 0x10, 0x40, 0x10, 0x40, 0x14, 0x44, 0x14, 0x44, 0x17, 0xFC, 0xFC, 0x04, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x08, 0x10, 0x08, 0x13, 0xF8, 0x1E, 0x08, 0xF2, 0x00, 0x42, 0x02, 0x02, 0x02, 0x01, 0xFE, 0x20, 0x04, 0x20, 0x0C, 0x2F, 0x70, 0x21, 0x10, 0x22, 0x10, 0xFA, 0x50, 0x24, 0x5C, 0x2F, 0x50, 0x21, 0x50, 0x29, 0x50, 0x25, 0x50, 0x3A, 0x50, 0xE2, 0x7C, 0x05, 0x00, 0x08, 0x86, 0x10, 0x7C, 0x10, 0x40, 0x10, 0x40, 0x10, 0x84, 0x13, 0xFE, 0x12, 0x04, 0xFE, 0x04, 0x12, 0xF4, 0x12, 0x94, 0x12, 0x94, 0x12, 0x94, 0x1E, 0x94, 0xF2, 0xF4, 0x42, 0x04, 0x02, 0x04, 0x02, 0x14, 0x02, 0x08, 0x20, 0x80, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0xF8, 0x10, 0x25, 0x14, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0x44, 0x24, 0xA4, 0x3C, 0x94, 0xE5, 0x14, 0x44, 0x04, 0x07, 0xFC, 0x04, 0x04, 0x10, 0x80, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x80, 0xFC, 0x90, 0x11, 0x10, 0x13, 0xE0, 0x11, 0x28, 0x10, 0x48, 0x1C, 0x90, 0xF1, 0x10, 0x46, 0x20, 0x00, 0xD8, 0x03, 0x06, 0x0C, 0x02, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0xFE, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x84, 0x12, 0x88, 0x1E, 0x50, 0xF2, 0x20, 0x42, 0x10, 0x02, 0x8E, 0x03, 0x04, 0x02, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0xFD, 0xFC, 0x11, 0x04, 0x10, 0x00, 0x13, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x1D, 0xFC, 0xF0, 0x20, 0x40, 0x24, 0x07, 0xFE, 0x00, 0x00, 0x20, 0x08, 0x20, 0x88, 0x27, 0xC8, 0x24, 0x88, 0x24, 0x8A, 0xFC, 0xFE, 0x24, 0x88, 0x27, 0x88, 0x24, 0xC8, 0x24, 0xA8, 0x24, 0xA8, 0x3C, 0x88, 0xE7, 0x88, 0x44, 0x88, 0x00, 0x28, 0x00, 0x10, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0xFD, 0x48, 0x10, 0x44, 0x13, 0xFE, 0x12, 0x44, 0x12, 0x44, 0x1E, 0x44, 0xF2, 0xB4, 0x43, 0x14, 0x02, 0x04, 0x02, 0x14, 0x02, 0x08, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0xFC, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x24, 0x12, 0x24, 0x1E, 0x24, 0xF2, 0x44, 0x42, 0x44, 0x00, 0x98, 0x03, 0x04, 0x0C, 0x02, 0x10, 0x08, 0x10, 0x3C, 0x17, 0xC0, 0x10, 0x44, 0x12, 0x24, 0xFD, 0x28, 0x10, 0x10, 0x10, 0x14, 0x17, 0xFE, 0x11, 0x10, 0x10, 0x90, 0x1C, 0x90, 0xF0, 0x10, 0x40, 0x10, 0x00, 0x50, 0x00, 0x20, 0x10, 0x80, 0x10, 0x40, 0x13, 0xFE, 0x12, 0x02, 0x14, 0x24, 0xFD, 0xF0, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0xA0, 0x1C, 0xA0, 0xF0, 0xA0, 0x41, 0x22, 0x01, 0x22, 0x02, 0x1E, 0x0C, 0x00, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x48, 0xFF, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x1E, 0x08, 0xF3, 0xF8, 0x42, 0x08, 0x02, 0x0A, 0x0F, 0xFE, 0x00, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x17, 0xFE, 0x11, 0x10, 0xFD, 0x50, 0x13, 0xF8, 0x16, 0x4E, 0x1A, 0x48, 0x13, 0xF8, 0x1E, 0x48, 0xF2, 0x48, 0x43, 0xF8, 0x02, 0x4A, 0x00, 0x42, 0x00, 0x3E, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0xFF, 0xF8, 0x11, 0x00, 0x11, 0x04, 0x13, 0xFE, 0x14, 0xA4, 0x10, 0xA4, 0x1D, 0x24, 0xF1, 0x44, 0x42, 0x44, 0x04, 0x94, 0x01, 0x08, 0x10, 0x40, 0x10, 0x84, 0x13, 0xFE, 0x12, 0x24, 0x12, 0x24, 0xFF, 0xFC, 0x12, 0x44, 0x12, 0x44, 0x13, 0xFC, 0x10, 0xA0, 0x1D, 0x24, 0xF7, 0xFE, 0x40, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0xFE, 0x8E, 0x14, 0x44, 0x13, 0xF8, 0x10, 0x10, 0x10, 0x20, 0x1C, 0x80, 0xF0, 0x40, 0x45, 0x44, 0x05, 0x12, 0x09, 0x12, 0x00, 0xF0, 0x20, 0x04, 0x27, 0xBE, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0xFF, 0xBC, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x27, 0xBC, 0x3C, 0xA4, 0xE4, 0xA4, 0x44, 0xA4, 0x08, 0xA4, 0x09, 0xD4, 0x10, 0x88, 0x10, 0x80, 0x10, 0x80, 0x10, 0xF8, 0x11, 0x10, 0x12, 0x24, 0xFF, 0xFE, 0x12, 0x24, 0x12, 0x24, 0x12, 0x44, 0x13, 0xFC, 0x1E, 0x44, 0xF0, 0xA0, 0x40, 0xB0, 0x01, 0x2A, 0x06, 0x22, 0x18, 0x1E, 0x20, 0x08, 0x23, 0xFC, 0x20, 0x08, 0x21, 0xF8, 0x28, 0x08, 0xFB, 0xF8, 0x20, 0x00, 0x27, 0xFE, 0x24, 0x42, 0x2B, 0xFC, 0x3A, 0x48, 0xE2, 0x48, 0x42, 0x48, 0x02, 0x58, 0x00, 0x40, 0x00, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x10, 0x48, 0x10, 0x4A, 0xFF, 0xFE, 0x10, 0x48, 0x10, 0x48, 0x13, 0xF8, 0x10, 0x40, 0x1E, 0x48, 0xF1, 0x50, 0x42, 0x50, 0x0C, 0x4E, 0x01, 0x44, 0x00, 0x80, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0x13, 0xFC, 0xFE, 0x20, 0x12, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0x12, 0xF8, 0x1E, 0x20, 0xF3, 0x24, 0x45, 0x24, 0x05, 0x24, 0x09, 0xFC, 0x10, 0x04, 0x10, 0x90, 0x12, 0x90, 0x12, 0x94, 0x17, 0xFE, 0x12, 0x90, 0xFE, 0x90, 0x12, 0xF0, 0x12, 0x00, 0x13, 0xFC, 0x10, 0x40, 0x1F, 0xFE, 0xF0, 0xE0, 0x41, 0x50, 0x02, 0x4E, 0x0C, 0x44, 0x00, 0x40, 0x10, 0x04, 0x17, 0xFE, 0x10, 0xA0, 0x10, 0xA4, 0x17, 0xFE, 0xFC, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x17, 0xFC, 0x10, 0x40, 0x1C, 0x48, 0xF7, 0xFC, 0x40, 0x40, 0x00, 0x44, 0x0F, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x94, 0x12, 0x94, 0x12, 0x94, 0xFF, 0xFC, 0x12, 0x44, 0x10, 0x20, 0x17, 0xFE, 0x10, 0x80, 0x1C, 0xF8, 0xF0, 0x88, 0x41, 0x08, 0x01, 0x08, 0x02, 0x28, 0x0C, 0x10, 0x11, 0x00, 0x11, 0x78, 0x11, 0x08, 0x12, 0x12, 0x13, 0xFE, 0xFE, 0x00, 0x16, 0x88, 0x1A, 0xFC, 0x13, 0x20, 0x12, 0x24, 0x1F, 0xFE, 0xF2, 0x20, 0x42, 0x20, 0x02, 0x50, 0x02, 0x8E, 0x03, 0x04, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x00, 0x13, 0xF8, 0x12, 0x08, 0xFE, 0x08, 0x13, 0xF8, 0x10, 0x04, 0x17, 0xFE, 0x15, 0x14, 0x1C, 0xA4, 0xF5, 0xF4, 0x44, 0x44, 0x04, 0x44, 0x04, 0x54, 0x04, 0x08, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x20, 0x12, 0x44, 0x12, 0xFE, 0xFE, 0x84, 0x12, 0x84, 0x12, 0xFC, 0x12, 0x84, 0x12, 0x84, 0x1E, 0xFC, 0xF2, 0x20, 0x44, 0xA8, 0x05, 0x26, 0x0A, 0x22, 0x00, 0x60, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0xFC, 0x04, 0x17, 0xFE, 0x14, 0xA4, 0x14, 0xA4, 0x17, 0xFC, 0x1C, 0x00, 0xF3, 0xF8, 0x41, 0x10, 0x00, 0xE0, 0x03, 0x18, 0x0C, 0x06, 0x20, 0x20, 0x27, 0xFE, 0x24, 0x20, 0x25, 0xFC, 0x24, 0x24, 0xFF, 0xFE, 0x24, 0x24, 0x25, 0xFC, 0x24, 0x20, 0x25, 0xFC, 0x3D, 0x24, 0xE5, 0xFC, 0x49, 0x24, 0x09, 0xFC, 0x11, 0x24, 0x01, 0x2C, 0x24, 0x08, 0x22, 0xFC, 0x28, 0x48, 0x24, 0xC8, 0x21, 0x48, 0xFC, 0x88, 0x24, 0xA8, 0x29, 0x10, 0x20, 0x44, 0x2F, 0xFE, 0x38, 0x40, 0xE0, 0xE0, 0x41, 0x50, 0x02, 0x4E, 0x0C, 0x44, 0x00, 0x40, 0x20, 0x04, 0x27, 0xFE, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x20, 0xFD, 0x24, 0x24, 0xA8, 0x25, 0x24, 0x24, 0xA0, 0x25, 0xFC, 0x3E, 0x20, 0xE4, 0x24, 0x47, 0xFE, 0x08, 0x20, 0x10, 0x20, 0x00, 0x20, 0x08, 0x78, 0x7F, 0x48, 0x08, 0x4C, 0x7F, 0x80, 0x49, 0x7C, 0x7F, 0x28, 0x40, 0x10, 0x4F, 0xEE, 0x81, 0x00, 0x3F, 0xF8, 0x05, 0x00, 0x0F, 0xF0, 0x18, 0x1C, 0x2F, 0xF0, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x7F, 0x10, 0x08, 0xFE, 0xFF, 0x10, 0x22, 0x7C, 0x3E, 0x28, 0x14, 0x10, 0x7F, 0x6E, 0x02, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x12, 0x14, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x10, 0x20, 0xFE, 0x20, 0x11, 0x20, 0x7C, 0xBE, 0x00, 0x42, 0xFE, 0x14, 0x82, 0x50, 0x7C, 0x98, 0x01, 0x26, 0x7C, 0x42, 0x44, 0x20, 0x44, 0x10, 0x7D, 0x54, 0x29, 0x42, 0xFE, 0x4A, 0x00, 0x38, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x06, 0x40, 0x02, 0x00, 0x02, 0x20, 0x7F, 0xF0, 0x02, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x08, 0x22, 0x08, 0x22, 0x10, 0x1E, 0x60, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x3F, 0xF0, 0x04, 0x10, 0x04, 0x20, 0x04, 0x48, 0x08, 0xFC, 0x08, 0x08, 0x08, 0x08, 0x10, 0x08, 0x10, 0x88, 0x20, 0x50, 0x40, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x50, 0x00, 0xF8, 0x3F, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x3F, 0xF0, 0x08, 0x20, 0x08, 0x40, 0x0C, 0xF0, 0x12, 0x10, 0x12, 0x20, 0x11, 0x20, 0x20, 0xC0, 0x20, 0xB0, 0x43, 0x0E, 0x0C, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x06, 0x40, 0x02, 0x20, 0x3F, 0xF0, 0x02, 0x20, 0x1A, 0x20, 0x04, 0x20, 0x06, 0x20, 0x05, 0x20, 0x08, 0xA2, 0x08, 0x22, 0x10, 0x1E, 0x60, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x50, 0x3F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x20, 0x08, 0x3F, 0xFC, 0x00, 0x08, 0x00, 0x08, 0x00, 0x50, 0x00, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x50, 0x3F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x10, 0x04, 0x0F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x02, 0x00, 0x04, 0x20, 0x1F, 0xC0, 0x00, 0x80, 0x03, 0x20, 0x0C, 0x20, 0x3F, 0xC0, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x0E, 0x00, 0x70, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x05, 0x40, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x42, 0x08, 0x42, 0x10, 0x3E, 0x60, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x00, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x3F, 0xF0, 0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x06, 0xC0, 0x18, 0x30, 0xE0, 0x0E, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x48, 0x3F, 0xFC, 0x21, 0x00, 0x21, 0x08, 0x2F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x22, 0x08, 0x42, 0x08, 0x44, 0x08, 0x88, 0x50, 0x10, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x48, 0x1F, 0xFC, 0x10, 0x00, 0x10, 0x20, 0x17, 0xF0, 0x14, 0x20, 0x14, 0x20, 0x24, 0xA0, 0x24, 0x40, 0x44, 0x04, 0x84, 0x04, 0x03, 0xFC, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x20, 0x00, 0x20, 0x20, 0x3F, 0xF0, 0x20, 0x20, 0x20, 0x20, 0x3F, 0xE0, 0x20, 0x20, 0x20, 0x00, 0x20, 0x08, 0x3F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x20, 0x80, 0x20, 0x88, 0x24, 0x98, 0x3E, 0xA0, 0x20, 0xC0, 0x20, 0x80, 0x20, 0x80, 0x26, 0x84, 0x38, 0x84, 0x20, 0x7C, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x05, 0x40, 0x01, 0x00, 0x09, 0x00, 0x09, 0x10, 0x09, 0xF8, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x05, 0x40, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x22, 0x88, 0x22, 0x48, 0x24, 0x68, 0x28, 0x28, 0x20, 0x08, 0x20, 0x28, 0x20, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x90, 0x12, 0x90, 0x12, 0x90, 0x04, 0x80, 0x08, 0x84, 0x30, 0x84, 0xC0, 0x7C, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x08, 0xC0, 0x0B, 0x00, 0x08, 0x04, 0xFF, 0xFE, 0x0A, 0x00, 0x09, 0x00, 0x08, 0x80, 0x08, 0x40, 0x0A, 0x20, 0x0C, 0x1C, 0x08, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x50, 0x08, 0x50, 0x14, 0x50, 0x12, 0x88, 0x20, 0x88, 0x41, 0x04, 0x02, 0x02, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x33, 0x0E, 0xC0, 0x84, 0x00, 0x20, 0x1F, 0xF0, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x00, 0x08, 0x08, 0x0F, 0xFC, 0x12, 0x48, 0x22, 0x48, 0x44, 0x48, 0x04, 0x88, 0x08, 0x88, 0x11, 0x08, 0x22, 0x08, 0x04, 0x50, 0x00, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x0C, 0x40, 0x08, 0x00, 0x0F, 0xF8, 0x11, 0x10, 0x11, 0x20, 0x21, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x10, 0x0E, 0x60, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0xF8, 0x1F, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x1F, 0xFC, 0x10, 0x80, 0x10, 0x40, 0x10, 0x40, 0x14, 0x22, 0x18, 0x12, 0x10, 0x0E, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x00, 0x07, 0xC0, 0x04, 0x48, 0x08, 0x7C, 0x30, 0x00, 0x0F, 0xE0, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x70, 0x1C, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x06, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x40, 0x01, 0x30, 0x01, 0x10, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x06, 0x40, 0x41, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x00, 0x7F, 0x40, 0x02, 0x40, 0x0C, 0x40, 0x08, 0x40, 0x0F, 0x40, 0xF8, 0x40, 0x48, 0x40, 0x08, 0x42, 0x08, 0x42, 0x28, 0x3E, 0x10, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x08, 0x24, 0x08, 0x22, 0x08, 0x21, 0x10, 0x21, 0x10, 0x20, 0x10, 0x20, 0x20, 0x24, 0x20, 0x28, 0x50, 0x30, 0x8C, 0x01, 0x04, 0x06, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x04, 0x7F, 0xFE, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x05, 0x60, 0x19, 0x18, 0x61, 0x04, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x02, 0x20, 0x02, 0x14, 0xFF, 0xFE, 0x02, 0x80, 0x02, 0x88, 0x04, 0x98, 0x04, 0xA0, 0x08, 0xC0, 0x08, 0x82, 0x11, 0x82, 0x26, 0x7E, 0x40, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x02, 0x40, 0x02, 0x24, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x00, 0x07, 0xF0, 0x0A, 0x20, 0x09, 0x40, 0x10, 0x80, 0x21, 0x60, 0x46, 0x1C, 0x18, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x48, 0x27, 0xE8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x24, 0x48, 0x20, 0x28, 0x20, 0x10, 0x04, 0x20, 0x04, 0x24, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x40, 0x08, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x30, 0x40, 0x50, 0x40, 0x90, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x10, 0x08, 0x10, 0x10, 0x14, 0x17, 0xFE, 0x30, 0x10, 0x51, 0x10, 0x90, 0x90, 0x10, 0x90, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x02, 0x80, 0x04, 0x40, 0x0A, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x3F, 0xF0, 0x00, 0x20, 0x00, 0x40, 0x0C, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x02, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x0A, 0x20, 0x09, 0x60, 0x08, 0x08, 0x0F, 0xFC, 0x00, 0x08, 0xFF, 0xC8, 0x00, 0x08, 0x00, 0x50, 0x00, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x06, 0x08, 0x38, 0xFC, 0x20, 0x88, 0x20, 0x88, 0x3E, 0x88, 0x20, 0x88, 0x20, 0x88, 0x26, 0xA8, 0x38, 0x90, 0x20, 0x80, 0x00, 0x80, 0x00, 0x80, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x06, 0x08, 0x38, 0xFC, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0xC8, 0x3C, 0xA8, 0x24, 0x90, 0x08, 0x80, 0x10, 0x80, 0x60, 0x80, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x04, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xE4, 0x04, 0x20, 0x05, 0x20, 0x3F, 0xA0, 0x04, 0x20, 0x04, 0x20, 0x04, 0x24, 0x04, 0x14, 0x04, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x80, 0x20, 0x88, 0x3F, 0xFC, 0x20, 0x40, 0x20, 0x40, 0x28, 0x22, 0x30, 0x12, 0x20, 0x0E, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x08, 0x04, 0x08, 0x08, 0x08, 0x10, 0x50, 0x60, 0x20, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x48, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x28, 0x38, 0x30, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x08, 0x3F, 0xF8, 0x21, 0x00, 0x3F, 0xFC, 0x02, 0x84, 0x0C, 0x4C, 0x30, 0x30, 0xC0, 0x0E, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x00, 0x01, 0xF8, 0x7F, 0x20, 0x01, 0x44, 0x03, 0x84, 0x3C, 0x7C, 0x00, 0x10, 0x7F, 0xF8, 0x04, 0x80, 0x04, 0x82, 0x08, 0x82, 0x70, 0x7E, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x20, 0x80, 0x20, 0x98, 0x3E, 0xE0, 0x20, 0x80, 0x26, 0x84, 0x39, 0x7C, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x00, 0x04, 0x40, 0x24, 0x44, 0x27, 0x4C, 0x24, 0x50, 0x24, 0x60, 0x24, 0x40, 0x24, 0x40, 0x27, 0x42, 0xF8, 0x42, 0x40, 0x3E, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x20, 0x08, 0x2F, 0xE8, 0x20, 0x08, 0x27, 0xC8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x20, 0x08, 0x20, 0x28, 0x20, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x48, 0x27, 0xE8, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x11, 0x00, 0x11, 0x20, 0x1F, 0xF0, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x1C, 0x7D, 0xE0, 0x04, 0x20, 0x08, 0x24, 0x13, 0xFE, 0x3C, 0x20, 0x04, 0x20, 0x24, 0x28, 0x19, 0xFC, 0x0C, 0x00, 0x32, 0x06, 0xC1, 0xFC, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0xF0, 0x3E, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x30, 0x34, 0x4E, 0xC4, 0x44, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x10, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x50, 0x08, 0x48, 0x10, 0x40, 0x1F, 0xFE, 0x30, 0x40, 0x50, 0x40, 0x90, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x08, 0x14, 0x0E, 0x18, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x08, 0x08, 0x3C, 0x17, 0xC0, 0x10, 0x40, 0x30, 0x40, 0x50, 0x44, 0x9F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x08, 0x09, 0xFC, 0x10, 0x00, 0x64, 0x04, 0x0B, 0xFE, 0x18, 0x10, 0x28, 0x10, 0xC8, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x50, 0x08, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xDF, 0xF4, 0x01, 0x00, 0x01, 0x20, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x4E, 0xCF, 0xE4, 0x00, 0x00, 0x3F, 0xF8, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x00, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x14, 0x40, 0x10, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x5F, 0x88, 0x90, 0x88, 0x10, 0x88, 0x1F, 0x88, 0x10, 0x88, 0x10, 0x88, 0x1F, 0x88, 0x10, 0xA8, 0x00, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x02, 0x00, 0x07, 0xF0, 0x08, 0x20, 0x14, 0xC0, 0x23, 0x00, 0x04, 0x08, 0x0F, 0xFC, 0x38, 0x08, 0xC8, 0x08, 0x08, 0x08, 0x0F, 0xF8, 0x08, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x06, 0xC0, 0x01, 0x00, 0x02, 0xC0, 0x0C, 0x70, 0x34, 0x4E, 0xC4, 0x44, 0x04, 0x40, 0x08, 0x40, 0x10, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x00, 0x08, 0x10, 0x14, 0x4C, 0x24, 0x44, 0x42, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x60, 0x18, 0x1C, 0x60, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x04, 0x90, 0x04, 0x80, 0x04, 0x80, 0x08, 0x84, 0x10, 0x84, 0x60, 0x7C, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x20, 0x00, 0x18, 0x08, 0x0B, 0xFC, 0x40, 0x40, 0x20, 0x40, 0x28, 0x40, 0x10, 0x40, 0x20, 0x40, 0x60, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x40, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x89, 0x24, 0x0F, 0xF0, 0x11, 0x00, 0x21, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x40, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x41, 0x14, 0xBD, 0x20, 0x05, 0xC0, 0x09, 0x40, 0x09, 0x20, 0x11, 0x20, 0x61, 0x1C, 0x05, 0x00, 0x02, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x00, 0x10, 0x0F, 0xF0, 0x00, 0x10, 0x1F, 0xF0, 0x00, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x20, 0x04, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF8, 0x14, 0x10, 0x12, 0x20, 0x11, 0x40, 0x10, 0x80, 0x14, 0x60, 0x18, 0x1C, 0x10, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x40, 0x12, 0x20, 0x11, 0x90, 0x20, 0x8E, 0x20, 0x04, 0x43, 0x00, 0x80, 0xC0, 0x00, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x08, 0x0C, 0x90, 0x02, 0x80, 0x18, 0x80, 0x04, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x60, 0x0C, 0x18, 0x30, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x20, 0x7E, 0x20, 0x04, 0x20, 0x08, 0xA0, 0x0E, 0xA8, 0x38, 0xA4, 0xC9, 0x24, 0x09, 0x22, 0x0A, 0x22, 0x08, 0x20, 0x28, 0xA0, 0x10, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x00, 0x10, 0x08, 0x23, 0xFC, 0x7C, 0x20, 0x08, 0x20, 0x10, 0x20, 0x26, 0x20, 0x78, 0x20, 0x20, 0x20, 0x0E, 0x24, 0x73, 0xFE, 0x20, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x08, 0x10, 0x08, 0x22, 0x08, 0x7D, 0xFE, 0x08, 0x08, 0x10, 0x88, 0x26, 0x48, 0x78, 0x48, 0x00, 0x08, 0x0E, 0x08, 0x70, 0x28, 0x20, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0xFD, 0x04, 0x12, 0x48, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x1C, 0xA0, 0xE1, 0x10, 0x42, 0x0E, 0x04, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xE4, 0x00, 0x80, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0x10, 0x7C, 0x10, 0x44, 0x14, 0x47, 0xFE, 0x44, 0x10, 0x7C, 0x90, 0x44, 0x50, 0x44, 0x50, 0x44, 0x10, 0x7C, 0x10, 0x44, 0x50, 0x00, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x22, 0xC8, 0x2C, 0x48, 0x20, 0x28, 0x20, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0xF0, 0x3F, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x05, 0x40, 0x09, 0x30, 0x3F, 0xCE, 0xC4, 0x44, 0x04, 0xF0, 0x04, 0x10, 0x08, 0x50, 0x30, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x06, 0x60, 0x3C, 0x50, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x05, 0x48, 0x06, 0x48, 0x1C, 0x30, 0x64, 0x20, 0x04, 0x52, 0x15, 0x8A, 0x08, 0x06, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x14, 0x40, 0x10, 0x10, 0x1F, 0xF8, 0x20, 0x00, 0x5F, 0xF0, 0x12, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x22, 0x10, 0x21, 0x10, 0x3F, 0xFC, 0x00, 0x50, 0x00, 0x20, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x80, 0x08, 0x84, 0x14, 0xFE, 0x15, 0x88, 0x36, 0x88, 0x54, 0x50, 0x94, 0x50, 0x14, 0x20, 0x14, 0x50, 0x10, 0x88, 0x11, 0x0E, 0x12, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x80, 0x08, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x30, 0x00, 0x52, 0x18, 0x91, 0x10, 0x11, 0x10, 0x11, 0x20, 0x10, 0x24, 0x1F, 0xFE, 0x10, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x3F, 0xEE, 0xC1, 0x04, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x3F, 0xEE, 0xC0, 0x04, 0x02, 0x10, 0x11, 0x10, 0x09, 0x20, 0x09, 0x20, 0x00, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0xF8, 0x7F, 0x10, 0x11, 0x10, 0x09, 0x20, 0x3F, 0xF0, 0x00, 0x40, 0x01, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x00, 0xF8, 0x3F, 0x10, 0x11, 0x10, 0x09, 0x20, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x06, 0x40, 0x01, 0x80, 0x06, 0x60, 0x38, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x20, 0x50, 0x14, 0x48, 0x0B, 0xFE, 0x14, 0x40, 0x64, 0x60, 0x0C, 0xA0, 0x14, 0xA0, 0x24, 0xA0, 0xC5, 0x22, 0x05, 0x22, 0x2A, 0x1E, 0x14, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x20, 0x20, 0x14, 0x20, 0x08, 0xA4, 0x14, 0xA4, 0x64, 0xA8, 0x0D, 0x20, 0x14, 0x50, 0x24, 0x50, 0xC4, 0x90, 0x04, 0x88, 0x29, 0x0E, 0x12, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x10, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x40, 0x04, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x00, 0x00, 0x7F, 0xFC, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x84, 0x10, 0x84, 0x60, 0x7C, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x12, 0x10, 0x11, 0x20, 0x10, 0xC0, 0x14, 0x60, 0x18, 0x1E, 0x10, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x7F, 0xFE, 0x42, 0x02, 0x8F, 0xE4, 0x08, 0x20, 0x0B, 0x20, 0x08, 0xA0, 0x08, 0x48, 0x0F, 0xFC, 0x00, 0x08, 0x7F, 0xC8, 0x00, 0x28, 0x00, 0x10, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x20, 0x40, 0x7E, 0x48, 0x0A, 0x48, 0x12, 0x48, 0x23, 0xF8, 0x7C, 0x48, 0x00, 0x40, 0x0E, 0x42, 0x70, 0x42, 0x20, 0x3E, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0x3F, 0xF8, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x30, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x28, 0x7F, 0xFC, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x30, 0x30, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x1C, 0x08, 0xE0, 0xFE, 0x80, 0x08, 0x84, 0x1C, 0xFE, 0x1A, 0x90, 0x28, 0x90, 0x48, 0x90, 0x89, 0x10, 0x09, 0x10, 0x0A, 0x10, 0x08, 0x10, 0x04, 0x40, 0x04, 0x44, 0x7F, 0xFE, 0x04, 0x40, 0x08, 0x00, 0x0A, 0x50, 0x7F, 0x50, 0x08, 0x50, 0x1C, 0x88, 0x1A, 0xAE, 0x29, 0x24, 0x48, 0x40, 0x88, 0x50, 0x08, 0x88, 0x09, 0xFC, 0x08, 0x04, 0x08, 0x20, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x0F, 0xE0, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x01, 0x08, 0x7F, 0xFC, 0x02, 0x80, 0x04, 0x40, 0x0F, 0xF0, 0x30, 0x0E, 0xDF, 0xF4, 0x01, 0x00, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF0, 0x01, 0x14, 0xFF, 0xFE, 0x01, 0x10, 0x3F, 0xF0, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x80, 0x07, 0x80, 0x38, 0x78, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x90, 0x10, 0x88, 0xFF, 0xFE, 0x11, 0x00, 0x11, 0xF8, 0x1D, 0x88, 0xF2, 0x90, 0x52, 0x50, 0x14, 0x20, 0x18, 0x50, 0x50, 0x8E, 0x23, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x00, 0x0F, 0x7C, 0x08, 0x04, 0x0A, 0x44, 0xFF, 0x44, 0x08, 0x28, 0x2C, 0x28, 0x2B, 0x10, 0x49, 0x28, 0x88, 0x48, 0x28, 0x86, 0x11, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x20, 0x10, 0x24, 0x7C, 0x3E, 0x54, 0x20, 0x54, 0x24, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x5D, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x0D, 0x08, 0x31, 0x7C, 0x21, 0x08, 0x21, 0x08, 0x3D, 0x78, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x02, 0x80, 0x04, 0x60, 0x18, 0x1C, 0x60, 0x08, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x00, 0x08, 0x88, 0x1F, 0xFC, 0x10, 0x80, 0x30, 0x90, 0x5F, 0xF8, 0x90, 0x80, 0x10, 0x90, 0x1F, 0xF8, 0x10, 0x80, 0x10, 0x88, 0x1F, 0xFC, 0x10, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x02, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x22, 0x08, 0x3F, 0xF8, 0x05, 0x00, 0x09, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3D, 0xF8, 0x25, 0x08, 0x25, 0x48, 0x3D, 0x30, 0x25, 0x00, 0x25, 0xF8, 0x3D, 0x88, 0x25, 0x50, 0x25, 0x20, 0x45, 0x50, 0x55, 0x8E, 0x89, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x0F, 0xE0, 0x08, 0x20, 0x10, 0x48, 0x3F, 0xFC, 0x51, 0x08, 0x11, 0x08, 0x1F, 0xF8, 0x12, 0x80, 0x02, 0xA0, 0x04, 0x94, 0x18, 0x84, 0x60, 0x7C, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x00, 0x0F, 0xF0, 0x10, 0x20, 0x26, 0x48, 0x78, 0xFC, 0xA0, 0x08, 0x24, 0x08, 0x3E, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x08, 0x20, 0x14, 0x50, 0x22, 0x88, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x10, 0x20, 0x08, 0x20, 0xFF, 0x50, 0x10, 0x50, 0x1E, 0x8E, 0x13, 0x04, 0x12, 0x60, 0x22, 0x10, 0x22, 0x00, 0x42, 0xC0, 0x8A, 0x30, 0x04, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x40, 0x10, 0x33, 0xF8, 0x12, 0x10, 0x82, 0x10, 0x4B, 0xF0, 0x12, 0x10, 0x22, 0x10, 0xE3, 0xF0, 0x22, 0x10, 0x22, 0x14, 0x3F, 0xFE, 0x20, 0x00, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x41, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0x7F, 0xFC, 0x04, 0x00, 0x04, 0x10, 0x0F, 0xF8, 0x18, 0x10, 0x28, 0x10, 0x48, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x41, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x8F, 0xE4, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x00, 0x0F, 0xF0, 0x08, 0x10, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x41, 0x00, 0x7F, 0xFE, 0x50, 0x02, 0x9E, 0xFC, 0x12, 0x88, 0x22, 0x88, 0x52, 0x88, 0x0C, 0xA8, 0x04, 0x92, 0x08, 0x82, 0x30, 0x7E, 0x40, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x40, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0x84, 0x24, 0x1F, 0xC0, 0x01, 0x00, 0x02, 0x20, 0x1F, 0xF0, 0x09, 0x20, 0x09, 0x18, 0x31, 0x08, 0x03, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x7C, 0x1C, 0x09, 0xE0, 0x11, 0x50, 0x11, 0x50, 0x15, 0x50, 0x39, 0x50, 0xD2, 0x50, 0x12, 0x48, 0x12, 0x48, 0x14, 0x54, 0x58, 0xF6, 0x20, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xE0, 0x00, 0x20, 0x40, 0x44, 0x51, 0x94, 0x49, 0x24, 0x45, 0x44, 0x45, 0x44, 0x49, 0x34, 0x53, 0x14, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x08, 0x7E, 0xFC, 0x08, 0x48, 0x3E, 0x48, 0x08, 0x48, 0x7E, 0xA8, 0x09, 0x10, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x40, 0x18, 0x30, 0x60, 0x0C, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x08, 0x7F, 0x08, 0x08, 0xFE, 0x08, 0x08, 0x7F, 0x48, 0x00, 0x28, 0x08, 0x28, 0x7F, 0x08, 0x08, 0x08, 0x0F, 0x08, 0x78, 0x28, 0x20, 0x10, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x3F, 0xF8, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x24, 0xFF, 0xFE, 0x12, 0x80, 0x14, 0x40, 0x10, 0x10, 0x1F, 0xF8, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x04, 0x08, 0xFE, 0x7E, 0x84, 0x08, 0x84, 0x18, 0xFC, 0x1C, 0x84, 0x2A, 0x84, 0x28, 0xFC, 0x48, 0x84, 0x88, 0x84, 0x08, 0xFC, 0x08, 0x84, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x50, 0x00, 0x48, 0x3F, 0xFC, 0x20, 0x40, 0x3F, 0xC8, 0x24, 0x48, 0x3F, 0xD0, 0x25, 0x20, 0x29, 0x20, 0x2A, 0x60, 0x44, 0xA2, 0x5B, 0x12, 0x80, 0x0E, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x50, 0x00, 0x28, 0x3F, 0xFC, 0x20, 0x20, 0x2F, 0xA0, 0x28, 0xA4, 0x2A, 0xA4, 0x2A, 0xA8, 0x2A, 0xA8, 0x2A, 0x90, 0x45, 0x32, 0x44, 0xCA, 0x98, 0x86, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x20, 0x80, 0x3E, 0x98, 0x20, 0xE0, 0x2E, 0x84, 0x72, 0x7C, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x28, 0x7F, 0xFC, 0x00, 0x20, 0x00, 0x20, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0x90, 0x0C, 0x60, 0x30, 0x1C, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x02, 0x00, 0x29, 0x08, 0x29, 0x24, 0x48, 0x24, 0x07, 0xE0, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3E, 0xF8, 0x22, 0x88, 0x3E, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x08, 0x00, 0x0F, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0xA0, 0x00, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x0B, 0xF8, 0x0A, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x30, 0x40, 0x5F, 0xFE, 0x90, 0x40, 0x10, 0xE0, 0x11, 0x50, 0x12, 0x4E, 0x14, 0x44, 0x10, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x14, 0x40, 0x20, 0x04, 0x7D, 0xFE, 0x45, 0x24, 0x45, 0x24, 0x45, 0x24, 0x7D, 0x24, 0x45, 0xFC, 0x45, 0x04, 0x45, 0x00, 0x7D, 0x02, 0x44, 0xFE, 0x00, 0x00, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0x7F, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x40, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x11, 0x10, 0x09, 0x20, 0x7F, 0xFC, 0x05, 0x40, 0x39, 0x38, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x0C, 0x40, 0x03, 0x80, 0x06, 0x60, 0x38, 0x18, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x20, 0x1C, 0x1B, 0xE0, 0x4A, 0x0C, 0x22, 0xF0, 0x0A, 0xA4, 0x12, 0xA8, 0x22, 0x90, 0x64, 0x90, 0x24, 0x90, 0x24, 0xA8, 0x28, 0xCE, 0x30, 0x84, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x41, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x7E, 0xFC, 0x42, 0x04, 0x42, 0x04, 0x7E, 0xFC, 0x40, 0x00, 0x49, 0xFC, 0x7C, 0x88, 0x40, 0x50, 0x44, 0x20, 0x7E, 0x50, 0x41, 0x8E, 0x46, 0x04, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0x7F, 0xFC, 0x01, 0x00, 0x1F, 0xF0, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x0F, 0xF0, 0x31, 0x0E, 0xDF, 0xF4, 0x05, 0x40, 0x09, 0x30, 0x31, 0x08, 0x01, 0x00, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0x3F, 0xD0, 0x01, 0x24, 0xFF, 0xFE, 0x01, 0x00, 0x07, 0xE8, 0x1C, 0x08, 0x67, 0xF8, 0x00, 0x00, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xFC, 0x20, 0x00, 0x2F, 0xF0, 0x20, 0x04, 0x3F, 0xFE, 0x29, 0x10, 0x2A, 0xE0, 0x2C, 0x1E, 0x20, 0x20, 0x5F, 0xFC, 0x44, 0x20, 0x82, 0x20, 0x00, 0x60, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x14, 0xFF, 0xFE, 0x08, 0x20, 0x3F, 0xF8, 0xC0, 0x26, 0x08, 0x20, 0x0F, 0xF8, 0x00, 0x08, 0x3F, 0xC8, 0x00, 0x30, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x12, 0x90, 0x14, 0x50, 0x1F, 0xF0, 0x29, 0x08, 0x28, 0x84, 0x48, 0x24, 0x07, 0xE0, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x80, 0x08, 0x48, 0x0F, 0xFC, 0x10, 0x00, 0x11, 0x10, 0x30, 0xA4, 0x5F, 0xFE, 0x90, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x05, 0x40, 0x0A, 0x20, 0x14, 0x50, 0xEF, 0xEE, 0x00, 0x04, 0x7E, 0xF8, 0x02, 0x08, 0x12, 0x48, 0x06, 0x18, 0x1A, 0x68, 0x63, 0x88, 0x0A, 0x28, 0x04, 0x10, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0x7F, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x40, 0x14, 0x40, 0x08, 0x04, 0x40, 0x04, 0x44, 0x7F, 0xFE, 0x05, 0x40, 0x1F, 0xFC, 0x92, 0x00, 0x52, 0x10, 0x13, 0xF8, 0x34, 0x40, 0x50, 0x44, 0x9F, 0xFE, 0x10, 0xA0, 0x20, 0xA0, 0x21, 0x10, 0x42, 0x0E, 0x0C, 0x04, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x14, 0x50, 0x13, 0x90, 0x14, 0x50, 0x1F, 0xF0, 0x01, 0x04, 0x7F, 0xFE, 0x42, 0x04, 0x44, 0x24, 0x4F, 0xF4, 0x40, 0x14, 0x40, 0x08, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x10, 0x3F, 0xF8, 0x04, 0x40, 0x7F, 0xFE, 0x42, 0x02, 0x81, 0x14, 0x3F, 0xF8, 0x04, 0x00, 0x07, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x10, 0xA0, 0x60, 0x40, 0x04, 0x40, 0xFF, 0xFE, 0x14, 0x50, 0x08, 0x20, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x48, 0xFF, 0xFE, 0x04, 0x48, 0x3F, 0xF8, 0x0C, 0x60, 0x14, 0x50, 0x24, 0x4E, 0xC4, 0x44, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x22, 0x7C, 0x14, 0x44, 0xFF, 0xC4, 0x08, 0x7C, 0x49, 0x44, 0x49, 0x44, 0x7F, 0x7C, 0x09, 0x44, 0x08, 0x44, 0x08, 0x84, 0x10, 0x94, 0x21, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x80, 0x20, 0x48, 0x1B, 0xFC, 0x0A, 0x08, 0x43, 0xF8, 0x26, 0x08, 0x0B, 0xF8, 0x12, 0x88, 0x72, 0x50, 0x12, 0x20, 0x12, 0x90, 0x13, 0x0E, 0x12, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x7F, 0xFE, 0x41, 0x02, 0x82, 0x84, 0x0C, 0x60, 0x37, 0xDE, 0xC1, 0x04, 0x1F, 0xF0, 0x01, 0x00, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x7D, 0xFE, 0x04, 0x20, 0x28, 0x44, 0x11, 0xFE, 0xFD, 0x04, 0x15, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x44, 0x10, 0x58, 0x50, 0x84, 0x23, 0x02, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0xFF, 0xA4, 0x08, 0x7E, 0x7F, 0x44, 0x49, 0xA8, 0x49, 0x20, 0x7F, 0x20, 0x18, 0x20, 0x1C, 0x50, 0x2A, 0x48, 0xC8, 0x8E, 0x09, 0x04, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x40, 0x00, 0x7F, 0xFE, 0x40, 0x22, 0x9F, 0xF4, 0x04, 0x00, 0x07, 0xC0, 0x0A, 0x40, 0x09, 0x44, 0x1F, 0xC4, 0x00, 0x3C, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x0A, 0x08, 0x37, 0xFC, 0x24, 0x48, 0x27, 0xC8, 0x24, 0x48, 0x2F, 0xC8, 0x30, 0x38, 0x04, 0x40, 0x04, 0x40, 0x08, 0x42, 0x30, 0x42, 0xC0, 0x3E, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x48, 0x11, 0x7C, 0x25, 0x40, 0x49, 0x44, 0x17, 0xFE, 0x30, 0x40, 0x52, 0x48, 0x92, 0x7C, 0x13, 0x40, 0x12, 0xC0, 0x14, 0x3E, 0x18, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x14, 0x24, 0x22, 0x3E, 0x41, 0x44, 0xBE, 0xA4, 0x00, 0x24, 0x49, 0x24, 0x29, 0x28, 0x2A, 0x10, 0x07, 0x28, 0x78, 0x46, 0x20, 0x84, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x11, 0x04, 0x11, 0xFE, 0xFE, 0x00, 0x24, 0x88, 0x20, 0xFC, 0x3C, 0xA0, 0x25, 0x24, 0x27, 0xFE, 0x24, 0x50, 0x44, 0x50, 0x54, 0x8E, 0x89, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x17, 0xFC, 0x45, 0x04, 0x44, 0xA4, 0x4F, 0xF4, 0x58, 0x84, 0x6F, 0xE4, 0x48, 0x84, 0x4F, 0xE4, 0x48, 0x84, 0x4F, 0xF4, 0x48, 0x14, 0x40, 0x08, 0x04, 0x40, 0xFF, 0xFE, 0x24, 0x40, 0x13, 0xFC, 0x42, 0x00, 0x2B, 0xF8, 0x12, 0x08, 0x63, 0xF8, 0x22, 0x00, 0x23, 0xFC, 0x01, 0x00, 0xFF, 0xFE, 0x05, 0x40, 0x19, 0x30, 0x61, 0x0C, 0x01, 0x00, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x42, 0x84, 0x74, 0x3E, 0x40, 0x00, 0xF8, 0xFF, 0x08, 0x14, 0x50, 0x14, 0x20, 0x14, 0x50, 0x25, 0x8A, 0x44, 0x02, 0x83, 0xFE, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x01, 0x00, 0x7F, 0xFE, 0x48, 0x02, 0x88, 0x08, 0x17, 0xFC, 0x30, 0x40, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3E, 0xF8, 0x12, 0x48, 0x0A, 0x28, 0x13, 0x48, 0x22, 0x88, 0x0C, 0x60, 0x31, 0x98, 0xC6, 0x06, 0x18, 0xC0, 0x07, 0x18, 0x18, 0x60, 0x03, 0x80, 0x3C, 0x00, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0x7F, 0xFC, 0x01, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x08, 0x7F, 0xFC, 0x12, 0x00, 0x51, 0x14, 0x50, 0x12, 0x8F, 0xF2, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xFC, 0x28, 0xA0, 0x25, 0x20, 0x3F, 0xBE, 0x22, 0x42, 0x2A, 0x94, 0x2A, 0x90, 0x2A, 0x90, 0x2F, 0xA8, 0x42, 0xA8, 0x42, 0x28, 0x84, 0x46, 0x08, 0x84, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0xFF, 0x10, 0x10, 0x50, 0x31, 0x7C, 0x4A, 0x90, 0x96, 0x10, 0x25, 0x7C, 0x4D, 0x10, 0x15, 0x14, 0x25, 0xFE, 0x44, 0x80, 0x84, 0x40, 0x28, 0x3E, 0x10, 0x0C, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x14, 0xFF, 0xFE, 0x21, 0x00, 0x3F, 0x7C, 0x21, 0x44, 0x3F, 0x28, 0x21, 0x10, 0xFF, 0xA8, 0x01, 0x4E, 0x01, 0x84, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3E, 0x10, 0x22, 0x48, 0x3E, 0x48, 0x00, 0x40, 0xFF, 0xFE, 0x22, 0x40, 0x3E, 0x48, 0x22, 0x48, 0x3E, 0x30, 0x22, 0x20, 0xFF, 0x52, 0x02, 0x8A, 0x02, 0x04, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x09, 0x20, 0x05, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x31, 0x18, 0xDF, 0xF6, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x22, 0x0C, 0x14, 0x70, 0x7F, 0x40, 0x49, 0x40, 0x7F, 0x7E, 0x49, 0x48, 0x7F, 0x48, 0x08, 0x48, 0xFF, 0x48, 0x08, 0x88, 0x08, 0x88, 0x09, 0x08, 0x08, 0x08, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3E, 0x90, 0x20, 0x90, 0x3D, 0xFC, 0x20, 0x90, 0x3C, 0x90, 0x20, 0x94, 0xFF, 0xFE, 0x10, 0x00, 0x24, 0x90, 0x24, 0x88, 0x7D, 0x04, 0x02, 0x04, 0x04, 0x20, 0xFF, 0xFE, 0x04, 0x20, 0x00, 0x50, 0x7E, 0x50, 0x11, 0xDC, 0x10, 0x50, 0x1C, 0x50, 0x25, 0xDC, 0x54, 0x50, 0x08, 0x50, 0x09, 0xDC, 0x10, 0x50, 0x20, 0x54, 0x43, 0xFE, 0x00, 0x00, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x08, 0x80, 0x1E, 0x90, 0x32, 0xA0, 0x4C, 0xC4, 0x08, 0x84, 0x70, 0x7C, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x12, 0x20, 0x1A, 0xA4, 0x2A, 0xBE, 0x4F, 0xC4, 0x90, 0x24, 0x2F, 0xA4, 0x60, 0x28, 0xA7, 0x28, 0x25, 0x10, 0x25, 0x90, 0x29, 0x28, 0x28, 0x46, 0x30, 0x84, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0x3F, 0xF8, 0x08, 0x20, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x09, 0x00, 0x28, 0x88, 0x28, 0x24, 0x47, 0xE4, 0x04, 0x40, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0xFF, 0xFE, 0x10, 0xA0, 0x14, 0x94, 0x25, 0xFE, 0x7A, 0x90, 0x10, 0xFC, 0x24, 0x90, 0x7C, 0xFC, 0x04, 0x90, 0x08, 0x94, 0x10, 0xFE, 0x60, 0x80, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x49, 0x20, 0x2A, 0x24, 0xFF, 0x7E, 0x2A, 0x84, 0x49, 0x44, 0x10, 0x48, 0xFF, 0x48, 0x22, 0x30, 0x64, 0x20, 0x18, 0x50, 0x26, 0x8E, 0x41, 0x04, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x3E, 0x20, 0x23, 0xFC, 0x22, 0x88, 0x3E, 0x50, 0x21, 0xFE, 0x20, 0x20, 0x3E, 0x28, 0x53, 0xFC, 0x52, 0x20, 0x92, 0x20, 0x1E, 0x20, 0x10, 0x20, 0x04, 0x40, 0xFF, 0xFE, 0x24, 0x40, 0x23, 0xFC, 0x22, 0x00, 0xFA, 0xF8, 0x4A, 0x00, 0x4B, 0xFE, 0x4A, 0xA8, 0x92, 0x90, 0x52, 0xCE, 0x22, 0x08, 0x55, 0xFE, 0x4C, 0x88, 0x88, 0x48, 0x10, 0x18, 0x04, 0x40, 0xFF, 0xFE, 0x08, 0x20, 0x3F, 0xF8, 0x0A, 0x20, 0x09, 0x20, 0x48, 0xA0, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x04, 0x40, 0x0F, 0xE0, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFC, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x7F, 0xFC, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x7F, 0xFC, 0x02, 0x00, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x20, 0x18, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x25, 0x48, 0x3F, 0xF8, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x24, 0x88, 0x42, 0x44, 0x04, 0x40, 0xFF, 0xFE, 0x14, 0x40, 0x10, 0x44, 0x3E, 0x28, 0x44, 0xFE, 0x88, 0x10, 0x7F, 0x10, 0x49, 0x7C, 0x7F, 0x10, 0x49, 0x10, 0x7F, 0xFE, 0x00, 0x10, 0x0F, 0x10, 0xF0, 0x10, 0x00, 0x10, 0x04, 0x40, 0xFF, 0xFE, 0x05, 0x40, 0x7F, 0xFC, 0x09, 0x20, 0x08, 0xA0, 0x7F, 0xFC, 0x40, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xEC, 0x01, 0x00, 0xFF, 0xFE, 0x05, 0x40, 0x19, 0x30, 0x61, 0x0C, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3E, 0x44, 0x08, 0x7E, 0x7E, 0x94, 0x18, 0x24, 0x2D, 0x44, 0x4A, 0x98, 0x04, 0x40, 0x19, 0x30, 0xE9, 0x2E, 0x05, 0x40, 0x09, 0x20, 0x15, 0x10, 0x02, 0x00, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x10, 0x90, 0x1F, 0xFC, 0x30, 0x80, 0x5F, 0xF8, 0x90, 0x80, 0x1F, 0xF8, 0x10, 0x80, 0x1F, 0xFC, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x40, 0x78, 0x30, 0x40, 0x17, 0xFC, 0x04, 0x44, 0x05, 0xF0, 0xF4, 0x44, 0x15, 0x3C, 0x16, 0xA8, 0x15, 0x68, 0x14, 0xA8, 0x19, 0x24, 0x28, 0x40, 0x47, 0xFE, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x12, 0x00, 0x13, 0xDC, 0x24, 0x80, 0x4F, 0xC0, 0x95, 0x7E, 0x27, 0xC8, 0x65, 0x48, 0xA7, 0xC8, 0x21, 0x08, 0x2F, 0xE8, 0x21, 0x08, 0x22, 0x88, 0x2C, 0x58, 0x04, 0x40, 0xFF, 0xFE, 0x24, 0x20, 0x3F, 0xA4, 0x40, 0x7E, 0xBF, 0x84, 0x29, 0x24, 0xFF, 0xA8, 0x25, 0x10, 0x3F, 0x2E, 0x02, 0x44, 0x0F, 0xE0, 0x02, 0x20, 0x1F, 0xF0, 0x05, 0x40, 0x39, 0x38, 0x04, 0x40, 0xFF, 0xFE, 0x14, 0x20, 0x3F, 0xFC, 0x62, 0x88, 0x3E, 0x50, 0x21, 0xFC, 0x3E, 0x20, 0x23, 0xFC, 0x3E, 0x20, 0x01, 0x24, 0xFF, 0xFE, 0x05, 0x40, 0x19, 0x30, 0x61, 0x0C, 0x01, 0x00, 0x02, 0x20, 0x7F, 0xFE, 0x02, 0xA0, 0x3F, 0xFC, 0x22, 0x10, 0x3F, 0xFE, 0x2B, 0x54, 0x32, 0x92, 0x21, 0x20, 0x2F, 0x3C, 0x21, 0x20, 0x2F, 0x3C, 0x41, 0x20, 0x5F, 0x3E, 0x81, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x14, 0x50, 0x24, 0x4C, 0x48, 0xC4, 0x10, 0x00, 0x04, 0x40, 0x04, 0x44, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC9, 0x24, 0x09, 0x20, 0x09, 0x20, 0x09, 0x20, 0x09, 0x20, 0x11, 0x20, 0x11, 0x20, 0x21, 0x20, 0x00, 0x20, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x3F, 0xF8, 0xD0, 0x26, 0x14, 0x40, 0x12, 0x80, 0x11, 0x00, 0x12, 0x80, 0x14, 0x60, 0x18, 0x20, 0x1F, 0xF8, 0x00, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x3F, 0xF8, 0xC8, 0x26, 0x0F, 0xE0, 0x08, 0x20, 0x0F, 0xE0, 0x08, 0x28, 0x08, 0xFC, 0x7F, 0x20, 0x00, 0x20, 0x00, 0x20, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x14, 0x50, 0x24, 0x4C, 0x48, 0xC4, 0x11, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x08, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x00, 0x3C, 0x7F, 0xC8, 0x22, 0x08, 0x11, 0x10, 0x12, 0x40, 0x04, 0x20, 0x1F, 0xF0, 0x02, 0x00, 0x04, 0x20, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x70, 0x1C, 0x04, 0x20, 0x24, 0x20, 0x24, 0x28, 0x3D, 0xFC, 0x04, 0x20, 0x7C, 0x20, 0x24, 0x28, 0x25, 0xFC, 0x44, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x18, 0x30, 0x60, 0x0E, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0xFE, 0xFC, 0x29, 0x08, 0x46, 0x08, 0xFD, 0xE8, 0x01, 0x28, 0xFF, 0x28, 0x21, 0xE8, 0x3D, 0x28, 0x05, 0x10, 0x05, 0x02, 0x05, 0x02, 0x28, 0xFE, 0x10, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x84, 0x10, 0x84, 0x20, 0x7C, 0x40, 0x00, 0x20, 0x80, 0x20, 0x80, 0x20, 0x88, 0x20, 0xFC, 0xFD, 0x08, 0x29, 0x08, 0x2A, 0x88, 0x28, 0x48, 0x28, 0x48, 0x28, 0x08, 0x28, 0x08, 0x28, 0x88, 0x28, 0x52, 0x48, 0x22, 0x47, 0xFE, 0x80, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x20, 0x90, 0xFD, 0x08, 0x2A, 0x06, 0x2C, 0x94, 0x28, 0x90, 0x28, 0x90, 0x28, 0x90, 0x29, 0x10, 0x29, 0x10, 0x2A, 0x12, 0x48, 0x02, 0x47, 0xFE, 0x80, 0x00, 0x20, 0x90, 0x22, 0x90, 0x22, 0xA0, 0x22, 0xFC, 0xFE, 0x80, 0x2A, 0x90, 0x28, 0x88, 0x28, 0x80, 0x2B, 0xF8, 0x2A, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, 0x2F, 0xFE, 0x48, 0x02, 0x47, 0xFE, 0x80, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xFC, 0x00, 0x10, 0x00, 0x10, 0x00, 0x14, 0x00, 0x18, 0x00, 0x30, 0x00, 0xD0, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x50, 0x00, 0x20, 0x00, 0x10, 0x00, 0x12, 0x04, 0x11, 0x7E, 0x12, 0x84, 0xFE, 0x04, 0x12, 0x04, 0x12, 0x04, 0x16, 0x04, 0x1A, 0x04, 0x32, 0x04, 0xD2, 0x04, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04, 0x52, 0x14, 0x20, 0x08, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0xFC, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x14, 0x80, 0x18, 0x80, 0x31, 0xF8, 0xD0, 0x08, 0x13, 0x10, 0x10, 0xD0, 0x10, 0x20, 0x50, 0x10, 0x20, 0x08, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0xFB, 0xFE, 0x12, 0x44, 0x12, 0x44, 0x1B, 0xFC, 0x32, 0x44, 0xD2, 0x44, 0x13, 0xFC, 0x12, 0x44, 0x10, 0x40, 0x10, 0x40, 0x50, 0x40, 0x20, 0x40, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x11, 0x08, 0xFD, 0x08, 0x13, 0xFE, 0x15, 0x08, 0x15, 0x48, 0x19, 0x28, 0x31, 0x28, 0xD1, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x51, 0x28, 0x21, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0x90, 0x11, 0x08, 0xFF, 0xFC, 0x10, 0x04, 0x11, 0x10, 0x15, 0x10, 0x19, 0x14, 0x37, 0xFE, 0xD1, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x52, 0x10, 0x24, 0x10, 0x10, 0x20, 0x11, 0x20, 0x11, 0x20, 0x12, 0x20, 0xFA, 0x24, 0x14, 0xFE, 0x1F, 0x24, 0x11, 0x24, 0x1A, 0x24, 0x32, 0x24, 0xD4, 0xA4, 0x1F, 0xA4, 0x10, 0x44, 0x10, 0x44, 0x50, 0x94, 0x21, 0x08, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0xFF, 0xFE, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x18, 0x00, 0x30, 0x08, 0xD3, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x53, 0xF8, 0x22, 0x08, 0x10, 0x08, 0x10, 0x3C, 0x17, 0xC0, 0x10, 0x40, 0xFC, 0x84, 0x17, 0xFE, 0x10, 0xA0, 0x15, 0x10, 0x1A, 0x08, 0x35, 0x16, 0xD9, 0x14, 0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x52, 0x10, 0x24, 0x10, 0x11, 0x24, 0x11, 0x24, 0x12, 0x48, 0x11, 0x24, 0xFD, 0x24, 0x10, 0x80, 0x10, 0x84, 0x14, 0xFE, 0x19, 0x04, 0x31, 0x84, 0xD2, 0x48, 0x14, 0x28, 0x10, 0x10, 0x10, 0x20, 0x50, 0xC0, 0x23, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFD, 0xF8, 0x10, 0x04, 0x13, 0xFE, 0x16, 0x44, 0x1A, 0x44, 0x32, 0x44, 0xD3, 0xFC, 0x12, 0x04, 0x12, 0x00, 0x12, 0x02, 0x52, 0x02, 0x21, 0xFE, 0x10, 0x08, 0x10, 0x7C, 0x17, 0x80, 0x12, 0x48, 0xFD, 0x48, 0x11, 0x50, 0x10, 0x20, 0x14, 0x08, 0x1B, 0xFE, 0x30, 0x08, 0xD1, 0x08, 0x10, 0x88, 0x10, 0x88, 0x10, 0x08, 0x50, 0x28, 0x20, 0x10, 0x10, 0x08, 0x17, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFF, 0xFE, 0x11, 0x08, 0x11, 0x08, 0x17, 0xF8, 0x19, 0x00, 0x32, 0x08, 0xD3, 0xFC, 0x15, 0x08, 0x15, 0x08, 0x19, 0x08, 0x51, 0xF8, 0x21, 0x08, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x40, 0x10, 0x40, 0xFC, 0x84, 0x17, 0xFE, 0x10, 0xA0, 0x15, 0x10, 0x1A, 0x4E, 0x34, 0x44, 0xD9, 0x68, 0x11, 0x54, 0x12, 0x54, 0x14, 0x44, 0x51, 0x40, 0x20, 0x80, 0x20, 0x00, 0x2F, 0xFC, 0x24, 0xA4, 0x24, 0xA4, 0xFC, 0xA4, 0x27, 0xA8, 0x24, 0xA4, 0x24, 0xA4, 0x2F, 0xA2, 0x34, 0xA2, 0xE4, 0xA2, 0x24, 0xB4, 0x2F, 0xE8, 0x20, 0xA0, 0xA0, 0xA0, 0x40, 0xA0, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x20, 0x12, 0x28, 0xFF, 0xFC, 0x12, 0x20, 0x12, 0x24, 0x17, 0xFE, 0x1A, 0x20, 0x32, 0x28, 0xD3, 0xFC, 0x12, 0x20, 0x14, 0x20, 0x14, 0x24, 0x5B, 0xFE, 0x20, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0xF8, 0xA0, 0x11, 0x10, 0x12, 0x08, 0x15, 0xF6, 0x18, 0x04, 0x30, 0x08, 0xD7, 0xFC, 0x10, 0x40, 0x12, 0x50, 0x12, 0x4C, 0x55, 0x44, 0x20, 0x80, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0xFC, 0xA0, 0x11, 0x14, 0x17, 0xFE, 0x10, 0x08, 0x18, 0x08, 0x33, 0xC8, 0xD2, 0x48, 0x12, 0x48, 0x13, 0xC8, 0x10, 0x08, 0x50, 0x28, 0x20, 0x10, 0x20, 0x04, 0x27, 0xFE, 0x24, 0x04, 0x24, 0x04, 0xFD, 0xF4, 0x24, 0x44, 0x24, 0x44, 0x25, 0xF4, 0x2C, 0x44, 0x34, 0x54, 0xE4, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x24, 0x04, 0xA7, 0xFC, 0x44, 0x04, 0x10, 0x40, 0x10, 0x84, 0x13, 0xFE, 0x12, 0x44, 0xFE, 0x44, 0x13, 0xFC, 0x12, 0x44, 0x16, 0x44, 0x1B, 0xFC, 0x30, 0xA0, 0xD1, 0x24, 0x1F, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x50, 0x20, 0x20, 0x20, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0x13, 0xFE, 0xFE, 0x84, 0x14, 0x94, 0x12, 0xA4, 0x10, 0x84, 0x1B, 0xF4, 0x30, 0x84, 0xD1, 0xC4, 0x12, 0xB4, 0x14, 0x94, 0x10, 0x84, 0x50, 0x14, 0x20, 0x08, 0x10, 0x80, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0xFC, 0x00, 0x11, 0x10, 0x10, 0xA4, 0x17, 0xFE, 0x18, 0x00, 0x30, 0x08, 0xD3, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x53, 0xF8, 0x22, 0x08, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x12, 0x04, 0xFE, 0x04, 0x13, 0xFC, 0x12, 0x20, 0x16, 0x28, 0x1A, 0x24, 0x33, 0xFE, 0xD2, 0x50, 0x12, 0x50, 0x14, 0x88, 0x14, 0x88, 0x59, 0x06, 0x22, 0x04, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x12, 0x04, 0xFE, 0x04, 0x13, 0xFC, 0x12, 0x00, 0x16, 0xFC, 0x1A, 0x84, 0x32, 0xFC, 0xD2, 0x84, 0x12, 0xFC, 0x14, 0x84, 0x14, 0x84, 0x58, 0x94, 0x20, 0x88, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x48, 0x17, 0xFE, 0xFA, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x10, 0x00, 0x1B, 0xF8, 0x32, 0x08, 0xD2, 0x48, 0x12, 0x48, 0x12, 0x48, 0x10, 0xB0, 0x51, 0x08, 0x26, 0x04, 0x10, 0x90, 0x12, 0x90, 0x12, 0x94, 0x17, 0xFE, 0xFA, 0x90, 0x12, 0x90, 0x12, 0xF0, 0x16, 0x00, 0x1B, 0xFC, 0x30, 0x40, 0xD7, 0xFE, 0x10, 0xE0, 0x11, 0x50, 0x12, 0x4E, 0x54, 0x44, 0x20, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0xFC, 0xE0, 0x11, 0x50, 0x12, 0x4E, 0x14, 0x44, 0x1B, 0xF8, 0x32, 0x08, 0xD3, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x10, 0x00, 0x5F, 0xFE, 0x20, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x14, 0x00, 0x15, 0xF8, 0xFD, 0x08, 0x15, 0xF8, 0x15, 0x08, 0x15, 0xF8, 0x1C, 0x40, 0x37, 0xFE, 0xD4, 0x88, 0x15, 0x90, 0x14, 0x60, 0x14, 0x98, 0x57, 0xFE, 0x20, 0x00, 0x20, 0x20, 0x24, 0x20, 0x24, 0x20, 0x27, 0xA4, 0xF4, 0x3E, 0x28, 0x44, 0x37, 0xA8, 0x22, 0x20, 0x32, 0x20, 0x2F, 0xA0, 0xE2, 0x20, 0x22, 0x50, 0x23, 0x50, 0x22, 0x88, 0xA0, 0x8E, 0x41, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0xFE, 0x08, 0x15, 0xF6, 0x18, 0x00, 0x13, 0xC4, 0x1A, 0x54, 0x33, 0xD4, 0xD2, 0x54, 0x13, 0xD4, 0x12, 0x54, 0x12, 0x44, 0x52, 0x54, 0x22, 0xC8, 0x10, 0x80, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0xFD, 0x10, 0x10, 0xA4, 0x1F, 0xFE, 0x14, 0x08, 0x1B, 0xFC, 0x32, 0x08, 0xD2, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x53, 0xF8, 0x22, 0x08, 0x10, 0x80, 0x14, 0x40, 0x17, 0xFE, 0x14, 0x02, 0xFC, 0x08, 0x13, 0xFC, 0x10, 0x00, 0x13, 0xF8, 0x1A, 0x08, 0x33, 0xF8, 0xD2, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x04, 0x57, 0xFE, 0x20, 0x00, 0x20, 0x04, 0x27, 0xFE, 0x24, 0x04, 0x24, 0x04, 0xFF, 0xFC, 0x25, 0x08, 0x24, 0x90, 0x27, 0xFC, 0x2C, 0x90, 0x34, 0x94, 0xE7, 0xFE, 0x24, 0x90, 0x28, 0x90, 0x28, 0x90, 0xB1, 0x10, 0x42, 0x10, 0x10, 0x20, 0x17, 0xA8, 0x10, 0xB0, 0x14, 0xA4, 0xFB, 0x28, 0x11, 0x10, 0x12, 0x08, 0x13, 0xF6, 0x1C, 0x44, 0x30, 0x40, 0xD7, 0xFC, 0x10, 0x80, 0x10, 0xA0, 0x11, 0x10, 0x52, 0x08, 0x24, 0x04, 0x10, 0x80, 0x10, 0x80, 0x10, 0xF8, 0x11, 0x08, 0xFD, 0xF0, 0x10, 0x14, 0x17, 0xFE, 0x14, 0x88, 0x19, 0x50, 0x36, 0xA0, 0xD1, 0x30, 0x16, 0x68, 0x11, 0xAE, 0x16, 0x24, 0x50, 0xA0, 0x20, 0x40, 0x10, 0x48, 0x10, 0x7C, 0x10, 0x40, 0x13, 0xFC, 0xFE, 0x44, 0x12, 0x48, 0x13, 0xF8, 0x16, 0x40, 0x1A, 0x44, 0x32, 0x3C, 0xD2, 0x00, 0x14, 0xA0, 0x1A, 0x94, 0x12, 0x82, 0x54, 0x8A, 0x20, 0x78, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x48, 0x12, 0x48, 0xFF, 0xF8, 0x12, 0x48, 0x12, 0xA8, 0x17, 0x18, 0x1A, 0x08, 0x33, 0xF8, 0xD0, 0x00, 0x11, 0x40, 0x15, 0x44, 0x15, 0x12, 0x59, 0x12, 0x20, 0xF0, 0x10, 0x08, 0x10, 0x7C, 0x17, 0xA0, 0x14, 0x3C, 0xFC, 0x20, 0x15, 0xFE, 0x15, 0x22, 0x15, 0xF8, 0x1D, 0x24, 0x35, 0x3C, 0xD5, 0x00, 0x15, 0x78, 0x15, 0x48, 0x16, 0x4A, 0x58, 0x8A, 0x23, 0x06, 0x12, 0x08, 0x11, 0x10, 0x10, 0xA4, 0x17, 0xFE, 0xF8, 0xA0, 0x10, 0xA4, 0x17, 0xFE, 0x10, 0xA4, 0x1F, 0xFE, 0x30, 0xA4, 0xD7, 0xFC, 0x11, 0xB0, 0x12, 0xA8, 0x14, 0xA6, 0x58, 0xA4, 0x20, 0xA0, 0x20, 0x04, 0x28, 0xBE, 0x25, 0x24, 0x20, 0x24, 0xFF, 0xE4, 0x22, 0x3C, 0x2A, 0xA4, 0x2A, 0xA4, 0x2A, 0xA4, 0x3A, 0xBC, 0xEF, 0xA4, 0x22, 0xA4, 0x22, 0x44, 0x24, 0x44, 0xA8, 0x94, 0x51, 0x08, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0xFF, 0xFC, 0x12, 0x94, 0x12, 0x90, 0x17, 0xFC, 0x1A, 0x90, 0x32, 0x94, 0xD3, 0xFE, 0x15, 0x40, 0x15, 0x28, 0x15, 0x10, 0x59, 0x8E, 0x21, 0x04, 0x10, 0x04, 0x17, 0xBE, 0x10, 0x84, 0x10, 0x84, 0xFF, 0xBC, 0x14, 0x20, 0x14, 0x24, 0x17, 0xBE, 0x18, 0x84, 0x34, 0xA4, 0xD2, 0x94, 0x12, 0x94, 0x14, 0xA4, 0x10, 0x84, 0x52, 0x94, 0x21, 0x08, 0x10, 0x00, 0x13, 0xF8, 0x11, 0x10, 0x10, 0xE0, 0xFB, 0x18, 0x10, 0x00, 0x17, 0xBC, 0x14, 0xA4, 0x1B, 0x18, 0x34, 0xA4, 0xD0, 0x40, 0x1F, 0xFE, 0x11, 0x50, 0x12, 0x48, 0x54, 0x46, 0x20, 0x40, 0x10, 0x04, 0x17, 0xFE, 0x14, 0x44, 0x17, 0xFC, 0xFC, 0x44, 0x17, 0xFC, 0x14, 0x84, 0x11, 0x10, 0x1B, 0xE0, 0x30, 0x40, 0xD0, 0x88, 0x17, 0xFC, 0x11, 0x50, 0x12, 0x4C, 0x54, 0x44, 0x20, 0xC0, 0x10, 0x00, 0x17, 0xBC, 0x14, 0xA4, 0x15, 0xAC, 0xFD, 0xAC, 0x16, 0x34, 0x13, 0x18, 0x14, 0xA4, 0x18, 0x80, 0x37, 0xFE, 0xD1, 0x10, 0x12, 0x10, 0x11, 0x20, 0x10, 0xE0, 0x51, 0x98, 0x26, 0x04, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x12, 0x88, 0xFE, 0x88, 0x12, 0x88, 0x13, 0xFE, 0x16, 0x88, 0x1A, 0x88, 0x32, 0xF8, 0xD4, 0x88, 0x14, 0x00, 0x15, 0x54, 0x15, 0x52, 0x5A, 0x52, 0x20, 0x00, 0x20, 0x00, 0x20, 0x10, 0x27, 0x90, 0x21, 0x24, 0xFA, 0x3E, 0x2F, 0xC4, 0x24, 0xA4, 0x27, 0xA8, 0x2C, 0xA8, 0x37, 0xA8, 0xE4, 0x90, 0x24, 0xD0, 0x3F, 0xA8, 0x20, 0xA8, 0xA0, 0xC6, 0x40, 0x84, 0x10, 0x04, 0x17, 0xBE, 0x10, 0x84, 0x14, 0xA4, 0xFA, 0x94, 0x12, 0x94, 0x14, 0xA4, 0x10, 0x48, 0x1B, 0xFC, 0x32, 0x08, 0xD2, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x53, 0xF8, 0x22, 0x08, 0x10, 0x00, 0x12, 0x04, 0x12, 0x7E, 0x12, 0x10, 0xFF, 0xA4, 0x12, 0x7E, 0x12, 0x44, 0x17, 0xD4, 0x18, 0x54, 0x37, 0x54, 0xD5, 0x54, 0x15, 0x54, 0x15, 0x54, 0x17, 0x20, 0x50, 0x4C, 0x21, 0x82, 0x11, 0x00, 0x13, 0xF0, 0x14, 0x24, 0x17, 0xFE, 0xFC, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x17, 0xFC, 0x18, 0x00, 0x37, 0xFE, 0xD0, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x52, 0x08, 0x23, 0xF8, 0x12, 0x08, 0x11, 0x10, 0x17, 0xFC, 0x10, 0xA8, 0xFB, 0xFC, 0x12, 0xA8, 0x13, 0x18, 0x12, 0xE8, 0x1A, 0x08, 0x33, 0xF8, 0xD0, 0x14, 0x1F, 0xFE, 0x12, 0x10, 0x11, 0x10, 0x50, 0x50, 0x20, 0x20, 0x10, 0x80, 0x10, 0x40, 0x17, 0xFE, 0x15, 0x12, 0xFA, 0x48, 0x14, 0x44, 0x13, 0xF8, 0x12, 0x48, 0x1B, 0xF8, 0x30, 0x40, 0xD7, 0xFC, 0x14, 0x44, 0x17, 0xFC, 0x10, 0x40, 0x50, 0x40, 0x20, 0x40, 0x22, 0x10, 0x22, 0x10, 0x22, 0x28, 0x2F, 0xA8, 0xF2, 0x44, 0x2F, 0x82, 0x28, 0xFC, 0x2F, 0x90, 0x38, 0x90, 0xEF, 0x94, 0x22, 0x7E, 0x2F, 0x90, 0x22, 0x10, 0x22, 0x10, 0xA2, 0x10, 0x42, 0x10, 0x10, 0x04, 0x17, 0xFE, 0x14, 0xA4, 0x14, 0xA4, 0xFF, 0xFC, 0x10, 0x00, 0x17, 0xFE, 0x10, 0x00, 0x1B, 0xF8, 0x32, 0x08, 0xD3, 0xF8, 0x11, 0x44, 0x13, 0x28, 0x15, 0x10, 0x59, 0x8E, 0x21, 0x04, 0x20, 0x10, 0x20, 0x08, 0x27, 0xC8, 0x24, 0x7E, 0xF4, 0x40, 0x27, 0xD4, 0x24, 0x14, 0x34, 0x3E, 0x27, 0xC8, 0xE6, 0x48, 0x26, 0x7E, 0x2A, 0x48, 0x2A, 0x48, 0x33, 0xC8, 0xA2, 0x48, 0x40, 0x08, 0x10, 0x80, 0x13, 0xF8, 0x12, 0x88, 0x12, 0x48, 0xFB, 0xF8, 0x10, 0x00, 0x17, 0xFC, 0x14, 0x44, 0x1F, 0xFC, 0x34, 0x44, 0xD7, 0xFC, 0x10, 0x00, 0x1F, 0xFE, 0x11, 0x10, 0x51, 0x10, 0x26, 0x10, 0x10, 0x00, 0x17, 0xBC, 0x10, 0x84, 0x12, 0x94, 0xF8, 0x84, 0x12, 0x94, 0x11, 0x20, 0x11, 0xFE, 0x1A, 0x20, 0x37, 0xFC, 0xDA, 0x20, 0x13, 0xFC, 0x12, 0x20, 0x12, 0x24, 0x53, 0xFE, 0x22, 0x00, 0x20, 0x08, 0x27, 0xFC, 0x20, 0x40, 0x2F, 0xFE, 0xFA, 0x4A, 0x21, 0x50, 0x22, 0x48, 0x28, 0x40, 0x37, 0xFC, 0xE4, 0x40, 0x2F, 0xF8, 0x34, 0x40, 0x27, 0xF8, 0x24, 0x40, 0xA7, 0xFE, 0x44, 0x00, 0x12, 0x10, 0x13, 0xDE, 0x15, 0x28, 0x13, 0xF8, 0xFE, 0x88, 0x12, 0x48, 0x13, 0xF8, 0x18, 0x80, 0x17, 0xFE, 0x31, 0x50, 0xD2, 0x98, 0x1D, 0xE6, 0x10, 0x90, 0x13, 0xF8, 0x51, 0x50, 0x26, 0x4C, 0x20, 0x40, 0x27, 0xFC, 0x20, 0x40, 0x23, 0xF8, 0xF2, 0x48, 0x2F, 0xFE, 0x29, 0x12, 0x27, 0xFC, 0x21, 0x10, 0x33, 0xF8, 0xE1, 0x10, 0x27, 0xFC, 0x21, 0x48, 0x23, 0x30, 0xAD, 0x8E, 0x41, 0x04, 0x02, 0x00, 0x02, 0x40, 0x02, 0x20, 0x02, 0x24, 0x03, 0xFE, 0xFE, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x44, 0x00, 0x24, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x94, 0x00, 0xFE, 0xFF, 0x80, 0x00, 0x40, 0x08, 0x40, 0x04, 0x40, 0x14, 0x20, 0x54, 0xA0, 0x50, 0x60, 0x50, 0x50, 0x91, 0x12, 0x11, 0x0A, 0x0F, 0x0A, 0x00, 0x04, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x94, 0x00, 0xFE, 0xFF, 0x80, 0x22, 0x40, 0x22, 0x40, 0xFF, 0xC0, 0x22, 0x40, 0x22, 0x40, 0x3E, 0x20, 0x22, 0x20, 0x22, 0x12, 0x3E, 0x12, 0x22, 0x0A, 0x00, 0x04, 0x00, 0x20, 0x22, 0x28, 0x14, 0x24, 0x0B, 0xFE, 0x14, 0x20, 0x62, 0x20, 0x08, 0x20, 0x09, 0xD0, 0xFE, 0x90, 0x08, 0x90, 0x2C, 0x90, 0x2A, 0x90, 0x48, 0xF2, 0x0B, 0x8A, 0x28, 0x0A, 0x10, 0x04, 0x00, 0x80, 0x00, 0x80, 0x08, 0x80, 0x7C, 0x80, 0x48, 0x80, 0x48, 0xA0, 0x48, 0x98, 0x48, 0x8C, 0x48, 0x84, 0x48, 0x80, 0x48, 0x80, 0x78, 0x80, 0x48, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x08, 0x80, 0x7C, 0x88, 0x48, 0x98, 0x48, 0xA0, 0x48, 0xC0, 0x48, 0x80, 0x49, 0x80, 0x4A, 0x80, 0x4C, 0x80, 0x48, 0x80, 0x78, 0x80, 0x48, 0x82, 0x00, 0x82, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x10, 0x09, 0xF8, 0x7D, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x79, 0x10, 0x4A, 0x12, 0x02, 0x12, 0x04, 0x0E, 0x08, 0x00, 0x00, 0x08, 0x08, 0xFC, 0x7C, 0x88, 0x48, 0x88, 0x48, 0x88, 0x48, 0x88, 0x48, 0x88, 0x48, 0x88, 0x48, 0x88, 0x48, 0x88, 0x48, 0xC8, 0x78, 0xA8, 0x48, 0x90, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x08, 0x04, 0x7D, 0xFE, 0x48, 0x44, 0x48, 0x44, 0x48, 0x44, 0x48, 0x44, 0x48, 0x44, 0x48, 0x44, 0x48, 0x84, 0x48, 0x84, 0x79, 0x04, 0x49, 0x04, 0x02, 0x04, 0x04, 0x28, 0x08, 0x10, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x40, 0x48, 0x44, 0x4B, 0xFE, 0x48, 0x44, 0x48, 0x44, 0x48, 0x44, 0x48, 0x44, 0x48, 0x84, 0x48, 0x84, 0x79, 0x04, 0x49, 0x04, 0x02, 0x04, 0x04, 0x28, 0x08, 0x10, 0x00, 0x08, 0x08, 0x1C, 0x7D, 0xE0, 0x48, 0x40, 0x48, 0x40, 0x48, 0x44, 0x48, 0x7E, 0x4F, 0xC0, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x78, 0x40, 0x48, 0x42, 0x00, 0x42, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x04, 0x7D, 0x0C, 0x48, 0x90, 0x48, 0xA0, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x48, 0x40, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x40, 0x48, 0x80, 0x48, 0x84, 0x49, 0x04, 0x4B, 0xF8, 0x48, 0x08, 0x48, 0x10, 0x48, 0x20, 0x48, 0x40, 0x78, 0x80, 0x49, 0x08, 0x02, 0x04, 0x03, 0xFE, 0x00, 0x02, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x48, 0x4B, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0xA0, 0x48, 0xA0, 0x79, 0x10, 0x49, 0x10, 0x02, 0x08, 0x04, 0x0E, 0x08, 0x04, 0x00, 0x08, 0x0B, 0xFC, 0x7C, 0x80, 0x48, 0x80, 0x48, 0x80, 0x48, 0x84, 0x4F, 0xFE, 0x48, 0xA0, 0x48, 0xA0, 0x48, 0xA0, 0x49, 0x20, 0x79, 0x20, 0x4A, 0x22, 0x02, 0x22, 0x04, 0x1E, 0x08, 0x00, 0x00, 0x90, 0x00, 0x94, 0x7B, 0xFE, 0x48, 0x90, 0x48, 0x00, 0x4B, 0xF8, 0x48, 0x10, 0x48, 0x20, 0x48, 0x40, 0x48, 0x80, 0x49, 0x00, 0x7A, 0x00, 0x4A, 0x02, 0x02, 0x02, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0xA0, 0x48, 0xA0, 0x48, 0xA0, 0x48, 0xA0, 0x49, 0x10, 0x79, 0x90, 0x4A, 0x48, 0x04, 0x48, 0x08, 0x06, 0x10, 0x04, 0x00, 0x04, 0x0B, 0xFE, 0x7E, 0x40, 0x4A, 0x40, 0x4A, 0x44, 0x4B, 0xFE, 0x4A, 0x44, 0x4A, 0x44, 0x4A, 0x44, 0x4A, 0x44, 0x4A, 0x44, 0x7A, 0x44, 0x44, 0x84, 0x04, 0x84, 0x09, 0x28, 0x12, 0x10, 0x00, 0x04, 0x0B, 0xFE, 0x7E, 0x00, 0x4A, 0x08, 0x4A, 0xFC, 0x4A, 0x88, 0x4A, 0x88, 0x4A, 0x88, 0x4A, 0x88, 0x4A, 0xA8, 0x4A, 0x90, 0x7A, 0x80, 0x44, 0x82, 0x04, 0x82, 0x08, 0x7E, 0x10, 0x00, 0x00, 0x20, 0x02, 0x20, 0x0A, 0x20, 0x7E, 0x20, 0x4A, 0x24, 0x4A, 0x28, 0x4B, 0xB0, 0x4A, 0x20, 0x4A, 0x20, 0x4A, 0x20, 0x4A, 0x20, 0x7A, 0x20, 0x4A, 0xA2, 0x03, 0x22, 0x02, 0x1E, 0x00, 0x00, 0x00, 0x04, 0x09, 0xFE, 0x7D, 0x04, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x79, 0x24, 0x48, 0x40, 0x00, 0x98, 0x01, 0x06, 0x02, 0x02, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x01, 0x04, 0x7F, 0xFE, 0x42, 0x84, 0x42, 0x44, 0x44, 0x24, 0x48, 0x24, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x00, 0x40, 0x00, 0x20, 0x08, 0x20, 0x7C, 0x20, 0x48, 0xA0, 0x48, 0x80, 0x4A, 0x88, 0x4A, 0x84, 0x4A, 0x82, 0x4A, 0x82, 0x4A, 0x82, 0x7A, 0x8A, 0x44, 0x8A, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00, 0x00, 0x24, 0x0B, 0xF4, 0x7C, 0x24, 0x48, 0x24, 0x48, 0x24, 0x4B, 0xE4, 0x4A, 0x04, 0x4A, 0x04, 0x4A, 0x24, 0x4B, 0xF4, 0x48, 0x24, 0x78, 0x24, 0x48, 0x24, 0x02, 0x24, 0x01, 0x44, 0x00, 0x84, 0x00, 0x08, 0x03, 0xFC, 0x7A, 0x20, 0x4A, 0x28, 0x4A, 0xFC, 0x4A, 0xA8, 0x4A, 0xA8, 0x4A, 0xA8, 0x4A, 0xA8, 0x4A, 0xA8, 0x4A, 0xA8, 0x7A, 0xB8, 0x4A, 0x20, 0x02, 0x24, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x08, 0x88, 0x7C, 0xFC, 0x48, 0x80, 0x48, 0x80, 0x48, 0x84, 0x4F, 0xFE, 0x48, 0x80, 0x48, 0xA0, 0x48, 0x90, 0x78, 0x88, 0x48, 0x88, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x04, 0x09, 0xFE, 0x7D, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x79, 0x24, 0x48, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x00, 0x1C, 0x7B, 0xE0, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x7A, 0x48, 0x44, 0xA4, 0x05, 0x14, 0x09, 0xF2, 0x10, 0x00, 0x00, 0x40, 0x00, 0x40, 0x08, 0xA0, 0x7C, 0xA0, 0x49, 0x10, 0x4A, 0x8E, 0x4C, 0x64, 0x48, 0x20, 0x48, 0x00, 0x4B, 0xF8, 0x48, 0x08, 0x79, 0x10, 0x48, 0xA0, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x80, 0x08, 0x80, 0x7C, 0xF8, 0x49, 0x08, 0x49, 0x10, 0x4A, 0xA0, 0x48, 0x40, 0x48, 0xA0, 0x49, 0x10, 0x4A, 0x8E, 0x4C, 0x64, 0x78, 0x20, 0x49, 0x80, 0x00, 0x60, 0x00, 0x10, 0x00, 0x00, 0x00, 0x40, 0x08, 0x20, 0x7C, 0x20, 0x4B, 0xFE, 0x4A, 0x02, 0x4A, 0x04, 0x48, 0x00, 0x4B, 0xFE, 0x48, 0x20, 0x48, 0x20, 0x48, 0x20, 0x78, 0x20, 0x48, 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x20, 0x08, 0x20, 0x7D, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x48, 0x24, 0x48, 0x20, 0x49, 0x24, 0x49, 0x24, 0x79, 0x24, 0x49, 0x24, 0x01, 0x24, 0x01, 0xFC, 0x00, 0x04, 0x02, 0x00, 0x12, 0x00, 0x7A, 0x08, 0x52, 0x7C, 0x5F, 0x88, 0x52, 0x88, 0x52, 0xA8, 0x52, 0xA8, 0x54, 0xA8, 0x54, 0x90, 0x55, 0x10, 0x72, 0x28, 0x55, 0x28, 0x08, 0xC4, 0x10, 0x44, 0x00, 0x82, 0x00, 0x20, 0x11, 0x20, 0x79, 0x20, 0x51, 0x20, 0x52, 0x24, 0x54, 0xFE, 0x5F, 0x24, 0x51, 0x24, 0x52, 0x24, 0x52, 0x24, 0x54, 0xA4, 0x7F, 0xC4, 0x54, 0x44, 0x00, 0x84, 0x01, 0x28, 0x02, 0x10, 0x00, 0x00, 0x11, 0x08, 0x79, 0x08, 0x51, 0x08, 0x52, 0x10, 0x52, 0x94, 0x57, 0xBC, 0x51, 0x08, 0x52, 0x10, 0x52, 0x10, 0x54, 0x20, 0x77, 0xBC, 0x50, 0x00, 0x00, 0x04, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x0B, 0xFC, 0x7E, 0x00, 0x4A, 0x08, 0x4B, 0xFC, 0x4A, 0x20, 0x4A, 0x20, 0x4A, 0xF8, 0x4A, 0x20, 0x4A, 0x20, 0x4A, 0x28, 0x7B, 0xFC, 0x4A, 0x00, 0x02, 0x04, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x20, 0x08, 0x20, 0x7C, 0x24, 0x4B, 0xFE, 0x48, 0x20, 0x48, 0x20, 0x49, 0xFC, 0x48, 0x00, 0x48, 0x04, 0x49, 0xFE, 0x49, 0x04, 0x79, 0x04, 0x49, 0x04, 0x01, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x00, 0x04, 0x07, 0xFE, 0x08, 0x90, 0x7C, 0x90, 0x48, 0x94, 0x4B, 0xFE, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0x9C, 0x7B, 0x04, 0x4A, 0x04, 0x02, 0x04, 0x03, 0xFC, 0x02, 0x04, 0x00, 0x80, 0x00, 0x80, 0x08, 0x84, 0x7F, 0xFE, 0x48, 0x80, 0x48, 0xA0, 0x49, 0x20, 0x49, 0x24, 0x4A, 0xAC, 0x4C, 0xB0, 0x49, 0x20, 0x78, 0x50, 0x48, 0x50, 0x00, 0x88, 0x01, 0x0E, 0x02, 0x04, 0x00, 0x20, 0x00, 0x20, 0x70, 0x20, 0x54, 0x20, 0x52, 0x24, 0x52, 0xFE, 0x50, 0x20, 0x5E, 0x20, 0x52, 0x20, 0x52, 0x50, 0x52, 0x48, 0x72, 0x8C, 0x53, 0x04, 0x06, 0x00, 0x09, 0x06, 0x00, 0xFC, 0x00, 0x44, 0x07, 0xE4, 0x09, 0x04, 0x7D, 0x04, 0x49, 0xD4, 0x4A, 0x54, 0x4A, 0x54, 0x4A, 0x54, 0x4D, 0x54, 0x48, 0x94, 0x48, 0x94, 0x79, 0x14, 0x49, 0x04, 0x02, 0x04, 0x04, 0x14, 0x08, 0x08, 0x00, 0x40, 0x00, 0x48, 0x7B, 0xFC, 0x48, 0x40, 0x4B, 0xF8, 0x48, 0x48, 0x48, 0x48, 0x4B, 0xF8, 0x4A, 0x40, 0x4A, 0x44, 0x7B, 0xFE, 0x48, 0x44, 0x00, 0xAC, 0x01, 0x10, 0x02, 0x08, 0x0C, 0x06, 0x00, 0x80, 0x08, 0x88, 0x7C, 0xFC, 0x4B, 0x80, 0x48, 0x48, 0x48, 0x50, 0x48, 0x62, 0x4B, 0x92, 0x48, 0x0E, 0x4F, 0xF8, 0x49, 0x20, 0x79, 0x20, 0x49, 0x22, 0x02, 0x22, 0x04, 0x1E, 0x18, 0x00, 0x02, 0x20, 0x02, 0x20, 0x7A, 0x24, 0x4B, 0xA8, 0x4A, 0x30, 0x4A, 0x24, 0x4A, 0xA4, 0x4B, 0x1C, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x90, 0x08, 0x90, 0x7C, 0x90, 0x48, 0x90, 0x4A, 0x92, 0x4A, 0x94, 0x4A, 0xF8, 0x4A, 0x90, 0x4A, 0x90, 0x4A, 0x90, 0x4A, 0x90, 0x7A, 0xB0, 0x4A, 0xD2, 0x03, 0x12, 0x0C, 0x0E, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x7A, 0x48, 0x49, 0x4C, 0x49, 0x50, 0x49, 0x50, 0x48, 0x44, 0x4F, 0xFE, 0x49, 0x20, 0x49, 0x20, 0x49, 0x20, 0x79, 0x20, 0x4A, 0x22, 0x02, 0x22, 0x04, 0x1E, 0x08, 0x00, 0x00, 0x20, 0x08, 0x20, 0x7D, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x48, 0x44, 0x48, 0x40, 0x48, 0xFC, 0x49, 0x84, 0x4A, 0x44, 0x78, 0x28, 0x48, 0x10, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x01, 0x20, 0x01, 0x20, 0x11, 0x20, 0x7A, 0x20, 0x52, 0x24, 0x57, 0xFE, 0x5A, 0x20, 0x52, 0x70, 0x52, 0x68, 0x52, 0xA8, 0x52, 0xA8, 0x72, 0xA6, 0x53, 0x24, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x01, 0x00, 0x01, 0x04, 0x11, 0xFE, 0x7A, 0x44, 0x52, 0x44, 0x56, 0x44, 0x5B, 0xFE, 0x52, 0x44, 0x52, 0x44, 0x52, 0x44, 0x53, 0xFC, 0x72, 0x44, 0x52, 0x40, 0x02, 0x40, 0x02, 0x80, 0x03, 0x00, 0x00, 0x08, 0x00, 0x3C, 0x7B, 0xC0, 0x4A, 0x04, 0x4A, 0x18, 0x4A, 0xE0, 0x4A, 0xA0, 0x4A, 0xA4, 0x4A, 0xA8, 0x4A, 0x90, 0x4A, 0x90, 0x7A, 0x90, 0x44, 0x88, 0x04, 0xAE, 0x08, 0xC4, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, 0x08, 0xA0, 0x7C, 0xA0, 0x49, 0x10, 0x4A, 0x08, 0x4D, 0xF6, 0x48, 0x00, 0x48, 0x04, 0x4F, 0xFE, 0x48, 0x80, 0x78, 0x80, 0x49, 0x10, 0x02, 0x08, 0x07, 0xFC, 0x00, 0x04, 0x00, 0x10, 0x01, 0xF8, 0x09, 0x10, 0x7D, 0x10, 0x49, 0x10, 0x49, 0x10, 0x4A, 0x4C, 0x48, 0x40, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0xE0, 0x78, 0xD0, 0x49, 0x48, 0x02, 0x4E, 0x0C, 0x44, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x78, 0x24, 0x4B, 0xFE, 0x49, 0x08, 0x48, 0x90, 0x48, 0x60, 0x48, 0x90, 0x49, 0x0E, 0x4E, 0x94, 0x48, 0x90, 0x78, 0x90, 0x48, 0x90, 0x01, 0x10, 0x02, 0x10, 0x04, 0x10, 0x02, 0x08, 0x09, 0x10, 0x7C, 0xA0, 0x4B, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x48, 0x48, 0x4B, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x48, 0x44, 0x7F, 0xFE, 0x48, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x44, 0x4A, 0x48, 0x49, 0x50, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0xE0, 0x48, 0xD0, 0x49, 0x50, 0x79, 0x48, 0x4A, 0x46, 0x04, 0x44, 0x08, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x7B, 0xFE, 0x4A, 0x02, 0x4C, 0x04, 0x48, 0x38, 0x4B, 0xC0, 0x48, 0x44, 0x48, 0x7E, 0x4F, 0xC0, 0x48, 0x40, 0x78, 0x40, 0x48, 0x42, 0x00, 0x42, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x20, 0x08, 0x20, 0x7C, 0x20, 0x49, 0xFE, 0x49, 0x42, 0x4A, 0x44, 0x48, 0x40, 0x48, 0xA0, 0x48, 0xA4, 0x49, 0x28, 0x49, 0x90, 0x7A, 0x90, 0x44, 0x88, 0x08, 0xAE, 0x00, 0xC4, 0x00, 0x80, 0x00, 0x08, 0x09, 0xFC, 0x7D, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x49, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x49, 0x44, 0x49, 0x48, 0x49, 0x30, 0x79, 0x20, 0x49, 0x10, 0x01, 0x4E, 0x01, 0x84, 0x01, 0x00, 0x00, 0x20, 0x00, 0x40, 0x08, 0x88, 0x7D, 0x04, 0x4B, 0xFE, 0x48, 0x22, 0x49, 0x28, 0x49, 0xFC, 0x49, 0x20, 0x4A, 0x20, 0x48, 0x24, 0x7B, 0xFE, 0x48, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x48, 0x7B, 0xFC, 0x48, 0x40, 0x4B, 0xF8, 0x48, 0x40, 0x4F, 0xFE, 0x48, 0x80, 0x49, 0xF8, 0x49, 0x08, 0x49, 0x10, 0x7A, 0xA0, 0x44, 0x40, 0x00, 0xB0, 0x03, 0x0E, 0x0C, 0x04, 0x00, 0x40, 0x00, 0x48, 0x7B, 0xFC, 0x48, 0x40, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0xA0, 0x4A, 0xA8, 0x4A, 0xA4, 0x7A, 0xA4, 0x45, 0x24, 0x09, 0x20, 0x02, 0x20, 0x04, 0xA0, 0x00, 0x40, 0x00, 0x90, 0x00, 0x94, 0x7B, 0xFE, 0x48, 0x90, 0x48, 0x90, 0x4B, 0xFE, 0x4A, 0x42, 0x4C, 0x44, 0x4B, 0xF8, 0x48, 0x48, 0x48, 0x88, 0x78, 0x88, 0x49, 0x08, 0x02, 0x08, 0x04, 0x50, 0x08, 0x20, 0x00, 0x08, 0x03, 0xFC, 0x78, 0x40, 0x48, 0x48, 0x4B, 0xFC, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x7A, 0x40, 0x49, 0x40, 0x00, 0xC0, 0x03, 0x30, 0x0C, 0x0E, 0x00, 0x10, 0x03, 0xF8, 0x08, 0x80, 0x7C, 0x90, 0x4B, 0xF8, 0x49, 0x10, 0x49, 0x10, 0x49, 0x14, 0x4F, 0xFE, 0x48, 0x00, 0x4B, 0xF8, 0x7A, 0x08, 0x4A, 0x08, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x02, 0x00, 0x02, 0x0C, 0x72, 0x70, 0x5F, 0xC0, 0x52, 0x40, 0x52, 0x44, 0x52, 0x7E, 0x52, 0xC8, 0x53, 0x48, 0x5E, 0x48, 0x52, 0x48, 0x72, 0x48, 0x52, 0x88, 0x02, 0x88, 0x0B, 0x08, 0x04, 0x08, 0x00, 0x40, 0x02, 0x44, 0x09, 0x4C, 0x7D, 0x50, 0x48, 0x48, 0x4B, 0xFC, 0x4A, 0x08, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x7A, 0x48, 0x4A, 0xA8, 0x00, 0x90, 0x01, 0x0C, 0x06, 0x04, 0x00, 0x40, 0x00, 0x88, 0x7B, 0xFC, 0x4A, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x40, 0x78, 0x44, 0x40, 0x7E, 0x0F, 0xC0, 0x00, 0x44, 0x00, 0x44, 0x00, 0x3C, 0x01, 0x08, 0x08, 0xD0, 0x7C, 0x20, 0x48, 0x58, 0x49, 0x84, 0x48, 0x40, 0x4F, 0xFE, 0x48, 0xA0, 0x49, 0x24, 0x4B, 0xFE, 0x4D, 0x24, 0x79, 0x24, 0x49, 0x34, 0x01, 0x28, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x02, 0x48, 0x7A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x4D, 0x54, 0x48, 0xE2, 0x48, 0x40, 0x48, 0x48, 0x4B, 0xFC, 0x78, 0x40, 0x48, 0x40, 0x00, 0x44, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x07, 0xC4, 0x74, 0xBE, 0x54, 0xA4, 0x57, 0xA4, 0x54, 0xA4, 0x54, 0xA4, 0x57, 0xA4, 0x54, 0xA4, 0x54, 0x24, 0x55, 0x24, 0x74, 0xB4, 0x55, 0x28, 0x06, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x08, 0x44, 0x7F, 0xFE, 0x48, 0x40, 0x4B, 0xFC, 0x48, 0x40, 0x4F, 0xFE, 0x48, 0xA0, 0x49, 0x50, 0x4B, 0xF8, 0x4C, 0x46, 0x78, 0x40, 0x47, 0xFC, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x08, 0x48, 0x7F, 0xFC, 0x48, 0x40, 0x4B, 0xF8, 0x48, 0x40, 0x4F, 0xFE, 0x48, 0x08, 0x4B, 0xFC, 0x4A, 0x08, 0x4A, 0x48, 0x7A, 0x48, 0x4A, 0x48, 0x00, 0xB0, 0x01, 0x0C, 0x06, 0x04, 0x01, 0x10, 0x09, 0x10, 0x7F, 0xFC, 0x49, 0x10, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x80, 0x48, 0x88, 0x49, 0xFC, 0x49, 0x08, 0x7B, 0x08, 0x45, 0x08, 0x09, 0x08, 0x01, 0xF8, 0x01, 0x08, 0x01, 0x10, 0x11, 0x14, 0x7F, 0xFE, 0x51, 0x10, 0x51, 0x10, 0x50, 0x04, 0x57, 0xFE, 0x54, 0x44, 0x54, 0x44, 0x54, 0x44, 0x57, 0xFC, 0x74, 0x44, 0x54, 0x44, 0x04, 0x44, 0x07, 0xFC, 0x04, 0x04, 0x01, 0x10, 0x11, 0x10, 0x79, 0x10, 0x51, 0x14, 0x5F, 0xFE, 0x51, 0x10, 0x53, 0x30, 0x53, 0xB8, 0x55, 0x58, 0x55, 0x54, 0x55, 0x54, 0x79, 0x92, 0x51, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x11, 0x10, 0x79, 0x14, 0x57, 0xFE, 0x52, 0x10, 0x52, 0x14, 0x55, 0x7E, 0x55, 0x10, 0x5F, 0x90, 0x51, 0x20, 0x51, 0x7E, 0x73, 0x84, 0x4D, 0x28, 0x01, 0x10, 0x01, 0x0C, 0x01, 0x04, 0x00, 0x04, 0x09, 0xFE, 0x7D, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x49, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x49, 0x04, 0x49, 0x74, 0x49, 0x54, 0x79, 0x54, 0x4A, 0x74, 0x02, 0x04, 0x04, 0x14, 0x08, 0x08, 0x02, 0x00, 0x12, 0x04, 0x7B, 0xFE, 0x54, 0x04, 0x5A, 0x24, 0x53, 0xF4, 0x54, 0x84, 0x50, 0x94, 0x5F, 0xFC, 0x50, 0x84, 0x54, 0x94, 0x74, 0x94, 0x57, 0xF4, 0x00, 0x04, 0x00, 0x14, 0x00, 0x08, 0x01, 0x00, 0x09, 0x04, 0x7D, 0xFE, 0x4A, 0x94, 0x4A, 0x94, 0x4C, 0x94, 0x49, 0x24, 0x49, 0x24, 0x4A, 0x54, 0x48, 0x08, 0x49, 0x40, 0x7D, 0x24, 0x45, 0x22, 0x09, 0x0A, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x80, 0x08, 0x48, 0x7F, 0xFC, 0x49, 0x10, 0x49, 0x10, 0x49, 0x10, 0x4A, 0xA8, 0x4A, 0x44, 0x4C, 0x44, 0x48, 0x40, 0x4F, 0xFE, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x50, 0x0B, 0xF8, 0x7C, 0x00, 0x49, 0x10, 0x48, 0xA0, 0x4F, 0xFC, 0x48, 0x80, 0x48, 0x84, 0x4F, 0xFE, 0x49, 0x10, 0x7A, 0x10, 0x49, 0x20, 0x00, 0xC0, 0x01, 0x30, 0x06, 0x08, 0x00, 0x80, 0x08, 0x44, 0x7F, 0xFE, 0x48, 0x80, 0x49, 0x08, 0x4B, 0xFC, 0x48, 0x04, 0x49, 0xF8, 0x49, 0x08, 0x49, 0xF8, 0x49, 0x08, 0x79, 0xF8, 0x49, 0x08, 0x01, 0x08, 0x01, 0x28, 0x01, 0x10, 0x00, 0x40, 0x08, 0x40, 0x7D, 0x48, 0x49, 0x50, 0x4A, 0x40, 0x48, 0xA0, 0x49, 0x10, 0x4A, 0x0C, 0x48, 0x40, 0x49, 0x48, 0x49, 0x50, 0x7A, 0x40, 0x48, 0xA0, 0x00, 0x90, 0x03, 0x0E, 0x0C, 0x04, 0x00, 0x10, 0x04, 0x10, 0x72, 0x10, 0x52, 0xFE, 0x58, 0x92, 0x54, 0x94, 0x50, 0x90, 0x52, 0xFC, 0x52, 0xA4, 0x54, 0xA4, 0x5C, 0xA8, 0x74, 0x90, 0x55, 0x28, 0x05, 0x28, 0x06, 0x46, 0x04, 0x84, 0x00, 0x40, 0x08, 0x20, 0x7C, 0x20, 0x4B, 0xFE, 0x4A, 0x02, 0x4C, 0x04, 0x48, 0x00, 0x4B, 0xFE, 0x48, 0x20, 0x49, 0x20, 0x49, 0x3C, 0x79, 0x20, 0x49, 0x20, 0x02, 0xA0, 0x04, 0x60, 0x08, 0x1E, 0x02, 0x00, 0x01, 0x00, 0x17, 0xBC, 0x7C, 0xA4, 0x54, 0xA8, 0x57, 0xA8, 0x54, 0xB0, 0x54, 0xA8, 0x57, 0xA4, 0x54, 0x24, 0x54, 0x24, 0x75, 0x24, 0x54, 0xB4, 0x05, 0xA8, 0x06, 0x20, 0x00, 0x20, 0x00, 0x40, 0x08, 0x24, 0x7F, 0xFE, 0x4A, 0x04, 0x4A, 0x04, 0x4B, 0xFC, 0x4A, 0x20, 0x4A, 0x28, 0x4A, 0x24, 0x4B, 0xFE, 0x4A, 0x20, 0x7A, 0x50, 0x44, 0x50, 0x04, 0x88, 0x09, 0x0E, 0x02, 0x04, 0x00, 0x04, 0x17, 0xC4, 0x7C, 0x54, 0x54, 0x54, 0x57, 0xD4, 0x55, 0x14, 0x55, 0x14, 0x57, 0xD4, 0x55, 0x54, 0x75, 0x54, 0x4D, 0x54, 0x15, 0x44, 0x15, 0x44, 0x25, 0xC4, 0x01, 0x14, 0x01, 0x08, 0x00, 0x00, 0x0F, 0xFC, 0x04, 0xA4, 0x75, 0x28, 0x52, 0x10, 0x55, 0x28, 0x58, 0xC4, 0x50, 0x00, 0x5F, 0xFC, 0x50, 0x84, 0x55, 0x28, 0x75, 0x28, 0x52, 0x10, 0x05, 0x28, 0x08, 0xC6, 0x10, 0x84, 0x00, 0x90, 0x02, 0x90, 0x12, 0x94, 0x7F, 0xFE, 0x52, 0x90, 0x52, 0x90, 0x52, 0xF0, 0x52, 0x00, 0x53, 0xFC, 0x50, 0x40, 0x5F, 0xFE, 0x70, 0xE0, 0x51, 0x50, 0x02, 0x4E, 0x0C, 0x44, 0x00, 0x40, 0x01, 0x10, 0x01, 0x14, 0x0F, 0xFE, 0x79, 0x50, 0x48, 0x40, 0x48, 0xA0, 0x49, 0x10, 0x4A, 0x0E, 0x4D, 0xF4, 0x48, 0x00, 0x4B, 0xF8, 0x7A, 0x08, 0x4A, 0x08, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x00, 0x40, 0x00, 0x44, 0x0F, 0xFE, 0x70, 0x40, 0x50, 0x44, 0x57, 0xFE, 0x55, 0x14, 0x54, 0xA4, 0x55, 0xF4, 0x54, 0x44, 0x54, 0x44, 0x77, 0xFC, 0x54, 0x44, 0x04, 0x44, 0x04, 0x54, 0x04, 0x08, 0x00, 0x04, 0x17, 0xFE, 0x7C, 0x00, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x54, 0x20, 0x74, 0x28, 0x49, 0xFC, 0x08, 0x20, 0x10, 0x24, 0x03, 0xFE, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x77, 0xFE, 0x50, 0xA0, 0x51, 0x50, 0x53, 0xF8, 0x5C, 0x46, 0x53, 0xF8, 0x50, 0x40, 0x50, 0x48, 0x77, 0xFC, 0x50, 0x40, 0x00, 0x44, 0x0F, 0xFE, 0x00, 0x00, 0x02, 0x20, 0x02, 0x24, 0x7B, 0xA8, 0x4A, 0x30, 0x4A, 0x22, 0x4A, 0xA2, 0x4B, 0x5E, 0x48, 0x88, 0x49, 0xFC, 0x49, 0x08, 0x79, 0x08, 0x49, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x01, 0xF8, 0x01, 0x08, 0x00, 0x08, 0x13, 0xFC, 0x7A, 0x48, 0x52, 0x48, 0x53, 0xF8, 0x52, 0x48, 0x52, 0x48, 0x53, 0xF8, 0x50, 0x44, 0x57, 0xFE, 0x74, 0x44, 0x54, 0x54, 0x05, 0xF4, 0x04, 0x04, 0x04, 0x14, 0x04, 0x08, 0x00, 0x04, 0x07, 0xFE, 0x74, 0x44, 0x57, 0xFC, 0x54, 0x44, 0x57, 0xFC, 0x50, 0x08, 0x53, 0xFC, 0x52, 0x08, 0x53, 0xF8, 0x72, 0x08, 0x53, 0xF8, 0x02, 0x08, 0x02, 0x08, 0x02, 0x28, 0x02, 0x10, 0x00, 0x90, 0x01, 0xD0, 0x77, 0x10, 0x51, 0x52, 0x51, 0x34, 0x51, 0x38, 0x57, 0xD0, 0x51, 0x10, 0x53, 0x90, 0x53, 0x50, 0x55, 0x28, 0x75, 0x28, 0x49, 0x28, 0x11, 0x44, 0x01, 0x44, 0x01, 0x82, 0x00, 0x40, 0x01, 0x48, 0x7A, 0x5C, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0x58, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x48, 0x40, 0x7B, 0xF8, 0x49, 0x10, 0x00, 0xA0, 0x00, 0x40, 0x01, 0xB0, 0x0E, 0x0E, 0x00, 0x80, 0x00, 0x48, 0x07, 0xFC, 0x78, 0x00, 0x49, 0x10, 0x48, 0xA4, 0x4F, 0xFE, 0x48, 0x08, 0x4B, 0xFC, 0x4A, 0x08, 0x4A, 0x08, 0x7B, 0xF8, 0x4A, 0x08, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x01, 0x00, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x40, 0x7F, 0xFE, 0x41, 0x02, 0x9F, 0xF4, 0x11, 0x10, 0x11, 0x10, 0x11, 0x30, 0x01, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x08, 0x09, 0x08, 0x7C, 0x90, 0x4B, 0xFC, 0x48, 0x40, 0x49, 0xF8, 0x48, 0x40, 0x4F, 0xFE, 0x48, 0x80, 0x48, 0x88, 0x49, 0xFC, 0x7A, 0x20, 0x44, 0x20, 0x08, 0x24, 0x13, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x48, 0x7D, 0x50, 0x48, 0x40, 0x4F, 0xFC, 0x48, 0x40, 0x49, 0x50, 0x4A, 0x48, 0x48, 0x80, 0x4F, 0xFE, 0x49, 0x10, 0x7A, 0x10, 0x49, 0x20, 0x00, 0xC0, 0x01, 0x30, 0x06, 0x08, 0x22, 0x08, 0x11, 0x10, 0x00, 0x20, 0x7F, 0xFE, 0x41, 0x02, 0x91, 0x24, 0x1F, 0xF0, 0x21, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x04, 0x03, 0xFE, 0x7A, 0x04, 0x4A, 0x04, 0x4B, 0xFC, 0x4A, 0x00, 0x4B, 0xFC, 0x4A, 0x40, 0x4A, 0x88, 0x4A, 0xFC, 0x7A, 0x20, 0x42, 0xFC, 0x04, 0x20, 0x04, 0x24, 0x0B, 0xFE, 0x10, 0x00, 0x01, 0x00, 0x01, 0xF0, 0x7A, 0x10, 0x4B, 0xF0, 0x48, 0x24, 0x4F, 0xFE, 0x49, 0x00, 0x49, 0x88, 0x4A, 0x50, 0x4C, 0xE0, 0x79, 0x50, 0x46, 0xD0, 0x01, 0x4E, 0x0E, 0x44, 0x01, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x48, 0x0B, 0xFC, 0x7C, 0x40, 0x4B, 0xF8, 0x48, 0x80, 0x4F, 0xFE, 0x48, 0xA0, 0x49, 0x10, 0x4B, 0xF8, 0x4C, 0x46, 0x7B, 0xF8, 0x48, 0xC0, 0x01, 0x70, 0x06, 0x48, 0x00, 0x40, 0x01, 0x10, 0x01, 0x10, 0x17, 0xD0, 0x79, 0x14, 0x57, 0xFE, 0x51, 0x24, 0x5F, 0xE4, 0x52, 0x28, 0x53, 0xA8, 0x52, 0xA8, 0x52, 0x90, 0x74, 0x90, 0x44, 0xA8, 0x09, 0xA8, 0x10, 0x46, 0x00, 0x84, 0x00, 0x40, 0x00, 0x48, 0x07, 0xFC, 0x78, 0x40, 0x4B, 0xF8, 0x48, 0x40, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x90, 0x4B, 0xE0, 0x48, 0x48, 0x7B, 0xF8, 0x49, 0x50, 0x02, 0x4C, 0x04, 0x44, 0x00, 0x40, 0x02, 0x00, 0x12, 0x3C, 0x7F, 0xA4, 0x52, 0x24, 0x52, 0xA4, 0x5F, 0xE8, 0x52, 0x24, 0x57, 0xA4, 0x5C, 0xA2, 0x54, 0xA2, 0x57, 0xA2, 0x74, 0xB4, 0x54, 0xA8, 0x07, 0xA0, 0x04, 0xA0, 0x00, 0x20, 0x00, 0x40, 0x00, 0x48, 0x0B, 0xFC, 0x7C, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x80, 0x49, 0x10, 0x4B, 0xF8, 0x48, 0x00, 0x4B, 0xF8, 0x7A, 0xA8, 0x4A, 0xA8, 0x02, 0xA8, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x0F, 0xFC, 0x72, 0x10, 0x53, 0xF0, 0x52, 0x10, 0x53, 0xF0, 0x52, 0x14, 0x5F, 0xFE, 0x50, 0x10, 0x5F, 0xBC, 0x50, 0x84, 0x74, 0xA4, 0x55, 0x28, 0x02, 0x10, 0x05, 0x28, 0x08, 0xC6, 0x01, 0x20, 0x01, 0x28, 0x17, 0xFC, 0x79, 0x20, 0x51, 0x04, 0x53, 0xFE, 0x52, 0x08, 0x56, 0x08, 0x5A, 0xE8, 0x52, 0xA8, 0x52, 0xA8, 0x72, 0xE8, 0x52, 0x08, 0x02, 0x08, 0x02, 0x28, 0x02, 0x10, 0x00, 0x40, 0x00, 0x44, 0x07, 0xFE, 0x78, 0x40, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x7A, 0x08, 0x4F, 0xFE, 0x01, 0x10, 0x02, 0x0C, 0x04, 0x04, 0x00, 0x40, 0x00, 0x48, 0x17, 0xFC, 0x78, 0x40, 0x57, 0xFE, 0x54, 0x42, 0x58, 0x94, 0x53, 0xF0, 0x50, 0x40, 0x50, 0x88, 0x57, 0xFC, 0x71, 0x50, 0x52, 0x4C, 0x04, 0x44, 0x01, 0x40, 0x00, 0x80, 0x00, 0x04, 0x07, 0xFE, 0x10, 0x08, 0x7B, 0xFC, 0x52, 0x08, 0x52, 0x08, 0x53, 0xF8, 0x50, 0x04, 0x57, 0xFE, 0x55, 0x14, 0x54, 0xA4, 0x75, 0xF4, 0x54, 0x44, 0x04, 0x44, 0x04, 0x54, 0x04, 0x08, 0x00, 0x04, 0x07, 0xFE, 0x00, 0x40, 0x7B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x49, 0x00, 0x79, 0xF8, 0x4A, 0x90, 0x04, 0x60, 0x08, 0x90, 0x03, 0x0E, 0x00, 0x08, 0x03, 0xFC, 0x7A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x4A, 0xA8, 0x4B, 0x18, 0x4A, 0x08, 0x4B, 0xF8, 0x78, 0x00, 0x45, 0x44, 0x05, 0x22, 0x09, 0x0A, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x40, 0x00, 0x88, 0x7B, 0xFC, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x48, 0x84, 0x4F, 0xFE, 0x48, 0xA0, 0x49, 0x50, 0x7A, 0x48, 0x45, 0xFE, 0x08, 0x44, 0x00, 0x40, 0x00, 0x40, 0x00, 0x90, 0x01, 0x18, 0x0A, 0xA4, 0x7C, 0x40, 0x49, 0xB0, 0x4E, 0x4E, 0x48, 0xF0, 0x4B, 0x90, 0x48, 0x60, 0x4B, 0xA0, 0x48, 0x78, 0x7B, 0x88, 0x48, 0x90, 0x00, 0x60, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x10, 0x10, 0x78, 0x7B, 0x80, 0x52, 0x48, 0x51, 0x50, 0x57, 0xFE, 0x54, 0x82, 0x58, 0x84, 0x57, 0xFC, 0x51, 0x00, 0x51, 0xF0, 0x73, 0x10, 0x52, 0xA0, 0x04, 0x40, 0x08, 0xB0, 0x03, 0x0C, 0x00, 0x00, 0x02, 0x08, 0x01, 0x10, 0x78, 0x04, 0x4F, 0xFE, 0x48, 0xA0, 0x49, 0x18, 0x4A, 0x08, 0x48, 0x00, 0x4B, 0xF8, 0x4A, 0xA8, 0x7A, 0xA8, 0x4A, 0xA8, 0x02, 0xA8, 0x0F, 0xFE, 0x00, 0x00, 0x08, 0x24, 0x04, 0x5E, 0x12, 0x94, 0x7F, 0xF4, 0x51, 0x14, 0x55, 0x5C, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 0x5C, 0x57, 0xD4, 0x71, 0x54, 0x51, 0x24, 0x02, 0x24, 0x04, 0x54, 0x08, 0x88, 0x00, 0x80, 0x08, 0x88, 0x75, 0xFC, 0x51, 0x00, 0x53, 0xF8, 0x59, 0x08, 0x55, 0x48, 0x51, 0x28, 0x57, 0xFE, 0x55, 0x08, 0x55, 0x48, 0x75, 0x28, 0x59, 0x08, 0x09, 0xFC, 0x08, 0x08, 0x00, 0x30, 0x01, 0xFC, 0x08, 0x08, 0x74, 0x50, 0x54, 0x24, 0x51, 0xFE, 0x51, 0x24, 0x5D, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x75, 0x24, 0x55, 0x2C, 0x0A, 0x06, 0x11, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x02, 0x48, 0x7A, 0x48, 0x4B, 0xF8, 0x48, 0x40, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x48, 0x4B, 0xFC, 0x4A, 0x48, 0x4A, 0x48, 0x7B, 0xF8, 0x4A, 0x40, 0x00, 0x48, 0x07, 0xFC, 0x00, 0x04, 0x11, 0x08, 0x11, 0x08, 0x27, 0xD0, 0x22, 0x10, 0x7D, 0x3C, 0x17, 0xC8, 0x21, 0x10, 0x79, 0x3C, 0x07, 0xC0, 0xF9, 0x3E, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x02, 0x90, 0x12, 0x90, 0x7F, 0xF0, 0x52, 0x94, 0x53, 0xBE, 0x51, 0x14, 0x57, 0xD4, 0x55, 0x54, 0x55, 0x54, 0x57, 0xD4, 0x51, 0x14, 0x5F, 0xF4, 0x71, 0x24, 0x01, 0x24, 0x01, 0x54, 0x01, 0x88, 0x00, 0xA0, 0x00, 0xA4, 0x0F, 0xFE, 0x70, 0xA0, 0x57, 0xFC, 0x54, 0xA4, 0x57, 0xFC, 0x54, 0xA4, 0x57, 0xFC, 0x50, 0x00, 0x53, 0xF8, 0x72, 0x08, 0x53, 0xF8, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x00, 0x04, 0x07, 0xFE, 0x70, 0xA0, 0x50, 0xA4, 0x57, 0xFE, 0x54, 0xA4, 0x54, 0xA4, 0x57, 0xFC, 0x50, 0x00, 0x57, 0xFC, 0x50, 0x00, 0x7F, 0xFE, 0x51, 0x50, 0x02, 0x4C, 0x05, 0x44, 0x00, 0x80, 0x00, 0x28, 0x00, 0x24, 0x77, 0xFE, 0x54, 0x20, 0x55, 0x20, 0x55, 0xE4, 0x55, 0x24, 0x55, 0x24, 0x57, 0xE8, 0x55, 0x28, 0x55, 0x28, 0x7B, 0x90, 0x4D, 0x50, 0x11, 0x2A, 0x23, 0x4A, 0x00, 0x84, 0x07, 0xBC, 0x14, 0xA4, 0x7D, 0xAC, 0x55, 0xAC, 0x56, 0xB4, 0x56, 0xB4, 0x55, 0x28, 0x58, 0xC4, 0x50, 0x80, 0x5F, 0xFE, 0x51, 0x10, 0x72, 0x10, 0x51, 0x20, 0x00, 0xC0, 0x01, 0x30, 0x06, 0x08, 0x00, 0x40, 0x14, 0x44, 0x7C, 0x44, 0x57, 0xFC, 0x50, 0x04, 0x57, 0xBE, 0x54, 0xA4, 0x54, 0xA4, 0x57, 0xBC, 0x54, 0xA4, 0x54, 0xA4, 0x77, 0xBC, 0x54, 0xA4, 0x08, 0xA4, 0x0A, 0xD4, 0x11, 0x08, 0x04, 0x20, 0x02, 0x24, 0x72, 0x3E, 0x5F, 0x40, 0x54, 0xA0, 0x54, 0x24, 0x57, 0x3E, 0x55, 0x50, 0x55, 0x14, 0x55, 0xFE, 0x55, 0x10, 0x75, 0x10, 0x49, 0x28, 0x0B, 0x28, 0x10, 0x44, 0x00, 0x82, 0x00, 0x80, 0x10, 0x44, 0x7F, 0xFE, 0x51, 0x10, 0x50, 0xA4, 0x57, 0xFE, 0x54, 0x44, 0x54, 0x44, 0x57, 0xFC, 0x54, 0x44, 0x55, 0xF4, 0x75, 0x14, 0x55, 0x14, 0x05, 0xF4, 0x04, 0x14, 0x04, 0x08, 0x00, 0x80, 0x00, 0x40, 0x07, 0xFE, 0x74, 0x02, 0x58, 0x94, 0x51, 0x50, 0x55, 0x24, 0x55, 0x4A, 0x59, 0x8A, 0x52, 0xF8, 0x5C, 0x40, 0x72, 0x48, 0x52, 0x48, 0x02, 0x48, 0x03, 0xF8, 0x00, 0x08, 0x01, 0x04, 0x01, 0x44, 0x0F, 0xE4, 0x71, 0x08, 0x57, 0xC8, 0x50, 0x10, 0x57, 0xC4, 0x54, 0x44, 0x54, 0x48, 0x57, 0xD2, 0x50, 0x02, 0x74, 0x44, 0x52, 0x84, 0x0F, 0xE8, 0x00, 0x10, 0x00, 0x20, 0x00, 0x04, 0x07, 0xFE, 0x74, 0x08, 0x56, 0x28, 0x55, 0x4E, 0x57, 0xF2, 0x54, 0x84, 0x56, 0xA8, 0x56, 0xA8, 0x56, 0xA8, 0x7B, 0xE8, 0x48, 0xA8, 0x08, 0x88, 0x11, 0x14, 0x22, 0x24, 0x00, 0x42, 0x00, 0x40, 0x08, 0x44, 0x7F, 0xFE, 0x48, 0x40, 0x4A, 0xA8, 0x49, 0x10, 0x4B, 0xF8, 0x4E, 0x0E, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x78, 0x40, 0x49, 0x50, 0x02, 0x4C, 0x05, 0x44, 0x00, 0x80, 0x00, 0xA0, 0x02, 0xA8, 0x79, 0xB0, 0x48, 0xA4, 0x4F, 0xFE, 0x49, 0x10, 0x48, 0xA0, 0x4B, 0xF8, 0x48, 0x40, 0x4B, 0xF8, 0x48, 0x40, 0x7F, 0xFE, 0x48, 0xA0, 0x01, 0x10, 0x01, 0x10, 0x06, 0x0C, 0x01, 0xF8, 0x09, 0x08, 0x7D, 0xF8, 0x49, 0x08, 0x49, 0xF8, 0x48, 0x00, 0x4F, 0xFE, 0x4A, 0x40, 0x4B, 0xFC, 0x4A, 0x44, 0x4B, 0xE8, 0x7A, 0x68, 0x43, 0xD0, 0x0E, 0x68, 0x04, 0x46, 0x00, 0x40, 0x00, 0xA0, 0x08, 0x90, 0x7D, 0xFC, 0x49, 0x20, 0x4B, 0x28, 0x4D, 0xFC, 0x49, 0x20, 0x49, 0x28, 0x49, 0xFC, 0x49, 0x20, 0x49, 0x24, 0x79, 0xFE, 0x49, 0x00, 0x02, 0xA8, 0x02, 0xA4, 0x04, 0x04, 0x00, 0x80, 0x01, 0x04, 0x77, 0xFE, 0x54, 0x44, 0x55, 0x54, 0x54, 0x44, 0x57, 0xFC, 0x54, 0xC4, 0x55, 0x74, 0x56, 0x4C, 0x70, 0x40, 0x4F, 0xFE, 0x00, 0xA0, 0x01, 0x10, 0x02, 0x08, 0x0C, 0x06, 0x00, 0x40, 0x00, 0x40, 0x10, 0xA0, 0x79, 0x10, 0x52, 0x48, 0x55, 0xF6, 0x58, 0xA0, 0x52, 0x48, 0x52, 0xA8, 0x53, 0xF8, 0x50, 0x44, 0x77, 0xFE, 0x54, 0x94, 0x05, 0xF4, 0x04, 0x04, 0x04, 0x0C, 0x01, 0x00, 0x11, 0xF0, 0x7A, 0x20, 0x57, 0xFC, 0x5C, 0x44, 0x57, 0xFC, 0x54, 0x44, 0x57, 0xFC, 0x50, 0x00, 0x5F, 0xFE, 0x50, 0x00, 0x73, 0xF8, 0x52, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x11, 0x10, 0x78, 0xA4, 0x57, 0xFE, 0x54, 0x44, 0x55, 0x54, 0x54, 0x44, 0x57, 0xFC, 0x50, 0x00, 0x53, 0xF8, 0x52, 0x08, 0x72, 0x08, 0x53, 0xF8, 0x02, 0x08, 0x02, 0x08, 0x03, 0xF8, 0x00, 0x40, 0x07, 0x48, 0x71, 0x30, 0x55, 0x24, 0x52, 0x18, 0x53, 0xF0, 0x54, 0x08, 0x5B, 0xF6, 0x52, 0x10, 0x52, 0x10, 0x53, 0xF0, 0x70, 0x00, 0x52, 0x10, 0x01, 0x24, 0x1F, 0xFE, 0x00, 0x00, 0x01, 0x10, 0x0F, 0xFE, 0x71, 0x10, 0x50, 0x44, 0x57, 0xFE, 0x50, 0x00, 0x53, 0xF8, 0x52, 0x08, 0x53, 0xF8, 0x50, 0x04, 0x57, 0xFE, 0x74, 0x04, 0x55, 0xF4, 0x05, 0x14, 0x05, 0xF4, 0x04, 0x0C, 0x01, 0x10, 0x11, 0x14, 0x7F, 0xFE, 0x51, 0x10, 0x53, 0xB8, 0x55, 0x54, 0x59, 0x12, 0x51, 0x10, 0x57, 0xFC, 0x50, 0x00, 0x5F, 0xFE, 0x70, 0x40, 0x52, 0x48, 0x04, 0x46, 0x09, 0x42, 0x00, 0x80, 0x00, 0x48, 0x10, 0x7C, 0x78, 0x40, 0x57, 0xFE, 0x54, 0x42, 0x57, 0xF8, 0x54, 0x40, 0x54, 0x38, 0x57, 0xFE, 0x54, 0x80, 0x55, 0x48, 0x7A, 0xB0, 0x49, 0x70, 0x10, 0xAE, 0x23, 0x24, 0x00, 0x60, 0x00, 0x80, 0x00, 0x40, 0x77, 0xFC, 0x52, 0x08, 0x51, 0x10, 0x5F, 0xFE, 0x50, 0x00, 0x53, 0xF8, 0x52, 0x08, 0x53, 0xF8, 0x52, 0x08, 0x73, 0xF8, 0x54, 0x44, 0x05, 0x42, 0x09, 0x12, 0x01, 0xF0, 0x00, 0x80, 0x00, 0x40, 0x77, 0xFE, 0x55, 0x12, 0x5B, 0xFC, 0x51, 0x10, 0x53, 0xF8, 0x51, 0x10, 0x5F, 0xFE, 0x51, 0x50, 0x52, 0x48, 0x75, 0xF6, 0x48, 0x40, 0x00, 0x48, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x10, 0x07, 0xC8, 0x74, 0x7E, 0x54, 0x40, 0x54, 0x54, 0x57, 0xD4, 0x54, 0x3E, 0x54, 0x08, 0x57, 0xC8, 0x56, 0x48, 0x76, 0x7E, 0x4A, 0x48, 0x0A, 0x48, 0x13, 0xC8, 0x22, 0x48, 0x00, 0x08, 0x00, 0x08, 0x07, 0xFC, 0x70, 0x40, 0x57, 0xFE, 0x54, 0x42, 0x5B, 0x5C, 0x50, 0x40, 0x53, 0x58, 0x50, 0x04, 0x5F, 0xFE, 0x50, 0x80, 0x77, 0xFC, 0x54, 0xA4, 0x04, 0xA4, 0x04, 0xA4, 0x04, 0x0C, 0x00, 0x80, 0x00, 0x40, 0x77, 0xFE, 0x55, 0x02, 0x59, 0xBC, 0x52, 0xA8, 0x56, 0xB0, 0x51, 0x10, 0x53, 0xF8, 0x54, 0x06, 0x5B, 0xF8, 0x70, 0x40, 0x51, 0x50, 0x02, 0x4C, 0x05, 0x44, 0x00, 0x80, 0x00, 0x08, 0x07, 0xFC, 0x70, 0x40, 0x57, 0xFE, 0x55, 0x52, 0x58, 0xE4, 0x51, 0x50, 0x51, 0x20, 0x53, 0xFC, 0x56, 0x20, 0x5B, 0xFC, 0x72, 0x20, 0x53, 0xFC, 0x02, 0x20, 0x03, 0xFE, 0x02, 0x00, 0x00, 0x48, 0x17, 0xFC, 0x78, 0x40, 0x53, 0xF8, 0x52, 0x08, 0x57, 0xFE, 0x55, 0x12, 0x5B, 0xFC, 0x51, 0x10, 0x57, 0xFC, 0x51, 0x10, 0x7F, 0xFE, 0x51, 0x48, 0x03, 0x30, 0x0D, 0x9E, 0x01, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x4F, 0xE4, 0x40, 0x44, 0x40, 0x84, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x43, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x42, 0x04, 0x42, 0x04, 0x42, 0x14, 0x7F, 0xFC, 0x44, 0x44, 0x44, 0x44, 0x48, 0x44, 0x44, 0x44, 0x43, 0x84, 0x42, 0x84, 0x44, 0x64, 0x48, 0x14, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x42, 0x84, 0x44, 0x44, 0x48, 0x24, 0x54, 0x5C, 0x64, 0x84, 0x45, 0x04, 0x46, 0x04, 0x44, 0x24, 0x43, 0xE4, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x48, 0x04, 0x48, 0x14, 0x4F, 0xFC, 0x54, 0x94, 0x54, 0x94, 0x64, 0x94, 0x48, 0x94, 0x49, 0x14, 0x51, 0x14, 0x62, 0x54, 0x44, 0x24, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x42, 0x84, 0x44, 0x44, 0x4A, 0x24, 0x51, 0x1C, 0x6F, 0xE4, 0x40, 0x24, 0x44, 0x44, 0x42, 0x84, 0x41, 0x04, 0x40, 0x84, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x42, 0x04, 0x42, 0x14, 0x7F, 0xFC, 0x44, 0x04, 0x47, 0xE4, 0x4C, 0x24, 0x57, 0xE4, 0x64, 0x24, 0x47, 0xE4, 0x44, 0x24, 0x44, 0xA4, 0x44, 0x44, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x5F, 0xF4, 0x42, 0x04, 0x4F, 0xE4, 0x44, 0x24, 0x7F, 0xFC, 0x40, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x04, 0x5F, 0xF4, 0x41, 0x04, 0x4F, 0xE4, 0x41, 0x04, 0x5F, 0xF4, 0x40, 0x24, 0x44, 0x44, 0x42, 0x84, 0x41, 0x04, 0x40, 0x84, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x7F, 0xFC, 0x44, 0x44, 0x42, 0x84, 0x4F, 0xE4, 0x41, 0x04, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x40, 0x04, 0x5F, 0xF4, 0x52, 0x94, 0x5F, 0xF4, 0x40, 0x04, 0x7F, 0xFC, 0x48, 0x24, 0x4F, 0xE4, 0x45, 0x44, 0x4C, 0x84, 0x56, 0x74, 0x44, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x7F, 0xFE, 0x54, 0x20, 0x54, 0x28, 0x55, 0xFC, 0x54, 0x20, 0x54, 0x20, 0x57, 0xFE, 0x5C, 0x22, 0x54, 0x22, 0x10, 0x2A, 0x10, 0x24, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x11, 0x20, 0x7D, 0x24, 0x55, 0xFE, 0x55, 0x20, 0x56, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x54, 0x20, 0x5C, 0x50, 0x54, 0x50, 0x10, 0x88, 0x10, 0x88, 0x11, 0x04, 0x16, 0x02, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x7D, 0xFE, 0x55, 0x22, 0x55, 0x24, 0x55, 0x20, 0x55, 0xF8, 0x55, 0x08, 0x55, 0x48, 0x5D, 0x50, 0x55, 0x50, 0x12, 0x20, 0x12, 0x50, 0x14, 0x8E, 0x13, 0x04, 0x08, 0x00, 0x08, 0x00, 0xFE, 0xFC, 0x12, 0x44, 0x32, 0x28, 0x0C, 0x10, 0x12, 0x28, 0x61, 0x46, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x01, 0x00, 0x01, 0x00, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x7C, 0x40, 0x55, 0xF8, 0x54, 0x40, 0x57, 0xFE, 0x54, 0x88, 0x54, 0x88, 0x55, 0xFE, 0x5D, 0x08, 0x52, 0x88, 0x14, 0x48, 0x10, 0x08, 0x10, 0x28, 0x10, 0x10, 0x10, 0x20, 0x10, 0x28, 0x11, 0xFC, 0x7C, 0x20, 0x55, 0xFC, 0x54, 0x20, 0x57, 0xFE, 0x54, 0x00, 0x55, 0xFC, 0x55, 0x04, 0x5D, 0x24, 0x55, 0x24, 0x11, 0x20, 0x10, 0x58, 0x10, 0x86, 0x13, 0x02, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x7D, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x34, 0x55, 0x2C, 0x5D, 0x24, 0x55, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x80, 0x10, 0xA0, 0x10, 0x94, 0x7D, 0xFE, 0x55, 0x10, 0x57, 0x10, 0x55, 0xFC, 0x55, 0x10, 0x55, 0x10, 0x55, 0xFC, 0x55, 0x10, 0x5D, 0x10, 0x11, 0x14, 0x11, 0xFE, 0x11, 0x00, 0x11, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x7D, 0x04, 0x55, 0xFC, 0x55, 0x00, 0x55, 0xFC, 0x55, 0x20, 0x55, 0x48, 0x55, 0xFC, 0x5D, 0x20, 0x56, 0xFC, 0x12, 0x20, 0x14, 0x24, 0x19, 0xFE, 0x10, 0x00, 0x21, 0xF8, 0x21, 0x08, 0x21, 0xF8, 0xF9, 0x08, 0xA9, 0xF8, 0xA8, 0x00, 0xAB, 0xFC, 0xAA, 0x94, 0xAB, 0xFC, 0xA8, 0x00, 0xAB, 0xF8, 0xB9, 0x10, 0x20, 0xA0, 0x20, 0x40, 0x21, 0xB0, 0x2E, 0x0E, 0x10, 0x20, 0x11, 0xFC, 0x10, 0x88, 0x7C, 0x50, 0x57, 0xFE, 0x54, 0x00, 0x55, 0xFC, 0x55, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x5D, 0xFC, 0x54, 0x20, 0x13, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x50, 0x11, 0x54, 0x10, 0xD8, 0x7C, 0x50, 0x57, 0xFE, 0x54, 0x88, 0x54, 0x50, 0x55, 0xFC, 0x54, 0x20, 0x55, 0xFC, 0x5C, 0x20, 0x57, 0xFE, 0x10, 0x20, 0x10, 0x50, 0x10, 0x88, 0x13, 0x06, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x7D, 0x24, 0x54, 0xA8, 0x57, 0xFE, 0x54, 0x70, 0x54, 0xA8, 0x57, 0x26, 0x54, 0x24, 0x5D, 0xFE, 0x55, 0x24, 0x11, 0xFC, 0x11, 0x24, 0x11, 0xFC, 0x11, 0x04, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x3F, 0xF0, 0x08, 0x20, 0x08, 0x40, 0x08, 0x80, 0x14, 0xF0, 0x12, 0x10, 0x21, 0x20, 0x20, 0xC0, 0x41, 0x40, 0x86, 0x30, 0x18, 0x0E, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x10, 0x04, 0x54, 0x04, 0x54, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x55, 0x00, 0x55, 0x00, 0x55, 0x00, 0x55, 0x00, 0x7D, 0x02, 0x05, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x88, 0x54, 0x88, 0x54, 0x88, 0x54, 0x88, 0x57, 0xFE, 0x54, 0x88, 0x54, 0x88, 0x54, 0x88, 0x54, 0x88, 0x7D, 0x08, 0x05, 0x08, 0x02, 0x08, 0x04, 0x08, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x54, 0x20, 0x55, 0xFC, 0x54, 0x84, 0x54, 0x88, 0x54, 0x50, 0x54, 0x50, 0x7C, 0x20, 0x04, 0x50, 0x01, 0x8E, 0x06, 0x04, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x00, 0x11, 0x04, 0x55, 0x44, 0x55, 0x28, 0x55, 0x28, 0x55, 0x10, 0x55, 0x10, 0x55, 0x28, 0x55, 0x24, 0x55, 0x44, 0x7D, 0x80, 0x05, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x10, 0x10, 0x55, 0x10, 0x55, 0x14, 0x55, 0xFE, 0x54, 0x10, 0x54, 0x30, 0x54, 0x50, 0x54, 0x90, 0x55, 0x10, 0x7E, 0x10, 0x04, 0x10, 0x00, 0x50, 0x00, 0x20, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x48, 0x55, 0x48, 0x55, 0x48, 0x55, 0x48, 0x55, 0x48, 0x55, 0x48, 0x55, 0x68, 0x54, 0xA0, 0x54, 0xA0, 0x7D, 0x22, 0x05, 0x22, 0x02, 0x1E, 0x0C, 0x00, 0x00, 0x10, 0x00, 0x38, 0x3F, 0xC0, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x10, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x02, 0x80, 0x04, 0x40, 0x0A, 0x30, 0x31, 0x0E, 0xC0, 0x04, 0x0F, 0xF0, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x14, 0x50, 0x12, 0x90, 0x11, 0x10, 0x12, 0x90, 0x24, 0x50, 0x28, 0x52, 0x40, 0x0A, 0x80, 0x04, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x20, 0x00, 0x20, 0x02, 0x20, 0x02, 0x1F, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x55, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x54, 0x20, 0x54, 0x24, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x7D, 0x04, 0x05, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x00, 0x90, 0x1F, 0xD0, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x1F, 0x90, 0x10, 0x10, 0x00, 0x50, 0x00, 0x20, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x80, 0x08, 0x90, 0x1F, 0xF8, 0x00, 0x80, 0x08, 0x90, 0x10, 0x8C, 0x62, 0x84, 0x01, 0x00, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x7C, 0x20, 0x04, 0x20, 0x00, 0x20, 0x00, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x55, 0xFE, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x7D, 0x24, 0x05, 0x24, 0x01, 0xFC, 0x01, 0x04, 0x09, 0x00, 0x09, 0x40, 0x11, 0x24, 0x11, 0xFE, 0x3F, 0x00, 0x50, 0x80, 0x90, 0x84, 0x10, 0x44, 0x11, 0x3C, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x08, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0x55, 0x04, 0x56, 0x24, 0x55, 0xF4, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0xE4, 0x7D, 0x24, 0x04, 0x04, 0x00, 0x28, 0x00, 0x10, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x04, 0x04, 0x78, 0xFE, 0x42, 0x84, 0x42, 0x84, 0x42, 0x84, 0x42, 0x84, 0x4E, 0x84, 0x72, 0xA4, 0x04, 0x98, 0x04, 0x80, 0x18, 0x80, 0x60, 0x80, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x55, 0xFC, 0x55, 0x20, 0x55, 0x20, 0x55, 0x24, 0x55, 0xFE, 0x55, 0x10, 0x55, 0x10, 0x55, 0x10, 0x7D, 0x08, 0x05, 0x4A, 0x01, 0x86, 0x00, 0x02, 0x10, 0x00, 0x13, 0xFC, 0x10, 0x88, 0x10, 0x50, 0x54, 0x20, 0x54, 0xD8, 0x57, 0x06, 0x54, 0x20, 0x55, 0xFC, 0x54, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x7C, 0x20, 0x04, 0x20, 0x00, 0x20, 0x00, 0x20, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x14, 0x55, 0xFC, 0x55, 0x04, 0x55, 0x04, 0x55, 0x74, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 0x74, 0x7D, 0x54, 0x05, 0x04, 0x01, 0x14, 0x01, 0x08, 0x20, 0x08, 0x20, 0x3C, 0x23, 0xC0, 0x20, 0x40, 0xA8, 0x44, 0xAF, 0xFE, 0xA8, 0xA0, 0xA9, 0x10, 0xA9, 0x18, 0xAB, 0x16, 0xAD, 0x10, 0xA9, 0x10, 0xF9, 0x10, 0x09, 0x10, 0x02, 0x10, 0x04, 0x10, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0x55, 0x04, 0x56, 0x24, 0x55, 0xF4, 0x55, 0x24, 0x55, 0x24, 0x55, 0xE4, 0x55, 0x24, 0x55, 0x24, 0x7D, 0xE4, 0x05, 0x04, 0x00, 0x28, 0x00, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0xF8, 0x11, 0x10, 0x56, 0x24, 0x55, 0xFE, 0x54, 0x24, 0x54, 0x24, 0x57, 0xFE, 0x54, 0x24, 0x54, 0x24, 0x55, 0xFC, 0x7C, 0x24, 0x04, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x10, 0x90, 0x10, 0x94, 0x17, 0xFE, 0x10, 0x90, 0x54, 0x00, 0x57, 0xFE, 0x56, 0x42, 0x54, 0x44, 0x55, 0xF8, 0x54, 0x48, 0x54, 0x48, 0x54, 0x48, 0x7C, 0x88, 0x04, 0x88, 0x01, 0x28, 0x02, 0x10, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x54, 0x20, 0x55, 0x24, 0x54, 0xA8, 0x54, 0x20, 0x57, 0xFE, 0x54, 0x20, 0x54, 0x70, 0x54, 0xA8, 0x7C, 0xA8, 0x05, 0x24, 0x02, 0x22, 0x00, 0x20, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x08, 0x00, 0x08, 0x10, 0x08, 0x90, 0x7E, 0x90, 0x09, 0x08, 0x1D, 0x48, 0x2A, 0x46, 0x28, 0x80, 0x48, 0x90, 0x89, 0x08, 0x09, 0xFC, 0x08, 0x04, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x54, 0x50, 0x54, 0xA8, 0x55, 0xFC, 0x57, 0x26, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x7D, 0xFC, 0x04, 0x20, 0x00, 0x22, 0x00, 0x1E, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x2F, 0xE8, 0x21, 0x08, 0x27, 0xC8, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x11, 0x08, 0x10, 0x90, 0x10, 0x60, 0x10, 0x90, 0x55, 0x48, 0x54, 0x40, 0x57, 0xFE, 0x54, 0x80, 0x54, 0xF8, 0x55, 0x88, 0x56, 0xF8, 0x54, 0x88, 0x7C, 0xF8, 0x04, 0x88, 0x00, 0xA8, 0x00, 0x90, 0x10, 0x80, 0x10, 0x48, 0x13, 0xFC, 0x10, 0x00, 0x55, 0xF8, 0x55, 0x08, 0x55, 0xF8, 0x54, 0x00, 0x55, 0xF8, 0x54, 0x10, 0x54, 0x60, 0x57, 0xFE, 0x7C, 0x40, 0x04, 0x40, 0x01, 0x40, 0x00, 0x80, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x11, 0xFE, 0x55, 0x02, 0x56, 0x54, 0x54, 0x88, 0x55, 0x04, 0x54, 0x00, 0x55, 0xFC, 0x54, 0x20, 0x54, 0x20, 0x7C, 0x20, 0x04, 0x24, 0x03, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x55, 0xFC, 0x55, 0x10, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 0x7C, 0x55, 0x10, 0x7D, 0x12, 0x02, 0x92, 0x04, 0x92, 0x08, 0xFE, 0x00, 0x02, 0x10, 0x88, 0x10, 0x88, 0x13, 0xFE, 0x10, 0x88, 0x54, 0x00, 0x55, 0xFE, 0x55, 0x02, 0x56, 0x24, 0x54, 0x20, 0x55, 0xFE, 0x54, 0x20, 0x54, 0x70, 0x7C, 0xA8, 0x05, 0x26, 0x02, 0x24, 0x00, 0x20, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x50, 0x10, 0x54, 0x55, 0xFE, 0x55, 0x54, 0x55, 0x54, 0x55, 0xFC, 0x54, 0x40, 0x54, 0x44, 0x57, 0xFE, 0x54, 0x88, 0x7C, 0x90, 0x04, 0x60, 0x00, 0x98, 0x03, 0x04, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x50, 0x3F, 0xFE, 0x20, 0x40, 0x3F, 0xC4, 0x24, 0x44, 0x3F, 0xC8, 0x24, 0xA8, 0x29, 0x30, 0x46, 0x20, 0x45, 0x52, 0x98, 0x8A, 0x00, 0x06, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x02, 0x00, 0x51, 0x08, 0x51, 0x06, 0x90, 0x12, 0x0F, 0xF0, 0x00, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x12, 0x90, 0x02, 0xA8, 0x04, 0xBA, 0x08, 0x82, 0x30, 0x7E, 0x40, 0x00, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x06, 0xC0, 0x38, 0x30, 0xCF, 0xEE, 0x00, 0x08, 0x3E, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x26, 0x18, 0x11, 0x08, 0x10, 0x90, 0x10, 0xA0, 0x13, 0xFE, 0x54, 0x40, 0x55, 0xFC, 0x54, 0x40, 0x57, 0xFE, 0x54, 0x80, 0x54, 0x88, 0x55, 0xFC, 0x55, 0x20, 0x7E, 0x20, 0x04, 0x24, 0x0B, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x11, 0x24, 0x10, 0xA8, 0x54, 0x20, 0x57, 0xFE, 0x54, 0x20, 0x54, 0xA8, 0x55, 0x24, 0x54, 0x40, 0x57, 0xFE, 0x54, 0x88, 0x55, 0x08, 0x7C, 0x90, 0x04, 0x60, 0x00, 0x98, 0x03, 0x04, 0x11, 0x04, 0x10, 0x88, 0x10, 0x00, 0x13, 0xFE, 0x54, 0x88, 0x54, 0x88, 0x55, 0x10, 0x55, 0x54, 0x57, 0xB8, 0x54, 0x88, 0x55, 0x10, 0x55, 0x14, 0x7E, 0xA4, 0x03, 0xFC, 0x00, 0x84, 0x00, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0x11, 0x24, 0x55, 0xFC, 0x55, 0x00, 0x55, 0x04, 0x55, 0x7E, 0x55, 0x44, 0x55, 0x7C, 0x55, 0x44, 0x55, 0x7C, 0x7D, 0x44, 0x02, 0x44, 0x04, 0x7C, 0x00, 0x44, 0x20, 0x08, 0x20, 0x3C, 0x27, 0xC0, 0x20, 0x44, 0xAF, 0xFE, 0xA8, 0x40, 0xA9, 0x50, 0xAF, 0x5C, 0xA9, 0x50, 0xAF, 0x5C, 0xA8, 0xE0, 0xA9, 0x50, 0xF9, 0x48, 0x0A, 0x4E, 0x04, 0x44, 0x00, 0x40, 0x01, 0x00, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xF8, 0x20, 0x08, 0x2F, 0xE8, 0x28, 0x28, 0x2F, 0xE8, 0x20, 0x18, 0x20, 0x40, 0x22, 0x48, 0x21, 0x50, 0xAA, 0x48, 0xA8, 0xA0, 0xA9, 0x10, 0xAB, 0xFE, 0xAD, 0x14, 0xA9, 0x10, 0xA9, 0xF0, 0xA9, 0x10, 0xA9, 0x10, 0xF9, 0xF0, 0x09, 0x10, 0x01, 0x50, 0x01, 0x20, 0x10, 0x20, 0x13, 0xFE, 0x10, 0x88, 0x54, 0x50, 0x57, 0xFE, 0x54, 0x00, 0x55, 0xFC, 0x55, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x55, 0xFC, 0x54, 0x20, 0x7F, 0xFE, 0x04, 0x20, 0x00, 0x20, 0x00, 0x20, 0x20, 0x40, 0x22, 0x48, 0x21, 0x50, 0x20, 0x44, 0xAF, 0xFE, 0xA9, 0x50, 0xAA, 0x48, 0xAC, 0x44, 0xAA, 0x08, 0xAB, 0xBC, 0xAC, 0xA8, 0xAA, 0xA8, 0xF9, 0x7E, 0x09, 0x08, 0x02, 0x08, 0x04, 0x08, 0x20, 0x20, 0x27, 0xA8, 0x20, 0xB0, 0x22, 0xA4, 0xA9, 0x18, 0xA9, 0xF0, 0xAA, 0x0E, 0xAC, 0x04, 0xAB, 0xF8, 0xAA, 0x08, 0xAA, 0x08, 0xAB, 0xF8, 0xF9, 0x10, 0x08, 0xA4, 0x07, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x45, 0x14, 0x7F, 0xFC, 0x51, 0x44, 0x59, 0x64, 0x6B, 0xAC, 0x5D, 0x74, 0x69, 0xA4, 0x5D, 0x74, 0x6B, 0xAC, 0x49, 0x24, 0x59, 0x64, 0x41, 0x04, 0x7F, 0xFC, 0x40, 0x04, 0x01, 0x00, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x26, 0xFC, 0x38, 0x08, 0x21, 0x30, 0x1F, 0x10, 0x20, 0xFE, 0x3E, 0x14, 0x48, 0x50, 0x0A, 0x5C, 0xFF, 0x50, 0x14, 0xB0, 0x22, 0x90, 0x41, 0x0E, 0x01, 0x00, 0x21, 0x08, 0x3F, 0xF8, 0x08, 0x00, 0xFF, 0xFE, 0x08, 0x20, 0x3E, 0x7C, 0x22, 0x44, 0x2A, 0x54, 0x2A, 0x54, 0x2A, 0x54, 0x2A, 0x54, 0xFF, 0x54, 0x08, 0x28, 0x14, 0x26, 0x62, 0xC2, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x40, 0x08, 0x40, 0x10, 0x80, 0x01, 0x00, 0x03, 0x00, 0x05, 0x00, 0x09, 0x00, 0x31, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x80, 0x08, 0x40, 0x10, 0x44, 0x27, 0xFE, 0x40, 0x80, 0x08, 0x88, 0x10, 0xFC, 0x20, 0x88, 0x50, 0x88, 0x90, 0x88, 0x11, 0x08, 0x11, 0x08, 0x12, 0x08, 0x14, 0x08, 0x18, 0x50, 0x10, 0x20, 0x08, 0x00, 0x08, 0x08, 0x11, 0xFC, 0x21, 0x08, 0x49, 0x08, 0x09, 0x08, 0x11, 0xF8, 0x31, 0x08, 0x51, 0x08, 0x91, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x1F, 0xFE, 0x10, 0x00, 0x08, 0x80, 0x08, 0x80, 0x10, 0x84, 0x20, 0xFE, 0x49, 0x04, 0x0A, 0x24, 0x11, 0xF4, 0x31, 0x24, 0x51, 0x24, 0x91, 0xE4, 0x11, 0x24, 0x11, 0x24, 0x11, 0xE4, 0x11, 0x04, 0x10, 0x28, 0x10, 0x10, 0x0A, 0x08, 0x09, 0x10, 0x10, 0xA0, 0x20, 0x08, 0x4B, 0xFC, 0x08, 0x40, 0x10, 0x48, 0x37, 0xFC, 0x50, 0x40, 0x90, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x08, 0x40, 0x08, 0x40, 0x10, 0x88, 0x21, 0x10, 0x4B, 0xE0, 0x08, 0x40, 0x10, 0x88, 0x37, 0xFC, 0x51, 0x00, 0x91, 0xF8, 0x12, 0x08, 0x15, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x11, 0xB0, 0x16, 0x0E, 0x08, 0x40, 0x08, 0x40, 0x10, 0x48, 0x27, 0xFC, 0x48, 0x40, 0x0A, 0x48, 0x11, 0x50, 0x37, 0xFE, 0x50, 0x40, 0x90, 0xE0, 0x11, 0x50, 0x12, 0x48, 0x14, 0x4E, 0x18, 0x44, 0x10, 0x40, 0x10, 0x40, 0x08, 0x40, 0x08, 0x40, 0x12, 0x48, 0x22, 0x7C, 0x4A, 0x40, 0x0A, 0x44, 0x17, 0xFE, 0x30, 0x40, 0x50, 0x40, 0x92, 0x48, 0x12, 0x7C, 0x12, 0x40, 0x13, 0x40, 0x14, 0xC0, 0x14, 0x66, 0x18, 0x1C, 0x08, 0x40, 0x08, 0x48, 0x12, 0x4C, 0x21, 0x48, 0x49, 0x50, 0x08, 0x44, 0x17, 0xFE, 0x34, 0x04, 0x54, 0x04, 0x95, 0xF4, 0x15, 0x14, 0x15, 0x14, 0x15, 0xF4, 0x14, 0x04, 0x14, 0x14, 0x14, 0x08, 0x08, 0x40, 0x08, 0x88, 0x13, 0xFC, 0x22, 0x08, 0x4B, 0xF8, 0x0A, 0x08, 0x13, 0xF8, 0x30, 0x00, 0x57, 0xFC, 0x90, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x08, 0x08, 0x08, 0x7C, 0x17, 0x80, 0x22, 0x48, 0x49, 0x48, 0x09, 0x50, 0x12, 0x00, 0x33, 0xFC, 0x54, 0x40, 0x90, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x12, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x10, 0x08, 0x12, 0x10, 0x12, 0x10, 0x2A, 0x90, 0x4A, 0xA4, 0x8F, 0xBE, 0x10, 0x44, 0x2F, 0xA4, 0x60, 0x28, 0xAF, 0xA8, 0x22, 0x10, 0x2F, 0x90, 0x22, 0x28, 0x23, 0xA8, 0x2E, 0x44, 0x20, 0x86, 0x21, 0x00, 0x12, 0x10, 0x14, 0x10, 0x2F, 0x90, 0x48, 0xA4, 0x8F, 0xBE, 0x18, 0xC4, 0x2F, 0xA4, 0x62, 0x28, 0xBF, 0xA8, 0x24, 0x10, 0x27, 0x90, 0x24, 0xA8, 0x28, 0xA8, 0x2B, 0x44, 0x30, 0x86, 0x21, 0x00, 0x0E, 0xE0, 0x1A, 0xA4, 0x2E, 0xFE, 0x4A, 0xA0, 0x8E, 0xE0, 0x1A, 0xA0, 0x2E, 0xFE, 0x64, 0x84, 0xA7, 0xE4, 0x2C, 0x84, 0x37, 0xE4, 0x24, 0x84, 0x27, 0xE4, 0x24, 0x84, 0x27, 0xF4, 0x24, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x88, 0x00, 0x50, 0x00, 0x20, 0x00, 0x50, 0x00, 0x88, 0x00, 0x08, 0x00, 0x18, 0x00, 0x28, 0x00, 0x48, 0x00, 0x88, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x50, 0x00, 0x20, 0x00, 0x04, 0x80, 0x88, 0x80, 0x50, 0x80, 0x20, 0x90, 0x57, 0xF8, 0x88, 0x90, 0x08, 0x90, 0x18, 0x90, 0x28, 0x90, 0x49, 0x10, 0x89, 0x10, 0x09, 0x10, 0x0A, 0x12, 0x0A, 0x12, 0x54, 0x0E, 0x28, 0x00, 0x04, 0x10, 0x8B, 0xF8, 0x50, 0x40, 0x20, 0x40, 0x50, 0x40, 0x88, 0x44, 0x0F, 0xFE, 0x18, 0x40, 0x28, 0x40, 0x48, 0x40, 0x88, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x50, 0x40, 0x20, 0x40, 0x04, 0x40, 0x88, 0x20, 0x50, 0x24, 0x21, 0xFE, 0x51, 0x00, 0x89, 0x00, 0x09, 0x00, 0x19, 0x00, 0x29, 0x00, 0x49, 0x00, 0x89, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x54, 0x00, 0x28, 0x00, 0x04, 0x10, 0x8B, 0xF8, 0x50, 0x10, 0x21, 0x10, 0x51, 0x10, 0x89, 0x10, 0x09, 0x10, 0x19, 0x14, 0x29, 0xFE, 0x48, 0x04, 0x88, 0x24, 0x0F, 0xF4, 0x08, 0x04, 0x08, 0x04, 0x50, 0x28, 0x20, 0x10, 0x04, 0x00, 0x88, 0x08, 0x53, 0xFC, 0x20, 0x88, 0x50, 0x88, 0x88, 0x88, 0x08, 0x88, 0x18, 0x88, 0x2B, 0xF8, 0x48, 0x88, 0x88, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x57, 0xFE, 0x20, 0x00, 0x04, 0x40, 0x88, 0x40, 0x50, 0x40, 0x20, 0x90, 0x51, 0x08, 0x8A, 0x04, 0x0B, 0xFE, 0x18, 0x90, 0x28, 0x90, 0x48, 0x90, 0x88, 0x90, 0x08, 0x90, 0x09, 0x12, 0x09, 0x12, 0x52, 0x0E, 0x24, 0x00, 0x04, 0x00, 0x88, 0x04, 0x51, 0xFE, 0x21, 0x24, 0x51, 0x24, 0x89, 0x24, 0x09, 0xFC, 0x19, 0x24, 0x29, 0x24, 0x49, 0x24, 0x89, 0xFC, 0x09, 0x24, 0x08, 0x20, 0x08, 0x20, 0x50, 0x20, 0x20, 0x20, 0x05, 0x00, 0x89, 0x04, 0x51, 0xFE, 0x22, 0x04, 0x52, 0x24, 0x8D, 0xF4, 0x09, 0x24, 0x19, 0x24, 0x29, 0x24, 0x49, 0xE4, 0x89, 0x28, 0x09, 0x10, 0x09, 0x02, 0x09, 0x02, 0x50, 0xFE, 0x20, 0x00, 0x04, 0xA0, 0x88, 0xA0, 0x50, 0xA8, 0x27, 0xFC, 0x50, 0xA8, 0x88, 0xA8, 0x0B, 0xF8, 0x1A, 0xA0, 0x2A, 0xA4, 0x4B, 0xFE, 0x88, 0xA4, 0x08, 0xA4, 0x09, 0x34, 0x09, 0x28, 0x52, 0x20, 0x24, 0x20, 0x04, 0x20, 0x88, 0x28, 0x50, 0x24, 0x20, 0x20, 0x57, 0xFE, 0x88, 0x20, 0x09, 0x20, 0x19, 0x28, 0x2F, 0xE8, 0x49, 0x28, 0x89, 0x28, 0x09, 0x10, 0x09, 0x12, 0x0A, 0x2A, 0x50, 0xC6, 0x20, 0x02, 0x04, 0x40, 0x88, 0x40, 0x50, 0xA0, 0x21, 0x10, 0x52, 0x0E, 0x8C, 0x24, 0x09, 0xF0, 0x18, 0x00, 0x28, 0x04, 0x4F, 0xFE, 0x88, 0x40, 0x08, 0x80, 0x09, 0x10, 0x0A, 0x08, 0x53, 0xFC, 0x20, 0x04, 0x04, 0x40, 0x88, 0x20, 0x53, 0xFE, 0x22, 0x02, 0x54, 0x14, 0x88, 0x10, 0x08, 0x14, 0x1F, 0xFE, 0x28, 0x10, 0x49, 0x10, 0x88, 0x90, 0x08, 0x90, 0x08, 0x10, 0x08, 0x10, 0x50, 0x50, 0x20, 0x20, 0x00, 0x10, 0x88, 0x10, 0x57, 0x90, 0x20, 0x90, 0x51, 0x10, 0x92, 0x10, 0x12, 0xD8, 0x33, 0x54, 0x56, 0x54, 0x9A, 0x52, 0x12, 0x92, 0x12, 0x10, 0x12, 0x10, 0x1A, 0x10, 0xA4, 0x50, 0x40, 0x20, 0x04, 0x00, 0x8A, 0x20, 0x52, 0x24, 0x22, 0x28, 0x53, 0xB0, 0x8A, 0x20, 0x0A, 0x22, 0x1A, 0xA2, 0x2B, 0x1E, 0x48, 0x40, 0x88, 0x48, 0x0B, 0xFC, 0x08, 0x40, 0x08, 0x44, 0x57, 0xFE, 0x20, 0x00, 0x04, 0x08, 0x89, 0xFC, 0x51, 0x08, 0x21, 0x08, 0x51, 0xF8, 0x88, 0x04, 0x0B, 0xFE, 0x1A, 0x04, 0x2A, 0x04, 0x4B, 0xFC, 0x8A, 0x04, 0x0A, 0x04, 0x0B, 0xFC, 0x0A, 0x04, 0x52, 0x14, 0x22, 0x08, 0x04, 0x04, 0x88, 0xC4, 0x57, 0x04, 0x21, 0x14, 0x51, 0x14, 0x91, 0x54, 0x1F, 0xF4, 0x31, 0x14, 0x53, 0x14, 0x93, 0x94, 0x15, 0x54, 0x15, 0x14, 0x19, 0x04, 0x11, 0x04, 0xA1, 0x14, 0x41, 0x08, 0x04, 0x40, 0x88, 0x40, 0x50, 0xA0, 0x21, 0x10, 0x52, 0x08, 0x8D, 0xF6, 0x08, 0x40, 0x18, 0x48, 0x2F, 0xFC, 0x48, 0x40, 0x89, 0x50, 0x09, 0x48, 0x0A, 0x44, 0x0C, 0x44, 0x51, 0x40, 0x20, 0x80, 0x04, 0x40, 0x88, 0x40, 0x50, 0xA0, 0x21, 0x10, 0x52, 0x08, 0x8C, 0x06, 0x0B, 0xF8, 0x18, 0x00, 0x28, 0x08, 0x4A, 0x48, 0x89, 0x48, 0x09, 0x50, 0x09, 0x50, 0x08, 0x04, 0x57, 0xFE, 0x20, 0x00, 0x04, 0x80, 0x88, 0x44, 0x57, 0xFE, 0x20, 0x00, 0x50, 0x00, 0x8B, 0xFC, 0x08, 0x00, 0x1B, 0xFC, 0x28, 0x00, 0x48, 0x04, 0x8B, 0xFE, 0x0A, 0x04, 0x0A, 0x04, 0x0A, 0x04, 0x53, 0xFC, 0x22, 0x04, 0x04, 0x40, 0x88, 0x80, 0x51, 0x10, 0x22, 0x08, 0x57, 0xFC, 0x91, 0x10, 0x12, 0x08, 0x35, 0x04, 0x51, 0xF8, 0x91, 0x08, 0x13, 0x10, 0x14, 0xA0, 0x10, 0x40, 0x10, 0xB0, 0xA1, 0x0E, 0x46, 0x04, 0x04, 0x40, 0x88, 0x44, 0x57, 0xFE, 0x20, 0x40, 0x50, 0xA0, 0x89, 0x14, 0x0F, 0xFE, 0x18, 0x08, 0x2B, 0xC8, 0x4A, 0x48, 0x8A, 0x48, 0x0A, 0x48, 0x0B, 0xC8, 0x0A, 0x08, 0x50, 0x28, 0x20, 0x10, 0x04, 0x08, 0x8B, 0xFC, 0x52, 0x48, 0x22, 0x48, 0x53, 0xF8, 0x8A, 0x48, 0x0A, 0x48, 0x1B, 0xF8, 0x28, 0x40, 0x4F, 0xFE, 0x88, 0x40, 0x08, 0xE0, 0x09, 0x50, 0x0A, 0x4E, 0x54, 0x44, 0x20, 0x40, 0x04, 0x04, 0x8F, 0xFE, 0x54, 0xA4, 0x24, 0xA4, 0x54, 0xA4, 0x97, 0xFC, 0x14, 0x84, 0x10, 0x80, 0x31, 0xF8, 0x52, 0x08, 0x95, 0x08, 0x10, 0x90, 0x10, 0x60, 0x10, 0x40, 0xA1, 0x80, 0x46, 0x00, 0x04, 0x00, 0x88, 0x44, 0x53, 0x9E, 0x22, 0x04, 0x52, 0x04, 0x8B, 0x9C, 0x0A, 0x04, 0x1A, 0x04, 0x2B, 0xFC, 0x4A, 0x94, 0x88, 0x90, 0x08, 0x90, 0x08, 0x90, 0x09, 0x12, 0x52, 0x12, 0x24, 0x0E, 0x04, 0x40, 0x88, 0x40, 0x50, 0xA0, 0x21, 0x10, 0x52, 0x08, 0x95, 0xF6, 0x18, 0x40, 0x30, 0x48, 0x57, 0xFC, 0x90, 0x40, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0xA3, 0xF8, 0x42, 0x08, 0x04, 0x80, 0x88, 0x48, 0x57, 0xFC, 0x21, 0x10, 0x51, 0x10, 0x89, 0x10, 0x0A, 0xA8, 0x1C, 0x44, 0x28, 0x40, 0x4F, 0xFE, 0x88, 0x40, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x50, 0x40, 0x20, 0x40, 0x08, 0x20, 0x8F, 0x20, 0x51, 0x20, 0x21, 0x40, 0x51, 0x7E, 0x97, 0x82, 0x14, 0x14, 0x34, 0x10, 0x54, 0x54, 0x97, 0x54, 0x11, 0x52, 0x11, 0x52, 0x11, 0x92, 0x11, 0x10, 0xAA, 0x50, 0x44, 0x20, 0x05, 0x04, 0x89, 0x3E, 0x51, 0x24, 0x21, 0x24, 0x5F, 0xE4, 0x91, 0x3C, 0x11, 0x24, 0x31, 0x24, 0x57, 0xA4, 0x94, 0xBC, 0x14, 0xA4, 0x14, 0xA4, 0x17, 0xA4, 0x14, 0x44, 0xA0, 0x94, 0x41, 0x08, 0x04, 0x40, 0x88, 0x48, 0x57, 0xFC, 0x20, 0xE0, 0x51, 0x50, 0x92, 0x48, 0x14, 0x46, 0x3B, 0xF8, 0x52, 0x08, 0x93, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x00, 0xAF, 0xFE, 0x40, 0x00, 0x04, 0x08, 0x8B, 0xFC, 0x52, 0x48, 0x22, 0x48, 0x53, 0xF8, 0x92, 0x48, 0x12, 0x48, 0x33, 0xF8, 0x50, 0x00, 0x9F, 0xFE, 0x12, 0x40, 0x12, 0x48, 0x12, 0x30, 0x12, 0x90, 0xA3, 0x0E, 0x42, 0x04, 0x00, 0x04, 0x8F, 0xFE, 0x54, 0x44, 0x27, 0xFC, 0x54, 0x44, 0x97, 0xFC, 0x10, 0x00, 0x33, 0xF8, 0x52, 0x08, 0x93, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0xA2, 0x28, 0x42, 0x10, 0x04, 0x04, 0x8B, 0xFE, 0x52, 0x24, 0x22, 0x24, 0x53, 0xFC, 0x8A, 0x00, 0x0A, 0xFC, 0x1A, 0x84, 0x2A, 0xFC, 0x4A, 0x84, 0x8A, 0x84, 0x0A, 0xFC, 0x0A, 0x84, 0x0A, 0x84, 0x54, 0xFC, 0x28, 0x84, 0x04, 0x00, 0x8B, 0xF8, 0x50, 0x90, 0x20, 0x60, 0x57, 0xFC, 0x88, 0xC4, 0x09, 0x48, 0x0A, 0xC0, 0x18, 0x44, 0x2F, 0xFE, 0x48, 0x40, 0x88, 0xE0, 0x09, 0x50, 0x0A, 0x4E, 0x54, 0x44, 0x20, 0x40, 0x04, 0x40, 0x8F, 0xFC, 0x51, 0x10, 0x20, 0xA4, 0x5F, 0xFE, 0x88, 0x00, 0x0B, 0xF8, 0x1A, 0x08, 0x2B, 0xF8, 0x4A, 0x08, 0x8B, 0xF8, 0x08, 0x40, 0x0F, 0xFE, 0x08, 0x40, 0x50, 0x40, 0x20, 0x40, 0x04, 0x40, 0x8F, 0xFC, 0x51, 0x10, 0x20, 0xA4, 0x5F, 0xFE, 0x88, 0x00, 0x0B, 0xFC, 0x1A, 0x04, 0x2B, 0xFC, 0x4A, 0x04, 0x8B, 0xFC, 0x08, 0xA0, 0x08, 0xA0, 0x09, 0x22, 0x52, 0x22, 0x2C, 0x1E, 0x00, 0x04, 0x8F, 0xFE, 0x58, 0x00, 0x2A, 0x28, 0x69, 0x48, 0xAF, 0xEE, 0x28, 0x92, 0x2A, 0xA4, 0x6A, 0xA8, 0xAA, 0xA8, 0x2B, 0xE8, 0x28, 0x88, 0x28, 0x94, 0x29, 0x14, 0xB2, 0x24, 0x44, 0x42, 0x04, 0x40, 0x88, 0x44, 0x57, 0xFE, 0x20, 0x40, 0x52, 0xA8, 0x91, 0x10, 0x13, 0xF8, 0x36, 0x0E, 0x5B, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x10, 0x40, 0x12, 0x50, 0x14, 0x4C, 0xA9, 0x44, 0x40, 0x80, 0x02, 0x04, 0x8A, 0x3E, 0x53, 0x94, 0x24, 0x94, 0x59, 0x14, 0x97, 0xEC, 0x15, 0x40, 0x35, 0x58, 0x57, 0xDE, 0x95, 0x68, 0x15, 0x48, 0x17, 0xFE, 0x15, 0x48, 0x15, 0x48, 0xA8, 0xC8, 0x40, 0x08, 0x00, 0x38, 0x8B, 0xC0, 0x50, 0x44, 0x2F, 0xFE, 0x50, 0x40, 0x97, 0xFC, 0x15, 0x54, 0x34, 0xE4, 0x57, 0xFC, 0x90, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x1F, 0xFE, 0x15, 0x24, 0xA4, 0x92, 0x48, 0x02, 0x01, 0x10, 0x8F, 0xFE, 0x51, 0x10, 0x27, 0xBC, 0x54, 0xA4, 0x97, 0xBC, 0x11, 0x40, 0x32, 0x24, 0x57, 0xFE, 0x9A, 0x20, 0x13, 0xFC, 0x12, 0x20, 0x13, 0xFC, 0x12, 0x20, 0xA3, 0xFE, 0x42, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xFC, 0x22, 0x10, 0x22, 0x90, 0x22, 0x90, 0x54, 0x90, 0x8C, 0x94, 0x08, 0xFE, 0x08, 0x10, 0x10, 0x10, 0x20, 0x10, 0xC0, 0x10, 0x00, 0x10, 0x01, 0x20, 0x7F, 0xA0, 0x49, 0x3C, 0x49, 0x44, 0x7F, 0xA8, 0x49, 0x10, 0x49, 0x20, 0x7F, 0x60, 0x08, 0xBE, 0xFF, 0x22, 0x08, 0x44, 0x1C, 0xA4, 0x2A, 0x18, 0x49, 0x10, 0x88, 0x20, 0x08, 0xC0, 0x20, 0x40, 0x20, 0x40, 0x20, 0xA0, 0x21, 0x10, 0x3A, 0x8E, 0x4C, 0x44, 0x4B, 0xF8, 0x4A, 0x08, 0xAB, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x22, 0x48, 0x22, 0x30, 0x42, 0x90, 0x83, 0x0C, 0x02, 0x04, 0x04, 0x00, 0x0F, 0xF0, 0x32, 0x60, 0x07, 0x80, 0x59, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x01, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x08, 0x20, 0x30, 0x18, 0x02, 0x00, 0x02, 0x00, 0x07, 0xE0, 0x04, 0x40, 0x0A, 0x80, 0x11, 0x00, 0x06, 0xC0, 0x18, 0x30, 0xE0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x28, 0x00, 0x40, 0x00, 0x90, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x12, 0x00, 0x14, 0x00, 0x18, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x23, 0xF8, 0x20, 0x20, 0x3C, 0x40, 0x44, 0x80, 0x89, 0x04, 0x23, 0xFE, 0x20, 0x94, 0x20, 0x94, 0x20, 0x94, 0x21, 0x24, 0x25, 0x24, 0x2A, 0x44, 0x32, 0x44, 0x24, 0xA8, 0x00, 0x10, 0x20, 0x40, 0x20, 0x40, 0x20, 0x44, 0x3F, 0xFE, 0x44, 0x40, 0x8A, 0x48, 0x22, 0x48, 0x22, 0x48, 0x22, 0x48, 0x22, 0x48, 0x23, 0xF8, 0x20, 0x48, 0x28, 0x40, 0x30, 0x42, 0x20, 0x42, 0x00, 0x3E, 0x21, 0x00, 0x21, 0x00, 0x21, 0x04, 0x3D, 0xFE, 0x46, 0x00, 0x89, 0xF8, 0x20, 0x00, 0x23, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0x08, 0x28, 0x08, 0x30, 0x0A, 0x20, 0x0A, 0x00, 0x06, 0x20, 0x08, 0x20, 0x3C, 0x23, 0xC0, 0x3C, 0x40, 0x44, 0x40, 0x88, 0x40, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x24, 0x40, 0x28, 0x40, 0x30, 0x48, 0x27, 0xFC, 0x00, 0x00, 0x20, 0x08, 0x20, 0x3C, 0x23, 0xC0, 0x3C, 0x40, 0x44, 0x40, 0x88, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0xA0, 0x24, 0xA0, 0x29, 0x10, 0x31, 0x08, 0x22, 0x0E, 0x0C, 0x04, 0x20, 0x80, 0x20, 0x84, 0x21, 0xFE, 0x3D, 0x40, 0x46, 0x40, 0x88, 0x44, 0x23, 0xFE, 0x20, 0x44, 0x20, 0x44, 0x20, 0x44, 0x20, 0x44, 0x24, 0x44, 0x28, 0x84, 0x30, 0x84, 0x21, 0x28, 0x06, 0x10, 0x20, 0x40, 0x20, 0x40, 0x20, 0x80, 0x3C, 0x80, 0x45, 0x10, 0x8A, 0x08, 0x27, 0xFC, 0x20, 0x04, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x26, 0x08, 0x2A, 0x08, 0x32, 0x08, 0x23, 0xF8, 0x02, 0x08, 0x20, 0x40, 0x20, 0x40, 0x20, 0x84, 0x3F, 0xFE, 0x46, 0x04, 0x8A, 0x04, 0x22, 0xF4, 0x22, 0x94, 0x22, 0x94, 0x22, 0x94, 0x22, 0x94, 0x26, 0xF4, 0x2A, 0x04, 0x32, 0x04, 0x22, 0x14, 0x02, 0x08, 0x20, 0x40, 0x20, 0x48, 0x23, 0xFC, 0x3C, 0x40, 0x44, 0x40, 0x8B, 0xFC, 0x22, 0x04, 0x24, 0x08, 0x21, 0xF0, 0x20, 0x20, 0x20, 0x44, 0x27, 0xFE, 0x28, 0x40, 0x30, 0x40, 0x21, 0x40, 0x00, 0x80, 0x20, 0x40, 0x20, 0x40, 0x20, 0xA0, 0x3C, 0xA0, 0x45, 0x10, 0x8A, 0x08, 0x25, 0xF6, 0x20, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x20, 0x40, 0x21, 0x50, 0x2A, 0x4C, 0x34, 0x44, 0x21, 0x40, 0x00, 0x80, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x3E, 0x08, 0x47, 0xF8, 0x8A, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x20, 0x22, 0x24, 0x23, 0xA8, 0x26, 0x30, 0x2A, 0x22, 0x32, 0xA2, 0x23, 0x1E, 0x00, 0x00, 0x20, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x3C, 0xE0, 0x45, 0x50, 0x8A, 0x48, 0x24, 0x46, 0x2B, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x2A, 0x08, 0x30, 0x00, 0x27, 0xFC, 0x00, 0x00, 0x20, 0x20, 0x20, 0xA4, 0x21, 0x2E, 0x3D, 0x24, 0x45, 0x24, 0x89, 0xAC, 0x21, 0x24, 0x21, 0x24, 0x21, 0xFC, 0x20, 0x20, 0x23, 0xFC, 0x20, 0x88, 0x28, 0x50, 0x30, 0x20, 0x20, 0xD8, 0x07, 0x06, 0x21, 0x10, 0x21, 0x14, 0x27, 0xFE, 0x39, 0x10, 0x49, 0x10, 0x93, 0xF8, 0x02, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x20, 0x00, 0x27, 0xFE, 0x28, 0xA0, 0x31, 0x10, 0x22, 0x0E, 0x0C, 0x04, 0x21, 0x10, 0x20, 0xA0, 0x27, 0xFC, 0x38, 0x40, 0x4B, 0xFC, 0x90, 0x40, 0x0F, 0xFE, 0x20, 0x88, 0x21, 0xFC, 0x21, 0x48, 0x22, 0x48, 0x2B, 0xF8, 0x34, 0x88, 0x28, 0x88, 0x17, 0xFE, 0x00, 0x00, 0x21, 0x10, 0x21, 0x14, 0x27, 0xFE, 0x39, 0x10, 0x49, 0xF0, 0x90, 0x40, 0x03, 0xF8, 0x22, 0x48, 0x23, 0xF8, 0x20, 0x40, 0x27, 0xFC, 0x20, 0x40, 0x2B, 0xF8, 0x30, 0x40, 0x2F, 0xFE, 0x00, 0x00, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x3F, 0xD0, 0x4A, 0x9E, 0x92, 0xA4, 0x0F, 0xF4, 0x20, 0x14, 0x27, 0xD4, 0x24, 0x54, 0x27, 0xC8, 0x24, 0x48, 0x2F, 0xD4, 0x34, 0x54, 0x25, 0x64, 0x04, 0x82, 0x20, 0x04, 0x27, 0xBE, 0x24, 0xA4, 0x3C, 0xA4, 0x4F, 0xBC, 0x94, 0x20, 0x04, 0xA4, 0x27, 0xBC, 0x21, 0x10, 0x27, 0xFC, 0x21, 0x10, 0x21, 0x14, 0x2F, 0xFE, 0x31, 0x10, 0x22, 0x0C, 0x04, 0x04, 0x20, 0x40, 0x2F, 0xFE, 0x20, 0x40, 0x3B, 0xF8, 0x4A, 0x48, 0x97, 0xFE, 0x05, 0x12, 0x2B, 0xFC, 0x21, 0x10, 0x23, 0xF8, 0x21, 0x10, 0x27, 0xFE, 0x29, 0x48, 0x33, 0x30, 0x2D, 0x8E, 0x01, 0x04, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x00, 0x24, 0x00, 0x24, 0x00, 0x24, 0x08, 0x24, 0x30, 0x24, 0xC0, 0x27, 0x00, 0x24, 0x00, 0x24, 0x00, 0x44, 0x04, 0x44, 0x04, 0x83, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x00, 0x20, 0x10, 0x2F, 0xF8, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x21, 0x40, 0x21, 0x40, 0x21, 0x40, 0x42, 0x40, 0x42, 0x42, 0x84, 0x42, 0x18, 0x3E, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x80, 0x2F, 0xF8, 0x24, 0x10, 0x22, 0x20, 0x21, 0x40, 0x40, 0x80, 0x41, 0x60, 0x86, 0x1E, 0x18, 0x04, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x24, 0x00, 0x24, 0x08, 0x27, 0xFC, 0x28, 0x08, 0x30, 0x48, 0x27, 0xE8, 0x24, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x44, 0x28, 0x44, 0x12, 0x84, 0x02, 0x03, 0xFE, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x00, 0x22, 0x20, 0x24, 0x20, 0x24, 0x24, 0x2F, 0xFE, 0x34, 0x60, 0x24, 0x70, 0x24, 0xA8, 0x24, 0xA8, 0x45, 0x26, 0x46, 0x24, 0x84, 0x20, 0x04, 0x20, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x24, 0x10, 0x22, 0x20, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x90, 0x2F, 0xF8, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x40, 0x80, 0x40, 0x80, 0x80, 0x80, 0x00, 0x80, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x22, 0x20, 0x3F, 0xFC, 0x22, 0x20, 0x23, 0xE0, 0x20, 0x00, 0x27, 0xF0, 0x24, 0x10, 0x27, 0xF0, 0x24, 0x80, 0x44, 0x40, 0x48, 0x30, 0x88, 0x0E, 0x10, 0x04, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x80, 0x2F, 0xFC, 0x21, 0x40, 0x22, 0xA0, 0x24, 0x90, 0x2F, 0xFE, 0x34, 0x94, 0x27, 0xF0, 0x24, 0x90, 0x47, 0xF0, 0x44, 0x92, 0x80, 0x82, 0x00, 0x7E, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x22, 0x80, 0x2C, 0xB8, 0x28, 0x88, 0x28, 0x88, 0x2E, 0xB8, 0x28, 0x88, 0x28, 0x88, 0x2F, 0xF8, 0x29, 0x48, 0x42, 0x20, 0x44, 0x10, 0x88, 0x0E, 0x30, 0x04, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x21, 0x00, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x21, 0x40, 0x22, 0x44, 0x3F, 0xFE, 0x40, 0x40, 0x40, 0x40, 0x80, 0x40, 0x00, 0x40, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x88, 0x3F, 0xFE, 0x21, 0x08, 0x2F, 0xF8, 0x22, 0x20, 0x27, 0xF0, 0x2C, 0x1E, 0x34, 0x94, 0x24, 0x90, 0x41, 0x40, 0x42, 0x30, 0x8C, 0x08, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x22, 0x20, 0x2F, 0xA4, 0x22, 0x3E, 0x2F, 0xA8, 0x22, 0x48, 0x3F, 0xA8, 0x24, 0x28, 0x27, 0xA8, 0x24, 0x90, 0x44, 0x90, 0x4A, 0xA8, 0x91, 0x44, 0x00, 0x82, 0x00, 0x80, 0x3F, 0xFE, 0x24, 0x10, 0x3F, 0xFC, 0x24, 0x10, 0x27, 0xF0, 0x20, 0x80, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x80, 0x4F, 0xF8, 0x40, 0x80, 0xBF, 0xFE, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x80, 0x3F, 0xFE, 0x24, 0x90, 0x4B, 0xE8, 0x40, 0x80, 0xBF, 0xFE, 0x00, 0x80, 0x3F, 0xFE, 0x24, 0x00, 0x27, 0xFC, 0x29, 0x24, 0x2A, 0x24, 0x3F, 0xAC, 0x2A, 0xC8, 0x2F, 0xA8, 0x2A, 0xBE, 0x2F, 0xC8, 0x2A, 0x88, 0x2A, 0xFE, 0x4A, 0x88, 0x51, 0x88, 0x80, 0x08, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x80, 0x3F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x2A, 0x28, 0x2B, 0xE8, 0x2A, 0x28, 0x2F, 0xF8, 0x20, 0x00, 0x27, 0xF0, 0x20, 0x00, 0x5F, 0xFC, 0x42, 0xA0, 0x8C, 0x98, 0x00, 0x80, 0x3F, 0xFE, 0x22, 0x50, 0x24, 0xFC, 0x2D, 0x90, 0x36, 0xFC, 0x24, 0x90, 0x24, 0x9C, 0x27, 0xF0, 0x24, 0x10, 0x27, 0xF0, 0x24, 0x10, 0x27, 0xF0, 0x44, 0x10, 0x44, 0x50, 0x84, 0x20, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x58, 0x00, 0x54, 0x00, 0x50, 0x00, 0x90, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x44, 0x58, 0x44, 0x54, 0x44, 0x50, 0x44, 0x90, 0x44, 0x10, 0x44, 0x10, 0x44, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x11, 0x04, 0x12, 0x28, 0x14, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x14, 0x5B, 0xFE, 0x54, 0x10, 0x50, 0x10, 0x91, 0x10, 0x10, 0x90, 0x10, 0x90, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x10, 0x40, 0x58, 0x40, 0x54, 0x40, 0x50, 0x44, 0x97, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x40, 0x58, 0x40, 0x54, 0x44, 0x5F, 0xFE, 0x90, 0x40, 0x10, 0x60, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x22, 0x11, 0x22, 0x12, 0x1E, 0x14, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x58, 0x40, 0x54, 0x40, 0x50, 0x40, 0x93, 0xF8, 0x12, 0x08, 0x11, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x1C, 0x04, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x00, 0x12, 0x04, 0x5A, 0x84, 0x56, 0x48, 0x52, 0x48, 0x92, 0x30, 0x12, 0x10, 0x12, 0x28, 0x12, 0x48, 0x12, 0x84, 0x13, 0x04, 0x12, 0x00, 0x13, 0xFE, 0x10, 0x00, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x44, 0xB7, 0xFE, 0xAC, 0x44, 0xA4, 0x44, 0xA4, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x59, 0x20, 0x56, 0x20, 0x50, 0x20, 0x90, 0x24, 0x17, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x11, 0x00, 0x11, 0x04, 0x11, 0xFE, 0x12, 0x00, 0x5B, 0xF8, 0x54, 0x00, 0x53, 0xF0, 0x90, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x12, 0x10, 0x0A, 0x10, 0x06, 0x10, 0x02, 0x11, 0x00, 0x11, 0x08, 0x11, 0x10, 0x11, 0x20, 0x59, 0x40, 0x55, 0x80, 0x51, 0x04, 0x9F, 0xFE, 0x11, 0x40, 0x11, 0x40, 0x11, 0x20, 0x11, 0x20, 0x11, 0x10, 0x11, 0x4E, 0x11, 0x84, 0x11, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0x90, 0x59, 0x08, 0x56, 0x0E, 0x54, 0x04, 0x91, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x11, 0x04, 0x11, 0x04, 0x10, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x10, 0x20, 0x10, 0xA0, 0x10, 0x90, 0x59, 0x10, 0x55, 0x08, 0x52, 0x0E, 0x94, 0x44, 0x10, 0x40, 0x10, 0x80, 0x10, 0x80, 0x11, 0x10, 0x12, 0x08, 0x13, 0xFC, 0x10, 0x04, 0x10, 0x00, 0x10, 0x80, 0x10, 0x40, 0x10, 0x04, 0x17, 0xFE, 0x58, 0x40, 0x54, 0x40, 0x50, 0x60, 0x90, 0x50, 0x10, 0x4C, 0x10, 0x44, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x88, 0x58, 0x88, 0x54, 0x88, 0x50, 0x88, 0x93, 0xF8, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x17, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x5F, 0xFE, 0x54, 0x40, 0x50, 0x40, 0x90, 0x48, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x40, 0x10, 0x50, 0x10, 0x48, 0x10, 0x40, 0x5B, 0xFE, 0x54, 0x40, 0x50, 0xC0, 0x90, 0xE0, 0x11, 0x50, 0x11, 0x50, 0x12, 0x48, 0x14, 0x4E, 0x18, 0x44, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x08, 0x17, 0xFC, 0x10, 0x40, 0x12, 0x48, 0x59, 0x48, 0x55, 0x48, 0x51, 0x50, 0x90, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x5A, 0x08, 0x56, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x00, 0x10, 0x04, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x5A, 0x48, 0x56, 0x48, 0x52, 0x48, 0x92, 0x48, 0x12, 0x48, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x14, 0x04, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0x11, 0xFE, 0x5A, 0x80, 0x54, 0x80, 0x50, 0x88, 0x90, 0xFC, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0x5B, 0xFC, 0x56, 0x00, 0x52, 0x80, 0x92, 0x84, 0x12, 0x88, 0x12, 0x90, 0x12, 0xA0, 0x12, 0xC0, 0x14, 0x82, 0x14, 0x82, 0x18, 0x7E, 0x10, 0x00, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA4, 0x17, 0xFE, 0x58, 0xA4, 0x54, 0xA4, 0x57, 0xFC, 0x94, 0xA4, 0x14, 0xA0, 0x17, 0xFE, 0x10, 0xA2, 0x10, 0xA2, 0x11, 0x2A, 0x11, 0x24, 0x12, 0x20, 0x14, 0x20, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x84, 0x58, 0x84, 0x54, 0x84, 0x51, 0x14, 0x92, 0x08, 0x14, 0x00, 0x13, 0xFC, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04, 0x13, 0xFC, 0x12, 0x04, 0x10, 0x00, 0x13, 0xF8, 0x11, 0x10, 0x10, 0xA0, 0x58, 0x40, 0x54, 0xA0, 0x51, 0x50, 0x92, 0x4E, 0x15, 0xF4, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x80, 0x18, 0x80, 0x55, 0x10, 0x52, 0x08, 0x57, 0xFC, 0x90, 0x04, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x20, 0x10, 0x21, 0x10, 0x2F, 0x90, 0x30, 0x14, 0xA8, 0x7E, 0xA0, 0x14, 0xBF, 0xD4, 0xA2, 0x14, 0x22, 0x14, 0x24, 0x14, 0x25, 0x24, 0x28, 0xA4, 0x2F, 0xA4, 0x20, 0x44, 0x20, 0x94, 0x21, 0x08, 0x20, 0x04, 0x27, 0xFE, 0x24, 0x40, 0x24, 0x50, 0xB4, 0x48, 0xAC, 0x40, 0xA7, 0xFE, 0xA4, 0x40, 0x24, 0x40, 0x24, 0x40, 0x24, 0xA0, 0x24, 0xA0, 0x28, 0xA0, 0x29, 0x10, 0x31, 0x0E, 0x26, 0x04, 0x20, 0x44, 0x27, 0xE4, 0x24, 0x44, 0x24, 0x54, 0xB5, 0x54, 0xAD, 0x54, 0xA5, 0x54, 0xA5, 0x54, 0x25, 0x54, 0x25, 0x54, 0x25, 0x54, 0x21, 0x04, 0x22, 0x84, 0x22, 0x44, 0x24, 0x54, 0x28, 0x08, 0x10, 0x40, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x5B, 0xF8, 0x54, 0x00, 0x53, 0xF8, 0x90, 0x08, 0x10, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x00, 0x12, 0x02, 0x12, 0x02, 0x11, 0xFE, 0x10, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x11, 0xFE, 0x5A, 0x04, 0x54, 0x24, 0x53, 0xF4, 0x92, 0x24, 0x12, 0x24, 0x13, 0xE4, 0x12, 0x24, 0x12, 0x24, 0x13, 0xE4, 0x12, 0x04, 0x10, 0x28, 0x10, 0x10, 0x10, 0x80, 0x10, 0x80, 0x11, 0xF8, 0x11, 0x10, 0x5A, 0xA0, 0x54, 0x40, 0x50, 0xA0, 0x91, 0x10, 0x12, 0x0E, 0x14, 0x00, 0x1B, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x20, 0x00, 0x27, 0xFE, 0x24, 0x82, 0x28, 0x84, 0xB7, 0xF8, 0xA9, 0x00, 0xA1, 0x40, 0xA2, 0x48, 0x27, 0xFC, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x58, 0x40, 0x57, 0xFE, 0x54, 0x02, 0x98, 0x04, 0x13, 0xF8, 0x10, 0x10, 0x10, 0x24, 0x17, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x40, 0x58, 0x44, 0x57, 0xFE, 0x54, 0x44, 0x94, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x10, 0xE0, 0x11, 0x50, 0x12, 0x48, 0x14, 0x46, 0x18, 0x44, 0x10, 0x40, 0x21, 0x00, 0x25, 0x00, 0x25, 0xFC, 0x25, 0x04, 0xB5, 0x28, 0xAD, 0x10, 0xA5, 0x28, 0xA5, 0x46, 0x25, 0x80, 0x20, 0x80, 0x20, 0x90, 0x2F, 0xF8, 0x20, 0x80, 0x20, 0x84, 0x3F, 0xFE, 0x20, 0x00, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x14, 0x44, 0x5C, 0x44, 0x57, 0xFC, 0x54, 0x44, 0x94, 0x44, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x14, 0x44, 0x14, 0x44, 0x5C, 0x54, 0x57, 0xFC, 0x54, 0x44, 0x94, 0xC4, 0x14, 0xE4, 0x15, 0x5C, 0x16, 0x4C, 0x14, 0x44, 0x14, 0x44, 0x14, 0x04, 0x17, 0xFC, 0x14, 0x04, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x5B, 0xF8, 0x54, 0x04, 0x57, 0xFE, 0x94, 0x44, 0x14, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x14, 0x00, 0x14, 0x02, 0x14, 0x02, 0x13, 0xFE, 0x10, 0x00, 0x12, 0x08, 0x11, 0x10, 0x10, 0xA0, 0x13, 0xF8, 0x58, 0x48, 0x50, 0x48, 0x57, 0xF8, 0x94, 0x40, 0x14, 0x44, 0x17, 0xFE, 0x10, 0xC4, 0x11, 0x44, 0x12, 0x54, 0x14, 0x48, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x80, 0x11, 0x10, 0x1A, 0x08, 0x57, 0xFC, 0x51, 0x10, 0x52, 0x8C, 0x94, 0x84, 0x11, 0xF8, 0x12, 0x08, 0x15, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0xB0, 0x13, 0x0E, 0x14, 0x04, 0x10, 0x08, 0x17, 0xFC, 0x14, 0x20, 0x14, 0x28, 0x5D, 0xFC, 0x54, 0x20, 0x54, 0xA8, 0x94, 0x20, 0x17, 0xFE, 0x14, 0x20, 0x14, 0x50, 0x14, 0x50, 0x14, 0x88, 0x15, 0x04, 0x17, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x58, 0x44, 0x57, 0xFE, 0x52, 0x08, 0x91, 0x10, 0x10, 0xA0, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA8, 0x17, 0xBC, 0x58, 0xA0, 0x54, 0xA0, 0x50, 0xA0, 0x97, 0xBC, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA4, 0x1F, 0xBE, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0x40, 0x14, 0x44, 0x12, 0x48, 0x11, 0x50, 0x58, 0x44, 0x57, 0xFE, 0x54, 0x04, 0x94, 0x04, 0x15, 0xF4, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0xF4, 0x14, 0x04, 0x14, 0x14, 0x14, 0x08, 0x10, 0x04, 0x17, 0xFE, 0x14, 0x04, 0x15, 0x14, 0x5C, 0xA4, 0x57, 0xFC, 0x54, 0x44, 0x94, 0x54, 0x17, 0xFC, 0x15, 0x04, 0x15, 0x04, 0x15, 0x24, 0x15, 0xF4, 0x14, 0x04, 0x14, 0x14, 0x14, 0x08, 0x10, 0x04, 0x17, 0xFE, 0x14, 0x44, 0x14, 0x44, 0x5D, 0xF4, 0x54, 0x44, 0x54, 0x54, 0x97, 0xFC, 0x14, 0x04, 0x15, 0xF4, 0x15, 0x14, 0x15, 0x14, 0x15, 0xF4, 0x15, 0x04, 0x18, 0x14, 0x10, 0x08, 0x11, 0x00, 0x11, 0x04, 0x11, 0xFE, 0x12, 0xA4, 0x5C, 0xA4, 0x55, 0x24, 0x51, 0x44, 0x92, 0x54, 0x14, 0x88, 0x11, 0x40, 0x11, 0x20, 0x15, 0x24, 0x15, 0x0A, 0x19, 0x0A, 0x10, 0xF8, 0x10, 0x00, 0x10, 0x80, 0x10, 0x48, 0x17, 0xFC, 0x11, 0x10, 0x59, 0x10, 0x55, 0x10, 0x52, 0xA8, 0x94, 0x44, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x20, 0x08, 0x27, 0xFC, 0x24, 0x08, 0x24, 0x08, 0xB7, 0xF8, 0xAC, 0x08, 0xA4, 0x08, 0xA7, 0xF8, 0x20, 0x00, 0x2F, 0xFC, 0x29, 0x24, 0x29, 0x24, 0x29, 0x24, 0x29, 0x24, 0x3F, 0xFE, 0x20, 0x00, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x1A, 0x48, 0x53, 0xF8, 0x50, 0x40, 0x5F, 0xFE, 0x90, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x10, 0xB0, 0x11, 0x08, 0x16, 0x04, 0x10, 0x04, 0x17, 0xBE, 0x14, 0xA4, 0x14, 0xA4, 0x5F, 0xBC, 0x54, 0x00, 0x53, 0xF8, 0x90, 0x00, 0x1F, 0xFE, 0x11, 0x00, 0x13, 0xF8, 0x10, 0x08, 0x10, 0x08, 0x10, 0x88, 0x10, 0x50, 0x10, 0x20, 0x10, 0x04, 0x17, 0xFE, 0x14, 0xA4, 0x14, 0xA4, 0x5F, 0xFC, 0x54, 0x80, 0x50, 0x44, 0x9F, 0xFE, 0x10, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x10, 0x88, 0x11, 0x08, 0x11, 0x08, 0x12, 0x28, 0x14, 0x10, 0x10, 0x40, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x5B, 0xF8, 0x54, 0x00, 0x50, 0x04, 0x97, 0xFE, 0x10, 0x40, 0x10, 0x84, 0x17, 0xFE, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0x0C, 0x10, 0x90, 0x11, 0xD0, 0x17, 0x10, 0x11, 0x10, 0x59, 0x52, 0x55, 0x34, 0x57, 0xD8, 0x91, 0x10, 0x13, 0x10, 0x13, 0x90, 0x15, 0x50, 0x15, 0x28, 0x19, 0x28, 0x11, 0x44, 0x11, 0x82, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0x11, 0xFE, 0x1A, 0x00, 0x55, 0xF8, 0x51, 0x08, 0x51, 0xF8, 0x91, 0x08, 0x11, 0xF8, 0x11, 0x00, 0x11, 0xF8, 0x13, 0x10, 0x14, 0xA0, 0x10, 0x40, 0x11, 0xB0, 0x16, 0x0E, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x18, 0x40, 0x57, 0xF8, 0x50, 0x40, 0x5F, 0xFE, 0x90, 0x80, 0x11, 0x10, 0x13, 0xE0, 0x10, 0x48, 0x17, 0xFC, 0x11, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x10, 0xC0, 0x22, 0x10, 0x21, 0x24, 0x2F, 0xFE, 0x21, 0x20, 0xB7, 0xFC, 0xA9, 0x24, 0xA1, 0x24, 0xBF, 0xFE, 0x21, 0x24, 0x21, 0x24, 0x27, 0xFC, 0x21, 0x20, 0x23, 0x30, 0x25, 0x2E, 0x29, 0x24, 0x21, 0x20, 0x10, 0x20, 0x13, 0xFE, 0x12, 0x20, 0x13, 0xFC, 0x5A, 0x24, 0x57, 0xFE, 0x52, 0x24, 0x93, 0xFC, 0x12, 0x20, 0x13, 0xFC, 0x13, 0x24, 0x13, 0xFC, 0x15, 0x24, 0x15, 0xFC, 0x19, 0x24, 0x11, 0x2C, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0x5A, 0x08, 0x57, 0xF8, 0x50, 0x40, 0x9F, 0xFE, 0x10, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x11, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x10, 0xC0, 0x11, 0x40, 0x11, 0x24, 0x11, 0xFE, 0x1A, 0x20, 0x56, 0x20, 0x5B, 0xFC, 0x52, 0x20, 0x92, 0x20, 0x13, 0xFC, 0x12, 0x20, 0x12, 0x20, 0x13, 0xFE, 0x12, 0x00, 0x12, 0x94, 0x12, 0x4A, 0x14, 0x02, 0x10, 0x40, 0x17, 0xFC, 0x11, 0x10, 0x10, 0xA4, 0x5F, 0xFE, 0x54, 0x00, 0x53, 0xF8, 0x92, 0x48, 0x13, 0xF8, 0x12, 0x48, 0x13, 0xF8, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0x00, 0x11, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x11, 0x10, 0x5B, 0xB8, 0x55, 0x54, 0x51, 0x10, 0x97, 0xFC, 0x10, 0x48, 0x12, 0x40, 0x12, 0x7C, 0x12, 0x40, 0x13, 0x40, 0x12, 0xC0, 0x14, 0x46, 0x18, 0x3C, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0x00, 0x17, 0xFC, 0x5D, 0x14, 0x55, 0xF4, 0x55, 0x14, 0x97, 0xFC, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x00, 0x1F, 0xFE, 0x11, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x10, 0xC0, 0x21, 0x10, 0x2F, 0xFE, 0x21, 0x10, 0x23, 0xF8, 0xB2, 0xA8, 0xAB, 0xF8, 0xA0, 0x00, 0xAF, 0xFE, 0x28, 0x02, 0x33, 0xFC, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x00, 0x10, 0x3F, 0xF8, 0x02, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x80, 0x04, 0x40, 0x08, 0x20, 0x12, 0x10, 0x22, 0x0E, 0xCB, 0x24, 0x0A, 0x90, 0x12, 0x48, 0x22, 0x48, 0x0A, 0x00, 0x04, 0x00, 0x3C, 0x40, 0x27, 0xFC, 0x24, 0x80, 0x29, 0xF8, 0x26, 0x88, 0x24, 0xF8, 0x34, 0x88, 0x28, 0xF8, 0x21, 0x88, 0x26, 0xC0, 0x18, 0x30, 0xE1, 0x0E, 0x09, 0x50, 0x11, 0x28, 0x25, 0x28, 0x02, 0x00, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x24, 0x5F, 0xF4, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x40, 0x24, 0x5F, 0xF4, 0x40, 0x04, 0x40, 0x04, 0x40, 0x44, 0x4F, 0xE4, 0x40, 0x04, 0x40, 0x04, 0x40, 0x24, 0x5F, 0xF4, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x41, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x44, 0x4F, 0xE4, 0x41, 0x04, 0x41, 0x14, 0x5F, 0xFC, 0x41, 0x14, 0x41, 0x54, 0x41, 0x24, 0x41, 0x0C, 0x41, 0x04, 0x20, 0x04, 0x17, 0xFE, 0x42, 0x04, 0x42, 0x04, 0x42, 0x24, 0x5F, 0xF4, 0x42, 0x04, 0x44, 0x84, 0x45, 0x04, 0x49, 0x04, 0x4A, 0x44, 0x52, 0x24, 0x67, 0xE4, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x42, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x40, 0x44, 0x44, 0x44, 0x42, 0x84, 0x41, 0x04, 0x42, 0x84, 0x44, 0x64, 0x48, 0x24, 0x40, 0x04, 0x40, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x42, 0x04, 0x41, 0x24, 0x5F, 0xF4, 0x40, 0x04, 0x47, 0xC4, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54, 0x48, 0x74, 0x50, 0x04, 0x40, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x50, 0x84, 0x48, 0xA4, 0x47, 0xF4, 0x40, 0x84, 0x58, 0x84, 0x49, 0x44, 0x49, 0x34, 0x4A, 0x14, 0x4C, 0x04, 0x53, 0xFC, 0x60, 0x04, 0x40, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x40, 0x44, 0x47, 0xE4, 0x44, 0x44, 0x44, 0x44, 0x47, 0xC4, 0x40, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x40, 0x04, 0x5F, 0xF4, 0x51, 0x14, 0x51, 0x54, 0x5F, 0xF4, 0x51, 0x14, 0x53, 0x94, 0x55, 0x54, 0x59, 0x34, 0x51, 0x14, 0x5F, 0xF4, 0x50, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x42, 0x04, 0x47, 0xC4, 0x48, 0x84, 0x51, 0x24, 0x4F, 0xF4, 0x49, 0x24, 0x4F, 0xE4, 0x49, 0x24, 0x4F, 0xE4, 0x41, 0x04, 0x41, 0x14, 0x40, 0xF4, 0x40, 0x04, 0x40, 0x0C, 0x20, 0x04, 0x17, 0xFE, 0x42, 0x04, 0x41, 0x24, 0x4F, 0xF4, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x4A, 0x14, 0x49, 0x24, 0x48, 0xC4, 0x4A, 0x44, 0x4C, 0x34, 0x48, 0x04, 0x40, 0x0C, 0x20, 0x04, 0x17, 0xFE, 0x40, 0xA4, 0x40, 0x94, 0x7F, 0xFC, 0x40, 0x84, 0x5E, 0x84, 0x52, 0x94, 0x52, 0x54, 0x52, 0x64, 0x5E, 0x44, 0x40, 0x54, 0x7E, 0xB4, 0x41, 0x14, 0x42, 0x04, 0x40, 0x0C, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x40, 0x04, 0x5F, 0xF4, 0x50, 0x14, 0x5F, 0xF4, 0x50, 0x14, 0x5F, 0xF4, 0x40, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x42, 0x24, 0x4C, 0xF4, 0x48, 0x24, 0x4E, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x42, 0x84, 0x42, 0x84, 0x44, 0x94, 0x44, 0x94, 0x48, 0x74, 0x50, 0x04, 0x40, 0x0C, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x24, 0x40, 0xF4, 0x5F, 0x04, 0x49, 0x24, 0x45, 0x44, 0x5F, 0xFC, 0x50, 0x0C, 0x67, 0xD4, 0x44, 0x44, 0x42, 0x84, 0x41, 0x04, 0x46, 0xC4, 0x58, 0x34, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x4F, 0xE4, 0x49, 0x04, 0x4F, 0xF4, 0x48, 0x84, 0x4A, 0x54, 0x4C, 0x34, 0x40, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xF4, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x48, 0x04, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xA4, 0x48, 0xA4, 0x49, 0x14, 0x4E, 0x8C, 0x4A, 0x64, 0x4A, 0x24, 0x52, 0x04, 0x52, 0x84, 0x66, 0x64, 0x40, 0x24, 0x40, 0x0C, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x41, 0x44, 0x7F, 0xFC, 0x41, 0x04, 0x46, 0xC4, 0x58, 0x34, 0x40, 0x0C, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x84, 0x5E, 0xA4, 0x52, 0xCC, 0x4A, 0x94, 0x44, 0x64, 0x4F, 0xE4, 0x71, 0x1C, 0x41, 0x04, 0x5F, 0xF4, 0x41, 0x04, 0x42, 0xC4, 0x44, 0x34, 0x58, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x41, 0x04, 0x4F, 0xE4, 0x41, 0x04, 0x5F, 0xF4, 0x42, 0x04, 0x44, 0x44, 0x4F, 0xE4, 0x40, 0x04, 0x4F, 0xE4, 0x4A, 0xA4, 0x4A, 0xA4, 0x4A, 0xA4, 0x5F, 0xF4, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x41, 0x04, 0x5F, 0xF4, 0x41, 0x04, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x4F, 0xE4, 0x48, 0x24, 0x7F, 0xFC, 0x44, 0x44, 0x48, 0x2C, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x51, 0x44, 0x4A, 0x44, 0x7F, 0xFC, 0x44, 0x94, 0x55, 0x44, 0x55, 0x44, 0x5F, 0x44, 0x54, 0x44, 0x44, 0xA4, 0x48, 0xA4, 0x51, 0x14, 0x40, 0x14, 0x40, 0x08, 0x20, 0x04, 0x17, 0xFE, 0x40, 0x04, 0x5C, 0x44, 0x44, 0x44, 0x7E, 0xFC, 0x53, 0x14, 0x5E, 0x94, 0x52, 0xA4, 0x5E, 0xA4, 0x52, 0x44, 0x7E, 0xA4, 0x43, 0x1C, 0x42, 0x04, 0x42, 0x14, 0x40, 0x08, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x90, 0x00, 0x50, 0x00, 0x50, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x30, 0x00, 0x50, 0x00, 0x90, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x20, 0x00, 0x20, 0x7F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x60, 0x20, 0x00, 0x20, 0x04, 0x40, 0x24, 0x50, 0x24, 0x48, 0x24, 0x40, 0x24, 0x44, 0x3C, 0x7E, 0x07, 0xC0, 0x04, 0x40, 0xFC, 0x48, 0x24, 0x48, 0x24, 0x50, 0x24, 0x20, 0x24, 0x60, 0x44, 0x92, 0x85, 0x0A, 0x04, 0x04, 0x00, 0x00, 0x40, 0x00, 0x30, 0x00, 0x10, 0x00, 0x80, 0x00, 0x48, 0x00, 0x48, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xE0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x01, 0x00, 0x41, 0x00, 0x31, 0x04, 0x11, 0xFE, 0x82, 0x00, 0x4C, 0x00, 0x4B, 0xF0, 0x10, 0x10, 0x10, 0x20, 0x20, 0x40, 0xE0, 0x80, 0x21, 0x00, 0x22, 0x02, 0x22, 0x02, 0x21, 0xFE, 0x20, 0x00, 0x00, 0x00, 0x40, 0x08, 0x33, 0xFC, 0x12, 0x08, 0x82, 0x08, 0x4A, 0x08, 0x4A, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x22, 0x00, 0xE2, 0x00, 0x22, 0x00, 0x22, 0x02, 0x22, 0x02, 0x21, 0xFE, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x37, 0xFC, 0x10, 0x08, 0x82, 0x88, 0x4A, 0x50, 0x49, 0x50, 0x11, 0x10, 0x10, 0xA0, 0x20, 0xA0, 0xE0, 0x40, 0x20, 0xA0, 0x20, 0xA0, 0x21, 0x10, 0x22, 0x0E, 0x2C, 0x04, 0x00, 0x40, 0x40, 0x40, 0x30, 0x48, 0x17, 0xFC, 0x80, 0x40, 0x48, 0x50, 0x4B, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x20, 0x44, 0xEF, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x08, 0x47, 0xFC, 0x30, 0x00, 0x10, 0x00, 0x80, 0x04, 0x4F, 0xFE, 0x49, 0x20, 0x11, 0x20, 0x11, 0x20, 0x21, 0x20, 0xE1, 0x20, 0x22, 0x20, 0x22, 0x22, 0x24, 0x22, 0x28, 0x1E, 0x30, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0x40, 0x10, 0x44, 0x87, 0xFE, 0x48, 0x40, 0x48, 0xE0, 0x11, 0x50, 0x11, 0x50, 0x22, 0x48, 0xE2, 0x48, 0x24, 0x44, 0x28, 0x46, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x04, 0x4F, 0xFE, 0x30, 0x40, 0x10, 0x40, 0x82, 0x44, 0x4A, 0x7E, 0x4A, 0x44, 0x12, 0x44, 0x12, 0x44, 0x23, 0xFC, 0xE0, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x28, 0x20, 0x10, 0x00, 0x40, 0x40, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x80, 0x40, 0x44, 0x44, 0x4C, 0x44, 0x14, 0x44, 0x14, 0x44, 0x27, 0xFC, 0xE0, 0x44, 0x20, 0x40, 0x20, 0x42, 0x20, 0x42, 0x20, 0x3E, 0x20, 0x00, 0x00, 0x00, 0x40, 0x08, 0x33, 0xFC, 0x12, 0x08, 0x82, 0x08, 0x4A, 0x08, 0x4A, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x22, 0x08, 0xE2, 0x08, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x00, 0x00, 0x40, 0x00, 0x30, 0x04, 0x17, 0xFE, 0x84, 0x04, 0x44, 0x04, 0x4C, 0x04, 0x14, 0x04, 0x17, 0xFC, 0x24, 0x04, 0xE4, 0x04, 0x24, 0x04, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x20, 0x00, 0x01, 0x00, 0x40, 0x80, 0x30, 0x80, 0x10, 0x04, 0x8F, 0xFE, 0x40, 0x80, 0x48, 0x80, 0x10, 0xA0, 0x10, 0x90, 0x20, 0x8C, 0xE0, 0x84, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x00, 0x80, 0x40, 0x40, 0x30, 0x44, 0x17, 0xFE, 0x80, 0x08, 0x4A, 0x08, 0x4A, 0x08, 0x11, 0x10, 0x11, 0x10, 0x20, 0xA0, 0xE0, 0x40, 0x20, 0xA0, 0x21, 0x10, 0x22, 0x08, 0x24, 0x0E, 0x28, 0x04, 0x00, 0x80, 0x40, 0x40, 0x30, 0x44, 0x17, 0xFE, 0x80, 0x00, 0x48, 0x10, 0x49, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x21, 0x10, 0xE1, 0x10, 0x21, 0x10, 0x22, 0x12, 0x22, 0x12, 0x24, 0x0E, 0x28, 0x00, 0x00, 0x40, 0x40, 0x40, 0x34, 0x40, 0x13, 0x40, 0x81, 0x44, 0x4F, 0xFE, 0x48, 0x84, 0x10, 0x84, 0x10, 0x84, 0x20, 0xC4, 0xE1, 0x34, 0x21, 0x14, 0x22, 0x04, 0x22, 0x44, 0x24, 0x28, 0x28, 0x10, 0x00, 0x20, 0x4F, 0x20, 0x39, 0x20, 0x1A, 0x20, 0x8A, 0x24, 0x4C, 0xFE, 0x4A, 0x24, 0x19, 0x24, 0x19, 0x24, 0x29, 0x24, 0xED, 0x24, 0x2A, 0x44, 0x28, 0x44, 0x28, 0x84, 0x29, 0x28, 0x2A, 0x10, 0x02, 0x10, 0x42, 0x10, 0x22, 0x10, 0x22, 0x14, 0x9F, 0xFE, 0x42, 0x10, 0x4A, 0x10, 0x12, 0x10, 0x12, 0x10, 0x23, 0xF0, 0xE2, 0x10, 0x22, 0x10, 0x22, 0x10, 0x22, 0x10, 0x23, 0xF0, 0x22, 0x10, 0x00, 0x40, 0x40, 0x50, 0x30, 0x4C, 0x10, 0x44, 0x87, 0xFE, 0x48, 0x40, 0x48, 0xE0, 0x11, 0x50, 0x11, 0x50, 0x22, 0x48, 0xE2, 0x48, 0x24, 0x44, 0x28, 0x46, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x01, 0x00, 0x41, 0x20, 0x31, 0x10, 0x11, 0x04, 0x8F, 0xFE, 0x49, 0x40, 0x49, 0x48, 0x11, 0x48, 0x11, 0x50, 0x22, 0x50, 0xE2, 0x60, 0x22, 0x40, 0x24, 0xC2, 0x25, 0x42, 0x28, 0x3E, 0x30, 0x00, 0x00, 0x40, 0x40, 0x44, 0x30, 0x7E, 0x10, 0x40, 0x80, 0x44, 0x4B, 0xFE, 0x4A, 0x04, 0x12, 0x04, 0x12, 0x04, 0x23, 0xFC, 0xE2, 0x04, 0x22, 0x00, 0x22, 0x00, 0x24, 0x00, 0x24, 0x00, 0x28, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0x48, 0x13, 0xFC, 0x82, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x12, 0x48, 0x12, 0x48, 0x2F, 0xFE, 0xE0, 0x40, 0x20, 0xA0, 0x20, 0xA0, 0x21, 0x10, 0x22, 0x0E, 0x2C, 0x04, 0x00, 0x00, 0x40, 0x00, 0x30, 0x04, 0x1F, 0xFE, 0x89, 0x24, 0x49, 0x24, 0x59, 0x24, 0x19, 0x24, 0x29, 0x24, 0x29, 0x24, 0xCA, 0x1C, 0x4C, 0x04, 0x48, 0x04, 0x4F, 0xFC, 0x48, 0x04, 0x40, 0x00, 0x01, 0x00, 0x41, 0x08, 0x31, 0xFC, 0x12, 0x40, 0x84, 0x40, 0x42, 0x48, 0x4A, 0x7C, 0x13, 0xC8, 0x16, 0x48, 0x22, 0x48, 0xE2, 0x68, 0x22, 0x50, 0x22, 0x42, 0x22, 0x02, 0x21, 0xFE, 0x20, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0xA0, 0x11, 0x10, 0x81, 0x10, 0x4A, 0x88, 0x4C, 0x46, 0x10, 0x40, 0x17, 0xF8, 0x20, 0x08, 0xE0, 0x10, 0x21, 0x20, 0x20, 0xC0, 0x20, 0x40, 0x20, 0x30, 0x20, 0x10, 0x00, 0x80, 0x41, 0x04, 0x36, 0x3E, 0x14, 0xA4, 0x84, 0xA4, 0x44, 0xA4, 0x4C, 0xA4, 0x14, 0xA4, 0x15, 0xA4, 0x26, 0xB4, 0xE0, 0xA8, 0x21, 0x20, 0x21, 0x20, 0x22, 0x20, 0x24, 0x20, 0x28, 0x20, 0x00, 0x08, 0x40, 0x7C, 0x37, 0x80, 0x14, 0x40, 0x84, 0x40, 0x44, 0x40, 0x44, 0x44, 0x17, 0xFE, 0x10, 0x40, 0x20, 0x40, 0xE1, 0x50, 0x22, 0x48, 0x24, 0x46, 0x28, 0x42, 0x21, 0x40, 0x20, 0x80, 0x00, 0x80, 0x40, 0x40, 0x30, 0x44, 0x17, 0xFE, 0x80, 0x80, 0x40, 0x80, 0x49, 0x08, 0x12, 0x18, 0x17, 0xE0, 0x20, 0x40, 0xE0, 0x80, 0x21, 0x00, 0x22, 0x10, 0x24, 0x08, 0x27, 0xFC, 0x20, 0x04, 0x00, 0x40, 0x44, 0x44, 0x33, 0x4C, 0x11, 0x50, 0x80, 0x40, 0x47, 0xFC, 0x48, 0x40, 0x10, 0x40, 0x10, 0x44, 0x2F, 0xFE, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x80, 0x40, 0x40, 0x30, 0x40, 0x17, 0xFC, 0x84, 0x04, 0x48, 0x04, 0x42, 0x10, 0x12, 0x30, 0x12, 0x40, 0x22, 0x80, 0xE3, 0x00, 0x22, 0x00, 0x22, 0x04, 0x22, 0x04, 0x21, 0xFC, 0x20, 0x00, 0x00, 0x00, 0x4F, 0x90, 0x30, 0x90, 0x10, 0x90, 0x80, 0x90, 0x47, 0x90, 0x4C, 0x10, 0x14, 0x20, 0x14, 0x20, 0x27, 0xA0, 0xE0, 0xA0, 0x20, 0xA8, 0x20, 0xA4, 0x21, 0x42, 0x25, 0x7E, 0x22, 0x00, 0x00, 0x08, 0x47, 0xFC, 0x34, 0x08, 0x14, 0x08, 0x84, 0x08, 0x47, 0xF8, 0x4C, 0x40, 0x14, 0x40, 0x14, 0x44, 0x27, 0xFE, 0xE4, 0x40, 0x24, 0x20, 0x24, 0x20, 0x25, 0x12, 0x26, 0x0A, 0x24, 0x04, 0x00, 0x00, 0x40, 0x10, 0x37, 0xF8, 0x10, 0x10, 0x80, 0x20, 0x48, 0xC0, 0x49, 0x18, 0x12, 0x06, 0x14, 0x02, 0x27, 0xFC, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x08, 0x47, 0xFC, 0x30, 0x00, 0x10, 0x08, 0x83, 0xFC, 0x4A, 0x08, 0x4A, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x22, 0x08, 0xE2, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x20, 0x00, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x80, 0x40, 0x84, 0x37, 0xFE, 0x10, 0x80, 0x81, 0x08, 0x49, 0xFC, 0x4B, 0x08, 0x15, 0x08, 0x11, 0xF8, 0x21, 0x08, 0xE1, 0x08, 0x21, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x21, 0x10, 0x00, 0x04, 0x40, 0x44, 0x37, 0xE4, 0x12, 0x04, 0x82, 0x14, 0x43, 0xD4, 0x42, 0x54, 0x14, 0x54, 0x16, 0x54, 0x29, 0x94, 0xE0, 0x94, 0x20, 0x94, 0x21, 0x04, 0x21, 0x04, 0x22, 0x14, 0x24, 0x08, 0x00, 0x40, 0x40, 0x40, 0x30, 0x48, 0x17, 0xFC, 0x80, 0x40, 0x4A, 0x48, 0x49, 0x50, 0x10, 0x44, 0x1F, 0xFE, 0x20, 0x40, 0xE0, 0xA0, 0x20, 0xA0, 0x21, 0x10, 0x21, 0x08, 0x22, 0x0E, 0x2C, 0x04, 0x00, 0x40, 0x40, 0x44, 0x30, 0x7E, 0x10, 0x40, 0x80, 0x48, 0x4B, 0xFC, 0x4A, 0x08, 0x12, 0x48, 0x12, 0x48, 0x22, 0x48, 0xE2, 0x48, 0x22, 0x48, 0x20, 0xA0, 0x20, 0x90, 0x21, 0x0C, 0x26, 0x04, 0x00, 0x04, 0x47, 0xFE, 0x34, 0x44, 0x14, 0x44, 0x84, 0x54, 0x4F, 0xFC, 0x4C, 0x44, 0x14, 0x44, 0x14, 0xA4, 0x24, 0xA4, 0xE4, 0xA4, 0x25, 0x14, 0x26, 0x0C, 0x24, 0x04, 0x27, 0xFC, 0x24, 0x04, 0x00, 0x04, 0x4F, 0xFE, 0x28, 0x04, 0x18, 0x24, 0x89, 0xF4, 0x49, 0x24, 0x49, 0x24, 0x19, 0x24, 0x19, 0x24, 0x29, 0x24, 0xE9, 0xE4, 0x29, 0x24, 0x28, 0x04, 0x28, 0x04, 0x2F, 0xFC, 0x28, 0x04, 0x00, 0x40, 0x42, 0x40, 0x32, 0x48, 0x13, 0xFC, 0x84, 0x40, 0x48, 0x40, 0x48, 0x44, 0x17, 0xFE, 0x10, 0xE0, 0x21, 0x50, 0xE1, 0x50, 0x22, 0x48, 0x24, 0x4E, 0x28, 0x44, 0x20, 0x40, 0x20, 0x40, 0x00, 0x40, 0x40, 0x88, 0x33, 0xFC, 0x12, 0x08, 0x82, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x22, 0x08, 0xE3, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x00, 0x40, 0x40, 0x40, 0x30, 0x80, 0x11, 0x08, 0x87, 0xFC, 0x45, 0x28, 0x4D, 0x28, 0x15, 0x28, 0x15, 0x28, 0x25, 0x28, 0xE5, 0x28, 0x25, 0x28, 0x25, 0x28, 0x25, 0x28, 0x3F, 0xFE, 0x20, 0x00, 0x00, 0x40, 0x40, 0x40, 0x30, 0xA0, 0x11, 0x10, 0x82, 0x08, 0x4C, 0x0E, 0x49, 0xF4, 0x10, 0x00, 0x10, 0x04, 0x2F, 0xFE, 0xE0, 0x40, 0x20, 0x80, 0x21, 0x10, 0x22, 0x08, 0x27, 0xFC, 0x20, 0x04, 0x00, 0xA0, 0x40, 0xA0, 0x30, 0xA0, 0x14, 0xA4, 0x82, 0xAC, 0x4A, 0xB0, 0x48, 0xA0, 0x11, 0xB0, 0x12, 0xAC, 0x24, 0xA4, 0xE0, 0xA0, 0x21, 0x20, 0x21, 0x22, 0x22, 0x22, 0x24, 0x1E, 0x28, 0x00, 0x01, 0x00, 0x41, 0x00, 0x31, 0x04, 0x11, 0xFE, 0x82, 0x04, 0x4C, 0x24, 0x4B, 0xF4, 0x12, 0x24, 0x12, 0x24, 0x23, 0xE4, 0xE2, 0x24, 0x22, 0x24, 0x23, 0xE4, 0x22, 0x04, 0x20, 0x28, 0x20, 0x10, 0x01, 0x00, 0x41, 0x00, 0x31, 0xF8, 0x13, 0x10, 0x84, 0xA0, 0x40, 0x40, 0x49, 0xB0, 0x16, 0x4E, 0x10, 0x40, 0x23, 0xF8, 0xE2, 0x40, 0x22, 0x44, 0x27, 0xFE, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x02, 0x04, 0x41, 0x04, 0x31, 0x14, 0x1F, 0xF4, 0x80, 0x54, 0x44, 0x54, 0x42, 0x94, 0x12, 0x94, 0x11, 0x14, 0x21, 0x14, 0xE2, 0x94, 0x22, 0x94, 0x24, 0x44, 0x28, 0x44, 0x20, 0x14, 0x20, 0x08, 0x00, 0x40, 0x48, 0x40, 0x24, 0x48, 0x24, 0xFC, 0x80, 0xA0, 0x51, 0x20, 0x5C, 0x20, 0x14, 0x24, 0x25, 0xFE, 0x24, 0x20, 0xE4, 0x20, 0x25, 0x20, 0x26, 0x20, 0x24, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x08, 0x47, 0xFC, 0x30, 0x08, 0x10, 0x08, 0x83, 0xF8, 0x48, 0x08, 0x48, 0x08, 0x13, 0xF8, 0x10, 0x14, 0x2F, 0xFE, 0xE2, 0x10, 0x21, 0x10, 0x21, 0x10, 0x20, 0x10, 0x20, 0x50, 0x20, 0x20, 0x04, 0x00, 0x44, 0x00, 0x24, 0x00, 0x24, 0x04, 0x9F, 0xBE, 0x44, 0xA4, 0x44, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x28, 0xA4, 0xE5, 0x24, 0x22, 0x24, 0x25, 0x24, 0x24, 0xBC, 0x28, 0xA4, 0x30, 0x00, 0x00, 0x40, 0x40, 0x44, 0x37, 0xFE, 0x10, 0x40, 0x80, 0x48, 0x4B, 0xFC, 0x4A, 0x48, 0x12, 0x48, 0x12, 0x48, 0x23, 0xF8, 0xE0, 0xE0, 0x21, 0x50, 0x22, 0x4E, 0x2C, 0x44, 0x20, 0x40, 0x20, 0x40, 0x00, 0x08, 0x47, 0xFC, 0x30, 0x80, 0x10, 0x90, 0x87, 0xF8, 0x49, 0x10, 0x49, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x20, 0x00, 0xE3, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x00, 0x40, 0x40, 0x40, 0x30, 0x48, 0x17, 0xFC, 0x80, 0x40, 0x42, 0x48, 0x49, 0x50, 0x10, 0x44, 0x17, 0xFE, 0x20, 0xD0, 0xE1, 0x50, 0x22, 0x48, 0x24, 0x4E, 0x28, 0x44, 0x20, 0x40, 0x20, 0x40, 0x00, 0x04, 0x47, 0xFE, 0x34, 0x44, 0x14, 0x54, 0x87, 0xFC, 0x4C, 0x44, 0x4D, 0xF4, 0x14, 0x44, 0x17, 0xF4, 0x24, 0x54, 0xE4, 0x54, 0x24, 0x74, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x00, 0x08, 0x43, 0xFC, 0x32, 0x08, 0x12, 0x08, 0x82, 0x08, 0x4B, 0xF8, 0x48, 0x40, 0x10, 0x40, 0x12, 0x48, 0x22, 0x7C, 0xE2, 0x40, 0x22, 0x40, 0x23, 0x40, 0x22, 0xC0, 0x24, 0x30, 0x28, 0x0E, 0x00, 0x08, 0x41, 0xFC, 0x31, 0x08, 0x11, 0x08, 0x81, 0xF8, 0x48, 0x00, 0x4B, 0xFC, 0x12, 0x04, 0x12, 0x04, 0x23, 0xFC, 0xE2, 0x04, 0x22, 0x04, 0x23, 0xFC, 0x22, 0x04, 0x22, 0x14, 0x22, 0x08, 0x00, 0x40, 0x40, 0x40, 0x34, 0x44, 0x14, 0x44, 0x87, 0xFC, 0x40, 0x44, 0x48, 0xA0, 0x11, 0x10, 0x12, 0x4E, 0x24, 0x04, 0xEB, 0xF8, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x40, 0x20, 0x80, 0x00, 0x08, 0x40, 0x1C, 0x33, 0xE0, 0x12, 0x00, 0x82, 0x00, 0x43, 0xFC, 0x42, 0x10, 0x12, 0x10, 0x12, 0x10, 0x22, 0x14, 0xEF, 0xFE, 0x20, 0x00, 0x21, 0x20, 0x22, 0x10, 0x24, 0x0C, 0x28, 0x04, 0x02, 0x08, 0x41, 0xB0, 0x30, 0x40, 0x11, 0xB0, 0x82, 0x48, 0x40, 0x80, 0x4F, 0xFE, 0x11, 0x40, 0x12, 0x48, 0x27, 0xFC, 0xEA, 0x48, 0x22, 0x48, 0x22, 0x48, 0x22, 0x58, 0x20, 0x40, 0x00, 0x40, 0x01, 0x00, 0x41, 0x00, 0x31, 0xF8, 0x12, 0x10, 0x84, 0x24, 0x47, 0xFE, 0x4C, 0x44, 0x14, 0x44, 0x14, 0x44, 0x27, 0xFC, 0xE4, 0xA4, 0x20, 0xA0, 0x21, 0x20, 0x21, 0x22, 0x22, 0x22, 0x2C, 0x1E, 0x00, 0x80, 0x44, 0x40, 0x37, 0xFE, 0x14, 0x02, 0x88, 0x24, 0x43, 0xF0, 0x48, 0x00, 0x10, 0x08, 0x17, 0xFC, 0x21, 0x20, 0xE1, 0x20, 0x21, 0x20, 0x21, 0x22, 0x22, 0x22, 0x24, 0x1E, 0x28, 0x00, 0x00, 0x80, 0x40, 0x88, 0x27, 0xF8, 0x10, 0x90, 0x80, 0xA4, 0x4F, 0xFE, 0x48, 0x40, 0x10, 0x88, 0x13, 0xFC, 0x22, 0x08, 0xE6, 0x08, 0x2B, 0xF8, 0x32, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x02, 0x10, 0x42, 0x10, 0x37, 0xFC, 0x12, 0x10, 0x82, 0x10, 0x4B, 0xF0, 0x4A, 0x10, 0x12, 0x10, 0x13, 0xF0, 0x22, 0x10, 0xE2, 0x14, 0x3F, 0xFE, 0x20, 0x00, 0x22, 0x10, 0x24, 0x0C, 0x28, 0x04, 0x02, 0x00, 0x42, 0x0C, 0x32, 0x70, 0x12, 0x40, 0x8F, 0xC0, 0x42, 0x44, 0x56, 0x7E, 0x17, 0x48, 0x2A, 0xC8, 0x2A, 0x48, 0xF2, 0x48, 0x22, 0x48, 0x22, 0x88, 0x22, 0x88, 0x23, 0x08, 0x22, 0x08, 0x02, 0x00, 0x42, 0x10, 0x32, 0x50, 0x12, 0x50, 0x8F, 0xD0, 0x42, 0x48, 0x56, 0x88, 0x17, 0x26, 0x2A, 0xA0, 0x2A, 0x20, 0xF2, 0x40, 0x22, 0x48, 0x22, 0x44, 0x22, 0xFC, 0x22, 0x04, 0x22, 0x00, 0x00, 0x40, 0x40, 0x48, 0x37, 0xFC, 0x10, 0x40, 0x80, 0x40, 0x4F, 0xFE, 0x41, 0x22, 0x10, 0xA4, 0x12, 0x60, 0x21, 0x20, 0xE0, 0xA4, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0x50, 0x21, 0x8C, 0x26, 0x04, 0x00, 0x04, 0x4F, 0xFE, 0x30, 0x80, 0x11, 0x00, 0x86, 0x88, 0x40, 0xD0, 0x55, 0x60, 0x12, 0x60, 0x16, 0xD0, 0x29, 0x50, 0xE2, 0x48, 0x24, 0x4E, 0x28, 0x44, 0x20, 0x40, 0x21, 0x40, 0x20, 0x80, 0x00, 0x04, 0x47, 0xFE, 0x34, 0x44, 0x14, 0x44, 0x87, 0xFC, 0x54, 0x44, 0x54, 0x44, 0x17, 0xFC, 0x10, 0x00, 0x2F, 0xFE, 0xE1, 0x10, 0x21, 0x10, 0x21, 0x10, 0x22, 0x10, 0x24, 0x10, 0x28, 0x10, 0x00, 0x08, 0x43, 0xFC, 0x32, 0x08, 0x12, 0x08, 0x83, 0xF8, 0x48, 0x40, 0x4F, 0xFC, 0x14, 0x44, 0x14, 0x44, 0x27, 0xFC, 0xE4, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x20, 0x40, 0x20, 0x42, 0x20, 0x3E, 0x00, 0x40, 0x40, 0x40, 0x30, 0xA0, 0x11, 0x10, 0x82, 0x0E, 0x4D, 0xF4, 0x48, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x20, 0x40, 0xE2, 0x44, 0x21, 0x48, 0x21, 0x50, 0x20, 0x40, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x04, 0x4F, 0x7E, 0x29, 0x54, 0x29, 0x54, 0x89, 0x54, 0x4F, 0x54, 0x59, 0x54, 0x19, 0x54, 0x29, 0x7C, 0x2F, 0x44, 0xE9, 0x40, 0x29, 0x40, 0x29, 0x42, 0x29, 0x42, 0x2B, 0x3E, 0x10, 0x00, 0x00, 0x80, 0x40, 0x40, 0x37, 0xFE, 0x14, 0x02, 0x88, 0x14, 0x43, 0xF8, 0x48, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x20, 0x40, 0xE1, 0x50, 0x22, 0x48, 0x24, 0x44, 0x28, 0x44, 0x21, 0x40, 0x20, 0x80, 0x00, 0x80, 0x40, 0x40, 0x37, 0xFE, 0x14, 0x42, 0x88, 0x40, 0x47, 0xFC, 0x44, 0x44, 0x14, 0x44, 0x17, 0xFC, 0x24, 0x44, 0xE4, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x80, 0x40, 0x40, 0x37, 0xFE, 0x14, 0x02, 0x88, 0x04, 0x43, 0xF8, 0x4A, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x22, 0x00, 0xE3, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x00, 0x08, 0x43, 0xFC, 0x30, 0x08, 0x10, 0x08, 0x83, 0xF8, 0x48, 0x08, 0x48, 0x08, 0x17, 0xFE, 0x10, 0x40, 0x24, 0x44, 0xE2, 0xE8, 0x21, 0x50, 0x22, 0x48, 0x2C, 0x4E, 0x21, 0x44, 0x20, 0x80, 0x00, 0x44, 0x47, 0xE4, 0x34, 0x44, 0x14, 0x54, 0x87, 0xD4, 0x45, 0x14, 0x4D, 0x54, 0x17, 0xF4, 0x15, 0x54, 0x2D, 0x54, 0xED, 0x54, 0x35, 0x54, 0x25, 0x44, 0x25, 0xC4, 0x21, 0x14, 0x21, 0x08, 0x00, 0x90, 0x42, 0x90, 0x32, 0x94, 0x17, 0xFE, 0x82, 0x90, 0x4A, 0x90, 0x4A, 0xF0, 0x12, 0x00, 0x13, 0xFC, 0x20, 0x40, 0xE7, 0xFC, 0x20, 0xE0, 0x21, 0x50, 0x22, 0x4E, 0x2C, 0x44, 0x20, 0x40, 0x00, 0x04, 0x47, 0xFE, 0x30, 0xA0, 0x10, 0xA4, 0x87, 0xFE, 0x44, 0xA4, 0x4C, 0xA4, 0x14, 0xA4, 0x17, 0xFC, 0x24, 0x44, 0xE0, 0x40, 0x27, 0xFC, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x00, 0x40, 0x04, 0x37, 0xFE, 0x10, 0x80, 0x81, 0x04, 0x4F, 0xFE, 0x49, 0x24, 0x19, 0x24, 0x19, 0xE4, 0x29, 0x24, 0xE9, 0x24, 0x29, 0xE4, 0x29, 0x24, 0x29, 0x24, 0x2F, 0xFC, 0x28, 0x04, 0x00, 0x10, 0x41, 0x90, 0x36, 0x10, 0x12, 0x10, 0x82, 0x92, 0x5F, 0xD4, 0x42, 0x38, 0x16, 0x10, 0x17, 0x10, 0x2A, 0x90, 0xEA, 0x28, 0x32, 0x28, 0x22, 0x48, 0x22, 0x48, 0x22, 0x84, 0x23, 0x02, 0x00, 0x40, 0x41, 0x44, 0x36, 0x5E, 0x14, 0x44, 0x87, 0x5C, 0x44, 0x44, 0x4C, 0x44, 0x17, 0xFC, 0x10, 0x40, 0x27, 0xFC, 0xE2, 0x08, 0x21, 0x10, 0x20, 0xE0, 0x20, 0xA0, 0x23, 0x10, 0x2C, 0x0E, 0x00, 0x80, 0x41, 0x08, 0x33, 0xFC, 0x12, 0x08, 0x83, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x10, 0x00, 0x17, 0xFC, 0x20, 0x40, 0xE0, 0x48, 0x27, 0xFC, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x02, 0x00, 0x42, 0x00, 0x35, 0x04, 0x14, 0xFE, 0x88, 0x44, 0x57, 0x44, 0x42, 0x44, 0x12, 0x28, 0x1F, 0xA8, 0x22, 0x28, 0xE7, 0x10, 0x2A, 0x90, 0x32, 0x28, 0x22, 0x28, 0x2A, 0x44, 0x24, 0x82, 0x00, 0x20, 0x41, 0x20, 0x31, 0x20, 0x12, 0x10, 0x87, 0xFE, 0x49, 0x14, 0x41, 0x10, 0x12, 0x50, 0x14, 0x20, 0x27, 0xF8, 0xE5, 0x28, 0x25, 0x28, 0x25, 0x28, 0x25, 0x28, 0x3F, 0xFE, 0x20, 0x00, 0x04, 0x08, 0x42, 0x10, 0x31, 0x24, 0x1F, 0xFE, 0x80, 0x00, 0x47, 0x88, 0x44, 0xA8, 0x14, 0xA8, 0x17, 0xA8, 0x24, 0xA8, 0xE4, 0xA8, 0x27, 0xA8, 0x24, 0x88, 0x24, 0x88, 0x25, 0xA8, 0x24, 0x90, 0x00, 0x80, 0x40, 0x40, 0x37, 0xFE, 0x14, 0x02, 0x89, 0xF4, 0x40, 0x00, 0x4B, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x23, 0xF8, 0xE2, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x20, 0x00, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x04, 0x47, 0xFE, 0x34, 0x04, 0x14, 0x04, 0x87, 0xFC, 0x4C, 0x00, 0x4D, 0xFC, 0x14, 0x40, 0x14, 0x88, 0x25, 0xFC, 0xE4, 0x20, 0x25, 0xFC, 0x28, 0x20, 0x28, 0x24, 0x33, 0xFE, 0x20, 0x00, 0x00, 0x04, 0x47, 0xFE, 0x34, 0x44, 0x14, 0x44, 0x87, 0xFC, 0x44, 0x00, 0x4D, 0xFC, 0x15, 0x04, 0x15, 0x04, 0x25, 0xFC, 0xE5, 0x04, 0x25, 0x04, 0x25, 0xFC, 0x29, 0x04, 0x29, 0x04, 0x31, 0xFC, 0x02, 0x20, 0x42, 0x20, 0x22, 0x3C, 0x2F, 0x48, 0x82, 0x94, 0x42, 0x7E, 0x4F, 0xD4, 0x12, 0x54, 0x12, 0x54, 0x22, 0x54, 0xEF, 0xFC, 0x22, 0x40, 0x22, 0x42, 0x22, 0x42, 0x22, 0x3E, 0x22, 0x00, 0x00, 0x40, 0x40, 0x44, 0x37, 0xFE, 0x10, 0x40, 0x87, 0xFC, 0x40, 0x80, 0x4F, 0xFE, 0x11, 0x10, 0x12, 0x08, 0x25, 0xFE, 0xE8, 0x44, 0x23, 0xF8, 0x20, 0xE0, 0x21, 0x50, 0x26, 0x4C, 0x20, 0x40, 0x00, 0x40, 0x40, 0x48, 0x37, 0xFC, 0x10, 0x40, 0x80, 0x44, 0x4F, 0xFE, 0x48, 0x80, 0x11, 0x10, 0x13, 0xF8, 0x20, 0x00, 0xE7, 0xFC, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x08, 0x4F, 0xFC, 0x32, 0x10, 0x13, 0xF0, 0x82, 0x10, 0x4B, 0xF0, 0x4A, 0x14, 0x1F, 0xFE, 0x10, 0x10, 0x2F, 0xFC, 0xE8, 0x84, 0x25, 0x28, 0x22, 0x10, 0x25, 0x28, 0x28, 0xC6, 0x30, 0x84, 0x01, 0x10, 0x41, 0x10, 0x3F, 0xFE, 0x11, 0x10, 0x80, 0x48, 0x4F, 0xFE, 0x40, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x2D, 0x14, 0xE1, 0x10, 0x27, 0xFC, 0x21, 0x10, 0x21, 0x10, 0x22, 0x10, 0x24, 0x10, 0x01, 0x10, 0x41, 0x14, 0x3F, 0xFE, 0x11, 0x10, 0x8F, 0xFE, 0x48, 0x02, 0x48, 0x04, 0x17, 0xFC, 0x10, 0x40, 0x20, 0x50, 0xE3, 0xF8, 0x20, 0x40, 0x20, 0x50, 0x20, 0x48, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x50, 0x40, 0x48, 0x37, 0xFE, 0x10, 0x40, 0x87, 0xFC, 0x44, 0x44, 0x4F, 0xFC, 0x14, 0x44, 0x17, 0xFC, 0x24, 0x44, 0xE0, 0x40, 0x2F, 0xFE, 0x21, 0x08, 0x20, 0x88, 0x20, 0x28, 0x20, 0x10, 0x00, 0x04, 0x47, 0xFE, 0x30, 0xA0, 0x10, 0xA4, 0x87, 0xFE, 0x44, 0xA4, 0x44, 0xA4, 0x17, 0xFC, 0x10, 0x40, 0x20, 0x44, 0xEF, 0xFE, 0x20, 0xE0, 0x21, 0x50, 0x22, 0x4E, 0x2C, 0x44, 0x20, 0x40, 0x00, 0x08, 0x47, 0xFC, 0x34, 0x00, 0x15, 0xF8, 0x84, 0x00, 0x47, 0xFC, 0x4D, 0x44, 0x15, 0x28, 0x15, 0x90, 0x29, 0x0E, 0xE0, 0x10, 0x2F, 0xFE, 0x22, 0x10, 0x21, 0x10, 0x20, 0x50, 0x20, 0x20, 0x00, 0x08, 0x47, 0xFC, 0x34, 0x08, 0x17, 0xF8, 0x84, 0x08, 0x4F, 0xF8, 0x48, 0x04, 0x17, 0xBE, 0x10, 0x84, 0x24, 0xA4, 0xE3, 0x9C, 0x22, 0x94, 0x24, 0xA4, 0x20, 0x84, 0x22, 0x94, 0x21, 0x08, 0x00, 0x04, 0x47, 0xFE, 0x34, 0x04, 0x17, 0xFC, 0x84, 0x84, 0x45, 0x8C, 0x4E, 0x54, 0x14, 0xE4, 0x17, 0x44, 0x24, 0xE4, 0xE7, 0x5C, 0x24, 0x4C, 0x25, 0x44, 0x24, 0x84, 0x27, 0xFC, 0x24, 0x04, 0x02, 0x20, 0x42, 0x24, 0x33, 0xBE, 0x15, 0x50, 0x88, 0x88, 0x40, 0x3C, 0x4F, 0xC0, 0x10, 0x90, 0x17, 0xF8, 0x20, 0x80, 0xE0, 0x84, 0x2F, 0xFE, 0x20, 0x80, 0x20, 0x84, 0x20, 0x84, 0x20, 0x7C, 0x00, 0x80, 0x41, 0x08, 0x37, 0xFC, 0x14, 0x08, 0x87, 0xF8, 0x44, 0x08, 0x47, 0xF8, 0x14, 0x08, 0x17, 0xF8, 0x20, 0xA0, 0xE0, 0x94, 0x3F, 0xFE, 0x21, 0x40, 0x21, 0x20, 0x22, 0x10, 0x2C, 0x0E, 0x01, 0x10, 0x42, 0x0C, 0x35, 0x14, 0x10, 0xA0, 0x80, 0x40, 0x49, 0xB0, 0x4E, 0x0E, 0x13, 0xF8, 0x10, 0x40, 0x20, 0x40, 0xE7, 0xFC, 0x22, 0x48, 0x21, 0x50, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x40, 0x40, 0x24, 0x37, 0xFE, 0x14, 0x20, 0x85, 0xFC, 0x44, 0x24, 0x57, 0xFE, 0x14, 0x24, 0x25, 0xFC, 0x24, 0x20, 0xE5, 0xFC, 0x25, 0x04, 0x25, 0x04, 0x29, 0x04, 0x29, 0xFC, 0x31, 0x04, 0x00, 0x80, 0x40, 0x48, 0x37, 0xFC, 0x11, 0x10, 0x80, 0xA0, 0x4F, 0xFE, 0x48, 0x82, 0x10, 0x44, 0x1F, 0xFE, 0x21, 0x10, 0xE1, 0xF8, 0x21, 0x10, 0x21, 0x10, 0x21, 0x10, 0x22, 0x50, 0x24, 0x20, 0x00, 0x00, 0x4F, 0xFE, 0x28, 0x02, 0x10, 0x04, 0x83, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x20, 0x80, 0xE0, 0x44, 0x2F, 0xFE, 0x20, 0x00, 0x21, 0x10, 0x22, 0x0C, 0x24, 0x04, 0x01, 0x10, 0x41, 0x10, 0x37, 0xFC, 0x11, 0x10, 0x81, 0x14, 0x4F, 0xFE, 0x48, 0x40, 0x17, 0xFC, 0x14, 0x44, 0x27, 0xFC, 0xE4, 0x44, 0x27, 0xFC, 0x24, 0x04, 0x21, 0x10, 0x22, 0x0C, 0x24, 0x04, 0x01, 0x10, 0x41, 0x14, 0x2F, 0xFE, 0x11, 0x10, 0x87, 0xFE, 0x44, 0x82, 0x49, 0x14, 0x13, 0xE0, 0x10, 0x80, 0x21, 0x08, 0xE7, 0xFC, 0x20, 0x44, 0x22, 0x50, 0x24, 0x4C, 0x29, 0x44, 0x20, 0x80, 0x01, 0x10, 0x4F, 0xFE, 0x31, 0x10, 0x10, 0x40, 0x87, 0xFC, 0x40, 0x44, 0x4F, 0xFE, 0x10, 0x44, 0x17, 0xFC, 0x20, 0x40, 0xE4, 0x44, 0x25, 0x64, 0x25, 0x54, 0x26, 0x54, 0x28, 0x44, 0x30, 0x44, 0x02, 0x10, 0x42, 0x10, 0x2F, 0xFC, 0x12, 0x10, 0x87, 0x38, 0x4A, 0xD4, 0x52, 0x12, 0x12, 0x90, 0x10, 0x84, 0x2F, 0xFE, 0xE1, 0x10, 0x22, 0x10, 0x21, 0x20, 0x20, 0xC0, 0x23, 0x30, 0x2C, 0x08, 0x01, 0x20, 0x41, 0x24, 0x3F, 0xFE, 0x11, 0x20, 0x8F, 0xFC, 0x49, 0x24, 0x4F, 0xFC, 0x19, 0x24, 0x2F, 0xFC, 0x20, 0x00, 0xE7, 0xF8, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x00, 0x48, 0x40, 0x7C, 0x30, 0x40, 0x17, 0xFE, 0x84, 0x44, 0x45, 0xF0, 0x44, 0x44, 0x14, 0x3C, 0x14, 0x08, 0x25, 0xF0, 0xE5, 0x24, 0x24, 0xA8, 0x2B, 0xFE, 0x28, 0x20, 0x30, 0xA0, 0x20, 0x40, 0x00, 0x04, 0x47, 0xFE, 0x34, 0x44, 0x17, 0xFC, 0x84, 0x44, 0x47, 0xFC, 0x44, 0x84, 0x11, 0x08, 0x17, 0xF0, 0x20, 0x80, 0xE1, 0x08, 0x27, 0xFC, 0x22, 0x50, 0x24, 0x4C, 0x29, 0x44, 0x20, 0x80, 0x00, 0x40, 0x40, 0x44, 0x37, 0xFE, 0x14, 0x44, 0x84, 0x44, 0x47, 0xFC, 0x40, 0x40, 0x17, 0xFC, 0x14, 0x44, 0x24, 0x44, 0xE7, 0xFC, 0x20, 0x40, 0x2A, 0x88, 0x2A, 0x46, 0x32, 0x0A, 0x21, 0xF8, 0x02, 0x10, 0x42, 0x10, 0x35, 0x10, 0x14, 0xA4, 0x88, 0x7E, 0x57, 0xA4, 0x40, 0x24, 0x1A, 0xA4, 0x1A, 0xA8, 0x2A, 0xA8, 0xEA, 0x90, 0x21, 0x10, 0x23, 0xA8, 0x3C, 0x28, 0x28, 0x44, 0x21, 0x82, 0x00, 0x20, 0x48, 0xA0, 0x25, 0x24, 0x12, 0xFC, 0x86, 0x28, 0x4A, 0x30, 0x4B, 0xFE, 0x12, 0x40, 0x16, 0xFC, 0x2B, 0x44, 0xF2, 0x44, 0x22, 0x7C, 0x22, 0x44, 0x22, 0x44, 0x2A, 0x7C, 0x24, 0x44, 0x01, 0x20, 0x49, 0x28, 0x25, 0xFC, 0x12, 0x20, 0x86, 0x50, 0x4A, 0x88, 0x53, 0xFE, 0x12, 0x04, 0x26, 0xF4, 0x2A, 0x94, 0xF2, 0x94, 0x22, 0x94, 0x22, 0xF4, 0x22, 0x04, 0x2A, 0x14, 0x24, 0x08, 0x00, 0x80, 0x40, 0x44, 0x37, 0xFE, 0x14, 0xA0, 0x84, 0xA4, 0x4F, 0xFE, 0x4C, 0xA4, 0x14, 0xA4, 0x17, 0xFC, 0x25, 0x20, 0xE5, 0x24, 0x25, 0xE8, 0x29, 0x30, 0x29, 0x62, 0x31, 0xA2, 0x21, 0x1E, 0x04, 0x20, 0x42, 0x20, 0x32, 0x24, 0x1F, 0xFE, 0x84, 0x80, 0x44, 0x00, 0x4F, 0x7E, 0x15, 0x12, 0x15, 0x14, 0x25, 0x50, 0xE5, 0x5C, 0x29, 0x50, 0x29, 0x50, 0x2D, 0x70, 0x32, 0x98, 0x21, 0x06, 0x00, 0x10, 0x47, 0x90, 0x30, 0x90, 0x11, 0x24, 0x8F, 0xFE, 0x44, 0xA4, 0x4C, 0xA4, 0x17, 0xA4, 0x14, 0xA8, 0x24, 0xA8, 0xE7, 0x90, 0x24, 0x90, 0x24, 0xA8, 0x3F, 0xA8, 0x20, 0xC4, 0x20, 0x82, 0x02, 0x08, 0x42, 0x88, 0x2F, 0xC8, 0x22, 0x08, 0x8F, 0xBE, 0x50, 0x08, 0x1F, 0x88, 0x28, 0xA8, 0x28, 0x98, 0x4F, 0x88, 0xC0, 0x08, 0x48, 0x88, 0x45, 0x08, 0x5F, 0xC8, 0x40, 0x28, 0x40, 0x10, 0x09, 0x00, 0x49, 0x0C, 0x29, 0x70, 0x1F, 0xC0, 0x89, 0x40, 0x49, 0x44, 0x5F, 0x7E, 0x19, 0x48, 0x2F, 0x48, 0x29, 0x48, 0xE9, 0x48, 0x3F, 0xC8, 0x24, 0x48, 0x29, 0x48, 0x30, 0x88, 0x21, 0x08, 0x02, 0x10, 0x42, 0x10, 0x2F, 0xFC, 0x12, 0x10, 0x87, 0x38, 0x4A, 0xD6, 0x42, 0x10, 0x17, 0xF8, 0x14, 0x08, 0x27, 0xF8, 0xE4, 0x08, 0x24, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x24, 0x28, 0x24, 0x10, 0x00, 0x10, 0x41, 0x90, 0x2E, 0x54, 0x12, 0x38, 0x82, 0x10, 0x5F, 0xFC, 0x42, 0x44, 0x16, 0x44, 0x17, 0x7C, 0x2A, 0xC4, 0xEA, 0x44, 0x32, 0x7C, 0x22, 0x44, 0x22, 0x44, 0x22, 0x54, 0x22, 0x48, 0x00, 0x40, 0x47, 0xFC, 0x31, 0x10, 0x10, 0xA4, 0x8F, 0xFE, 0x40, 0x00, 0x47, 0xFC, 0x14, 0x44, 0x17, 0xFC, 0x24, 0x44, 0xE7, 0xFC, 0x20, 0x40, 0x27, 0xFC, 0x20, 0x40, 0x2F, 0xFE, 0x20, 0x00, 0x07, 0xFC, 0x44, 0x04, 0x37, 0xFC, 0x14, 0x00, 0x85, 0xF8, 0x44, 0x10, 0x4F, 0xFE, 0x14, 0x20, 0x14, 0x64, 0x27, 0xDE, 0xE4, 0x84, 0x25, 0x08, 0x2B, 0xFE, 0x29, 0x08, 0x31, 0x08, 0x23, 0x18, 0x04, 0x20, 0x44, 0x20, 0x3F, 0x7C, 0x24, 0x88, 0x84, 0x10, 0x5F, 0x7C, 0x15, 0x44, 0x55, 0x54, 0x5F, 0x54, 0x44, 0x54, 0xCC, 0x54, 0x4E, 0x54, 0x55, 0x54, 0x64, 0x28, 0x44, 0x46, 0x44, 0x82, 0x00, 0x20, 0x40, 0x30, 0x2F, 0x48, 0x29, 0x7E, 0x89, 0xC8, 0x49, 0x48, 0x5F, 0x7E, 0x19, 0x48, 0x29, 0x48, 0x2F, 0x7E, 0xE9, 0x48, 0x29, 0x48, 0x29, 0x48, 0x2F, 0x7E, 0x29, 0x40, 0x20, 0x40, 0x00, 0xA0, 0x40, 0xA4, 0x37, 0xFE, 0x14, 0xA4, 0x87, 0xFC, 0x44, 0xA4, 0x57, 0xFC, 0x10, 0x00, 0x27, 0xFC, 0x20, 0x00, 0xE3, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x21, 0x10, 0x20, 0xA0, 0x2F, 0xFE, 0x00, 0x80, 0x41, 0xF0, 0x32, 0x24, 0x17, 0xFE, 0x84, 0x88, 0x45, 0x24, 0x57, 0xFE, 0x14, 0x00, 0x25, 0xFC, 0x24, 0x00, 0xE5, 0xFC, 0x24, 0x00, 0x29, 0xFC, 0x29, 0x04, 0x31, 0x04, 0x21, 0xFC, 0x00, 0x40, 0x4F, 0xFE, 0x20, 0x00, 0x27, 0xFC, 0x85, 0x14, 0x45, 0xF4, 0x45, 0x14, 0x17, 0xFC, 0x10, 0x00, 0x23, 0xF8, 0xE2, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x20, 0x00, 0x2F, 0xFE, 0x00, 0x40, 0x40, 0x24, 0x37, 0xFE, 0x15, 0x08, 0x87, 0xFC, 0x4C, 0x90, 0x4F, 0xFC, 0x14, 0x94, 0x17, 0xFE, 0x24, 0x94, 0xE7, 0xFC, 0x24, 0x90, 0x29, 0x98, 0x2A, 0x94, 0x34, 0x92, 0x20, 0x90, 0x00, 0x08, 0x47, 0xFC, 0x20, 0x40, 0x2F, 0xFE, 0x88, 0x42, 0x53, 0x58, 0x40, 0x40, 0x13, 0x58, 0x10, 0x40, 0x2F, 0xFE, 0xE0, 0x80, 0x27, 0xFC, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0x0C, 0x02, 0x50, 0x43, 0x54, 0x22, 0xD8, 0x24, 0x50, 0x8F, 0xFE, 0x54, 0x88, 0x44, 0x50, 0x17, 0xFE, 0x14, 0x20, 0x25, 0xFC, 0xE4, 0x20, 0x27, 0xFE, 0x24, 0x20, 0x24, 0x50, 0x24, 0x8E, 0x27, 0x04, 0x00, 0x80, 0x43, 0xF8, 0x32, 0x88, 0x12, 0x48, 0x83, 0xF8, 0x48, 0x00, 0x4F, 0xFC, 0x14, 0x44, 0x17, 0xFC, 0x24, 0x44, 0xE7, 0xFC, 0x20, 0x00, 0x2F, 0xFE, 0x21, 0x10, 0x21, 0x10, 0x22, 0x10, 0x00, 0x40, 0x4F, 0xFE, 0x30, 0x00, 0x13, 0xF8, 0x82, 0x08, 0x4F, 0xFE, 0x48, 0x02, 0x13, 0xFC, 0x10, 0x80, 0x23, 0x48, 0xEC, 0x50, 0x23, 0x60, 0x2C, 0xD0, 0x23, 0x4E, 0x2D, 0x44, 0x20, 0x80, 0x00, 0x00, 0x4F, 0xBC, 0x34, 0xA4, 0x12, 0x94, 0x82, 0x94, 0x44, 0xA4, 0x41, 0x00, 0x11, 0x24, 0x13, 0xFE, 0x26, 0x20, 0xEB, 0xFC, 0x22, 0x20, 0x23, 0xFC, 0x22, 0x20, 0x23, 0xFE, 0x22, 0x00, 0x04, 0x10, 0x44, 0x10, 0x3F, 0xA8, 0x04, 0x28, 0x9F, 0x44, 0x51, 0x82, 0x11, 0xFC, 0x3F, 0x24, 0x51, 0xB4, 0x51, 0x6C, 0xDF, 0x6C, 0x44, 0xB4, 0x7F, 0x24, 0x44, 0x24, 0x44, 0xB4, 0x44, 0x48, 0x02, 0x00, 0x43, 0xBC, 0x32, 0x24, 0x17, 0xA8, 0x84, 0x90, 0x4A, 0xA8, 0x41, 0x46, 0x12, 0xA0, 0x17, 0xBC, 0x20, 0xA0, 0xE7, 0xBC, 0x20, 0xA0, 0x27, 0xBC, 0x20, 0xA0, 0x2F, 0xFE, 0x20, 0x00, 0x00, 0x80, 0x5F, 0xFE, 0x24, 0x00, 0x27, 0xF8, 0x80, 0x00, 0x47, 0xF8, 0x4C, 0x08, 0x17, 0xF8, 0x10, 0x80, 0x2E, 0x9C, 0xEB, 0xF4, 0x2E, 0x9C, 0x2B, 0x54, 0x2F, 0x54, 0x2A, 0x96, 0x37, 0x62, 0x00, 0x80, 0x41, 0x40, 0x22, 0x20, 0x24, 0x10, 0x8B, 0xEE, 0x50, 0x04, 0x4F, 0xFC, 0x19, 0x24, 0x2F, 0xFC, 0x20, 0x00, 0xEF, 0xFC, 0x29, 0x24, 0x29, 0x24, 0x2F, 0xFC, 0x29, 0x24, 0x28, 0x0C, 0x00, 0x40, 0x42, 0x48, 0x2F, 0xFE, 0x21, 0x50, 0x82, 0x48, 0x4F, 0xFE, 0x44, 0x44, 0x17, 0xFC, 0x14, 0x44, 0x27, 0xFC, 0xE1, 0x10, 0x27, 0xFC, 0x21, 0x10, 0x2F, 0xFE, 0x22, 0x08, 0x24, 0x04, 0x40, 0x04, 0x3F, 0x7E, 0x31, 0x10, 0x9F, 0x24, 0x51, 0x7E, 0x5F, 0x44, 0x04, 0x54, 0x3F, 0x54, 0x20, 0x54, 0x5F, 0x54, 0xD1, 0x54, 0x5F, 0x54, 0x44, 0x20, 0x55, 0x28, 0x64, 0x46, 0x4C, 0x82, 0x47, 0xFC, 0x20, 0x40, 0x2F, 0xFE, 0x0A, 0x4A, 0x95, 0x40, 0x4F, 0xBC, 0x45, 0x24, 0x17, 0x24, 0x12, 0x3C, 0x2F, 0xA4, 0xEA, 0xA4, 0x2F, 0xBC, 0x22, 0x24, 0x3F, 0xE4, 0x22, 0x54, 0x22, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0x82, 0x04, 0x02, 0x20, 0x3F, 0xF0, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x04, 0x20, 0x04, 0x20, 0x08, 0x22, 0x10, 0x22, 0x20, 0x1E, 0x40, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x80, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x00, 0x08, 0x10, 0x0F, 0xF8, 0x18, 0x10, 0x28, 0x10, 0x48, 0x10, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x82, 0x04, 0x01, 0x10, 0x09, 0x10, 0x08, 0x20, 0x28, 0x48, 0x28, 0x84, 0x29, 0x04, 0x4A, 0x04, 0x0C, 0x10, 0x18, 0x10, 0x67, 0xF0, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0x82, 0x04, 0xFF, 0xFE, 0x04, 0x10, 0x0F, 0xF8, 0x18, 0x10, 0x2F, 0xF0, 0xC8, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x08, 0x10, 0x08, 0x50, 0x08, 0x20, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x10, 0x00, 0x17, 0xE0, 0x10, 0x08, 0x1F, 0xFC, 0x15, 0x00, 0x25, 0x10, 0x24, 0xA0, 0x24, 0x40, 0x45, 0x30, 0x86, 0x0E, 0x04, 0x04, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x42, 0x02, 0xA9, 0x14, 0x28, 0x28, 0x47, 0xE4, 0x00, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x28, 0x21, 0x10, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x9F, 0xF4, 0x04, 0x40, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x08, 0x20, 0x1F, 0xD0, 0xE4, 0x4E, 0x04, 0x40, 0x07, 0xF8, 0x00, 0x08, 0x3F, 0xE8, 0x00, 0x10, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x9F, 0xF4, 0x04, 0x40, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x08, 0x20, 0x17, 0xD0, 0x21, 0x0E, 0xCF, 0xE4, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0xA5, 0xFC, 0x24, 0x40, 0x25, 0xF8, 0x3C, 0x88, 0x04, 0x88, 0xFF, 0xFE, 0x24, 0x00, 0x25, 0xFC, 0x25, 0x04, 0x25, 0x04, 0x45, 0xFC, 0x05, 0x04, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0xBF, 0xF8, 0x01, 0x00, 0x0A, 0xA0, 0x04, 0x40, 0x1F, 0xF0, 0x30, 0x1E, 0xDF, 0xF4, 0x10, 0x10, 0x1F, 0xF0, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x9F, 0xF4, 0x04, 0x40, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x09, 0x20, 0x1F, 0xF0, 0x22, 0x1E, 0xC4, 0xA4, 0x0C, 0x40, 0x35, 0x20, 0x06, 0x1C, 0x04, 0x08, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0xBF, 0xFC, 0x24, 0x48, 0x3F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x88, 0x0C, 0x50, 0x75, 0x20, 0x06, 0x1C, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x9F, 0xF4, 0x04, 0x40, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x08, 0x20, 0x1F, 0xF0, 0x28, 0x2E, 0xCF, 0xE4, 0x09, 0x00, 0x0D, 0xE0, 0x13, 0x00, 0x20, 0xF8, 0x01, 0x00, 0x7F, 0xFE, 0x44, 0x42, 0x9F, 0xF4, 0x04, 0x40, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x09, 0x20, 0x1F, 0xF0, 0x27, 0x08, 0xC0, 0xE6, 0x0F, 0xE0, 0x08, 0x20, 0x08, 0x20, 0x0F, 0xE0, 0x00, 0x00, 0x40, 0x00, 0x30, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x40, 0x08, 0x37, 0xFC, 0x10, 0x10, 0x02, 0x10, 0x02, 0x14, 0xF7, 0xFE, 0x10, 0x50, 0x10, 0x50, 0x10, 0x90, 0x11, 0x10, 0x12, 0x10, 0x14, 0x50, 0x28, 0x26, 0x47, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x41, 0x08, 0x31, 0xFC, 0x12, 0x40, 0x04, 0x40, 0x00, 0x40, 0xF0, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x28, 0x46, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x40, 0x08, 0x27, 0xFC, 0x24, 0x08, 0x04, 0x08, 0x05, 0xE8, 0xE5, 0x28, 0x25, 0x28, 0x25, 0x28, 0x25, 0xE8, 0x25, 0x28, 0x24, 0x08, 0x24, 0x18, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x41, 0x00, 0x31, 0x08, 0x11, 0xFC, 0x02, 0x80, 0x04, 0x90, 0xF0, 0xF8, 0x10, 0x80, 0x10, 0x90, 0x10, 0xF8, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x28, 0x86, 0x47, 0xFC, 0x00, 0x00, 0x02, 0x00, 0x42, 0x08, 0x33, 0xFC, 0x14, 0x40, 0x08, 0x48, 0x02, 0x7C, 0xF3, 0xC8, 0x16, 0x48, 0x12, 0x68, 0x12, 0x50, 0x12, 0x04, 0x11, 0xFC, 0x10, 0x00, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x41, 0x00, 0x21, 0x08, 0x21, 0xFC, 0x02, 0x08, 0x04, 0x10, 0xF0, 0x40, 0x11, 0x50, 0x11, 0x48, 0x12, 0x44, 0x14, 0x44, 0x11, 0x40, 0x20, 0x80, 0x48, 0x06, 0x87, 0xFC, 0x00, 0x00, 0x04, 0x00, 0x44, 0x04, 0x2F, 0xBE, 0x24, 0xA4, 0x04, 0xA4, 0x04, 0xA4, 0xE4, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x28, 0xA4, 0x32, 0xBC, 0x21, 0x20, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x43, 0xF8, 0x30, 0x10, 0x10, 0x60, 0x01, 0x98, 0x06, 0x04, 0xF0, 0x10, 0x13, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x31, 0x10, 0x12, 0x08, 0x04, 0x04, 0x07, 0xFC, 0xF0, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x40, 0x18, 0x27, 0xE0, 0x24, 0x00, 0x04, 0x08, 0x07, 0xFC, 0xE4, 0x00, 0x24, 0x08, 0x25, 0xFC, 0x29, 0x08, 0x29, 0x08, 0x31, 0xF8, 0x21, 0x08, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x41, 0xF8, 0x31, 0x10, 0x12, 0xA0, 0x04, 0x40, 0x01, 0xB0, 0xF6, 0x4E, 0x10, 0x40, 0x13, 0xF8, 0x12, 0x40, 0x12, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x28, 0x46, 0x47, 0xFC, 0x00, 0x00, 0x00, 0xA0, 0x40, 0x90, 0x2F, 0xFC, 0x20, 0x80, 0x0F, 0xF8, 0x08, 0x88, 0xE8, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x28, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x28, 0x98, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x00, 0x04, 0x4F, 0xFE, 0x30, 0x00, 0x17, 0xBC, 0x04, 0xA4, 0x04, 0xA4, 0xF6, 0xB4, 0x15, 0xAC, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x15, 0xAC, 0x14, 0xA4, 0x28, 0x02, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x40, 0x50, 0x30, 0x48, 0x17, 0xFC, 0x00, 0x40, 0x02, 0x48, 0xF1, 0x50, 0x10, 0x40, 0x11, 0x50, 0x16, 0x4C, 0x10, 0x44, 0x11, 0x40, 0x10, 0x80, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x42, 0x48, 0x31, 0x50, 0x10, 0x40, 0x03, 0xF8, 0x02, 0x08, 0xF2, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x18, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x10, 0x48, 0x90, 0x25, 0x10, 0x22, 0x10, 0x05, 0x52, 0x09, 0x54, 0xE3, 0x58, 0x25, 0x90, 0x29, 0x28, 0x31, 0x28, 0x21, 0x28, 0x25, 0x44, 0x22, 0x82, 0x50, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x00, 0x80, 0x41, 0x10, 0x32, 0x08, 0x17, 0xFC, 0x01, 0x10, 0x02, 0x0C, 0xF5, 0x04, 0x11, 0xF0, 0x11, 0x10, 0x12, 0xA0, 0x14, 0x40, 0x10, 0xA0, 0x13, 0x1C, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x40, 0x48, 0x37, 0xFC, 0x10, 0x40, 0x00, 0x44, 0x0F, 0xFE, 0xF1, 0x10, 0x16, 0x4C, 0x10, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x28, 0x00, 0x47, 0xFE, 0x00, 0x00, 0x00, 0x18, 0x43, 0xE0, 0x30, 0x48, 0x17, 0xFC, 0x00, 0xE0, 0x01, 0x50, 0xF6, 0x4E, 0x10, 0x84, 0x1F, 0xFE, 0x11, 0x10, 0x13, 0x10, 0x10, 0xE0, 0x11, 0x10, 0x2A, 0x08, 0x47, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x2F, 0xFE, 0x28, 0x02, 0x13, 0xF4, 0x02, 0x10, 0xE2, 0x10, 0x23, 0xF0, 0x22, 0x00, 0x23, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x52, 0x06, 0x8F, 0xFC, 0x00, 0x00, 0x00, 0x08, 0x47, 0xFC, 0x20, 0x08, 0x13, 0xF8, 0x00, 0x08, 0x0F, 0xFE, 0xF0, 0x40, 0x12, 0x44, 0x11, 0x68, 0x11, 0x50, 0x12, 0x48, 0x14, 0x44, 0x11, 0x40, 0x28, 0x86, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x42, 0x48, 0x32, 0x48, 0x12, 0x48, 0x03, 0xF8, 0x00, 0x00, 0xF7, 0xFE, 0x10, 0x80, 0x17, 0xFC, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xAC, 0x28, 0x02, 0x47, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x40, 0x88, 0x33, 0xFC, 0x12, 0x08, 0x03, 0xF8, 0x02, 0x08, 0xF3, 0xF8, 0x10, 0x00, 0x17, 0xFC, 0x10, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x17, 0xFC, 0x28, 0x00, 0x47, 0xFE, 0x00, 0x00, 0x01, 0x10, 0x40, 0xA4, 0x37, 0xFE, 0x10, 0xA0, 0x07, 0xFC, 0x04, 0xA4, 0xF4, 0xA4, 0x14, 0xA4, 0x15, 0x1C, 0x16, 0x04, 0x15, 0xF4, 0x14, 0x04, 0x17, 0xFC, 0x28, 0x00, 0x47, 0xFE, 0x00, 0x00, 0x00, 0x04, 0x47, 0xBE, 0x34, 0x84, 0x14, 0x84, 0x07, 0xBC, 0x04, 0x04, 0xF4, 0x00, 0x17, 0x7C, 0x14, 0x44, 0x14, 0x44, 0x17, 0xA8, 0x14, 0x10, 0x14, 0x28, 0x28, 0x44, 0x47, 0xFE, 0x00, 0x00, 0x02, 0x10, 0x42, 0x10, 0x2F, 0x94, 0x22, 0x3E, 0x0F, 0xA4, 0x02, 0x44, 0xFF, 0xE4, 0x24, 0x14, 0x27, 0x94, 0x24, 0x88, 0x24, 0x94, 0x28, 0x94, 0x29, 0xA2, 0x50, 0x42, 0x8F, 0xFE, 0x00, 0x00, 0x01, 0x10, 0x47, 0xFC, 0x31, 0x10, 0x17, 0xFC, 0x01, 0x10, 0x0F, 0xFE, 0xF0, 0x40, 0x13, 0xF8, 0x12, 0x48, 0x13, 0xF8, 0x12, 0x48, 0x1F, 0xFE, 0x12, 0x08, 0x2A, 0x18, 0x47, 0xFE, 0x00, 0x00, 0x03, 0xF8, 0x42, 0x08, 0x33, 0xF8, 0x12, 0x08, 0x03, 0xF8, 0x00, 0x00, 0xF7, 0xBC, 0x10, 0x84, 0x14, 0xA4, 0x12, 0x94, 0x12, 0x94, 0x14, 0xA4, 0x11, 0x8C, 0x28, 0x86, 0x47, 0xFC, 0x00, 0x00, 0x01, 0x04, 0x46, 0xFE, 0x34, 0x24, 0x15, 0x24, 0x06, 0x54, 0x04, 0x88, 0xF3, 0xF8, 0x12, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x12, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x28, 0x06, 0x47, 0xFC, 0x00, 0x00, 0x07, 0xF8, 0x44, 0x08, 0x27, 0xF8, 0x24, 0x08, 0x07, 0xF8, 0x02, 0x40, 0xE7, 0xFC, 0x2C, 0x40, 0x37, 0xF8, 0x24, 0x40, 0x27, 0xF8, 0x24, 0x40, 0x27, 0xFC, 0x54, 0x00, 0x8F, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x42, 0x48, 0x31, 0x50, 0x17, 0xFC, 0x00, 0xE0, 0x01, 0x50, 0xF6, 0x4C, 0x12, 0x08, 0x13, 0xFE, 0x14, 0xA8, 0x1A, 0xA8, 0x11, 0x3E, 0x12, 0x08, 0x2C, 0x08, 0x47, 0xFE, 0x00, 0x00, 0x00, 0x48, 0x40, 0x7C, 0x20, 0x40, 0x27, 0xFC, 0x04, 0x84, 0x07, 0xF0, 0xE4, 0x84, 0x25, 0x78, 0x26, 0xA0, 0x25, 0x30, 0x2A, 0x68, 0x28, 0xA4, 0x33, 0x24, 0x50, 0x60, 0x8F, 0xFE, 0x00, 0x00, 0x04, 0x04, 0x47, 0xFE, 0x29, 0x24, 0x32, 0x24, 0x0F, 0xAC, 0x0A, 0xC4, 0xEA, 0xA8, 0x2F, 0xBE, 0x2A, 0xC8, 0x2A, 0x88, 0x2F, 0xFE, 0x2A, 0x88, 0x2A, 0x88, 0x51, 0x88, 0x8F, 0xFE, 0x00, 0x00, 0x00, 0x90, 0x43, 0x24, 0x3C, 0xFE, 0x2A, 0xC4, 0x05, 0x44, 0x06, 0x7C, 0xEB, 0x44, 0x25, 0x44, 0x39, 0x7C, 0x23, 0x28, 0x25, 0x28, 0x39, 0x2A, 0x25, 0x4E, 0x52, 0x80, 0x8F, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x2F, 0xFE, 0x29, 0x12, 0x12, 0x0C, 0x01, 0x10, 0xEF, 0xFC, 0x21, 0x88, 0x2E, 0x50, 0x21, 0xE0, 0x2E, 0x50, 0x21, 0xCE, 0x2E, 0x40, 0x50, 0xC6, 0x8F, 0xFC, 0x00, 0x00, 0x02, 0x48, 0x44, 0x90, 0x22, 0x48, 0x2F, 0xFC, 0x09, 0x24, 0x08, 0xC4, 0xE9, 0x24, 0x2F, 0xFC, 0x24, 0x90, 0x26, 0xD0, 0x24, 0x90, 0x26, 0xD4, 0x24, 0x94, 0x56, 0xDC, 0x88, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x3F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x7F, 0xF8, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x14, 0x14, 0xFE, 0xFE, 0x10, 0x10, 0x7C, 0x7C, 0x10, 0x10, 0xFE, 0xFE, 0x10, 0x10, 0x7F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x3F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x7F, 0xF8, 0x00, 0x08, 0x04, 0x00, 0x07, 0xF0, 0x08, 0x10, 0x1F, 0xE0, 0x00, 0x44, 0xFF, 0xFE, 0x02, 0x08, 0x05, 0x10, 0x19, 0xA0, 0x62, 0xC0, 0x04, 0xA0, 0x19, 0x90, 0x62, 0x8E, 0x0C, 0x84, 0x72, 0x80, 0x01, 0x00, 0x04, 0x00, 0x07, 0xF0, 0x08, 0x20, 0x1F, 0xE0, 0x00, 0x44, 0xFF, 0xFE, 0x02, 0x00, 0x22, 0x20, 0x27, 0xE4, 0x39, 0x28, 0x21, 0x30, 0x2F, 0xE0, 0x29, 0x22, 0x32, 0xA2, 0x24, 0x5E, 0x08, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x22, 0x08, 0x22, 0x00, 0x22, 0x20, 0x3F, 0xF0, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x44, 0x22, 0x44, 0x22, 0x88, 0x1E, 0x10, 0x00, 0x02, 0x04, 0x3F, 0x7E, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x3E, 0x7C, 0x28, 0x00, 0x28, 0x28, 0x24, 0x24, 0x24, 0x46, 0x22, 0x82, 0x41, 0x80, 0x40, 0x60, 0x80, 0x1E, 0x00, 0x04, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x04, 0x3F, 0xFC, 0x22, 0x20, 0x24, 0x28, 0x29, 0xFC, 0x32, 0x20, 0x24, 0x20, 0x2D, 0xF8, 0x34, 0x88, 0x24, 0x50, 0x44, 0x20, 0x44, 0x50, 0x84, 0x8E, 0x05, 0x04, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x04, 0x3F, 0xFC, 0x20, 0x00, 0x2F, 0xFE, 0x2A, 0x08, 0x2A, 0xE8, 0x2C, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, 0x2E, 0xA8, 0x4A, 0xE8, 0x48, 0x08, 0x88, 0x28, 0x08, 0x10, 0x3F, 0xFC, 0x20, 0x04, 0x3F, 0xFC, 0x20, 0x00, 0x27, 0xE0, 0x20, 0x48, 0x2F, 0xFC, 0x20, 0x80, 0x21, 0x80, 0x3F, 0x7C, 0x22, 0x08, 0x24, 0x10, 0x5F, 0x7E, 0x44, 0x10, 0x84, 0x10, 0x0C, 0x30, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x04, 0x3F, 0xFC, 0x22, 0x20, 0x24, 0xBC, 0x28, 0xA0, 0x32, 0xA8, 0x25, 0xFC, 0x2C, 0x20, 0x34, 0xA8, 0x24, 0xBC, 0x44, 0xA0, 0x45, 0x60, 0x86, 0x3E, 0x04, 0x00, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x04, 0x3F, 0xFC, 0x22, 0x20, 0x24, 0xA8, 0x28, 0x20, 0x33, 0xFC, 0x24, 0xA8, 0x2D, 0x24, 0x34, 0x40, 0x27, 0xFE, 0x44, 0x88, 0x44, 0x70, 0x84, 0x48, 0x05, 0x84, 0x3F, 0xFC, 0x20, 0x04, 0x3F, 0xFC, 0x22, 0x20, 0x2F, 0xF8, 0x20, 0x80, 0x27, 0xF0, 0x20, 0x80, 0x3F, 0xFC, 0x2A, 0xA8, 0x3F, 0x7C, 0x24, 0x10, 0x5F, 0x7C, 0x44, 0x10, 0xBF, 0xFE, 0x04, 0x10, 0x00, 0x08, 0x7D, 0xFC, 0x04, 0x08, 0x04, 0x30, 0x04, 0x58, 0x7C, 0x86, 0x43, 0x02, 0x40, 0x08, 0x41, 0xFC, 0x7C, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x24, 0x2B, 0xFE, 0x10, 0x00, 0x08, 0x00, 0x7E, 0xFC, 0x12, 0x44, 0x22, 0x48, 0x1C, 0x30, 0x14, 0x48, 0x62, 0x86, 0x3F, 0xF0, 0x00, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x1F, 0xF8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x50, 0x00, 0x20, 0x00, 0x04, 0x7F, 0xFE, 0x05, 0x08, 0x05, 0x08, 0x05, 0xF8, 0x7D, 0x08, 0x41, 0x08, 0x41, 0xF8, 0x41, 0x08, 0x7D, 0x08, 0x07, 0xFE, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x28, 0x08, 0x10, 0x08, 0x14, 0x20, 0x14, 0x20, 0x7F, 0x3C, 0x15, 0x48, 0x15, 0x90, 0x7F, 0x7C, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x7F, 0x7C, 0x15, 0x44, 0x15, 0x40, 0x15, 0x42, 0x27, 0x42, 0x24, 0x3E, 0x44, 0x00, 0x00, 0x04, 0xF0, 0xBE, 0x1F, 0xC4, 0x12, 0x04, 0x12, 0x04, 0x77, 0xBC, 0x44, 0xA0, 0x44, 0xA0, 0x44, 0xA4, 0x77, 0xBE, 0x14, 0x84, 0x14, 0x84, 0x14, 0x84, 0x17, 0x84, 0xA4, 0xA8, 0x40, 0x10, 0x79, 0x3C, 0x0D, 0x44, 0x79, 0x3C, 0x47, 0xE0, 0x79, 0x3C, 0x0D, 0x44, 0x31, 0x18, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xE0, 0x08, 0x20, 0x3F, 0xF8, 0x24, 0x48, 0x2F, 0xE8, 0x21, 0x08, 0x21, 0x18, 0x01, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0xFD, 0x04, 0x26, 0x04, 0x24, 0x04, 0x24, 0x84, 0x24, 0x44, 0x44, 0x44, 0x28, 0x04, 0x10, 0x04, 0x28, 0x04, 0x44, 0x44, 0x84, 0x28, 0x00, 0x10, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x10, 0x08, 0xFC, 0x08, 0x24, 0x08, 0x25, 0xF8, 0x25, 0x08, 0x25, 0x00, 0x45, 0x00, 0x29, 0x00, 0x11, 0x00, 0x29, 0x02, 0x45, 0x02, 0x84, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x88, 0x10, 0x88, 0xFC, 0x88, 0x24, 0x88, 0x24, 0x88, 0x27, 0xFE, 0x24, 0x88, 0x44, 0x88, 0x28, 0x88, 0x10, 0x88, 0x28, 0x88, 0x44, 0x88, 0x81, 0x08, 0x02, 0x08, 0x10, 0x08, 0x11, 0xFC, 0x10, 0x40, 0x10, 0x40, 0xFC, 0x40, 0x24, 0x44, 0x27, 0xFE, 0x24, 0x50, 0x24, 0x50, 0x44, 0x50, 0x28, 0x90, 0x10, 0x90, 0x28, 0x92, 0x45, 0x12, 0x82, 0x0E, 0x04, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x00, 0x11, 0x04, 0xFD, 0x84, 0x25, 0x48, 0x25, 0x28, 0x25, 0x10, 0x25, 0x10, 0x45, 0x28, 0x29, 0x44, 0x11, 0x84, 0x29, 0x00, 0x45, 0x04, 0x85, 0xFE, 0x00, 0x00, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x24, 0xFD, 0x2C, 0x25, 0xF0, 0x25, 0x20, 0x25, 0x20, 0x25, 0x20, 0x45, 0x20, 0x29, 0x20, 0x11, 0x20, 0x29, 0x62, 0x45, 0xA2, 0x85, 0x1E, 0x00, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0xFD, 0x10, 0x25, 0x0E, 0x26, 0x44, 0x24, 0x20, 0x24, 0x00, 0x45, 0xF8, 0x28, 0x08, 0x10, 0x10, 0x28, 0x10, 0x44, 0x20, 0x84, 0x40, 0x00, 0x80, 0x10, 0x20, 0x10, 0x28, 0x10, 0x3C, 0x11, 0xE0, 0xFD, 0x20, 0x25, 0x20, 0x25, 0x20, 0x25, 0xFE, 0x24, 0x22, 0x44, 0x62, 0x28, 0x6A, 0x10, 0xA4, 0x29, 0x20, 0x46, 0x20, 0x80, 0x20, 0x00, 0x20, 0x10, 0x40, 0x12, 0x40, 0x11, 0x40, 0x11, 0x40, 0xFC, 0x44, 0x27, 0xFE, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x44, 0x44, 0x28, 0xA4, 0x10, 0x94, 0x29, 0x04, 0x45, 0x04, 0x82, 0x28, 0x04, 0x10, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x88, 0x10, 0x88, 0xFC, 0x88, 0x24, 0x88, 0x24, 0x88, 0x25, 0xF8, 0x24, 0x88, 0x44, 0x88, 0x28, 0x88, 0x10, 0x88, 0x28, 0x88, 0x44, 0x88, 0x87, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x11, 0xF8, 0x10, 0x08, 0x10, 0x50, 0xFC, 0x20, 0x24, 0x20, 0x27, 0xFE, 0x24, 0x22, 0x24, 0x24, 0x44, 0x20, 0x28, 0x20, 0x10, 0x20, 0x28, 0x20, 0x44, 0x20, 0x84, 0xA0, 0x00, 0x40, 0x10, 0x00, 0x10, 0x08, 0x11, 0x48, 0x11, 0x28, 0xFD, 0x28, 0x25, 0x28, 0x25, 0x08, 0x25, 0x08, 0x25, 0x08, 0x45, 0x08, 0x29, 0x48, 0x11, 0x90, 0x29, 0x10, 0x44, 0x28, 0x84, 0x46, 0x00, 0x82, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFD, 0x08, 0x25, 0x08, 0x25, 0xF8, 0x25, 0x08, 0x25, 0x08, 0x45, 0x08, 0x29, 0x08, 0x11, 0xF8, 0x28, 0x00, 0x44, 0x04, 0x87, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0xFD, 0xFE, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x45, 0xFC, 0x29, 0x24, 0x11, 0x24, 0x29, 0x24, 0x45, 0x24, 0x85, 0xFC, 0x01, 0x04, 0x10, 0x04, 0x11, 0xDE, 0x11, 0x54, 0x11, 0x54, 0xFD, 0x54, 0x25, 0x54, 0x25, 0x54, 0x27, 0xFE, 0x25, 0x54, 0x45, 0x54, 0x29, 0x54, 0x11, 0x54, 0x29, 0x54, 0x45, 0x54, 0x82, 0xEC, 0x04, 0x44, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x06, 0x40, 0x01, 0x80, 0x06, 0x60, 0x38, 0x18, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x90, 0xFC, 0x90, 0x24, 0x90, 0x24, 0x92, 0x26, 0x94, 0x25, 0x98, 0x44, 0x90, 0x28, 0x90, 0x10, 0x90, 0x28, 0x90, 0x44, 0x94, 0x87, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x5C, 0x13, 0xE0, 0xFC, 0x48, 0x24, 0x52, 0x24, 0x62, 0x27, 0x9E, 0x24, 0x00, 0x47, 0xF8, 0x28, 0x90, 0x10, 0x90, 0x28, 0x90, 0x44, 0x92, 0x81, 0x12, 0x06, 0x0E, 0x10, 0x20, 0x11, 0x20, 0x11, 0x28, 0x11, 0xFC, 0xFD, 0x20, 0x26, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x44, 0x70, 0x28, 0xA8, 0x10, 0xA8, 0x29, 0x24, 0x46, 0x22, 0x84, 0x20, 0x00, 0x20, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x14, 0x50, 0x24, 0x4C, 0x44, 0x44, 0x05, 0x40, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x06, 0x40, 0x01, 0x80, 0x06, 0x60, 0x38, 0x18, 0x10, 0x40, 0x10, 0x20, 0x10, 0x04, 0x13, 0xFE, 0xFC, 0x00, 0x24, 0x88, 0x25, 0x06, 0x26, 0x8A, 0x24, 0x88, 0x44, 0x50, 0x28, 0x50, 0x10, 0x20, 0x28, 0x50, 0x44, 0x88, 0x81, 0x0E, 0x06, 0x04, 0x11, 0x04, 0x10, 0x88, 0x10, 0x00, 0x13, 0xFE, 0xFC, 0x88, 0x24, 0x88, 0x24, 0x88, 0x24, 0x88, 0x27, 0xFE, 0x44, 0x88, 0x28, 0x88, 0x10, 0x88, 0x28, 0x88, 0x44, 0x88, 0x81, 0x08, 0x02, 0x08, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFE, 0x12, 0x02, 0xFC, 0x04, 0x24, 0x38, 0x25, 0xC0, 0x24, 0x40, 0x24, 0x44, 0x47, 0xFE, 0x28, 0x40, 0x10, 0x40, 0x28, 0x42, 0x44, 0x42, 0x84, 0x3E, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0xFD, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x44, 0x20, 0x28, 0x28, 0x11, 0xFC, 0x28, 0x20, 0x44, 0x24, 0x87, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x10, 0x24, 0x11, 0xFE, 0x11, 0x24, 0xFD, 0xFC, 0x25, 0x24, 0x25, 0xFC, 0x24, 0x00, 0x27, 0xFE, 0x44, 0x80, 0x28, 0xFC, 0x10, 0x04, 0x28, 0x04, 0x44, 0x44, 0x84, 0x28, 0x00, 0x10, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0xFD, 0x04, 0x25, 0xFC, 0x25, 0x24, 0x24, 0x20, 0x27, 0xFE, 0x4A, 0x22, 0x2A, 0x22, 0x12, 0x52, 0x2A, 0x8A, 0x46, 0x02, 0x82, 0x0A, 0x02, 0x04, 0x11, 0x04, 0x10, 0xBE, 0x10, 0x84, 0x11, 0x24, 0xFD, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x25, 0x74, 0x45, 0x6C, 0x29, 0xAC, 0x11, 0x24, 0x29, 0x24, 0x45, 0x04, 0x85, 0x14, 0x01, 0x08, 0x10, 0x40, 0x08, 0x40, 0x41, 0x50, 0x25, 0x4C, 0x09, 0x44, 0x72, 0x50, 0x10, 0xE0, 0x17, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x06, 0x40, 0x01, 0x80, 0x06, 0x60, 0x38, 0x18, 0x10, 0x88, 0x10, 0x48, 0x10, 0x10, 0x11, 0xFC, 0xFC, 0x24, 0x24, 0x24, 0x25, 0xFC, 0x25, 0x20, 0x25, 0x20, 0x45, 0xFE, 0x28, 0x62, 0x10, 0x62, 0x28, 0xAA, 0x45, 0x24, 0x82, 0x20, 0x00, 0x20, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0xFD, 0xFC, 0x25, 0x00, 0x25, 0x0C, 0x25, 0xF0, 0x25, 0x20, 0x45, 0xFC, 0x29, 0x20, 0x11, 0xFE, 0x29, 0x20, 0x45, 0x22, 0x82, 0x22, 0x04, 0x1E, 0x20, 0x00, 0x27, 0x84, 0x24, 0xFE, 0x25, 0x04, 0xF5, 0x04, 0x56, 0x74, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x95, 0x54, 0x55, 0x54, 0x27, 0x74, 0x25, 0x04, 0x54, 0x04, 0x94, 0x14, 0x04, 0x08, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x20, 0xFD, 0xFC, 0x24, 0x20, 0x27, 0xFE, 0x24, 0x00, 0x25, 0xFC, 0x45, 0x04, 0x29, 0xFC, 0x11, 0x04, 0x29, 0xFC, 0x45, 0x04, 0x85, 0x14, 0x01, 0x08, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x20, 0xFC, 0x20, 0x25, 0xFC, 0x24, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x44, 0x40, 0x28, 0xA4, 0x11, 0xA8, 0x2A, 0x90, 0x44, 0x88, 0x80, 0xC6, 0x00, 0x80, 0x20, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x20, 0x40, 0xFB, 0xF8, 0x48, 0x48, 0x4F, 0xFE, 0x48, 0x48, 0x4B, 0xF8, 0x90, 0x40, 0x52, 0x48, 0x22, 0x7C, 0x23, 0x40, 0x52, 0xC0, 0x84, 0x60, 0x08, 0x1E, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0xF8, 0xFD, 0x08, 0x25, 0x08, 0x25, 0xF8, 0x24, 0x04, 0x27, 0xFE, 0x4A, 0x04, 0x2A, 0x04, 0x13, 0xFC, 0x2A, 0x04, 0x46, 0x04, 0x83, 0xFC, 0x02, 0x04, 0x10, 0x20, 0x10, 0x44, 0x11, 0xFE, 0x11, 0x24, 0xFD, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x44, 0x50, 0x28, 0x94, 0x13, 0xFE, 0x28, 0x10, 0x44, 0x10, 0x80, 0x10, 0x00, 0x10, 0x11, 0x04, 0x10, 0x88, 0x10, 0x50, 0x11, 0xFC, 0xFD, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x45, 0xFC, 0x28, 0x20, 0x13, 0xFE, 0x28, 0x20, 0x44, 0x20, 0x84, 0x20, 0x00, 0x20, 0x10, 0x00, 0x10, 0x00, 0xFE, 0xFC, 0x12, 0x08, 0x34, 0x50, 0x0C, 0x20, 0x32, 0xD8, 0xC1, 0x06, 0x3F, 0xF8, 0x21, 0x08, 0x22, 0x88, 0x24, 0x48, 0x21, 0x08, 0x22, 0x88, 0x24, 0x48, 0x20, 0x18, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x22, 0x08, 0xFB, 0xF8, 0x4A, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x48, 0x00, 0x97, 0xFC, 0x54, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x54, 0xA4, 0x8F, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x11, 0x24, 0xFC, 0xA8, 0x25, 0xFC, 0x24, 0x40, 0x27, 0xFE, 0x24, 0x80, 0x44, 0xFC, 0x28, 0x88, 0x11, 0x50, 0x2A, 0x20, 0x44, 0x50, 0x84, 0x8E, 0x03, 0x04, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x00, 0xFD, 0xFC, 0x25, 0x04, 0x25, 0xFC, 0x24, 0x00, 0x27, 0xFE, 0x4A, 0x02, 0x29, 0xFC, 0x10, 0x20, 0x28, 0x20, 0x44, 0x20, 0x84, 0xA0, 0x00, 0x40, 0x00, 0x40, 0x7F, 0x44, 0x12, 0x7E, 0x0C, 0x88, 0x7F, 0x50, 0x15, 0x20, 0x24, 0x50, 0x4C, 0x8E, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x04, 0x60, 0x38, 0x10, 0x10, 0x88, 0x10, 0x88, 0x13, 0xFE, 0x10, 0x88, 0xFD, 0xFC, 0x24, 0x88, 0x27, 0xFE, 0x24, 0x20, 0x25, 0xFC, 0x45, 0x24, 0x29, 0xFC, 0x11, 0x24, 0x2B, 0xFE, 0x45, 0x04, 0x85, 0x14, 0x01, 0x08, 0x10, 0x88, 0x10, 0x88, 0x13, 0xFE, 0x10, 0x88, 0xFC, 0x88, 0x25, 0xFC, 0x25, 0x04, 0x25, 0xFC, 0x25, 0x04, 0x45, 0xFC, 0x28, 0x20, 0x13, 0xFE, 0x28, 0x20, 0x44, 0x50, 0x84, 0x8E, 0x03, 0x04, 0x10, 0x20, 0x10, 0x44, 0x11, 0xFE, 0x11, 0x54, 0xFD, 0x24, 0x25, 0x54, 0x25, 0x04, 0x25, 0xFC, 0x25, 0x10, 0x45, 0x12, 0x29, 0xD4, 0x11, 0x18, 0x29, 0x12, 0x45, 0x52, 0x81, 0x8E, 0x00, 0x00, 0x20, 0x1C, 0x23, 0xE0, 0x21, 0x24, 0x20, 0xA8, 0xFB, 0xFE, 0x4A, 0x42, 0x4C, 0x44, 0x4B, 0xFE, 0x48, 0x80, 0x88, 0x80, 0x51, 0xFC, 0x22, 0x88, 0x24, 0x50, 0x50, 0x20, 0x88, 0xD8, 0x03, 0x06, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFE, 0x12, 0x02, 0xFC, 0x1C, 0x24, 0xE0, 0x24, 0x80, 0x24, 0xFC, 0x24, 0x88, 0x44, 0x88, 0x28, 0x88, 0x13, 0xFE, 0x28, 0x00, 0x44, 0x88, 0x85, 0x06, 0x02, 0x02, 0x10, 0x20, 0x11, 0x24, 0x11, 0x24, 0x11, 0xFC, 0xFC, 0x20, 0x27, 0xFE, 0x24, 0x00, 0x24, 0x24, 0x25, 0xFE, 0x45, 0x24, 0x29, 0x24, 0x11, 0xFC, 0x28, 0x20, 0x44, 0x24, 0x85, 0xFE, 0x00, 0x02, 0x04, 0x20, 0x3F, 0x24, 0x04, 0x3E, 0x7F, 0xE8, 0x0E, 0x10, 0x15, 0x28, 0x24, 0x44, 0x3F, 0xFE, 0x21, 0x00, 0x21, 0x04, 0x3F, 0xFE, 0x22, 0x10, 0x26, 0x20, 0x41, 0xC0, 0x46, 0x30, 0x98, 0x08, 0x20, 0x08, 0x23, 0xFC, 0x20, 0x20, 0x21, 0x3C, 0xF9, 0x20, 0x4F, 0xFE, 0x49, 0x00, 0x49, 0x08, 0x49, 0xFC, 0x89, 0x00, 0x51, 0xFE, 0x20, 0x02, 0x22, 0xAA, 0x52, 0xAA, 0x88, 0x02, 0x00, 0x0C, 0x10, 0x20, 0x10, 0x28, 0x11, 0xFC, 0x10, 0x20, 0xFD, 0x24, 0x24, 0xA8, 0x27, 0xFE, 0x24, 0x00, 0x25, 0xFC, 0x45, 0x04, 0x29, 0x74, 0x11, 0x54, 0x29, 0x74, 0x45, 0x04, 0x85, 0xFC, 0x01, 0x04, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x50, 0x10, 0x54, 0xFD, 0xFE, 0x25, 0x54, 0x25, 0x54, 0x25, 0xFC, 0x24, 0x00, 0x45, 0xFC, 0x28, 0x00, 0x13, 0xFE, 0x28, 0xA8, 0x45, 0x24, 0x82, 0x22, 0x00, 0x20, 0x10, 0x20, 0x11, 0x24, 0x10, 0xA8, 0x13, 0xFE, 0xFE, 0x02, 0x24, 0xFC, 0x24, 0x88, 0x24, 0x88, 0x24, 0xF8, 0x44, 0x20, 0x29, 0xFC, 0x11, 0x24, 0x29, 0x24, 0x45, 0x2C, 0x84, 0x20, 0x00, 0x20, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0x11, 0xFC, 0xFD, 0x24, 0x25, 0xFC, 0x24, 0x40, 0x24, 0x84, 0x25, 0xF8, 0x44, 0x20, 0x28, 0x48, 0x11, 0xFC, 0x28, 0xA8, 0x45, 0x26, 0x86, 0x22, 0x00, 0x60, 0x10, 0x20, 0x11, 0xFC, 0x10, 0x88, 0x10, 0x50, 0xFF, 0xFE, 0x24, 0x00, 0x25, 0xFC, 0x25, 0x04, 0x25, 0xFC, 0x45, 0x04, 0x29, 0xFC, 0x10, 0x20, 0x2B, 0xFE, 0x44, 0x20, 0x84, 0x20, 0x00, 0x20, 0x10, 0x20, 0x13, 0xFE, 0x10, 0x20, 0x11, 0xFC, 0xFC, 0x00, 0x25, 0xFC, 0x25, 0x04, 0x25, 0xFC, 0x24, 0x88, 0x47, 0xFE, 0x28, 0x00, 0x11, 0xFC, 0x29, 0x04, 0x45, 0x04, 0x85, 0xFC, 0x01, 0x04, 0x10, 0x20, 0x13, 0xFE, 0x10, 0x00, 0x11, 0xFC, 0xFD, 0x54, 0x25, 0x74, 0x25, 0x54, 0x25, 0xFC, 0x24, 0x00, 0x45, 0xFC, 0x29, 0x04, 0x11, 0xFC, 0x29, 0x04, 0x45, 0xFC, 0x84, 0x00, 0x03, 0xFE, 0x00, 0x40, 0x3E, 0x20, 0x23, 0xFC, 0x3E, 0x88, 0x20, 0x50, 0x3F, 0xFC, 0x52, 0x20, 0x52, 0xF8, 0x9E, 0x20, 0x01, 0x20, 0xFF, 0xFE, 0x04, 0x20, 0x0C, 0x40, 0x03, 0x80, 0x04, 0x60, 0x18, 0x10, 0x02, 0x00, 0xFA, 0x3E, 0xAA, 0x2A, 0xAA, 0xAA, 0xFF, 0xFE, 0xAA, 0xAA, 0xAA, 0xAA, 0xFA, 0xBE, 0x22, 0x88, 0xFA, 0xBE, 0x2A, 0x8A, 0x2A, 0x8A, 0x49, 0x12, 0x4A, 0x92, 0xAC, 0x6A, 0x10, 0x04, 0x40, 0x40, 0x40, 0x24, 0x47, 0xFE, 0x44, 0x88, 0xF4, 0x88, 0x57, 0xFE, 0x54, 0x88, 0x55, 0xDC, 0x56, 0xAA, 0x94, 0x40, 0x54, 0x90, 0x25, 0x20, 0x24, 0x48, 0x54, 0x84, 0x89, 0xFC, 0x10, 0x04, 0x20, 0x08, 0x21, 0xFC, 0x20, 0x20, 0x23, 0xFE, 0xFA, 0xAA, 0x4C, 0x70, 0x49, 0xA8, 0x49, 0x20, 0x4F, 0xFC, 0x89, 0x24, 0x53, 0x3C, 0x23, 0xA4, 0x25, 0x7C, 0x55, 0x24, 0x89, 0x3C, 0x01, 0x24, 0x00, 0x00, 0x3F, 0xF0, 0x04, 0x10, 0x04, 0x24, 0x04, 0x7E, 0x08, 0x04, 0x08, 0x04, 0x11, 0x14, 0x21, 0x08, 0x49, 0x00, 0x89, 0x20, 0x11, 0x10, 0x11, 0x10, 0x21, 0x0C, 0x05, 0x04, 0x02, 0x00, 0x01, 0x00, 0x09, 0x20, 0x09, 0x10, 0x11, 0x08, 0x23, 0x08, 0x00, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x80, 0x0C, 0x60, 0x31, 0x1E, 0xC9, 0x24, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x00, 0x10, 0x00, 0x78, 0x3F, 0x80, 0x00, 0x10, 0x11, 0x10, 0x09, 0x20, 0x3F, 0xF0, 0x00, 0x40, 0x00, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x00, 0x10, 0x08, 0xFE, 0xFC, 0x12, 0x08, 0x34, 0x50, 0x0C, 0x20, 0x32, 0xD8, 0xC1, 0x06, 0x1F, 0xE0, 0x00, 0x40, 0x01, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x04, 0x40, 0xFF, 0xFE, 0x08, 0x20, 0x12, 0x48, 0x3C, 0xF0, 0x08, 0x20, 0x14, 0x50, 0x3E, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x40, 0x01, 0x84, 0xFF, 0xFE, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x20, 0x00, 0x40, 0x01, 0x80, 0x01, 0x0C, 0x01, 0x30, 0x01, 0xC0, 0x07, 0x00, 0x19, 0x00, 0x61, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x20, 0x00, 0x40, 0x11, 0x80, 0x09, 0x00, 0x05, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0x40, 0x01, 0x30, 0x01, 0x0C, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x80, 0xFC, 0x88, 0x05, 0xFC, 0x0A, 0x08, 0x10, 0x08, 0x13, 0xE8, 0x1E, 0x28, 0x32, 0x28, 0xD3, 0xE8, 0x12, 0x08, 0x12, 0x28, 0x12, 0x12, 0x12, 0x02, 0x51, 0xFE, 0x20, 0x00, 0x08, 0x08, 0xFD, 0xFC, 0x09, 0x08, 0x49, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x49, 0x08, 0x49, 0x08, 0x7D, 0x08, 0x05, 0xF8, 0x05, 0x08, 0x1D, 0x08, 0xE5, 0x08, 0x05, 0x08, 0x17, 0xFE, 0x08, 0x00, 0x08, 0x00, 0xFC, 0x04, 0x09, 0xFE, 0x49, 0x54, 0x49, 0x54, 0x49, 0x54, 0x49, 0x54, 0x49, 0x54, 0x7D, 0x54, 0x05, 0x54, 0x05, 0x9C, 0x1D, 0x04, 0xE5, 0x04, 0x05, 0xFC, 0x15, 0x04, 0x08, 0x00, 0x08, 0x88, 0xFC, 0x88, 0x08, 0x88, 0x49, 0x08, 0x49, 0x08, 0x4B, 0xFE, 0x4D, 0x08, 0x49, 0x48, 0x7D, 0x28, 0x05, 0x28, 0x05, 0x08, 0x1D, 0x08, 0xE5, 0x08, 0x05, 0x08, 0x15, 0x28, 0x09, 0x10, 0x08, 0x80, 0xFC, 0x80, 0x08, 0xF8, 0x49, 0x08, 0x4A, 0x10, 0x48, 0x24, 0x4B, 0xFE, 0x48, 0x04, 0x7C, 0x04, 0x04, 0x04, 0x05, 0xFC, 0x1C, 0x04, 0xE4, 0x04, 0x04, 0x04, 0x17, 0xFC, 0x08, 0x04, 0x08, 0x00, 0xFD, 0xFC, 0x08, 0x88, 0x48, 0x50, 0x48, 0x20, 0x48, 0x50, 0x48, 0x8E, 0x4B, 0x24, 0x7C, 0x20, 0x05, 0xFC, 0x04, 0x20, 0x1C, 0x24, 0xE7, 0xFE, 0x04, 0x20, 0x14, 0x20, 0x08, 0x20, 0x10, 0x00, 0x10, 0x00, 0xFE, 0xFC, 0x12, 0x08, 0x34, 0x50, 0x0C, 0x20, 0x32, 0xD8, 0xC1, 0x06, 0x1F, 0xE0, 0x00, 0x20, 0x08, 0x24, 0x0F, 0xFE, 0x00, 0x04, 0x7F, 0xF4, 0x00, 0x14, 0x00, 0x08, 0x08, 0x20, 0xFC, 0x20, 0x08, 0x40, 0x48, 0x88, 0x49, 0x04, 0x4B, 0xFE, 0x48, 0x00, 0x48, 0x04, 0x7D, 0xFE, 0x05, 0x04, 0x05, 0x04, 0x1D, 0x04, 0xE5, 0x04, 0x05, 0x04, 0x15, 0xFC, 0x09, 0x04, 0x08, 0x80, 0xFC, 0x80, 0x08, 0xBC, 0x4B, 0xC0, 0x48, 0x50, 0x48, 0x24, 0x48, 0xD4, 0x4B, 0x0C, 0x7C, 0x00, 0x07, 0xFC, 0x04, 0x90, 0x1C, 0x90, 0xE4, 0x90, 0x05, 0x12, 0x15, 0x12, 0x0A, 0x0E, 0x08, 0xA0, 0xFC, 0xA0, 0x09, 0x24, 0x49, 0x28, 0x4B, 0x30, 0x4D, 0x60, 0x49, 0xA2, 0x49, 0x1E, 0x7D, 0x20, 0x04, 0x24, 0x07, 0xFE, 0x1C, 0x20, 0xE4, 0x20, 0x04, 0x20, 0x14, 0x20, 0x08, 0x20, 0x09, 0x04, 0xFC, 0x88, 0x08, 0x50, 0x4B, 0xFE, 0x48, 0x88, 0x48, 0x88, 0x48, 0x88, 0x48, 0x88, 0x7F, 0xFE, 0x04, 0x88, 0x04, 0x88, 0x1C, 0x88, 0xE4, 0x88, 0x04, 0x88, 0x15, 0x08, 0x0A, 0x08, 0x00, 0x04, 0xFB, 0xFE, 0x08, 0x00, 0x48, 0x00, 0x49, 0xDC, 0x49, 0x54, 0x49, 0x54, 0x49, 0x54, 0x7D, 0xDC, 0x05, 0x54, 0x05, 0x54, 0x1D, 0x54, 0xE5, 0x54, 0x05, 0x54, 0x15, 0x54, 0x08, 0x00, 0x08, 0x88, 0xFC, 0x88, 0x0B, 0xFE, 0x48, 0x88, 0x48, 0x88, 0x48, 0xF8, 0x48, 0x88, 0x48, 0x88, 0x7C, 0xF8, 0x04, 0x88, 0x04, 0x88, 0x1F, 0xFE, 0xE4, 0x00, 0x04, 0x88, 0x15, 0x06, 0x0A, 0x02, 0x08, 0x04, 0xFD, 0xFE, 0x09, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x49, 0x24, 0x49, 0x24, 0x49, 0xFC, 0x7C, 0x20, 0x07, 0xFE, 0x04, 0x70, 0x1C, 0xA8, 0xE5, 0x2E, 0x06, 0x24, 0x14, 0x20, 0x08, 0x20, 0x08, 0xA0, 0xFC, 0x90, 0x09, 0x04, 0x49, 0xFE, 0x4B, 0x10, 0x4D, 0x10, 0x49, 0xFC, 0x49, 0x10, 0x7D, 0x10, 0x05, 0xFC, 0x05, 0x10, 0x1D, 0x10, 0xE5, 0x14, 0x05, 0xFE, 0x15, 0x00, 0x09, 0x00, 0x08, 0x40, 0xFC, 0x80, 0x09, 0x08, 0x4B, 0xFC, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x90, 0x49, 0x28, 0x7E, 0x46, 0x05, 0x90, 0x04, 0x20, 0x1C, 0x44, 0xE5, 0x88, 0x04, 0x30, 0x14, 0xC0, 0x0B, 0x00, 0x00, 0x40, 0x79, 0x7C, 0x49, 0x40, 0x57, 0xFE, 0x48, 0x48, 0x69, 0x50, 0x56, 0x60, 0x41, 0x80, 0x5F, 0xE0, 0x00, 0x20, 0x08, 0x24, 0x0F, 0xFE, 0x00, 0x04, 0x7F, 0xF4, 0x00, 0x14, 0x00, 0x08, 0x00, 0x80, 0xFE, 0x88, 0x14, 0xFC, 0x08, 0x88, 0xFE, 0x50, 0x1A, 0x20, 0x28, 0xD0, 0x49, 0x0E, 0x1F, 0xE0, 0x00, 0x20, 0x08, 0x24, 0x0F, 0xFE, 0x00, 0x04, 0x7F, 0xF4, 0x00, 0x14, 0x00, 0x08, 0x08, 0x40, 0x7E, 0x44, 0x08, 0xFE, 0x7E, 0x88, 0x08, 0x50, 0xFF, 0x20, 0x10, 0x58, 0x3E, 0x86, 0x42, 0x00, 0x9F, 0xF0, 0x00, 0x10, 0x08, 0x14, 0x0F, 0xFE, 0x00, 0x04, 0x7F, 0xF4, 0x00, 0x08, 0x08, 0x40, 0xFF, 0xBE, 0x0A, 0x12, 0x4A, 0x12, 0x4A, 0x92, 0x4B, 0x2A, 0x4A, 0x44, 0x48, 0x00, 0x7D, 0xFC, 0x05, 0x24, 0x05, 0x24, 0x1D, 0xFC, 0xE5, 0x24, 0x05, 0x24, 0x15, 0xFC, 0x09, 0x04, 0x08, 0x20, 0xFC, 0x10, 0x09, 0xFE, 0x49, 0x02, 0x49, 0xFE, 0x49, 0x00, 0x49, 0xEE, 0x49, 0x22, 0x7D, 0x22, 0x05, 0xAA, 0x05, 0x66, 0x1D, 0x66, 0xE5, 0xAA, 0x05, 0x22, 0x16, 0xAA, 0x08, 0x44, 0x08, 0x04, 0xFD, 0xFE, 0x08, 0x50, 0x48, 0x54, 0x49, 0xFE, 0x49, 0x54, 0x49, 0x54, 0x49, 0xFC, 0x7C, 0x00, 0x05, 0xFC, 0x04, 0x00, 0x1F, 0xFE, 0xE4, 0xA8, 0x05, 0x26, 0x16, 0x22, 0x08, 0x60, 0x08, 0x20, 0xFC, 0x44, 0x09, 0xFE, 0x49, 0x44, 0x49, 0x74, 0x49, 0x54, 0x49, 0xB4, 0x49, 0x24, 0x7D, 0x44, 0x05, 0xFC, 0x04, 0x00, 0x1C, 0xA0, 0xE5, 0xA4, 0x06, 0x8A, 0x14, 0x88, 0x08, 0x78, 0x13, 0xFC, 0xFA, 0x04, 0x13, 0xFC, 0x52, 0x00, 0x52, 0xF8, 0x52, 0x10, 0x53, 0xFE, 0x52, 0x20, 0x7A, 0x60, 0x0B, 0xDC, 0x0A, 0x44, 0x3A, 0x88, 0xCB, 0xFE, 0x0A, 0x88, 0x2C, 0x88, 0x11, 0x98, 0x08, 0x50, 0xFD, 0xDC, 0x08, 0x50, 0x4B, 0xDE, 0x48, 0x00, 0x49, 0xFC, 0x49, 0x24, 0x49, 0xFC, 0x7D, 0x24, 0x05, 0xFC, 0x04, 0x88, 0x1D, 0xFC, 0xE4, 0x88, 0x07, 0xFE, 0x14, 0x88, 0x09, 0x04, 0x10, 0x40, 0xFF, 0xFE, 0x10, 0x00, 0x57, 0xBC, 0x54, 0xA4, 0x57, 0xBC, 0x51, 0x10, 0x53, 0xF8, 0x79, 0x10, 0x0B, 0xF8, 0x09, 0x10, 0x3F, 0xFE, 0xC9, 0x48, 0x0B, 0x30, 0x2D, 0x8E, 0x11, 0x04, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x12, 0x00, 0x24, 0x00, 0x7C, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x7E, 0x00, 0x20, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x08, 0x10, 0xFC, 0x11, 0x20, 0x22, 0x20, 0x7E, 0x20, 0x08, 0x24, 0x13, 0xFE, 0x20, 0x20, 0x7E, 0x20, 0x20, 0x20, 0x00, 0x20, 0x0E, 0x20, 0x70, 0x20, 0x20, 0xA0, 0x00, 0x40, 0x08, 0x08, 0x08, 0x08, 0x10, 0x08, 0x12, 0x08, 0x24, 0x08, 0x7D, 0xFE, 0x08, 0x08, 0x10, 0x08, 0x20, 0x88, 0x7E, 0x48, 0x20, 0x48, 0x00, 0x08, 0x0E, 0x08, 0x70, 0x08, 0x20, 0x28, 0x00, 0x10, 0x08, 0x80, 0x08, 0x80, 0x10, 0x84, 0x12, 0xFE, 0x25, 0x00, 0x7C, 0x00, 0x09, 0xF8, 0x10, 0x08, 0x20, 0x10, 0x7E, 0x20, 0x20, 0x40, 0x00, 0x80, 0x0F, 0x02, 0x71, 0x02, 0x20, 0xFE, 0x00, 0x00, 0x08, 0x40, 0x08, 0x40, 0x10, 0x40, 0x12, 0x48, 0x25, 0xFC, 0x7C, 0x48, 0x08, 0x48, 0x11, 0x48, 0x20, 0xC8, 0x7E, 0x48, 0x20, 0xA8, 0x00, 0x88, 0x0E, 0x8A, 0x71, 0x0A, 0x21, 0x0A, 0x02, 0x04, 0x08, 0x40, 0x08, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x25, 0x00, 0x7D, 0x00, 0x09, 0x00, 0x11, 0x00, 0x21, 0x00, 0x7D, 0x00, 0x21, 0x00, 0x01, 0x00, 0x0E, 0x00, 0x72, 0x00, 0x24, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x08, 0x11, 0xFC, 0x12, 0x00, 0x24, 0x00, 0x7C, 0x04, 0x0B, 0xFE, 0x10, 0x40, 0x20, 0x40, 0x7E, 0x40, 0x20, 0x80, 0x00, 0x80, 0x0E, 0x88, 0x71, 0x04, 0x21, 0xFC, 0x00, 0x04, 0x09, 0x20, 0x09, 0x20, 0x11, 0x20, 0x13, 0x20, 0x25, 0x24, 0x7D, 0x2C, 0x09, 0xF0, 0x11, 0x20, 0x21, 0x20, 0x7F, 0x20, 0x21, 0x20, 0x01, 0x20, 0x0F, 0x62, 0x71, 0xA2, 0x21, 0x1E, 0x00, 0x00, 0x08, 0x08, 0x09, 0xFC, 0x10, 0x08, 0x10, 0x50, 0x24, 0x20, 0x7C, 0x10, 0x09, 0xFE, 0x10, 0x22, 0x20, 0x24, 0x7E, 0x20, 0x20, 0x20, 0x00, 0x20, 0x0E, 0x20, 0x70, 0x20, 0x20, 0xA0, 0x00, 0x40, 0x08, 0x88, 0x08, 0x88, 0x10, 0x88, 0x12, 0x88, 0x27, 0xFE, 0x7C, 0x88, 0x08, 0x88, 0x10, 0x88, 0x20, 0x88, 0x7E, 0xF8, 0x20, 0x88, 0x00, 0x88, 0x0E, 0x88, 0x70, 0x88, 0x20, 0xF8, 0x00, 0x88, 0x10, 0x48, 0x11, 0x48, 0x21, 0x48, 0x25, 0x48, 0x49, 0x48, 0xFF, 0xFE, 0x11, 0x48, 0x21, 0x48, 0x41, 0x48, 0xFD, 0x48, 0x41, 0x48, 0x01, 0x78, 0x1D, 0x00, 0xE1, 0x00, 0x41, 0xFC, 0x00, 0x00, 0x10, 0xA0, 0x10, 0x90, 0x20, 0x90, 0x24, 0x84, 0x4F, 0xFE, 0xF8, 0x80, 0x10, 0x80, 0x21, 0xF8, 0x41, 0x08, 0xFD, 0x08, 0x42, 0x90, 0x02, 0x60, 0x1C, 0x20, 0xE4, 0x50, 0x48, 0x8E, 0x13, 0x04, 0x10, 0x80, 0x10, 0x80, 0x20, 0xF8, 0x25, 0x08, 0x4A, 0x10, 0xF8, 0x24, 0x13, 0xFE, 0x20, 0x04, 0x40, 0x04, 0xFC, 0x04, 0x41, 0xFC, 0x00, 0x04, 0x1C, 0x04, 0xE0, 0x04, 0x43, 0xFC, 0x00, 0x04, 0x10, 0x90, 0x10, 0x90, 0x20, 0x94, 0x27, 0xFE, 0x48, 0x94, 0xF8, 0x94, 0x13, 0xFC, 0x22, 0x90, 0x46, 0x90, 0xFB, 0xFE, 0x40, 0x92, 0x00, 0x92, 0x1C, 0x9A, 0xE1, 0x14, 0x41, 0x10, 0x02, 0x10, 0x08, 0x20, 0x08, 0x20, 0x11, 0x24, 0x11, 0x24, 0x25, 0x24, 0x7D, 0x24, 0x09, 0xFC, 0x10, 0x20, 0x21, 0x24, 0x7D, 0x24, 0x21, 0x24, 0x01, 0x24, 0x0D, 0x24, 0x71, 0xFC, 0x20, 0x04, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x20, 0x40, 0x20, 0x40, 0x48, 0x88, 0xF9, 0x04, 0x13, 0xFE, 0x20, 0x02, 0x40, 0x00, 0xFD, 0xFC, 0x41, 0x04, 0x01, 0x04, 0x1D, 0x04, 0xE1, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x10, 0x40, 0x10, 0x44, 0x27, 0xFE, 0x24, 0xA0, 0x48, 0xA0, 0xF9, 0x10, 0x13, 0xF8, 0x24, 0x06, 0x43, 0xFC, 0xFD, 0x00, 0x41, 0xF8, 0x00, 0x08, 0x1C, 0x08, 0xE0, 0x88, 0x40, 0x50, 0x00, 0x20, 0x10, 0x80, 0x10, 0x88, 0x21, 0x7C, 0x25, 0x00, 0x7F, 0xFF, 0xF8, 0x84, 0x11, 0xFE, 0x23, 0x08, 0x45, 0x08, 0xF9, 0x08, 0x41, 0x08, 0x01, 0x08, 0x1D, 0x08, 0xE1, 0x08, 0x41, 0x28, 0x01, 0x10, 0x11, 0x00, 0x11, 0xF8, 0x23, 0x10, 0x24, 0xA0, 0x40, 0x40, 0xF8, 0xA0, 0x11, 0x58, 0x26, 0x46, 0x43, 0xF8, 0xFA, 0x40, 0x42, 0x48, 0x07, 0xFC, 0x18, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x00, 0x40, 0x10, 0x04, 0x17, 0xFE, 0x20, 0x40, 0x23, 0xF8, 0x4A, 0x48, 0xFA, 0x48, 0x13, 0xF8, 0x22, 0x48, 0x42, 0x48, 0xFB, 0xF8, 0x42, 0x40, 0x01, 0x40, 0x18, 0x80, 0xE1, 0x60, 0x42, 0x1E, 0x04, 0x04, 0x08, 0x20, 0x09, 0x24, 0x10, 0xA8, 0x10, 0xB0, 0x24, 0x24, 0x7D, 0xFE, 0x09, 0x04, 0x11, 0x04, 0x21, 0xFC, 0x7F, 0x04, 0x21, 0x04, 0x01, 0xFC, 0x0F, 0x04, 0x71, 0x04, 0x21, 0x14, 0x01, 0x08, 0x12, 0x08, 0x11, 0x10, 0x20, 0xA0, 0x27, 0xF8, 0x48, 0x48, 0xF8, 0x48, 0x13, 0xF8, 0x22, 0x40, 0x42, 0x44, 0xFB, 0xFE, 0x40, 0xC4, 0x04, 0xC4, 0x19, 0x54, 0xE2, 0x48, 0x44, 0x40, 0x08, 0x40, 0x10, 0x20, 0x10, 0x28, 0x21, 0xFC, 0x24, 0x20, 0x48, 0x24, 0xFB, 0xFE, 0x10, 0x88, 0x21, 0x46, 0x42, 0x7A, 0xFC, 0x88, 0x40, 0x90, 0x01, 0x50, 0x1C, 0x20, 0xE0, 0x50, 0x41, 0x8E, 0x06, 0x04, 0x10, 0x40, 0x10, 0x48, 0x27, 0xFC, 0x20, 0x40, 0x48, 0xB0, 0xF9, 0x14, 0x17, 0xFE, 0x20, 0x08, 0x43, 0xC8, 0xFA, 0x48, 0x42, 0x48, 0x02, 0x48, 0x1B, 0xC8, 0xE2, 0x08, 0x40, 0x28, 0x00, 0x10, 0x10, 0x50, 0x10, 0x50, 0x20, 0x54, 0x23, 0xDE, 0x48, 0x50, 0xF8, 0x50, 0x10, 0x54, 0x23, 0xDE, 0x40, 0x50, 0xFC, 0x50, 0x40, 0x54, 0x03, 0xDE, 0x1C, 0x50, 0xE0, 0x50, 0x40, 0x50, 0x00, 0x50, 0x10, 0x40, 0x12, 0x48, 0x21, 0x48, 0x21, 0x50, 0x48, 0x44, 0xFF, 0xFE, 0x14, 0x04, 0x24, 0x04, 0x45, 0xF4, 0xFD, 0x14, 0x45, 0x14, 0x05, 0x14, 0x1D, 0xF4, 0xE4, 0x04, 0x44, 0x14, 0x04, 0x08, 0x08, 0x04, 0x09, 0xFE, 0x11, 0x04, 0x13, 0x04, 0x25, 0xFC, 0x7D, 0x04, 0x09, 0x04, 0x11, 0xFC, 0x20, 0x10, 0x7D, 0x12, 0x21, 0x16, 0x01, 0xD8, 0x0D, 0x10, 0x71, 0x52, 0x21, 0x92, 0x01, 0x0E, 0x10, 0x18, 0x13, 0xE0, 0x20, 0x44, 0x2F, 0xFE, 0x49, 0x50, 0xF9, 0x50, 0x11, 0x50, 0x27, 0xFC, 0x41, 0x50, 0xF9, 0x50, 0x41, 0x54, 0x07, 0xFE, 0x18, 0x40, 0xE0, 0x48, 0x47, 0xFC, 0x00, 0x00, 0x10, 0x1C, 0x17, 0xE0, 0x20, 0x00, 0x22, 0x48, 0x41, 0x50, 0xF7, 0xFE, 0x14, 0x02, 0x28, 0x04, 0x41, 0xF0, 0xFC, 0x10, 0x41, 0x10, 0x00, 0xA0, 0x1C, 0x40, 0xE0, 0xA0, 0x41, 0x1E, 0x06, 0x04, 0x11, 0x10, 0x11, 0x10, 0x21, 0xD0, 0x25, 0x58, 0x4A, 0x56, 0xFB, 0x52, 0x14, 0x90, 0x21, 0x50, 0x42, 0x3E, 0xFC, 0x08, 0x41, 0xFC, 0x01, 0x08, 0x1D, 0x08, 0xE1, 0x08, 0x41, 0xF8, 0x01, 0x08, 0x10, 0x40, 0x12, 0x48, 0x21, 0x50, 0x20, 0x40, 0x47, 0xFC, 0xF8, 0x40, 0x1F, 0xFE, 0x20, 0xA0, 0x41, 0x10, 0xFB, 0xFE, 0x45, 0x14, 0x01, 0x10, 0x1D, 0x50, 0xE1, 0x24, 0x41, 0x04, 0x00, 0xFC, 0x10, 0x80, 0x10, 0x40, 0x24, 0x40, 0x27, 0xFE, 0x4C, 0x02, 0xF3, 0xF8, 0x12, 0x08, 0x22, 0x08, 0x43, 0xF8, 0xFE, 0x00, 0x43, 0xFC, 0x02, 0x04, 0x1E, 0x04, 0xE2, 0x04, 0x43, 0xFC, 0x02, 0x04, 0x11, 0x24, 0x11, 0x24, 0x22, 0x48, 0x24, 0x90, 0x4A, 0x48, 0xF9, 0x24, 0x11, 0x24, 0x20, 0x04, 0x47, 0xFE, 0xFC, 0x44, 0x44, 0x44, 0x07, 0xFC, 0x1C, 0x44, 0xE4, 0x44, 0x47, 0xFC, 0x04, 0x04, 0x11, 0x10, 0x11, 0x14, 0x2F, 0xFE, 0x21, 0x10, 0x49, 0xF0, 0xF8, 0x40, 0x13, 0xF8, 0x22, 0x48, 0x42, 0x48, 0xFB, 0xF8, 0x40, 0x40, 0x07, 0xFE, 0x18, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x00, 0x40, 0x11, 0x00, 0x11, 0x04, 0x21, 0x3E, 0x21, 0x24, 0x4F, 0xE4, 0xF9, 0x24, 0x13, 0x3C, 0x23, 0xA4, 0x45, 0x64, 0xFD, 0x24, 0x49, 0x3C, 0x01, 0x24, 0x1D, 0x24, 0xE1, 0x24, 0x41, 0x3C, 0x01, 0x24, 0x13, 0xF8, 0x12, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x4A, 0x08, 0xFA, 0x08, 0x13, 0xF8, 0x20, 0x00, 0x47, 0xFE, 0xF8, 0x40, 0x02, 0x48, 0x02, 0x7C, 0x1A, 0x40, 0xE3, 0x40, 0x44, 0xC6, 0x18, 0x3C, 0x10, 0x10, 0x10, 0x90, 0x27, 0xD0, 0x24, 0x90, 0x4C, 0xB8, 0xFC, 0xB6, 0x17, 0xD2, 0x24, 0x90, 0x44, 0x94, 0xFF, 0x94, 0x44, 0x98, 0x04, 0x88, 0x1C, 0x90, 0xE7, 0xA0, 0x44, 0x40, 0x01, 0x80, 0x10, 0x40, 0x10, 0x48, 0x23, 0xFC, 0x22, 0x48, 0x4B, 0xF8, 0xF8, 0x40, 0x17, 0xFE, 0x20, 0x00, 0x43, 0xF8, 0xFA, 0x08, 0x42, 0x48, 0x02, 0x48, 0x1A, 0x88, 0xE0, 0xB0, 0x41, 0x0C, 0x06, 0x04, 0x10, 0x00, 0x10, 0x08, 0x23, 0xFC, 0x22, 0x48, 0x4A, 0x48, 0xFB, 0xF8, 0x12, 0x48, 0x22, 0x48, 0x43, 0xF8, 0xF8, 0x80, 0x41, 0x40, 0x05, 0x24, 0x1D, 0x02, 0xE5, 0x0A, 0x48, 0xF8, 0x00, 0x00, 0x12, 0x04, 0x13, 0xFE, 0x22, 0x20, 0x25, 0xFC, 0x4D, 0x24, 0xF5, 0x24, 0x15, 0xFC, 0x25, 0x24, 0x45, 0x24, 0xFD, 0xFC, 0x44, 0xA0, 0x04, 0xA0, 0x1C, 0x40, 0xE4, 0x60, 0x44, 0x98, 0x07, 0x06, 0x11, 0x08, 0x11, 0x7C, 0x21, 0x08, 0x22, 0x08, 0x4B, 0xFE, 0xF6, 0x40, 0x1A, 0x48, 0x22, 0xFC, 0x43, 0x20, 0xFA, 0x24, 0x43, 0xFE, 0x02, 0x20, 0x1A, 0x20, 0xE2, 0x50, 0x42, 0x8E, 0x03, 0x04, 0x10, 0x20, 0x14, 0x48, 0x22, 0xFC, 0x22, 0x88, 0x48, 0x88, 0xF8, 0x88, 0x16, 0xF8, 0x22, 0x80, 0x42, 0xF8, 0xFA, 0x88, 0x42, 0x88, 0x02, 0x88, 0x1A, 0xF8, 0xE5, 0x00, 0x48, 0x86, 0x00, 0x7C, 0x10, 0x08, 0x13, 0xFC, 0x22, 0x08, 0x27, 0xF8, 0x4A, 0x40, 0xFB, 0xFC, 0x12, 0x20, 0x22, 0x92, 0x43, 0x0E, 0xFD, 0xF8, 0x41, 0x08, 0x01, 0x08, 0x1D, 0xF8, 0xE1, 0x08, 0x41, 0x08, 0x01, 0xF8, 0x10, 0x08, 0x13, 0xFC, 0x20, 0x90, 0x22, 0x94, 0x49, 0x98, 0xF8, 0x90, 0x17, 0xFE, 0x20, 0x08, 0x41, 0xFC, 0xFD, 0x08, 0x41, 0x08, 0x01, 0xF8, 0x1D, 0x08, 0xE1, 0x08, 0x41, 0xF8, 0x01, 0x08, 0x10, 0x40, 0x10, 0x48, 0x27, 0xFC, 0x20, 0x40, 0x4B, 0xF8, 0xFA, 0x08, 0x13, 0xF8, 0x22, 0x08, 0x43, 0xF8, 0xFA, 0x08, 0x43, 0xF8, 0x02, 0x08, 0x1F, 0xFE, 0xE1, 0x10, 0x42, 0x0C, 0x04, 0x04, 0x10, 0x04, 0x17, 0xFE, 0x24, 0x00, 0x25, 0xF8, 0x4C, 0x00, 0xF7, 0xFE, 0x15, 0x48, 0x25, 0x30, 0x45, 0x8E, 0xFC, 0x10, 0x47, 0xFE, 0x04, 0x90, 0x1C, 0x50, 0xE4, 0x10, 0x48, 0x50, 0x00, 0x20, 0x10, 0x40, 0x10, 0x24, 0x27, 0xFE, 0x20, 0x00, 0x49, 0xF8, 0xF9, 0x08, 0x11, 0xF8, 0x20, 0x04, 0x43, 0xFE, 0xFA, 0x04, 0x42, 0xF4, 0x02, 0x94, 0x1A, 0x94, 0xE2, 0xF4, 0x42, 0x14, 0x02, 0x08, 0x10, 0x80, 0x10, 0x44, 0x2F, 0xFE, 0x21, 0x10, 0x4A, 0xA8, 0xFA, 0x48, 0x12, 0xA8, 0x23, 0xF8, 0x40, 0x44, 0xFF, 0xFE, 0x44, 0x44, 0x04, 0x94, 0x1D, 0xF4, 0xE4, 0x04, 0x44, 0x14, 0x04, 0x08, 0x10, 0x00, 0x12, 0x08, 0x21, 0x10, 0x20, 0x00, 0x4B, 0xFC, 0xF8, 0x00, 0x11, 0x10, 0x22, 0x08, 0x44, 0x04, 0xFB, 0xF8, 0x42, 0xA8, 0x02, 0xA8, 0x1A, 0xA8, 0xE2, 0xA8, 0x4F, 0xFE, 0x00, 0x00, 0x11, 0x10, 0x10, 0xA4, 0x2F, 0xFE, 0x20, 0xA0, 0x4B, 0xF8, 0xF8, 0xA8, 0x17, 0xFE, 0x20, 0xA8, 0x40, 0xA8, 0xFB, 0xF8, 0x40, 0xA0, 0x01, 0xB0, 0x1A, 0xA8, 0xE4, 0xAE, 0x48, 0xA4, 0x00, 0xA0, 0x10, 0x40, 0x10, 0x20, 0x27, 0xFE, 0x24, 0x02, 0x48, 0x34, 0xF9, 0xC0, 0x11, 0x08, 0x21, 0xFC, 0x41, 0x10, 0xF9, 0x10, 0x41, 0x14, 0x07, 0xFE, 0x18, 0x00, 0xE1, 0x10, 0x42, 0x0C, 0x04, 0x04, 0x10, 0x08, 0x17, 0xFC, 0x20, 0xA0, 0x28, 0xA4, 0x4F, 0xFE, 0xF4, 0xA4, 0x14, 0xA4, 0x27, 0xFC, 0x40, 0x00, 0xFB, 0xF8, 0x40, 0x00, 0x0F, 0xFE, 0x19, 0x50, 0xE2, 0x4C, 0x45, 0x44, 0x00, 0x80, 0x13, 0xF8, 0x12, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x4B, 0xF8, 0xF8, 0x00, 0x17, 0xFC, 0x24, 0xA4, 0x47, 0xFC, 0xF8, 0x00, 0x43, 0xF8, 0x02, 0x08, 0x19, 0xB0, 0xE0, 0x40, 0x43, 0xB0, 0x0C, 0x0E, 0x10, 0x04, 0x17, 0xFE, 0x24, 0x44, 0x2F, 0xFC, 0x54, 0x44, 0xF7, 0xFC, 0x14, 0x84, 0x21, 0x10, 0x43, 0xE0, 0xF8, 0x40, 0x40, 0x88, 0x07, 0xFC, 0x19, 0x50, 0xE2, 0x4C, 0x45, 0x44, 0x00, 0x80, 0x10, 0x04, 0x17, 0xBE, 0x24, 0xA4, 0x22, 0x94, 0x4A, 0x94, 0xF4, 0xA4, 0x10, 0x50, 0x20, 0x88, 0x41, 0x24, 0xFA, 0x42, 0x45, 0x90, 0x00, 0x60, 0x19, 0x88, 0xE0, 0x30, 0x40, 0xC0, 0x07, 0x00, 0x12, 0x48, 0x12, 0x48, 0x24, 0x90, 0x22, 0x48, 0x4A, 0x48, 0xF7, 0xFC, 0x14, 0x44, 0x27, 0xFC, 0x44, 0x44, 0xF7, 0xFC, 0x40, 0x40, 0x0F, 0xFE, 0x18, 0xE0, 0xE1, 0x50, 0x46, 0x4E, 0x00, 0x40, 0x12, 0x04, 0x12, 0xFE, 0x22, 0x10, 0x2F, 0xA4, 0x42, 0x7E, 0xFA, 0x44, 0x17, 0x54, 0x20, 0x54, 0x47, 0x54, 0xFD, 0x54, 0x45, 0x54, 0x05, 0x54, 0x1D, 0x54, 0xE7, 0x28, 0x40, 0x26, 0x00, 0xC2, 0x10, 0x40, 0x10, 0x44, 0x2F, 0xFE, 0x20, 0xA0, 0x4A, 0xA8, 0xF9, 0x10, 0x13, 0xFE, 0x22, 0x0C, 0x43, 0xF8, 0xFA, 0x08, 0x43, 0xF8, 0x01, 0x50, 0x1A, 0x4C, 0xE4, 0x44, 0x41, 0x40, 0x00, 0x80, 0x12, 0x08, 0x11, 0x10, 0x27, 0xFC, 0x24, 0x44, 0x4D, 0x54, 0xFC, 0x44, 0x17, 0xFC, 0x24, 0x04, 0x43, 0xF8, 0xFA, 0x08, 0x42, 0x08, 0x03, 0xF8, 0x1A, 0x08, 0xE2, 0x08, 0x43, 0xF8, 0x02, 0x08, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x27, 0xFC, 0x4C, 0x44, 0xFF, 0xFC, 0x14, 0x44, 0x27, 0xFC, 0x40, 0x00, 0xFF, 0xFE, 0x44, 0x44, 0x07, 0xFC, 0x1C, 0x44, 0xE7, 0xFC, 0x40, 0x00, 0x0F, 0xFE, 0x10, 0x24, 0x11, 0xFE, 0x25, 0x24, 0x23, 0xFC, 0x4A, 0x20, 0xF9, 0xFE, 0x10, 0x00, 0x2E, 0xF8, 0x42, 0x88, 0xFA, 0xF8, 0x42, 0x80, 0x02, 0xF8, 0x1A, 0x88, 0xE5, 0xF8, 0x48, 0x86, 0x00, 0x7C, 0x10, 0x10, 0x11, 0xF8, 0x21, 0x10, 0x25, 0x10, 0x49, 0xF0, 0xF8, 0x00, 0x17, 0xBC, 0x24, 0xA4, 0x44, 0xA4, 0xFF, 0xBC, 0x40, 0x40, 0x07, 0xFE, 0x18, 0xE0, 0xE1, 0x50, 0x46, 0x4E, 0x00, 0x40, 0x10, 0x08, 0x13, 0xFC, 0x22, 0xA8, 0x26, 0xA8, 0x4B, 0xF8, 0xF8, 0x04, 0x17, 0xFE, 0x20, 0x00, 0x43, 0xF8, 0xFA, 0x08, 0x43, 0xF8, 0x01, 0x44, 0x1B, 0x48, 0xE5, 0x30, 0x49, 0x8E, 0x01, 0x04, 0x11, 0x08, 0x15, 0x28, 0x27, 0xBC, 0x29, 0x48, 0x47, 0xBE, 0xFB, 0x18, 0x15, 0x2A, 0x29, 0x4E, 0x43, 0xF8, 0xFA, 0x08, 0x42, 0x48, 0x02, 0x48, 0x1A, 0x48, 0xE0, 0xB0, 0x41, 0x0C, 0x06, 0x04, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x10, 0x08, 0x10, 0x10, 0x20, 0x3F, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x20, 0x10, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x11, 0x10, 0x25, 0x24, 0x79, 0x78, 0x11, 0x10, 0x29, 0x28, 0x7D, 0x7C, 0x01, 0x10, 0xFF, 0xFE, 0x00, 0x80, 0x7F, 0x88, 0x49, 0x48, 0x7F, 0x50, 0x49, 0x50, 0x7F, 0x22, 0x40, 0xD2, 0x03, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x09, 0x20, 0x09, 0x20, 0x12, 0x40, 0x09, 0x20, 0x09, 0x20, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x10, 0x11, 0x10, 0x22, 0x20, 0x44, 0x40, 0x22, 0x20, 0x11, 0x10, 0x11, 0x10, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x10, 0x84, 0x21, 0x08, 0x42, 0x10, 0x21, 0x08, 0x10, 0x88, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x20, 0x0A, 0x20, 0x02, 0x1F, 0xFE, 0x00, 0x00, 0x08, 0x04, 0x7D, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x7C, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x1C, 0x20, 0x70, 0x20, 0x21, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x10, 0x09, 0xF8, 0x7D, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x7D, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x1E, 0x10, 0x72, 0x12, 0x24, 0x12, 0x08, 0x0E, 0x10, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x44, 0x13, 0xFE, 0x10, 0x40, 0x10, 0x48, 0x7D, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x44, 0x1C, 0x44, 0x70, 0x44, 0x20, 0x54, 0x00, 0x48, 0x00, 0x40, 0x00, 0x10, 0x08, 0x90, 0x7C, 0x90, 0x10, 0x90, 0x11, 0x08, 0x12, 0x04, 0x7C, 0x02, 0x13, 0xF8, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x1C, 0x88, 0x71, 0x08, 0x21, 0x08, 0x02, 0x50, 0x04, 0x20, 0x00, 0x80, 0x08, 0x40, 0x7C, 0x24, 0x17, 0xFE, 0x10, 0x08, 0x11, 0x08, 0x7D, 0x08, 0x11, 0x10, 0x10, 0x90, 0x10, 0xA0, 0x10, 0x40, 0x1C, 0xA0, 0x71, 0x10, 0x22, 0x08, 0x04, 0x0E, 0x08, 0x04, 0x00, 0x08, 0x0B, 0xFC, 0x7C, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x7C, 0x48, 0x13, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x50, 0x10, 0x48, 0x1C, 0x48, 0x70, 0x40, 0x27, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x7F, 0xFE, 0x10, 0x08, 0x10, 0x08, 0x11, 0xE8, 0x11, 0x28, 0x7D, 0x28, 0x11, 0x28, 0x11, 0x28, 0x11, 0xE8, 0x1D, 0x08, 0x70, 0x08, 0x20, 0x08, 0x00, 0x28, 0x00, 0x10, 0x00, 0x80, 0x08, 0xA0, 0x7C, 0x98, 0x10, 0x88, 0x17, 0xFE, 0x10, 0xA0, 0x7C, 0xA0, 0x10, 0xA4, 0x11, 0x24, 0x11, 0x28, 0x11, 0x30, 0x1E, 0x20, 0x72, 0x62, 0x24, 0xA2, 0x08, 0x1E, 0x10, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x44, 0x10, 0x7E, 0x10, 0x40, 0x10, 0x40, 0x7C, 0x40, 0x10, 0x44, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x1D, 0x04, 0x71, 0x04, 0x21, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x00, 0xA0, 0x08, 0xA8, 0xFC, 0xA4, 0x21, 0x24, 0x21, 0x20, 0x23, 0x3E, 0xFD, 0xE0, 0x21, 0x20, 0x21, 0x20, 0x21, 0x20, 0x25, 0x10, 0x39, 0x10, 0xE1, 0x12, 0x41, 0x0A, 0x01, 0x0A, 0x01, 0x04, 0x00, 0x20, 0x08, 0x20, 0x7C, 0x44, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x7D, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x1D, 0x04, 0x71, 0x04, 0x21, 0xFC, 0x01, 0x04, 0x00, 0x04, 0x09, 0xFE, 0x7D, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x24, 0x7D, 0x20, 0x11, 0x24, 0x11, 0xFE, 0x11, 0x20, 0x11, 0x20, 0x11, 0x10, 0x1D, 0x10, 0x71, 0x4A, 0x21, 0x8A, 0x01, 0x06, 0x02, 0x00, 0x12, 0x00, 0xFA, 0x04, 0x2F, 0xBE, 0x22, 0xA4, 0x22, 0xA4, 0xFA, 0xA4, 0x22, 0xA4, 0x22, 0xA4, 0x22, 0xA4, 0x22, 0xA4, 0x3A, 0xA4, 0xE4, 0xBC, 0x4A, 0xA4, 0x11, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0B, 0xFE, 0x7D, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x7D, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x1D, 0x0E, 0x73, 0xF8, 0x20, 0x08, 0x00, 0x08, 0x00, 0x08, 0x01, 0x10, 0x11, 0x10, 0xF9, 0x10, 0x21, 0x10, 0x27, 0xFC, 0x21, 0x10, 0xF9, 0x10, 0x21, 0x10, 0x21, 0x10, 0x21, 0x14, 0x2F, 0xFE, 0x20, 0x00, 0x39, 0x10, 0xE2, 0x08, 0x44, 0x04, 0x08, 0x04, 0x00, 0x04, 0x0B, 0xFE, 0x7C, 0x20, 0x10, 0x40, 0x11, 0xFC, 0x11, 0x04, 0x7D, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x1D, 0x24, 0x70, 0x50, 0x20, 0x48, 0x00, 0x86, 0x03, 0x02, 0x00, 0x00, 0x17, 0xC0, 0xF8, 0xBE, 0x22, 0xA2, 0x22, 0xA4, 0x24, 0xA4, 0xF7, 0xE8, 0x21, 0xA4, 0x21, 0xA4, 0x22, 0xA2, 0x2A, 0xA2, 0x34, 0xA2, 0xE4, 0xB4, 0x4A, 0xA8, 0x01, 0x20, 0x00, 0x20, 0x01, 0x00, 0x11, 0x08, 0xFA, 0x7C, 0x24, 0x00, 0x29, 0x00, 0x21, 0x04, 0xFA, 0xFE, 0x26, 0x08, 0x2A, 0x08, 0x22, 0x08, 0x22, 0x08, 0x3A, 0x08, 0xE2, 0x08, 0x42, 0x08, 0x02, 0x28, 0x02, 0x10, 0x01, 0x20, 0x11, 0x20, 0xF9, 0x24, 0x25, 0x2C, 0x23, 0x30, 0x21, 0x20, 0xF9, 0x20, 0x21, 0x30, 0x23, 0x2C, 0x2D, 0x24, 0x21, 0x20, 0x39, 0x20, 0xE2, 0x22, 0x42, 0x22, 0x04, 0x1E, 0x18, 0x00, 0x01, 0x00, 0x11, 0x00, 0xF9, 0xFC, 0x22, 0x08, 0x25, 0x10, 0x20, 0xA0, 0xF8, 0x40, 0x20, 0xA0, 0x23, 0x18, 0x2C, 0x06, 0x23, 0xF8, 0x3A, 0x08, 0xE2, 0x08, 0x42, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x08, 0x00, 0x08, 0x08, 0x1F, 0xFC, 0x21, 0x08, 0x49, 0x20, 0x11, 0x18, 0x23, 0x08, 0x00, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x40, 0x01, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x13, 0xFE, 0xFA, 0x42, 0x24, 0x44, 0x23, 0xFC, 0x20, 0x80, 0xF8, 0xA0, 0x21, 0x28, 0x23, 0xFC, 0x20, 0x20, 0x28, 0x24, 0x37, 0xFE, 0xE0, 0x20, 0x40, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x14, 0x20, 0xFA, 0x24, 0x21, 0xFE, 0x20, 0x40, 0x26, 0x50, 0xFA, 0x90, 0x22, 0xFC, 0x22, 0x10, 0x22, 0x14, 0x22, 0xFE, 0x3A, 0x10, 0xE2, 0x10, 0x45, 0x16, 0x08, 0xFC, 0x00, 0x00, 0x01, 0x10, 0x09, 0x10, 0x7F, 0xFC, 0x11, 0x10, 0x11, 0x10, 0x11, 0xF0, 0x7D, 0x10, 0x11, 0x10, 0x11, 0xF0, 0x11, 0x10, 0x11, 0x14, 0x17, 0xFE, 0x1C, 0x00, 0x71, 0x10, 0x22, 0x0C, 0x04, 0x04, 0x01, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x21, 0x10, 0x20, 0x40, 0x23, 0xF8, 0xFA, 0x48, 0x22, 0x48, 0x22, 0x48, 0x22, 0x48, 0x27, 0xFE, 0x38, 0x40, 0xE0, 0xA0, 0x41, 0x10, 0x02, 0x0E, 0x0C, 0x04, 0x00, 0x40, 0x10, 0x48, 0xFB, 0xFC, 0x20, 0x40, 0x20, 0xA0, 0x21, 0x14, 0xFB, 0xFE, 0x20, 0x08, 0x23, 0xC8, 0x22, 0x48, 0x22, 0x48, 0x3A, 0x48, 0xE3, 0xC8, 0x42, 0x08, 0x00, 0x28, 0x00, 0x10, 0x00, 0x48, 0x10, 0x7C, 0xF8, 0x40, 0x23, 0xFE, 0x22, 0x42, 0x22, 0x78, 0xFB, 0xC4, 0x22, 0x7C, 0x22, 0x00, 0x22, 0xF0, 0x22, 0x90, 0x3A, 0x90, 0xE2, 0x90, 0x44, 0x92, 0x09, 0x12, 0x02, 0x0E, 0x00, 0x08, 0x0B, 0xFC, 0x7E, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x7E, 0x08, 0x13, 0xF8, 0x12, 0x20, 0x12, 0x24, 0x13, 0xA8, 0x1E, 0x30, 0x72, 0x20, 0x22, 0xA2, 0x03, 0x22, 0x02, 0x1E, 0x00, 0x40, 0x08, 0x40, 0x7D, 0x48, 0x11, 0x50, 0x12, 0x40, 0x10, 0xA0, 0x7C, 0x98, 0x11, 0x48, 0x12, 0x44, 0x11, 0x48, 0x11, 0x50, 0x1E, 0xA0, 0x70, 0xA0, 0x21, 0x10, 0x02, 0x0E, 0x0C, 0x04, 0x00, 0x80, 0x14, 0x40, 0xFF, 0xFE, 0x24, 0x02, 0x28, 0x14, 0x23, 0xF8, 0xF8, 0x00, 0x20, 0x04, 0x27, 0xFE, 0x20, 0x40, 0x21, 0x50, 0x39, 0x48, 0xE2, 0x44, 0x44, 0x44, 0x01, 0x40, 0x00, 0x80, 0x00, 0x80, 0x14, 0x40, 0xFF, 0xFE, 0x24, 0x02, 0x2A, 0x04, 0x23, 0xBC, 0xFA, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x2A, 0xA4, 0x21, 0x34, 0x39, 0x28, 0xE2, 0x22, 0x44, 0x22, 0x08, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x17, 0xFE, 0xFC, 0x02, 0x28, 0xA4, 0x21, 0x18, 0x22, 0x08, 0xF8, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0x20, 0x40, 0x20, 0xE0, 0x39, 0x50, 0xE2, 0x48, 0x44, 0x4E, 0x08, 0x44, 0x00, 0x40, 0x00, 0x04, 0x13, 0xFE, 0xFA, 0x04, 0x22, 0x04, 0x23, 0xFC, 0x22, 0x20, 0xFA, 0x24, 0x23, 0xFE, 0x22, 0x20, 0x22, 0x24, 0x23, 0xFE, 0x3D, 0x04, 0xE5, 0x04, 0x49, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x00, 0x04, 0x07, 0xFE, 0xFC, 0x04, 0x25, 0xF4, 0x24, 0x04, 0x25, 0xF4, 0xF8, 0x00, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0x23, 0xF8, 0x3A, 0x08, 0xE3, 0xF8, 0x42, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x00, 0x40, 0x10, 0xC0, 0xF9, 0x20, 0x22, 0x10, 0x25, 0xE8, 0x28, 0x06, 0xFF, 0x88, 0x24, 0xA8, 0x24, 0xA8, 0x27, 0xA8, 0x24, 0xA8, 0x3C, 0xA8, 0xE7, 0xA8, 0x44, 0x88, 0x04, 0xA8, 0x05, 0x90, 0x00, 0x1C, 0x17, 0xE0, 0xFA, 0x48, 0x21, 0x50, 0x20, 0x20, 0x23, 0xFC, 0xF8, 0x80, 0x27, 0xFE, 0x21, 0x00, 0x21, 0xF8, 0x22, 0x88, 0x3A, 0x50, 0xE4, 0x20, 0x48, 0x50, 0x01, 0x8E, 0x06, 0x04, 0x00, 0x04, 0x17, 0xBE, 0xFC, 0x84, 0x24, 0x84, 0x24, 0x84, 0x27, 0xBC, 0xFC, 0x04, 0x24, 0x00, 0x27, 0xBC, 0x24, 0x04, 0x24, 0x24, 0x3F, 0xA8, 0xE4, 0x10, 0x44, 0x28, 0x04, 0x46, 0x04, 0x84, 0x01, 0x24, 0x11, 0x24, 0xFA, 0x48, 0x21, 0x24, 0x21, 0x24, 0x20, 0x40, 0xF8, 0x84, 0x23, 0xFE, 0x22, 0x04, 0x22, 0x94, 0x22, 0x64, 0x3A, 0x94, 0xE3, 0x0C, 0x42, 0x04, 0x03, 0xFC, 0x02, 0x04, 0x00, 0x38, 0x17, 0xC0, 0xFA, 0x48, 0x21, 0x50, 0x27, 0xFE, 0x24, 0x82, 0xF8, 0x84, 0x27, 0xFE, 0x21, 0x00, 0x21, 0xF0, 0x22, 0x10, 0x3A, 0xA0, 0xE4, 0x40, 0x48, 0xA0, 0x01, 0x1E, 0x06, 0x04, 0x00, 0x40, 0x10, 0x24, 0xFB, 0xFE, 0x22, 0x20, 0x22, 0xFC, 0x22, 0x24, 0xFB, 0xFE, 0x22, 0x24, 0x22, 0xFC, 0x22, 0x20, 0x23, 0xFC, 0x3D, 0x04, 0xE5, 0x04, 0x49, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x01, 0x10, 0x11, 0x14, 0xFF, 0xFE, 0x21, 0x10, 0x21, 0xF0, 0x20, 0x44, 0xFF, 0xFE, 0x24, 0x44, 0x27, 0xFC, 0x20, 0x40, 0x27, 0xFC, 0x38, 0x40, 0xE7, 0xFC, 0x40, 0x40, 0x0F, 0xFE, 0x00, 0x00, 0x01, 0x10, 0x11, 0x10, 0xFF, 0xFC, 0x21, 0x10, 0x21, 0x14, 0x2F, 0xFE, 0xF8, 0x40, 0x23, 0xF8, 0x22, 0x48, 0x23, 0xF8, 0x22, 0x48, 0x3B, 0xF8, 0xE0, 0x00, 0x41, 0x10, 0x02, 0x0C, 0x04, 0x04, 0x00, 0x00, 0x17, 0xBC, 0xFD, 0xAC, 0x25, 0xAC, 0x26, 0xB4, 0x26, 0xB4, 0xFB, 0x18, 0x24, 0xA4, 0x20, 0x40, 0x2F, 0xFE, 0x20, 0x90, 0x39, 0x10, 0xE0, 0xA0, 0x40, 0x40, 0x01, 0xB0, 0x06, 0x0C, 0x00, 0x40, 0x14, 0x44, 0xFC, 0x44, 0x27, 0xFC, 0x21, 0x44, 0x21, 0x20, 0xFB, 0xFE, 0x22, 0x20, 0x27, 0xFC, 0x2A, 0x20, 0x23, 0xFC, 0x3A, 0x20, 0xE2, 0x24, 0x43, 0xFE, 0x02, 0x00, 0x02, 0x00, 0x00, 0x40, 0x10, 0x84, 0xFB, 0xFE, 0x22, 0x44, 0x22, 0x74, 0x22, 0x94, 0xFA, 0xD4, 0x23, 0x24, 0x22, 0x44, 0x22, 0x84, 0x23, 0xFC, 0x38, 0x40, 0xE5, 0x24, 0x45, 0x2A, 0x09, 0x0A, 0x00, 0xF8, 0x04, 0x40, 0x02, 0x40, 0xF2, 0x44, 0x2F, 0xFE, 0x24, 0x80, 0x24, 0x00, 0xF7, 0x7E, 0x25, 0x12, 0x25, 0x54, 0x25, 0x50, 0x35, 0x5E, 0xE9, 0x50, 0x49, 0x50, 0x15, 0xB0, 0x22, 0x90, 0x01, 0x0E, 0x00, 0x40, 0x17, 0xFC, 0xF9, 0x10, 0x20, 0xA0, 0x2F, 0xFE, 0x20, 0x00, 0xFB, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xF8, 0x38, 0x40, 0xEF, 0xFE, 0x40, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x14, 0xA4, 0xFA, 0xA8, 0x20, 0xA0, 0x2F, 0xFE, 0x21, 0x10, 0xF8, 0xA0, 0x27, 0xFC, 0x20, 0x40, 0x23, 0xF8, 0x20, 0x40, 0x3F, 0xFE, 0xE0, 0x40, 0x40, 0xA0, 0x03, 0x18, 0x0C, 0x06, 0x02, 0x00, 0x13, 0xBC, 0xFA, 0x04, 0x27, 0xA8, 0x28, 0x90, 0x25, 0x28, 0xFA, 0x46, 0x24, 0x40, 0x2A, 0x48, 0x21, 0x50, 0x27, 0xFE, 0x38, 0xE0, 0xE1, 0x50, 0x42, 0x4E, 0x0C, 0x44, 0x00, 0x40, 0x00, 0x78, 0x10, 0x40, 0xFF, 0xFE, 0x24, 0x82, 0x24, 0xF4, 0x27, 0x88, 0xFC, 0xF8, 0x24, 0x00, 0x27, 0xFE, 0x24, 0xC0, 0x27, 0x68, 0x3C, 0xB0, 0xE7, 0x68, 0x48, 0xA6, 0x13, 0x24, 0x00, 0x40, 0x00, 0x20, 0x0F, 0xA0, 0xF8, 0xBE, 0x28, 0xC4, 0x28, 0xA4, 0x2F, 0xA8, 0xF2, 0x10, 0x22, 0x28, 0x2B, 0xC4, 0x2A, 0x82, 0x2A, 0x7C, 0x3A, 0x44, 0xCB, 0xC4, 0x5E, 0x44, 0x00, 0x7C, 0x00, 0x44, 0x3E, 0x20, 0x23, 0xFC, 0x3E, 0x88, 0x20, 0x50, 0x3F, 0xFE, 0x22, 0x20, 0x62, 0xF8, 0xBE, 0x20, 0x00, 0x20, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x40, 0x01, 0x24, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0x08, 0x05, 0x28, 0xF7, 0xBC, 0x29, 0x48, 0x2F, 0xBE, 0x23, 0x18, 0xF5, 0xAA, 0x29, 0x4E, 0x23, 0xF8, 0x22, 0x08, 0x22, 0x48, 0x3A, 0x48, 0xE2, 0x48, 0x40, 0xB0, 0x01, 0x0C, 0x06, 0x04, 0x0F, 0xE4, 0x78, 0x3E, 0x4B, 0xA4, 0x68, 0x2C, 0x4B, 0xA4, 0x6A, 0xAC, 0x4B, 0xA4, 0x48, 0x24, 0xFF, 0xFE, 0x80, 0x02, 0x3F, 0xF8, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x40, 0x01, 0x24, 0xFF, 0xFE, 0x00, 0x20, 0x3E, 0x28, 0x22, 0xFC, 0x3E, 0x20, 0x22, 0x28, 0x3E, 0xFC, 0x00, 0x20, 0xFF, 0x24, 0x09, 0xFE, 0x28, 0x24, 0x2F, 0x24, 0x28, 0x34, 0x38, 0x28, 0x48, 0x20, 0x84, 0x26, 0x03, 0xFC, 0x20, 0x08, 0x23, 0xFC, 0x22, 0x08, 0xFA, 0x08, 0x23, 0xF8, 0x22, 0x08, 0xFA, 0x08, 0x23, 0xF8, 0x20, 0x00, 0xFB, 0xF8, 0x2A, 0xA8, 0x2A, 0xA8, 0x3A, 0xA8, 0x22, 0xA8, 0x2F, 0xFE, 0x20, 0x00, 0x20, 0x08, 0x20, 0x3C, 0x27, 0xC0, 0xFA, 0x48, 0x21, 0x48, 0x21, 0x50, 0xF8, 0x84, 0x23, 0x3E, 0x22, 0x04, 0xFA, 0x04, 0x2B, 0xBC, 0x2A, 0x04, 0x3A, 0x04, 0x22, 0x04, 0x23, 0xFC, 0x22, 0x04, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x90, 0xFC, 0x90, 0x10, 0x90, 0x30, 0x90, 0x38, 0x90, 0x54, 0x90, 0x50, 0x90, 0x90, 0x90, 0x11, 0x10, 0x11, 0x12, 0x12, 0x12, 0x14, 0x0E, 0x18, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0xFD, 0xFE, 0x12, 0x04, 0x30, 0x04, 0x38, 0x84, 0x54, 0x44, 0x50, 0x44, 0x90, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x28, 0x10, 0x10, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x08, 0xFC, 0x08, 0x10, 0x08, 0x30, 0x08, 0x3B, 0xF8, 0x56, 0x08, 0x52, 0x00, 0x92, 0x00, 0x12, 0x00, 0x12, 0x02, 0x12, 0x02, 0x11, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x08, 0xFC, 0x88, 0x12, 0x50, 0x31, 0x50, 0x39, 0x10, 0x54, 0xA0, 0x50, 0xA0, 0x90, 0x40, 0x10, 0xA0, 0x11, 0x20, 0x12, 0x18, 0x14, 0x0E, 0x18, 0x04, 0x10, 0x00, 0x10, 0x10, 0x13, 0xF8, 0x10, 0x10, 0xFD, 0x10, 0x11, 0x10, 0x31, 0x10, 0x39, 0x10, 0x55, 0x14, 0x51, 0xFE, 0x90, 0x04, 0x10, 0x24, 0x17, 0xF4, 0x10, 0x04, 0x10, 0x14, 0x10, 0x08, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x40, 0xFE, 0x40, 0x12, 0x44, 0x33, 0xFE, 0x3A, 0x44, 0x56, 0x44, 0x52, 0x44, 0x92, 0x44, 0x12, 0x44, 0x14, 0x84, 0x14, 0x84, 0x19, 0x28, 0x12, 0x10, 0x10, 0x20, 0x12, 0x20, 0x12, 0x20, 0x12, 0x20, 0xFE, 0x24, 0x12, 0x2C, 0x33, 0xB0, 0x3A, 0x20, 0x56, 0x20, 0x52, 0x20, 0x92, 0x20, 0x12, 0x22, 0x12, 0xA2, 0x13, 0x22, 0x12, 0x1E, 0x10, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xFD, 0x50, 0x11, 0x48, 0x32, 0x46, 0x3A, 0x42, 0x54, 0x48, 0x50, 0x48, 0x90, 0x50, 0x10, 0x50, 0x10, 0x20, 0x10, 0xC0, 0x13, 0x00, 0x1C, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x31, 0x0E, 0xDF, 0xF4, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0xFF, 0xFE, 0x12, 0x44, 0x32, 0x44, 0x3A, 0x44, 0x56, 0x44, 0x52, 0xA4, 0x92, 0x9C, 0x13, 0x0C, 0x12, 0x04, 0x12, 0x04, 0x12, 0x14, 0x12, 0x08, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x28, 0xFD, 0x28, 0x11, 0x28, 0x31, 0x28, 0x39, 0x28, 0x55, 0x48, 0x51, 0x48, 0x90, 0x60, 0x10, 0xA0, 0x10, 0xA2, 0x11, 0x22, 0x12, 0x1E, 0x14, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x10, 0xFC, 0xFD, 0x20, 0x11, 0x20, 0x32, 0x20, 0x38, 0x24, 0x57, 0xFE, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x11, 0x00, 0x11, 0x08, 0x11, 0x18, 0x11, 0x20, 0xFD, 0x40, 0x11, 0x80, 0x31, 0x04, 0x3B, 0xFE, 0x55, 0x40, 0x51, 0x20, 0x91, 0x20, 0x11, 0x10, 0x11, 0x10, 0x11, 0x4E, 0x11, 0x84, 0x11, 0x00, 0x10, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0xFD, 0x10, 0x11, 0x10, 0x31, 0x10, 0x39, 0x10, 0x55, 0x10, 0x52, 0xA8, 0x92, 0xA8, 0x14, 0x48, 0x14, 0x44, 0x18, 0x84, 0x11, 0x02, 0x10, 0x00, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x12, 0x10, 0x11, 0x60, 0x10, 0x04, 0x1F, 0xFE, 0x01, 0x04, 0x01, 0x04, 0x7F, 0xF4, 0x03, 0x94, 0x05, 0x48, 0x19, 0x30, 0x61, 0x0E, 0x01, 0x00, 0x10, 0x80, 0x10, 0x40, 0x10, 0x40, 0x10, 0x04, 0xFF, 0xFE, 0x10, 0x80, 0x30, 0x88, 0x38, 0xFC, 0x54, 0x88, 0x50, 0x88, 0x90, 0x88, 0x10, 0x88, 0x11, 0x08, 0x11, 0x08, 0x12, 0x50, 0x14, 0x20, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x48, 0xFE, 0x48, 0x12, 0x48, 0x32, 0x48, 0x3A, 0x48, 0x57, 0xF8, 0x52, 0x08, 0x92, 0x00, 0x12, 0x00, 0x12, 0x02, 0x12, 0x02, 0x11, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x11, 0xFC, 0x10, 0x08, 0x10, 0x90, 0xFC, 0x60, 0x10, 0x20, 0x33, 0xFE, 0x38, 0x22, 0x54, 0x24, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0xA0, 0x10, 0x40, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x05, 0x40, 0x09, 0x30, 0x11, 0x0E, 0x20, 0x24, 0xDF, 0xF0, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x14, 0x17, 0xFE, 0xFD, 0x10, 0x10, 0x08, 0x33, 0xFC, 0x38, 0x88, 0x54, 0x88, 0x50, 0x88, 0x90, 0x88, 0x10, 0xA8, 0x10, 0x90, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x80, 0xFC, 0x80, 0x10, 0x80, 0x31, 0x00, 0x39, 0x04, 0x55, 0xFE, 0x53, 0x04, 0x95, 0x04, 0x19, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x80, 0x10, 0xA0, 0x10, 0x90, 0x10, 0x94, 0xFF, 0xFE, 0x10, 0xA0, 0x30, 0xA0, 0x38, 0xA4, 0x54, 0xA4, 0x50, 0xA8, 0x91, 0x28, 0x11, 0x30, 0x12, 0x62, 0x12, 0xA2, 0x14, 0x1E, 0x18, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x00, 0x12, 0x40, 0xFE, 0x40, 0x12, 0x78, 0x32, 0x88, 0x3B, 0x10, 0x56, 0x20, 0x52, 0x20, 0x92, 0x50, 0x12, 0x8C, 0x13, 0x04, 0x12, 0x00, 0x13, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x40, 0xFC, 0x40, 0x12, 0x48, 0x31, 0x50, 0x38, 0x44, 0x57, 0xFE, 0x50, 0x40, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x10, 0x7E, 0x10, 0x40, 0xFC, 0x44, 0x13, 0xFE, 0x32, 0x04, 0x3A, 0x04, 0x56, 0x04, 0x53, 0xFC, 0x92, 0x04, 0x12, 0x00, 0x12, 0x00, 0x14, 0x00, 0x14, 0x00, 0x18, 0x00, 0x10, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0xFD, 0x24, 0x11, 0x24, 0x31, 0xFC, 0x39, 0x24, 0x55, 0x24, 0x51, 0x24, 0x91, 0xFC, 0x11, 0x24, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0xFD, 0x08, 0x11, 0xF8, 0x30, 0x00, 0x3B, 0xFE, 0x54, 0x80, 0x50, 0x88, 0x91, 0xFC, 0x10, 0x08, 0x10, 0x08, 0x10, 0x88, 0x10, 0x50, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0xFD, 0xFE, 0x11, 0x24, 0x31, 0x24, 0x39, 0x24, 0x55, 0x24, 0x51, 0xFC, 0x91, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0xFE, 0x08, 0x12, 0x08, 0x32, 0x08, 0x3A, 0x08, 0x57, 0xF8, 0x52, 0x08, 0x91, 0x10, 0x11, 0x10, 0x12, 0x08, 0x12, 0x04, 0x14, 0x04, 0x10, 0x00, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x12, 0x00, 0xFE, 0x00, 0x12, 0x04, 0x33, 0xFE, 0x3A, 0x20, 0x56, 0x60, 0x52, 0x20, 0x92, 0x30, 0x12, 0x2C, 0x14, 0x24, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x12, 0x00, 0xFE, 0x08, 0x13, 0xFC, 0x32, 0x00, 0x3A, 0xF8, 0x56, 0x88, 0x52, 0x88, 0x92, 0xA8, 0x12, 0x90, 0x14, 0x82, 0x14, 0x82, 0x18, 0x7E, 0x10, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0xFD, 0x10, 0x12, 0x8E, 0x34, 0x44, 0x38, 0x40, 0x54, 0x00, 0x53, 0xF8, 0x90, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0xA0, 0x10, 0x40, 0x10, 0x20, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x11, 0xFE, 0xFD, 0x04, 0x12, 0x24, 0x35, 0xF4, 0x39, 0x24, 0x55, 0x24, 0x51, 0x24, 0x91, 0x24, 0x11, 0xE4, 0x11, 0x24, 0x10, 0x04, 0x10, 0x28, 0x10, 0x10, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x12, 0x20, 0xFE, 0x20, 0x12, 0x24, 0x33, 0xFE, 0x3A, 0x20, 0x56, 0x20, 0x52, 0x20, 0x92, 0x10, 0x12, 0x52, 0x12, 0x8A, 0x13, 0x26, 0x12, 0x12, 0x10, 0x00, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x12, 0x00, 0xFE, 0x20, 0x12, 0x20, 0x32, 0x24, 0x3B, 0xFE, 0x54, 0x20, 0x50, 0x20, 0x90, 0xA8, 0x11, 0x24, 0x12, 0x22, 0x14, 0x22, 0x10, 0xA0, 0x10, 0x40, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x13, 0xFE, 0xFE, 0x02, 0x14, 0x04, 0x31, 0x00, 0x39, 0x10, 0x55, 0x30, 0x51, 0x40, 0x91, 0x80, 0x11, 0x00, 0x11, 0x04, 0x11, 0x04, 0x10, 0xFC, 0x10, 0x00, 0x10, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x11, 0x10, 0xFC, 0xA0, 0x10, 0x40, 0x30, 0xB0, 0x3B, 0x0E, 0x54, 0x44, 0x50, 0x50, 0x93, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xF8, 0xFC, 0x50, 0x10, 0x64, 0x37, 0xFE, 0x38, 0x80, 0x55, 0xFC, 0x52, 0x40, 0x94, 0x88, 0x18, 0xFC, 0x10, 0x08, 0x10, 0x08, 0x10, 0x28, 0x10, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x13, 0xF8, 0xFC, 0x50, 0x10, 0x64, 0x37, 0xFE, 0x38, 0x40, 0x54, 0x88, 0x51, 0x98, 0x92, 0xA0, 0x14, 0xC0, 0x18, 0x84, 0x10, 0x84, 0x10, 0x7C, 0x10, 0x00, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x90, 0xFC, 0x90, 0x10, 0x90, 0x32, 0x94, 0x3A, 0x94, 0x55, 0x94, 0x50, 0x98, 0x90, 0x90, 0x10, 0x90, 0x10, 0x90, 0x10, 0x94, 0x17, 0xFE, 0x10, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0x9C, 0x13, 0xE0, 0xFC, 0x50, 0x10, 0x20, 0x30, 0x52, 0x39, 0x8E, 0x54, 0x00, 0x53, 0xFC, 0x90, 0x90, 0x10, 0x90, 0x10, 0x90, 0x11, 0x12, 0x12, 0x12, 0x14, 0x0E, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x40, 0xFC, 0x80, 0x11, 0x10, 0x32, 0x08, 0x3B, 0xFC, 0x54, 0x40, 0x50, 0x48, 0x97, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x44, 0x10, 0x7E, 0x10, 0x40, 0xFC, 0x48, 0x13, 0xFC, 0x32, 0x08, 0x3A, 0x48, 0x56, 0x48, 0x52, 0x48, 0x92, 0x48, 0x12, 0x48, 0x10, 0x80, 0x10, 0xB0, 0x11, 0x0C, 0x16, 0x04, 0x10, 0x40, 0x10, 0x40, 0x14, 0x44, 0x12, 0x48, 0xFD, 0x50, 0x10, 0x44, 0x37, 0xFE, 0x38, 0xA0, 0x54, 0xA0, 0x50, 0xA0, 0x90, 0xA0, 0x10, 0xA0, 0x11, 0x22, 0x11, 0x22, 0x12, 0x1E, 0x14, 0x00, 0x10, 0x40, 0x10, 0x40, 0x12, 0x48, 0x12, 0x48, 0xFF, 0xF8, 0x10, 0x00, 0x33, 0xF8, 0x38, 0x08, 0x54, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x12, 0x00, 0x12, 0x02, 0x12, 0x02, 0x11, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x0C, 0x17, 0x70, 0x11, 0x10, 0xFD, 0x10, 0x12, 0x14, 0x3A, 0xFE, 0x37, 0x10, 0x51, 0x10, 0x51, 0x10, 0x95, 0x10, 0x15, 0x7C, 0x12, 0x00, 0x15, 0x06, 0x18, 0xFC, 0x10, 0x00, 0x10, 0x08, 0x10, 0x3C, 0x13, 0xE0, 0x10, 0x20, 0xFC, 0x20, 0x10, 0x24, 0x37, 0xFE, 0x38, 0x20, 0x54, 0x24, 0x51, 0xFE, 0x91, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x00, 0x10, 0x40, 0x10, 0xC0, 0x11, 0x04, 0xFE, 0x3E, 0x12, 0x04, 0x32, 0x04, 0x3A, 0x04, 0x57, 0xBC, 0x52, 0x04, 0x92, 0x04, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04, 0x13, 0xFC, 0x12, 0x04, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA4, 0x11, 0x28, 0xFD, 0x30, 0x13, 0x60, 0x35, 0xA4, 0x39, 0x1C, 0x55, 0x40, 0x50, 0x44, 0x97, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x80, 0x10, 0x88, 0x11, 0x7C, 0x12, 0x00, 0xFE, 0x80, 0x14, 0x84, 0x31, 0x7E, 0x39, 0x08, 0x53, 0x08, 0x55, 0x08, 0x91, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x28, 0x11, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0xFE, 0x0E, 0x14, 0x24, 0x31, 0xF0, 0x38, 0x00, 0x54, 0x08, 0x57, 0xFC, 0x90, 0x80, 0x10, 0x80, 0x11, 0x10, 0x12, 0x08, 0x17, 0xFC, 0x10, 0x04, 0x10, 0x10, 0x10, 0x10, 0x1E, 0xFC, 0x22, 0x10, 0x24, 0x50, 0x54, 0x90, 0x08, 0xFC, 0x11, 0x10, 0x21, 0x14, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x11, 0x0E, 0x61, 0x04, 0x01, 0x00, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x14, 0x50, 0x14, 0x48, 0x24, 0x44, 0x45, 0x44, 0x01, 0x00, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x30, 0x11, 0x0E, 0x61, 0x04, 0x01, 0x00, 0x01, 0x00, 0x11, 0x10, 0x09, 0x20, 0x3F, 0xF8, 0x02, 0x00, 0x7F, 0xFC, 0x04, 0x40, 0x08, 0x30, 0x31, 0x0E, 0xC1, 0x04, 0x3F, 0xF8, 0x01, 0x00, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x10, 0x40, 0x10, 0x20, 0x12, 0x20, 0x13, 0xFE, 0xFE, 0x02, 0x14, 0x44, 0x30, 0x40, 0x38, 0x84, 0x57, 0xFE, 0x50, 0x88, 0x91, 0x08, 0x10, 0x90, 0x10, 0x60, 0x10, 0x90, 0x11, 0x0C, 0x12, 0x04, 0x10, 0x00, 0x10, 0x04, 0x17, 0xBE, 0x10, 0x84, 0xFC, 0x84, 0x12, 0xA4, 0x32, 0x94, 0x38, 0x94, 0x54, 0x84, 0x51, 0x8C, 0x96, 0xB4, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x12, 0x94, 0x11, 0x08, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFE, 0xFE, 0x1C, 0x70, 0x2A, 0xA8, 0x49, 0x26, 0x00, 0x20, 0x0F, 0xF0, 0x08, 0x20, 0x0A, 0x20, 0x09, 0xA0, 0x08, 0xA0, 0x10, 0x22, 0x10, 0x22, 0x60, 0x1E, 0x10, 0x20, 0x11, 0x20, 0x11, 0x28, 0x11, 0xFC, 0xFD, 0x20, 0x12, 0x20, 0x30, 0x24, 0x3B, 0xFE, 0x54, 0x00, 0x51, 0xFC, 0x91, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x08, 0x10, 0x3C, 0x17, 0xC0, 0x12, 0x48, 0xFD, 0x48, 0x11, 0x50, 0x33, 0xF8, 0x38, 0x10, 0x54, 0x60, 0x50, 0x44, 0x97, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x10, 0x40, 0x10, 0x40, 0x10, 0xF8, 0x11, 0x10, 0xFE, 0x24, 0x11, 0xFE, 0x31, 0x24, 0x39, 0x24, 0x55, 0xFC, 0x51, 0x24, 0x91, 0x24, 0x11, 0xFC, 0x11, 0x24, 0x12, 0x24, 0x12, 0x34, 0x14, 0x28, 0x10, 0x80, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0xFC, 0x00, 0x11, 0x10, 0x30, 0xA4, 0x3F, 0xFE, 0x54, 0x40, 0x50, 0x40, 0x90, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x10, 0x12, 0x10, 0x11, 0x10, 0x11, 0x10, 0xFC, 0x54, 0x12, 0x52, 0x32, 0x90, 0x38, 0x14, 0x55, 0x14, 0x51, 0x18, 0x92, 0x08, 0x16, 0x10, 0x12, 0x20, 0x12, 0x40, 0x10, 0x80, 0x13, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x08, 0x10, 0x08, 0xFD, 0xF8, 0x10, 0x08, 0x30, 0x08, 0x3B, 0xF8, 0x54, 0x40, 0x51, 0x48, 0x91, 0x48, 0x12, 0x50, 0x10, 0xA0, 0x10, 0x90, 0x11, 0x0E, 0x16, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x13, 0xF8, 0xFC, 0x50, 0x10, 0x64, 0x37, 0xFE, 0x38, 0x80, 0x55, 0xF8, 0x53, 0x08, 0x95, 0x08, 0x19, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x08, 0x20, 0x08, 0x28, 0x7E, 0xFC, 0x08, 0x20, 0x1C, 0x70, 0x2A, 0xAC, 0x49, 0x20, 0x04, 0xC0, 0x08, 0x20, 0x10, 0x10, 0x2F, 0xEE, 0xC4, 0x24, 0x04, 0x20, 0x04, 0x20, 0x08, 0xA0, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x10, 0x40, 0xFC, 0x40, 0x13, 0xFE, 0x31, 0x22, 0x38, 0xA4, 0x56, 0x20, 0x51, 0x20, 0x90, 0x24, 0x17, 0xFE, 0x10, 0x40, 0x10, 0x58, 0x11, 0x86, 0x16, 0x02, 0x08, 0x08, 0x0A, 0x0C, 0x7F, 0x70, 0x14, 0x40, 0x14, 0x44, 0x3F, 0x7E, 0x04, 0x48, 0x7F, 0x48, 0x04, 0x88, 0x05, 0x08, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x19, 0x30, 0x61, 0x0E, 0x01, 0x00, 0x10, 0x44, 0x10, 0x7E, 0x10, 0x40, 0x10, 0x48, 0xFF, 0xFC, 0x12, 0x08, 0x33, 0xF8, 0x3A, 0x08, 0x57, 0xF8, 0x52, 0x48, 0x90, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x94, 0x12, 0x94, 0xFE, 0x94, 0x13, 0xFC, 0x30, 0x80, 0x38, 0x88, 0x55, 0xFC, 0x51, 0x08, 0x92, 0x88, 0x14, 0x50, 0x10, 0x20, 0x10, 0xC0, 0x13, 0x00, 0x1C, 0x00, 0x10, 0x10, 0x10, 0x38, 0x17, 0xC0, 0x10, 0x44, 0xFF, 0xFE, 0x12, 0x48, 0x32, 0x48, 0x3A, 0x48, 0x57, 0xFC, 0x52, 0x48, 0x92, 0x48, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0x10, 0x80, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0xF8, 0x00, 0x10, 0x08, 0x33, 0xFC, 0x3A, 0x08, 0x56, 0x08, 0x52, 0x08, 0x93, 0xF8, 0x10, 0x40, 0x12, 0x48, 0x14, 0x46, 0x19, 0x42, 0x10, 0x80, 0x10, 0x80, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0xFF, 0xF8, 0x12, 0x08, 0x32, 0x08, 0x3B, 0xF8, 0x54, 0x00, 0x53, 0xF8, 0x90, 0x10, 0x1F, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x10, 0x10, 0x10, 0x14, 0x17, 0x7E, 0x11, 0x14, 0xFD, 0xFE, 0x12, 0x14, 0x37, 0x7C, 0x39, 0x10, 0x55, 0x7C, 0x51, 0x10, 0x95, 0xFE, 0x15, 0x10, 0x12, 0x10, 0x15, 0x16, 0x18, 0xFC, 0x10, 0x00, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x10, 0x48, 0xFC, 0x48, 0x13, 0xFE, 0x30, 0x48, 0x38, 0x48, 0x57, 0xF8, 0x52, 0x48, 0x91, 0x50, 0x10, 0xE0, 0x11, 0x50, 0x16, 0x4E, 0x11, 0x44, 0x10, 0x80, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0xFF, 0xFC, 0x12, 0x20, 0x32, 0x24, 0x3B, 0xFE, 0x56, 0x20, 0x52, 0x24, 0x93, 0xFE, 0x13, 0x04, 0x15, 0x04, 0x15, 0x04, 0x19, 0xFC, 0x11, 0x04, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x10, 0x40, 0xFD, 0xF8, 0x10, 0x80, 0x37, 0xFC, 0x39, 0x10, 0x56, 0x08, 0x55, 0xF6, 0x98, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x10, 0xB0, 0x11, 0x0C, 0x16, 0x04, 0x11, 0x10, 0x11, 0x10, 0x13, 0xFC, 0x11, 0x10, 0xFD, 0xF0, 0x11, 0x10, 0x31, 0x10, 0x39, 0xF0, 0x55, 0x10, 0x51, 0x14, 0x9F, 0xFE, 0x12, 0x50, 0x12, 0x88, 0x12, 0x00, 0x13, 0xFC, 0x10, 0x00, 0x20, 0x40, 0x20, 0x40, 0x20, 0x44, 0x2F, 0xFE, 0xF8, 0x40, 0x20, 0x44, 0x37, 0xFE, 0x6D, 0x14, 0x64, 0xA4, 0xA5, 0xF4, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x54, 0x24, 0x08, 0x10, 0x40, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0xFC, 0xE0, 0x11, 0x50, 0x32, 0x4E, 0x3C, 0x44, 0x57, 0xF8, 0x52, 0x08, 0x93, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x10, 0x00, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x40, 0xFF, 0xF8, 0x12, 0x48, 0x33, 0x58, 0x3A, 0xE8, 0x56, 0x48, 0x53, 0xF8, 0x90, 0xC0, 0x10, 0xE0, 0x11, 0x50, 0x12, 0x4E, 0x14, 0x44, 0x10, 0x40, 0x11, 0x20, 0x15, 0x20, 0x15, 0x24, 0x15, 0x3E, 0xFD, 0x50, 0x15, 0x88, 0x30, 0x08, 0x3B, 0xFC, 0x56, 0x08, 0x52, 0x48, 0x92, 0x48, 0x12, 0x48, 0x12, 0xA8, 0x10, 0xA2, 0x11, 0x22, 0x16, 0x1E, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x12, 0x08, 0xFB, 0xF8, 0x10, 0x00, 0x37, 0xFE, 0x3A, 0x08, 0x57, 0xF8, 0x52, 0x08, 0x93, 0xF8, 0x12, 0x08, 0x12, 0x0E, 0x1F, 0xF8, 0x10, 0x08, 0x10, 0x08, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0xFE, 0x08, 0x12, 0x08, 0x33, 0xF8, 0x38, 0x00, 0x54, 0x04, 0x57, 0xBE, 0x94, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x14, 0xA4, 0x17, 0xBC, 0x14, 0xA4, 0x10, 0x08, 0x10, 0xFC, 0x3E, 0x80, 0x48, 0xF8, 0x08, 0x88, 0x7E, 0xF8, 0x14, 0x80, 0x22, 0xFC, 0x41, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x39, 0x30, 0xC1, 0x0E, 0x01, 0x00, 0x10, 0x10, 0x10, 0xD0, 0x17, 0x10, 0x11, 0x10, 0xF9, 0x54, 0x17, 0xD4, 0x31, 0x38, 0x3B, 0x90, 0x53, 0x50, 0x55, 0x28, 0x95, 0x28, 0x19, 0x28, 0x11, 0x28, 0x11, 0x44, 0x11, 0x82, 0x11, 0x00, 0x10, 0x40, 0x10, 0xBC, 0x13, 0x24, 0x12, 0x24, 0xFE, 0x24, 0x13, 0xA6, 0x32, 0x40, 0x3A, 0x3C, 0x57, 0x84, 0x52, 0x24, 0x92, 0x28, 0x13, 0xA8, 0x1E, 0x10, 0x12, 0x28, 0x12, 0x46, 0x13, 0x84, 0x10, 0x20, 0x14, 0x44, 0x12, 0xFE, 0x12, 0x84, 0xFC, 0x84, 0x10, 0xFC, 0x36, 0x80, 0x3A, 0xFC, 0x56, 0x84, 0x52, 0x84, 0x92, 0x84, 0x12, 0xFC, 0x12, 0x80, 0x15, 0x06, 0x18, 0xFC, 0x10, 0x00, 0x10, 0x80, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0xFD, 0x10, 0x10, 0xA4, 0x37, 0xFE, 0x38, 0x40, 0x54, 0x48, 0x57, 0xFC, 0x90, 0x40, 0x11, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x11, 0x40, 0x10, 0x80, 0x10, 0x00, 0x14, 0x04, 0x12, 0xFE, 0x14, 0x04, 0xFC, 0x04, 0x15, 0xF4, 0x35, 0x14, 0x3D, 0x14, 0x55, 0xF4, 0x54, 0x04, 0x95, 0xF4, 0x15, 0x14, 0x15, 0x14, 0x15, 0xF4, 0x14, 0x14, 0x14, 0x08, 0x11, 0x08, 0x10, 0x90, 0x13, 0xFC, 0x10, 0x40, 0xFC, 0x50, 0x13, 0xF8, 0x30, 0x40, 0x38, 0x44, 0x57, 0xFE, 0x50, 0x80, 0x91, 0xFC, 0x12, 0x20, 0x14, 0x20, 0x18, 0x24, 0x13, 0xFE, 0x10, 0x00, 0x10, 0x80, 0x14, 0x44, 0x12, 0x48, 0x10, 0x10, 0xFC, 0x04, 0x17, 0xFE, 0x30, 0xA0, 0x39, 0x10, 0x56, 0x48, 0x55, 0xF6, 0x98, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x80, 0x14, 0x40, 0x17, 0xFE, 0x14, 0x02, 0xF8, 0x14, 0x13, 0xF8, 0x30, 0x00, 0x3B, 0xF8, 0x56, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x00, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x24, 0x12, 0x24, 0xFF, 0xFC, 0x12, 0x00, 0x32, 0xFC, 0x3A, 0x84, 0x56, 0x84, 0x52, 0xFC, 0x92, 0x84, 0x12, 0xFC, 0x14, 0x84, 0x14, 0x84, 0x18, 0xFC, 0x10, 0x84, 0x10, 0x00, 0x17, 0xF8, 0x11, 0x10, 0x11, 0x1C, 0xFD, 0xE4, 0x12, 0xA4, 0x3A, 0x44, 0x35, 0xB4, 0x54, 0x08, 0x5B, 0xFC, 0x92, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0x12, 0xA8, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0xFF, 0xF8, 0x10, 0x80, 0x37, 0xFE, 0x39, 0x10, 0x52, 0x38, 0x55, 0xCE, 0x98, 0x44, 0x17, 0xFC, 0x10, 0xE0, 0x11, 0x58, 0x16, 0x44, 0x10, 0x40, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x50, 0x12, 0x50, 0xFF, 0xDC, 0x12, 0x50, 0x32, 0x50, 0x3B, 0xDC, 0x56, 0x50, 0x52, 0x50, 0x93, 0xDC, 0x12, 0x50, 0x12, 0x50, 0x12, 0x54, 0x13, 0xFE, 0x10, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x08, 0x13, 0xF8, 0xFE, 0x08, 0x13, 0xF8, 0x38, 0x04, 0x37, 0xBE, 0x50, 0x84, 0x54, 0xA4, 0x92, 0x94, 0x11, 0x8C, 0x16, 0xB4, 0x10, 0x84, 0x12, 0x94, 0x11, 0x08, 0x11, 0x40, 0x11, 0x24, 0x11, 0xFE, 0xFA, 0x20, 0x17, 0xFC, 0x32, 0x20, 0x3B, 0xFC, 0x56, 0x20, 0x53, 0xFE, 0x92, 0x20, 0x10, 0x24, 0x17, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x84, 0x11, 0x04, 0x13, 0xC4, 0x12, 0x44, 0xFF, 0xC4, 0x12, 0x7E, 0x3B, 0xC4, 0x36, 0x64, 0x52, 0x54, 0x57, 0xD4, 0x90, 0xC4, 0x11, 0x44, 0x12, 0x44, 0x14, 0x44, 0x11, 0x54, 0x10, 0x88, 0x10, 0x40, 0x10, 0x88, 0x13, 0xFC, 0x12, 0x08, 0xFF, 0xF8, 0x12, 0x08, 0x33, 0xF8, 0x38, 0x80, 0x57, 0xFE, 0x51, 0x10, 0x92, 0x48, 0x14, 0x46, 0x1B, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x24, 0x17, 0xFE, 0x10, 0x00, 0xFD, 0xF8, 0x11, 0x08, 0x37, 0xFE, 0x39, 0x08, 0x55, 0xF8, 0x50, 0x84, 0x91, 0x48, 0x13, 0x30, 0x15, 0x10, 0x19, 0x4E, 0x11, 0x84, 0x11, 0x00, 0x10, 0x80, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x00, 0xFB, 0xF8, 0x12, 0x08, 0x33, 0xF8, 0x38, 0x00, 0x57, 0xFC, 0x54, 0x04, 0x95, 0xF4, 0x15, 0x14, 0x15, 0x14, 0x15, 0xF4, 0x14, 0x14, 0x14, 0x08, 0x22, 0x04, 0x14, 0x7E, 0xFF, 0xC4, 0x08, 0x7C, 0x49, 0x44, 0x49, 0x7C, 0x7F, 0x44, 0x08, 0x94, 0x11, 0x08, 0x21, 0x00, 0xFF, 0xFE, 0x03, 0x80, 0x0D, 0x40, 0x31, 0x30, 0xC1, 0x0E, 0x01, 0x00, 0x10, 0x80, 0x10, 0x40, 0x17, 0xFE, 0x14, 0x02, 0xF8, 0x34, 0x11, 0xC0, 0x31, 0x08, 0x39, 0xFC, 0x55, 0x10, 0x51, 0x10, 0x91, 0x14, 0x1F, 0xFE, 0x10, 0x00, 0x11, 0x10, 0x12, 0x0C, 0x14, 0x04, 0x10, 0x80, 0x10, 0x40, 0x17, 0xFE, 0x14, 0x02, 0xF8, 0xA4, 0x11, 0x10, 0x32, 0x48, 0x38, 0xA0, 0x55, 0x10, 0x52, 0x08, 0x97, 0xFE, 0x1A, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x20, 0x14, 0x20, 0x12, 0x24, 0x12, 0xFC, 0xF8, 0x28, 0x16, 0x30, 0x33, 0xFE, 0x3A, 0x40, 0x56, 0xFC, 0x53, 0x44, 0x92, 0x44, 0x12, 0x7C, 0x12, 0xC4, 0x13, 0x44, 0x12, 0x7C, 0x10, 0x44, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0xFF, 0xFC, 0x12, 0x20, 0x33, 0x24, 0x3A, 0xA8, 0x57, 0xFC, 0x53, 0x04, 0x95, 0xFC, 0x15, 0x04, 0x15, 0xFC, 0x15, 0x04, 0x19, 0x14, 0x11, 0x08, 0x11, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x11, 0x10, 0xFD, 0xF0, 0x10, 0x44, 0x37, 0xFE, 0x3C, 0x44, 0x57, 0xFC, 0x50, 0x40, 0x97, 0xFC, 0x10, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x40, 0xFA, 0x48, 0x11, 0x50, 0x37, 0xFE, 0x38, 0x00, 0x57, 0xFC, 0x54, 0x04, 0x95, 0xF4, 0x15, 0x14, 0x15, 0xF4, 0x14, 0x04, 0x17, 0xFC, 0x14, 0x04, 0x10, 0x10, 0x10, 0x18, 0x10, 0x14, 0x13, 0xFE, 0xFE, 0x10, 0x12, 0x90, 0x32, 0xD2, 0x3A, 0x92, 0x57, 0xF4, 0x52, 0x94, 0x93, 0xD8, 0x12, 0xA8, 0x14, 0x9A, 0x15, 0xAA, 0x18, 0xC6, 0x10, 0x04, 0x10, 0x10, 0x13, 0xF8, 0x10, 0x40, 0x17, 0xFE, 0xFD, 0x52, 0x14, 0xE4, 0x31, 0x50, 0x38, 0x40, 0x57, 0xFC, 0x50, 0x00, 0x9F, 0xFE, 0x11, 0x00, 0x11, 0xF8, 0x10, 0x08, 0x10, 0x48, 0x10, 0x30, 0x10, 0x40, 0x12, 0x48, 0x11, 0x50, 0x14, 0x40, 0xFF, 0xFE, 0x14, 0x02, 0x31, 0xF4, 0x39, 0x10, 0x55, 0x10, 0x51, 0xF0, 0x90, 0x40, 0x17, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x00, 0x44, 0x48, 0x29, 0xF0, 0x10, 0x54, 0x2F, 0xFE, 0x48, 0x80, 0x19, 0xF8, 0x2B, 0x08, 0x4D, 0xF8, 0x09, 0x08, 0x29, 0xF8, 0x11, 0x00, 0xFF, 0xFE, 0x05, 0x40, 0x19, 0x30, 0x61, 0x0E, 0x01, 0x00, 0x22, 0x04, 0x22, 0x04, 0x23, 0xD4, 0x24, 0x8C, 0xFF, 0xCC, 0x25, 0x64, 0x75, 0x54, 0x6F, 0xD4, 0x65, 0x46, 0xA5, 0x7C, 0x27, 0xC4, 0x25, 0x44, 0x25, 0x44, 0x25, 0x44, 0x29, 0x44, 0x30, 0x84, 0x10, 0x08, 0x13, 0xC8, 0x10, 0x88, 0x11, 0x10, 0xFF, 0xFE, 0x12, 0x64, 0x32, 0x54, 0x3B, 0xD4, 0x56, 0x54, 0x53, 0xD4, 0x92, 0x48, 0x12, 0x68, 0x17, 0xC8, 0x10, 0x54, 0x10, 0x52, 0x10, 0x60, 0x22, 0x10, 0x22, 0x18, 0x22, 0x14, 0x2F, 0x94, 0xF2, 0x7E, 0x22, 0x50, 0x7F, 0xD0, 0x6A, 0x54, 0xA2, 0x54, 0x2B, 0xC8, 0x2A, 0x6A, 0x2A, 0x56, 0x2E, 0x20, 0x2A, 0x06, 0x31, 0xFC, 0x20, 0x00, 0x14, 0x20, 0xFF, 0x24, 0x14, 0x3E, 0x3F, 0x44, 0x41, 0xA4, 0xBD, 0x28, 0x25, 0x10, 0x3D, 0x28, 0x02, 0x46, 0x01, 0x00, 0xFF, 0xFE, 0x03, 0x80, 0x0D, 0x40, 0x31, 0x30, 0xC1, 0x0E, 0x01, 0x00, 0x01, 0x00, 0x3F, 0xF8, 0x09, 0x20, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x08, 0x00, 0x1F, 0xF0, 0x68, 0x10, 0x0F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x40, 0x19, 0x30, 0x61, 0x0E, 0x01, 0x00, 0x20, 0x00, 0x20, 0x04, 0x2F, 0xFE, 0x28, 0x08, 0xFA, 0x28, 0x29, 0x48, 0x6F, 0xEE, 0x78, 0x92, 0x6A, 0xA4, 0xAA, 0xA8, 0x2B, 0xE8, 0x28, 0xA8, 0x28, 0x88, 0x28, 0x94, 0x29, 0x14, 0x32, 0x22, 0x10, 0xA0, 0x10, 0x90, 0x10, 0x84, 0x11, 0xFE, 0xFD, 0x10, 0x13, 0x10, 0x35, 0xFC, 0x39, 0x10, 0x55, 0xFC, 0x51, 0x10, 0x91, 0x14, 0x11, 0xFE, 0x11, 0x00, 0x12, 0xA8, 0x12, 0xA6, 0x14, 0x02, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x48, 0xFD, 0xF6, 0x10, 0xA0, 0x3A, 0x48, 0x36, 0xA8, 0x53, 0xF8, 0x50, 0x44, 0x97, 0xFE, 0x14, 0x44, 0x14, 0xA4, 0x15, 0xF4, 0x14, 0x14, 0x14, 0x08, 0x11, 0x00, 0x11, 0xF0, 0x12, 0x24, 0x17, 0xFE, 0xFC, 0x44, 0x17, 0xFC, 0x3C, 0x44, 0x37, 0xFC, 0x50, 0x00, 0x5F, 0xFE, 0x90, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x11, 0x10, 0x10, 0xA0, 0x17, 0xFC, 0x10, 0xA0, 0xFF, 0xF8, 0x12, 0xA8, 0x33, 0x38, 0x3A, 0x08, 0x56, 0xE8, 0x52, 0x08, 0x93, 0xF8, 0x10, 0x10, 0x1F, 0xFE, 0x12, 0x10, 0x11, 0x50, 0x10, 0x20, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x13, 0xFC, 0xFE, 0x20, 0x13, 0xAC, 0x32, 0x70, 0x3B, 0xAC, 0x56, 0x20, 0x52, 0xA8, 0x92, 0xFC, 0x12, 0x20, 0x13, 0xFE, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x90, 0x10, 0x60, 0xFF, 0xFE, 0x10, 0xC4, 0x33, 0x48, 0x38, 0x44, 0x57, 0xFE, 0x54, 0xA4, 0x95, 0x14, 0x17, 0xFC, 0x15, 0x14, 0x15, 0xF4, 0x14, 0x14, 0x14, 0x08, 0x20, 0x40, 0x22, 0x78, 0x22, 0x48, 0x22, 0x48, 0xF4, 0xF8, 0x2F, 0x08, 0x32, 0xFE, 0x6C, 0x20, 0x64, 0x54, 0xAF, 0xB8, 0x20, 0x50, 0x23, 0xB8, 0x2C, 0x54, 0x20, 0x92, 0x21, 0x10, 0x20, 0x30, 0x10, 0x10, 0x13, 0xF8, 0x10, 0x40, 0x17, 0xFE, 0xFD, 0x52, 0x14, 0xE4, 0x31, 0x50, 0x38, 0x40, 0x57, 0xF8, 0x52, 0x48, 0x92, 0x48, 0x13, 0xF8, 0x12, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x12, 0x08, 0x10, 0x80, 0x10, 0xF8, 0x11, 0x10, 0x13, 0xFE, 0xFE, 0x88, 0x13, 0x24, 0x33, 0xFE, 0x3A, 0x00, 0x56, 0xFC, 0x52, 0x00, 0x92, 0xFC, 0x12, 0x00, 0x14, 0xFC, 0x14, 0x84, 0x18, 0xFC, 0x10, 0x84, 0x10, 0x40, 0x1F, 0xFE, 0x10, 0x00, 0x17, 0xFC, 0xFD, 0x14, 0x15, 0xF4, 0x35, 0x14, 0x3F, 0xFC, 0x50, 0x00, 0x53, 0xF8, 0x90, 0x00, 0x1F, 0xFE, 0x11, 0x50, 0x12, 0x4C, 0x15, 0x44, 0x10, 0x80, 0x00, 0x20, 0x3E, 0x28, 0x23, 0xFC, 0x3E, 0x88, 0x20, 0x50, 0x3F, 0xFE, 0x62, 0x20, 0xA2, 0xF8, 0x3E, 0x20, 0x01, 0x24, 0xFF, 0xFE, 0x03, 0x80, 0x0D, 0x40, 0x31, 0x30, 0xC1, 0x0E, 0x01, 0x00, 0x10, 0x80, 0x14, 0x40, 0x17, 0xFE, 0x15, 0x02, 0xF9, 0xBC, 0x12, 0xA8, 0x35, 0xB0, 0x3B, 0x10, 0x52, 0xE8, 0x54, 0x06, 0x9B, 0xF8, 0x10, 0x40, 0x11, 0x50, 0x12, 0x4C, 0x14, 0x44, 0x10, 0xC0, 0x00, 0x20, 0x22, 0x28, 0x14, 0x24, 0xFF, 0xA4, 0x14, 0x20, 0x7F, 0xFE, 0x55, 0x20, 0x55, 0x20, 0x67, 0x20, 0x41, 0x20, 0x7F, 0x20, 0x41, 0x50, 0x41, 0x50, 0x7F, 0x88, 0x40, 0x8E, 0x01, 0x04, 0x08, 0x40, 0x7F, 0x44, 0x08, 0x7E, 0x3E, 0x48, 0x08, 0x88, 0x7F, 0x28, 0x10, 0x10, 0x1E, 0x28, 0x22, 0x46, 0x4A, 0x90, 0x05, 0x08, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x70, 0x70, 0x0E, 0x00, 0x08, 0x04, 0xFC, 0xFE, 0x88, 0x20, 0x88, 0x20, 0x88, 0x3D, 0x0E, 0x26, 0x00, 0x45, 0xF8, 0x64, 0x08, 0x98, 0x88, 0x08, 0x50, 0x10, 0x20, 0x10, 0x50, 0x20, 0x90, 0x41, 0x0E, 0x06, 0x04, 0x00, 0x08, 0x05, 0xFC, 0xFF, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3D, 0xF8, 0x25, 0x08, 0x45, 0x08, 0x65, 0x08, 0x99, 0xF8, 0x09, 0x08, 0x11, 0x08, 0x11, 0x08, 0x21, 0x08, 0x47, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x04, 0x84, 0xFE, 0xFE, 0x21, 0x00, 0x22, 0xF8, 0x3C, 0x10, 0x24, 0x24, 0x45, 0xFE, 0x64, 0x94, 0x98, 0x94, 0x09, 0x24, 0x11, 0x24, 0x12, 0x44, 0x24, 0x84, 0x41, 0x28, 0x00, 0x10, 0x00, 0x40, 0x04, 0x40, 0xFE, 0xA0, 0x20, 0xA0, 0x21, 0x18, 0x3E, 0x26, 0x24, 0x40, 0x44, 0x88, 0x67, 0x10, 0x98, 0x20, 0x08, 0x44, 0x11, 0x88, 0x10, 0x10, 0x20, 0x60, 0x41, 0x80, 0x06, 0x00, 0x00, 0x04, 0x05, 0xFE, 0xFF, 0x04, 0x21, 0x04, 0x21, 0xFC, 0x3C, 0x00, 0x25, 0xFC, 0x45, 0x04, 0x65, 0x24, 0x99, 0x24, 0x09, 0x24, 0x11, 0x24, 0x11, 0x24, 0x20, 0x50, 0x40, 0x8C, 0x03, 0x04, 0x00, 0x20, 0x04, 0x20, 0xFE, 0x50, 0x20, 0x88, 0x21, 0x04, 0x3E, 0x0A, 0x25, 0xFC, 0x44, 0x00, 0x64, 0x44, 0x99, 0x24, 0x09, 0x24, 0x11, 0x28, 0x11, 0x28, 0x20, 0x10, 0x47, 0xFE, 0x00, 0x00, 0x00, 0x1C, 0x05, 0xE0, 0xFE, 0x00, 0x21, 0x24, 0x20, 0xA8, 0x3C, 0x00, 0x25, 0xFC, 0x44, 0x08, 0x64, 0x30, 0x98, 0x24, 0x0B, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x20, 0x20, 0x40, 0xA0, 0x00, 0x40, 0x01, 0x04, 0x04, 0x88, 0xFE, 0x10, 0x21, 0xFC, 0x21, 0x24, 0x3D, 0x24, 0x25, 0xFC, 0x45, 0x24, 0x65, 0x24, 0x99, 0xFC, 0x08, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x20, 0x20, 0x40, 0x20, 0x00, 0x20, 0x00, 0x00, 0x05, 0xFC, 0xFE, 0x08, 0x20, 0x10, 0x20, 0x20, 0x3B, 0xBE, 0x2A, 0xA2, 0x4A, 0xB4, 0x6A, 0xB4, 0x9A, 0xA8, 0x0B, 0xB6, 0x12, 0x22, 0x10, 0xA0, 0x20, 0x44, 0x4F, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x04, 0x40, 0xFF, 0xFE, 0x22, 0x02, 0x24, 0x34, 0x3D, 0xC0, 0x25, 0x08, 0x45, 0xFC, 0x65, 0x10, 0x99, 0x10, 0x09, 0x14, 0x17, 0xFE, 0x10, 0x00, 0x21, 0x10, 0x42, 0x0C, 0x04, 0x04, 0x00, 0x20, 0x0B, 0xFE, 0xFC, 0x20, 0x21, 0xFC, 0x20, 0x00, 0x3B, 0xFE, 0x2A, 0x02, 0x4D, 0xFC, 0x68, 0x00, 0x99, 0xFC, 0x09, 0x04, 0x11, 0xFC, 0x10, 0x88, 0x20, 0x50, 0x47, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x15, 0xFE, 0xFE, 0x24, 0x20, 0x24, 0x28, 0xA4, 0x48, 0xA4, 0x7E, 0xA4, 0x09, 0x24, 0x08, 0x24, 0x0E, 0x24, 0xF8, 0x44, 0x48, 0x44, 0x08, 0x84, 0x09, 0x28, 0x08, 0x10, 0x20, 0x04, 0x21, 0xFE, 0x29, 0x00, 0xFD, 0x00, 0x41, 0x04, 0x51, 0x7E, 0x91, 0x44, 0xFD, 0x44, 0x11, 0x44, 0x11, 0x54, 0x1D, 0x48, 0xF2, 0x40, 0x52, 0x42, 0x14, 0x42, 0x18, 0x3E, 0x10, 0x00, 0x10, 0x20, 0x10, 0x20, 0x14, 0x20, 0xFE, 0x24, 0x23, 0xFE, 0x28, 0x20, 0x48, 0x20, 0x7E, 0x24, 0x09, 0xFE, 0x09, 0x04, 0x0F, 0x04, 0xF9, 0x04, 0x49, 0x04, 0x09, 0x04, 0x09, 0xFC, 0x09, 0x04, 0x10, 0x00, 0x10, 0x04, 0x15, 0xFE, 0xFE, 0x08, 0x20, 0x08, 0x29, 0xE8, 0x49, 0x28, 0x7F, 0x28, 0x09, 0x28, 0x09, 0x28, 0x0F, 0xE8, 0xF9, 0x28, 0x48, 0x08, 0x08, 0x08, 0x08, 0x28, 0x08, 0x10, 0x10, 0x20, 0x10, 0x24, 0x14, 0x3E, 0xFE, 0x20, 0x20, 0x24, 0x29, 0xFE, 0x49, 0x04, 0x7F, 0x04, 0x09, 0xFC, 0x09, 0x04, 0x0F, 0x00, 0xF9, 0x00, 0x49, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x10, 0x04, 0x14, 0xFE, 0xFE, 0x84, 0x20, 0x84, 0x28, 0x84, 0x48, 0x84, 0x7E, 0x84, 0x08, 0xFC, 0x08, 0x84, 0x0E, 0x00, 0xF8, 0x48, 0x48, 0x48, 0x08, 0x84, 0x09, 0x06, 0x0A, 0x02, 0x10, 0x20, 0x10, 0xA0, 0x14, 0xA0, 0xFE, 0xA8, 0x20, 0xFC, 0x29, 0x20, 0x48, 0x20, 0x7E, 0x24, 0x09, 0xFE, 0x08, 0x20, 0x0E, 0x20, 0xF8, 0x50, 0x48, 0x50, 0x08, 0x88, 0x08, 0x8E, 0x0B, 0x04, 0x20, 0x40, 0x20, 0x40, 0x28, 0xA0, 0xFC, 0xA0, 0x41, 0x18, 0x52, 0x26, 0x94, 0x40, 0xFC, 0x80, 0x11, 0x10, 0x10, 0x20, 0x18, 0x40, 0xF1, 0x88, 0x50, 0x10, 0x10, 0x60, 0x11, 0x80, 0x16, 0x00, 0x10, 0x08, 0x10, 0x1C, 0x15, 0xE0, 0xFE, 0x20, 0x20, 0x24, 0x29, 0x24, 0x48, 0xA8, 0x7E, 0x20, 0x08, 0x24, 0x09, 0xFE, 0x0E, 0x20, 0xF8, 0x20, 0x48, 0x20, 0x08, 0x20, 0x08, 0xA0, 0x08, 0x40, 0x10, 0x08, 0x10, 0x1C, 0x15, 0xE0, 0xFF, 0x00, 0x21, 0x20, 0x29, 0x20, 0x49, 0x20, 0x7F, 0x24, 0x09, 0xFE, 0x08, 0x20, 0x0E, 0xA8, 0xF8, 0xA4, 0x49, 0x26, 0x0A, 0x22, 0x08, 0xA0, 0x08, 0x40, 0x10, 0x04, 0x11, 0xFE, 0x14, 0x44, 0xFE, 0x44, 0x20, 0x44, 0x28, 0x44, 0x48, 0x94, 0x7E, 0x88, 0x09, 0x04, 0x08, 0xFE, 0x0E, 0x84, 0xF8, 0x84, 0x48, 0x84, 0x08, 0x84, 0x08, 0xFC, 0x08, 0x84, 0x10, 0x10, 0x10, 0x18, 0x14, 0x14, 0xFE, 0x14, 0x21, 0xFE, 0x28, 0x10, 0x48, 0x10, 0x7D, 0xF0, 0x08, 0x90, 0x08, 0x90, 0x0E, 0x90, 0xF8, 0xF0, 0x4B, 0x88, 0x08, 0x0A, 0x08, 0x06, 0x08, 0x02, 0x10, 0x04, 0x13, 0xFE, 0x14, 0x40, 0xFE, 0x40, 0x20, 0x88, 0x29, 0x04, 0x49, 0xFE, 0x7E, 0x22, 0x08, 0x20, 0x08, 0x28, 0x0F, 0xFC, 0xF8, 0x20, 0x48, 0x20, 0x08, 0x24, 0x0B, 0xFE, 0x08, 0x00, 0x10, 0x20, 0x10, 0x20, 0x14, 0x50, 0xFE, 0x50, 0x20, 0x88, 0x29, 0x04, 0x4A, 0xFA, 0x7E, 0x20, 0x08, 0x20, 0x08, 0x20, 0x0E, 0xF8, 0xF8, 0x20, 0x48, 0x20, 0x08, 0x24, 0x0B, 0xFE, 0x08, 0x00, 0x10, 0x80, 0x10, 0x80, 0x14, 0xFC, 0xFF, 0x04, 0x21, 0x88, 0x2A, 0x50, 0x48, 0x20, 0x7E, 0x50, 0x08, 0x88, 0x09, 0x06, 0x0F, 0xFC, 0xF9, 0x04, 0x49, 0x04, 0x09, 0x04, 0x09, 0xFC, 0x09, 0x04, 0x10, 0x04, 0x13, 0xFE, 0x15, 0x20, 0xFF, 0x28, 0x21, 0xE8, 0x29, 0x28, 0x49, 0x28, 0x7F, 0x28, 0x09, 0xE8, 0x09, 0x28, 0x0F, 0x28, 0xF9, 0x3A, 0x4B, 0xEA, 0x09, 0x2E, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x7E, 0xFC, 0x08, 0x20, 0x7E, 0xFC, 0x14, 0x50, 0x22, 0x88, 0x42, 0x06, 0x3F, 0xF8, 0x05, 0x00, 0x09, 0x20, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x20, 0x00, 0x20, 0x04, 0x2B, 0xFE, 0xFE, 0x04, 0x42, 0x94, 0x52, 0x94, 0x93, 0xFC, 0xFE, 0x44, 0x12, 0x24, 0x13, 0xFC, 0x1E, 0x84, 0xF2, 0x84, 0x52, 0xF4, 0x12, 0x04, 0x12, 0x14, 0x12, 0x08, 0x20, 0x00, 0x2F, 0xFC, 0x24, 0xA4, 0xFD, 0x28, 0x42, 0x10, 0x55, 0x28, 0x90, 0xC4, 0xF8, 0x00, 0x17, 0xBC, 0x10, 0x84, 0x18, 0xC4, 0xF5, 0x28, 0x52, 0x10, 0x15, 0x28, 0x18, 0xCE, 0x10, 0x84, 0x20, 0x00, 0x21, 0x24, 0x29, 0x24, 0xFE, 0x48, 0x42, 0x48, 0x51, 0x24, 0x91, 0x24, 0xFC, 0x04, 0x11, 0xFE, 0x11, 0x24, 0x1D, 0x24, 0xF1, 0xFC, 0x51, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0xFE, 0x20, 0x21, 0xFC, 0x28, 0x20, 0x4B, 0xFE, 0x7E, 0x50, 0x08, 0x88, 0x09, 0xFC, 0x0E, 0x22, 0xF9, 0xFC, 0x48, 0x20, 0x08, 0x58, 0x08, 0x86, 0x0B, 0x02, 0x20, 0x40, 0x20, 0x24, 0x2B, 0xFE, 0xFE, 0x50, 0x42, 0x54, 0x53, 0xFE, 0x92, 0x54, 0xFE, 0x54, 0x13, 0xFC, 0x12, 0x92, 0x1E, 0x94, 0xF2, 0xF8, 0x52, 0x90, 0x12, 0xB2, 0x14, 0xD2, 0x10, 0x8E, 0x20, 0x40, 0x22, 0x48, 0x29, 0x50, 0xFF, 0xFE, 0x41, 0x50, 0x52, 0x4C, 0x94, 0x44, 0xFA, 0x08, 0x13, 0xBE, 0x12, 0x88, 0x1A, 0xA8, 0xF5, 0xA8, 0x51, 0x3E, 0x11, 0x08, 0x12, 0x08, 0x14, 0x08, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x04, 0x00, 0x04, 0x80, 0x04, 0x48, 0x04, 0xFC, 0x7F, 0x00, 0x04, 0x00, 0x02, 0x04, 0x02, 0xFE, 0xFF, 0x00, 0x01, 0x10, 0x01, 0x20, 0x00, 0xC0, 0x01, 0x80, 0x06, 0x44, 0x38, 0x24, 0x00, 0x1C, 0x08, 0x40, 0x08, 0x50, 0x14, 0x48, 0x13, 0x48, 0x21, 0x40, 0x40, 0x7E, 0xBF, 0xC0, 0x22, 0x24, 0x22, 0x24, 0x2A, 0x28, 0x24, 0x28, 0x20, 0x10, 0x22, 0x12, 0x22, 0x2A, 0x1E, 0x4A, 0x00, 0x84, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x0F, 0xF0, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x0F, 0xF0, 0x01, 0x44, 0xFF, 0xFE, 0x01, 0x20, 0x00, 0xC4, 0x07, 0x44, 0x38, 0x3C, 0x08, 0x20, 0x09, 0x28, 0xFF, 0xA4, 0x08, 0x24, 0x09, 0x20, 0x7F, 0xFE, 0x41, 0x20, 0x7F, 0x20, 0x41, 0x24, 0x7F, 0x24, 0x08, 0x28, 0x09, 0x10, 0xFF, 0xB2, 0x08, 0x4A, 0x08, 0x8A, 0x09, 0x04, 0x01, 0x20, 0x3F, 0xA8, 0x21, 0x24, 0x3F, 0x24, 0x00, 0x20, 0xFF, 0xFE, 0x21, 0x20, 0x3F, 0x20, 0x21, 0x24, 0x3F, 0x24, 0x21, 0x28, 0x21, 0x10, 0xFF, 0xB2, 0x41, 0x4A, 0x01, 0x8A, 0x01, 0x04, 0x22, 0x20, 0x22, 0x28, 0xFF, 0xA4, 0x22, 0x24, 0x3E, 0x20, 0x22, 0xFE, 0x3E, 0x20, 0x22, 0x20, 0x22, 0x24, 0xFF, 0xA4, 0x54, 0x28, 0x53, 0x10, 0x61, 0x32, 0x40, 0x4A, 0x7F, 0x8A, 0x01, 0x04, 0x01, 0x20, 0x7F, 0xA8, 0x41, 0x24, 0x7F, 0x24, 0x41, 0x20, 0x7F, 0xFE, 0x28, 0x20, 0x2A, 0x20, 0x3F, 0x24, 0x48, 0x24, 0xBE, 0x28, 0x08, 0x10, 0x0F, 0x32, 0xF8, 0x4A, 0x40, 0x8A, 0x01, 0x04, 0x01, 0x20, 0xFF, 0xA8, 0x21, 0x24, 0x22, 0x24, 0x3D, 0x20, 0x55, 0xFE, 0x49, 0x20, 0x55, 0x20, 0x82, 0x24, 0x7F, 0x24, 0x55, 0x28, 0x55, 0x10, 0x55, 0x32, 0xFF, 0xCA, 0x00, 0x8A, 0x01, 0x04, 0x02, 0x20, 0x7F, 0x28, 0x14, 0x24, 0x55, 0x24, 0x36, 0x20, 0x14, 0xFE, 0xFF, 0x20, 0x00, 0x20, 0x3E, 0x24, 0x22, 0x24, 0x22, 0x28, 0x3E, 0x10, 0x22, 0x32, 0x22, 0x4A, 0x3E, 0x8A, 0x01, 0x04, 0x00, 0x28, 0x00, 0x24, 0x1F, 0xFE, 0x50, 0x20, 0x57, 0xA0, 0x55, 0x20, 0x75, 0x24, 0x17, 0xA4, 0xF4, 0xA8, 0x54, 0xA8, 0x57, 0x90, 0x95, 0x10, 0x25, 0x12, 0x27, 0xAA, 0x40, 0x4A, 0x80, 0x84, 0x00, 0x04, 0x03, 0xFE, 0x7E, 0x80, 0x40, 0x88, 0x62, 0xFC, 0x52, 0x88, 0x54, 0xC8, 0x48, 0xA8, 0x48, 0xA8, 0x54, 0x88, 0x52, 0x88, 0x62, 0x88, 0x40, 0xAA, 0x44, 0xCA, 0x7E, 0x86, 0x00, 0x02, 0x08, 0x04, 0x0B, 0xFE, 0x14, 0x80, 0x14, 0x88, 0x22, 0xFC, 0x51, 0x88, 0x88, 0xC8, 0x00, 0xA8, 0x7E, 0xA8, 0x02, 0x88, 0x24, 0x88, 0x14, 0x88, 0x08, 0xAA, 0x04, 0xCA, 0x04, 0x86, 0x00, 0x02, 0x40, 0x04, 0x23, 0xFE, 0xFE, 0x80, 0x00, 0x88, 0x44, 0xFC, 0x28, 0x88, 0xFE, 0xC8, 0x00, 0xA8, 0x04, 0xA8, 0x7E, 0x88, 0x44, 0x88, 0x44, 0x88, 0x44, 0xAA, 0x44, 0xCA, 0x7C, 0x86, 0x44, 0x02, 0x08, 0x04, 0x7F, 0x08, 0x08, 0x74, 0x7F, 0x08, 0x22, 0x74, 0x3E, 0x08, 0x14, 0x10, 0x7F, 0x60, 0x00, 0x04, 0xFF, 0xFE, 0x08, 0x00, 0x0F, 0xE0, 0x09, 0x20, 0x08, 0xA4, 0x0E, 0x24, 0x10, 0x1C, 0x44, 0x04, 0x29, 0xFE, 0xFE, 0x80, 0x92, 0x88, 0xD6, 0xFC, 0xBA, 0x88, 0x92, 0xC8, 0xFE, 0xA8, 0x04, 0xA8, 0x7E, 0x88, 0x44, 0x88, 0x7C, 0x88, 0x44, 0xAA, 0x44, 0xCA, 0x7C, 0x86, 0x00, 0x02, 0x00, 0x20, 0x7F, 0xFC, 0x42, 0x88, 0x7E, 0x50, 0x41, 0xFE, 0x7E, 0x00, 0x62, 0xF8, 0xBE, 0x20, 0x00, 0x24, 0xFF, 0xFE, 0x08, 0x00, 0x0F, 0xE0, 0x09, 0x20, 0x08, 0xA4, 0x0E, 0x24, 0x10, 0x1C, 0x01, 0x00, 0x01, 0x08, 0x01, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x3F, 0xF0, 0x00, 0x10, 0x08, 0x20, 0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x0E, 0xC0, 0x04, 0x02, 0x00, 0x02, 0x20, 0x7F, 0xF0, 0x04, 0x20, 0x04, 0x20, 0x08, 0x22, 0x10, 0x22, 0x20, 0x1E, 0xDF, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x00, 0x02, 0x20, 0x7F, 0xF0, 0x04, 0x20, 0x04, 0x22, 0x08, 0x22, 0x10, 0x1E, 0x60, 0x00, 0x00, 0x00, 0x04, 0x08, 0x7F, 0xFC, 0x44, 0x20, 0x44, 0x20, 0x44, 0x20, 0x44, 0x20, 0x7C, 0x24, 0x47, 0xFE, 0x44, 0x20, 0x44, 0x20, 0x44, 0x20, 0x7C, 0x20, 0x44, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x04, 0x60, 0x18, 0x1C, 0x60, 0x08, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x40, 0x08, 0x20, 0x1F, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x60, 0x19, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0x3F, 0xFE, 0x20, 0x80, 0x20, 0x80, 0x21, 0x40, 0x21, 0x40, 0x42, 0x20, 0x44, 0x10, 0x88, 0x0E, 0x10, 0x04, 0x00, 0x08, 0x04, 0x1C, 0x7F, 0xE0, 0x45, 0x00, 0x45, 0x00, 0x45, 0x04, 0x45, 0xFE, 0x7D, 0x10, 0x45, 0x10, 0x45, 0x10, 0x45, 0x10, 0x45, 0x10, 0x7D, 0x10, 0x41, 0x10, 0x02, 0x10, 0x04, 0x10, 0x00, 0x80, 0x04, 0x80, 0x7E, 0x84, 0x44, 0xFE, 0x45, 0x04, 0x46, 0x84, 0x44, 0x44, 0x7C, 0x44, 0x44, 0x14, 0x44, 0x64, 0x45, 0x84, 0x44, 0x04, 0x7C, 0x04, 0x44, 0x44, 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x09, 0x18, 0x0A, 0xA0, 0x12, 0xC0, 0x24, 0x40, 0x04, 0x20, 0x08, 0x10, 0x10, 0x0E, 0x60, 0x04, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x08, 0x04, 0x1F, 0xFE, 0x21, 0x04, 0x61, 0x04, 0xA2, 0xC4, 0x24, 0x44, 0x20, 0x04, 0x3F, 0xC4, 0x00, 0x28, 0x00, 0x10, 0x10, 0x40, 0x1E, 0x40, 0x22, 0x60, 0x34, 0x58, 0x48, 0x40, 0x16, 0x46, 0x21, 0xFC, 0x40, 0x10, 0x9F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x04, 0x04, 0x78, 0xFE, 0x42, 0x84, 0x42, 0x84, 0x4E, 0x84, 0x72, 0xA4, 0x02, 0x98, 0x04, 0x80, 0x18, 0x80, 0x60, 0x80, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x08, 0x20, 0x04, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x0C, 0x04, 0x00, 0x7E, 0x3C, 0x44, 0x04, 0xC4, 0x05, 0x44, 0x7E, 0x7C, 0x16, 0x44, 0x15, 0x44, 0x15, 0x44, 0x24, 0xFC, 0x24, 0x84, 0x44, 0x40, 0x84, 0x30, 0x14, 0x0E, 0x08, 0x04, 0x00, 0x04, 0x05, 0xFE, 0x7F, 0x04, 0x45, 0x04, 0x45, 0xFC, 0x45, 0x04, 0x45, 0x40, 0x7D, 0x44, 0x45, 0x4C, 0x45, 0x50, 0x45, 0x60, 0x45, 0x40, 0x7E, 0x42, 0x42, 0x42, 0x04, 0x3E, 0x08, 0x00, 0x02, 0x10, 0x3F, 0xE0, 0x02, 0x44, 0xFF, 0xFE, 0x01, 0x00, 0x0A, 0x70, 0x0F, 0x84, 0x38, 0x04, 0xC7, 0xFC, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x00, 0x90, 0x3F, 0xFC, 0x20, 0x80, 0x3E, 0x88, 0x22, 0x50, 0x22, 0x60, 0x2A, 0x40, 0x44, 0xA2, 0x41, 0x12, 0x80, 0x0E, 0x00, 0xA0, 0x08, 0xA4, 0x7D, 0x2C, 0x49, 0x30, 0x4B, 0x20, 0x4D, 0x62, 0x49, 0xA2, 0x79, 0x1E, 0x49, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x78, 0x40, 0x48, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x02, 0x80, 0x22, 0x90, 0x12, 0xA0, 0x16, 0xC0, 0x0A, 0xA0, 0x72, 0x98, 0x02, 0x8A, 0x04, 0x82, 0x18, 0x7E, 0x60, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x3F, 0xFC, 0x22, 0x04, 0x42, 0x08, 0xFF, 0xFE, 0x04, 0x20, 0x0C, 0x40, 0x03, 0x80, 0x04, 0x60, 0x18, 0x10, 0x00, 0x00, 0x03, 0xFE, 0x7A, 0x02, 0x4A, 0x44, 0x48, 0x40, 0x4B, 0xFC, 0x48, 0x80, 0x79, 0x28, 0x4B, 0xFC, 0x48, 0x20, 0x48, 0x24, 0x4B, 0xFE, 0x78, 0x20, 0x48, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x50, 0x00, 0x48, 0x78, 0x40, 0x4F, 0xFE, 0x48, 0x48, 0x4B, 0xFC, 0x4A, 0x48, 0x7A, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x7A, 0x48, 0x4A, 0x48, 0x02, 0x68, 0x02, 0x50, 0x00, 0x40, 0x08, 0x40, 0x7C, 0xA0, 0x48, 0xA0, 0x49, 0x90, 0x4A, 0x4E, 0x4C, 0x04, 0x7B, 0xF0, 0x48, 0x20, 0x48, 0x48, 0x4B, 0xFC, 0x4A, 0x08, 0x7A, 0x08, 0x4A, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x08, 0x40, 0x1F, 0x60, 0x22, 0x58, 0xD4, 0x40, 0x08, 0x46, 0x37, 0xFC, 0xC0, 0x08, 0x1F, 0xFC, 0x10, 0x08, 0x10, 0x08, 0x1F, 0xF8, 0x00, 0x80, 0x08, 0x40, 0x7F, 0xFE, 0x4C, 0x02, 0x4B, 0xFC, 0x48, 0x08, 0x4B, 0xFC, 0x7A, 0x08, 0x4A, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4A, 0x08, 0x7B, 0xF8, 0x40, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x20, 0x0B, 0xA8, 0x7C, 0xB4, 0x4A, 0xA8, 0x49, 0x10, 0x49, 0x10, 0x4A, 0x0E, 0x7D, 0xF4, 0x48, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x78, 0xA0, 0x49, 0x10, 0x02, 0x0C, 0x04, 0x04, 0x00, 0x1C, 0x0B, 0xE0, 0x7D, 0x24, 0x48, 0xA8, 0x4F, 0xFE, 0x4C, 0x42, 0x48, 0x44, 0x7B, 0xFE, 0x48, 0x80, 0x48, 0xF8, 0x49, 0x08, 0x49, 0x50, 0x7A, 0x20, 0x4C, 0x50, 0x01, 0x8E, 0x06, 0x04, 0x00, 0x00, 0x03, 0xFC, 0x7A, 0x04, 0x4C, 0x08, 0x4B, 0xF8, 0x4A, 0x08, 0x4B, 0xF8, 0x7A, 0x08, 0x4B, 0xF8, 0x48, 0x80, 0x48, 0x44, 0x4F, 0xFE, 0x78, 0x00, 0x49, 0x10, 0x02, 0x0C, 0x04, 0x04, 0x02, 0x10, 0x11, 0x10, 0x7F, 0xD4, 0x50, 0x1E, 0x57, 0xA4, 0x54, 0xC4, 0x54, 0xA4, 0x77, 0xA4, 0x50, 0x24, 0x5F, 0xA8, 0x50, 0x90, 0x51, 0x50, 0x7F, 0xA8, 0x51, 0x28, 0x05, 0x44, 0x02, 0x82, 0x00, 0x1C, 0x07, 0xE0, 0x70, 0x44, 0x5F, 0xFE, 0x50, 0x40, 0x57, 0xFC, 0x55, 0x54, 0x75, 0x54, 0x57, 0xFC, 0x50, 0x40, 0x57, 0xFC, 0x50, 0x40, 0x7F, 0xFE, 0x55, 0x24, 0x04, 0x92, 0x08, 0x92, 0x00, 0x84, 0x07, 0xBE, 0x78, 0x84, 0x4A, 0x94, 0x49, 0x8C, 0x4A, 0x94, 0x48, 0xA4, 0x79, 0x10, 0x49, 0xFE, 0x4B, 0x10, 0x4D, 0xFC, 0x49, 0x10, 0x79, 0xFC, 0x49, 0x10, 0x01, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x07, 0xFC, 0x78, 0x40, 0x4B, 0xF8, 0x48, 0x40, 0x4F, 0xFC, 0x48, 0x10, 0x7B, 0xD8, 0x49, 0x14, 0x4F, 0xFE, 0x4D, 0x10, 0x4F, 0x94, 0x7A, 0x08, 0x4B, 0x9A, 0x00, 0xAA, 0x01, 0x84, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x40, 0x7F, 0xFC, 0x0D, 0x10, 0x74, 0xE0, 0x06, 0x1E, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x1F, 0xF0, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x04, 0x20, 0x38, 0x18, 0x12, 0x20, 0x12, 0x24, 0xFF, 0xFE, 0x12, 0x20, 0x13, 0xE0, 0x10, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x04, 0x20, 0x38, 0x18, 0x00, 0x08, 0x7D, 0xFC, 0x45, 0x08, 0x55, 0x08, 0x55, 0x08, 0x55, 0x08, 0x55, 0x08, 0x55, 0xF8, 0x54, 0x90, 0x54, 0x90, 0x54, 0x90, 0x10, 0x90, 0x28, 0x92, 0x25, 0x12, 0x42, 0x12, 0x84, 0x1E, 0x04, 0x20, 0x7E, 0x20, 0x44, 0x40, 0x54, 0x88, 0x55, 0x04, 0x57, 0xFE, 0x54, 0x00, 0x54, 0x04, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x11, 0x04, 0x29, 0x04, 0x25, 0x04, 0x45, 0xFC, 0x81, 0x04, 0x10, 0x40, 0x10, 0x48, 0xFD, 0xFC, 0x10, 0x48, 0x1D, 0xC8, 0xF0, 0xA8, 0x11, 0x0A, 0x62, 0x06, 0x1F, 0xF0, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x0C, 0x30, 0x30, 0x08, 0x08, 0x80, 0x08, 0x84, 0x2E, 0x98, 0x28, 0xE0, 0x28, 0x82, 0x2E, 0x82, 0xF0, 0x7E, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x04, 0x30, 0x38, 0x08, 0x04, 0x40, 0x7E, 0x20, 0x44, 0x04, 0x57, 0xFE, 0x54, 0x40, 0x54, 0x44, 0x54, 0x88, 0x55, 0xF4, 0x54, 0x24, 0x54, 0x48, 0x54, 0x88, 0x11, 0x10, 0x28, 0x28, 0x24, 0x44, 0x44, 0x82, 0x81, 0x02, 0x04, 0x04, 0x7E, 0xFE, 0x44, 0x84, 0x54, 0x84, 0x54, 0xFC, 0x54, 0xA0, 0x54, 0x90, 0x55, 0x08, 0x55, 0x4E, 0x56, 0x24, 0x54, 0x20, 0x10, 0x00, 0x28, 0xC0, 0x24, 0x30, 0x44, 0x18, 0x80, 0x08, 0x00, 0x04, 0x7D, 0xFE, 0x45, 0x00, 0x55, 0x00, 0x55, 0x7C, 0x55, 0x00, 0x55, 0x00, 0x55, 0xFE, 0x55, 0x52, 0x55, 0x54, 0x55, 0x48, 0x11, 0x48, 0x2A, 0x44, 0x24, 0x54, 0x48, 0x62, 0x80, 0x40, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x09, 0x20, 0x05, 0x44, 0xFF, 0xFE, 0x05, 0x40, 0x09, 0x20, 0x3F, 0xF8, 0xD0, 0x16, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x12, 0xC0, 0x04, 0x20, 0x38, 0x18, 0x04, 0x20, 0x7E, 0x28, 0x44, 0x24, 0x57, 0xFE, 0x54, 0x20, 0x55, 0x24, 0x54, 0xA8, 0x54, 0xB0, 0x54, 0x30, 0x54, 0x68, 0x54, 0xA8, 0x13, 0x24, 0x28, 0x22, 0x24, 0x20, 0x44, 0xA0, 0x80, 0x40, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x09, 0x20, 0x09, 0x20, 0x15, 0x50, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x02, 0xC0, 0x04, 0x20, 0x38, 0x18, 0x04, 0x20, 0x7E, 0x24, 0x44, 0xAC, 0x54, 0xB0, 0x55, 0x20, 0x54, 0x50, 0x54, 0x4C, 0x55, 0xA4, 0x54, 0x20, 0x54, 0xA4, 0x54, 0xA8, 0x11, 0x30, 0x28, 0x50, 0x24, 0x48, 0x44, 0x8E, 0x83, 0x04, 0x00, 0x30, 0x7C, 0x28, 0x47, 0xFE, 0x54, 0x20, 0x55, 0xFC, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x54, 0x08, 0x13, 0xFE, 0x29, 0x08, 0x24, 0x88, 0x44, 0xA8, 0x80, 0x10, 0x10, 0x04, 0x11, 0xFE, 0x15, 0x04, 0x1F, 0x24, 0x11, 0x24, 0x11, 0x24, 0x15, 0x24, 0x7F, 0x24, 0x45, 0x24, 0x45, 0x24, 0x45, 0x34, 0x44, 0x50, 0x7C, 0x50, 0x44, 0x92, 0x01, 0x12, 0x06, 0x0E, 0x08, 0x04, 0x49, 0x7E, 0x49, 0x44, 0x49, 0x54, 0x7F, 0x54, 0x00, 0x54, 0x7F, 0x54, 0x01, 0x54, 0x01, 0x54, 0x3F, 0x54, 0x21, 0x18, 0x20, 0x28, 0x23, 0x28, 0x2C, 0x4A, 0x30, 0x8A, 0x03, 0x06, 0x00, 0x04, 0x01, 0x7E, 0xFF, 0xC4, 0x08, 0x54, 0x08, 0x54, 0x2A, 0x54, 0x2A, 0x54, 0x2A, 0x54, 0x5D, 0x54, 0x88, 0xD4, 0x08, 0x18, 0x0F, 0xA8, 0xF8, 0x28, 0x40, 0x4A, 0x00, 0x8A, 0x03, 0x06, 0x08, 0x04, 0x0A, 0x7E, 0x7F, 0x44, 0x08, 0x54, 0x08, 0x54, 0xFF, 0xD4, 0x25, 0x54, 0x14, 0x54, 0x64, 0x54, 0x14, 0x54, 0xFF, 0x18, 0x04, 0x28, 0x08, 0x28, 0x0C, 0x4A, 0x12, 0x8A, 0x61, 0x06, 0x08, 0x04, 0x08, 0x7E, 0x14, 0x44, 0x14, 0x54, 0x22, 0x54, 0x7F, 0x54, 0x80, 0xD4, 0x71, 0x54, 0x55, 0x54, 0x75, 0x54, 0x55, 0x18, 0x75, 0x28, 0x51, 0x28, 0x55, 0x4A, 0x52, 0x8A, 0x03, 0x06, 0x14, 0x04, 0x14, 0x7E, 0x7F, 0x44, 0x14, 0x54, 0x7F, 0x54, 0x14, 0x54, 0xFF, 0xD4, 0x08, 0x54, 0x7F, 0x54, 0x49, 0x54, 0x7F, 0x18, 0x49, 0x28, 0xFF, 0xA8, 0x41, 0x4A, 0x45, 0x8A, 0x43, 0x06, 0x22, 0x04, 0x22, 0x7E, 0xFF, 0xC4, 0x22, 0x54, 0x3E, 0x54, 0x08, 0x54, 0x7F, 0x54, 0x49, 0x54, 0x7F, 0x54, 0x08, 0x54, 0x7F, 0x18, 0x08, 0x28, 0x7F, 0x28, 0x08, 0x4A, 0xFF, 0x8A, 0x01, 0x06, 0x0A, 0x04, 0x0F, 0x7E, 0x08, 0x44, 0x7F, 0xD4, 0x49, 0x54, 0x4E, 0x54, 0x79, 0x54, 0x4F, 0x54, 0x40, 0x54, 0x4A, 0x54, 0x6A, 0x98, 0x5B, 0x28, 0x4A, 0x28, 0x4A, 0x4A, 0xBF, 0x8A, 0x01, 0x06, 0x08, 0xA0, 0x08, 0x94, 0x08, 0x9E, 0x17, 0xE0, 0x30, 0x80, 0x50, 0x44, 0x91, 0x34, 0x19, 0x0C, 0x09, 0x20, 0x0F, 0xF0, 0x11, 0x00, 0x21, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x7D, 0xFC, 0x05, 0x04, 0x7D, 0xFC, 0x44, 0x20, 0x41, 0xFC, 0x7D, 0x24, 0x05, 0xFC, 0x28, 0x28, 0x13, 0xFC, 0x11, 0x02, 0x1F, 0xF8, 0x21, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x80, 0x08, 0x80, 0x28, 0x80, 0x28, 0x84, 0x3E, 0x8C, 0x48, 0x90, 0x48, 0xA0, 0x88, 0xC0, 0x0E, 0x80, 0x18, 0x80, 0x68, 0x80, 0x08, 0x80, 0x08, 0x82, 0x08, 0x82, 0x08, 0x7E, 0x08, 0x00, 0x08, 0x08, 0x08, 0x1C, 0x2B, 0xE0, 0x28, 0x40, 0x3E, 0x40, 0x48, 0x5C, 0x49, 0xE0, 0x88, 0x40, 0x0E, 0x44, 0x18, 0x7E, 0x6B, 0xC0, 0x08, 0x40, 0x08, 0x42, 0x08, 0x42, 0x08, 0x3E, 0x08, 0x00, 0x08, 0x20, 0x08, 0x20, 0x28, 0x20, 0x28, 0x20, 0x3E, 0x24, 0x4B, 0xFE, 0x48, 0x20, 0x88, 0x20, 0x0E, 0x24, 0x19, 0xFE, 0x69, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0xFC, 0x09, 0x04, 0x08, 0x08, 0x0B, 0xFC, 0x28, 0x40, 0x28, 0x48, 0x3F, 0xFC, 0x48, 0x88, 0x48, 0x88, 0x88, 0x88, 0x0F, 0xFE, 0x18, 0x00, 0x69, 0xFC, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0xFC, 0x09, 0x04, 0x08, 0x20, 0x08, 0x20, 0x28, 0xA0, 0x28, 0xA8, 0x3E, 0xFC, 0x49, 0x20, 0x48, 0x24, 0x8B, 0xFE, 0x0E, 0x00, 0x18, 0x04, 0x69, 0xFE, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0xFC, 0x09, 0x04, 0x08, 0x40, 0x08, 0x48, 0x2B, 0xFC, 0x28, 0xA0, 0x3E, 0x98, 0x49, 0x08, 0x4F, 0xFE, 0x88, 0x08, 0x0D, 0xE8, 0x19, 0x28, 0x69, 0x28, 0x09, 0x28, 0x09, 0xE8, 0x08, 0x08, 0x08, 0x28, 0x08, 0x10, 0x08, 0x08, 0x09, 0xFC, 0x29, 0x08, 0x29, 0xF8, 0x3F, 0x08, 0x49, 0xF8, 0x4B, 0x08, 0x8D, 0xF8, 0x09, 0x08, 0x19, 0x08, 0x6F, 0xFE, 0x08, 0x00, 0x09, 0x10, 0x09, 0x08, 0x0A, 0x04, 0x0C, 0x04, 0x10, 0x10, 0x10, 0x10, 0x57, 0x7C, 0x51, 0x14, 0x7D, 0xFE, 0x92, 0x14, 0x14, 0x7C, 0x17, 0x10, 0x19, 0x7C, 0x35, 0x10, 0xD5, 0xFE, 0x12, 0x10, 0x13, 0x10, 0x12, 0x96, 0x14, 0x7C, 0x18, 0x00, 0x10, 0x40, 0x10, 0x24, 0x53, 0xFE, 0x52, 0x04, 0x7E, 0x04, 0x93, 0xFC, 0x12, 0x00, 0x12, 0x04, 0x1F, 0xFE, 0x33, 0x54, 0xD3, 0x54, 0x15, 0xFC, 0x15, 0x54, 0x19, 0x54, 0x11, 0x54, 0x11, 0x0C, 0x10, 0x80, 0x10, 0x44, 0x5F, 0xFE, 0x50, 0x00, 0x7B, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x10, 0x00, 0x1F, 0xFC, 0x34, 0x04, 0xD5, 0xF4, 0x15, 0x14, 0x15, 0x14, 0x15, 0xF4, 0x14, 0x14, 0x14, 0x08, 0x08, 0x04, 0x7F, 0xFE, 0x08, 0x44, 0x3E, 0x44, 0x08, 0x44, 0x7E, 0x94, 0x09, 0x08, 0x00, 0xF0, 0x7F, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x40, 0x09, 0x50, 0x41, 0x4C, 0x26, 0x54, 0x08, 0x60, 0x70, 0xC0, 0x23, 0x00, 0x0C, 0xF0, 0x7F, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0C, 0x86, 0xF2, 0xB8, 0x12, 0x88, 0x14, 0x48, 0x78, 0x3E, 0x17, 0x88, 0x12, 0x88, 0x1E, 0x88, 0xF2, 0xFE, 0x12, 0x88, 0x14, 0x88, 0x24, 0x88, 0x29, 0x88, 0x40, 0x28, 0x00, 0x10, 0x00, 0x00, 0x0D, 0x06, 0xF1, 0x38, 0x12, 0x88, 0x14, 0x48, 0x78, 0x3E, 0x17, 0xC8, 0x10, 0x08, 0x17, 0xC8, 0xFC, 0x7E, 0x14, 0x48, 0x14, 0x48, 0x24, 0x48, 0x27, 0xC8, 0x20, 0x28, 0x40, 0x10, 0x00, 0x40, 0x3E, 0x28, 0x23, 0xFC, 0x3E, 0x50, 0x21, 0xFE, 0x3E, 0x20, 0x62, 0xF8, 0xBE, 0x20, 0x00, 0x20, 0x3F, 0xF8, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x03, 0x00, 0x02, 0x20, 0x3F, 0xC0, 0x02, 0x84, 0xFF, 0xFE, 0x02, 0x00, 0x0F, 0xE0, 0x34, 0x08, 0xC7, 0xF8, 0x00, 0x30, 0x3F, 0xC0, 0x02, 0x00, 0x1F, 0xF0, 0x02, 0x00, 0xFF, 0xFA, 0x02, 0x02, 0x01, 0xFE, 0x04, 0x40, 0x1E, 0x40, 0xF0, 0x88, 0x10, 0x84, 0x11, 0xFC, 0x10, 0x20, 0x7D, 0x28, 0x11, 0xFC, 0x11, 0x20, 0x1E, 0x24, 0xF3, 0xFE, 0x10, 0x20, 0x10, 0x22, 0x10, 0x22, 0x0F, 0xFE, 0x00, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xF8, 0x01, 0x02, 0x00, 0xFE, 0x04, 0x00, 0x79, 0xF8, 0x10, 0x40, 0x7C, 0xF8, 0x10, 0x40, 0xFF, 0xFC, 0x10, 0x40, 0x14, 0x42, 0x18, 0x3E, 0x00, 0x20, 0x18, 0x28, 0xE0, 0xFC, 0x2E, 0x28, 0x23, 0xFE, 0x24, 0x28, 0xF4, 0xF8, 0x2E, 0x20, 0x22, 0xF8, 0x22, 0x20, 0xFB, 0xFC, 0x24, 0x20, 0x2A, 0x22, 0x31, 0xFE, 0x20, 0x02, 0x1F, 0xFE, 0x10, 0x08, 0x10, 0x3C, 0x25, 0xE0, 0x7E, 0x20, 0x10, 0x20, 0xFF, 0x28, 0x28, 0xFC, 0x4C, 0x20, 0x92, 0x20, 0x24, 0x24, 0x49, 0xFE, 0x12, 0x20, 0x64, 0x20, 0x08, 0x22, 0x30, 0x22, 0xC0, 0x1E, 0x08, 0x08, 0x08, 0x3C, 0x15, 0xE0, 0x22, 0x20, 0x7F, 0x20, 0x80, 0xA8, 0x71, 0xFC, 0x55, 0x20, 0x55, 0x20, 0x75, 0x24, 0x55, 0xFE, 0x55, 0x20, 0x75, 0x20, 0x51, 0x22, 0x55, 0x22, 0x52, 0x1E, 0x08, 0x20, 0x49, 0x20, 0x2A, 0x24, 0x7F, 0x7E, 0x41, 0xA8, 0x5D, 0x10, 0x55, 0x28, 0x5D, 0xC6, 0x41, 0x30, 0x3F, 0xC0, 0x02, 0x00, 0x1F, 0xF0, 0x02, 0x00, 0xFF, 0xFA, 0x02, 0x02, 0x01, 0xFE, 0x01, 0x00, 0x39, 0xF0, 0xE2, 0x20, 0x27, 0xF8, 0x2A, 0x48, 0x23, 0xF8, 0xF2, 0x48, 0x2F, 0xFE, 0x20, 0x00, 0x23, 0xF8, 0xFA, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x23, 0xFA, 0x20, 0x02, 0x1F, 0xFE, 0x02, 0x10, 0x39, 0x20, 0xE7, 0xFC, 0x21, 0x20, 0x25, 0x28, 0x23, 0x30, 0xF1, 0x24, 0x2F, 0xFE, 0x20, 0x00, 0x23, 0xF0, 0xFA, 0x10, 0x23, 0xF0, 0x22, 0x10, 0x23, 0xF2, 0x20, 0x02, 0x1F, 0xFE, 0x77, 0x08, 0x55, 0x3C, 0x77, 0xE0, 0x55, 0x20, 0x77, 0x20, 0x55, 0x28, 0x77, 0xFC, 0x24, 0x20, 0x3F, 0xA0, 0x64, 0x24, 0x7F, 0xFE, 0xA4, 0x20, 0x3F, 0x20, 0x24, 0x22, 0x3F, 0xA2, 0x20, 0x1E, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x00, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x08, 0x04, 0x0A, 0x08, 0x0A, 0x10, 0x04, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x00, 0x08, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x10, 0x88, 0x10, 0x8A, 0x20, 0x8A, 0x40, 0x84, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x02, 0x08, 0x02, 0x08, 0x22, 0x28, 0x22, 0x28, 0x22, 0x28, 0x22, 0x28, 0x22, 0x28, 0x3F, 0xEA, 0x00, 0x2A, 0x00, 0x04, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x00, 0x08, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x22, 0x4A, 0x22, 0x4A, 0x40, 0x44, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x04, 0x08, 0x0F, 0xC8, 0x10, 0x88, 0x6D, 0x08, 0x02, 0x08, 0x0D, 0x88, 0x76, 0x78, 0x01, 0x0A, 0x0C, 0x0A, 0x03, 0x04, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x00, 0x08, 0x7F, 0xE8, 0x09, 0x08, 0x49, 0x28, 0x29, 0x48, 0x29, 0x88, 0x09, 0x08, 0x09, 0x0A, 0xFF, 0xFA, 0x00, 0x04, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x00, 0x08, 0x3F, 0xE8, 0x22, 0x28, 0x22, 0x28, 0x2F, 0xA8, 0x22, 0x28, 0x25, 0x28, 0x28, 0xAA, 0x3F, 0xEA, 0x20, 0x24, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x04, 0x08, 0x7F, 0xE8, 0x04, 0x08, 0x3F, 0x88, 0x20, 0x88, 0x3F, 0x88, 0x0A, 0x08, 0x0A, 0x2A, 0x12, 0x2A, 0x61, 0xE4, 0x10, 0x04, 0x1F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x40, 0x00, 0xBF, 0xF8, 0x00, 0x08, 0x3F, 0xC8, 0x26, 0x48, 0x3F, 0xC8, 0x00, 0x08, 0x7F, 0xE8, 0x49, 0x28, 0x49, 0x2A, 0xFF, 0xFA, 0x00, 0x04, 0x10, 0x00, 0x10, 0x00, 0x11, 0x00, 0x1F, 0x80, 0x22, 0x00, 0x42, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x14, 0x00, 0x14, 0x00, 0x08, 0x00, 0x14, 0x00, 0x22, 0x00, 0x43, 0x80, 0x81, 0x00, 0x08, 0x40, 0x08, 0x40, 0x0A, 0x44, 0xFF, 0x7E, 0x08, 0x48, 0x7F, 0x88, 0x49, 0x48, 0x49, 0x48, 0x7F, 0x48, 0x49, 0x50, 0x1C, 0x50, 0x2B, 0x20, 0x49, 0x50, 0x88, 0x88, 0x09, 0x0E, 0x0A, 0x04, 0x08, 0x40, 0x10, 0x40, 0x7E, 0x44, 0x42, 0x7E, 0x7E, 0x88, 0x42, 0x88, 0x7F, 0x48, 0x10, 0x48, 0x0A, 0x48, 0xFF, 0x50, 0x10, 0x50, 0x1E, 0x20, 0x22, 0x50, 0x22, 0x88, 0x4B, 0x0E, 0x86, 0x04, 0x08, 0x40, 0x48, 0x48, 0x4B, 0xFC, 0x48, 0x40, 0x4B, 0xFE, 0x7C, 0x02, 0x41, 0x24, 0x40, 0xA0, 0x7A, 0x20, 0x49, 0x20, 0x48, 0x24, 0x4F, 0xFE, 0x48, 0x40, 0x48, 0x50, 0x88, 0x8C, 0x03, 0x04, 0x09, 0x48, 0x49, 0x48, 0x4F, 0xFE, 0x49, 0x48, 0x49, 0x48, 0x7D, 0x78, 0x41, 0x00, 0x41, 0xFC, 0x78, 0x20, 0x48, 0x24, 0x4B, 0xFE, 0x48, 0x70, 0x48, 0xA8, 0x49, 0x2E, 0x8A, 0x24, 0x08, 0x20, 0x10, 0x40, 0x50, 0x24, 0x57, 0xFE, 0x54, 0x04, 0x57, 0xFC, 0x7C, 0x28, 0x47, 0xFE, 0x44, 0x20, 0x75, 0xFC, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x99, 0x24, 0x11, 0x2C, 0x00, 0x10, 0x00, 0x78, 0x3F, 0x80, 0x11, 0x10, 0x09, 0x10, 0x09, 0x20, 0x7F, 0xFC, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x00, 0x07, 0xF0, 0x0A, 0x20, 0x11, 0x40, 0x20, 0x80, 0x43, 0x60, 0x1C, 0x1E, 0x04, 0x24, 0x0E, 0x3E, 0xF0, 0x20, 0x03, 0xFE, 0x93, 0x22, 0x55, 0xF8, 0x01, 0x24, 0x09, 0x3C, 0xFF, 0x00, 0x09, 0x78, 0x49, 0x48, 0x29, 0x48, 0x09, 0x48, 0x0A, 0x4A, 0x2C, 0x8A, 0x11, 0x06, 0x02, 0x08, 0x3F, 0x08, 0x22, 0x48, 0x22, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x22, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x22, 0x48, 0x42, 0x08, 0x42, 0x08, 0x8A, 0x28, 0x04, 0x10, 0x04, 0x08, 0x3E, 0xFC, 0x24, 0x00, 0x24, 0x00, 0x24, 0x04, 0x3F, 0xFE, 0x24, 0x80, 0x24, 0x80, 0x24, 0x84, 0x3C, 0xFE, 0x24, 0x04, 0x24, 0x04, 0x44, 0x04, 0x44, 0x44, 0x94, 0x28, 0x08, 0x10, 0x02, 0x08, 0x3F, 0x18, 0x22, 0x20, 0x22, 0x40, 0x22, 0x84, 0x3E, 0x0C, 0x22, 0x10, 0x22, 0x20, 0x22, 0x40, 0x3E, 0x80, 0x22, 0x04, 0x22, 0x0C, 0x42, 0x10, 0x42, 0x20, 0x8A, 0x40, 0x04, 0x80, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x10, 0x00, 0x10, 0x10, 0x1F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x04, 0x88, 0x3E, 0x88, 0x24, 0x88, 0x24, 0x88, 0x25, 0xFE, 0x3C, 0x88, 0x24, 0x88, 0x24, 0x88, 0x27, 0xFE, 0x3C, 0x88, 0x24, 0x88, 0x24, 0x88, 0x44, 0x88, 0x45, 0x08, 0x95, 0x08, 0x0A, 0x08, 0x04, 0x08, 0x3F, 0xFC, 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x3C, 0x04, 0x27, 0xFE, 0x24, 0x90, 0x24, 0x90, 0x3C, 0x90, 0x24, 0x90, 0x24, 0x90, 0x44, 0x92, 0x45, 0x12, 0x96, 0x0E, 0x08, 0x00, 0x04, 0x20, 0x3E, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x24, 0x3F, 0xFE, 0x24, 0x20, 0x24, 0x50, 0x24, 0x50, 0x3C, 0x50, 0x24, 0x50, 0x24, 0x88, 0x44, 0xC8, 0x44, 0xA8, 0x95, 0x06, 0x0A, 0x04, 0x04, 0x40, 0x3E, 0x40, 0x24, 0x40, 0x24, 0x44, 0x27, 0xFE, 0x3C, 0x80, 0x24, 0x80, 0x24, 0xA0, 0x24, 0xA0, 0x3D, 0x20, 0x25, 0x40, 0x26, 0x50, 0x44, 0x48, 0x44, 0x84, 0x95, 0xFC, 0x08, 0x04, 0x04, 0x20, 0x3E, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x3D, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x3D, 0xFC, 0x24, 0x24, 0x24, 0x20, 0x44, 0x22, 0x44, 0x22, 0x94, 0x1E, 0x08, 0x00, 0x04, 0x20, 0x3E, 0x20, 0x24, 0x20, 0x24, 0x24, 0x25, 0xFE, 0x3D, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x3D, 0x54, 0x25, 0x4C, 0x25, 0x8C, 0x45, 0x04, 0x45, 0x04, 0x95, 0x14, 0x09, 0x08, 0x10, 0x10, 0x0C, 0x70, 0x03, 0x80, 0x0C, 0x60, 0x12, 0x14, 0xFF, 0xFE, 0x04, 0x00, 0x08, 0x10, 0x1F, 0xF8, 0x28, 0x10, 0xCF, 0xF0, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x08, 0x50, 0x08, 0x20, 0x04, 0x80, 0x3E, 0x80, 0x24, 0x80, 0x24, 0xFE, 0x24, 0x82, 0x3D, 0x24, 0x26, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x50, 0x24, 0x50, 0x44, 0x88, 0x44, 0x88, 0x95, 0x06, 0x0A, 0x04, 0x04, 0x80, 0x3E, 0xA0, 0x24, 0x90, 0x24, 0x94, 0x27, 0xFE, 0x3C, 0xA0, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA8, 0x3C, 0xA8, 0x24, 0xB0, 0x24, 0xA0, 0x45, 0x62, 0x45, 0x22, 0x96, 0x1E, 0x08, 0x00, 0x04, 0x40, 0x3E, 0x40, 0x24, 0x44, 0x27, 0xFE, 0x24, 0x80, 0x3C, 0xA0, 0x25, 0x20, 0x25, 0x24, 0x27, 0xFE, 0x3C, 0x20, 0x24, 0xA8, 0x24, 0xA4, 0x45, 0x26, 0x46, 0x22, 0x94, 0xA0, 0x08, 0x40, 0x04, 0x40, 0x3E, 0x40, 0x24, 0x48, 0x24, 0x7C, 0x24, 0x40, 0x3C, 0x40, 0x24, 0x44, 0x27, 0xFE, 0x24, 0x40, 0x3C, 0x40, 0x24, 0x60, 0x24, 0x50, 0x44, 0x4C, 0x44, 0x44, 0x94, 0x40, 0x08, 0x40, 0x04, 0x24, 0x3E, 0x3E, 0x24, 0x20, 0x24, 0x24, 0x25, 0xFE, 0x3D, 0x04, 0x25, 0x04, 0x25, 0x04, 0x25, 0xFC, 0x3D, 0x04, 0x25, 0x00, 0x25, 0x00, 0x45, 0x00, 0x45, 0x00, 0x95, 0x00, 0x0A, 0x00, 0x00, 0x04, 0x3D, 0xFE, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x3D, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x3D, 0xFC, 0x25, 0x24, 0x24, 0x20, 0x44, 0x20, 0x44, 0x20, 0x94, 0x20, 0x08, 0x20, 0x00, 0x20, 0x3C, 0x20, 0x24, 0x24, 0x25, 0xFE, 0x25, 0x24, 0x3D, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x3D, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x45, 0x24, 0x44, 0x20, 0x94, 0x20, 0x08, 0x20, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x04, 0x80, 0x3E, 0x80, 0x24, 0x84, 0x24, 0xFE, 0x25, 0x40, 0x3D, 0x40, 0x26, 0x48, 0x24, 0x7C, 0x24, 0x40, 0x3C, 0x48, 0x24, 0x7C, 0x24, 0x40, 0x44, 0x40, 0x44, 0x40, 0x94, 0x40, 0x08, 0x40, 0x04, 0x08, 0x3E, 0x1C, 0x25, 0xE0, 0x25, 0x10, 0x25, 0x50, 0x3D, 0x50, 0x25, 0x50, 0x25, 0x50, 0x25, 0x48, 0x3D, 0x48, 0x25, 0x48, 0x25, 0x44, 0x45, 0x54, 0x45, 0x54, 0x96, 0x72, 0x08, 0x00, 0x04, 0x40, 0x3E, 0x40, 0x24, 0xA0, 0x24, 0xA0, 0x25, 0x18, 0x3E, 0x36, 0x24, 0x40, 0x24, 0x88, 0x25, 0x10, 0x3C, 0x20, 0x24, 0x44, 0x25, 0x88, 0x44, 0x10, 0x44, 0x20, 0x94, 0xC0, 0x0B, 0x00, 0x04, 0x80, 0x3E, 0x80, 0x24, 0x84, 0x24, 0xFE, 0x25, 0x04, 0x3E, 0x04, 0x24, 0xF4, 0x24, 0x94, 0x24, 0x94, 0x3C, 0x94, 0x24, 0x94, 0x24, 0xF4, 0x44, 0x84, 0x44, 0x04, 0x94, 0x14, 0x08, 0x08, 0x04, 0x08, 0x3E, 0x1C, 0x25, 0xE0, 0x25, 0x20, 0x25, 0x20, 0x3D, 0x20, 0x25, 0x24, 0x25, 0xFE, 0x25, 0x20, 0x3D, 0x10, 0x25, 0x10, 0x25, 0x10, 0x45, 0x2A, 0x45, 0x4A, 0x95, 0xA6, 0x09, 0x12, 0x04, 0x00, 0x3F, 0xFC, 0x24, 0x08, 0x24, 0x10, 0x24, 0x20, 0x3C, 0x58, 0x24, 0x86, 0x27, 0x02, 0x24, 0x00, 0x3D, 0xFC, 0x24, 0x20, 0x24, 0x20, 0x44, 0x20, 0x44, 0x24, 0x97, 0xFE, 0x08, 0x00, 0x04, 0x20, 0x3E, 0x20, 0x25, 0x24, 0x24, 0xAC, 0x24, 0xB0, 0x3C, 0x24, 0x27, 0xFE, 0x24, 0x50, 0x24, 0x50, 0x3C, 0x50, 0x24, 0x50, 0x24, 0x90, 0x44, 0x92, 0x45, 0x12, 0x96, 0x0E, 0x08, 0x00, 0x00, 0x04, 0x3D, 0xFE, 0x25, 0x04, 0x25, 0x14, 0x25, 0xFC, 0x3D, 0x04, 0x25, 0x04, 0x25, 0x74, 0x25, 0x54, 0x3D, 0x54, 0x25, 0x54, 0x25, 0x74, 0x45, 0x04, 0x45, 0x04, 0x95, 0x14, 0x09, 0x08, 0x00, 0x04, 0x3D, 0xFE, 0x25, 0x04, 0x25, 0x24, 0x25, 0x24, 0x3D, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x3D, 0x24, 0x25, 0x54, 0x25, 0x4C, 0x45, 0x8C, 0x45, 0x04, 0x95, 0xFC, 0x09, 0x04, 0x04, 0x20, 0x3E, 0x20, 0x24, 0x50, 0x24, 0x88, 0x25, 0x06, 0x3E, 0x10, 0x24, 0xF8, 0x24, 0x00, 0x24, 0x04, 0x3F, 0xFE, 0x24, 0x40, 0x24, 0x40, 0x44, 0x48, 0x44, 0x84, 0x95, 0xFC, 0x08, 0x04, 0x00, 0x00, 0x3D, 0x08, 0x24, 0x90, 0x24, 0x60, 0x24, 0x50, 0x3C, 0x8C, 0x25, 0x24, 0x24, 0x20, 0x27, 0xFE, 0x3C, 0x20, 0x24, 0xA8, 0x25, 0x26, 0x46, 0x22, 0x44, 0x20, 0x94, 0xA0, 0x08, 0x40, 0x04, 0x40, 0x3E, 0x20, 0x24, 0x04, 0x27, 0xFE, 0x24, 0x40, 0x3C, 0x48, 0x24, 0x88, 0x25, 0xF4, 0x24, 0x24, 0x3C, 0x48, 0x24, 0x88, 0x25, 0x10, 0x44, 0x28, 0x44, 0x44, 0x94, 0x82, 0x09, 0x02, 0x05, 0x08, 0x3E, 0x90, 0x24, 0x00, 0x27, 0xFC, 0x24, 0x90, 0x3C, 0x90, 0x24, 0x90, 0x24, 0x94, 0x27, 0xFE, 0x3C, 0x90, 0x24, 0x90, 0x24, 0x90, 0x45, 0x10, 0x45, 0x10, 0x96, 0x10, 0x08, 0x10, 0x04, 0x00, 0x3E, 0x88, 0x24, 0x50, 0x24, 0x00, 0x25, 0xFC, 0x3C, 0x20, 0x24, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x3C, 0x20, 0x24, 0x50, 0x24, 0x50, 0x44, 0x88, 0x44, 0x88, 0x95, 0x04, 0x0A, 0x02, 0x04, 0x20, 0x3E, 0x20, 0x25, 0x24, 0x24, 0xA4, 0x24, 0xA8, 0x3C, 0x20, 0x27, 0xFE, 0x24, 0x20, 0x24, 0x60, 0x3C, 0x70, 0x24, 0xA8, 0x24, 0xA8, 0x45, 0x26, 0x46, 0x24, 0x94, 0x20, 0x08, 0x20, 0x00, 0x00, 0x3C, 0x04, 0x27, 0xFE, 0x24, 0x40, 0x24, 0x84, 0x3D, 0x4C, 0x26, 0x70, 0x24, 0xA0, 0x25, 0x30, 0x3E, 0x70, 0x24, 0xA8, 0x25, 0x28, 0x46, 0x26, 0x44, 0x24, 0x94, 0xA0, 0x08, 0x40, 0x00, 0x04, 0x3D, 0xFE, 0x25, 0x04, 0x25, 0x04, 0x25, 0x04, 0x3D, 0xFC, 0x24, 0x20, 0x24, 0x24, 0x25, 0xFE, 0x3D, 0x24, 0x25, 0x24, 0x25, 0x54, 0x45, 0x8C, 0x45, 0x04, 0x95, 0x14, 0x09, 0x08, 0x04, 0x20, 0x3E, 0x20, 0x24, 0xA8, 0x24, 0xA8, 0x24, 0xA8, 0x3D, 0x74, 0x26, 0x22, 0x24, 0x20, 0x24, 0x28, 0x3D, 0xFC, 0x24, 0x20, 0x24, 0x20, 0x44, 0x20, 0x44, 0x24, 0x97, 0xFE, 0x08, 0x00, 0x04, 0x08, 0x3E, 0x1C, 0x25, 0xE0, 0x25, 0x04, 0x24, 0xA4, 0x3C, 0xA8, 0x25, 0xFC, 0x24, 0x10, 0x24, 0x20, 0x3C, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x44, 0x20, 0x44, 0x20, 0x94, 0xA0, 0x08, 0x40, 0x04, 0x40, 0x3E, 0x20, 0x25, 0xFE, 0x25, 0x02, 0x26, 0x14, 0x3C, 0xF8, 0x24, 0x00, 0x24, 0x04, 0x27, 0xFE, 0x3C, 0x90, 0x24, 0x90, 0x24, 0x90, 0x44, 0x92, 0x45, 0x12, 0x96, 0x0E, 0x08, 0x00, 0x00, 0x04, 0x7B, 0xFE, 0x4A, 0x04, 0x4A, 0x04, 0x4B, 0xFC, 0x7A, 0x20, 0x4A, 0x24, 0x4B, 0xA8, 0x4A, 0xB0, 0x7A, 0xA8, 0x4A, 0xA8, 0x4A, 0xA4, 0x4B, 0x24, 0x4A, 0x22, 0xAC, 0xA0, 0x10, 0x40, 0x04, 0x20, 0x3E, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x25, 0xFC, 0x3C, 0x20, 0x27, 0xFE, 0x24, 0x00, 0x25, 0xFC, 0x3D, 0x04, 0x25, 0xFC, 0x25, 0x04, 0x45, 0xFC, 0x45, 0x04, 0x95, 0x14, 0x09, 0x08, 0x08, 0x40, 0x7C, 0x40, 0x48, 0x44, 0x4F, 0xFE, 0x48, 0xA0, 0x79, 0x10, 0x4A, 0x48, 0x4F, 0xFE, 0x4A, 0x48, 0x7B, 0xF8, 0x4A, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x48, 0x40, 0xA8, 0x44, 0x10, 0x3C, 0x04, 0x50, 0x3E, 0x50, 0x24, 0x54, 0x27, 0xDE, 0x24, 0x50, 0x3C, 0x50, 0x24, 0x54, 0x27, 0xDE, 0x24, 0x50, 0x3C, 0x50, 0x24, 0x54, 0x27, 0xDE, 0x44, 0x50, 0x44, 0x50, 0x94, 0x50, 0x08, 0x50, 0x04, 0x20, 0x3E, 0xA4, 0x25, 0x2E, 0x25, 0x24, 0x25, 0x24, 0x3D, 0xAC, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x3D, 0x24, 0x24, 0x50, 0x24, 0x50, 0x44, 0x88, 0x45, 0x06, 0x96, 0x04, 0x08, 0x00, 0x00, 0x40, 0x7A, 0x20, 0x4B, 0xFE, 0x4A, 0x02, 0x4C, 0x04, 0x79, 0xFC, 0x48, 0x00, 0x48, 0x04, 0x4B, 0xFE, 0x78, 0x20, 0x49, 0x20, 0x49, 0x28, 0x49, 0x26, 0x4A, 0x22, 0xA8, 0xA0, 0x10, 0x40, 0x00, 0x40, 0x78, 0x20, 0x4B, 0xFE, 0x4A, 0x02, 0x4C, 0x04, 0x78, 0x00, 0x4B, 0xFE, 0x48, 0x20, 0x48, 0x20, 0x79, 0x28, 0x49, 0x3C, 0x49, 0x20, 0x49, 0x20, 0x4A, 0xA6, 0xAC, 0x7C, 0x10, 0x00, 0x00, 0x10, 0x78, 0x10, 0x4F, 0x7C, 0x49, 0x14, 0x49, 0xFE, 0x79, 0x14, 0x4A, 0x7C, 0x4F, 0x10, 0x49, 0x7C, 0x79, 0x10, 0x4D, 0xFE, 0x4B, 0x10, 0x49, 0x10, 0x4A, 0x96, 0xAC, 0x7C, 0x10, 0x00, 0x08, 0x40, 0x7C, 0x48, 0x4B, 0xFC, 0x48, 0x40, 0x4B, 0xFC, 0x78, 0x40, 0x4F, 0xFE, 0x48, 0xA0, 0x49, 0x10, 0x7B, 0xF8, 0x4C, 0x46, 0x4B, 0xF8, 0x48, 0x40, 0x48, 0xA0, 0xA8, 0x98, 0x13, 0x08, 0x00, 0x20, 0x3C, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x24, 0x24, 0x3D, 0xFE, 0x25, 0x04, 0x25, 0x54, 0x25, 0xFC, 0x3D, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x45, 0x24, 0x45, 0x24, 0x95, 0x24, 0x09, 0x0C, 0x08, 0x00, 0x7C, 0x04, 0x4B, 0xFE, 0x48, 0x40, 0x48, 0x84, 0x7B, 0xFE, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0xF4, 0x7A, 0x94, 0x4A, 0x94, 0x4A, 0xF4, 0x4A, 0x94, 0x4A, 0x94, 0xAB, 0xFC, 0x12, 0x04, 0x08, 0x08, 0x7D, 0xFC, 0x49, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x79, 0x08, 0x49, 0x08, 0x49, 0xF8, 0x48, 0x00, 0x7B, 0xFC, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0x94, 0x4A, 0x94, 0xAF, 0xFE, 0x10, 0x00, 0x00, 0x08, 0x7B, 0xBC, 0x4A, 0xA8, 0x4A, 0xA8, 0x4B, 0xB8, 0x78, 0x00, 0x4B, 0xF8, 0x48, 0x00, 0x4F, 0xFE, 0x79, 0x00, 0x49, 0xF8, 0x48, 0x08, 0x48, 0x08, 0x48, 0x88, 0xA8, 0x50, 0x10, 0x20, 0x08, 0x40, 0x7C, 0x40, 0x48, 0xA0, 0x49, 0x10, 0x4B, 0xF8, 0x7C, 0x06, 0x4B, 0xC4, 0x4A, 0x54, 0x4A, 0x54, 0x7B, 0xD4, 0x4A, 0x54, 0x4A, 0x54, 0x4B, 0xD4, 0x4A, 0x44, 0xAA, 0x54, 0x12, 0xC8, 0x00, 0x40, 0x7A, 0x48, 0x49, 0x50, 0x48, 0x40, 0x4B, 0xFC, 0x78, 0x40, 0x4F, 0xFE, 0x48, 0xA0, 0x49, 0x10, 0x7A, 0x4E, 0x4C, 0x44, 0x4B, 0xF8, 0x48, 0x40, 0x48, 0x48, 0xAB, 0xFC, 0x10, 0x00, 0x00, 0x40, 0x7A, 0x48, 0x49, 0x50, 0x4B, 0xFC, 0x48, 0x40, 0x7F, 0xFE, 0x48, 0xA0, 0x49, 0x10, 0x4A, 0x4E, 0x7C, 0x44, 0x4F, 0xFE, 0x48, 0x90, 0x49, 0x10, 0x48, 0xE0, 0xA9, 0x18, 0x16, 0x04, 0x00, 0x04, 0x7B, 0xFE, 0x48, 0x00, 0x49, 0xFC, 0x49, 0x04, 0x79, 0x04, 0x49, 0xFC, 0x48, 0x00, 0x4B, 0xFE, 0x7A, 0x8A, 0x4A, 0x52, 0x4B, 0xFE, 0x4A, 0x22, 0x4A, 0x22, 0xAA, 0x2A, 0x12, 0x04, 0x10, 0x40, 0x08, 0x44, 0xFE, 0xFE, 0x11, 0x18, 0x1E, 0xE4, 0x22, 0xA8, 0x2A, 0x90, 0x44, 0xC8, 0x9F, 0xF6, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x08, 0x40, 0x7C, 0x20, 0x4B, 0xFE, 0x4A, 0x02, 0x4C, 0x34, 0x79, 0xC0, 0x49, 0x08, 0x49, 0xFC, 0x49, 0x10, 0x79, 0x10, 0x49, 0x14, 0x4F, 0xFE, 0x48, 0x00, 0x48, 0x90, 0xA9, 0x0C, 0x12, 0x04, 0x00, 0x40, 0x7A, 0x48, 0x49, 0x50, 0x48, 0x40, 0x4F, 0xFC, 0x78, 0x40, 0x4F, 0xFE, 0x48, 0xA0, 0x49, 0x10, 0x7A, 0x4E, 0x4D, 0x54, 0x49, 0x50, 0x48, 0xE0, 0x49, 0x50, 0xAA, 0x4C, 0x10, 0xC0, 0x00, 0x40, 0x78, 0x20, 0x4B, 0xFE, 0x4A, 0x52, 0x4D, 0x8C, 0x78, 0x00, 0x4B, 0xFE, 0x48, 0x40, 0x48, 0x88, 0x79, 0xFC, 0x48, 0x20, 0x49, 0xFC, 0x48, 0x20, 0x48, 0x24, 0xAB, 0xFE, 0x10, 0x00, 0x08, 0x20, 0x7D, 0xFC, 0x48, 0x88, 0x48, 0x50, 0x4B, 0xFE, 0x7A, 0x22, 0x4D, 0xFC, 0x49, 0x24, 0x49, 0x24, 0x79, 0x2C, 0x48, 0x20, 0x49, 0xFC, 0x49, 0x04, 0x49, 0x04, 0xA9, 0xFC, 0x11, 0x04, 0x01, 0x08, 0x79, 0x08, 0x4F, 0xC8, 0x49, 0x3E, 0x4B, 0x88, 0x78, 0x08, 0x4B, 0xBE, 0x4A, 0xA2, 0x4A, 0xA2, 0x7A, 0x94, 0x4B, 0x94, 0x48, 0x08, 0x4A, 0x88, 0x49, 0xD4, 0xAE, 0x14, 0x10, 0x62, 0x08, 0x88, 0x7F, 0xFE, 0x48, 0x88, 0x4B, 0xFE, 0x4A, 0x02, 0x7C, 0xF8, 0x48, 0x00, 0x4B, 0xFE, 0x48, 0x80, 0x79, 0x44, 0x4A, 0xA8, 0x49, 0x70, 0x4A, 0xA8, 0x49, 0x26, 0xAA, 0xA4, 0x10, 0x40, 0x09, 0xFC, 0x7D, 0x04, 0x49, 0x04, 0x49, 0xFC, 0x48, 0x00, 0x7B, 0xDE, 0x4A, 0x52, 0x4A, 0x52, 0x4B, 0xDE, 0x78, 0x20, 0x4F, 0xFE, 0x48, 0x70, 0x48, 0xA8, 0x49, 0x2E, 0xAA, 0x24, 0x10, 0x20, 0x08, 0x40, 0x7F, 0xFE, 0x48, 0x00, 0x4B, 0xFC, 0x4A, 0x94, 0x7A, 0xF4, 0x4A, 0x94, 0x4B, 0xFC, 0x48, 0x00, 0x7B, 0xFC, 0x4A, 0x04, 0x4B, 0xFC, 0x4A, 0x04, 0x4B, 0xFC, 0xA8, 0x00, 0x17, 0xFE, 0x08, 0x40, 0x7C, 0x24, 0x4B, 0xFE, 0x4A, 0x88, 0x4B, 0xFE, 0x7A, 0x50, 0x4B, 0xFC, 0x4A, 0x54, 0x4B, 0xFE, 0x7A, 0x54, 0x4B, 0xFC, 0x4A, 0x50, 0x4A, 0xD8, 0x4A, 0xD4, 0xAD, 0x52, 0x10, 0x50, 0x00, 0x40, 0x7A, 0x48, 0x49, 0x50, 0x4F, 0xFC, 0x48, 0xE0, 0x79, 0x50, 0x4A, 0x48, 0x4A, 0x08, 0x4B, 0xBE, 0x7A, 0xA8, 0x4C, 0xA8, 0x4B, 0x28, 0x49, 0x7E, 0x4A, 0x08, 0xAC, 0x08, 0x10, 0x08, 0x00, 0x40, 0x20, 0x40, 0x24, 0x40, 0x3E, 0x7E, 0x20, 0x82, 0x21, 0x24, 0x22, 0x20, 0x3F, 0x20, 0x02, 0x20, 0x02, 0x20, 0x1A, 0x20, 0xE2, 0x50, 0x02, 0x50, 0x14, 0x88, 0x09, 0x06, 0x02, 0x04, 0x42, 0x40, 0x24, 0x40, 0x18, 0x40, 0x24, 0x7E, 0x42, 0x82, 0x01, 0x24, 0xFF, 0x20, 0x28, 0x20, 0x3E, 0x20, 0x6A, 0x20, 0xAA, 0x20, 0x2A, 0x50, 0x2A, 0x50, 0x2E, 0x88, 0x09, 0x06, 0x0A, 0x04, 0x10, 0x40, 0x12, 0x40, 0xFF, 0x40, 0x10, 0x7E, 0x28, 0x82, 0x45, 0x24, 0xFF, 0x20, 0x02, 0x20, 0x7A, 0x20, 0x4A, 0x20, 0x4A, 0x20, 0x4A, 0x50, 0x7A, 0x50, 0x02, 0x88, 0x0B, 0x06, 0x06, 0x04, 0x02, 0x40, 0x0F, 0x40, 0x78, 0x40, 0x08, 0x7E, 0x08, 0x82, 0xFF, 0x24, 0x28, 0x20, 0x4B, 0x20, 0x49, 0x20, 0x49, 0x20, 0x6B, 0x20, 0x49, 0x50, 0x49, 0x50, 0x7F, 0x88, 0x41, 0x06, 0x02, 0x04, 0x10, 0x40, 0x0A, 0x40, 0x7F, 0x40, 0x00, 0x7E, 0x22, 0x82, 0x15, 0x24, 0xFF, 0xA0, 0x00, 0x20, 0x3E, 0x20, 0x22, 0x20, 0x22, 0x20, 0x3E, 0x50, 0x22, 0x50, 0x22, 0x88, 0x3F, 0x06, 0x22, 0x04, 0x08, 0x40, 0x14, 0x40, 0x22, 0x40, 0x7F, 0x7E, 0x80, 0x42, 0x3E, 0x84, 0x23, 0x20, 0x3E, 0x20, 0x00, 0x20, 0x77, 0x20, 0x11, 0x20, 0x55, 0x50, 0x33, 0x50, 0x55, 0x88, 0x11, 0x06, 0x33, 0x04, 0x04, 0x80, 0x7E, 0x88, 0x44, 0xFC, 0x45, 0x08, 0x46, 0x08, 0x6D, 0xE8, 0x6D, 0x28, 0x55, 0x28, 0x55, 0xE8, 0x55, 0x28, 0x6D, 0x10, 0x6D, 0x04, 0x44, 0xFE, 0x44, 0x02, 0x43, 0xFE, 0x80, 0x00, 0x00, 0x08, 0x23, 0xFC, 0x12, 0x08, 0x12, 0x08, 0xFF, 0x18, 0x02, 0x98, 0x4A, 0xA8, 0x4A, 0xA8, 0x4A, 0x48, 0x52, 0x48, 0x52, 0xA8, 0x1E, 0x98, 0xF3, 0x1A, 0x44, 0x0A, 0x04, 0x0A, 0x18, 0x04, 0x04, 0x08, 0x7E, 0xFC, 0x44, 0x88, 0x44, 0xF8, 0x44, 0x88, 0x6C, 0xF8, 0x6C, 0x88, 0x54, 0xF8, 0x54, 0x88, 0x54, 0x88, 0x6F, 0xFE, 0x6C, 0x50, 0x44, 0x8A, 0x44, 0x02, 0x43, 0xFE, 0x80, 0x00, 0x00, 0x20, 0x7D, 0xAC, 0x45, 0x24, 0x45, 0xAC, 0x45, 0x24, 0x6D, 0x24, 0x6D, 0xFC, 0x54, 0x20, 0x55, 0xFC, 0x54, 0x88, 0x6C, 0x50, 0x6C, 0x20, 0x44, 0x52, 0x44, 0x8A, 0x43, 0xFE, 0x80, 0x00, 0x10, 0x08, 0x18, 0xFC, 0x14, 0x88, 0xFE, 0x88, 0x10, 0x88, 0x28, 0xD8, 0x44, 0xD8, 0x82, 0xA8, 0x24, 0xA8, 0x36, 0xA8, 0xFF, 0xD8, 0x24, 0xD8, 0x24, 0x8A, 0x5A, 0x8A, 0x49, 0x0A, 0x92, 0x04, 0x04, 0x20, 0x7E, 0x20, 0x44, 0xA4, 0x44, 0xA8, 0x45, 0x50, 0x6C, 0x88, 0x6D, 0x06, 0x54, 0x88, 0x56, 0xAA, 0x55, 0xDC, 0x6C, 0x88, 0x6D, 0x54, 0x46, 0x22, 0x44, 0x02, 0x43, 0xFE, 0x80, 0x00, 0x02, 0x00, 0x3F, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x41, 0x80, 0x80, 0x00, 0x7F, 0x00, 0x21, 0x00, 0x22, 0x00, 0x14, 0x00, 0x08, 0x00, 0x14, 0x00, 0x23, 0x80, 0xC1, 0x00, 0x10, 0x08, 0xFE, 0xFC, 0x10, 0x88, 0x7C, 0x88, 0x00, 0x88, 0xFE, 0x88, 0x83, 0x06, 0xBE, 0x00, 0x01, 0xFC, 0x7C, 0x84, 0x04, 0x88, 0x7C, 0x50, 0x40, 0x20, 0x7C, 0x50, 0x04, 0x8E, 0x1B, 0x04, 0x08, 0x08, 0x7F, 0x7C, 0x08, 0x48, 0x3E, 0x48, 0x00, 0x48, 0xFF, 0x48, 0x91, 0x86, 0x92, 0x00, 0x7F, 0xFC, 0x28, 0x84, 0x28, 0x88, 0x7E, 0x50, 0x08, 0x20, 0xFF, 0x50, 0x08, 0x8E, 0x0B, 0x04, 0x08, 0x08, 0x7F, 0xFC, 0x08, 0x88, 0x3E, 0x88, 0x00, 0x88, 0xFF, 0x88, 0x91, 0x06, 0x9C, 0x00, 0x25, 0xFC, 0x7E, 0x84, 0xAA, 0x88, 0x3E, 0x50, 0x2A, 0x20, 0x3E, 0x50, 0x4A, 0x8E, 0x8B, 0x04, 0x02, 0x80, 0x02, 0x88, 0x7E, 0xFC, 0x02, 0x80, 0x3E, 0xF8, 0x02, 0x80, 0x7E, 0xFC, 0x02, 0x80, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x02, 0x80, 0x0C, 0x60, 0x70, 0x1C, 0x01, 0x00, 0xFF, 0xFE, 0x18, 0x30, 0x06, 0xC0, 0x01, 0x00, 0x0E, 0xE0, 0xF2, 0x9E, 0x2E, 0xE8, 0x22, 0x88, 0x2E, 0xE8, 0x22, 0x88, 0x2E, 0xE8, 0x22, 0x88, 0x3F, 0xF8, 0x20, 0x08, 0x40, 0x08, 0x04, 0x04, 0x42, 0xFE, 0x20, 0x44, 0x04, 0x54, 0xFF, 0xFC, 0x14, 0x44, 0x55, 0xF4, 0x25, 0x54, 0x25, 0xF4, 0x55, 0x54, 0x55, 0xF4, 0x4C, 0xE4, 0x8D, 0x54, 0x06, 0x4C, 0x04, 0x54, 0x04, 0x48, 0x20, 0x20, 0x18, 0x20, 0x08, 0x50, 0x00, 0x50, 0xFE, 0x88, 0x20, 0x88, 0x25, 0x06, 0x3E, 0x44, 0x24, 0x30, 0x24, 0x10, 0x24, 0x80, 0x24, 0x40, 0x44, 0x30, 0x44, 0x18, 0x94, 0x08, 0x08, 0x00, 0x20, 0x80, 0x18, 0x80, 0x08, 0x84, 0x01, 0xFE, 0xFE, 0x20, 0x20, 0x24, 0x25, 0xFE, 0x3E, 0x20, 0x25, 0xFC, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x45, 0x34, 0x45, 0x28, 0x94, 0x20, 0x08, 0x20, 0x20, 0x80, 0x18, 0x84, 0x08, 0xFE, 0x01, 0x00, 0xFE, 0x18, 0x21, 0xE0, 0x24, 0x28, 0x3E, 0x3C, 0x25, 0xE0, 0x24, 0x24, 0x24, 0x3E, 0x27, 0xE0, 0x44, 0x20, 0x44, 0x22, 0x94, 0x22, 0x08, 0x1E, 0x21, 0x00, 0x19, 0x04, 0x09, 0xFE, 0xFE, 0x00, 0x24, 0x08, 0x21, 0xFC, 0x3D, 0x08, 0x25, 0x48, 0x25, 0x28, 0x27, 0xFE, 0x25, 0x08, 0x25, 0x08, 0x45, 0x08, 0x45, 0x08, 0x95, 0x28, 0x0A, 0x10, 0x20, 0x80, 0x18, 0x80, 0x08, 0x84, 0x01, 0xFE, 0xFE, 0x20, 0x21, 0x20, 0x21, 0x28, 0x3D, 0xFC, 0x26, 0x20, 0x24, 0x28, 0x25, 0xFC, 0x24, 0x20, 0x44, 0x20, 0x44, 0x24, 0x97, 0xFE, 0x08, 0x00, 0x20, 0x80, 0x18, 0x80, 0x08, 0x84, 0x00, 0xFE, 0xFD, 0x00, 0x22, 0xFC, 0x20, 0x84, 0x3C, 0x84, 0x24, 0xFC, 0x24, 0x80, 0x24, 0xA4, 0x24, 0xA8, 0x44, 0xB0, 0x45, 0x22, 0x95, 0x22, 0x0A, 0x1E, 0x20, 0x80, 0x18, 0x84, 0x08, 0xFE, 0x01, 0x40, 0xFE, 0x24, 0x23, 0xFE, 0x20, 0x40, 0x3C, 0x88, 0x25, 0xFC, 0x24, 0x00, 0x24, 0xA8, 0x24, 0xA8, 0x44, 0xA8, 0x45, 0x2A, 0x95, 0x2A, 0x0A, 0x26, 0x20, 0x80, 0x18, 0x84, 0x09, 0xFE, 0x02, 0x20, 0xFE, 0xF8, 0x20, 0x20, 0x20, 0x50, 0x3C, 0x88, 0x27, 0xFE, 0x24, 0x08, 0x25, 0xE8, 0x25, 0x28, 0x45, 0x28, 0x45, 0xE8, 0x94, 0x08, 0x08, 0x18, 0x10, 0x00, 0x13, 0xF8, 0x10, 0x10, 0x14, 0x20, 0x54, 0x40, 0x58, 0x84, 0x53, 0xFE, 0x90, 0xA4, 0x10, 0xA4, 0x10, 0xA4, 0x19, 0x24, 0x25, 0x44, 0x22, 0x44, 0x44, 0x84, 0x81, 0x28, 0x00, 0x10, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x54, 0x40, 0x58, 0x48, 0x53, 0xFC, 0x90, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x44, 0x28, 0x44, 0x24, 0x54, 0x44, 0x48, 0x80, 0x40, 0x00, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x54, 0x40, 0x5A, 0x48, 0x52, 0x48, 0x92, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x10, 0x48, 0x28, 0x40, 0x24, 0x42, 0x44, 0x42, 0x80, 0x3E, 0x00, 0x00, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x14, 0xA0, 0x55, 0x10, 0x59, 0x10, 0x52, 0x0E, 0x95, 0xF4, 0x19, 0x10, 0x11, 0x10, 0x11, 0x10, 0x29, 0x50, 0x25, 0x24, 0x45, 0x04, 0x80, 0xFC, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x10, 0x40, 0x54, 0x40, 0x54, 0x80, 0x58, 0x80, 0x91, 0x08, 0x13, 0xFC, 0x15, 0x08, 0x11, 0x08, 0x29, 0x08, 0x25, 0x08, 0x45, 0x08, 0x41, 0xF8, 0x81, 0x08, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x10, 0x20, 0x55, 0x24, 0x54, 0xAC, 0x58, 0xB0, 0x90, 0x24, 0x17, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x28, 0x20, 0x24, 0x20, 0x44, 0x20, 0x40, 0xA0, 0x80, 0x40, 0x10, 0x40, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x58, 0x20, 0x90, 0x28, 0x11, 0xFC, 0x10, 0x20, 0x10, 0x20, 0x28, 0x20, 0x24, 0x20, 0x44, 0x24, 0x43, 0xFE, 0x80, 0x00, 0x10, 0x40, 0x10, 0x20, 0x10, 0x04, 0x17, 0xFE, 0x54, 0x40, 0x58, 0x40, 0x50, 0x80, 0x91, 0x08, 0x13, 0xF0, 0x10, 0x20, 0x10, 0x40, 0x28, 0x80, 0x25, 0x08, 0x42, 0x04, 0x47, 0xFC, 0x80, 0x04, 0x01, 0x00, 0x02, 0x00, 0x04, 0x20, 0x08, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x08, 0x11, 0x10, 0x11, 0x20, 0x22, 0x80, 0x0C, 0x60, 0x70, 0x1C, 0x10, 0xA0, 0x10, 0xA0, 0x10, 0xA0, 0x15, 0x24, 0x55, 0x28, 0x59, 0x30, 0x53, 0x64, 0x95, 0x1C, 0x11, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x28, 0x40, 0x24, 0x40, 0x44, 0x40, 0x40, 0x40, 0x80, 0x40, 0x12, 0x08, 0x11, 0x10, 0x10, 0xA0, 0x14, 0x08, 0x57, 0xFC, 0x58, 0x40, 0x50, 0x48, 0x93, 0xFC, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x28, 0x40, 0x24, 0x40, 0x44, 0x40, 0x40, 0x40, 0x80, 0x40, 0x10, 0x08, 0x13, 0xFC, 0x10, 0x80, 0x14, 0x88, 0x57, 0xFC, 0x59, 0x08, 0x51, 0x08, 0x91, 0x08, 0x17, 0xFE, 0x10, 0x00, 0x11, 0xFC, 0x29, 0x04, 0x25, 0x04, 0x45, 0x04, 0x41, 0xFC, 0x81, 0x04, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x14, 0xA0, 0x55, 0x10, 0x59, 0x90, 0x52, 0x48, 0x95, 0xF6, 0x18, 0x14, 0x10, 0x20, 0x13, 0xF8, 0x2A, 0x08, 0x26, 0x08, 0x46, 0x08, 0x43, 0xF8, 0x82, 0x08, 0x24, 0x04, 0x22, 0xFE, 0x20, 0x04, 0x24, 0x04, 0xAC, 0x44, 0xB4, 0x24, 0xA4, 0xA4, 0x24, 0x84, 0x25, 0x94, 0x26, 0xAC, 0x24, 0xA4, 0x24, 0xE4, 0x54, 0x04, 0x4C, 0x04, 0x84, 0x14, 0x04, 0x08, 0x10, 0x48, 0x10, 0x7C, 0x10, 0x40, 0x14, 0x40, 0x57, 0xF8, 0x5A, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x13, 0xF8, 0x10, 0x40, 0x10, 0x44, 0x2B, 0xFE, 0x24, 0x40, 0x44, 0x40, 0x40, 0x40, 0x80, 0x40, 0x01, 0x00, 0x11, 0x10, 0x11, 0x30, 0x11, 0x40, 0x22, 0x80, 0x0C, 0x60, 0x30, 0x1E, 0xC8, 0x24, 0x08, 0x20, 0x2A, 0xA4, 0x2A, 0xA8, 0x4D, 0x30, 0x14, 0x50, 0x12, 0x48, 0x20, 0x8E, 0xC1, 0x04, 0x21, 0x04, 0x21, 0x3E, 0x21, 0x24, 0x2F, 0xE4, 0xA9, 0x24, 0xB1, 0x3C, 0xA1, 0x24, 0x27, 0xA4, 0x24, 0xA4, 0x24, 0xBC, 0x24, 0xA4, 0x24, 0xA4, 0x57, 0xA4, 0x48, 0x44, 0x80, 0x94, 0x01, 0x08, 0x10, 0x04, 0x13, 0xFE, 0x12, 0x04, 0x12, 0x04, 0x57, 0xFC, 0x5A, 0x04, 0x52, 0x04, 0x93, 0xFC, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFC, 0x29, 0x08, 0x24, 0x88, 0x40, 0x90, 0x47, 0xFE, 0x80, 0x00, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x48, 0x12, 0x48, 0x57, 0xF8, 0x5A, 0x48, 0x52, 0x48, 0x93, 0xF8, 0x10, 0x00, 0x1F, 0xFE, 0x12, 0x88, 0x12, 0x50, 0x2A, 0x20, 0x26, 0x90, 0x43, 0x0E, 0x82, 0x04, 0x10, 0x44, 0x13, 0xBE, 0x12, 0x24, 0x12, 0x24, 0x57, 0xA4, 0x5A, 0x42, 0x52, 0x00, 0x93, 0xBC, 0x12, 0x04, 0x12, 0x24, 0x12, 0x28, 0x17, 0x90, 0x2A, 0x10, 0x2A, 0x28, 0x42, 0x4E, 0x82, 0x84, 0x08, 0x08, 0x0B, 0xFC, 0x0A, 0x08, 0x13, 0xF8, 0x30, 0x40, 0x5F, 0xFE, 0x90, 0xE0, 0x11, 0x50, 0x16, 0x4E, 0x11, 0x40, 0x09, 0x10, 0x09, 0x20, 0x12, 0xC0, 0x04, 0x40, 0x18, 0x30, 0x60, 0x0E, 0x10, 0x80, 0x10, 0x40, 0x17, 0xFE, 0x14, 0x02, 0x54, 0x04, 0x5B, 0xF8, 0x50, 0x00, 0x93, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x2B, 0xF8, 0x24, 0x00, 0x40, 0x04, 0x47, 0xFE, 0x80, 0x00, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x12, 0x04, 0x56, 0x04, 0x5B, 0xFC, 0x52, 0x00, 0x92, 0x04, 0x13, 0xFE, 0x15, 0x54, 0x15, 0x54, 0x29, 0xFC, 0x25, 0x54, 0x45, 0x54, 0x41, 0x54, 0x81, 0x0C, 0x10, 0x08, 0x10, 0xFC, 0x14, 0x88, 0x12, 0x88, 0x56, 0xF8, 0x58, 0x88, 0x50, 0x88, 0x96, 0xF8, 0x12, 0xA4, 0x12, 0xA8, 0x12, 0x90, 0x2A, 0xC8, 0x26, 0x84, 0x45, 0x06, 0x88, 0xFC, 0x00, 0x00, 0x20, 0x84, 0x27, 0x7E, 0x24, 0x24, 0x25, 0x24, 0xAC, 0xA4, 0xB5, 0xA4, 0xA6, 0x54, 0x20, 0x88, 0x27, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x54, 0x44, 0x4C, 0x44, 0x87, 0xFC, 0x04, 0x04, 0x11, 0xF8, 0x11, 0x08, 0x11, 0xF8, 0x15, 0x08, 0x55, 0xF8, 0x58, 0x00, 0x53, 0xFC, 0x92, 0x94, 0x13, 0xFC, 0x10, 0x00, 0x13, 0xFC, 0x29, 0x08, 0x24, 0x90, 0x44, 0x60, 0x41, 0x90, 0x86, 0x0E, 0x20, 0x80, 0x20, 0x44, 0x2F, 0xFE, 0x21, 0x10, 0xA8, 0xA4, 0xB7, 0xFE, 0xA4, 0xA4, 0x25, 0x14, 0x26, 0x0C, 0x25, 0xF4, 0x25, 0x14, 0x25, 0x14, 0x55, 0xF4, 0x4C, 0x04, 0x84, 0x14, 0x04, 0x08, 0x00, 0x08, 0x3F, 0x08, 0x21, 0x08, 0x3F, 0x08, 0x20, 0x7E, 0x3F, 0x08, 0x40, 0x28, 0x7F, 0xA8, 0x95, 0x08, 0x24, 0xA8, 0x0D, 0x10, 0x11, 0x10, 0x11, 0x20, 0x22, 0x80, 0x0C, 0x60, 0x70, 0x1C, 0x20, 0x84, 0x2F, 0xFE, 0x24, 0xA4, 0x22, 0x94, 0xA8, 0x84, 0xB2, 0x94, 0xA4, 0xA4, 0x20, 0x48, 0x23, 0xFC, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x52, 0x08, 0x4A, 0x08, 0x83, 0xF8, 0x02, 0x08, 0x20, 0x40, 0x20, 0x84, 0x27, 0xFE, 0x24, 0x44, 0xAD, 0x54, 0xB4, 0x44, 0xA7, 0xFC, 0x24, 0x44, 0x25, 0x54, 0x26, 0x4C, 0x24, 0x44, 0x2F, 0xFE, 0x50, 0xA0, 0x49, 0x10, 0x86, 0x0E, 0x18, 0x04, 0x10, 0x1C, 0x17, 0xE0, 0x12, 0x48, 0x11, 0x50, 0x57, 0xFE, 0x59, 0x50, 0x52, 0x48, 0x94, 0x4E, 0x1B, 0xFC, 0x12, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x2A, 0x48, 0x26, 0x48, 0x43, 0xF8, 0x82, 0x08, 0x21, 0x04, 0x28, 0x88, 0x24, 0x00, 0x23, 0xFE, 0xA8, 0x40, 0xB0, 0xC0, 0xAD, 0x24, 0x26, 0x68, 0x24, 0xB0, 0x27, 0x70, 0x24, 0xA8, 0x27, 0x26, 0x54, 0xA0, 0x4A, 0x46, 0x91, 0xFC, 0x00, 0x00, 0x04, 0x04, 0xFE, 0xFE, 0x10, 0x10, 0x32, 0x32, 0xDC, 0xDC, 0x28, 0x28, 0xDC, 0xDC, 0x2A, 0x2A, 0xD9, 0xD8, 0x01, 0x00, 0x09, 0x10, 0x09, 0x20, 0x12, 0x80, 0x04, 0x40, 0x18, 0x30, 0xE0, 0x0E, 0x27, 0xFC, 0x22, 0x48, 0x21, 0x50, 0x27, 0xFC, 0xAC, 0xA4, 0xB7, 0xFC, 0xA0, 0x00, 0x27, 0x88, 0x24, 0x88, 0x27, 0xFE, 0x24, 0x88, 0x27, 0xC8, 0x55, 0x28, 0x4D, 0x08, 0x86, 0xA8, 0x04, 0x10, 0x11, 0x10, 0x09, 0x20, 0x7F, 0xFE, 0x48, 0x22, 0xBE, 0xFC, 0x1C, 0x70, 0x2A, 0xA8, 0x09, 0x20, 0x7F, 0xFC, 0x02, 0x80, 0x0D, 0x60, 0x39, 0x38, 0xC5, 0x46, 0x02, 0x80, 0x04, 0x40, 0x18, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x88, 0x44, 0x44, 0x44, 0x42, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x08, 0x7F, 0xFC, 0x02, 0x00, 0x3F, 0xF8, 0x04, 0x00, 0xFF, 0xFE, 0x08, 0x20, 0x1F, 0xFC, 0x24, 0x20, 0x42, 0x20, 0x80, 0xA0, 0x00, 0x40, 0x24, 0x88, 0x22, 0x44, 0x42, 0x44, 0x00, 0x80, 0x78, 0x84, 0x48, 0xFE, 0x49, 0x04, 0x4A, 0x24, 0x79, 0xF4, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x79, 0xE4, 0x49, 0x14, 0x00, 0x08, 0x28, 0x90, 0x24, 0x48, 0x44, 0x46, 0x80, 0x02, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x24, 0x88, 0x42, 0x44, 0x02, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x21, 0x40, 0x21, 0x24, 0x3F, 0xFE, 0x21, 0x00, 0x21, 0x00, 0x22, 0x80, 0x42, 0x80, 0x44, 0x60, 0x88, 0x1C, 0x30, 0x08, 0x02, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x24, 0x20, 0x23, 0x20, 0x29, 0x20, 0x26, 0x24, 0x22, 0x3E, 0x3F, 0xE0, 0x40, 0x20, 0x40, 0x20, 0x80, 0x20, 0x00, 0x20, 0x02, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x04, 0x2F, 0xFE, 0x28, 0x04, 0x28, 0x04, 0x2B, 0xF4, 0x2A, 0x14, 0x4A, 0x14, 0x4B, 0xF4, 0x88, 0x04, 0x08, 0x08, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x20, 0x00, 0x2F, 0xF0, 0x28, 0x10, 0x2F, 0xF0, 0x20, 0x00, 0x2F, 0xF8, 0x28, 0x88, 0x4F, 0xF8, 0x48, 0x02, 0x88, 0x02, 0x07, 0xFE, 0x01, 0x00, 0x00, 0x88, 0x3F, 0xFC, 0x20, 0x08, 0x3F, 0xF8, 0x22, 0x40, 0x22, 0x48, 0x3E, 0x7C, 0x22, 0x40, 0x22, 0x50, 0x3E, 0x78, 0x22, 0x40, 0x42, 0x48, 0x5E, 0x7C, 0x82, 0x40, 0x02, 0x40, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x01, 0x00, 0x03, 0x80, 0x05, 0x40, 0x09, 0x00, 0x11, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x08, 0x13, 0xFC, 0x02, 0x08, 0xFE, 0x08, 0x0A, 0x08, 0x12, 0x08, 0x12, 0x08, 0x3B, 0xF8, 0x56, 0x08, 0x92, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x02, 0x12, 0x02, 0x11, 0xFE, 0x10, 0x00, 0x20, 0x08, 0x10, 0x7C, 0x03, 0xC0, 0xFC, 0x40, 0x08, 0x40, 0x10, 0x40, 0x10, 0x44, 0x3B, 0xFE, 0x54, 0x40, 0x90, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x11, 0x10, 0x12, 0x08, 0x14, 0x0E, 0x18, 0x04, 0x20, 0x20, 0x10, 0x20, 0x00, 0x20, 0xFD, 0x20, 0x09, 0x24, 0x11, 0x3E, 0x11, 0x20, 0x39, 0x20, 0x55, 0x20, 0x91, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x24, 0x17, 0xFE, 0x10, 0x00, 0x20, 0x40, 0x10, 0x40, 0x00, 0x40, 0xFC, 0x48, 0x0B, 0xFC, 0x10, 0x40, 0x10, 0x40, 0x38, 0x44, 0x57, 0xFE, 0x90, 0x40, 0x10, 0x40, 0x10, 0x80, 0x11, 0x10, 0x12, 0x08, 0x17, 0xFC, 0x10, 0x04, 0x20, 0x40, 0x10, 0x40, 0x00, 0x44, 0xFB, 0xFE, 0x08, 0x40, 0x10, 0x40, 0x10, 0x40, 0x38, 0x48, 0x57, 0xFC, 0x92, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x20, 0xA0, 0x10, 0x90, 0x00, 0x84, 0xFB, 0xFE, 0x08, 0x80, 0x10, 0x80, 0x10, 0xF8, 0x39, 0x08, 0x55, 0x88, 0x91, 0x50, 0x12, 0x50, 0x12, 0x20, 0x14, 0x50, 0x18, 0x88, 0x11, 0x0E, 0x12, 0x04, 0x21, 0x00, 0x11, 0x00, 0x01, 0x04, 0xFD, 0xFE, 0x0A, 0x80, 0x14, 0x80, 0x10, 0x88, 0x38, 0xFC, 0x54, 0x80, 0x90, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x20, 0x80, 0x10, 0x80, 0x00, 0x80, 0xFC, 0xFE, 0x09, 0x02, 0x12, 0x04, 0x10, 0x20, 0x38, 0x20, 0x54, 0xA8, 0x90, 0xA4, 0x11, 0x24, 0x11, 0x22, 0x12, 0x22, 0x10, 0x20, 0x10, 0xA0, 0x10, 0x40, 0x20, 0x08, 0x10, 0x3C, 0x03, 0xE0, 0xFA, 0x20, 0x0A, 0x20, 0x12, 0x24, 0x13, 0xFE, 0x3A, 0x20, 0x56, 0x20, 0x92, 0x20, 0x12, 0x20, 0x12, 0x50, 0x12, 0x90, 0x13, 0x4A, 0x12, 0x2A, 0x10, 0x04, 0x20, 0x04, 0x13, 0xFE, 0x00, 0x04, 0xFC, 0x24, 0x0B, 0xF4, 0x10, 0x04, 0x10, 0x24, 0x3B, 0xF4, 0x56, 0x24, 0x92, 0x24, 0x12, 0x24, 0x13, 0xE4, 0x12, 0x24, 0x10, 0x04, 0x10, 0x14, 0x10, 0x08, 0x20, 0x40, 0x10, 0x48, 0x00, 0x7C, 0xFC, 0x40, 0x0B, 0xF8, 0x12, 0x08, 0x12, 0x48, 0x3A, 0x48, 0x56, 0x48, 0x92, 0x48, 0x12, 0x48, 0x12, 0x48, 0x10, 0xA0, 0x10, 0x98, 0x11, 0x0C, 0x16, 0x04, 0x20, 0x20, 0x10, 0xA0, 0x00, 0xA0, 0xFC, 0xA4, 0x0A, 0xAC, 0x11, 0xB0, 0x10, 0xA0, 0x38, 0xA0, 0x55, 0xB0, 0x92, 0xAC, 0x14, 0xA4, 0x10, 0xA0, 0x11, 0x22, 0x11, 0x22, 0x12, 0x1E, 0x14, 0x00, 0x21, 0x10, 0x11, 0x10, 0x07, 0xFC, 0xF9, 0x10, 0x09, 0x10, 0x11, 0xF0, 0x11, 0x10, 0x39, 0x10, 0x55, 0xF0, 0x91, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x10, 0x00, 0x11, 0x10, 0x12, 0x0C, 0x14, 0x04, 0x21, 0x04, 0x10, 0x88, 0x00, 0x50, 0xFD, 0xFC, 0x09, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x39, 0x24, 0x55, 0x24, 0x91, 0xFC, 0x10, 0x20, 0x17, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x21, 0x00, 0x11, 0x04, 0x07, 0xFE, 0xF9, 0x14, 0x17, 0xD4, 0x11, 0x14, 0x17, 0xD4, 0x39, 0x24, 0x55, 0x4C, 0x90, 0x40, 0x17, 0xFE, 0x10, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x13, 0x1E, 0x14, 0x04, 0x21, 0x04, 0x10, 0x88, 0x00, 0x50, 0xFB, 0xFE, 0x08, 0x20, 0x10, 0x20, 0x11, 0xFC, 0x38, 0x20, 0x54, 0x20, 0x90, 0x24, 0x13, 0xFE, 0x10, 0x00, 0x12, 0xA4, 0x12, 0x52, 0x14, 0x52, 0x10, 0x00, 0x20, 0x40, 0x17, 0xFE, 0x00, 0x40, 0xFF, 0xFC, 0x08, 0x00, 0x13, 0xF8, 0x1A, 0x08, 0x37, 0xF8, 0x51, 0x10, 0x9F, 0xFE, 0x10, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x20, 0x40, 0x17, 0xFE, 0x00, 0x00, 0xFF, 0xBC, 0x0C, 0xA4, 0x17, 0xBC, 0x11, 0x10, 0x3B, 0xF8, 0x55, 0x10, 0x93, 0xF8, 0x11, 0x10, 0x1F, 0xFE, 0x11, 0x48, 0x13, 0x30, 0x1D, 0x8E, 0x11, 0x04, 0x00, 0x04, 0x7F, 0xFE, 0x01, 0x00, 0x01, 0x80, 0x01, 0x60, 0x01, 0x30, 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x29, 0x88, 0x28, 0x84, 0x48, 0x12, 0x88, 0x12, 0x07, 0xF0, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x01, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x7F, 0xFE, 0x00, 0x00, 0x0A, 0x00, 0x29, 0x88, 0x28, 0x84, 0x48, 0x12, 0x88, 0x12, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x7E, 0x14, 0x03, 0xFE, 0x24, 0x10, 0x14, 0x90, 0x08, 0x50, 0x14, 0x10, 0x22, 0x50, 0x40, 0x20, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x00, 0x00, 0x08, 0x00, 0x08, 0x04, 0x7F, 0x7E, 0x08, 0x24, 0x3E, 0x24, 0x08, 0x24, 0x7F, 0x44, 0x08, 0x54, 0x08, 0x88, 0x00, 0x00, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x00, 0x00, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x58, 0x00, 0x00, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x00, 0x00, 0x08, 0x08, 0x08, 0x1C, 0x17, 0xE0, 0x10, 0x40, 0x30, 0x44, 0x5F, 0xFE, 0x90, 0x40, 0x10, 0x48, 0x17, 0xFC, 0x10, 0x00, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x00, 0x00, 0x08, 0x20, 0x04, 0x48, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x00, 0x00, 0x40, 0x80, 0x30, 0x80, 0x10, 0xFC, 0x05, 0x04, 0x0A, 0x48, 0x10, 0x40, 0xE0, 0xA0, 0x21, 0x10, 0x26, 0x0E, 0x00, 0x00, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x00, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x8F, 0xE4, 0x08, 0x20, 0x08, 0x28, 0x30, 0x38, 0x0A, 0x00, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x08, 0x08, 0x12, 0x7C, 0x21, 0x00, 0x4C, 0x04, 0x12, 0xFE, 0x30, 0x88, 0x51, 0x08, 0x96, 0x08, 0x12, 0x28, 0x10, 0x10, 0x0A, 0x00, 0x29, 0x88, 0x28, 0x84, 0x48, 0x12, 0x88, 0x12, 0x07, 0xF0, 0x00, 0x40, 0x7E, 0x40, 0x42, 0x44, 0x7E, 0xFE, 0x49, 0x48, 0x7E, 0x28, 0x48, 0x10, 0x49, 0x28, 0x65, 0x4E, 0x42, 0x84, 0x00, 0x00, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x3F, 0xFC, 0x22, 0x20, 0x2F, 0xF8, 0x22, 0xA0, 0x3F, 0xFC, 0x22, 0x00, 0x27, 0xF0, 0x2A, 0x10, 0x23, 0xF0, 0x20, 0x00, 0x3F, 0xFC, 0x0A, 0x00, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x0E, 0x20, 0x78, 0x24, 0x08, 0xFE, 0xFF, 0x84, 0x08, 0xFC, 0x3E, 0x84, 0x22, 0xFC, 0x22, 0x84, 0x22, 0xFC, 0x3E, 0x84, 0x00, 0x00, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x08, 0x40, 0xFF, 0x40, 0x00, 0x44, 0x7E, 0xFE, 0x43, 0x04, 0x7E, 0x44, 0x00, 0x28, 0x7F, 0x10, 0x04, 0x28, 0xFF, 0x46, 0x08, 0x84, 0x1A, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x10, 0x10, 0x17, 0xD0, 0x12, 0x94, 0xF9, 0x7E, 0x17, 0xD0, 0x39, 0x58, 0x33, 0x34, 0x55, 0x52, 0x91, 0x90, 0x13, 0x10, 0x00, 0x00, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x41, 0x10, 0x2F, 0xFE, 0x11, 0x10, 0x87, 0xFC, 0x61, 0x10, 0x2F, 0xFC, 0x15, 0x14, 0x26, 0xAC, 0xE4, 0x44, 0x24, 0x0C, 0x00, 0x00, 0x2A, 0x08, 0x29, 0x84, 0x48, 0x92, 0x88, 0x12, 0x07, 0xF0, 0x08, 0x40, 0xFF, 0x7E, 0x14, 0xA8, 0xFF, 0x10, 0x22, 0xEE, 0x3E, 0x00, 0x22, 0x7C, 0x3E, 0x44, 0x08, 0x54, 0x7F, 0x54, 0x08, 0x28, 0x0A, 0x44, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0x0F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x01, 0x08, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x3F, 0xFC, 0x01, 0x08, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x7D, 0x18, 0x05, 0xA0, 0x09, 0x40, 0x11, 0x30, 0x25, 0x0E, 0xC2, 0x04, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x22, 0x08, 0x11, 0x18, 0x09, 0x20, 0x00, 0x40, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x04, 0x01, 0x10, 0x3D, 0xA0, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0xC1, 0x04, 0x05, 0x00, 0x02, 0x00, 0x01, 0x08, 0x01, 0x10, 0x7D, 0xA0, 0x05, 0xC0, 0x09, 0x40, 0x11, 0x30, 0x25, 0x0E, 0x42, 0x04, 0x08, 0x20, 0x09, 0x24, 0xFA, 0xE8, 0x1C, 0x70, 0x2C, 0xA8, 0xCB, 0x26, 0x28, 0xA4, 0x10, 0x40, 0x04, 0x08, 0xFE, 0xFC, 0x10, 0x88, 0x10, 0x88, 0x20, 0x88, 0x24, 0x88, 0x3E, 0x88, 0x64, 0x88, 0xA4, 0x88, 0x24, 0x88, 0x24, 0x88, 0x24, 0x88, 0x25, 0x0A, 0x3D, 0x0A, 0x22, 0x06, 0x04, 0x00, 0x04, 0x08, 0xFD, 0xFC, 0x10, 0x20, 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x24, 0x67, 0xFE, 0xA4, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x20, 0x20, 0x20, 0x00, 0x20, 0x00, 0x00, 0x01, 0xF8, 0xFE, 0x10, 0x10, 0x20, 0x20, 0x40, 0x20, 0x84, 0x21, 0xFE, 0x7C, 0x54, 0xA4, 0x54, 0x24, 0x54, 0x24, 0x94, 0x24, 0xA4, 0x25, 0x24, 0x3D, 0x44, 0x22, 0x54, 0x00, 0x88, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x10, 0x0F, 0xF8, 0x18, 0x10, 0x28, 0x10, 0xC8, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x04, 0x40, 0xFE, 0x48, 0x13, 0xFC, 0x10, 0x80, 0x20, 0xA0, 0x21, 0x20, 0x3D, 0x28, 0x67, 0xFC, 0xA4, 0x20, 0x24, 0x20, 0x24, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x3C, 0x20, 0x20, 0x20, 0x00, 0x20, 0x04, 0x20, 0xFE, 0x24, 0x11, 0xFE, 0x10, 0x20, 0x21, 0x24, 0x21, 0x24, 0x3D, 0x24, 0x65, 0x24, 0xA5, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x24, 0x24, 0x24, 0x20, 0x3C, 0x22, 0x20, 0x1E, 0x00, 0x00, 0x04, 0x04, 0xFE, 0xFE, 0x10, 0x08, 0x10, 0x88, 0x20, 0x88, 0x21, 0x08, 0x3D, 0xFE, 0x64, 0x28, 0xA4, 0x28, 0x24, 0x48, 0x24, 0x48, 0x24, 0x88, 0x25, 0x08, 0x3E, 0x08, 0x24, 0x28, 0x00, 0x10, 0x04, 0x00, 0xFE, 0x1C, 0x11, 0xE0, 0x11, 0x00, 0x21, 0x00, 0x21, 0x04, 0x3D, 0xFE, 0x65, 0x10, 0xA5, 0x10, 0x25, 0x10, 0x25, 0x10, 0x25, 0x10, 0x3D, 0x10, 0x21, 0x10, 0x02, 0x10, 0x04, 0x10, 0x04, 0x08, 0xFE, 0x3C, 0x13, 0xC0, 0x10, 0x40, 0x20, 0x20, 0x24, 0x20, 0x3F, 0xFC, 0x64, 0x08, 0xA4, 0x10, 0x24, 0x20, 0x24, 0x40, 0x24, 0x80, 0x25, 0x00, 0x3F, 0x00, 0x22, 0x86, 0x00, 0x7C, 0x04, 0x08, 0xFF, 0xFC, 0x12, 0x08, 0x12, 0x08, 0x23, 0x18, 0x22, 0x98, 0x3A, 0xA8, 0x6A, 0xA8, 0xAA, 0x48, 0x2A, 0x48, 0x2A, 0xA8, 0x2A, 0x98, 0x3B, 0x1A, 0x24, 0x0A, 0x08, 0x0A, 0x10, 0x04, 0x04, 0x20, 0xFE, 0x20, 0x10, 0x28, 0x11, 0xFC, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x24, 0x67, 0xFE, 0xA4, 0x20, 0x24, 0x20, 0x24, 0x40, 0x24, 0x80, 0x25, 0x08, 0x3D, 0xFC, 0x20, 0x04, 0x00, 0x00, 0x04, 0x88, 0xFE, 0x88, 0x13, 0xFE, 0x10, 0x88, 0x20, 0x88, 0x20, 0x00, 0x3D, 0x04, 0x65, 0x04, 0xA4, 0x88, 0x24, 0x88, 0x24, 0x50, 0x24, 0x20, 0x24, 0x50, 0x3C, 0x88, 0x21, 0x0E, 0x06, 0x04, 0x08, 0x08, 0xFF, 0xFC, 0x12, 0x00, 0x12, 0x04, 0x23, 0xFE, 0x22, 0x40, 0x3A, 0x44, 0x6A, 0x7E, 0xAA, 0x44, 0x2A, 0x44, 0x2A, 0x44, 0x2A, 0x84, 0x3A, 0x84, 0x24, 0x84, 0x09, 0x28, 0x12, 0x10, 0x04, 0x40, 0x04, 0x28, 0x7F, 0xFC, 0x05, 0x00, 0x05, 0x30, 0x09, 0xC4, 0x37, 0x04, 0xC1, 0xFC, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x10, 0x0F, 0xF8, 0x18, 0x10, 0x28, 0x10, 0xCF, 0xF0, 0x08, 0x10, 0x04, 0x80, 0xFE, 0x80, 0x10, 0x84, 0x10, 0xFE, 0x21, 0x40, 0x22, 0x40, 0x3C, 0x48, 0x64, 0x7C, 0xA4, 0x40, 0x24, 0x40, 0x24, 0x48, 0x24, 0x7C, 0x24, 0x40, 0x3C, 0x40, 0x20, 0x40, 0x00, 0x40, 0x04, 0x20, 0xFE, 0x20, 0x10, 0x50, 0x10, 0x50, 0x20, 0x88, 0x25, 0x04, 0x3E, 0x02, 0x64, 0x08, 0xA5, 0xFC, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x24, 0x23, 0xFE, 0x00, 0x00, 0x04, 0x08, 0xFE, 0x1C, 0x11, 0xE0, 0x11, 0x20, 0x21, 0x20, 0x21, 0x24, 0x3D, 0xFE, 0x65, 0x20, 0xA5, 0x20, 0x25, 0x20, 0x25, 0x20, 0x25, 0x10, 0x25, 0x50, 0x3D, 0x4A, 0x21, 0xAA, 0x00, 0x04, 0x04, 0x40, 0xFE, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x20, 0x00, 0x20, 0x08, 0x3D, 0x08, 0x65, 0x08, 0xA4, 0x90, 0x24, 0x90, 0x24, 0x90, 0x24, 0x90, 0x24, 0x20, 0x3C, 0x24, 0x27, 0xFE, 0x00, 0x00, 0x04, 0x40, 0xFE, 0x20, 0x10, 0x20, 0x13, 0xFE, 0x22, 0x02, 0x24, 0x84, 0x3E, 0x80, 0x64, 0x88, 0xA4, 0x98, 0x24, 0xA0, 0x24, 0xC0, 0x24, 0x80, 0x24, 0x82, 0x3C, 0x82, 0x20, 0x7E, 0x00, 0x00, 0x00, 0x90, 0x00, 0x90, 0xFC, 0x94, 0x13, 0xFE, 0x20, 0x94, 0x20, 0x94, 0x23, 0xFC, 0x7A, 0x90, 0xAA, 0x90, 0x2B, 0xFE, 0x28, 0x92, 0x28, 0x92, 0x28, 0x9A, 0x38, 0x94, 0x01, 0x10, 0x02, 0x10, 0x08, 0x44, 0xFF, 0xE4, 0x12, 0x44, 0x12, 0x54, 0x22, 0x54, 0x22, 0x54, 0x3A, 0x54, 0x6F, 0xF4, 0xAA, 0x54, 0x2A, 0x54, 0x2A, 0x54, 0x2A, 0x54, 0x3A, 0x44, 0x22, 0x44, 0x04, 0x54, 0x08, 0x48, 0x04, 0x88, 0xFE, 0x88, 0x13, 0xFE, 0x10, 0x88, 0x20, 0x88, 0x20, 0x20, 0x3C, 0x24, 0x67, 0xFE, 0xA5, 0x00, 0x25, 0x00, 0x25, 0x00, 0x25, 0x00, 0x25, 0x00, 0x3D, 0x08, 0x20, 0xFC, 0x00, 0x00, 0x08, 0x40, 0xFC, 0x48, 0x17, 0xFC, 0x10, 0x40, 0x22, 0x48, 0x21, 0x48, 0x39, 0x50, 0x68, 0x44, 0xAF, 0xFE, 0x28, 0xA0, 0x28, 0xA0, 0x29, 0x10, 0x29, 0x10, 0x3A, 0x08, 0x24, 0x0E, 0x08, 0x04, 0x04, 0x40, 0xFE, 0x48, 0x10, 0x7C, 0x13, 0xC0, 0x20, 0x28, 0x20, 0x12, 0x3C, 0x6A, 0x65, 0x86, 0xA4, 0x00, 0x27, 0xFC, 0x24, 0x90, 0x24, 0x90, 0x24, 0x90, 0x3D, 0x12, 0x21, 0x12, 0x06, 0x0E, 0x04, 0x40, 0x04, 0x40, 0x27, 0x4C, 0x24, 0x70, 0x24, 0x42, 0x3F, 0x42, 0xE0, 0x3E, 0x00, 0x00, 0x7F, 0xFC, 0x04, 0x00, 0x08, 0x10, 0x1F, 0xF8, 0x28, 0x10, 0xC8, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x08, 0x04, 0xFF, 0xFE, 0x12, 0x04, 0x12, 0x04, 0x22, 0xF4, 0x22, 0x04, 0x3A, 0x04, 0x6A, 0xF4, 0xAA, 0x94, 0x2A, 0x94, 0x2A, 0x94, 0x2A, 0xF4, 0x2A, 0x94, 0x3A, 0x04, 0x22, 0x14, 0x02, 0x08, 0x04, 0x20, 0xFE, 0x20, 0x10, 0x44, 0x11, 0xFE, 0x21, 0x04, 0x21, 0x8C, 0x3D, 0x54, 0x65, 0x54, 0xA5, 0x24, 0x25, 0x54, 0x25, 0x4C, 0x25, 0x8C, 0x25, 0x04, 0x3D, 0x04, 0x21, 0xFC, 0x01, 0x04, 0x00, 0x80, 0x04, 0x88, 0xFE, 0xFC, 0x11, 0x08, 0x21, 0x88, 0x22, 0x50, 0x20, 0x20, 0x7C, 0x50, 0xA4, 0x8E, 0x25, 0x04, 0x27, 0xF8, 0x25, 0x08, 0x25, 0x08, 0x3D, 0x08, 0x21, 0xF8, 0x01, 0x08, 0x04, 0x10, 0xFE, 0x58, 0x13, 0x94, 0x10, 0x94, 0x20, 0x90, 0x23, 0xFE, 0x3C, 0x90, 0x64, 0x90, 0xA4, 0xB4, 0x24, 0xD4, 0x27, 0x98, 0x24, 0x90, 0x24, 0xAA, 0x3C, 0xCA, 0x22, 0x8A, 0x01, 0x04, 0x08, 0x20, 0xFC, 0x24, 0x13, 0xFE, 0x10, 0x20, 0x21, 0xFC, 0x24, 0x20, 0x3F, 0xFE, 0x64, 0x00, 0xA5, 0xFC, 0x25, 0x04, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x3C, 0x58, 0x20, 0x84, 0x03, 0x02, 0x04, 0x60, 0xFE, 0x50, 0x10, 0x44, 0x10, 0xFE, 0x20, 0x90, 0x25, 0x90, 0x3E, 0x90, 0x64, 0xFC, 0xA4, 0x90, 0x24, 0x90, 0x24, 0xFC, 0x24, 0x90, 0x24, 0x90, 0x3C, 0x94, 0x20, 0xFE, 0x00, 0x80, 0x04, 0x40, 0xFE, 0x28, 0x13, 0xFC, 0x10, 0x00, 0x21, 0x08, 0x20, 0x90, 0x3C, 0x04, 0x67, 0xFE, 0xA4, 0x00, 0x25, 0xF8, 0x25, 0x08, 0x25, 0x08, 0x25, 0x08, 0x3D, 0x08, 0x21, 0xF8, 0x01, 0x08, 0x04, 0x40, 0xFE, 0x20, 0x13, 0xFE, 0x12, 0x02, 0x24, 0x04, 0x21, 0xFC, 0x3C, 0x20, 0x64, 0x20, 0xA5, 0x20, 0x25, 0x24, 0x25, 0x3E, 0x25, 0x20, 0x25, 0x20, 0x3D, 0x20, 0x22, 0xA6, 0x04, 0x7C, 0x08, 0x40, 0xFC, 0x90, 0x11, 0x08, 0x13, 0xFC, 0x20, 0x40, 0x27, 0xFE, 0x38, 0x90, 0x69, 0x28, 0xAA, 0x46, 0x2D, 0x94, 0x28, 0x20, 0x28, 0xC8, 0x2B, 0x10, 0x38, 0x20, 0x20, 0xC0, 0x03, 0x00, 0x04, 0x20, 0xFF, 0xFC, 0x10, 0x20, 0x11, 0xFC, 0x20, 0x20, 0x23, 0xFE, 0x3C, 0x00, 0x65, 0xFC, 0xA5, 0x44, 0x25, 0x24, 0x27, 0xFE, 0x25, 0x44, 0x25, 0x24, 0x3D, 0xFE, 0x20, 0x04, 0x00, 0x18, 0x08, 0x08, 0xFD, 0xFC, 0x11, 0x08, 0x11, 0xF8, 0x21, 0x08, 0x29, 0xF8, 0x3D, 0x04, 0x69, 0xFE, 0xAA, 0x44, 0x2C, 0x44, 0x2A, 0xB4, 0x2B, 0x14, 0x2A, 0x04, 0x3B, 0xFC, 0x20, 0x04, 0x00, 0x08, 0x04, 0x40, 0xFE, 0x24, 0x11, 0xFE, 0x10, 0x88, 0x20, 0x50, 0x23, 0xFE, 0x3E, 0x22, 0x64, 0x24, 0xA5, 0xFE, 0x25, 0x24, 0x25, 0x24, 0x25, 0x34, 0x25, 0x28, 0x3C, 0x20, 0x20, 0x20, 0x00, 0x20, 0x04, 0x40, 0xFE, 0x20, 0x13, 0xFE, 0x12, 0x02, 0x24, 0x04, 0x21, 0xFC, 0x3C, 0x00, 0x65, 0xFC, 0xA5, 0x04, 0x25, 0xFC, 0x25, 0x04, 0x25, 0xFC, 0x24, 0x00, 0x3C, 0x04, 0x23, 0xFE, 0x00, 0x00, 0x08, 0x40, 0xFC, 0x24, 0x13, 0xFE, 0x12, 0x04, 0x22, 0x04, 0x23, 0xFC, 0x3A, 0x00, 0x6A, 0x04, 0xAB, 0xFE, 0x2B, 0x54, 0x2B, 0x54, 0x2D, 0xFC, 0x29, 0x54, 0x39, 0x54, 0x21, 0x54, 0x01, 0x0C, 0x09, 0x08, 0xFD, 0x08, 0x11, 0xFC, 0x12, 0x48, 0x26, 0xA8, 0x21, 0x3E, 0x39, 0x08, 0x6A, 0x48, 0xA8, 0x44, 0x2F, 0xFE, 0x28, 0xC0, 0x28, 0xE0, 0x29, 0x50, 0x3A, 0x4E, 0x2C, 0x44, 0x00, 0x40, 0x08, 0x40, 0xFC, 0x24, 0x17, 0xFE, 0x11, 0x08, 0x22, 0x46, 0x24, 0x92, 0x39, 0x08, 0x6B, 0xFC, 0xA8, 0x80, 0x28, 0x88, 0x29, 0x50, 0x2B, 0x20, 0x2D, 0x10, 0x39, 0x48, 0x21, 0x8E, 0x01, 0x04, 0x05, 0xFC, 0xFE, 0x88, 0x10, 0x70, 0x10, 0x88, 0x21, 0x06, 0x23, 0xFC, 0x3D, 0x54, 0x64, 0x88, 0xA5, 0x54, 0x24, 0x22, 0x27, 0xFE, 0x24, 0x70, 0x24, 0xA8, 0x3D, 0x26, 0x22, 0x20, 0x00, 0x20, 0x08, 0x78, 0x7F, 0x48, 0x08, 0x48, 0x3E, 0x48, 0x00, 0x86, 0x7F, 0x78, 0x49, 0x48, 0x7F, 0x30, 0x40, 0x48, 0x40, 0x86, 0xBF, 0xFC, 0x04, 0x00, 0x0F, 0xF0, 0x18, 0x10, 0x68, 0x10, 0x0F, 0xF0, 0x0A, 0x04, 0xFF, 0x7E, 0x11, 0x40, 0x14, 0x7C, 0x22, 0x44, 0x20, 0xFC, 0x39, 0x40, 0x6A, 0x7E, 0xAA, 0x40, 0x28, 0x44, 0x2F, 0xFE, 0x28, 0xE0, 0x29, 0x50, 0x3A, 0x4E, 0x24, 0x44, 0x00, 0x40, 0x09, 0x10, 0xFD, 0x10, 0x17, 0xD0, 0x10, 0x1E, 0x27, 0xE4, 0x24, 0x44, 0x3F, 0xD4, 0x68, 0x14, 0xAF, 0xD4, 0x28, 0x94, 0x29, 0x08, 0x29, 0xC8, 0x2F, 0x14, 0x39, 0x14, 0x25, 0x22, 0x02, 0x40, 0x08, 0x20, 0xFF, 0xA8, 0x10, 0xB0, 0x12, 0xA4, 0x21, 0x18, 0x21, 0x10, 0x3B, 0xF8, 0x6C, 0x06, 0xAB, 0xF8, 0x2A, 0x08, 0x2A, 0x08, 0x2B, 0xF8, 0x29, 0x10, 0x38, 0xA4, 0x27, 0xFE, 0x00, 0x00, 0x0B, 0xFE, 0xFC, 0x00, 0x11, 0xFC, 0x11, 0x24, 0x21, 0xFC, 0x25, 0x24, 0x3F, 0xFE, 0x64, 0x00, 0xA5, 0xFC, 0x25, 0x24, 0x25, 0xFC, 0x25, 0x24, 0x25, 0xFC, 0x3C, 0x00, 0x23, 0xFE, 0x00, 0x00, 0x01, 0x10, 0xFF, 0xFE, 0x21, 0x10, 0x22, 0x20, 0x23, 0xBC, 0x44, 0xA4, 0x7B, 0x18, 0xD6, 0x08, 0x55, 0xF4, 0x58, 0x02, 0x57, 0xFC, 0x50, 0x40, 0x51, 0x50, 0x72, 0x4C, 0x44, 0x44, 0x00, 0xC0, 0x01, 0x10, 0xFF, 0xFE, 0x21, 0x10, 0x27, 0xFE, 0x24, 0x02, 0x49, 0xF4, 0x70, 0x00, 0xD7, 0xFC, 0x50, 0x80, 0x51, 0x48, 0x56, 0x70, 0x50, 0xB0, 0x57, 0x68, 0x70, 0xA6, 0x47, 0x20, 0x00, 0x60, 0x01, 0x10, 0xFF, 0xFE, 0x21, 0x28, 0x2B, 0xFE, 0x24, 0x20, 0x41, 0xFC, 0x79, 0x24, 0xD5, 0xFC, 0x55, 0x24, 0x51, 0xFC, 0x55, 0x24, 0x57, 0xFE, 0x54, 0x88, 0x78, 0x48, 0x48, 0x08, 0x00, 0x18, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x3F, 0xF8, 0xC0, 0x06, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x24, 0xFF, 0xFE, 0x02, 0x80, 0x04, 0xA0, 0x04, 0xC0, 0x09, 0x84, 0x12, 0x84, 0x60, 0x7C, 0x04, 0x40, 0x24, 0x48, 0x14, 0x50, 0x04, 0x44, 0xFF, 0xFE, 0x09, 0x20, 0x05, 0x48, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x23, 0x88, 0x25, 0x68, 0x29, 0x28, 0x21, 0x08, 0x21, 0x28, 0x21, 0x10, 0x14, 0x20, 0x55, 0x28, 0x36, 0x24, 0x14, 0x24, 0xFF, 0xFE, 0x49, 0x20, 0x2A, 0x20, 0x7F, 0x3C, 0x49, 0x54, 0x49, 0x54, 0x5D, 0x54, 0x6B, 0x48, 0x49, 0x54, 0x49, 0x94, 0x49, 0x24, 0x43, 0x42, 0x28, 0x20, 0xAA, 0x28, 0x6C, 0x24, 0x29, 0xFE, 0xFE, 0x20, 0x54, 0x24, 0x39, 0xFE, 0x7D, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x7D, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x45, 0x2C, 0x00, 0x08, 0x05, 0xFC, 0x7E, 0x20, 0x44, 0x20, 0x44, 0x20, 0x7C, 0x20, 0x44, 0x24, 0x47, 0xFE, 0x7C, 0x20, 0x44, 0x20, 0x44, 0x20, 0x44, 0x20, 0x7C, 0x20, 0x44, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x04, 0x03, 0xFE, 0x7C, 0x20, 0x45, 0x20, 0x45, 0x24, 0x7D, 0x3E, 0x45, 0x24, 0x45, 0x24, 0x7D, 0xFC, 0x44, 0x04, 0x44, 0x04, 0x44, 0x04, 0x7C, 0x04, 0x44, 0x44, 0x00, 0x28, 0x00, 0x10, 0x00, 0x04, 0x01, 0xFE, 0x7D, 0x00, 0x45, 0x04, 0x45, 0x84, 0x7D, 0x48, 0x45, 0x28, 0x45, 0x10, 0x7D, 0x28, 0x45, 0x28, 0x45, 0x44, 0x45, 0x84, 0x7D, 0x00, 0x45, 0x04, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x78, 0x44, 0x4F, 0xFE, 0x48, 0x40, 0x7A, 0x48, 0x4A, 0x48, 0x4A, 0x48, 0x7A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x48, 0x48, 0x78, 0x42, 0x48, 0x42, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x40, 0x48, 0x40, 0x49, 0x50, 0x79, 0x48, 0x4A, 0x46, 0x4A, 0x4A, 0x7C, 0x48, 0x48, 0x50, 0x48, 0x50, 0x48, 0x20, 0x78, 0x40, 0x48, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x40, 0x4B, 0xFE, 0x4A, 0x42, 0x7C, 0x44, 0x48, 0x40, 0x48, 0x40, 0x78, 0x60, 0x48, 0xA0, 0x48, 0xA0, 0x48, 0xA0, 0x79, 0x22, 0x49, 0x22, 0x02, 0x1E, 0x0C, 0x00, 0x11, 0x00, 0x11, 0x10, 0x1F, 0xF8, 0x21, 0x00, 0x5F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x08, 0x1E, 0xFC, 0x12, 0x88, 0x32, 0x88, 0x4A, 0xA8, 0x04, 0x90, 0x08, 0x82, 0x30, 0x7E, 0xDF, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x20, 0x04, 0x20, 0x7E, 0x40, 0x44, 0x40, 0x44, 0x88, 0x7D, 0x04, 0x47, 0xFE, 0x44, 0x02, 0x7C, 0x04, 0x45, 0xFE, 0x45, 0x04, 0x45, 0x04, 0x7D, 0x04, 0x45, 0x04, 0x01, 0xFC, 0x01, 0x04, 0x00, 0x20, 0x00, 0x28, 0x7D, 0xFC, 0x44, 0x20, 0x44, 0x20, 0x7C, 0x24, 0x47, 0xFE, 0x44, 0x20, 0x7C, 0x20, 0x44, 0x28, 0x45, 0xFC, 0x44, 0x20, 0x7C, 0x20, 0x44, 0x24, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x10, 0x08, 0x90, 0x7C, 0x90, 0x48, 0x90, 0x4A, 0x90, 0x7A, 0x92, 0x4A, 0xF6, 0x4A, 0x98, 0x7A, 0x90, 0x4A, 0x90, 0x4A, 0x90, 0x4A, 0x90, 0x7A, 0xF2, 0x4B, 0x92, 0x06, 0x1E, 0x00, 0x00, 0x00, 0x40, 0x04, 0x40, 0x7E, 0xFC, 0x45, 0x08, 0x46, 0x90, 0x7C, 0x60, 0x44, 0x40, 0x44, 0xA0, 0x7F, 0x3E, 0x44, 0x42, 0x44, 0x84, 0x45, 0x44, 0x7C, 0x28, 0x44, 0x10, 0x00, 0x60, 0x03, 0x80, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x90, 0x49, 0x08, 0x4B, 0xFC, 0x78, 0x20, 0x49, 0x28, 0x49, 0xFC, 0x7A, 0x20, 0x48, 0x24, 0x4F, 0xFE, 0x48, 0x20, 0x78, 0x20, 0x48, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x78, 0x48, 0x4F, 0xFC, 0x48, 0x40, 0x7A, 0x48, 0x49, 0x50, 0x48, 0x64, 0x7F, 0xFE, 0x48, 0xC0, 0x48, 0xE0, 0x49, 0x50, 0x79, 0x48, 0x4A, 0x4E, 0x04, 0x44, 0x00, 0x40, 0x00, 0x40, 0x08, 0x40, 0x7C, 0xA0, 0x49, 0x10, 0x4A, 0x0E, 0x7C, 0x24, 0x49, 0xF0, 0x48, 0x00, 0x7A, 0x48, 0x4A, 0x48, 0x49, 0x48, 0x49, 0x50, 0x79, 0x50, 0x48, 0x24, 0x07, 0xFE, 0x00, 0x00, 0x02, 0x08, 0x09, 0x10, 0x7C, 0xA0, 0x4B, 0xF8, 0x48, 0x48, 0x78, 0x48, 0x4B, 0xF8, 0x4A, 0x40, 0x7A, 0x44, 0x4B, 0xFE, 0x48, 0xC4, 0x49, 0x44, 0x7A, 0x54, 0x44, 0x48, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x08, 0x40, 0x7C, 0x90, 0x49, 0x08, 0x4B, 0xFC, 0x78, 0x90, 0x49, 0x0C, 0x4A, 0x84, 0x78, 0xF8, 0x49, 0x08, 0x49, 0x10, 0x4A, 0xA0, 0x7C, 0x40, 0x48, 0xA0, 0x01, 0x18, 0x06, 0x06, 0x00, 0x04, 0x0B, 0xFE, 0x7E, 0x20, 0x4A, 0x20, 0x4A, 0xF8, 0x7A, 0x20, 0x4A, 0x20, 0x4B, 0xFC, 0x7A, 0x20, 0x4A, 0x20, 0x4A, 0xF8, 0x4A, 0x20, 0x7A, 0x20, 0x42, 0x24, 0x05, 0xFE, 0x08, 0x00, 0x00, 0x44, 0x7D, 0x9E, 0x45, 0x04, 0x45, 0x04, 0x45, 0xDC, 0x7D, 0x04, 0x45, 0x04, 0x45, 0xFC, 0x7D, 0x54, 0x44, 0x50, 0x44, 0x50, 0x44, 0x90, 0x7C, 0x92, 0x41, 0x12, 0x02, 0x0E, 0x0C, 0x00, 0x00, 0xC0, 0x08, 0xA0, 0x7C, 0x84, 0x49, 0xFE, 0x49, 0x20, 0x7B, 0x28, 0x4D, 0xFC, 0x49, 0x20, 0x79, 0x28, 0x49, 0xFC, 0x49, 0x20, 0x49, 0x20, 0x79, 0x24, 0x49, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x00, 0x40, 0x08, 0x84, 0x7F, 0xFE, 0x4A, 0x44, 0x4A, 0x44, 0x7B, 0xFC, 0x4A, 0x44, 0x4A, 0x44, 0x7B, 0xFC, 0x48, 0xA0, 0x49, 0x24, 0x4F, 0xFE, 0x78, 0x20, 0x48, 0x20, 0x00, 0x20, 0x00, 0x20, 0x01, 0x10, 0x01, 0xF8, 0x41, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x09, 0x20, 0x32, 0x98, 0x0C, 0x60, 0x3F, 0xF0, 0xD0, 0x1E, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x24, 0x7D, 0xAE, 0x45, 0x24, 0x45, 0x24, 0x45, 0xAC, 0x7D, 0x24, 0x45, 0x24, 0x45, 0xFC, 0x7C, 0x20, 0x47, 0xFC, 0x44, 0x88, 0x44, 0x50, 0x7C, 0x20, 0x44, 0x50, 0x01, 0x8E, 0x06, 0x04, 0x00, 0x28, 0x03, 0xB0, 0x78, 0xA4, 0x4A, 0xA8, 0x49, 0x10, 0x79, 0x08, 0x4A, 0x0E, 0x4D, 0xF4, 0x78, 0x40, 0x48, 0x48, 0x4B, 0xFC, 0x48, 0x40, 0x78, 0xA0, 0x48, 0xA0, 0x01, 0x1C, 0x06, 0x08, 0x7E, 0x40, 0x24, 0x44, 0x18, 0x7E, 0xFE, 0x88, 0x2B, 0x50, 0x28, 0x20, 0x48, 0x50, 0x89, 0x8E, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x40, 0x00, 0x48, 0x7B, 0xFC, 0x48, 0x40, 0x4F, 0xFE, 0x78, 0x80, 0x49, 0x10, 0x4B, 0xF8, 0x78, 0x00, 0x4B, 0xFC, 0x4A, 0x94, 0x4A, 0x94, 0x7A, 0x94, 0x4A, 0x94, 0x07, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xFE, 0x4A, 0x02, 0x4C, 0x04, 0x49, 0xF8, 0x79, 0x08, 0x49, 0xF8, 0x49, 0x08, 0x79, 0xF8, 0x48, 0x40, 0x48, 0x24, 0x4F, 0xFE, 0x78, 0x00, 0x48, 0x88, 0x01, 0x06, 0x02, 0x02, 0x00, 0x04, 0x07, 0xFE, 0x78, 0x90, 0x48, 0x94, 0x4B, 0xFE, 0x7A, 0x94, 0x4A, 0x94, 0x4B, 0xFC, 0x78, 0x00, 0x49, 0xF8, 0x48, 0x00, 0x4F, 0xFE, 0x79, 0x50, 0x4A, 0x4C, 0x04, 0x44, 0x00, 0xC0, 0x00, 0x20, 0x09, 0x24, 0x7C, 0xA8, 0x48, 0x20, 0x4B, 0xFE, 0x7A, 0x02, 0x4D, 0xFC, 0x49, 0x04, 0x79, 0x04, 0x49, 0xFC, 0x48, 0x20, 0x49, 0xFC, 0x78, 0x20, 0x48, 0x24, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x10, 0x0B, 0x90, 0x7C, 0x90, 0x48, 0x9E, 0x4F, 0xE4, 0x7A, 0x54, 0x4A, 0x54, 0x4B, 0xD4, 0x7A, 0x54, 0x4A, 0x4C, 0x4B, 0xC8, 0x4A, 0x54, 0x7A, 0xF4, 0x4F, 0x54, 0x00, 0x62, 0x00, 0x40, 0x00, 0x40, 0x02, 0x48, 0x79, 0x50, 0x4F, 0xFE, 0x49, 0x50, 0x7A, 0x48, 0x4C, 0x46, 0x4A, 0x08, 0x7B, 0xBC, 0x4A, 0xA8, 0x4A, 0xA8, 0x4D, 0x28, 0x79, 0x7E, 0x42, 0x08, 0x04, 0x08, 0x00, 0x08, 0x08, 0x10, 0xFF, 0xFE, 0x08, 0x10, 0x7F, 0x7C, 0x22, 0x44, 0x3E, 0x28, 0x14, 0x10, 0x1F, 0x28, 0xF0, 0x46, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0x03, 0xFE, 0x7C, 0x20, 0x54, 0x20, 0x54, 0x20, 0x54, 0x20, 0x54, 0x20, 0x7C, 0x20, 0x54, 0x20, 0x54, 0x20, 0x54, 0x20, 0x54, 0x20, 0x7C, 0x20, 0x44, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x00, 0x40, 0x04, 0x60, 0x7E, 0x50, 0x54, 0x50, 0x54, 0x44, 0x57, 0xFE, 0x54, 0x40, 0x7C, 0x40, 0x54, 0x40, 0x54, 0xA0, 0x54, 0xA0, 0x55, 0x10, 0x7D, 0x10, 0x42, 0x08, 0x04, 0x0E, 0x08, 0x04, 0x00, 0x40, 0x04, 0x40, 0x7E, 0x40, 0x54, 0x84, 0x54, 0xFE, 0x55, 0x08, 0x56, 0x88, 0x7C, 0x88, 0x54, 0x50, 0x54, 0x50, 0x54, 0x20, 0x54, 0x50, 0x7C, 0x50, 0x44, 0x88, 0x01, 0x06, 0x02, 0x04, 0x00, 0x08, 0x04, 0x1C, 0x7F, 0xE0, 0x55, 0x00, 0x55, 0x00, 0x55, 0xFC, 0x55, 0x04, 0x7D, 0x44, 0x55, 0x48, 0x55, 0x28, 0x55, 0x28, 0x55, 0x10, 0x7E, 0x28, 0x42, 0x28, 0x04, 0x44, 0x01, 0x82, 0x00, 0x40, 0x04, 0x40, 0x7E, 0xA0, 0x54, 0xA0, 0x55, 0x18, 0x56, 0x16, 0x54, 0x20, 0x7C, 0xC8, 0x57, 0x10, 0x54, 0x20, 0x54, 0x44, 0x55, 0x88, 0x7C, 0x10, 0x44, 0x20, 0x00, 0xC0, 0x03, 0x00, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x17, 0xD0, 0xE0, 0x0E, 0x1F, 0xF0, 0x09, 0x20, 0x11, 0x18, 0x25, 0x08, 0x02, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x40, 0x04, 0x20, 0x7F, 0xFE, 0x56, 0x02, 0x55, 0x04, 0x55, 0xDE, 0x55, 0x54, 0x7D, 0x54, 0x55, 0x54, 0x56, 0xD4, 0x54, 0x5C, 0x54, 0x94, 0x7C, 0x90, 0x45, 0x12, 0x02, 0x0E, 0x04, 0x00, 0x00, 0x20, 0x05, 0xFC, 0x7E, 0x88, 0x54, 0x50, 0x57, 0xFE, 0x54, 0x00, 0x55, 0xFC, 0x7D, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0xFC, 0x54, 0x20, 0x7D, 0xFC, 0x44, 0x20, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x05, 0x60, 0x19, 0x18, 0x61, 0x04, 0x01, 0x00, 0x01, 0x00, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x00, 0x00, 0x3F, 0xFC, 0x01, 0x00, 0x11, 0x10, 0x11, 0xF8, 0x11, 0x00, 0x11, 0x00, 0x11, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x09, 0x20, 0x3F, 0xF8, 0xD1, 0x16, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF4, 0x01, 0x04, 0x00, 0xFC, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x02, 0x00, 0x04, 0x20, 0x1F, 0xF0, 0x00, 0x00, 0x24, 0x88, 0x22, 0x44, 0x42, 0x44, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x2F, 0xE8, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x28, 0x20, 0x10, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x44, 0x44, 0x7F, 0xFC, 0x11, 0x40, 0x11, 0x24, 0x5B, 0xFE, 0x52, 0x20, 0x97, 0xFC, 0x1A, 0x20, 0x13, 0xFC, 0x12, 0x20, 0x12, 0x24, 0x13, 0xFE, 0x12, 0x00, 0x00, 0x04, 0x7F, 0xFE, 0x44, 0x44, 0x7F, 0xFC, 0x22, 0x00, 0xFF, 0xF8, 0x22, 0x08, 0x3E, 0x48, 0x08, 0x48, 0x7F, 0x48, 0x49, 0x7C, 0x7F, 0x04, 0x08, 0xF4, 0xFF, 0x04, 0x08, 0x14, 0x08, 0x08, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x3F, 0xF8, 0x08, 0x20, 0x7F, 0xFC, 0x51, 0x14, 0x49, 0x24, 0x7F, 0xFC, 0x40, 0x04, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x04, 0x00, 0x08, 0x20, 0x1F, 0xF0, 0x00, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x09, 0x04, 0x71, 0x3E, 0x4D, 0xC4, 0x45, 0x84, 0x75, 0x5C, 0x49, 0x44, 0x41, 0x24, 0x75, 0x1C, 0x42, 0x04, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x04, 0x45, 0xFE, 0x29, 0x54, 0xFF, 0x54, 0x01, 0xFC, 0x28, 0x84, 0x44, 0xFE, 0x01, 0x44, 0x7F, 0xF4, 0x45, 0x54, 0x65, 0x54, 0x55, 0xF4, 0x4C, 0x54, 0x44, 0x74, 0xFF, 0x94, 0x00, 0x08, 0x10, 0x00, 0x14, 0x00, 0x1E, 0x00, 0x20, 0x00, 0x20, 0x00, 0x7C, 0x00, 0x90, 0x00, 0x14, 0x00, 0xFE, 0x00, 0x10, 0x00, 0x10, 0x00, 0x12, 0x00, 0x14, 0x00, 0x18, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x80, 0x14, 0x80, 0x1E, 0x80, 0x20, 0x80, 0x20, 0x80, 0x7C, 0x80, 0x90, 0x80, 0x14, 0x80, 0xFE, 0x80, 0x10, 0x80, 0x10, 0x80, 0x12, 0x82, 0x14, 0x82, 0x18, 0x82, 0x10, 0x7E, 0x00, 0x00, 0x10, 0x00, 0x14, 0x00, 0x1E, 0xFC, 0x20, 0x08, 0x20, 0x10, 0x7C, 0x20, 0x90, 0x20, 0x14, 0x40, 0xFE, 0x40, 0x10, 0x80, 0x10, 0x80, 0x11, 0x00, 0x15, 0x02, 0x19, 0x02, 0x10, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x14, 0x40, 0x1E, 0x40, 0x20, 0x40, 0x20, 0x40, 0x7C, 0x60, 0x90, 0x50, 0x14, 0x48, 0xFE, 0x44, 0x10, 0x44, 0x10, 0x40, 0x12, 0x40, 0x14, 0x40, 0x18, 0x40, 0x10, 0x40, 0x00, 0x40, 0x10, 0x04, 0x12, 0x04, 0x1F, 0x04, 0x20, 0x44, 0x24, 0x44, 0x7E, 0x44, 0x90, 0x44, 0x12, 0x44, 0xFF, 0x44, 0x10, 0x44, 0x10, 0x44, 0x12, 0x44, 0x14, 0x04, 0x18, 0x04, 0x10, 0x14, 0x00, 0x08, 0x10, 0x00, 0x14, 0x00, 0x1E, 0xFC, 0x20, 0x04, 0x20, 0x08, 0x7C, 0x30, 0x90, 0x20, 0x14, 0x20, 0xFE, 0x20, 0x10, 0x20, 0x10, 0x20, 0x12, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0xA0, 0x00, 0x40, 0x10, 0x20, 0x14, 0x20, 0x1E, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7C, 0x28, 0x91, 0xFC, 0x14, 0x20, 0xFE, 0x20, 0x10, 0x20, 0x10, 0x20, 0x12, 0x20, 0x14, 0x20, 0x18, 0x24, 0x13, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x15, 0x04, 0x1F, 0x24, 0x21, 0x24, 0x21, 0x24, 0x7D, 0x24, 0x91, 0x24, 0x15, 0x24, 0xFF, 0x24, 0x11, 0x24, 0x11, 0x24, 0x13, 0x24, 0x15, 0x24, 0x19, 0x24, 0x12, 0x04, 0x04, 0x04, 0x10, 0x04, 0x12, 0x0C, 0x1F, 0x10, 0x20, 0x20, 0x24, 0x40, 0x7E, 0x84, 0x90, 0x0C, 0x12, 0x10, 0xFF, 0x20, 0x10, 0x42, 0x10, 0x06, 0x12, 0x08, 0x14, 0x10, 0x18, 0x60, 0x11, 0x80, 0x06, 0x00, 0x12, 0x04, 0x11, 0x7E, 0x1C, 0x84, 0x22, 0x04, 0x22, 0x04, 0x7E, 0x04, 0x92, 0x04, 0x12, 0x04, 0xFE, 0x04, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04, 0x16, 0x04, 0x1A, 0x04, 0x12, 0x14, 0x02, 0x08, 0x10, 0x00, 0x14, 0x04, 0x1E, 0xFE, 0x20, 0x04, 0x21, 0x44, 0x7C, 0xA8, 0x90, 0xA8, 0x14, 0x48, 0xFE, 0x50, 0x10, 0x20, 0x10, 0x50, 0x12, 0x50, 0x14, 0x88, 0x18, 0x88, 0x11, 0x06, 0x06, 0x04, 0x10, 0x40, 0x14, 0x40, 0x1E, 0x40, 0x20, 0x40, 0x20, 0x44, 0x7F, 0xFE, 0x90, 0x88, 0x14, 0x88, 0xFE, 0x88, 0x11, 0x08, 0x10, 0x88, 0x12, 0x50, 0x14, 0x20, 0x18, 0x50, 0x11, 0x8C, 0x06, 0x04, 0x10, 0x00, 0x14, 0x04, 0x1F, 0xFE, 0x20, 0x10, 0x20, 0x10, 0x7C, 0x20, 0x90, 0x20, 0x14, 0x60, 0xFE, 0xA8, 0x11, 0x26, 0x12, 0x22, 0x10, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x00, 0x20, 0x10, 0x40, 0x14, 0x40, 0x1E, 0x40, 0x20, 0x40, 0x20, 0x44, 0x7F, 0xFE, 0x90, 0x40, 0x14, 0x40, 0xFE, 0xA0, 0x10, 0xA0, 0x10, 0x90, 0x15, 0x10, 0x19, 0x88, 0x12, 0x48, 0x04, 0x46, 0x08, 0x04, 0x10, 0x08, 0x15, 0xFC, 0x1F, 0x00, 0x21, 0x00, 0x21, 0x08, 0x7D, 0xFC, 0x91, 0x08, 0x15, 0x08, 0xFF, 0x08, 0x11, 0xF8, 0x11, 0x00, 0x11, 0x00, 0x15, 0x00, 0x19, 0x04, 0x11, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x14, 0x1C, 0x1F, 0xE0, 0x21, 0x00, 0x21, 0x00, 0x7D, 0xFC, 0x91, 0x04, 0x15, 0x44, 0xFF, 0x48, 0x11, 0x48, 0x11, 0x30, 0x11, 0x10, 0x15, 0x28, 0x1A, 0x48, 0x12, 0x86, 0x05, 0x04, 0x10, 0x40, 0x14, 0x40, 0x1E, 0xA0, 0x20, 0xA0, 0x21, 0x10, 0x7E, 0x8E, 0x94, 0x44, 0x10, 0x40, 0xFE, 0x00, 0x11, 0xF8, 0x10, 0x08, 0x12, 0x10, 0x14, 0x10, 0x18, 0x20, 0x10, 0x40, 0x00, 0x80, 0x10, 0x40, 0x14, 0x20, 0x1E, 0x24, 0x21, 0xFE, 0x20, 0x40, 0x7C, 0x44, 0x90, 0x7E, 0x14, 0x44, 0xFE, 0x44, 0x10, 0x44, 0x10, 0x84, 0x10, 0x84, 0x15, 0x04, 0x19, 0x04, 0x12, 0x28, 0x04, 0x10, 0x10, 0x40, 0x14, 0x20, 0x1E, 0x04, 0x21, 0xFE, 0x20, 0x00, 0x7C, 0x10, 0x90, 0xF8, 0x14, 0x90, 0xFE, 0x90, 0x10, 0x90, 0x10, 0x90, 0x12, 0x90, 0x15, 0x12, 0x19, 0x12, 0x12, 0x0E, 0x04, 0x00, 0x10, 0x08, 0x14, 0x88, 0x1E, 0x48, 0x20, 0x48, 0x24, 0x08, 0x7E, 0x88, 0x90, 0x48, 0x14, 0x48, 0xFE, 0x0E, 0x10, 0x78, 0x13, 0x88, 0x10, 0x08, 0x14, 0x08, 0x18, 0x08, 0x10, 0x08, 0x00, 0x08, 0x10, 0x20, 0x14, 0x20, 0x1E, 0x20, 0x20, 0x20, 0x20, 0xA4, 0x7C, 0xAC, 0x90, 0xB0, 0x11, 0x20, 0xFE, 0x20, 0x10, 0x50, 0x10, 0x50, 0x12, 0x50, 0x14, 0x88, 0x18, 0x88, 0x11, 0x06, 0x02, 0x04, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x24, 0x21, 0x24, 0x21, 0x24, 0x7D, 0x24, 0x91, 0x24, 0x11, 0xFC, 0xFF, 0x04, 0x11, 0x00, 0x11, 0x00, 0x13, 0x00, 0x15, 0x02, 0x19, 0x02, 0x10, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x15, 0xFE, 0x1E, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7C, 0x20, 0x90, 0x28, 0x11, 0xFC, 0xFE, 0x20, 0x10, 0x30, 0x10, 0x28, 0x12, 0x28, 0x14, 0x20, 0x18, 0x24, 0x13, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x1E, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7C, 0x20, 0x91, 0x24, 0x11, 0x3E, 0xFD, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x15, 0x20, 0x19, 0x24, 0x17, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x14, 0x20, 0x1E, 0x20, 0x20, 0x24, 0x23, 0xFE, 0x7C, 0x20, 0x90, 0x20, 0x10, 0x24, 0xFD, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x15, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x10, 0x00, 0x14, 0x04, 0x1F, 0xFE, 0x20, 0x08, 0x20, 0x08, 0x7D, 0xE8, 0x91, 0x28, 0x11, 0x28, 0xFF, 0x28, 0x11, 0x28, 0x11, 0xE8, 0x11, 0x08, 0x14, 0x08, 0x18, 0x08, 0x10, 0x28, 0x00, 0x10, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x00, 0x21, 0x08, 0x21, 0x7C, 0x7D, 0x48, 0x91, 0x48, 0x11, 0x48, 0xFF, 0x48, 0x11, 0x48, 0x11, 0x78, 0x11, 0x48, 0x15, 0x00, 0x19, 0x04, 0x11, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x10, 0x40, 0x1E, 0x44, 0x23, 0xFE, 0x20, 0x80, 0x7C, 0xA0, 0x91, 0x24, 0x13, 0xFE, 0xFD, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x15, 0x34, 0x19, 0x28, 0x10, 0x20, 0x00, 0x20, 0x10, 0x40, 0x14, 0x50, 0x1E, 0x48, 0x20, 0x48, 0x23, 0xFE, 0x7C, 0x40, 0x90, 0x40, 0x14, 0xFC, 0xFE, 0x84, 0x10, 0xA4, 0x10, 0xA8, 0x13, 0x28, 0x15, 0x10, 0x19, 0x28, 0x12, 0x46, 0x04, 0x84, 0x10, 0x20, 0x14, 0x28, 0x1E, 0x24, 0x20, 0x20, 0x21, 0xFE, 0x7D, 0x20, 0x91, 0x20, 0x15, 0x24, 0xFF, 0x24, 0x11, 0x24, 0x11, 0x18, 0x13, 0x50, 0x15, 0x92, 0x19, 0x2A, 0x10, 0x4A, 0x00, 0x84, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x04, 0x21, 0x04, 0x21, 0x04, 0x7D, 0xFC, 0x91, 0x04, 0x11, 0x04, 0xFF, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x13, 0x04, 0x15, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x10, 0x00, 0x14, 0x04, 0x1F, 0xFE, 0x21, 0x04, 0x21, 0x04, 0x7D, 0x04, 0x91, 0xFC, 0x11, 0x04, 0xFF, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x14, 0x00, 0x18, 0x00, 0x13, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x14, 0x04, 0x1F, 0xFE, 0x21, 0x24, 0x21, 0x24, 0x7D, 0x24, 0x91, 0x24, 0x11, 0x24, 0xFD, 0xFC, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x15, 0x24, 0x19, 0x24, 0x11, 0xFC, 0x01, 0x04, 0x10, 0x08, 0x10, 0x1C, 0x1D, 0xE0, 0x21, 0x00, 0x21, 0x20, 0x7D, 0x20, 0x91, 0x24, 0x15, 0xFE, 0xFE, 0x20, 0x10, 0x20, 0x10, 0xA8, 0x10, 0xA4, 0x15, 0x26, 0x1A, 0x22, 0x10, 0xA0, 0x00, 0x40, 0x10, 0x40, 0x10, 0x20, 0x1E, 0x24, 0x23, 0xFE, 0x20, 0x20, 0x7C, 0x24, 0x91, 0xFE, 0x15, 0x24, 0xFF, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x15, 0x24, 0x19, 0x2C, 0x10, 0x20, 0x00, 0x20, 0x10, 0x40, 0x10, 0x20, 0x1E, 0x24, 0x23, 0xFE, 0x20, 0x40, 0x7C, 0x40, 0x90, 0x88, 0x11, 0x08, 0xFD, 0xF0, 0x10, 0x20, 0x10, 0x40, 0x12, 0x40, 0x14, 0x88, 0x19, 0x04, 0x13, 0xFC, 0x00, 0x04, 0x10, 0x40, 0x10, 0x20, 0x1E, 0x20, 0x23, 0xFE, 0x22, 0x02, 0x7C, 0x84, 0x90, 0x80, 0x14, 0x90, 0xFC, 0xB0, 0x10, 0xC0, 0x10, 0x80, 0x10, 0x80, 0x14, 0x82, 0x18, 0x82, 0x10, 0x7E, 0x00, 0x00, 0x10, 0x00, 0x14, 0x44, 0x1E, 0x24, 0x20, 0x28, 0x20, 0x88, 0x7C, 0x90, 0x90, 0x90, 0x12, 0xA4, 0xFE, 0xA2, 0x12, 0xC2, 0x14, 0x82, 0x10, 0x80, 0x15, 0x84, 0x1A, 0x84, 0x14, 0x7C, 0x00, 0x00, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x04, 0x21, 0x04, 0x21, 0xFC, 0x7D, 0x00, 0x91, 0x40, 0x15, 0x44, 0xFF, 0x4C, 0x11, 0x50, 0x11, 0x60, 0x11, 0x40, 0x15, 0x42, 0x19, 0x42, 0x12, 0x3E, 0x04, 0x00, 0x10, 0x20, 0x14, 0x20, 0x1E, 0x20, 0x21, 0xFE, 0x21, 0x22, 0x7D, 0x24, 0x91, 0x20, 0x15, 0xFC, 0xFF, 0x08, 0x11, 0x48, 0x11, 0x50, 0x11, 0x20, 0x15, 0x50, 0x1A, 0x48, 0x12, 0x8E, 0x05, 0x04, 0x10, 0x00, 0x15, 0xFC, 0x1E, 0x88, 0x20, 0x50, 0x20, 0x20, 0x7C, 0x50, 0x90, 0x8E, 0x13, 0x24, 0xFE, 0xF8, 0x10, 0x20, 0x10, 0x28, 0x11, 0xFC, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x00, 0x20, 0x10, 0x40, 0x14, 0x44, 0x1F, 0xF8, 0x20, 0x50, 0x24, 0x64, 0x7F, 0xFE, 0x90, 0x40, 0x10, 0x88, 0xFD, 0xFC, 0x12, 0x40, 0x14, 0x7C, 0x12, 0x04, 0x14, 0x04, 0x18, 0x44, 0x10, 0x28, 0x00, 0x10, 0x10, 0x40, 0x10, 0x44, 0x1D, 0xFC, 0x20, 0x48, 0x20, 0x50, 0x7C, 0x64, 0x93, 0xFE, 0x10, 0x80, 0xFD, 0x88, 0x12, 0x98, 0x14, 0xA0, 0x10, 0xC0, 0x14, 0x84, 0x18, 0x84, 0x10, 0x7C, 0x00, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x1D, 0x08, 0x21, 0x08, 0x21, 0x08, 0x7D, 0xF8, 0x91, 0x08, 0x11, 0x08, 0xFD, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x11, 0x3E, 0x17, 0xC8, 0x18, 0x08, 0x10, 0x08, 0x00, 0x08, 0x10, 0x80, 0x14, 0x84, 0x1F, 0xFE, 0x20, 0x80, 0x21, 0x08, 0x7D, 0xFC, 0x93, 0x08, 0x15, 0x08, 0xFD, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x15, 0x08, 0x19, 0x08, 0x11, 0x28, 0x01, 0x10, 0x10, 0x10, 0x10, 0x18, 0x1C, 0x14, 0x23, 0xFE, 0x22, 0x10, 0x7E, 0x10, 0x92, 0x10, 0x13, 0xD4, 0xFE, 0x54, 0x12, 0x54, 0x12, 0x54, 0x17, 0x58, 0x1A, 0x88, 0x12, 0x0A, 0x04, 0x0A, 0x08, 0x06, 0x10, 0x40, 0x10, 0x40, 0x1E, 0x48, 0x23, 0xFC, 0x20, 0x40, 0x7E, 0x48, 0x91, 0x50, 0x10, 0x44, 0xFF, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x15, 0x10, 0x19, 0x10, 0x12, 0x0E, 0x0C, 0x04, 0x10, 0x40, 0x10, 0x40, 0x1E, 0x5C, 0x23, 0xE0, 0x20, 0x28, 0x7C, 0x32, 0x91, 0xCE, 0x14, 0x00, 0xFF, 0xFC, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x15, 0x12, 0x19, 0x12, 0x12, 0x0E, 0x04, 0x00, 0x20, 0x00, 0x2F, 0xFC, 0x38, 0xA4, 0x22, 0xA4, 0x42, 0xA4, 0x7C, 0xA8, 0xA4, 0xA4, 0x27, 0xE4, 0xF9, 0xA2, 0x21, 0xA2, 0x22, 0xA2, 0x2A, 0xB4, 0x34, 0xA8, 0x24, 0xA0, 0x0A, 0xA0, 0x01, 0x20, 0x10, 0x20, 0x15, 0x24, 0x1E, 0xA4, 0x20, 0xA8, 0x20, 0xB0, 0x7C, 0x24, 0x93, 0xFE, 0x10, 0x04, 0xFE, 0x04, 0x10, 0x04, 0x11, 0xFC, 0x10, 0x04, 0x14, 0x04, 0x18, 0x04, 0x13, 0xFC, 0x00, 0x04, 0x20, 0x08, 0x23, 0xFC, 0x3A, 0x08, 0x22, 0x08, 0x43, 0xF8, 0x78, 0x40, 0xA0, 0x44, 0x27, 0xFE, 0xFC, 0x44, 0x24, 0x44, 0x24, 0x44, 0x24, 0x44, 0x2C, 0x54, 0x34, 0x48, 0x20, 0x40, 0x00, 0x40, 0x20, 0x04, 0x27, 0xFE, 0x3C, 0x04, 0x24, 0x44, 0x44, 0x44, 0x7C, 0x54, 0xA7, 0xFC, 0x24, 0x44, 0xFC, 0x44, 0x24, 0xA4, 0x24, 0x94, 0x25, 0x14, 0x2C, 0x04, 0x34, 0x04, 0x27, 0xFC, 0x04, 0x04, 0x10, 0x20, 0x15, 0x24, 0x1F, 0x24, 0x21, 0x24, 0x21, 0xFC, 0x7C, 0x00, 0x91, 0xFC, 0x14, 0x04, 0xFE, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x00, 0x15, 0x02, 0x19, 0x02, 0x10, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x11, 0x20, 0x1D, 0x28, 0x21, 0xFC, 0x22, 0x20, 0x7E, 0x20, 0x90, 0x24, 0x13, 0xFE, 0xFC, 0x60, 0x10, 0x70, 0x10, 0xA8, 0x14, 0xA8, 0x19, 0x24, 0x12, 0x26, 0x04, 0x20, 0x00, 0x20, 0x10, 0x00, 0x10, 0x0C, 0x1C, 0x70, 0x27, 0x90, 0x20, 0x90, 0x7D, 0x14, 0x92, 0x7E, 0x13, 0x90, 0xFC, 0x90, 0x10, 0x90, 0x14, 0x94, 0x12, 0xFE, 0x15, 0x00, 0x19, 0x80, 0x12, 0x46, 0x04, 0x3C, 0x10, 0x08, 0x10, 0x3C, 0x1D, 0xE0, 0x20, 0x20, 0x20, 0x20, 0x7D, 0xFC, 0x90, 0x20, 0x10, 0x20, 0xFC, 0x24, 0x13, 0xFE, 0x10, 0x40, 0x12, 0x40, 0x14, 0x90, 0x19, 0x08, 0x13, 0xFC, 0x00, 0x04, 0x10, 0x50, 0x10, 0x50, 0x1C, 0x94, 0x20, 0x98, 0x21, 0x90, 0x7E, 0xB0, 0x94, 0xD2, 0x10, 0x8E, 0xFC, 0xA0, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x20, 0x14, 0x20, 0x18, 0x20, 0x10, 0x20, 0x00, 0x20, 0x10, 0x40, 0x10, 0x40, 0x1C, 0xA0, 0x21, 0x10, 0x22, 0x08, 0x7F, 0xFE, 0x90, 0x44, 0x10, 0x40, 0xFC, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x10, 0x40, 0x14, 0x40, 0x18, 0x48, 0x17, 0xFC, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x1E, 0x50, 0x20, 0x88, 0x21, 0x04, 0x7E, 0x02, 0x91, 0xFC, 0x10, 0x00, 0xFE, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x11, 0x04, 0x15, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x11, 0x04, 0x14, 0x8C, 0x1E, 0x50, 0x20, 0x20, 0x20, 0x50, 0x7C, 0x8C, 0x91, 0x24, 0x10, 0x20, 0xFD, 0xFE, 0x10, 0x20, 0x10, 0xA8, 0x12, 0xA4, 0x15, 0x22, 0x1A, 0x22, 0x10, 0xA0, 0x00, 0x40, 0x10, 0x20, 0x14, 0xA0, 0x1E, 0xA0, 0x20, 0xA0, 0x24, 0xA4, 0x7E, 0xAC, 0x91, 0xB0, 0x10, 0xA0, 0xFC, 0xA0, 0x11, 0xB0, 0x16, 0xA8, 0x10, 0xA8, 0x15, 0x22, 0x19, 0x22, 0x12, 0x1E, 0x04, 0x00, 0x10, 0x40, 0x14, 0x40, 0x1E, 0xF8, 0x21, 0x10, 0x20, 0x24, 0x7D, 0xFE, 0x90, 0x24, 0x10, 0x24, 0xFD, 0xFC, 0x10, 0x24, 0x10, 0x24, 0x11, 0xFC, 0x14, 0x24, 0x18, 0x20, 0x10, 0xA0, 0x00, 0x40, 0x10, 0x80, 0x14, 0x80, 0x1E, 0xF8, 0x21, 0x10, 0x22, 0x24, 0x7D, 0xFE, 0x91, 0x24, 0x15, 0x24, 0xFF, 0x24, 0x11, 0xFC, 0x11, 0x04, 0x13, 0x00, 0x15, 0x02, 0x19, 0x02, 0x10, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x14, 0x20, 0x1E, 0x24, 0x23, 0xFE, 0x20, 0x40, 0x7C, 0x88, 0x90, 0x84, 0x15, 0xFC, 0xFE, 0x90, 0x10, 0x90, 0x10, 0x90, 0x12, 0x90, 0x14, 0x92, 0x19, 0x12, 0x12, 0x0E, 0x00, 0x00, 0x20, 0x00, 0x24, 0xFC, 0x3B, 0x08, 0x41, 0x10, 0x40, 0x20, 0x74, 0x44, 0xA2, 0xFE, 0x22, 0x54, 0xF8, 0x54, 0x21, 0x54, 0x22, 0x54, 0x22, 0x94, 0x2C, 0xA4, 0x35, 0x24, 0x22, 0x54, 0x00, 0x88, 0x10, 0x40, 0x10, 0x20, 0x1E, 0x20, 0x23, 0xFE, 0x22, 0x02, 0x7C, 0x44, 0x90, 0x40, 0x17, 0xFE, 0xFC, 0x88, 0x10, 0x88, 0x11, 0x08, 0x10, 0x90, 0x14, 0x60, 0x18, 0x90, 0x11, 0x0C, 0x02, 0x04, 0x11, 0x00, 0x11, 0x00, 0x1D, 0x04, 0x27, 0xDE, 0x21, 0x54, 0x7D, 0x54, 0x91, 0x54, 0x11, 0x54, 0xFD, 0x54, 0x12, 0x54, 0x11, 0x54, 0x14, 0x94, 0x19, 0x54, 0x12, 0x5C, 0x04, 0x14, 0x00, 0x00, 0x10, 0x88, 0x10, 0x88, 0x1F, 0xFE, 0x20, 0x88, 0x20, 0x88, 0x7B, 0xFE, 0x92, 0x42, 0x12, 0x44, 0xFD, 0xFE, 0x10, 0x44, 0x10, 0x44, 0x10, 0x44, 0x14, 0x84, 0x18, 0x84, 0x11, 0x28, 0x02, 0x10, 0x20, 0x40, 0x20, 0x40, 0x3B, 0xFC, 0x40, 0x40, 0x42, 0x48, 0x79, 0x50, 0xA0, 0x44, 0x27, 0xFE, 0xF8, 0x40, 0x20, 0xE0, 0x21, 0x50, 0x21, 0x50, 0x2A, 0x48, 0x34, 0x46, 0x28, 0x44, 0x00, 0x40, 0x20, 0x20, 0x20, 0x28, 0x38, 0x24, 0x47, 0xFE, 0x40, 0x20, 0x7A, 0x20, 0xA1, 0xA0, 0x20, 0xA0, 0xFA, 0x10, 0x22, 0x90, 0x26, 0x50, 0x2A, 0x50, 0x2A, 0x90, 0x32, 0x8A, 0x21, 0x86, 0x00, 0x02, 0x20, 0x80, 0x22, 0xFC, 0x3A, 0xA4, 0x42, 0xA8, 0x42, 0x90, 0x7A, 0xA8, 0xA2, 0xA6, 0x22, 0xC4, 0xF8, 0x80, 0x20, 0xA0, 0x20, 0x28, 0x25, 0xFC, 0x28, 0x20, 0x30, 0x24, 0x23, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x04, 0x21, 0x04, 0x21, 0x04, 0x7D, 0xFC, 0x90, 0x00, 0x13, 0xFE, 0xFC, 0x20, 0x10, 0x20, 0x11, 0xFC, 0x10, 0x20, 0x14, 0x20, 0x18, 0x24, 0x13, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x24, 0x21, 0x24, 0x21, 0xFC, 0x7D, 0x24, 0x91, 0x24, 0x11, 0xFC, 0xFF, 0x24, 0x10, 0x20, 0x11, 0xFC, 0x10, 0x20, 0x14, 0x20, 0x18, 0x24, 0x13, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x10, 0xA0, 0x1C, 0xA4, 0x21, 0xFE, 0x21, 0x20, 0x7E, 0x20, 0x90, 0x24, 0x13, 0xFE, 0xFC, 0x00, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x15, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x10, 0x10, 0x10, 0x58, 0x1C, 0x94, 0x23, 0x90, 0x20, 0x90, 0x7F, 0xFE, 0x90, 0x90, 0x10, 0x94, 0xFC, 0xD4, 0x11, 0x98, 0x12, 0x90, 0x10, 0xB0, 0x14, 0xD2, 0x18, 0x92, 0x12, 0x8A, 0x01, 0x04, 0x10, 0x20, 0x14, 0x20, 0x1E, 0x20, 0x21, 0x24, 0x21, 0x24, 0x7D, 0x28, 0x91, 0xAC, 0x12, 0x72, 0xFC, 0x20, 0x10, 0x28, 0x11, 0xFC, 0x10, 0x20, 0x14, 0x20, 0x18, 0x24, 0x13, 0xFE, 0x00, 0x00, 0x10, 0x08, 0x14, 0x1C, 0x1F, 0xE0, 0x20, 0x44, 0x21, 0x24, 0x7C, 0xA8, 0x90, 0x90, 0x10, 0x08, 0xFD, 0xFE, 0x10, 0x08, 0x11, 0x08, 0x10, 0x88, 0x14, 0x88, 0x18, 0x08, 0x10, 0x28, 0x00, 0x10, 0x10, 0x40, 0x14, 0x24, 0x1F, 0xFE, 0x20, 0x80, 0x20, 0x90, 0x7D, 0x08, 0x93, 0xFC, 0x10, 0x04, 0xFD, 0x50, 0x11, 0x50, 0x11, 0x50, 0x11, 0x50, 0x15, 0x52, 0x19, 0x52, 0x12, 0x4E, 0x04, 0x00, 0x12, 0x04, 0x11, 0x7E, 0x1C, 0x84, 0x22, 0x04, 0x22, 0x04, 0x7F, 0xFC, 0x92, 0x94, 0x12, 0x94, 0xFE, 0x94, 0x13, 0xFC, 0x12, 0x94, 0x12, 0x94, 0x16, 0x94, 0x1B, 0x14, 0x12, 0x04, 0x02, 0x0C, 0x12, 0x04, 0x11, 0x7E, 0x1C, 0x84, 0x22, 0x04, 0x22, 0x04, 0x7E, 0xF4, 0x92, 0x94, 0x12, 0x94, 0xFE, 0xF4, 0x12, 0x94, 0x12, 0x94, 0x12, 0xF4, 0x16, 0x94, 0x1A, 0x04, 0x12, 0x14, 0x02, 0x08, 0x10, 0x40, 0x14, 0x28, 0x1F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x7D, 0xF8, 0x91, 0x08, 0x11, 0x08, 0xFD, 0xFC, 0x11, 0x48, 0x11, 0x50, 0x13, 0x20, 0x15, 0x10, 0x19, 0x48, 0x11, 0x86, 0x01, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x1E, 0x04, 0x20, 0xFC, 0x20, 0x04, 0x7D, 0xFC, 0x90, 0x00, 0x13, 0xFE, 0xFE, 0x02, 0x14, 0xFC, 0x10, 0x88, 0x12, 0x50, 0x14, 0x20, 0x18, 0x50, 0x10, 0x8E, 0x03, 0x04, 0x10, 0x04, 0x13, 0xFE, 0x1E, 0x04, 0x22, 0x04, 0x23, 0xFC, 0x7E, 0x00, 0x92, 0x04, 0x13, 0xFE, 0xFE, 0x04, 0x12, 0xF4, 0x12, 0x94, 0x16, 0x94, 0x1A, 0xF4, 0x12, 0x04, 0x04, 0x14, 0x08, 0x08, 0x20, 0x00, 0x27, 0x04, 0x3D, 0xFE, 0x45, 0x04, 0x45, 0x04, 0x7E, 0x74, 0xA5, 0x54, 0x25, 0x54, 0xFD, 0x54, 0x25, 0x54, 0x27, 0x54, 0x25, 0x74, 0x2C, 0x44, 0x34, 0x04, 0x24, 0x14, 0x04, 0x08, 0x10, 0x20, 0x14, 0x24, 0x1F, 0xFE, 0x20, 0x20, 0x21, 0xFC, 0x7C, 0x20, 0x93, 0xFE, 0x10, 0x00, 0xFD, 0xFC, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x15, 0xFC, 0x19, 0x04, 0x11, 0x14, 0x01, 0x08, 0x10, 0x88, 0x10, 0x88, 0x1F, 0xFE, 0x20, 0x88, 0x20, 0x40, 0x7C, 0x44, 0x97, 0xFE, 0x10, 0x80, 0xFC, 0x84, 0x11, 0xFE, 0x13, 0x04, 0x15, 0x04, 0x11, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x10, 0x40, 0x10, 0x44, 0x1F, 0xFE, 0x20, 0xA0, 0x21, 0x10, 0x7E, 0x4E, 0x95, 0xF4, 0x10, 0x40, 0xFD, 0x50, 0x11, 0x14, 0x1F, 0xFE, 0x11, 0x10, 0x15, 0x10, 0x19, 0x10, 0x12, 0x10, 0x04, 0x10, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x04, 0x21, 0xFC, 0x21, 0x04, 0x7D, 0xFC, 0x90, 0x00, 0x15, 0xFC, 0xFE, 0x08, 0x10, 0x08, 0x13, 0xFE, 0x10, 0x88, 0x14, 0x48, 0x18, 0x08, 0x10, 0x28, 0x00, 0x10, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x24, 0x21, 0x24, 0x21, 0xFC, 0x7D, 0x24, 0x91, 0x24, 0x11, 0xFC, 0xFC, 0x20, 0x13, 0xFE, 0x10, 0x20, 0x10, 0x70, 0x14, 0xA8, 0x19, 0x26, 0x12, 0x24, 0x00, 0x20, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x04, 0x21, 0x04, 0x21, 0xFC, 0x7D, 0x04, 0x91, 0x04, 0x11, 0xFC, 0xFE, 0x10, 0x11, 0x14, 0x11, 0xD8, 0x13, 0x10, 0x15, 0x12, 0x19, 0x52, 0x11, 0x8E, 0x00, 0x00, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x04, 0x21, 0x24, 0x21, 0x24, 0x7D, 0xFC, 0x91, 0x24, 0x11, 0x24, 0xFF, 0x74, 0x11, 0x54, 0x11, 0x54, 0x13, 0x74, 0x15, 0x54, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x11, 0x00, 0x11, 0x04, 0x1D, 0xFE, 0x22, 0x94, 0x22, 0x94, 0x7C, 0xA4, 0x91, 0x24, 0x11, 0x54, 0xFE, 0x08, 0x10, 0x40, 0x13, 0x28, 0x13, 0x26, 0x15, 0x0A, 0x19, 0x08, 0x10, 0xF8, 0x00, 0x00, 0x10, 0x40, 0x14, 0x28, 0x1F, 0xFC, 0x20, 0x00, 0x21, 0x08, 0x7C, 0x90, 0x90, 0x04, 0x13, 0xFE, 0xFC, 0x00, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x04, 0x15, 0x04, 0x19, 0x04, 0x11, 0xFC, 0x01, 0x04, 0x10, 0x40, 0x12, 0x48, 0x1D, 0x50, 0x20, 0x40, 0x23, 0xFC, 0x7C, 0x40, 0x97, 0xFE, 0x10, 0xA0, 0xFD, 0x10, 0x13, 0xF8, 0x15, 0x16, 0x11, 0x10, 0x15, 0x50, 0x19, 0x24, 0x11, 0x04, 0x00, 0xFC, 0x10, 0x20, 0x14, 0x24, 0x1E, 0xAC, 0x20, 0xB0, 0x21, 0x20, 0x7C, 0x58, 0x90, 0x86, 0x13, 0x22, 0xFE, 0x20, 0x10, 0xA4, 0x10, 0xAC, 0x11, 0x30, 0x14, 0x50, 0x18, 0x50, 0x10, 0x8E, 0x03, 0x04, 0x21, 0x24, 0x21, 0x24, 0x3A, 0x48, 0x44, 0x90, 0x42, 0x48, 0x79, 0x24, 0xA1, 0x24, 0x27, 0xFE, 0xFC, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x24, 0x44, 0x2C, 0x44, 0x34, 0x44, 0x27, 0xFC, 0x04, 0x04, 0x21, 0x00, 0x21, 0x04, 0x3F, 0xFE, 0x41, 0x14, 0x47, 0xD4, 0x79, 0x14, 0xA7, 0xD4, 0x21, 0x24, 0xF9, 0x4C, 0x20, 0x40, 0x27, 0xFE, 0x20, 0x40, 0x28, 0xA0, 0x30, 0x90, 0x21, 0x0E, 0x06, 0x04, 0x10, 0x20, 0x12, 0x24, 0x1F, 0xA8, 0x22, 0x30, 0x22, 0x22, 0x7E, 0xA2, 0x93, 0x5E, 0x10, 0x88, 0xFD, 0xFC, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x15, 0x08, 0x19, 0x08, 0x11, 0xF8, 0x01, 0x08, 0x10, 0x04, 0x11, 0xFE, 0x1D, 0x24, 0x21, 0x24, 0x21, 0xFC, 0x7D, 0x24, 0x91, 0x24, 0x11, 0xFC, 0xFD, 0x04, 0x10, 0x40, 0x12, 0xA8, 0x12, 0xA4, 0x14, 0x8A, 0x18, 0x8A, 0x10, 0x78, 0x00, 0x00, 0x10, 0x00, 0x15, 0xDC, 0x1F, 0x54, 0x21, 0x54, 0x21, 0xDC, 0x7C, 0x08, 0x91, 0xFC, 0x10, 0x00, 0xFF, 0xFE, 0x10, 0x80, 0x10, 0xF8, 0x10, 0x08, 0x14, 0x08, 0x18, 0x08, 0x10, 0x50, 0x00, 0x20, 0x20, 0x08, 0x20, 0x7C, 0x3B, 0xC0, 0x40, 0x40, 0x48, 0x44, 0x7F, 0xFE, 0xA0, 0x40, 0x21, 0x44, 0xFE, 0x5E, 0x24, 0x44, 0x24, 0x44, 0x27, 0x5C, 0x2C, 0x44, 0x34, 0x44, 0x27, 0xFC, 0x04, 0x04, 0x10, 0x20, 0x10, 0xAC, 0x1D, 0x24, 0x21, 0x24, 0x21, 0xAC, 0x7D, 0x24, 0x91, 0x24, 0x11, 0xFC, 0xFE, 0x20, 0x11, 0xFC, 0x10, 0x88, 0x12, 0x50, 0x14, 0x20, 0x18, 0x50, 0x11, 0x8E, 0x06, 0x04, 0x10, 0x3C, 0x13, 0xC0, 0x1C, 0x24, 0x21, 0x24, 0x20, 0xA8, 0x7D, 0xFC, 0x90, 0x40, 0x13, 0xFE, 0xFC, 0x80, 0x10, 0xFC, 0x11, 0x88, 0x11, 0x50, 0x16, 0x20, 0x1A, 0x50, 0x14, 0x8E, 0x01, 0x04, 0x10, 0x40, 0x14, 0x24, 0x1F, 0xFE, 0x20, 0x00, 0x21, 0xFC, 0x7D, 0x04, 0x91, 0x04, 0x11, 0xFC, 0xFE, 0x40, 0x10, 0x44, 0x10, 0xA8, 0x10, 0x90, 0x15, 0x90, 0x1A, 0xA8, 0x14, 0xC6, 0x00, 0x84, 0x10, 0x20, 0x11, 0x24, 0x1C, 0xA8, 0x20, 0x20, 0x23, 0xFE, 0x7C, 0x70, 0x90, 0xA8, 0x11, 0x26, 0xFC, 0x40, 0x13, 0xFE, 0x10, 0x88, 0x11, 0x08, 0x14, 0xD0, 0x18, 0x30, 0x10, 0xCC, 0x03, 0x04, 0x21, 0x20, 0x21, 0x20, 0x39, 0x3C, 0x45, 0x44, 0x43, 0xA8, 0x79, 0x10, 0xA1, 0x28, 0x21, 0x48, 0xFB, 0xFE, 0x25, 0x08, 0x29, 0x48, 0x21, 0x28, 0x29, 0x28, 0x31, 0x08, 0x21, 0x28, 0x01, 0x10, 0x21, 0x10, 0x21, 0x14, 0x3F, 0xFE, 0x41, 0x14, 0x47, 0xFC, 0x7D, 0x10, 0xA7, 0xFE, 0x21, 0x12, 0xFB, 0xFE, 0x22, 0x08, 0x22, 0x48, 0x22, 0x48, 0x2A, 0x48, 0x30, 0xB0, 0x21, 0x0C, 0x06, 0x04, 0x10, 0x04, 0x15, 0xFE, 0x1F, 0x24, 0x21, 0x24, 0x21, 0xFC, 0x7D, 0x00, 0x91, 0xFC, 0x11, 0x84, 0xFE, 0x84, 0x12, 0xFC, 0x12, 0x84, 0x16, 0xFC, 0x1A, 0x84, 0x12, 0x84, 0x04, 0xFC, 0x08, 0x84, 0x11, 0x10, 0x11, 0x14, 0x1F, 0xFE, 0x21, 0x10, 0x23, 0xF8, 0x7E, 0x08, 0x93, 0xF8, 0x12, 0x08, 0xFF, 0xF8, 0x10, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x14, 0x40, 0x18, 0xA0, 0x11, 0x1C, 0x06, 0x08, 0x20, 0x08, 0x27, 0xFC, 0x38, 0x00, 0x43, 0xF8, 0x42, 0x08, 0x7A, 0x08, 0xA3, 0xF8, 0x20, 0x04, 0xFF, 0xFE, 0x25, 0x14, 0x24, 0xA4, 0x27, 0xFC, 0x2C, 0x44, 0x34, 0x44, 0x24, 0x54, 0x04, 0x08, 0x10, 0xA0, 0x10, 0xA8, 0x1D, 0xFC, 0x21, 0x20, 0x23, 0xF8, 0x7D, 0x20, 0x91, 0xF8, 0x11, 0x20, 0xFD, 0xFE, 0x11, 0x00, 0x13, 0xF8, 0x10, 0x88, 0x14, 0x9C, 0x19, 0x04, 0x12, 0x28, 0x04, 0x10, 0x20, 0x40, 0x20, 0xA0, 0x39, 0x10, 0x43, 0xF8, 0x44, 0x06, 0x7B, 0xF8, 0xA2, 0x08, 0x23, 0xF8, 0xF8, 0x1C, 0x27, 0xE0, 0x20, 0x40, 0x23, 0xF8, 0x28, 0x40, 0x37, 0xFE, 0x20, 0x40, 0x00, 0xC0, 0x20, 0x84, 0x27, 0x7E, 0x3C, 0x24, 0x44, 0x24, 0x45, 0x24, 0x7D, 0xA4, 0xA6, 0x54, 0x20, 0x88, 0xFF, 0xFC, 0x24, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x2C, 0x44, 0x34, 0x44, 0x27, 0xFC, 0x04, 0x04, 0x10, 0x00, 0x14, 0x88, 0x1E, 0x50, 0x20, 0x04, 0x23, 0xFE, 0x7C, 0x50, 0x90, 0x8C, 0x15, 0x04, 0xFE, 0x00, 0x11, 0xFC, 0x11, 0x54, 0x11, 0x54, 0x15, 0x54, 0x19, 0x54, 0x13, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x12, 0x20, 0x1F, 0xFE, 0x22, 0x02, 0x24, 0x04, 0x7F, 0xFE, 0x90, 0x40, 0x10, 0xC4, 0xFF, 0x68, 0x10, 0xB0, 0x13, 0x30, 0x10, 0x68, 0x14, 0xA8, 0x1B, 0x26, 0x10, 0xA4, 0x00, 0x40, 0x10, 0x40, 0x12, 0x20, 0x1F, 0xFE, 0x22, 0x02, 0x24, 0x34, 0x7D, 0xC0, 0x91, 0x08, 0x11, 0xFC, 0xFD, 0x10, 0x11, 0x10, 0x11, 0x14, 0x17, 0xFE, 0x14, 0x00, 0x19, 0x10, 0x12, 0x0C, 0x04, 0x04, 0x10, 0x04, 0x13, 0xFE, 0x1C, 0x50, 0x20, 0x54, 0x21, 0xFE, 0x7D, 0x54, 0x91, 0x54, 0x15, 0xFC, 0xFE, 0x00, 0x11, 0xFC, 0x10, 0x00, 0x13, 0xFE, 0x14, 0xA8, 0x19, 0x26, 0x12, 0x22, 0x00, 0x60, 0x20, 0x40, 0x22, 0x48, 0x39, 0x50, 0x40, 0x40, 0x47, 0xFE, 0x7C, 0x02, 0xA9, 0xF4, 0x21, 0x10, 0xF9, 0x10, 0x21, 0xF0, 0x20, 0x40, 0x23, 0xF8, 0x28, 0x40, 0x30, 0x44, 0x2F, 0xFE, 0x00, 0x00, 0x20, 0x08, 0x23, 0xFC, 0x3A, 0x08, 0x43, 0xF8, 0x42, 0x08, 0x7B, 0xF8, 0xA0, 0x04, 0x27, 0xFE, 0xFC, 0xA4, 0x27, 0xFC, 0x20, 0x00, 0x23, 0xF8, 0x29, 0x10, 0x30, 0xE0, 0x23, 0x10, 0x0C, 0x0E, 0x20, 0x04, 0x27, 0xFE, 0x3C, 0x44, 0x47, 0xFC, 0x44, 0x44, 0x7F, 0xFC, 0xA0, 0x80, 0x21, 0x08, 0xFB, 0xF0, 0x20, 0x20, 0x20, 0x48, 0x27, 0xFC, 0x29, 0x50, 0x32, 0x4C, 0x24, 0x44, 0x00, 0xC0, 0x20, 0x20, 0x27, 0xFE, 0x3C, 0x20, 0x45, 0xFC, 0x44, 0x24, 0x7F, 0xFE, 0xA4, 0x24, 0x25, 0xFC, 0xFC, 0x20, 0x25, 0xFC, 0x25, 0x24, 0x25, 0xFC, 0x2D, 0x24, 0x35, 0xFC, 0x29, 0x24, 0x11, 0x2C, 0x22, 0x20, 0x21, 0x20, 0x39, 0x24, 0x47, 0xFE, 0x42, 0x40, 0x7A, 0x20, 0xA3, 0xBC, 0x22, 0xD0, 0xFA, 0x94, 0x22, 0xFE, 0x22, 0x90, 0x22, 0x90, 0x2C, 0xA8, 0x34, 0xA6, 0x29, 0xC2, 0x00, 0x00, 0x24, 0x40, 0x22, 0x40, 0x38, 0x44, 0x4F, 0xFE, 0x44, 0x80, 0x7C, 0x00, 0xA7, 0x7E, 0x25, 0x14, 0xFD, 0x10, 0x25, 0x54, 0x25, 0x5E, 0x2D, 0x50, 0x35, 0x50, 0x25, 0x70, 0x0B, 0x9E, 0x11, 0x04, 0x20, 0x80, 0x28, 0x44, 0x3F, 0xFE, 0x41, 0x10, 0x40, 0xA4, 0x7F, 0xFE, 0xA4, 0x44, 0x24, 0x54, 0xFF, 0xFC, 0x24, 0x44, 0x25, 0xF4, 0x25, 0x14, 0x2D, 0x14, 0x35, 0xF4, 0x24, 0x04, 0x04, 0x0C, 0x10, 0x04, 0x13, 0xFE, 0x1C, 0x50, 0x21, 0xFC, 0x21, 0x54, 0x7D, 0xFC, 0x90, 0x00, 0x15, 0xFC, 0xFF, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0xFC, 0x14, 0x20, 0x1B, 0xFE, 0x10, 0x20, 0x00, 0x20, 0x20, 0x04, 0x2F, 0xFE, 0x38, 0x08, 0x4A, 0x28, 0x49, 0x48, 0x7F, 0xEE, 0xA8, 0x92, 0x2A, 0xA4, 0xFA, 0xA8, 0x2A, 0xA8, 0x2B, 0xE8, 0x28, 0xA8, 0x38, 0x94, 0x29, 0x14, 0x12, 0x24, 0x24, 0x42, 0x20, 0xA0, 0x24, 0xA4, 0x3A, 0xA8, 0x40, 0xA0, 0x4F, 0xFE, 0x79, 0x10, 0xA0, 0xA0, 0x27, 0xFC, 0xF8, 0x40, 0x23, 0xF8, 0x20, 0x40, 0x27, 0xFC, 0x28, 0x40, 0x30, 0xA0, 0x21, 0x1C, 0x06, 0x08, 0x10, 0x80, 0x10, 0xF8, 0x1D, 0x10, 0x23, 0xFC, 0x21, 0x24, 0x7D, 0xFC, 0x91, 0x24, 0x11, 0xFC, 0xFC, 0x00, 0x13, 0xFE, 0x10, 0x00, 0x11, 0xFC, 0x15, 0x04, 0x19, 0xFC, 0x11, 0x04, 0x01, 0xFC, 0x22, 0x10, 0x21, 0x10, 0x3F, 0xF4, 0x40, 0x1E, 0x47, 0xE4, 0x7C, 0x54, 0xA4, 0x54, 0x27, 0xD4, 0xF8, 0x14, 0x27, 0xC8, 0x20, 0x88, 0x21, 0xD4, 0x2F, 0x14, 0x31, 0x24, 0x25, 0x22, 0x02, 0x40, 0x24, 0x04, 0x22, 0xFE, 0x39, 0x44, 0x44, 0x54, 0x47, 0xFC, 0x7C, 0x44, 0xA5, 0xF4, 0x25, 0x54, 0xFD, 0xF4, 0x25, 0x54, 0x25, 0xF4, 0x24, 0xE4, 0x2D, 0x54, 0x36, 0x4C, 0x24, 0x44, 0x04, 0x4C, 0x11, 0x08, 0x10, 0x90, 0x1F, 0xFC, 0x20, 0x90, 0x22, 0x94, 0x7D, 0x98, 0x90, 0x90, 0x17, 0xFE, 0xFC, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x11, 0x08, 0x15, 0xF8, 0x19, 0x08, 0x11, 0x08, 0x01, 0xF8, 0x20, 0x80, 0x20, 0x40, 0x3F, 0xFE, 0x45, 0x12, 0x4A, 0x4C, 0x78, 0x40, 0xA3, 0xF8, 0x22, 0x48, 0xFB, 0xF8, 0x20, 0x40, 0x23, 0xF8, 0x22, 0x48, 0x2B, 0xF8, 0x32, 0x48, 0x20, 0x40, 0x00, 0x40, 0x20, 0x04, 0x27, 0x7E, 0x39, 0x44, 0x41, 0x44, 0x41, 0x7C, 0x7F, 0x10, 0xA4, 0xFE, 0x24, 0x92, 0xFC, 0x92, 0x27, 0x92, 0x21, 0xFE, 0x21, 0x10, 0x29, 0x10, 0x31, 0x14, 0x2A, 0xFE, 0x04, 0x42, 0x20, 0x28, 0x23, 0xB0, 0x38, 0xA4, 0x42, 0x98, 0x41, 0x10, 0x7B, 0xF8, 0xA4, 0x04, 0x23, 0xFA, 0xFA, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x20, 0x00, 0x29, 0x10, 0x30, 0xA4, 0x2F, 0xFE, 0x00, 0x00, 0x21, 0x08, 0x27, 0xFE, 0x39, 0x28, 0x41, 0xFE, 0x42, 0x20, 0x7F, 0xFC, 0xA2, 0x20, 0x23, 0xFC, 0xFA, 0x20, 0x23, 0xFE, 0x22, 0x00, 0x23, 0xF8, 0x29, 0x10, 0x30, 0xE0, 0x23, 0x18, 0x0C, 0x06, 0x20, 0x04, 0x27, 0xFE, 0x3C, 0xA4, 0x44, 0xA4, 0x47, 0xFC, 0x79, 0x00, 0xA3, 0xFC, 0x24, 0x84, 0xF8, 0x84, 0x27, 0xF4, 0x24, 0x94, 0x27, 0xF4, 0x28, 0x84, 0x30, 0xA4, 0x27, 0xF4, 0x00, 0x08, 0x20, 0x80, 0x28, 0x48, 0x3F, 0xFC, 0x41, 0x10, 0x48, 0xA4, 0x7F, 0xFE, 0xA0, 0x08, 0x23, 0xFC, 0xFE, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x2B, 0xF8, 0x30, 0x40, 0x25, 0x24, 0x09, 0x0A, 0x00, 0xF8, 0x20, 0x80, 0x20, 0x40, 0x3F, 0xFE, 0x45, 0x02, 0x41, 0xBC, 0x7A, 0xA4, 0xA7, 0xA8, 0x2D, 0x10, 0xF3, 0xF8, 0x24, 0x06, 0x2B, 0xF8, 0x20, 0x40, 0x29, 0x50, 0x32, 0x4C, 0x24, 0x44, 0x00, 0xC0, 0x20, 0x40, 0x20, 0x24, 0x3F, 0xFE, 0x44, 0x90, 0x47, 0xFC, 0x7C, 0x94, 0xA7, 0xFC, 0x25, 0x10, 0xFD, 0xD4, 0x25, 0x18, 0x25, 0x52, 0x2D, 0x8E, 0x34, 0x00, 0x25, 0x54, 0x09, 0x52, 0x12, 0x02, 0x20, 0x08, 0x20, 0x1C, 0x3B, 0xE0, 0x40, 0x44, 0x4F, 0xFE, 0x78, 0x40, 0xA3, 0xF8, 0x2A, 0x48, 0xFF, 0xF8, 0x22, 0x48, 0x23, 0xF8, 0x20, 0x40, 0x2B, 0xF8, 0x30, 0x40, 0x2F, 0xFE, 0x00, 0x00, 0x20, 0x44, 0x23, 0xE4, 0x20, 0x44, 0x3C, 0x44, 0x50, 0x44, 0x93, 0xC4, 0x12, 0x44, 0xFE, 0x04, 0x12, 0x24, 0x13, 0xF4, 0x10, 0x24, 0x28, 0x24, 0x24, 0x24, 0x44, 0x24, 0x81, 0x44, 0x00, 0x84, 0x20, 0x40, 0x20, 0x40, 0x22, 0x48, 0x3E, 0x48, 0x52, 0x48, 0x92, 0x48, 0x15, 0x54, 0xFC, 0xE2, 0x10, 0x40, 0x10, 0x48, 0x13, 0xFC, 0x28, 0x40, 0x24, 0x40, 0x40, 0x44, 0x8F, 0xFE, 0x00, 0x00, 0x20, 0x80, 0x20, 0xA0, 0x20, 0x94, 0x3D, 0xFE, 0x51, 0x20, 0x93, 0x28, 0x15, 0xFC, 0xFD, 0x20, 0x11, 0x28, 0x11, 0xFC, 0x11, 0x20, 0x29, 0x20, 0x25, 0x24, 0x45, 0xFE, 0x81, 0x00, 0x01, 0x00, 0x00, 0x20, 0x0E, 0x20, 0xF2, 0x20, 0x12, 0x20, 0x12, 0x20, 0xFE, 0x24, 0x13, 0xAC, 0x32, 0x30, 0x3A, 0x20, 0x56, 0x20, 0x52, 0x20, 0x92, 0x20, 0x12, 0xA2, 0x13, 0x22, 0x12, 0x1E, 0x10, 0x00, 0x00, 0x40, 0x0C, 0x50, 0xF0, 0x78, 0x13, 0xC0, 0x12, 0x40, 0xFE, 0x40, 0x12, 0x44, 0x33, 0xFE, 0x38, 0x44, 0x54, 0xC4, 0x51, 0x44, 0x92, 0x54, 0x14, 0x48, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x00, 0x40, 0x0C, 0x40, 0xF0, 0x44, 0x17, 0xFE, 0x10, 0x40, 0xFC, 0x48, 0x13, 0xFC, 0x30, 0xC0, 0x38, 0xE0, 0x55, 0x50, 0x51, 0x50, 0x92, 0x48, 0x14, 0x4E, 0x10, 0x44, 0x10, 0x40, 0x10, 0x40, 0x00, 0x40, 0x0C, 0x50, 0xF0, 0x48, 0x10, 0x48, 0x17, 0xFE, 0xFC, 0x40, 0x10, 0x40, 0x30, 0xC0, 0x38, 0xE0, 0x55, 0x50, 0x51, 0x50, 0x91, 0x48, 0x12, 0x4E, 0x14, 0x44, 0x18, 0x40, 0x10, 0x40, 0x00, 0x08, 0x0D, 0xFC, 0xF1, 0x08, 0x11, 0x08, 0x11, 0x08, 0xFD, 0x08, 0x11, 0xF8, 0x30, 0x00, 0x38, 0x04, 0x57, 0xFE, 0x52, 0x04, 0x92, 0x04, 0x12, 0x04, 0x12, 0x04, 0x13, 0xFC, 0x12, 0x04, 0x00, 0x80, 0x0C, 0xA0, 0xF0, 0x94, 0x17, 0xFE, 0x10, 0xA0, 0xFC, 0xA0, 0x11, 0x22, 0x31, 0x22, 0x3A, 0x1E, 0x54, 0x40, 0x50, 0x40, 0x92, 0x48, 0x12, 0x48, 0x12, 0x48, 0x13, 0xF8, 0x10, 0x08, 0x08, 0x08, 0x0C, 0x3C, 0xF7, 0xC0, 0x12, 0x48, 0x11, 0x50, 0xFC, 0x00, 0x13, 0xF8, 0x30, 0x10, 0x38, 0x60, 0x54, 0x44, 0x57, 0xFE, 0x90, 0x40, 0x10, 0x40, 0x10, 0x40, 0x11, 0x40, 0x10, 0x80, 0x00, 0x80, 0x0C, 0x48, 0xF3, 0xFC, 0x12, 0x08, 0x12, 0x08, 0xFF, 0xF8, 0x12, 0x08, 0x32, 0x08, 0x3B, 0xF8, 0x56, 0x84, 0x52, 0x4C, 0x92, 0x50, 0x12, 0x20, 0x12, 0x90, 0x13, 0x0E, 0x12, 0x04, 0x04, 0x04, 0x0F, 0xFE, 0xF1, 0x24, 0x11, 0x24, 0x15, 0xFC, 0xFF, 0x24, 0x11, 0x24, 0x31, 0xFC, 0x38, 0x20, 0x57, 0xFE, 0x50, 0x20, 0x90, 0x70, 0x10, 0xA8, 0x11, 0x26, 0x12, 0x24, 0x10, 0x20, 0x00, 0x40, 0x0C, 0x40, 0xF0, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0xFE, 0x8E, 0x14, 0x44, 0x31, 0xF0, 0x38, 0x10, 0x54, 0xA0, 0x50, 0x40, 0x95, 0x44, 0x15, 0x12, 0x19, 0x12, 0x10, 0xF0, 0x10, 0x00, 0x00, 0x40, 0x0C, 0x48, 0xF7, 0xFC, 0x10, 0x40, 0x13, 0xF8, 0xFE, 0x08, 0x13, 0xF8, 0x32, 0x08, 0x3B, 0xF8, 0x56, 0x08, 0x53, 0xF8, 0x92, 0x08, 0x1F, 0xFE, 0x11, 0x10, 0x12, 0x0C, 0x14, 0x04, 0x00, 0x04, 0x0D, 0xFE, 0xF1, 0x24, 0x11, 0x24, 0x11, 0xFC, 0xFD, 0x24, 0x11, 0x24, 0x31, 0xFC, 0x39, 0x44, 0x56, 0x7A, 0x50, 0x88, 0x91, 0x50, 0x12, 0x20, 0x10, 0x50, 0x11, 0x8E, 0x16, 0x04, 0x00, 0x40, 0x0C, 0x48, 0xF7, 0xFC, 0x10, 0x40, 0x12, 0x48, 0xF9, 0x50, 0x17, 0xFE, 0x30, 0x04, 0x3F, 0xFE, 0x54, 0x04, 0x55, 0xF4, 0x95, 0x14, 0x15, 0xF4, 0x14, 0x04, 0x17, 0xFC, 0x14, 0x04, 0x00, 0x20, 0x06, 0x20, 0x78, 0x24, 0x09, 0x3E, 0xFF, 0xA0, 0x1C, 0x20, 0x2A, 0x24, 0x48, 0xFE, 0x14, 0x84, 0x2A, 0x84, 0x6B, 0x84, 0x9C, 0x84, 0x1A, 0x84, 0x69, 0x84, 0x08, 0xFC, 0x18, 0x84, 0x04, 0x84, 0x0E, 0xFE, 0xF1, 0x00, 0x12, 0xFC, 0xFE, 0x84, 0x10, 0xFC, 0x38, 0x84, 0x56, 0xFC, 0x92, 0x40, 0x7C, 0xFC, 0x44, 0x84, 0x7D, 0x88, 0x46, 0x50, 0x7C, 0x20, 0x44, 0x50, 0x01, 0x8E, 0x04, 0x40, 0x0B, 0xFE, 0xF0, 0x00, 0x17, 0xBC, 0x14, 0xA4, 0xFF, 0xBC, 0x11, 0x10, 0x37, 0xFC, 0x39, 0x10, 0x57, 0xF8, 0x51, 0x10, 0x9F, 0xFE, 0x11, 0x48, 0x13, 0x30, 0x1D, 0x8E, 0x11, 0x04, 0x10, 0x08, 0x10, 0x1C, 0x21, 0xE0, 0x7D, 0x00, 0x45, 0x00, 0x45, 0x00, 0x45, 0xFC, 0x7D, 0x04, 0x45, 0x84, 0x45, 0x88, 0x45, 0x48, 0x45, 0x50, 0x7E, 0x20, 0x42, 0x50, 0x04, 0x8E, 0x0B, 0x04, 0x10, 0x80, 0x10, 0x40, 0x20, 0x44, 0x7F, 0xFE, 0x48, 0x00, 0x49, 0x10, 0x4A, 0x0C, 0x4D, 0x14, 0x79, 0x10, 0x48, 0xA0, 0x48, 0x40, 0x48, 0xA0, 0x48, 0xA0, 0x79, 0x10, 0x42, 0x0E, 0x0C, 0x04, 0x10, 0x20, 0x11, 0x20, 0x21, 0x28, 0x79, 0xFC, 0x49, 0x20, 0x4A, 0x20, 0x48, 0x24, 0x4F, 0xFE, 0x78, 0x00, 0x49, 0xFC, 0x49, 0x04, 0x49, 0x04, 0x49, 0x04, 0x79, 0x04, 0x49, 0xFC, 0x01, 0x04, 0x08, 0x0C, 0x08, 0xF0, 0xFE, 0x80, 0x08, 0x84, 0x1C, 0xFE, 0x2A, 0x90, 0x48, 0x90, 0x89, 0x10, 0x0A, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x38, 0x17, 0xC0, 0x20, 0x48, 0x7A, 0x54, 0x4F, 0xFE, 0x48, 0xE0, 0x49, 0x50, 0x4A, 0x48, 0x7F, 0xFE, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x4A, 0x48, 0x7A, 0x48, 0x4B, 0xF8, 0x02, 0x08, 0x02, 0x10, 0x07, 0x10, 0x7A, 0x50, 0x2A, 0x54, 0x2A, 0x7E, 0x2A, 0x90, 0x2A, 0x14, 0x2A, 0xFE, 0x2A, 0x10, 0x2A, 0x28, 0x2A, 0x26, 0x29, 0x42, 0x2A, 0x80, 0x5E, 0x40, 0x40, 0x3E, 0x80, 0x04, 0x10, 0x00, 0x12, 0x0C, 0xFF, 0xF8, 0x28, 0xA8, 0x26, 0xA8, 0x42, 0xA8, 0xBC, 0xA8, 0x00, 0xA8, 0xFE, 0xA8, 0x20, 0xA8, 0x7C, 0xA8, 0x04, 0xA8, 0x04, 0xC8, 0x44, 0xD4, 0x29, 0x74, 0x12, 0x02, 0x00, 0x10, 0x7F, 0xF8, 0x04, 0x20, 0x02, 0xC0, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x28, 0x20, 0x10, 0x20, 0x20, 0x20, 0x48, 0x21, 0xFC, 0x29, 0x08, 0xFD, 0x48, 0x29, 0x08, 0x29, 0x28, 0x29, 0x10, 0x29, 0x04, 0x29, 0xFE, 0x28, 0x04, 0x2A, 0x24, 0x4D, 0xF4, 0x48, 0x04, 0x80, 0x14, 0x00, 0x08, 0x04, 0x80, 0x04, 0x44, 0x02, 0x7E, 0xFF, 0x80, 0x00, 0x82, 0x04, 0x62, 0x1F, 0xFE, 0x14, 0x20, 0x12, 0x20, 0x10, 0xA0, 0x10, 0x44, 0x1F, 0xFE, 0x00, 0x04, 0x7F, 0xE4, 0x00, 0x14, 0x00, 0x08, 0x00, 0x20, 0x40, 0x48, 0x49, 0xFC, 0x59, 0x08, 0x61, 0x48, 0x45, 0x08, 0x45, 0x28, 0x3D, 0x10, 0x11, 0x04, 0x11, 0xFE, 0xFE, 0x04, 0x10, 0x24, 0x13, 0xF4, 0x10, 0x04, 0x10, 0x14, 0x10, 0x08, 0x10, 0x20, 0x10, 0x48, 0x11, 0xFC, 0x51, 0x08, 0x7F, 0x48, 0x53, 0x08, 0x95, 0x28, 0x11, 0x10, 0x11, 0x04, 0x29, 0xFE, 0x28, 0x04, 0x2A, 0x24, 0x4D, 0xF4, 0x48, 0x04, 0x80, 0x14, 0x00, 0x08, 0x10, 0x20, 0x10, 0x48, 0x11, 0xFC, 0x15, 0x08, 0xFF, 0x48, 0x11, 0x08, 0x11, 0x28, 0x11, 0x10, 0x7D, 0x04, 0x45, 0xFE, 0x44, 0x04, 0x44, 0x24, 0x47, 0xF4, 0x7C, 0x04, 0x44, 0x14, 0x00, 0x08, 0x10, 0x20, 0x10, 0x48, 0x15, 0xFC, 0xFF, 0x08, 0x21, 0x48, 0x51, 0x08, 0x95, 0x28, 0xFF, 0x10, 0x11, 0x04, 0x39, 0xFE, 0x34, 0x04, 0x54, 0x24, 0x93, 0xF4, 0x10, 0x04, 0x50, 0x14, 0x20, 0x08, 0x10, 0x20, 0x14, 0x48, 0x1F, 0xFC, 0x11, 0x08, 0x15, 0x48, 0x7F, 0x08, 0x45, 0x28, 0x45, 0x10, 0x7D, 0x04, 0x45, 0xFE, 0x40, 0x04, 0x40, 0x24, 0x43, 0xF4, 0x40, 0x04, 0x80, 0x14, 0x00, 0x08, 0x20, 0x20, 0x20, 0x48, 0x25, 0xFC, 0x7F, 0x08, 0x85, 0x48, 0x05, 0x08, 0x75, 0x28, 0x55, 0x10, 0x55, 0x04, 0x55, 0xFE, 0x74, 0x04, 0x54, 0x24, 0x05, 0xF4, 0x08, 0x04, 0x28, 0x14, 0x10, 0x08, 0x00, 0x20, 0x06, 0x48, 0x79, 0xFC, 0x51, 0x08, 0x51, 0x48, 0x55, 0x08, 0x7F, 0x28, 0x49, 0x10, 0x49, 0x04, 0x49, 0xFE, 0x48, 0x04, 0x44, 0x24, 0x45, 0xF4, 0x54, 0x04, 0x6A, 0x94, 0x01, 0x08, 0x08, 0x20, 0x08, 0x20, 0x32, 0xC8, 0x0C, 0x30, 0x10, 0x40, 0x3E, 0xF8, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x1F, 0xF0, 0x12, 0x10, 0x11, 0x24, 0x1F, 0xFE, 0x00, 0x04, 0x7F, 0xE4, 0x00, 0x0C, 0x00, 0x10, 0x01, 0x24, 0xFF, 0xFE, 0x08, 0x44, 0x10, 0x54, 0x7F, 0x44, 0x55, 0x54, 0x55, 0x48, 0x55, 0x40, 0x55, 0x7E, 0x55, 0x02, 0x55, 0x12, 0x55, 0xFA, 0x41, 0x02, 0x43, 0x0A, 0x00, 0x04, 0x08, 0x40, 0x08, 0x48, 0xFE, 0xFC, 0x08, 0x48, 0x0E, 0xC8, 0x78, 0xAA, 0x09, 0x0A, 0x1A, 0x06, 0x1F, 0xE0, 0x12, 0x20, 0x11, 0x44, 0x1F, 0xFE, 0x00, 0x04, 0x7F, 0xF4, 0x00, 0x04, 0x00, 0x18, 0x00, 0x20, 0x0C, 0x48, 0x71, 0xFC, 0x11, 0x08, 0x11, 0x48, 0x15, 0x08, 0xFF, 0x28, 0x11, 0x10, 0x15, 0x04, 0x7F, 0xFE, 0x44, 0x04, 0x44, 0x24, 0x47, 0xF4, 0x7C, 0x04, 0x44, 0x14, 0x00, 0x08, 0x12, 0x10, 0x12, 0x24, 0x12, 0x7E, 0x22, 0x44, 0x3F, 0xD4, 0x62, 0x44, 0xA6, 0x54, 0x27, 0x48, 0x2A, 0xC0, 0x2A, 0x7E, 0x32, 0x02, 0x22, 0x12, 0x22, 0xFA, 0x22, 0x02, 0x22, 0x0A, 0x22, 0x04, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x14, 0x50, 0x25, 0x4C, 0x46, 0x44, 0x1F, 0xE0, 0x12, 0x20, 0x11, 0x20, 0x10, 0x44, 0x1F, 0xFE, 0x00, 0x04, 0x7F, 0xF4, 0x00, 0x04, 0x00, 0x18, 0x08, 0x20, 0x0A, 0x48, 0x7F, 0xFC, 0x08, 0x88, 0x48, 0xA8, 0x7F, 0x88, 0x41, 0xA8, 0x82, 0x90, 0x3E, 0x84, 0x04, 0xFE, 0x08, 0x04, 0xFE, 0x24, 0x0B, 0xF4, 0x08, 0x04, 0x28, 0x14, 0x10, 0x08, 0x00, 0x10, 0x01, 0x24, 0xFF, 0xFE, 0x00, 0x44, 0x00, 0x54, 0x77, 0x44, 0x55, 0x54, 0x55, 0x48, 0x55, 0x40, 0x77, 0x7E, 0x55, 0x02, 0x55, 0x12, 0x55, 0xFA, 0x55, 0x02, 0x55, 0x0A, 0x00, 0x04, 0x08, 0x20, 0x28, 0x48, 0x2A, 0xFC, 0x3F, 0x88, 0x48, 0xA8, 0x88, 0x88, 0x0A, 0xA8, 0xFF, 0x90, 0x00, 0x84, 0x3E, 0xFE, 0x22, 0x04, 0x22, 0x24, 0x23, 0xF4, 0x22, 0x04, 0x3E, 0x14, 0x22, 0x08, 0x00, 0x20, 0x28, 0x48, 0x45, 0xFC, 0x93, 0x08, 0x11, 0x48, 0x29, 0x08, 0x45, 0x28, 0x83, 0x10, 0x7D, 0x04, 0x45, 0xFE, 0x44, 0x04, 0x44, 0x24, 0x47, 0xF4, 0x7C, 0x04, 0x44, 0x14, 0x00, 0x08, 0x40, 0x10, 0x2F, 0x24, 0x11, 0x7E, 0x49, 0x44, 0x49, 0x54, 0x7F, 0x44, 0x49, 0x54, 0x59, 0x48, 0x5D, 0x40, 0x5B, 0x7E, 0x69, 0x02, 0x49, 0x12, 0x49, 0xFA, 0x41, 0x02, 0x45, 0x0A, 0x42, 0x04, 0x22, 0x10, 0x14, 0x24, 0x7F, 0x7E, 0x09, 0x44, 0x09, 0x54, 0x7F, 0x44, 0x48, 0x54, 0x48, 0x48, 0x7F, 0x40, 0x09, 0x7E, 0x19, 0x02, 0x1D, 0x12, 0x2A, 0xFA, 0xC8, 0x02, 0x08, 0x0A, 0x08, 0x04, 0x04, 0x10, 0x06, 0x24, 0x7D, 0x7E, 0x04, 0x44, 0x04, 0x54, 0xFF, 0x44, 0x14, 0x54, 0x54, 0x48, 0x5C, 0x40, 0x54, 0x7E, 0x52, 0x02, 0x52, 0x12, 0x5E, 0xFA, 0xF1, 0x82, 0x40, 0x8A, 0x00, 0x04, 0x22, 0x10, 0x22, 0x24, 0xFF, 0xFE, 0x22, 0x44, 0x22, 0x54, 0x00, 0x44, 0x7F, 0x54, 0x49, 0x48, 0x49, 0x40, 0x49, 0x7E, 0x7F, 0x02, 0x49, 0x12, 0x49, 0xFA, 0x49, 0x02, 0x7F, 0x0A, 0x41, 0x04, 0x08, 0x10, 0x09, 0x24, 0xFF, 0xFE, 0x14, 0x44, 0x12, 0x54, 0x29, 0x44, 0x7F, 0xD4, 0xC9, 0x48, 0x7F, 0x40, 0x49, 0x7E, 0x49, 0x02, 0x7F, 0x12, 0x08, 0xFA, 0x0A, 0x02, 0x0C, 0x0A, 0x08, 0x04, 0x08, 0x10, 0x11, 0x24, 0x7F, 0xFE, 0x49, 0x44, 0x49, 0x54, 0x7F, 0x44, 0x49, 0x54, 0x51, 0x48, 0x7F, 0x40, 0x10, 0x7E, 0x29, 0x02, 0xFF, 0x92, 0x08, 0xFA, 0x08, 0x02, 0x08, 0x0A, 0x08, 0x04, 0x10, 0x20, 0x0A, 0x48, 0xFF, 0xFC, 0x00, 0x88, 0x3E, 0xA8, 0x22, 0x88, 0x22, 0xA8, 0x3E, 0x90, 0x00, 0x84, 0x7E, 0xFE, 0x04, 0x04, 0xFF, 0x24, 0x09, 0xF4, 0x08, 0x04, 0x28, 0x14, 0x10, 0x08, 0x20, 0x10, 0x27, 0x24, 0x25, 0x7E, 0xFD, 0x44, 0x25, 0x54, 0x27, 0x44, 0x25, 0x54, 0x75, 0x48, 0x55, 0x40, 0x57, 0x7E, 0x55, 0x02, 0x55, 0x12, 0x75, 0xFA, 0x49, 0x02, 0x13, 0x0A, 0x00, 0x04, 0x00, 0x10, 0x77, 0x24, 0x55, 0x7E, 0x55, 0x44, 0x77, 0x54, 0x00, 0x44, 0x7F, 0x54, 0x00, 0x48, 0xFF, 0xC0, 0x20, 0x7E, 0x3E, 0x02, 0x02, 0x12, 0x02, 0xFA, 0x02, 0x02, 0x14, 0x0A, 0x08, 0x04, 0x00, 0x10, 0x41, 0x24, 0x22, 0x7E, 0x00, 0x44, 0xFF, 0xD4, 0x00, 0x44, 0x22, 0x54, 0x22, 0x48, 0x55, 0x40, 0xFF, 0x7E, 0x22, 0x02, 0x22, 0x12, 0x55, 0xFA, 0xFF, 0x02, 0x11, 0x0A, 0x00, 0x04, 0x01, 0x10, 0x7F, 0xA4, 0x49, 0x7E, 0x49, 0x44, 0x7F, 0x54, 0x40, 0x44, 0x5F, 0x54, 0x51, 0x48, 0x51, 0x40, 0x5F, 0x7E, 0x51, 0x02, 0x5F, 0x12, 0x51, 0xFA, 0x51, 0x02, 0x9F, 0x0A, 0x11, 0x04, 0x7C, 0x80, 0x08, 0xFE, 0xFF, 0x88, 0x32, 0x50, 0x54, 0x20, 0x91, 0x50, 0x32, 0x8E, 0x1F, 0xE0, 0x12, 0x20, 0x11, 0x20, 0x10, 0x44, 0x1F, 0xFE, 0x00, 0x04, 0x7F, 0xF4, 0x00, 0x04, 0x00, 0x18, 0x02, 0x10, 0x07, 0x24, 0xF8, 0x7E, 0x41, 0x44, 0x2A, 0x54, 0x2A, 0x44, 0x40, 0x54, 0x7E, 0x48, 0x88, 0x40, 0x09, 0x7E, 0xFF, 0x82, 0x08, 0x12, 0x49, 0xFA, 0x49, 0x02, 0x7F, 0x0A, 0x01, 0x04, 0x22, 0x10, 0x14, 0x24, 0x7F, 0x7E, 0x14, 0x44, 0x7F, 0x54, 0x15, 0x44, 0xFF, 0xD4, 0x15, 0x48, 0x7F, 0x40, 0x14, 0x7E, 0x36, 0x02, 0x55, 0x12, 0x94, 0xFA, 0x14, 0x02, 0x14, 0x0A, 0x14, 0x04, 0x00, 0x10, 0x77, 0x24, 0x55, 0x7E, 0x55, 0x44, 0x55, 0x54, 0x55, 0x44, 0x22, 0x54, 0x55, 0x48, 0x10, 0x40, 0xFF, 0xFE, 0x22, 0x02, 0x22, 0x12, 0x14, 0xFA, 0x08, 0x02, 0x16, 0x0A, 0x61, 0x04, 0x08, 0x10, 0x05, 0x24, 0x7F, 0xFE, 0x52, 0x44, 0x52, 0x54, 0x52, 0x44, 0x7F, 0xD4, 0x52, 0x48, 0x52, 0x40, 0x5E, 0x7E, 0x40, 0x02, 0x52, 0x12, 0x52, 0xFA, 0x6D, 0x02, 0x80, 0x0A, 0x00, 0x04, 0x00, 0x20, 0xEE, 0x48, 0x22, 0xFC, 0xAA, 0x88, 0x66, 0xA8, 0xAA, 0x88, 0x32, 0xA8, 0x10, 0x90, 0x28, 0x84, 0x46, 0xFE, 0x9A, 0x04, 0x60, 0x24, 0x19, 0xF4, 0x64, 0x04, 0x08, 0x14, 0x70, 0x08, 0x08, 0x10, 0x09, 0x24, 0xFF, 0xFE, 0x55, 0x44, 0x22, 0x54, 0x41, 0x44, 0xBE, 0xD4, 0x22, 0x48, 0x3E, 0x40, 0x22, 0x7E, 0x3E, 0x02, 0x08, 0x12, 0x2A, 0xFA, 0x49, 0x02, 0x88, 0x8A, 0x18, 0x04, 0x14, 0x10, 0x14, 0x24, 0x3F, 0x7E, 0x24, 0x44, 0x64, 0x54, 0xBF, 0x44, 0x24, 0x54, 0x24, 0x48, 0x3F, 0x40, 0x24, 0x7E, 0x24, 0x02, 0x3F, 0x12, 0x20, 0xFA, 0x55, 0x02, 0x54, 0x8A, 0x80, 0x84, 0x08, 0x28, 0xFF, 0xA4, 0x22, 0xFE, 0x3E, 0x20, 0x2A, 0x52, 0x49, 0x92, 0x9A, 0x0E, 0x1F, 0xE0, 0x12, 0x20, 0x11, 0x20, 0x10, 0x44, 0x1F, 0xFE, 0x00, 0x04, 0x7F, 0xE4, 0x00, 0x14, 0x00, 0x08, 0x02, 0x10, 0x7F, 0x24, 0x14, 0x7E, 0x08, 0x44, 0xFF, 0x54, 0x1A, 0x44, 0x28, 0x54, 0x49, 0x48, 0x7F, 0xC0, 0x55, 0x7E, 0x63, 0x02, 0x5D, 0x12, 0x55, 0xFA, 0x5D, 0x02, 0x41, 0x0A, 0x43, 0x04, 0x10, 0x88, 0x23, 0xFE, 0x7C, 0xA8, 0x45, 0xFC, 0x57, 0x20, 0x45, 0xFC, 0x55, 0x20, 0x49, 0xFC, 0x41, 0x20, 0x7F, 0xFE, 0x02, 0x00, 0x12, 0xF8, 0xFA, 0x48, 0x02, 0x30, 0x0A, 0x48, 0x05, 0x86, 0x00, 0x80, 0x7C, 0xF8, 0x45, 0x50, 0x7C, 0x20, 0x10, 0x50, 0x5D, 0xFE, 0x50, 0x88, 0xFE, 0xF8, 0x04, 0x00, 0x1F, 0xE0, 0x12, 0x20, 0x11, 0x44, 0x1F, 0xFE, 0x00, 0x04, 0x7F, 0xE4, 0x00, 0x18, 0x22, 0x10, 0xFF, 0xA4, 0x22, 0x7E, 0x77, 0x44, 0x55, 0x54, 0x77, 0x44, 0x24, 0x54, 0x3F, 0x48, 0x64, 0x40, 0xBF, 0x7E, 0x24, 0x02, 0x3F, 0x12, 0x24, 0xFA, 0x24, 0x02, 0x3F, 0x8A, 0x20, 0x04, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x00, 0x50, 0x00, 0x50, 0x00, 0x10, 0x00, 0x30, 0x00, 0x50, 0x00, 0xD0, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x04, 0x5F, 0xFE, 0x50, 0x40, 0x10, 0x40, 0x30, 0x40, 0x50, 0x40, 0xD0, 0x40, 0x10, 0x40, 0x20, 0x40, 0x20, 0x40, 0x41, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x04, 0x57, 0xFE, 0x50, 0x84, 0x10, 0x84, 0x30, 0x84, 0x50, 0x84, 0xD0, 0xA4, 0x10, 0x94, 0x20, 0x88, 0x20, 0x80, 0x40, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x04, 0x5F, 0xFE, 0x51, 0x00, 0x11, 0x08, 0x31, 0xFC, 0x51, 0x08, 0xD1, 0x08, 0x12, 0x08, 0x22, 0x08, 0x24, 0x08, 0x48, 0x50, 0x10, 0x20, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x40, 0x50, 0x44, 0x54, 0x44, 0x14, 0x44, 0x34, 0x44, 0x54, 0x44, 0xD4, 0x44, 0x14, 0x44, 0x24, 0x44, 0x27, 0xFC, 0x40, 0x04, 0x00, 0x04, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x97, 0xFC, 0x54, 0x00, 0x54, 0x40, 0x14, 0x44, 0x35, 0xFE, 0x54, 0x44, 0xD4, 0x44, 0x14, 0x44, 0x28, 0x84, 0x28, 0x84, 0x51, 0x28, 0x02, 0x10, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x80, 0x90, 0xA0, 0x50, 0x94, 0x5F, 0xFE, 0x10, 0xA0, 0x30, 0xA0, 0x51, 0x20, 0xD1, 0x20, 0x11, 0x20, 0x22, 0x22, 0x22, 0x22, 0x44, 0x1E, 0x08, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x12, 0x10, 0x92, 0x10, 0x52, 0x14, 0x5F, 0xFE, 0x12, 0x10, 0x32, 0x10, 0x52, 0x10, 0xD3, 0xF0, 0x12, 0x10, 0x22, 0x10, 0x22, 0x10, 0x43, 0xF0, 0x02, 0x10, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x04, 0x5F, 0xFE, 0x50, 0x08, 0x10, 0x08, 0x33, 0xC8, 0x52, 0x48, 0xD2, 0x48, 0x12, 0x48, 0x23, 0xC8, 0x20, 0x08, 0x40, 0x28, 0x00, 0x10, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x08, 0x53, 0xFC, 0x52, 0x08, 0x12, 0x08, 0x33, 0xF8, 0x52, 0x08, 0xD2, 0x08, 0x13, 0xF8, 0x22, 0x08, 0x20, 0x00, 0x4F, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x11, 0x00, 0x91, 0x08, 0x51, 0xFC, 0x52, 0x80, 0x12, 0x90, 0x34, 0xF8, 0x58, 0x80, 0xD0, 0x88, 0x10, 0xFC, 0x20, 0x80, 0x20, 0x80, 0x40, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x12, 0x00, 0x92, 0x08, 0x53, 0xFC, 0x54, 0x08, 0x1B, 0xC8, 0x32, 0x48, 0x52, 0x48, 0xD3, 0xC8, 0x12, 0x28, 0x22, 0x12, 0x22, 0x02, 0x41, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x90, 0x80, 0x50, 0x48, 0x57, 0xFC, 0x10, 0x40, 0x30, 0x40, 0x50, 0x50, 0xD3, 0xF8, 0x10, 0x40, 0x20, 0x40, 0x20, 0x44, 0x4F, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x80, 0x90, 0x44, 0x5F, 0xFE, 0x50, 0x80, 0x11, 0x00, 0x32, 0x10, 0x57, 0xE0, 0xD0, 0x40, 0x10, 0x80, 0x21, 0x10, 0x22, 0x08, 0x47, 0xFC, 0x00, 0x04, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x12, 0x00, 0x92, 0x00, 0x52, 0x04, 0x5F, 0xBE, 0x12, 0xA4, 0x32, 0xA4, 0x52, 0xA4, 0xD2, 0xA4, 0x12, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x4A, 0xBC, 0x11, 0x24, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x9F, 0xFC, 0x51, 0x20, 0x51, 0x20, 0x19, 0x24, 0x35, 0x24, 0x55, 0x28, 0xD5, 0x28, 0x15, 0x30, 0x21, 0x20, 0x21, 0x24, 0x5F, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0xBF, 0xFE, 0x60, 0x80, 0x2F, 0xF8, 0x20, 0x88, 0x6F, 0xF8, 0xA8, 0x80, 0x2F, 0xFC, 0x20, 0x84, 0x41, 0x54, 0x41, 0x48, 0x86, 0x20, 0x18, 0x1C, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x90, 0x44, 0x5F, 0xFE, 0x50, 0x40, 0x10, 0x48, 0x37, 0xFC, 0x50, 0x00, 0xD0, 0x80, 0x15, 0x64, 0x25, 0x2A, 0x29, 0x0A, 0x40, 0xF8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x11, 0x10, 0x97, 0xFC, 0x51, 0x10, 0x51, 0x10, 0x17, 0xFE, 0x34, 0x82, 0x58, 0x84, 0xD3, 0xF8, 0x10, 0x88, 0x20, 0x88, 0x21, 0x08, 0x42, 0x28, 0x0C, 0x10, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x97, 0xFC, 0x50, 0x80, 0x53, 0xF0, 0x11, 0x10, 0x31, 0x14, 0x5F, 0xFE, 0xD0, 0x00, 0x13, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x43, 0xF8, 0x02, 0x08, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x92, 0x48, 0x52, 0x48, 0x52, 0x48, 0x15, 0x54, 0x38, 0xE2, 0x50, 0x48, 0xD7, 0xFC, 0x10, 0x40, 0x20, 0x40, 0x20, 0x44, 0x4F, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x12, 0x00, 0x91, 0xFC, 0x55, 0x44, 0x54, 0x44, 0x17, 0xF4, 0x34, 0x44, 0x54, 0xC4, 0xD4, 0xE4, 0x15, 0x54, 0x26, 0x4C, 0x24, 0x44, 0x44, 0x54, 0x04, 0x08, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x20, 0x94, 0x20, 0x52, 0xA8, 0x52, 0xA4, 0x18, 0xA2, 0x35, 0x2A, 0x50, 0x28, 0xD2, 0x30, 0x14, 0x10, 0x2C, 0x20, 0x24, 0x40, 0x44, 0x80, 0x03, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x9F, 0xFC, 0x50, 0x80, 0x53, 0x08, 0x1C, 0x98, 0x35, 0x60, 0x52, 0x40, 0xDD, 0xE0, 0x11, 0x50, 0x22, 0x4E, 0x2C, 0x44, 0x41, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x11, 0x20, 0x91, 0x24, 0x5F, 0x3E, 0x51, 0x20, 0x11, 0x28, 0x3F, 0x3C, 0x51, 0x20, 0xD1, 0x24, 0x1F, 0x3E, 0x21, 0x20, 0x21, 0x20, 0x41, 0x20, 0x01, 0x20, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x97, 0xFC, 0x54, 0x44, 0x54, 0x44, 0x17, 0xFC, 0x34, 0x44, 0x55, 0xF4, 0xD5, 0x14, 0x15, 0x14, 0x25, 0xF4, 0x24, 0x04, 0x47, 0xFC, 0x04, 0x04, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x93, 0xF8, 0x50, 0x40, 0x5F, 0xFE, 0x11, 0x50, 0x36, 0x4C, 0x50, 0x80, 0xDF, 0xFE, 0x11, 0x10, 0x23, 0x20, 0x20, 0xC0, 0x41, 0x30, 0x06, 0x08, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x80, 0xAC, 0xB8, 0x68, 0x88, 0x28, 0x88, 0x2E, 0xB8, 0x68, 0x88, 0xA8, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x41, 0x40, 0x42, 0x20, 0x8C, 0x1E, 0x30, 0x04, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x14, 0x00, 0x92, 0x10, 0x50, 0x10, 0x5F, 0xE8, 0x12, 0x28, 0x33, 0xA4, 0x52, 0xC6, 0xD2, 0xB0, 0x14, 0x88, 0x24, 0xA0, 0x2A, 0x98, 0x51, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x24, 0x10, 0xA2, 0x20, 0x6F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x68, 0x88, 0xAF, 0xF8, 0x20, 0x80, 0x3F, 0xFE, 0x40, 0x80, 0x40, 0x80, 0x80, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x11, 0x00, 0x9F, 0xE4, 0x51, 0x04, 0x57, 0xD4, 0x15, 0x54, 0x35, 0x54, 0x57, 0xD4, 0xD1, 0x14, 0x13, 0x94, 0x25, 0x54, 0x29, 0x44, 0x41, 0x14, 0x01, 0x08, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x80, 0xAF, 0xF8, 0x64, 0x90, 0x22, 0xA4, 0x3F, 0xFE, 0x62, 0x20, 0xA4, 0x90, 0x28, 0x8E, 0x37, 0xF4, 0x40, 0x80, 0x40, 0x88, 0x9F, 0xFC, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x12, 0x00, 0x92, 0xF8, 0x54, 0x08, 0x55, 0xFE, 0x1C, 0x40, 0x34, 0xFC, 0x55, 0x20, 0xD4, 0x24, 0x17, 0xFE, 0x24, 0x20, 0x24, 0x50, 0x44, 0x8E, 0x07, 0x04, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x11, 0x20, 0x9F, 0xFC, 0x50, 0x80, 0x57, 0xF8, 0x10, 0x80, 0x3F, 0xFE, 0x51, 0x00, 0xD2, 0x08, 0x17, 0xFC, 0x28, 0x40, 0x30, 0x44, 0x47, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x40, 0x92, 0x48, 0x51, 0x50, 0x57, 0xFC, 0x11, 0x50, 0x36, 0x4C, 0x50, 0x80, 0xDF, 0xFE, 0x11, 0x10, 0x23, 0x20, 0x20, 0xC0, 0x41, 0x30, 0x06, 0x08, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x10, 0x00, 0x97, 0xBC, 0x54, 0x84, 0x54, 0x84, 0x17, 0xBC, 0x34, 0x00, 0x57, 0xFC, 0xD4, 0x24, 0x14, 0x28, 0x27, 0x90, 0x24, 0x28, 0x44, 0x46, 0x05, 0x84, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x00, 0xAF, 0xF8, 0x64, 0x90, 0x22, 0x20, 0x21, 0xC0, 0x62, 0x20, 0xBC, 0x9E, 0x27, 0xF4, 0x24, 0x90, 0x47, 0xF0, 0x40, 0x88, 0x9F, 0xFC, 0x00, 0x04, 0x00, 0x80, 0x00, 0x44, 0x1F, 0xFE, 0x12, 0x00, 0x9F, 0xFC, 0x52, 0x24, 0x5F, 0xA4, 0x12, 0x24, 0x3F, 0xD4, 0x52, 0x88, 0xD1, 0x00, 0x12, 0xC0, 0x2A, 0x54, 0x2A, 0x12, 0x51, 0xF2, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x20, 0xBF, 0xFC, 0x62, 0x20, 0x2F, 0xF8, 0x28, 0x08, 0x6F, 0xF8, 0xA8, 0x08, 0x2F, 0xF8, 0x20, 0x80, 0x5F, 0xFE, 0x41, 0x40, 0x86, 0x20, 0x18, 0x1C, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x24, 0x00, 0xAF, 0x78, 0x69, 0x48, 0x2D, 0x48, 0x2B, 0x46, 0x7F, 0x80, 0xA9, 0x78, 0x2D, 0x48, 0x2B, 0x28, 0x49, 0x10, 0x49, 0x28, 0x93, 0x46, 0x20, 0x84, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x28, 0x88, 0xA4, 0x90, 0x69, 0x48, 0x22, 0x20, 0x24, 0x10, 0x6F, 0xFE, 0xB4, 0x14, 0x27, 0xF0, 0x24, 0x10, 0x47, 0xF0, 0x44, 0x10, 0x84, 0x50, 0x04, 0x20, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x20, 0xAF, 0xF8, 0x62, 0x20, 0x3F, 0xFE, 0x20, 0x88, 0x6F, 0xF8, 0xA8, 0x88, 0x2F, 0xF8, 0x28, 0x88, 0x4F, 0xF8, 0x42, 0x20, 0x84, 0x18, 0x08, 0x08, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x00, 0x3F, 0xFC, 0xA1, 0x40, 0x6F, 0xF8, 0x29, 0x48, 0x2F, 0xF8, 0x60, 0x00, 0xAF, 0xF8, 0x20, 0x00, 0x3F, 0xFE, 0x44, 0x90, 0x48, 0x8C, 0x92, 0x84, 0x01, 0x00, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x08, 0x2F, 0xFC, 0xA8, 0x88, 0x6F, 0xF8, 0x28, 0x88, 0x2F, 0xF8, 0x61, 0x10, 0xAF, 0xE0, 0x21, 0x08, 0x2F, 0xFC, 0x44, 0x90, 0x48, 0x8C, 0x92, 0x84, 0x01, 0x00, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x00, 0x2F, 0x78, 0xA9, 0x48, 0x6B, 0x58, 0x2B, 0x58, 0x26, 0x30, 0x69, 0x48, 0xA1, 0x00, 0x3F, 0xFE, 0x22, 0x20, 0x46, 0x40, 0x41, 0xC0, 0x82, 0x30, 0x0C, 0x10, 0x00, 0x80, 0x3F, 0xFE, 0x24, 0x40, 0x27, 0x78, 0xA9, 0x48, 0x75, 0x50, 0x2A, 0x20, 0x24, 0x18, 0x6B, 0xE6, 0xB0, 0x00, 0x2F, 0xF8, 0x20, 0x80, 0x44, 0x90, 0x44, 0x8C, 0x8A, 0x84, 0x01, 0x00, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x20, 0x2F, 0x3C, 0xA9, 0x68, 0x6A, 0x90, 0x2C, 0x28, 0x2A, 0xC6, 0x69, 0x38, 0xA9, 0x50, 0x2D, 0x7C, 0x2A, 0x90, 0x48, 0x7C, 0x48, 0x10, 0x89, 0xFE, 0x08, 0x00, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x40, 0x2E, 0x78, 0xAA, 0x90, 0x6A, 0xFC, 0x2C, 0x04, 0x2A, 0xFC, 0x69, 0x04, 0xA9, 0xFC, 0x2D, 0x20, 0x2A, 0x10, 0x49, 0x44, 0x49, 0x4A, 0x8A, 0x4A, 0x08, 0x38, 0x00, 0x80, 0x3F, 0xFC, 0x20, 0x00, 0xAF, 0x78, 0x69, 0x48, 0x25, 0x28, 0x25, 0xA8, 0x69, 0x48, 0xA6, 0x70, 0x28, 0x8E, 0x37, 0x24, 0x20, 0x40, 0x47, 0x90, 0x40, 0x20, 0x80, 0xC0, 0x0F, 0x00, 0x00, 0x80, 0x3F, 0xFE, 0x21, 0x00, 0x20, 0x80, 0xBC, 0x1E, 0x6B, 0xE8, 0x28, 0x48, 0x29, 0x48, 0x69, 0x48, 0xBD, 0x5C, 0x28, 0x88, 0x29, 0x48, 0x4A, 0x28, 0x4E, 0x08, 0xB8, 0x3E, 0x00, 0x00, 0x00, 0x80, 0x3F, 0xFE, 0x22, 0x20, 0x22, 0x3C, 0xAF, 0xA4, 0x62, 0x48, 0x2F, 0xBE, 0x2A, 0xA2, 0x6A, 0xAA, 0xAF, 0xAA, 0x22, 0x2A, 0x27, 0x2A, 0x4A, 0xAA, 0x52, 0x10, 0x82, 0x14, 0x02, 0x22, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x80, 0x2F, 0xF8, 0xA2, 0x20, 0x7F, 0xFE, 0x20, 0x00, 0x2F, 0xF8, 0x68, 0x08, 0xAF, 0xF8, 0x28, 0x08, 0x2F, 0xF8, 0x40, 0x80, 0x4A, 0x44, 0x92, 0x14, 0x21, 0xF0, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x00, 0x2F, 0xDC, 0xA8, 0x54, 0x6F, 0xD4, 0x28, 0x14, 0x2A, 0xA6, 0x6F, 0xC0, 0xAA, 0xBC, 0x2A, 0x94, 0x2F, 0xD4, 0x50, 0x08, 0x52, 0x94, 0xA4, 0x62, 0x00, 0x00, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x20, 0x20, 0xAF, 0x14, 0x69, 0xFE, 0x29, 0x04, 0x2F, 0x08, 0x68, 0xFE, 0xAF, 0x10, 0x39, 0x10, 0x29, 0x7C, 0x49, 0x10, 0x4F, 0x10, 0x89, 0x10, 0x00, 0x10, 0x00, 0x80, 0x3F, 0xFE, 0x22, 0x00, 0xBF, 0xFE, 0x62, 0x10, 0x2F, 0xBE, 0x28, 0xA2, 0x6F, 0xAA, 0xA8, 0xAA, 0x2F, 0xAA, 0x28, 0xAA, 0x2F, 0xAA, 0x48, 0xAA, 0x5F, 0xD0, 0x85, 0x14, 0x08, 0xA2, 0x00, 0x80, 0x3F, 0xFE, 0x20, 0x00, 0x2F, 0x78, 0xAD, 0x68, 0x6B, 0x58, 0x2F, 0x78, 0x22, 0x40, 0x67, 0xFC, 0xAC, 0x40, 0x37, 0xF8, 0x24, 0x40, 0x47, 0xF8, 0x44, 0x40, 0x87, 0xFC, 0x04, 0x00, 0x20, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x00, 0x44, 0xFE, 0x64, 0x01, 0x54, 0x05, 0x54, 0x44, 0x44, 0x24, 0xCC, 0x29, 0x54, 0x2A, 0x64, 0x08, 0x44, 0x16, 0x44, 0xF8, 0x44, 0x01, 0x54, 0x00, 0x88, 0x20, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x00, 0x20, 0xFE, 0x24, 0x01, 0xFE, 0x05, 0x24, 0x45, 0x24, 0x25, 0x24, 0x29, 0xFC, 0x28, 0x20, 0x08, 0x70, 0x16, 0xA8, 0xF9, 0x26, 0x02, 0x24, 0x00, 0x20, 0x02, 0x00, 0x41, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x88, 0x24, 0x12, 0x10, 0x22, 0x08, 0x07, 0xF0, 0x08, 0x10, 0x14, 0x20, 0x22, 0x40, 0x01, 0x80, 0x01, 0x00, 0x06, 0x00, 0x18, 0x00, 0x60, 0x00, 0x02, 0x00, 0x41, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x90, 0x14, 0x2F, 0xF8, 0x00, 0x10, 0x00, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x10, 0x08, 0x1F, 0xFC, 0x00, 0x08, 0x00, 0x08, 0x00, 0x50, 0x00, 0x20, 0x02, 0x00, 0x41, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x91, 0x14, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x10, 0x01, 0x02, 0x01, 0x02, 0x00, 0xFE, 0x02, 0x00, 0x41, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x90, 0x14, 0x00, 0x70, 0x1F, 0x80, 0x02, 0x00, 0x01, 0x20, 0x3F, 0xF0, 0x00, 0x40, 0x01, 0x80, 0x0E, 0x00, 0x30, 0x00, 0x48, 0x06, 0x07, 0xFC, 0x02, 0x00, 0x41, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x90, 0x14, 0x04, 0x40, 0x08, 0x48, 0x11, 0xFC, 0x7E, 0x48, 0x04, 0x48, 0x08, 0x48, 0x14, 0x48, 0x22, 0x88, 0x7E, 0x88, 0x01, 0x28, 0x02, 0x10, 0x02, 0x00, 0x41, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x92, 0x94, 0x02, 0x80, 0x22, 0x90, 0x12, 0x98, 0x16, 0xA0, 0x0A, 0xC0, 0x12, 0xA0, 0x62, 0x98, 0x04, 0x8A, 0x04, 0x82, 0x18, 0x7E, 0x60, 0x00, 0x41, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x91, 0x14, 0x2F, 0xE8, 0x01, 0x00, 0x3F, 0xFC, 0x08, 0x84, 0x04, 0x88, 0x12, 0x80, 0x08, 0x84, 0xFF, 0xFE, 0x01, 0x40, 0x02, 0x30, 0x0C, 0x18, 0x30, 0x08, 0x41, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x90, 0x14, 0x3F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x60, 0x19, 0x1E, 0x61, 0x08, 0x01, 0x00, 0x41, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x91, 0x14, 0x22, 0x88, 0x04, 0x40, 0x0F, 0xF0, 0x30, 0x0E, 0xDE, 0x14, 0x12, 0x90, 0x1E, 0x90, 0x12, 0x90, 0x1E, 0x90, 0x12, 0x90, 0x12, 0x10, 0x16, 0x30, 0x41, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x92, 0x14, 0x01, 0x00, 0x3F, 0xF8, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x41, 0x00, 0x7F, 0xFE, 0x49, 0x22, 0x91, 0x14, 0x29, 0x28, 0x05, 0x40, 0x7F, 0xFC, 0x09, 0x20, 0x31, 0x18, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x20, 0x0E, 0x40, 0x01, 0x80, 0x06, 0x70, 0x38, 0x08, 0x41, 0x00, 0x7F, 0xFE, 0x48, 0x22, 0x90, 0x14, 0x26, 0x18, 0x38, 0xE8, 0x2C, 0xA8, 0x2C, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, 0x29, 0xA8, 0x29, 0xA8, 0x34, 0xA4, 0x5D, 0x54, 0x81, 0x72, 0x02, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x08, 0x00, 0x10, 0x00, 0x34, 0x00, 0x58, 0x00, 0x94, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x00, 0x04, 0xFD, 0x44, 0x08, 0xA8, 0x10, 0xA8, 0x34, 0x88, 0x58, 0x50, 0x94, 0x50, 0x10, 0x20, 0x10, 0x50, 0x10, 0x90, 0x11, 0x08, 0x12, 0x06, 0x14, 0x04, 0x20, 0x20, 0x10, 0x20, 0x10, 0x20, 0x00, 0x24, 0xFD, 0xFE, 0x09, 0x24, 0x11, 0x24, 0x35, 0x24, 0x59, 0x54, 0x95, 0x4C, 0x11, 0x8C, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x14, 0x11, 0x08, 0x20, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x00, 0x20, 0xFC, 0x20, 0x08, 0x20, 0x10, 0x24, 0x35, 0xFE, 0x58, 0x20, 0x94, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x00, 0x20, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x00, 0xA0, 0xFD, 0x10, 0x0A, 0x8E, 0x14, 0x64, 0x30, 0x20, 0x54, 0x00, 0x9B, 0xF8, 0x14, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x10, 0x40, 0x10, 0x80, 0x20, 0x40, 0x10, 0x40, 0x10, 0x40, 0x00, 0x48, 0xFD, 0xFC, 0x08, 0x48, 0x10, 0x48, 0x34, 0x48, 0x5B, 0xFE, 0x94, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x10, 0xA0, 0x11, 0x10, 0x12, 0x0E, 0x14, 0x04, 0x20, 0x20, 0x10, 0x20, 0x11, 0x24, 0x00, 0xAC, 0xFC, 0xB0, 0x08, 0x20, 0x11, 0xFC, 0x34, 0x20, 0x58, 0x20, 0x94, 0x24, 0x13, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x20, 0x20, 0x10, 0x20, 0x11, 0x24, 0x00, 0xAC, 0xFC, 0xB0, 0x08, 0x24, 0x11, 0xFE, 0x34, 0x04, 0x58, 0x04, 0x94, 0x04, 0x11, 0xFC, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x13, 0xFC, 0x10, 0x04, 0x20, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x00, 0x90, 0xFD, 0x08, 0x0A, 0x0E, 0x15, 0xF4, 0x30, 0x00, 0x54, 0x08, 0x99, 0xFC, 0x15, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x20, 0x80, 0x10, 0x88, 0x10, 0xFC, 0x01, 0x88, 0xFD, 0x50, 0x0A, 0x20, 0x10, 0x50, 0x34, 0x88, 0x5B, 0x06, 0x95, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x20, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x01, 0x08, 0xFD, 0xF8, 0x09, 0x08, 0x11, 0x08, 0x35, 0xF8, 0x59, 0x44, 0x95, 0x48, 0x11, 0x30, 0x11, 0x20, 0x11, 0x10, 0x11, 0x4E, 0x11, 0x84, 0x11, 0x00, 0x40, 0x20, 0x24, 0x20, 0x22, 0x28, 0x02, 0xFC, 0xF8, 0x40, 0x10, 0x50, 0x26, 0x90, 0x2A, 0xFC, 0x72, 0x10, 0xAA, 0x14, 0x22, 0xFE, 0x22, 0x10, 0x22, 0x10, 0x25, 0x16, 0x28, 0xFC, 0x20, 0x00, 0x20, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x01, 0x04, 0xFD, 0x04, 0x09, 0xFC, 0x10, 0x00, 0x35, 0xFC, 0x58, 0x20, 0x94, 0x20, 0x11, 0xFC, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x17, 0xFE, 0x10, 0x00, 0x20, 0x40, 0x10, 0x40, 0x10, 0xA0, 0x01, 0x10, 0xFD, 0x10, 0x0A, 0x28, 0x15, 0xF6, 0x34, 0x00, 0x5A, 0x48, 0x95, 0x48, 0x11, 0x48, 0x11, 0x50, 0x11, 0x50, 0x10, 0x24, 0x17, 0xFE, 0x10, 0x00, 0x22, 0x04, 0x11, 0xBE, 0x10, 0x84, 0x02, 0x04, 0xFE, 0x04, 0x0A, 0xF4, 0x12, 0x94, 0x36, 0x94, 0x5A, 0xF4, 0x96, 0x94, 0x12, 0x94, 0x12, 0xF4, 0x12, 0x04, 0x12, 0x04, 0x12, 0x14, 0x12, 0x08, 0x20, 0x40, 0x10, 0x40, 0x10, 0x48, 0x03, 0xFC, 0xFC, 0x40, 0x09, 0xF8, 0x10, 0x40, 0x37, 0xFE, 0x58, 0x44, 0x94, 0xA8, 0x11, 0x30, 0x13, 0x20, 0x15, 0x10, 0x11, 0x48, 0x11, 0x8E, 0x11, 0x04, 0x20, 0x80, 0x10, 0x80, 0x10, 0x88, 0x03, 0xF8, 0xFC, 0x90, 0x08, 0xA4, 0x13, 0xFE, 0x34, 0x40, 0x59, 0xF8, 0x95, 0x08, 0x13, 0x08, 0x15, 0xF8, 0x19, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x20, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x01, 0xF8, 0xFD, 0x08, 0x09, 0x08, 0x11, 0xF8, 0x34, 0x84, 0x58, 0xFE, 0x95, 0x54, 0x12, 0x94, 0x14, 0xA4, 0x11, 0x24, 0x12, 0x44, 0x10, 0xA8, 0x11, 0x10, 0x20, 0x20, 0x10, 0x44, 0x11, 0xFE, 0x01, 0x24, 0xFD, 0x24, 0x09, 0xFC, 0x11, 0x24, 0x35, 0x44, 0x59, 0xFC, 0x94, 0xA0, 0x11, 0x24, 0x17, 0xFE, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x20, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x01, 0x04, 0xFD, 0xFC, 0x09, 0x20, 0x11, 0x24, 0x35, 0xFE, 0x59, 0x20, 0x95, 0x24, 0x11, 0xFE, 0x12, 0x84, 0x12, 0x84, 0x14, 0x84, 0x18, 0xFC, 0x10, 0x84, 0x40, 0x00, 0x2F, 0xFC, 0x20, 0x84, 0x05, 0x28, 0xFA, 0x10, 0x15, 0x28, 0x20, 0xC4, 0x68, 0x00, 0xB7, 0xBC, 0x28, 0x84, 0x24, 0xC4, 0x25, 0x28, 0x22, 0x10, 0x25, 0x28, 0x28, 0xCE, 0x30, 0x84, 0x21, 0x10, 0x11, 0x14, 0x17, 0xFE, 0x01, 0x10, 0xFC, 0x40, 0x08, 0xA0, 0x11, 0x10, 0x3A, 0x08, 0x55, 0xF6, 0x98, 0x00, 0x13, 0xF8, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x20, 0x90, 0x10, 0x94, 0x13, 0x98, 0x00, 0x90, 0xFC, 0x92, 0x0B, 0x8E, 0x10, 0x08, 0x35, 0xFC, 0x59, 0x08, 0x95, 0xF8, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0x08, 0x11, 0x28, 0x11, 0x10, 0x21, 0x04, 0x11, 0x7E, 0x11, 0x44, 0x01, 0x44, 0xFA, 0x44, 0x0A, 0x7C, 0x16, 0x10, 0x3A, 0x10, 0x52, 0xFE, 0x9A, 0x10, 0x12, 0x38, 0x12, 0x54, 0x12, 0x54, 0x12, 0x92, 0x12, 0x10, 0x12, 0x10, 0x20, 0x40, 0x12, 0x48, 0x11, 0x50, 0x00, 0x44, 0xFF, 0xFE, 0x09, 0x50, 0x12, 0x48, 0x34, 0x46, 0x58, 0x80, 0x97, 0xFE, 0x19, 0x10, 0x12, 0x10, 0x11, 0xA0, 0x10, 0x40, 0x11, 0xB0, 0x16, 0x0C, 0x40, 0x80, 0x20, 0x44, 0x27, 0xFE, 0x04, 0x04, 0xFC, 0x04, 0x17, 0xFC, 0x24, 0x00, 0x6C, 0x04, 0xB7, 0xFE, 0x2E, 0x94, 0x26, 0x94, 0x2B, 0xFC, 0x2A, 0x94, 0x32, 0x94, 0x22, 0x94, 0x22, 0x08, 0x20, 0x90, 0x12, 0x90, 0x12, 0x94, 0x02, 0xBE, 0xFE, 0xA0, 0x0A, 0xD0, 0x12, 0x88, 0x34, 0x80, 0x58, 0x04, 0x97, 0xFE, 0x12, 0x94, 0x12, 0x94, 0x12, 0x94, 0x12, 0x94, 0x17, 0xFE, 0x10, 0x00, 0x40, 0x3C, 0x27, 0xE0, 0x24, 0x3C, 0x04, 0x20, 0xFD, 0xFE, 0x15, 0x22, 0x25, 0xF8, 0x6D, 0x24, 0xB5, 0x1C, 0x2D, 0x00, 0x25, 0x78, 0x25, 0x48, 0x29, 0x48, 0x2A, 0x4A, 0x34, 0x8A, 0x21, 0x06, 0x40, 0x04, 0x2F, 0xBE, 0x20, 0x84, 0x04, 0xA4, 0xFA, 0x94, 0x12, 0x94, 0x24, 0xA4, 0x68, 0x48, 0xB3, 0xFC, 0x2A, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x22, 0x08, 0x23, 0xF8, 0x22, 0x08, 0x40, 0x04, 0x2F, 0x7E, 0x21, 0x44, 0x01, 0x44, 0xF9, 0x44, 0x17, 0x7C, 0x24, 0x10, 0x6C, 0x7C, 0xB7, 0x54, 0x29, 0x54, 0x21, 0x54, 0x21, 0x7C, 0x21, 0x10, 0x21, 0x14, 0x2A, 0xFE, 0x24, 0x02, 0x43, 0xF8, 0x20, 0x40, 0x2F, 0xFE, 0x08, 0x42, 0xFB, 0x5C, 0x10, 0x40, 0x23, 0x58, 0x68, 0x44, 0xB7, 0xFE, 0x28, 0x80, 0x27, 0xFC, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xA4, 0x24, 0xB4, 0x24, 0x08, 0x42, 0xA8, 0x22, 0x48, 0x2F, 0xBE, 0x02, 0xA8, 0xF7, 0x5C, 0x2A, 0xAA, 0x22, 0x08, 0x77, 0xFE, 0xA1, 0x10, 0x33, 0xF8, 0x24, 0x44, 0x29, 0xF2, 0x20, 0x40, 0x27, 0xFC, 0x20, 0x40, 0x20, 0xC0, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFC, 0x01, 0x08, 0x01, 0x10, 0x09, 0x00, 0x09, 0x00, 0x09, 0x10, 0x09, 0xF8, 0x11, 0x00, 0x11, 0x00, 0x19, 0x00, 0x25, 0x00, 0x23, 0x00, 0x41, 0x86, 0x80, 0x7C, 0x7F, 0xFC, 0x01, 0x08, 0x09, 0x00, 0x09, 0xF0, 0x09, 0x00, 0x15, 0x06, 0x23, 0xFC, 0xC0, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x00, 0x20, 0x7F, 0x20, 0x52, 0x20, 0x91, 0xFE, 0x7D, 0x22, 0x11, 0x24, 0x29, 0x20, 0x29, 0xFC, 0x7D, 0x88, 0x09, 0x50, 0x09, 0x20, 0xFD, 0x50, 0x0A, 0x50, 0x0A, 0x88, 0x0D, 0x0E, 0x0A, 0x04, 0x10, 0x20, 0x10, 0x20, 0x28, 0x20, 0x45, 0xFE, 0xFD, 0x22, 0x45, 0x24, 0xA3, 0x20, 0x3D, 0xF8, 0x25, 0x88, 0x45, 0x50, 0xA9, 0x20, 0x11, 0x50, 0x2A, 0x50, 0x44, 0x88, 0x89, 0x0E, 0x02, 0x04, 0x00, 0x20, 0x7E, 0x20, 0x02, 0x50, 0x24, 0x50, 0x18, 0x88, 0x09, 0x46, 0xFE, 0x24, 0x0A, 0x20, 0x18, 0x08, 0x19, 0xFC, 0x28, 0x08, 0x48, 0x08, 0x88, 0x10, 0x08, 0x10, 0x28, 0x20, 0x10, 0x40, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10, 0x21, 0x0E, 0x41, 0x04, 0x01, 0x00, 0x10, 0x00, 0x10, 0x08, 0x15, 0xFC, 0xFE, 0x08, 0x10, 0x10, 0x7C, 0x20, 0x10, 0x20, 0xFE, 0x24, 0x33, 0xFE, 0x38, 0x20, 0x54, 0x20, 0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0xA0, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x14, 0x20, 0xFE, 0x20, 0x10, 0xA8, 0x10, 0xA4, 0x7C, 0xA2, 0x11, 0x22, 0xFD, 0x28, 0x30, 0x2C, 0x38, 0x10, 0x54, 0x20, 0x50, 0x40, 0x90, 0x80, 0x11, 0x00, 0x16, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x15, 0x08, 0xFF, 0x08, 0x11, 0x08, 0x7D, 0x08, 0x11, 0xF8, 0xFF, 0x00, 0x31, 0x04, 0x39, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x91, 0x04, 0x11, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x10, 0x40, 0x10, 0x40, 0x14, 0xA0, 0xFE, 0x90, 0x11, 0x08, 0x7E, 0x2E, 0x11, 0xF4, 0xFE, 0x00, 0x30, 0x08, 0x39, 0xFC, 0x55, 0x08, 0x55, 0x08, 0x91, 0x08, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x10, 0x88, 0x10, 0x88, 0x13, 0xFE, 0xFC, 0x88, 0x10, 0x88, 0x7F, 0xFE, 0x12, 0x02, 0xFC, 0x84, 0x30, 0x80, 0x3B, 0xF8, 0x54, 0x88, 0x54, 0x88, 0x91, 0x08, 0x11, 0x08, 0x12, 0x28, 0x14, 0x10, 0x10, 0x40, 0x12, 0x48, 0x11, 0x4C, 0xFD, 0x48, 0x11, 0x50, 0x7C, 0x44, 0x13, 0xFE, 0xFE, 0x04, 0x32, 0xF4, 0x3A, 0x94, 0x56, 0x94, 0x56, 0x94, 0x92, 0xF4, 0x12, 0x04, 0x12, 0x14, 0x12, 0x08, 0x10, 0x04, 0x11, 0xFE, 0x15, 0x24, 0xFF, 0x24, 0x11, 0xFC, 0x7D, 0x24, 0x11, 0x24, 0xFD, 0xFC, 0x30, 0x20, 0x3B, 0xFE, 0x56, 0x22, 0x56, 0x2A, 0x92, 0xFA, 0x12, 0x02, 0x12, 0x0A, 0x12, 0x04, 0x10, 0x40, 0x12, 0x48, 0x11, 0x50, 0xFC, 0x44, 0x13, 0xFE, 0x7D, 0x50, 0x12, 0x4C, 0xFC, 0x44, 0x38, 0x80, 0x37, 0xFE, 0x51, 0x10, 0x52, 0x10, 0x91, 0xA0, 0x10, 0x40, 0x11, 0xB0, 0x16, 0x0C, 0x11, 0x10, 0x11, 0x10, 0x17, 0xFC, 0xF9, 0x10, 0x13, 0xF8, 0x79, 0x10, 0x17, 0xFE, 0xF8, 0x40, 0x33, 0xF8, 0x3A, 0x48, 0x57, 0xF8, 0x52, 0x48, 0x9F, 0xFE, 0x12, 0x08, 0x12, 0x28, 0x12, 0x10, 0x10, 0x08, 0x13, 0xFC, 0x12, 0x00, 0xFF, 0xF8, 0x12, 0x00, 0x7F, 0xFE, 0x12, 0xA4, 0xFE, 0x98, 0x32, 0xAE, 0x32, 0xC4, 0x52, 0x08, 0x53, 0xFE, 0x94, 0x88, 0x14, 0x88, 0x18, 0x28, 0x10, 0x10, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0xFE, 0x48, 0x13, 0xFE, 0x7E, 0x58, 0x12, 0xEC, 0xFF, 0x4A, 0x32, 0x48, 0x3B, 0xFE, 0x56, 0x40, 0x52, 0xFC, 0x92, 0x84, 0x15, 0x84, 0x1A, 0xFC, 0x10, 0x84, 0x01, 0x20, 0x1F, 0xC0, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x1B, 0xE0, 0x68, 0x08, 0x07, 0xF8, 0x00, 0x00, 0x7F, 0xFC, 0x10, 0x10, 0x3F, 0xF8, 0x01, 0x04, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0xFF, 0x04, 0x25, 0xFE, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x20, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x20, 0x24, 0x20, 0x27, 0x20, 0x3C, 0x20, 0xE4, 0x20, 0x44, 0x20, 0x04, 0xA0, 0x04, 0x40, 0x02, 0x20, 0xFF, 0x20, 0x24, 0x24, 0x25, 0xFE, 0x3D, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x3D, 0x24, 0x25, 0x24, 0x27, 0xFE, 0x25, 0x04, 0x3F, 0x04, 0xE5, 0x04, 0x45, 0x04, 0x05, 0x14, 0x05, 0x08, 0x02, 0x20, 0xFF, 0x20, 0x24, 0x50, 0x24, 0x50, 0x3C, 0x88, 0x25, 0x46, 0x26, 0x24, 0x3C, 0x20, 0x25, 0xFC, 0x24, 0x04, 0x26, 0x08, 0x3C, 0x90, 0xE4, 0x60, 0x44, 0x20, 0x04, 0x10, 0x04, 0x00, 0x02, 0x40, 0xFF, 0x20, 0x24, 0x20, 0x25, 0xFE, 0x3D, 0x02, 0x26, 0x04, 0x24, 0x00, 0x3F, 0xFE, 0x24, 0x20, 0x24, 0x20, 0x27, 0x20, 0x3C, 0x20, 0xE4, 0x20, 0x44, 0x20, 0x04, 0xA0, 0x04, 0x40, 0x02, 0x08, 0xFF, 0x1C, 0x25, 0xE0, 0x24, 0x20, 0x3C, 0x24, 0x27, 0xFE, 0x24, 0x20, 0x3C, 0x20, 0x24, 0x24, 0x25, 0xFE, 0x27, 0x04, 0x3D, 0x04, 0xE5, 0x04, 0x45, 0x04, 0x05, 0xFC, 0x05, 0x04, 0x02, 0x20, 0xFF, 0x24, 0x25, 0xFE, 0x25, 0x24, 0x3D, 0xFC, 0x24, 0x20, 0x27, 0xFE, 0x3C, 0x00, 0x25, 0xFC, 0x25, 0x04, 0x27, 0x24, 0x3D, 0x24, 0xE5, 0x24, 0x44, 0x50, 0x04, 0x8C, 0x05, 0x04, 0x08, 0x40, 0x7F, 0x44, 0x08, 0x7E, 0x7F, 0x44, 0x08, 0xA8, 0xFF, 0x10, 0x10, 0x28, 0x2E, 0x46, 0x42, 0x84, 0xBF, 0xF8, 0x0C, 0x20, 0x0B, 0xA0, 0x08, 0x64, 0xFF, 0xFE, 0x00, 0x20, 0x00, 0x20, 0xFF, 0xFE, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x04, 0x0B, 0xFE, 0x7C, 0x20, 0x10, 0x44, 0x11, 0xFE, 0x11, 0x04, 0x15, 0x24, 0xFF, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x24, 0x11, 0x44, 0x10, 0x58, 0x10, 0x86, 0x13, 0x02, 0x04, 0x04, 0x0F, 0xFE, 0x70, 0x20, 0x40, 0x44, 0x41, 0xFE, 0x41, 0x04, 0x7F, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x44, 0x88, 0x58, 0x08, 0x86, 0x03, 0x02, 0x20, 0x04, 0x13, 0xFE, 0x10, 0x20, 0xFE, 0x44, 0x01, 0xFE, 0x09, 0x04, 0x7D, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x49, 0x24, 0x4D, 0x44, 0x48, 0x58, 0x80, 0x86, 0x03, 0x02, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x20, 0xFE, 0x44, 0x11, 0xFE, 0x11, 0x04, 0x7D, 0x24, 0x01, 0x24, 0x7D, 0x24, 0x45, 0x24, 0x45, 0x24, 0x45, 0x24, 0x44, 0x50, 0x7C, 0x48, 0x40, 0x86, 0x03, 0x02, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x20, 0x28, 0x44, 0x45, 0xFE, 0x81, 0x04, 0x7D, 0x24, 0x01, 0x24, 0x7D, 0x24, 0x45, 0x24, 0x45, 0x24, 0x45, 0x24, 0x44, 0x50, 0x7C, 0x48, 0x40, 0x86, 0x03, 0x02, 0x40, 0x04, 0x45, 0xFE, 0x48, 0x20, 0x70, 0x44, 0x45, 0xFE, 0x7D, 0x04, 0x01, 0x24, 0x13, 0x24, 0xF5, 0x24, 0x39, 0x24, 0x39, 0x24, 0x55, 0x24, 0x54, 0x50, 0x90, 0x48, 0x30, 0x86, 0x03, 0x02, 0x20, 0x04, 0x13, 0xFE, 0x10, 0x20, 0xFE, 0x44, 0x11, 0xFE, 0x11, 0x04, 0x25, 0x24, 0x7D, 0x24, 0x09, 0x24, 0x11, 0x24, 0x25, 0x24, 0xC9, 0x24, 0x18, 0x50, 0x24, 0x48, 0xC2, 0x86, 0x03, 0x02, 0x10, 0x04, 0x13, 0xFE, 0x28, 0x20, 0x26, 0x44, 0x53, 0xFE, 0x81, 0x04, 0x7D, 0x24, 0x05, 0x24, 0x09, 0x24, 0x7D, 0x24, 0x45, 0x24, 0x45, 0x24, 0x44, 0x50, 0x7C, 0x48, 0x44, 0x86, 0x03, 0x02, 0x01, 0x04, 0x77, 0xFE, 0x55, 0x10, 0x55, 0x24, 0x77, 0x7E, 0x00, 0x44, 0x3E, 0x54, 0x00, 0x54, 0xFF, 0x54, 0x20, 0x54, 0x3E, 0x54, 0x02, 0x54, 0x02, 0x64, 0x02, 0x28, 0x14, 0x46, 0x09, 0x82, 0x08, 0x04, 0x49, 0xFE, 0x49, 0x10, 0x49, 0x24, 0x7F, 0x7E, 0x00, 0x44, 0xFF, 0x54, 0x08, 0x54, 0x7F, 0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 0x64, 0x55, 0x28, 0x43, 0x46, 0x00, 0x82, 0x02, 0x04, 0xFF, 0xFE, 0x22, 0x10, 0x3E, 0x24, 0x22, 0x7E, 0x3E, 0x44, 0x22, 0x54, 0xFF, 0xD4, 0x02, 0x54, 0x77, 0x54, 0x11, 0x54, 0x55, 0x54, 0x22, 0x64, 0x22, 0x28, 0x55, 0x46, 0x88, 0x82, 0x24, 0x04, 0x24, 0xFE, 0xFF, 0x10, 0x24, 0x24, 0x02, 0x7E, 0xFF, 0x44, 0x24, 0x54, 0x24, 0x54, 0xFF, 0x54, 0xA5, 0x54, 0xA5, 0x54, 0xDB, 0x54, 0x81, 0x20, 0x85, 0x28, 0x82, 0x46, 0x00, 0x82, 0x00, 0x04, 0x3E, 0xFE, 0x14, 0x10, 0x08, 0x24, 0x14, 0x7E, 0x77, 0x44, 0x55, 0x54, 0x22, 0x54, 0x55, 0x54, 0x08, 0x54, 0xFF, 0xD4, 0x18, 0x54, 0x2C, 0x20, 0x4B, 0x28, 0x89, 0x46, 0x08, 0x82, 0x02, 0x04, 0x3F, 0xFE, 0x22, 0x10, 0x3E, 0x24, 0x22, 0x7E, 0x3E, 0x44, 0x08, 0x54, 0xFF, 0xD4, 0x00, 0x54, 0x3E, 0x54, 0x22, 0x54, 0x3E, 0x54, 0x08, 0x20, 0x2A, 0x28, 0x49, 0x46, 0x18, 0x82, 0x02, 0x04, 0x7F, 0xFE, 0x08, 0x10, 0xFF, 0xA4, 0x88, 0xFE, 0x6B, 0x44, 0x08, 0x54, 0x6B, 0x54, 0x08, 0x54, 0xFF, 0xD4, 0x10, 0x54, 0x7F, 0x54, 0x55, 0x20, 0x55, 0x28, 0x55, 0x46, 0x43, 0x82, 0x09, 0xFE, 0x2E, 0x20, 0x28, 0xFC, 0xFF, 0x94, 0x4A, 0x94, 0x0C, 0x28, 0x32, 0xC4, 0xDF, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x12, 0x10, 0x1F, 0xF0, 0x05, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x01, 0xF8, 0x01, 0x00, 0x3F, 0xFC, 0x20, 0x04, 0x22, 0x08, 0x22, 0x20, 0x22, 0x60, 0x22, 0x80, 0x23, 0x00, 0x26, 0x00, 0x5A, 0x04, 0x42, 0x04, 0x81, 0xFC, 0x00, 0x00, 0x01, 0x10, 0x01, 0xF8, 0x01, 0x00, 0x3F, 0xFC, 0x22, 0x04, 0x3F, 0xC8, 0x22, 0x10, 0x23, 0xF0, 0x21, 0x00, 0x20, 0x88, 0x2F, 0xFC, 0x22, 0x20, 0x41, 0x40, 0x40, 0x80, 0x83, 0x60, 0x1C, 0x1C, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x09, 0x40, 0x7F, 0xC0, 0x49, 0x40, 0x49, 0x40, 0x49, 0x40, 0x49, 0x40, 0x7F, 0x40, 0x48, 0x40, 0x09, 0x40, 0x0F, 0x42, 0xF1, 0x42, 0x40, 0x3E, 0x00, 0x00, 0x10, 0x00, 0x10, 0x10, 0x10, 0xF8, 0x14, 0x90, 0x7E, 0x90, 0x54, 0x90, 0x54, 0x90, 0x54, 0x90, 0x54, 0x90, 0x7C, 0x90, 0x50, 0x90, 0x14, 0x90, 0x1D, 0x12, 0xE5, 0x12, 0x42, 0x0E, 0x04, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x04, 0x10, 0x07, 0xF8, 0x08, 0x10, 0x31, 0x50, 0xC1, 0x28, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x04, 0x00, 0x20, 0x02, 0x20, 0xFF, 0x20, 0x24, 0x24, 0x25, 0xFE, 0x25, 0x24, 0x25, 0x24, 0x25, 0x24, 0x25, 0xFC, 0x24, 0x20, 0x24, 0x24, 0x24, 0x3C, 0x25, 0xC6, 0x44, 0x02, 0x43, 0xFE, 0x80, 0x00, 0x10, 0x80, 0x10, 0x80, 0x10, 0x88, 0x15, 0xFC, 0x7E, 0x00, 0x54, 0x00, 0x55, 0xF8, 0x54, 0x08, 0x54, 0x10, 0x7C, 0x20, 0x50, 0x40, 0x14, 0x80, 0x1D, 0x02, 0xE5, 0x02, 0x40, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x10, 0x20, 0x10, 0x20, 0x14, 0x04, 0x7F, 0xFE, 0x55, 0x00, 0x55, 0x00, 0x55, 0x00, 0x55, 0x00, 0x7D, 0x00, 0x51, 0x00, 0x15, 0x00, 0x1D, 0x00, 0xE5, 0x08, 0x40, 0xFC, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x14, 0x28, 0x7D, 0xFC, 0x54, 0x20, 0x54, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x7C, 0x20, 0x50, 0x50, 0x14, 0x50, 0x1C, 0x88, 0xE4, 0x88, 0x41, 0x06, 0x06, 0x04, 0x10, 0x20, 0x11, 0x20, 0x11, 0x20, 0x15, 0x20, 0x7F, 0x24, 0x55, 0xEC, 0x55, 0x30, 0x55, 0x20, 0x55, 0x20, 0x7D, 0x20, 0x51, 0x20, 0x15, 0x20, 0x1D, 0x62, 0xE5, 0xA2, 0x41, 0x1E, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x14, 0x24, 0x7F, 0xFE, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x7D, 0x54, 0x51, 0x4C, 0x15, 0x8C, 0x1D, 0x04, 0xE5, 0x04, 0x41, 0x14, 0x01, 0x08, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x15, 0x28, 0x7F, 0x28, 0x55, 0x28, 0x55, 0x28, 0x55, 0x48, 0x55, 0x48, 0x7D, 0x48, 0x51, 0xA8, 0x14, 0xA0, 0x1C, 0xA0, 0xE5, 0x22, 0x42, 0x22, 0x0C, 0x1E, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x14, 0x40, 0x7E, 0x48, 0x54, 0x7C, 0x57, 0xC0, 0x54, 0x40, 0x54, 0x44, 0x7C, 0x7E, 0x53, 0xC0, 0x14, 0x40, 0x1C, 0x40, 0xE4, 0x42, 0x40, 0x42, 0x00, 0x3E, 0x10, 0x20, 0x10, 0x20, 0x10, 0x50, 0x14, 0x50, 0x7E, 0x88, 0x55, 0x0E, 0x56, 0x04, 0x54, 0x88, 0x54, 0x88, 0x7C, 0x88, 0x50, 0x88, 0x14, 0x88, 0x1C, 0x88, 0xE4, 0x88, 0x41, 0x08, 0x02, 0x08, 0x10, 0x00, 0x10, 0x10, 0x10, 0x58, 0x14, 0x50, 0x7E, 0x50, 0x54, 0x88, 0x54, 0x88, 0x55, 0x26, 0x56, 0x24, 0x7C, 0x20, 0x50, 0x40, 0x14, 0x40, 0x1C, 0x90, 0xE5, 0x08, 0x41, 0xFC, 0x00, 0x04, 0x10, 0x10, 0x10, 0x10, 0x11, 0x10, 0x14, 0xD0, 0x7E, 0x50, 0x54, 0x10, 0x55, 0x10, 0x54, 0x90, 0x54, 0x94, 0x7C, 0x1E, 0x53, 0xF0, 0x14, 0x10, 0x1C, 0x10, 0xE4, 0x10, 0x40, 0x10, 0x00, 0x10, 0x10, 0x24, 0x13, 0xF4, 0x10, 0x24, 0x14, 0x24, 0x7F, 0xE4, 0x55, 0x04, 0x55, 0x04, 0x55, 0x24, 0x55, 0xF4, 0x7C, 0x24, 0x50, 0x24, 0x14, 0x24, 0x1C, 0x24, 0xE4, 0x24, 0x01, 0x44, 0x00, 0x84, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x04, 0x10, 0x88, 0x10, 0x88, 0x10, 0x88, 0x14, 0x88, 0x7F, 0xFE, 0x54, 0x88, 0x54, 0x88, 0x54, 0x88, 0x54, 0x88, 0x7C, 0xF8, 0x50, 0x88, 0x14, 0x88, 0x1C, 0x88, 0xE4, 0x88, 0x40, 0xF8, 0x00, 0x88, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x14, 0x24, 0x7F, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x54, 0x20, 0x54, 0x24, 0x7D, 0xFE, 0x51, 0x04, 0x15, 0x04, 0x1D, 0x04, 0xE5, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x10, 0x00, 0x10, 0x04, 0x17, 0xFE, 0x14, 0x08, 0x7E, 0x08, 0x55, 0xE8, 0x55, 0x28, 0x55, 0x28, 0x55, 0x28, 0x7D, 0x28, 0x51, 0xE8, 0x15, 0x28, 0x1C, 0x08, 0xE4, 0x08, 0x40, 0x28, 0x00, 0x10, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x00, 0x15, 0x04, 0x7F, 0xFE, 0x55, 0x20, 0x55, 0x24, 0x55, 0x3E, 0x55, 0x24, 0x7D, 0x24, 0x51, 0x24, 0x15, 0x24, 0x1D, 0x44, 0xE6, 0x44, 0x44, 0x94, 0x09, 0x08, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x14, 0x24, 0x7F, 0xFE, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x7D, 0xFC, 0x51, 0x24, 0x15, 0x24, 0x1D, 0x24, 0xE5, 0x24, 0x41, 0xFC, 0x01, 0x04, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x15, 0xFE, 0x7F, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x7D, 0x24, 0x51, 0x24, 0x17, 0xFE, 0x1D, 0x04, 0xE5, 0x04, 0x41, 0x14, 0x01, 0x08, 0x10, 0x80, 0x10, 0xC0, 0x10, 0x84, 0x14, 0xFE, 0x7F, 0x40, 0x55, 0x40, 0x56, 0x48, 0x54, 0x7C, 0x54, 0x40, 0x7C, 0x40, 0x50, 0x44, 0x14, 0x7E, 0x1C, 0x40, 0xE4, 0x40, 0x40, 0x40, 0x00, 0x40, 0x10, 0x08, 0x10, 0x1C, 0x10, 0xE0, 0x14, 0x80, 0x7E, 0x80, 0x54, 0x80, 0x54, 0x88, 0x54, 0xFC, 0x54, 0x90, 0x7C, 0x90, 0x50, 0x90, 0x14, 0x90, 0x1C, 0x90, 0xE4, 0x94, 0x47, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0x10, 0x50, 0x14, 0x50, 0x7E, 0x88, 0x55, 0x46, 0x56, 0x24, 0x54, 0x20, 0x54, 0x00, 0x7D, 0xFC, 0x50, 0x08, 0x14, 0x10, 0x1C, 0xA0, 0xE4, 0x40, 0x40, 0x20, 0x00, 0x20, 0x10, 0x00, 0x11, 0xFC, 0x11, 0x04, 0x14, 0x88, 0x7E, 0x50, 0x54, 0x20, 0x54, 0x50, 0x54, 0x8E, 0x57, 0x24, 0x7C, 0x20, 0x51, 0xFC, 0x14, 0x20, 0x1C, 0x20, 0xE4, 0x24, 0x43, 0xFE, 0x00, 0x00, 0x10, 0x10, 0x10, 0x90, 0x10, 0x90, 0x14, 0x94, 0x7E, 0xBE, 0x55, 0x14, 0x55, 0x54, 0x57, 0xD4, 0x54, 0x94, 0x7C, 0x94, 0x51, 0x54, 0x17, 0xF4, 0x1C, 0x24, 0xE4, 0x44, 0x40, 0x94, 0x01, 0x08, 0x04, 0x08, 0x7E, 0xFC, 0x08, 0x88, 0x08, 0xC8, 0x08, 0xAA, 0x0E, 0x8A, 0xF1, 0x06, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x04, 0x10, 0x20, 0x10, 0x20, 0x10, 0x28, 0x15, 0xFC, 0x7E, 0x20, 0x55, 0x24, 0x54, 0xAC, 0x54, 0xB0, 0x54, 0x24, 0x7F, 0xFE, 0x50, 0x50, 0x14, 0x50, 0x1C, 0x90, 0xE4, 0x88, 0x41, 0x06, 0x02, 0x04, 0x10, 0x80, 0x10, 0x80, 0x10, 0x5C, 0x15, 0xE0, 0x7E, 0x50, 0x54, 0x22, 0x54, 0xD2, 0x57, 0x0E, 0x54, 0x00, 0x7D, 0xFC, 0x50, 0x90, 0x14, 0x90, 0x1C, 0x92, 0xE4, 0x92, 0x41, 0x0E, 0x02, 0x00, 0x10, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x14, 0x20, 0x7E, 0x20, 0x54, 0x48, 0x54, 0x84, 0x55, 0xFE, 0x54, 0x22, 0x7C, 0x28, 0x51, 0xFC, 0x14, 0x20, 0x1C, 0x20, 0xE4, 0x24, 0x43, 0xFE, 0x00, 0x00, 0x20, 0x80, 0x20, 0x84, 0x22, 0xBE, 0x2A, 0x88, 0xFE, 0x88, 0xAA, 0xBE, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xFA, 0xAA, 0xA2, 0xAA, 0x2A, 0xAA, 0x38, 0xAE, 0xC9, 0x08, 0x01, 0x08, 0x02, 0x08, 0x10, 0x50, 0x10, 0x50, 0x10, 0x50, 0x14, 0x54, 0x7F, 0xFE, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x7D, 0xFC, 0x51, 0x54, 0x15, 0x54, 0x1D, 0x54, 0xE5, 0x54, 0x41, 0xFC, 0x01, 0x04, 0x20, 0x00, 0x20, 0x0C, 0x27, 0x70, 0x29, 0x10, 0xFD, 0x10, 0xAA, 0x14, 0xAA, 0xFE, 0xAF, 0x10, 0xA9, 0x10, 0xF9, 0x10, 0xA5, 0x10, 0x2B, 0x7C, 0x39, 0x00, 0xCA, 0x86, 0x04, 0x7C, 0x08, 0x00, 0x10, 0x08, 0x10, 0x1C, 0x11, 0xE0, 0x14, 0x20, 0x7E, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x54, 0x20, 0x54, 0x24, 0x7D, 0xFE, 0x51, 0x04, 0x15, 0x04, 0x1D, 0x04, 0xE5, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x10, 0x40, 0x10, 0x20, 0x10, 0x24, 0x15, 0xFE, 0x7E, 0x88, 0x54, 0x50, 0x54, 0x20, 0x54, 0xD8, 0x57, 0x06, 0x7C, 0x88, 0x50, 0x88, 0x14, 0x88, 0x1C, 0x88, 0xE4, 0x88, 0x41, 0x08, 0x02, 0x08, 0x10, 0x40, 0x10, 0x20, 0x10, 0x04, 0x15, 0xFE, 0x7E, 0x88, 0x54, 0x88, 0x55, 0x04, 0x56, 0x8A, 0x54, 0x88, 0x7C, 0x50, 0x50, 0x50, 0x14, 0x20, 0x1C, 0x50, 0xE4, 0x88, 0x01, 0x06, 0x06, 0x04, 0x11, 0x04, 0x10, 0x8C, 0x10, 0x50, 0x10, 0x04, 0x7D, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x55, 0xFC, 0x54, 0x20, 0x7C, 0x24, 0x53, 0xFE, 0x14, 0x20, 0x1C, 0x20, 0xE4, 0x20, 0x40, 0x20, 0x00, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x40, 0x14, 0x88, 0x7F, 0xFC, 0x54, 0x20, 0x54, 0xA8, 0x54, 0xFC, 0x55, 0x20, 0x7C, 0x24, 0x53, 0xFE, 0x14, 0x20, 0x1C, 0x20, 0xE4, 0x20, 0x40, 0x20, 0x00, 0x20, 0x3F, 0xFC, 0x20, 0x00, 0x2F, 0xF8, 0x20, 0x00, 0x3F, 0xFE, 0x24, 0x88, 0x24, 0x50, 0x26, 0xB0, 0x24, 0x8E, 0x2F, 0xF8, 0x28, 0x88, 0x28, 0x88, 0x4F, 0xF8, 0x40, 0x84, 0xBF, 0xFC, 0x00, 0x02, 0x08, 0x04, 0x08, 0xF8, 0xFE, 0x80, 0x08, 0x84, 0x0E, 0xFE, 0xF8, 0x90, 0x09, 0x10, 0x2A, 0x10, 0x11, 0x10, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0x7F, 0xFC, 0x00, 0x02, 0x10, 0x20, 0x11, 0x24, 0x10, 0xA8, 0x14, 0xB0, 0x7E, 0x24, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x55, 0xFC, 0x7D, 0x04, 0x51, 0x04, 0x15, 0xFC, 0x1D, 0x04, 0xE5, 0x04, 0x41, 0x14, 0x01, 0x08, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x15, 0x08, 0x7F, 0x08, 0x55, 0xF8, 0x54, 0x00, 0x57, 0xFC, 0x54, 0x40, 0x7C, 0x44, 0x53, 0xFE, 0x14, 0xA0, 0x1C, 0xA0, 0xE5, 0x10, 0x42, 0x0E, 0x04, 0x04, 0x10, 0x44, 0x10, 0xE4, 0x13, 0x84, 0x10, 0x84, 0x7C, 0x94, 0x57, 0xF4, 0x54, 0x94, 0x55, 0x94, 0x55, 0xD4, 0x7E, 0xB4, 0x52, 0x94, 0x14, 0x94, 0x1C, 0x84, 0xE4, 0x84, 0x40, 0x94, 0x00, 0x88, 0x10, 0x20, 0x10, 0x20, 0x10, 0x50, 0x14, 0x88, 0x7E, 0x88, 0x55, 0x06, 0x56, 0xF8, 0x54, 0x20, 0x54, 0x28, 0x7D, 0xFC, 0x50, 0x20, 0x14, 0xA8, 0x1D, 0x26, 0xE6, 0x22, 0x40, 0xA0, 0x00, 0x40, 0x10, 0x08, 0x10, 0x1C, 0x13, 0xE0, 0x11, 0x24, 0x7C, 0xA4, 0x54, 0xA8, 0x55, 0xFC, 0x54, 0x08, 0x54, 0x30, 0x7C, 0x24, 0x53, 0xFE, 0x14, 0x20, 0x1C, 0x20, 0xE4, 0x20, 0x40, 0xA0, 0x00, 0x40, 0x11, 0x04, 0x10, 0x88, 0x13, 0xFE, 0x14, 0x20, 0x7E, 0x28, 0x55, 0xFC, 0x54, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x7C, 0x50, 0x50, 0x50, 0x14, 0x50, 0x1C, 0x92, 0xE4, 0x92, 0x41, 0x0E, 0x06, 0x00, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x20, 0x7D, 0xFC, 0x54, 0x20, 0x57, 0xFE, 0x54, 0x04, 0x55, 0xFE, 0x7D, 0x04, 0x51, 0xFC, 0x15, 0x04, 0x1D, 0xFC, 0xE5, 0x04, 0x41, 0x14, 0x01, 0x08, 0x10, 0x88, 0x10, 0x88, 0x13, 0xFE, 0x14, 0x88, 0x7E, 0x88, 0x54, 0xF8, 0x54, 0x88, 0x54, 0x88, 0x54, 0xF8, 0x7C, 0x88, 0x50, 0x88, 0x17, 0xFE, 0x1C, 0x00, 0xE4, 0x88, 0x41, 0x06, 0x02, 0x02, 0x10, 0x80, 0x10, 0x86, 0x10, 0x98, 0x14, 0x90, 0x7F, 0xF0, 0x54, 0x90, 0x55, 0x9E, 0x55, 0xD4, 0x55, 0xB4, 0x7E, 0x94, 0x52, 0x94, 0x14, 0x94, 0x1C, 0xA4, 0xE4, 0xA4, 0x40, 0xC4, 0x00, 0x84, 0x20, 0x20, 0x20, 0x28, 0x20, 0x24, 0x27, 0xFE, 0xF8, 0x20, 0xA8, 0x20, 0xAB, 0xA4, 0xAA, 0xA4, 0xAA, 0xA4, 0xFA, 0xA8, 0xA3, 0xA8, 0x28, 0x10, 0x39, 0xB2, 0xCE, 0x52, 0x04, 0x8A, 0x00, 0x04, 0x02, 0x80, 0x02, 0x88, 0x7E, 0xFC, 0x02, 0x80, 0x3E, 0xF8, 0x02, 0x80, 0x7E, 0xFE, 0x02, 0x80, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0xFF, 0xFC, 0x00, 0x02, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0x15, 0x24, 0x7F, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x54, 0x20, 0x7F, 0xFE, 0x50, 0x20, 0x14, 0x70, 0x1C, 0xA8, 0xE5, 0x2E, 0x42, 0x24, 0x00, 0x20, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x04, 0x15, 0x14, 0x7F, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x7D, 0x34, 0x51, 0x2C, 0x15, 0xFC, 0x1D, 0x04, 0xE5, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x10, 0x08, 0x11, 0xFC, 0x11, 0x08, 0x15, 0xF8, 0x7F, 0x08, 0x55, 0x08, 0x55, 0xF8, 0x54, 0x84, 0x54, 0xFE, 0x7D, 0x54, 0x52, 0x94, 0x14, 0xA4, 0x1D, 0x24, 0xE6, 0x44, 0x40, 0xA8, 0x01, 0x10, 0x10, 0x20, 0x10, 0x44, 0x11, 0xFE, 0x15, 0x24, 0x7F, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x44, 0x55, 0xFC, 0x7C, 0x50, 0x50, 0x94, 0x17, 0xFE, 0x1C, 0x10, 0xE4, 0x10, 0x40, 0x10, 0x00, 0x10, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x24, 0x15, 0x24, 0x7F, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x04, 0x7D, 0x74, 0x51, 0x54, 0x15, 0x54, 0x1D, 0x74, 0xE5, 0x04, 0x42, 0x14, 0x04, 0x08, 0x10, 0x20, 0x11, 0x24, 0x10, 0xA8, 0x10, 0x20, 0x7D, 0xFC, 0x54, 0x20, 0x57, 0xFE, 0x54, 0x50, 0x54, 0x88, 0x7D, 0xFE, 0x52, 0x88, 0x14, 0x88, 0x1C, 0xA8, 0xE4, 0x92, 0x40, 0x82, 0x00, 0x7E, 0x10, 0x40, 0x12, 0x20, 0x13, 0xFE, 0x12, 0x02, 0x7D, 0x04, 0x55, 0x00, 0x55, 0xDC, 0x55, 0x54, 0x56, 0x54, 0x7D, 0x54, 0x50, 0xDC, 0x14, 0x90, 0x1C, 0x92, 0xE5, 0x12, 0x42, 0x0E, 0x04, 0x00, 0x21, 0x00, 0x20, 0x80, 0x20, 0x9E, 0x2B, 0xD2, 0xFE, 0x54, 0xAA, 0x54, 0xAB, 0xD8, 0xAA, 0x54, 0xAA, 0x54, 0xFB, 0xD2, 0xA2, 0x12, 0x2A, 0x9A, 0x3A, 0xD4, 0xCB, 0x50, 0x02, 0x10, 0x00, 0x10, 0x10, 0x00, 0x11, 0xFC, 0x10, 0x08, 0x14, 0x30, 0x7E, 0x24, 0x55, 0xFE, 0x54, 0x20, 0x54, 0xA0, 0x54, 0x44, 0x7D, 0xFE, 0x51, 0x54, 0x15, 0x54, 0x1D, 0x54, 0xE5, 0x54, 0x43, 0xFE, 0x00, 0x00, 0x20, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x20, 0x40, 0xFB, 0xF8, 0xA8, 0x80, 0xAF, 0xFE, 0xA9, 0x10, 0xAB, 0xF8, 0xFE, 0x0C, 0xAA, 0x0A, 0x23, 0xF8, 0x3A, 0x08, 0xCA, 0x08, 0x03, 0xF8, 0x02, 0x08, 0x10, 0x88, 0x10, 0x88, 0x13, 0xFE, 0x10, 0x88, 0x7C, 0x88, 0x57, 0xFE, 0x56, 0x02, 0x54, 0x24, 0x55, 0xFC, 0x7C, 0x20, 0x50, 0x70, 0x14, 0x68, 0x1C, 0xA8, 0xE5, 0x26, 0x42, 0x24, 0x00, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x7C, 0x20, 0x54, 0x24, 0x55, 0xFE, 0x55, 0x04, 0x55, 0x54, 0x7D, 0xFC, 0x51, 0x24, 0x15, 0xFC, 0x1D, 0x24, 0xE5, 0x24, 0x41, 0x24, 0x01, 0x0C, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x08, 0x14, 0xFC, 0x7E, 0x88, 0x54, 0x88, 0x54, 0xF8, 0x54, 0x04, 0x55, 0xFE, 0x7D, 0x24, 0x51, 0x24, 0x15, 0xFC, 0x1D, 0x24, 0xE5, 0x24, 0x41, 0xFC, 0x01, 0x04, 0x10, 0x20, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x7C, 0x50, 0x54, 0x88, 0x55, 0x26, 0x56, 0xF8, 0x54, 0x20, 0x7D, 0xFC, 0x50, 0x20, 0x14, 0xF8, 0x1C, 0x20, 0xE4, 0x24, 0x43, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x10, 0x64, 0x13, 0x84, 0x10, 0xA4, 0x7C, 0x94, 0x57, 0xC4, 0x54, 0xA4, 0x55, 0x94, 0x55, 0xC4, 0x7E, 0xBE, 0x52, 0x84, 0x14, 0x84, 0x1C, 0x84, 0xE4, 0x84, 0x40, 0x84, 0x00, 0x84, 0x10, 0x80, 0x10, 0x84, 0x10, 0xFE, 0x15, 0x00, 0x7E, 0xFC, 0x54, 0x84, 0x54, 0xFC, 0x54, 0x84, 0x54, 0xFC, 0x7C, 0x80, 0x50, 0xFC, 0x14, 0x84, 0x1D, 0x58, 0xE6, 0x20, 0x40, 0xD8, 0x03, 0x06, 0x10, 0x20, 0x10, 0xAC, 0x11, 0x24, 0x15, 0x24, 0x7F, 0xAC, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x54, 0x20, 0x7D, 0xFC, 0x50, 0x88, 0x14, 0x50, 0x1C, 0x20, 0xE4, 0x50, 0x40, 0x8E, 0x03, 0x04, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x28, 0x90, 0xFD, 0x08, 0xAA, 0xF4, 0xAC, 0x02, 0xAB, 0xC4, 0xAA, 0x54, 0xFB, 0xD4, 0xA2, 0x54, 0x2B, 0xD4, 0x3A, 0x54, 0xCA, 0x54, 0x02, 0x44, 0x02, 0xCC, 0x22, 0x20, 0x21, 0x20, 0x21, 0x24, 0x27, 0xBE, 0xFA, 0x40, 0xAA, 0x00, 0xAB, 0xBC, 0xAA, 0x88, 0xFA, 0x90, 0xA2, 0xFE, 0x22, 0x90, 0x2A, 0x90, 0x3A, 0x90, 0xCC, 0x90, 0x05, 0xD0, 0x08, 0x20, 0x20, 0x40, 0x22, 0x48, 0x21, 0x50, 0x28, 0x40, 0xFF, 0xFC, 0xA8, 0xE0, 0xA9, 0x58, 0xAA, 0x48, 0xA8, 0x80, 0xFF, 0xFE, 0xA1, 0x10, 0x2A, 0x10, 0x39, 0xA0, 0xE8, 0x40, 0x01, 0xB0, 0x06, 0x08, 0x10, 0x00, 0x10, 0x88, 0x10, 0x50, 0x13, 0xFE, 0x7C, 0x50, 0x54, 0x54, 0x55, 0xFE, 0x55, 0x54, 0x55, 0x54, 0x7D, 0x54, 0x51, 0x9C, 0x15, 0x04, 0x1D, 0x74, 0xE5, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x10, 0x40, 0x10, 0x24, 0x11, 0xFE, 0x15, 0x04, 0x7F, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x55, 0x00, 0x55, 0xFE, 0x7D, 0x4A, 0x53, 0x4A, 0x15, 0xFE, 0x1D, 0x4A, 0xE5, 0x4A, 0x41, 0x4A, 0x01, 0x06, 0x00, 0x40, 0x7E, 0x44, 0x14, 0x7E, 0x08, 0xC8, 0xFF, 0x28, 0x1A, 0x10, 0x28, 0x28, 0x49, 0x46, 0x19, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0xFF, 0xFC, 0x00, 0x02, 0x20, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x28, 0x40, 0xFF, 0xF8, 0xA8, 0x40, 0xAF, 0xFE, 0xA8, 0xA0, 0xA9, 0x10, 0xFB, 0xE8, 0xA4, 0x46, 0x2B, 0xF8, 0x38, 0x40, 0xC9, 0x50, 0x02, 0x48, 0x00, 0x40, 0x08, 0x20, 0x7F, 0x20, 0x08, 0x24, 0x3E, 0x7E, 0x08, 0xC8, 0xFF, 0x28, 0x10, 0x10, 0x1C, 0x28, 0x25, 0x46, 0x4D, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0xFF, 0xFE, 0x20, 0x90, 0x20, 0x94, 0x27, 0xFE, 0x28, 0x90, 0xFC, 0x90, 0xAB, 0xFC, 0xA8, 0x90, 0xAA, 0x94, 0xAB, 0xFE, 0xFA, 0x94, 0xA2, 0x94, 0x2B, 0x6C, 0x3A, 0x44, 0xCA, 0x04, 0x02, 0x14, 0x02, 0x08, 0x21, 0x10, 0x21, 0x14, 0x27, 0xFE, 0x21, 0x18, 0xF8, 0x44, 0xAF, 0xFE, 0xA8, 0xA0, 0xA9, 0x10, 0xAA, 0x0E, 0xFD, 0x14, 0xA1, 0x10, 0x2F, 0xFE, 0x39, 0x10, 0xC9, 0x10, 0x02, 0x10, 0x04, 0x10, 0x10, 0x88, 0x10, 0x88, 0x13, 0xFE, 0x14, 0x88, 0x7E, 0x04, 0x55, 0xFE, 0x55, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x7D, 0xFC, 0x50, 0x20, 0x17, 0xFE, 0x1C, 0x20, 0xE4, 0x50, 0x40, 0x8E, 0x03, 0x04, 0x10, 0x04, 0x11, 0xFE, 0x11, 0x10, 0x15, 0x24, 0x7F, 0x7E, 0x55, 0x44, 0x55, 0x44, 0x55, 0x7C, 0x55, 0x44, 0x7D, 0x44, 0x51, 0x7C, 0x15, 0x10, 0x1D, 0x58, 0xE6, 0x56, 0x42, 0x92, 0x04, 0x30, 0x10, 0x40, 0x10, 0x88, 0x11, 0xFC, 0x15, 0x08, 0x7F, 0xF8, 0x55, 0x08, 0x55, 0xF8, 0x55, 0x08, 0x55, 0x08, 0x7D, 0xF8, 0x51, 0x48, 0x14, 0x20, 0x1C, 0xA4, 0xE6, 0x82, 0x42, 0x8A, 0x04, 0x78, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x00, 0x7D, 0x54, 0x55, 0x24, 0x55, 0x54, 0x55, 0xFC, 0x54, 0x24, 0x7D, 0xFE, 0x51, 0x24, 0x15, 0x54, 0x1D, 0x74, 0xE5, 0x04, 0x41, 0x14, 0x01, 0x08, 0x10, 0x20, 0x10, 0x14, 0x11, 0xFE, 0x15, 0x10, 0x7F, 0x7C, 0x55, 0x14, 0x55, 0xFE, 0x55, 0x14, 0x55, 0x7C, 0x7D, 0x10, 0x51, 0x7C, 0x15, 0x44, 0x1D, 0x44, 0xE6, 0x44, 0x42, 0x7C, 0x04, 0x44, 0x10, 0x40, 0x10, 0x20, 0x13, 0xFE, 0x10, 0x88, 0x7C, 0x50, 0x57, 0xFE, 0x56, 0x42, 0x54, 0x20, 0x57, 0xFE, 0x7C, 0x80, 0x50, 0xF8, 0x14, 0x88, 0x1C, 0x88, 0xE5, 0x08, 0x42, 0x28, 0x04, 0x10, 0x08, 0x40, 0x7F, 0x40, 0x08, 0x44, 0xFF, 0x7E, 0x14, 0xC8, 0x56, 0x28, 0x55, 0x10, 0x94, 0x28, 0x25, 0x46, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x04, 0xFF, 0xFC, 0x00, 0x02, 0x10, 0x88, 0x10, 0x88, 0x13, 0xFE, 0x10, 0x88, 0x7C, 0x88, 0x57, 0xFE, 0x54, 0x20, 0x55, 0xFC, 0x55, 0x24, 0x7D, 0xFC, 0x51, 0x24, 0x15, 0xFC, 0x1C, 0x00, 0xE4, 0x88, 0x41, 0x06, 0x02, 0x02, 0x20, 0x90, 0x20, 0x94, 0x27, 0xFE, 0x20, 0x90, 0xFB, 0xFC, 0xAA, 0x94, 0xAB, 0xFC, 0xAA, 0x94, 0xAB, 0xFC, 0xF8, 0x00, 0xA1, 0xF8, 0x29, 0x08, 0x39, 0xF8, 0xC9, 0x08, 0x01, 0xF8, 0x01, 0x08, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x50, 0x10, 0x54, 0x7D, 0xFE, 0x55, 0x54, 0x55, 0x54, 0x55, 0xFC, 0x54, 0x00, 0x7C, 0xF8, 0x50, 0x00, 0x17, 0xFE, 0x1C, 0xA8, 0xE5, 0x26, 0x42, 0x22, 0x00, 0x60, 0x10, 0x20, 0x11, 0x24, 0x10, 0xA8, 0x10, 0x20, 0x7D, 0xFE, 0x55, 0x02, 0x56, 0xF8, 0x54, 0x88, 0x54, 0x88, 0x7C, 0xF8, 0x50, 0x20, 0x15, 0xFC, 0x1C, 0x20, 0xE4, 0x24, 0x43, 0xFE, 0x00, 0x00, 0x10, 0x0C, 0x11, 0xF0, 0x10, 0x24, 0x11, 0x24, 0x7C, 0xA8, 0x57, 0xFE, 0x54, 0x68, 0x54, 0xA8, 0x55, 0x26, 0x7E, 0x24, 0x50, 0x00, 0x14, 0xA0, 0x1D, 0xA4, 0xE2, 0x8A, 0x44, 0x8A, 0x00, 0x78, 0x10, 0x80, 0x10, 0xF8, 0x11, 0x10, 0x13, 0xFC, 0x7D, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x54, 0x40, 0x54, 0xC4, 0x7D, 0x28, 0x52, 0x70, 0x14, 0xB0, 0x1F, 0x68, 0xE4, 0xAE, 0x43, 0x24, 0x00, 0x60, 0x08, 0x00, 0x0F, 0xF0, 0x18, 0x20, 0x26, 0xC0, 0x01, 0x00, 0x0E, 0xE0, 0xF2, 0x1E, 0x01, 0x00, 0x0A, 0x20, 0x09, 0x20, 0x3E, 0xF8, 0x2A, 0xA8, 0x3E, 0xF8, 0x09, 0x24, 0x7F, 0xFC, 0x01, 0x04, 0x10, 0x20, 0x11, 0xFC, 0x10, 0x88, 0x14, 0x50, 0x7F, 0xFE, 0x54, 0x04, 0x55, 0xFE, 0x55, 0x04, 0x55, 0xFC, 0x7D, 0x04, 0x51, 0xFC, 0x14, 0x20, 0x1F, 0xFE, 0xE4, 0x20, 0x40, 0x20, 0x00, 0x20, 0x10, 0x40, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x20, 0x7C, 0x48, 0x56, 0xF2, 0x55, 0x24, 0x56, 0x52, 0x54, 0xF8, 0x7C, 0x20, 0x53, 0xFE, 0x14, 0x20, 0x1C, 0x20, 0xE4, 0x20, 0x40, 0x20, 0x00, 0x20, 0x00, 0x00, 0x1F, 0xF0, 0x02, 0x20, 0x01, 0x40, 0x7F, 0xFE, 0x02, 0x82, 0x0C, 0x84, 0x30, 0x80, 0xCA, 0xA0, 0x09, 0x28, 0x3E, 0xFC, 0x2A, 0xA8, 0x3E, 0xF8, 0x09, 0x24, 0x7F, 0xFC, 0x01, 0x04, 0x20, 0x82, 0x20, 0xA2, 0x27, 0xF4, 0x20, 0x84, 0xFB, 0xE8, 0xA8, 0x12, 0xAB, 0xE2, 0xAA, 0x24, 0xAA, 0x28, 0xFB, 0xF0, 0xA0, 0x02, 0x2A, 0x22, 0x39, 0x44, 0xCF, 0xE8, 0x00, 0x10, 0x00, 0x60, 0x10, 0x20, 0x10, 0x24, 0x13, 0xFE, 0x10, 0x24, 0x7D, 0xFE, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0xFC, 0x7C, 0x22, 0x53, 0xFE, 0x14, 0x42, 0x1C, 0xA0, 0xE6, 0xA4, 0x42, 0x8A, 0x00, 0x78, 0x10, 0x0C, 0x11, 0xF0, 0x10, 0x20, 0x11, 0x24, 0x7C, 0xA8, 0x57, 0xFE, 0x54, 0x70, 0x54, 0xA8, 0x55, 0x26, 0x7F, 0xFC, 0x51, 0x24, 0x15, 0x24, 0x1D, 0xFC, 0xE5, 0x24, 0x41, 0x24, 0x01, 0xFC, 0x10, 0x88, 0x10, 0x50, 0x13, 0xFE, 0x10, 0x20, 0x7D, 0xFC, 0x54, 0x20, 0x57, 0xFE, 0x55, 0x24, 0x54, 0xA8, 0x7F, 0xFE, 0x50, 0x04, 0x15, 0xFE, 0x1D, 0x04, 0xE5, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x10, 0x88, 0x13, 0xFE, 0x10, 0x88, 0x10, 0xA0, 0x7D, 0xFC, 0x55, 0x20, 0x55, 0xFC, 0x55, 0x20, 0x55, 0x3C, 0x7D, 0x00, 0x51, 0xFC, 0x15, 0x08, 0x1C, 0x90, 0xE4, 0x60, 0x41, 0x98, 0x06, 0x06, 0x20, 0x90, 0x20, 0x94, 0x27, 0xFE, 0x20, 0x90, 0xFB, 0xFE, 0xAA, 0x02, 0xAD, 0xF4, 0xA8, 0x00, 0xAF, 0xFE, 0xF8, 0x40, 0xA3, 0xA4, 0x28, 0x78, 0x3B, 0xB0, 0xE8, 0x68, 0x43, 0xA6, 0x00, 0x60, 0x10, 0x80, 0x10, 0xF8, 0x11, 0x10, 0x13, 0xFE, 0x7D, 0x44, 0x55, 0x92, 0x55, 0xFE, 0x55, 0x00, 0x55, 0x7C, 0x7D, 0x00, 0x51, 0x7C, 0x15, 0x00, 0x1D, 0x7C, 0xE6, 0x44, 0x42, 0x7C, 0x04, 0x44, 0x20, 0x20, 0x23, 0xFE, 0x22, 0x88, 0x2A, 0x50, 0xFF, 0xFE, 0xAA, 0x50, 0xAA, 0xFC, 0xAA, 0x54, 0xAB, 0xFE, 0xFA, 0x54, 0xA2, 0xFC, 0x2A, 0x50, 0x3A, 0xD8, 0xCD, 0x54, 0x06, 0x52, 0x08, 0x50, 0x10, 0x88, 0x10, 0x88, 0x13, 0xFE, 0x10, 0x88, 0x7D, 0xFC, 0x55, 0x54, 0x55, 0x54, 0x55, 0xFC, 0x54, 0x28, 0x7D, 0xFE, 0x51, 0x20, 0x15, 0x24, 0x1D, 0x98, 0xE5, 0x52, 0x42, 0x2A, 0x04, 0x46, 0x0F, 0xE0, 0x08, 0x20, 0x1F, 0xE0, 0x00, 0x44, 0xFF, 0xFE, 0x0C, 0x10, 0x73, 0x20, 0x0D, 0xC0, 0x72, 0xA0, 0x1C, 0x9E, 0x6B, 0x24, 0x3E, 0xF8, 0x2A, 0xA8, 0x3E, 0xF8, 0x09, 0x24, 0x7F, 0xFC, 0x01, 0x00, 0x7F, 0xFC, 0x09, 0x20, 0x7F, 0xFE, 0x40, 0x02, 0x9F, 0xF4, 0x04, 0x00, 0x0F, 0xF0, 0x38, 0x10, 0xCF, 0xF0, 0x08, 0x20, 0x3E, 0xF8, 0x2A, 0xA8, 0x3E, 0xF8, 0x08, 0x24, 0x7F, 0xFC, 0x27, 0xBC, 0x26, 0xB4, 0x25, 0xAC, 0x27, 0xBC, 0xF9, 0x40, 0xAB, 0xFC, 0xAE, 0x40, 0xAB, 0xF8, 0xAA, 0x40, 0xFA, 0x7C, 0xA0, 0x00, 0x2B, 0xF8, 0x39, 0x10, 0xC8, 0xE0, 0x01, 0x10, 0x06, 0x0E, 0x08, 0x00, 0x08, 0x00, 0x08, 0x10, 0x1F, 0xF8, 0x21, 0x00, 0x41, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x00, 0x08, 0x3E, 0xF8, 0x22, 0x88, 0x2A, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, 0x14, 0x50, 0x22, 0x88, 0x08, 0x20, 0x0F, 0xF0, 0x11, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x08, 0x78, 0x7F, 0x48, 0x08, 0x4E, 0x3E, 0x80, 0x00, 0x78, 0x7F, 0x48, 0x49, 0x30, 0x7F, 0x48, 0x44, 0x86, 0x4F, 0xF0, 0x91, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x11, 0x10, 0x1F, 0xF0, 0x20, 0x20, 0x24, 0x3C, 0x3E, 0x20, 0x51, 0xFE, 0x91, 0x24, 0x15, 0xF8, 0xFF, 0x24, 0x11, 0x38, 0x11, 0x00, 0x55, 0xFE, 0x55, 0x54, 0x55, 0x54, 0x55, 0xFE, 0x7D, 0x10, 0x02, 0x10, 0x04, 0x30, 0x00, 0x08, 0x06, 0x1C, 0x79, 0xE0, 0x11, 0x20, 0x15, 0x20, 0xFF, 0x24, 0x11, 0xFE, 0x11, 0x20, 0x15, 0x20, 0x7F, 0x20, 0x45, 0x20, 0x45, 0x10, 0x45, 0x10, 0x7D, 0x4A, 0x45, 0x8A, 0x01, 0x04, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x20, 0x80, 0x28, 0x90, 0x45, 0x08, 0x80, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x80, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x00, 0x20, 0x3F, 0xF0, 0x08, 0x40, 0x08, 0x90, 0x09, 0xF8, 0x14, 0x20, 0x12, 0x40, 0x11, 0x80, 0x21, 0x60, 0x46, 0x1E, 0x98, 0x04, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x00, 0x20, 0x3F, 0xF0, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0x0F, 0xFE, 0x00, 0x04, 0x7F, 0xF4, 0x00, 0x04, 0x00, 0x14, 0x00, 0x08, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x00, 0x00, 0x3F, 0xF8, 0x04, 0x20, 0x04, 0x24, 0xFF, 0xFE, 0x04, 0x20, 0x04, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x90, 0x12, 0x90, 0x12, 0x90, 0x04, 0x82, 0x18, 0x82, 0xE0, 0x7E, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x00, 0x38, 0x1F, 0xE0, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0x11, 0x10, 0x11, 0x10, 0x11, 0x08, 0x21, 0x0E, 0x41, 0x04, 0x01, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x01, 0x08, 0x3F, 0xF0, 0x21, 0x00, 0x21, 0x04, 0x3F, 0xFE, 0x03, 0x04, 0x05, 0x04, 0x09, 0x44, 0x31, 0x28, 0xC1, 0x10, 0x01, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x08, 0x08, 0x0F, 0xFC, 0x12, 0x48, 0x12, 0x48, 0x22, 0x48, 0x44, 0x48, 0x04, 0x88, 0x08, 0x88, 0x11, 0x08, 0x22, 0x50, 0x00, 0x20, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x00, 0x00, 0x7E, 0xFC, 0x08, 0x88, 0x08, 0x90, 0x08, 0x90, 0x08, 0x88, 0x0E, 0xC4, 0x78, 0xA4, 0x20, 0x98, 0x00, 0x80, 0x00, 0x80, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x3F, 0xFC, 0x20, 0x00, 0x20, 0x10, 0x27, 0xF8, 0x24, 0x10, 0x24, 0x10, 0x27, 0xF0, 0x24, 0x10, 0x20, 0x04, 0x3F, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x11, 0x00, 0x11, 0x10, 0x1F, 0xF8, 0x21, 0x00, 0x41, 0x20, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x04, 0x08, 0x0F, 0xFC, 0x0A, 0x00, 0x12, 0x10, 0x23, 0xF8, 0x42, 0x00, 0x02, 0x08, 0x03, 0xFC, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x08, 0x08, 0x0F, 0xFC, 0x10, 0x08, 0x10, 0x48, 0x2F, 0xE8, 0x48, 0x48, 0x08, 0x48, 0x0F, 0xC8, 0x08, 0x08, 0x00, 0x28, 0x00, 0x10, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x08, 0x20, 0x04, 0x20, 0x04, 0x40, 0x02, 0x40, 0x02, 0x84, 0x7F, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x14, 0x3F, 0xFE, 0x00, 0x04, 0x7F, 0xE4, 0x00, 0x04, 0x1F, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x1F, 0x84, 0x10, 0x94, 0x00, 0x08, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x3F, 0xF8, 0x02, 0x08, 0x02, 0x10, 0x04, 0x50, 0x08, 0x20, 0x3F, 0xF0, 0xD0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x08, 0x00, 0x08, 0x04, 0x7F, 0x7E, 0x09, 0x44, 0x09, 0x44, 0x09, 0x44, 0x09, 0x44, 0x11, 0x44, 0x11, 0x7C, 0x25, 0x44, 0xC2, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x20, 0x80, 0x10, 0x88, 0x07, 0xFC, 0x70, 0x88, 0x10, 0x88, 0x11, 0x08, 0x11, 0x08, 0x12, 0x28, 0x2C, 0x10, 0x44, 0x06, 0x03, 0xFC, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x84, 0x00, 0x08, 0x20, 0x10, 0x10, 0x3F, 0xF8, 0x00, 0x08, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x08, 0x00, 0x08, 0x04, 0xFE, 0xFE, 0x08, 0x84, 0x08, 0x84, 0x0E, 0x84, 0x78, 0x84, 0x08, 0x84, 0x08, 0xFC, 0x28, 0x84, 0x10, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x10, 0x80, 0x1E, 0x98, 0x10, 0xE0, 0x10, 0x84, 0x1E, 0xFC, 0x01, 0x00, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x11, 0x00, 0x1F, 0xF8, 0x21, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x08, 0x84, 0x10, 0x84, 0x60, 0x7C, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x00, 0x0C, 0x7D, 0xF0, 0x10, 0x20, 0x21, 0x28, 0x7D, 0x3C, 0x05, 0x20, 0x49, 0x28, 0x29, 0xFC, 0x10, 0x00, 0x28, 0x06, 0xC7, 0xFC, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x3F, 0xFE, 0xC1, 0x04, 0x01, 0x20, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x00, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x07, 0xE0, 0x08, 0x48, 0x3F, 0xFC, 0x01, 0x08, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xF8, 0x01, 0x08, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x10, 0x84, 0x10, 0xFE, 0x7C, 0x84, 0x11, 0x44, 0x12, 0x24, 0x10, 0x04, 0x1C, 0x34, 0xE1, 0xC4, 0x40, 0x84, 0x00, 0x14, 0x00, 0x08, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x00, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x29, 0x28, 0x45, 0x44, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x14, 0xFF, 0xFE, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xF8, 0x29, 0x08, 0x05, 0x00, 0x03, 0x00, 0x0C, 0xE0, 0x70, 0x1E, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x08, 0x04, 0x09, 0xFE, 0x7F, 0x24, 0x09, 0x24, 0x0D, 0x24, 0x19, 0xFC, 0x69, 0x04, 0x09, 0x00, 0x09, 0x02, 0x29, 0x02, 0x10, 0xFE, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x09, 0x20, 0x05, 0x50, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x50, 0x10, 0x20, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x08, 0x84, 0x08, 0xFE, 0x14, 0x88, 0x35, 0x88, 0x56, 0x90, 0x94, 0x50, 0x14, 0x20, 0x14, 0x50, 0x14, 0x88, 0x11, 0x0E, 0x12, 0x04, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x68, 0xA0, 0x85, 0x10, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x30, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x7F, 0xFC, 0x01, 0x00, 0x1F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x12, 0xD0, 0x04, 0x30, 0x38, 0x08, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC5, 0x10, 0x3F, 0xFC, 0x20, 0x80, 0x20, 0x90, 0x2F, 0xF8, 0x24, 0x90, 0x22, 0xA0, 0x3F, 0xFC, 0x21, 0x40, 0x22, 0x30, 0x24, 0x14, 0x3F, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0xC2, 0x10, 0x3F, 0xE0, 0x02, 0x40, 0x02, 0x84, 0xFF, 0xFE, 0x04, 0x00, 0x0F, 0xF0, 0x18, 0x10, 0x6F, 0xF0, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0xC5, 0x10, 0x08, 0x20, 0x7F, 0xFC, 0x0A, 0x20, 0x02, 0x04, 0xFF, 0xFE, 0x04, 0x10, 0x0F, 0xF8, 0x38, 0x10, 0xC8, 0x10, 0x08, 0x10, 0x0F, 0xF0, 0x08, 0x10, 0x10, 0x40, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x08, 0x88, 0x08, 0x88, 0xFF, 0xFE, 0x08, 0x88, 0x08, 0x88, 0x0E, 0xF8, 0xF8, 0x88, 0x48, 0x88, 0x08, 0x88, 0x28, 0xF8, 0x10, 0x88, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x13, 0xF8, 0x11, 0x10, 0xFC, 0xE0, 0x11, 0x10, 0x12, 0x4E, 0x1D, 0xF4, 0xF0, 0x40, 0x13, 0xF8, 0x10, 0x40, 0x50, 0x40, 0x20, 0x40, 0x10, 0x40, 0x12, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0x90, 0x45, 0x08, 0x08, 0x20, 0x04, 0x40, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x02, 0x88, 0x24, 0x10, 0x18, 0x20, 0x08, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x01, 0x00, 0x7F, 0xFE, 0x48, 0x02, 0x8E, 0xF4, 0x12, 0x90, 0x12, 0x90, 0x32, 0x90, 0x4C, 0xD0, 0x08, 0xA0, 0x10, 0x82, 0x20, 0x82, 0x40, 0x7E, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x3F, 0xF8, 0x01, 0x08, 0xFF, 0xFE, 0x01, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0x25, 0x48, 0x25, 0x28, 0x29, 0x28, 0x29, 0x18, 0x31, 0x18, 0x41, 0x08, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x00, 0x50, 0x3F, 0xFC, 0x20, 0x40, 0x3F, 0xC0, 0x20, 0x28, 0x2F, 0x28, 0x29, 0x28, 0x29, 0x30, 0x4F, 0x20, 0x49, 0x52, 0x80, 0x8A, 0x00, 0x04, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x41, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x11, 0x10, 0x11, 0x10, 0x06, 0x60, 0x38, 0x18, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x41, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x00, 0x05, 0xF0, 0x08, 0x10, 0x17, 0xFC, 0x31, 0x00, 0x51, 0xFC, 0x96, 0x40, 0x10, 0x44, 0x17, 0xFE, 0x10, 0x40, 0x10, 0xA0, 0x11, 0x18, 0x16, 0x06, 0x12, 0x48, 0x1F, 0x7C, 0x28, 0xA0, 0x41, 0x50, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x04, 0x40, 0xFF, 0xFE, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x30, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x3F, 0xFC, 0x22, 0x40, 0x22, 0x50, 0x3E, 0x78, 0x22, 0x40, 0x3E, 0x78, 0x22, 0x40, 0x3E, 0x78, 0x22, 0x40, 0x22, 0x48, 0x3F, 0xFC, 0x00, 0x00, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x03, 0x80, 0x0D, 0x60, 0x71, 0x1C, 0x01, 0x00, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x01, 0x08, 0x3F, 0xFC, 0x24, 0x48, 0x23, 0x88, 0x24, 0x48, 0x3F, 0xF8, 0x20, 0x80, 0x3C, 0x8C, 0x20, 0xB0, 0x22, 0xC2, 0x2C, 0x82, 0x30, 0x7E, 0x10, 0x44, 0x1F, 0x7E, 0x28, 0xA0, 0x45, 0xFC, 0x1E, 0x80, 0x10, 0xF0, 0x10, 0x80, 0x17, 0xFE, 0x14, 0x44, 0x15, 0xF0, 0x24, 0x48, 0x24, 0x38, 0x29, 0xE0, 0x49, 0x22, 0x91, 0x22, 0x26, 0x1E, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x50, 0x08, 0x40, 0xFF, 0x7E, 0x08, 0x82, 0x7F, 0x24, 0x49, 0x20, 0x7F, 0x20, 0x49, 0x20, 0x1C, 0x50, 0x2A, 0x50, 0x4A, 0x88, 0x88, 0x8E, 0x09, 0x04, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0x3F, 0xF8, 0x01, 0x40, 0x3F, 0xFC, 0x21, 0x10, 0x28, 0xA0, 0x24, 0x40, 0x40, 0xA2, 0x43, 0x1A, 0x8C, 0x06, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x0A, 0x08, 0x37, 0xFC, 0x24, 0x48, 0x27, 0xC8, 0x24, 0x48, 0x2F, 0xC8, 0x30, 0x38, 0x04, 0x40, 0x04, 0x40, 0x04, 0x42, 0x08, 0x42, 0x70, 0x3E, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x01, 0x00, 0x3F, 0xFC, 0x22, 0x40, 0x3F, 0xF8, 0x22, 0x48, 0x22, 0x48, 0x3F, 0xF8, 0x28, 0x44, 0x2F, 0x48, 0x48, 0x72, 0x49, 0x42, 0x8E, 0x3E, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x08, 0x0C, 0x6A, 0xF0, 0x5C, 0x80, 0x48, 0x84, 0x7E, 0xFE, 0x48, 0x90, 0x58, 0x90, 0x6A, 0x90, 0x48, 0x90, 0x7E, 0x90, 0x01, 0x10, 0x00, 0x10, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x5F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x14, 0xE0, 0x18, 0x1C, 0x3F, 0xF8, 0x24, 0x48, 0x24, 0x48, 0xFF, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x7F, 0xFC, 0x04, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x41, 0x10, 0x3E, 0xF8, 0x28, 0xA0, 0x7F, 0xFC, 0x18, 0x62, 0x28, 0xA2, 0xCD, 0x1E, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x3E, 0xA0, 0x02, 0xC8, 0x14, 0x50, 0x0F, 0xE0, 0x10, 0x10, 0x2F, 0xEE, 0xC8, 0x24, 0x0F, 0xE0, 0x04, 0x40, 0x02, 0x88, 0x7F, 0xFC, 0x00, 0x00, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x24, 0x10, 0x7E, 0xFE, 0x24, 0x92, 0x3C, 0x90, 0x24, 0xFC, 0x3C, 0xA4, 0x24, 0xA4, 0xFE, 0xA8, 0x00, 0x90, 0x29, 0x28, 0x46, 0x46, 0x80, 0x84, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x50, 0x08, 0x40, 0x7F, 0x78, 0x08, 0x90, 0x3F, 0xFC, 0x2A, 0x84, 0x2A, 0x94, 0x3E, 0x94, 0x18, 0xA4, 0x2C, 0xB4, 0x4A, 0x48, 0x88, 0x46, 0x08, 0x82, 0x10, 0x40, 0x1F, 0x7C, 0x28, 0xA0, 0x45, 0x10, 0x10, 0x84, 0x17, 0x7E, 0xFC, 0x24, 0x15, 0x24, 0x1E, 0xD4, 0x34, 0x08, 0xD3, 0xF8, 0x12, 0x08, 0x13, 0xF8, 0x12, 0x08, 0x53, 0xF8, 0x22, 0x08, 0x01, 0x00, 0x05, 0x08, 0x39, 0x7C, 0x21, 0x08, 0x21, 0x08, 0x3D, 0x78, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x18, 0x30, 0xE0, 0x0E, 0x06, 0x08, 0x38, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3E, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x24, 0x48, 0x04, 0x40, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x10, 0x40, 0x20, 0x40, 0x01, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x08, 0x20, 0x16, 0x10, 0x38, 0xFE, 0xD0, 0x14, 0x1E, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x06, 0x08, 0x38, 0xFC, 0x20, 0x08, 0x20, 0x08, 0x3E, 0xF8, 0x20, 0x08, 0x20, 0x08, 0x3F, 0xF8, 0x08, 0x04, 0x1F, 0xFE, 0x20, 0x04, 0xE9, 0x24, 0x24, 0x94, 0x24, 0x84, 0x40, 0x14, 0x00, 0x08, 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x60, 0x19, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x08, 0x00, 0x08, 0x04, 0x10, 0xFE, 0x7F, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x55, 0x24, 0x5F, 0xA4, 0xF0, 0x24, 0x01, 0xFE, 0x00, 0x00, 0x10, 0x00, 0x20, 0x08, 0x7D, 0xFC, 0x44, 0x20, 0x64, 0x20, 0x54, 0x20, 0x44, 0x20, 0xFC, 0x20, 0x44, 0x20, 0x64, 0x20, 0x54, 0x20, 0x54, 0x20, 0x44, 0x20, 0x44, 0x24, 0x57, 0xFE, 0x88, 0x00, 0x10, 0x20, 0x24, 0x20, 0x7E, 0x20, 0x44, 0x20, 0x65, 0x24, 0x55, 0x24, 0x45, 0x24, 0xFD, 0x24, 0x45, 0x24, 0x65, 0x24, 0x55, 0x24, 0x55, 0x24, 0x45, 0x24, 0x45, 0x24, 0x55, 0xFC, 0x88, 0x04, 0x10, 0x00, 0x24, 0x44, 0x7E, 0x24, 0x45, 0x24, 0x65, 0x28, 0x54, 0x88, 0x44, 0x88, 0xFC, 0x90, 0x44, 0x50, 0x64, 0x20, 0x54, 0x50, 0x54, 0x50, 0x44, 0x88, 0x45, 0x0E, 0x56, 0x04, 0x88, 0x00, 0x10, 0x20, 0x25, 0x20, 0x7F, 0x20, 0x45, 0x20, 0x65, 0x20, 0x55, 0x24, 0x45, 0xEC, 0xFD, 0x30, 0x45, 0x20, 0x65, 0x20, 0x55, 0x20, 0x55, 0x20, 0x45, 0x62, 0x45, 0xA2, 0x55, 0x1E, 0x88, 0x00, 0x10, 0x20, 0x24, 0x20, 0x7E, 0x24, 0x45, 0xFE, 0x65, 0x24, 0x55, 0x24, 0x45, 0x24, 0xFD, 0x24, 0x45, 0x24, 0x65, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x44, 0x20, 0x44, 0x20, 0x54, 0x20, 0x88, 0x20, 0x10, 0x08, 0x24, 0x1C, 0x7F, 0xE0, 0x45, 0x00, 0x65, 0x00, 0x55, 0xFC, 0x45, 0x44, 0xFD, 0x44, 0x45, 0x44, 0x65, 0x28, 0x55, 0x28, 0x55, 0x10, 0x45, 0x28, 0x46, 0x48, 0x54, 0x84, 0x89, 0x02, 0x10, 0x40, 0x24, 0x20, 0x7E, 0x24, 0x45, 0xFE, 0x64, 0x40, 0x54, 0x40, 0x44, 0x44, 0xFC, 0x7E, 0x44, 0x44, 0x64, 0x44, 0x54, 0x84, 0x54, 0x84, 0x44, 0x84, 0x45, 0x04, 0x55, 0x28, 0x8A, 0x10, 0x10, 0x00, 0x24, 0x04, 0x7F, 0xFE, 0x44, 0x08, 0x64, 0x08, 0x55, 0xE8, 0x45, 0x28, 0xFD, 0x28, 0x45, 0x28, 0x65, 0x28, 0x55, 0xE8, 0x55, 0x28, 0x44, 0x08, 0x44, 0x08, 0x54, 0x28, 0x88, 0x10, 0x10, 0x20, 0x24, 0x24, 0x7E, 0x3E, 0x44, 0x20, 0x64, 0x24, 0x55, 0xFE, 0x45, 0x04, 0xFD, 0x04, 0x45, 0x04, 0x65, 0xFC, 0x55, 0x00, 0x55, 0x00, 0x45, 0x00, 0x45, 0x00, 0x55, 0x00, 0x8A, 0x00, 0x10, 0x20, 0x24, 0x20, 0x7E, 0x20, 0x44, 0x24, 0x65, 0xFE, 0x55, 0x24, 0x45, 0x24, 0xFD, 0x24, 0x45, 0x24, 0x65, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x45, 0x24, 0x45, 0x24, 0x55, 0xFC, 0x89, 0x04, 0x10, 0x80, 0x24, 0x80, 0x7E, 0x84, 0x44, 0xFE, 0x65, 0x40, 0x55, 0x40, 0x46, 0x50, 0xFC, 0x78, 0x44, 0x40, 0x64, 0x40, 0x54, 0x48, 0x54, 0x7C, 0x44, 0x40, 0x44, 0x40, 0x54, 0x40, 0x88, 0x40, 0x10, 0x04, 0x21, 0xFE, 0x7C, 0x50, 0x44, 0x50, 0x64, 0x54, 0x55, 0xFE, 0x45, 0x54, 0xFD, 0x54, 0x45, 0x54, 0x65, 0x54, 0x55, 0x5C, 0x55, 0x84, 0x45, 0x04, 0x45, 0x04, 0x55, 0xFC, 0x89, 0x04, 0x10, 0x20, 0x25, 0x24, 0x7E, 0xA8, 0x44, 0xB0, 0x64, 0x24, 0x55, 0xFE, 0x45, 0x04, 0xFD, 0x04, 0x45, 0xFC, 0x65, 0x04, 0x55, 0x04, 0x55, 0xFC, 0x45, 0x04, 0x45, 0x04, 0x55, 0x14, 0x89, 0x08, 0x10, 0x04, 0x25, 0xFE, 0x7F, 0x04, 0x45, 0x04, 0x65, 0xFC, 0x55, 0x00, 0x45, 0xFC, 0xFD, 0x20, 0x45, 0xFC, 0x65, 0x20, 0x55, 0xFE, 0x55, 0x20, 0x45, 0x20, 0x45, 0x22, 0x56, 0x22, 0x88, 0x1E, 0x10, 0x08, 0x24, 0xFC, 0x7E, 0x10, 0x44, 0x20, 0x64, 0x24, 0x57, 0xFE, 0x44, 0x20, 0xFC, 0xA0, 0x44, 0x44, 0x65, 0xFE, 0x55, 0x54, 0x55, 0x54, 0x45, 0x54, 0x45, 0x54, 0x57, 0xFE, 0x88, 0x00, 0x11, 0x04, 0x20, 0x88, 0x7C, 0x50, 0x47, 0xFE, 0x64, 0x20, 0x54, 0x44, 0x45, 0xFE, 0xFD, 0x04, 0x45, 0x04, 0x65, 0xFC, 0x55, 0x04, 0x55, 0xFC, 0x45, 0x04, 0x45, 0x04, 0x55, 0xFC, 0x89, 0x04, 0x10, 0x50, 0x24, 0x54, 0x7F, 0xFE, 0x44, 0x50, 0x65, 0xFC, 0x55, 0x54, 0x45, 0xFC, 0xFD, 0x54, 0x45, 0xFC, 0x64, 0x00, 0x55, 0xFC, 0x55, 0x04, 0x45, 0xFC, 0x45, 0x04, 0x55, 0xFC, 0x89, 0x04, 0x10, 0x20, 0x25, 0xFC, 0x7E, 0x88, 0x44, 0x50, 0x67, 0xFE, 0x54, 0x00, 0x45, 0xFC, 0xFD, 0x24, 0x45, 0xFC, 0x65, 0x24, 0x55, 0xFC, 0x54, 0x20, 0x45, 0xFC, 0x44, 0x20, 0x57, 0xFE, 0x88, 0x00, 0x10, 0x50, 0x24, 0x54, 0x7F, 0xFE, 0x44, 0x50, 0x65, 0xFE, 0x55, 0x02, 0x46, 0xF4, 0xFC, 0x00, 0x47, 0xFE, 0x64, 0x84, 0x57, 0x48, 0x54, 0xB0, 0x47, 0x70, 0x44, 0xAE, 0x57, 0x24, 0x88, 0x60, 0x01, 0x00, 0x02, 0x80, 0x06, 0x40, 0x09, 0x30, 0x37, 0xEE, 0xC0, 0x24, 0x02, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x00, 0x0D, 0x10, 0x14, 0xA0, 0x24, 0x40, 0xC5, 0x30, 0x06, 0x0E, 0x04, 0x04, 0x04, 0x20, 0x1F, 0xF0, 0x10, 0x20, 0x14, 0x20, 0x12, 0xA0, 0x10, 0x44, 0x1F, 0xFE, 0x02, 0x04, 0x01, 0x24, 0xFF, 0xF4, 0x05, 0x14, 0x0C, 0xA8, 0x14, 0x40, 0x65, 0x3C, 0x06, 0x08, 0x04, 0x00, 0x10, 0x00, 0x10, 0x08, 0x7E, 0xFC, 0x12, 0x88, 0x12, 0x88, 0x22, 0x88, 0x2A, 0xF8, 0x45, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x10, 0x0C, 0xA0, 0x34, 0x40, 0xC5, 0x30, 0x06, 0x0E, 0x04, 0x04, 0x01, 0x40, 0x01, 0x28, 0x7F, 0xFC, 0x11, 0x10, 0x0D, 0x60, 0x05, 0x80, 0x09, 0x60, 0x33, 0x14, 0xFF, 0xFE, 0x05, 0x08, 0x0D, 0x10, 0x14, 0xA0, 0x24, 0x40, 0xC5, 0x30, 0x06, 0x0E, 0x04, 0x04, 0x10, 0x40, 0x08, 0x50, 0x41, 0x4C, 0x25, 0x44, 0x0A, 0x50, 0x10, 0x60, 0x21, 0x80, 0x2E, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x05, 0x10, 0x0C, 0xA0, 0x34, 0x40, 0xC5, 0x30, 0x06, 0x0E, 0x04, 0x04, 0x02, 0x20, 0x3F, 0xFC, 0x22, 0x88, 0x3E, 0x50, 0x21, 0xFE, 0x7E, 0x20, 0xA2, 0xF8, 0x22, 0x20, 0x3F, 0x20, 0x01, 0x24, 0xFF, 0xFE, 0x04, 0x90, 0x0C, 0x60, 0x15, 0x1E, 0x66, 0x04, 0x04, 0x00, 0x44, 0x08, 0x24, 0x1C, 0x29, 0xE0, 0xFF, 0x20, 0x11, 0x20, 0x11, 0x20, 0x7D, 0x24, 0x11, 0xFE, 0x11, 0x20, 0xFF, 0x10, 0x11, 0x10, 0x11, 0x10, 0x21, 0x2A, 0x21, 0x4A, 0x41, 0xA6, 0x81, 0x12, 0x44, 0x08, 0x25, 0xFC, 0x28, 0x08, 0xFE, 0x10, 0x10, 0x20, 0x10, 0x50, 0x7C, 0x88, 0x11, 0x06, 0x12, 0x00, 0xFE, 0xF8, 0x10, 0x20, 0x10, 0x20, 0x20, 0x20, 0x20, 0x24, 0x43, 0xFE, 0x80, 0x00, 0x44, 0x20, 0x24, 0x20, 0x28, 0x50, 0xFE, 0x88, 0x11, 0xFC, 0x10, 0x88, 0x7D, 0x06, 0x12, 0x82, 0x10, 0xF8, 0xFE, 0x88, 0x10, 0x88, 0x11, 0x50, 0x22, 0x20, 0x20, 0x50, 0x40, 0x8E, 0x83, 0x04, 0x44, 0x08, 0x25, 0xFC, 0x29, 0x08, 0xFD, 0xF8, 0x11, 0x08, 0x11, 0xF8, 0x7C, 0x84, 0x10, 0xFE, 0x11, 0x04, 0xFE, 0x24, 0x15, 0x24, 0x11, 0x54, 0x21, 0x04, 0x21, 0xE4, 0x40, 0x14, 0x80, 0x08, 0x44, 0x20, 0x25, 0x24, 0x29, 0x24, 0xFD, 0x24, 0x11, 0xFC, 0x10, 0x80, 0x7C, 0x84, 0x13, 0xFE, 0x10, 0x90, 0xFE, 0x90, 0x11, 0x54, 0x11, 0x58, 0x22, 0xA8, 0x22, 0x28, 0x44, 0x44, 0x88, 0x82, 0x04, 0x40, 0x7F, 0xFC, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x80, 0x3E, 0xA0, 0x08, 0x94, 0xFF, 0xFE, 0x2A, 0x80, 0x3D, 0x48, 0x51, 0x50, 0x9E, 0x22, 0x02, 0x52, 0x0C, 0x8E, 0x10, 0x20, 0x10, 0x20, 0x94, 0x20, 0x54, 0x20, 0x59, 0x24, 0x11, 0x24, 0xFF, 0x24, 0x31, 0x24, 0x39, 0x24, 0x55, 0x24, 0x55, 0x24, 0x91, 0x24, 0x11, 0x24, 0x11, 0xFC, 0x10, 0x04, 0x10, 0x00, 0x10, 0x40, 0x10, 0x40, 0x94, 0x40, 0x54, 0x44, 0x58, 0xFE, 0x11, 0x08, 0xFE, 0x88, 0x30, 0x88, 0x38, 0x88, 0x54, 0x90, 0x54, 0x50, 0x90, 0x20, 0x10, 0x50, 0x10, 0x8E, 0x11, 0x04, 0x12, 0x00, 0x10, 0x00, 0x10, 0x04, 0x95, 0xFE, 0x55, 0x24, 0x59, 0x24, 0x11, 0x24, 0xFF, 0x24, 0x31, 0x24, 0x39, 0xFC, 0x55, 0x04, 0x55, 0x00, 0x91, 0x00, 0x11, 0x02, 0x11, 0x02, 0x10, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x95, 0xFE, 0x55, 0x00, 0x59, 0x04, 0x11, 0xFE, 0xFF, 0x40, 0x31, 0x44, 0x39, 0x7E, 0x55, 0x44, 0x55, 0x44, 0x91, 0x44, 0x12, 0x44, 0x12, 0x44, 0x14, 0x94, 0x11, 0x08, 0x01, 0x00, 0x11, 0x10, 0x11, 0x10, 0x1F, 0xF0, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x11, 0x10, 0x09, 0x30, 0x05, 0x44, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x60, 0x19, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x10, 0x00, 0x10, 0x04, 0x97, 0xFE, 0x54, 0x90, 0x58, 0x90, 0x10, 0x94, 0xFF, 0xFE, 0x32, 0x94, 0x3A, 0x94, 0x56, 0x94, 0x56, 0x9C, 0x93, 0x04, 0x12, 0x04, 0x12, 0x04, 0x13, 0xFC, 0x12, 0x04, 0x01, 0x00, 0x41, 0x00, 0x31, 0xFC, 0x12, 0x48, 0x04, 0xA0, 0x11, 0x10, 0x26, 0x0E, 0x50, 0x10, 0x09, 0x30, 0x05, 0x44, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x60, 0x19, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x08, 0x00, 0x0F, 0x7C, 0x28, 0x44, 0x3F, 0x28, 0x21, 0x10, 0x52, 0x28, 0x8C, 0xC6, 0x19, 0x10, 0x69, 0x30, 0x05, 0x44, 0xFF, 0xFE, 0x03, 0x80, 0x05, 0x60, 0x19, 0x1C, 0x61, 0x08, 0x01, 0x00, 0x08, 0x00, 0x49, 0x12, 0x2A, 0x12, 0xFF, 0x92, 0x1C, 0x24, 0x2A, 0x24, 0x49, 0x24, 0x49, 0x48, 0x7F, 0xA4, 0x95, 0x24, 0x55, 0x24, 0x37, 0x92, 0x21, 0x12, 0x41, 0x12, 0x81, 0x12, 0x01, 0x00, 0x10, 0x40, 0x10, 0x20, 0x95, 0x20, 0x55, 0xFE, 0x59, 0x02, 0x12, 0x04, 0xFE, 0xF8, 0x30, 0x00, 0x38, 0x04, 0x57, 0xFE, 0x54, 0x20, 0x90, 0xA8, 0x11, 0x26, 0x12, 0x22, 0x10, 0xA0, 0x10, 0x40, 0x10, 0x20, 0x10, 0x40, 0x94, 0x88, 0x55, 0xFC, 0x58, 0x40, 0x13, 0xFE, 0xFE, 0x50, 0x30, 0x98, 0x39, 0x24, 0x56, 0xCA, 0x54, 0x10, 0x90, 0x64, 0x11, 0x88, 0x10, 0x30, 0x10, 0xC0, 0x17, 0x00, 0x10, 0x80, 0x10, 0xF8, 0x94, 0x88, 0x55, 0x08, 0x59, 0xFE, 0x13, 0x40, 0xFD, 0x40, 0x31, 0x7C, 0x39, 0x90, 0x55, 0x14, 0x55, 0xFE, 0x91, 0x10, 0x11, 0x10, 0x11, 0x28, 0x11, 0x24, 0x11, 0xC2, 0x11, 0x10, 0x11, 0x10, 0x95, 0xD0, 0x55, 0x58, 0x5A, 0x54, 0x11, 0x50, 0xFE, 0x90, 0x31, 0x56, 0x3A, 0x3C, 0x54, 0x08, 0x55, 0xFC, 0x91, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x11, 0xF8, 0x11, 0x08, 0x10, 0x00, 0x10, 0x88, 0x94, 0x50, 0x54, 0x04, 0x5B, 0xFE, 0x10, 0x00, 0xFE, 0x88, 0x30, 0x88, 0x39, 0x54, 0x57, 0xFC, 0x54, 0x88, 0x90, 0x88, 0x11, 0x10, 0x11, 0x54, 0x13, 0xFE, 0x10, 0x22, 0x10, 0x00, 0x11, 0xFC, 0x94, 0x24, 0x54, 0xA0, 0x58, 0xBC, 0x12, 0xE0, 0xFD, 0x3E, 0x32, 0x00, 0x39, 0xFC, 0x55, 0x04, 0x55, 0xFC, 0x91, 0x04, 0x11, 0xFC, 0x11, 0x04, 0x11, 0x14, 0x11, 0x08, 0x10, 0x00, 0x11, 0xF8, 0x94, 0x50, 0x54, 0x20, 0x59, 0xFE, 0x10, 0x62, 0xFE, 0xA4, 0x31, 0x20, 0x3A, 0x60, 0x54, 0x24, 0x55, 0xFE, 0x90, 0x70, 0x10, 0xA8, 0x11, 0x26, 0x12, 0x20, 0x10, 0x20, 0x10, 0x40, 0x10, 0x84, 0x95, 0xFE, 0x55, 0x04, 0x59, 0xFC, 0x11, 0x04, 0xFF, 0xFC, 0x31, 0x04, 0x39, 0xFC, 0x54, 0x28, 0x50, 0x24, 0x97, 0xFE, 0x10, 0x50, 0x10, 0x50, 0x10, 0x8E, 0x13, 0x04, 0x20, 0x04, 0x2F, 0x7E, 0x21, 0x44, 0xA9, 0x44, 0x71, 0x7C, 0x27, 0x10, 0xFC, 0x14, 0x24, 0x7E, 0x77, 0x54, 0x69, 0x54, 0xA9, 0x7C, 0x21, 0x10, 0x21, 0x10, 0x21, 0x14, 0x2A, 0xFE, 0x24, 0x02, 0x00, 0x10, 0x3F, 0xF8, 0x20, 0x10, 0x20, 0x10, 0x3F, 0xF0, 0x20, 0x10, 0x20, 0x10, 0x3F, 0xF0, 0x24, 0x10, 0x24, 0x20, 0x22, 0x40, 0x21, 0x80, 0x20, 0x60, 0x28, 0x1E, 0x30, 0x04, 0x20, 0x00, 0x7D, 0xF8, 0x44, 0x20, 0x7D, 0x24, 0x45, 0xFE, 0x7C, 0x20, 0x48, 0x52, 0x5C, 0x92, 0x63, 0x0E, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x02, 0x08, 0x7F, 0xFC, 0x22, 0x88, 0x12, 0x48, 0x02, 0x08, 0x1A, 0x68, 0x63, 0x88, 0x0A, 0x28, 0x04, 0x10, 0x08, 0x24, 0xFF, 0xFE, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x10, 0x00, 0x10, 0x44, 0x2B, 0xFE, 0x24, 0x44, 0x50, 0x44, 0x8A, 0x64, 0x01, 0x54, 0x7C, 0xCC, 0x04, 0x44, 0x08, 0xCC, 0x49, 0x54, 0x32, 0x64, 0x10, 0x44, 0x08, 0x44, 0x09, 0x54, 0x00, 0x88, 0x01, 0x00, 0x02, 0x80, 0x0C, 0x60, 0x37, 0xD8, 0xC0, 0x06, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x08, 0x7F, 0xFC, 0x12, 0x48, 0x0A, 0x28, 0x12, 0x48, 0x22, 0x88, 0x0A, 0x28, 0x04, 0x10, 0x02, 0x20, 0x1F, 0xC0, 0x02, 0x84, 0xFF, 0xFE, 0x02, 0x00, 0x0F, 0xF8, 0x38, 0x08, 0xCF, 0xF8, 0x08, 0x08, 0x0F, 0xF8, 0x00, 0x04, 0x7E, 0xFE, 0x22, 0x44, 0x1A, 0x34, 0x62, 0xC4, 0x06, 0x0C, 0x02, 0x80, 0x02, 0x88, 0x7E, 0xFC, 0x02, 0x80, 0x3E, 0xF8, 0x02, 0x80, 0xFE, 0xFE, 0x02, 0x88, 0x7F, 0xFC, 0x22, 0x08, 0x12, 0x48, 0x0A, 0x28, 0x12, 0x48, 0x63, 0x88, 0x0A, 0x28, 0x04, 0x10, 0x08, 0x20, 0x04, 0x44, 0xFF, 0xFE, 0x00, 0x08, 0x3E, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x18, 0x7E, 0xFC, 0x22, 0x44, 0x12, 0x24, 0x1A, 0x34, 0x62, 0xC4, 0x06, 0x0C, 0x10, 0x00, 0x09, 0x24, 0x7F, 0xFE, 0x41, 0x24, 0x41, 0x24, 0x7F, 0xB4, 0x40, 0x6C, 0x40, 0x24, 0x7F, 0x24, 0x55, 0x6C, 0x55, 0xB4, 0x7F, 0x24, 0xD5, 0x24, 0x55, 0x24, 0x41, 0xB4, 0x43, 0x48, 0x02, 0x24, 0x7F, 0xFE, 0x00, 0x24, 0x3E, 0x24, 0x22, 0x24, 0x3E, 0xB4, 0x00, 0x6C, 0x7F, 0x24, 0x41, 0x24, 0x55, 0x6C, 0x55, 0xB4, 0x7F, 0x24, 0x49, 0x24, 0x49, 0x24, 0x43, 0xB4, 0x00, 0x48, 0x7F, 0x7C, 0x50, 0x44, 0x5E, 0x46, 0x68, 0x80, 0x7F, 0x7C, 0x48, 0x28, 0x54, 0x10, 0x7F, 0x6E, 0x00, 0x04, 0x7E, 0xFE, 0x22, 0x44, 0x12, 0x24, 0x1A, 0x34, 0x62, 0xC4, 0x0A, 0x14, 0x04, 0x08, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x08, 0x10, 0x10, 0x30, 0x3F, 0xC0, 0x01, 0x00, 0x02, 0x20, 0x04, 0x10, 0x3F, 0xF8, 0x01, 0x00, 0x09, 0x20, 0x19, 0x18, 0x21, 0x0C, 0x45, 0x04, 0x02, 0x00, 0x08, 0x40, 0x08, 0x48, 0xFE, 0xFC, 0x08, 0x48, 0x3E, 0xC8, 0xC8, 0x6A, 0x29, 0x8A, 0x12, 0x26, 0x1F, 0xC0, 0x01, 0x00, 0x02, 0x10, 0x3F, 0xF8, 0x09, 0x20, 0x11, 0x18, 0x21, 0x08, 0x03, 0x00, 0x08, 0x20, 0x08, 0x28, 0x7F, 0xFC, 0x0A, 0x20, 0x09, 0x20, 0x08, 0xA4, 0xFF, 0xFE, 0x09, 0x20, 0x12, 0x30, 0x2F, 0xEE, 0xC1, 0x04, 0x02, 0x10, 0x3F, 0xF8, 0x09, 0x20, 0x11, 0x18, 0x23, 0x08, 0x10, 0x40, 0x08, 0x48, 0x3E, 0xFC, 0x23, 0x48, 0x22, 0x30, 0x3E, 0x48, 0x41, 0x86, 0x42, 0x20, 0x9F, 0xC0, 0x01, 0x00, 0x02, 0x10, 0x3F, 0xF8, 0x09, 0x20, 0x11, 0x18, 0x21, 0x08, 0x03, 0x00, 0x02, 0x1C, 0x0D, 0xE0, 0xF0, 0x20, 0x94, 0x40, 0x54, 0x84, 0x49, 0xF8, 0x7E, 0x10, 0x90, 0x20, 0x10, 0x44, 0xFD, 0xFE, 0x10, 0x20, 0x54, 0xA8, 0x55, 0x26, 0x56, 0x22, 0x7C, 0xA0, 0x00, 0x40, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x1F, 0xF0, 0x12, 0x14, 0xFF, 0xFE, 0x10, 0x90, 0x1F, 0xF0, 0x00, 0x1C, 0x3E, 0xE0, 0x32, 0x24, 0x2A, 0xF8, 0xFF, 0x24, 0x28, 0xFE, 0x4A, 0x54, 0x18, 0xB2, 0x10, 0x20, 0x14, 0x20, 0xFE, 0x28, 0x11, 0xFC, 0x7C, 0x20, 0x10, 0x20, 0xFE, 0x24, 0x21, 0xFE, 0x3C, 0x20, 0x44, 0x20, 0xA4, 0x50, 0x28, 0x50, 0x10, 0x88, 0x28, 0x88, 0x41, 0x06, 0x82, 0x04, 0x10, 0x80, 0x14, 0x80, 0xFE, 0x84, 0x10, 0xFE, 0x55, 0x04, 0xBA, 0x4C, 0x11, 0x54, 0x28, 0xE4, 0x67, 0xFC, 0xBC, 0x44, 0x24, 0xE4, 0x29, 0x54, 0x5A, 0x4C, 0x10, 0x44, 0x20, 0x54, 0xC0, 0x48, 0x08, 0x08, 0x0A, 0x08, 0x7F, 0x48, 0x08, 0x48, 0x09, 0x48, 0xFF, 0xC8, 0x08, 0x48, 0x28, 0x48, 0x2A, 0x48, 0x2F, 0x78, 0x28, 0x08, 0x28, 0x08, 0x58, 0x08, 0x48, 0x06, 0x87, 0xFC, 0x00, 0x00, 0x08, 0x08, 0x08, 0xFC, 0x7F, 0x88, 0x08, 0x88, 0x0A, 0xF8, 0xFF, 0x88, 0x08, 0x88, 0x28, 0xF8, 0x28, 0x88, 0x2E, 0x88, 0x28, 0x88, 0x2B, 0xFE, 0x58, 0x00, 0x48, 0x06, 0x87, 0xFC, 0x00, 0x00, 0x10, 0x44, 0x17, 0xE4, 0x7D, 0x04, 0x11, 0x14, 0x11, 0xD4, 0xFD, 0x54, 0x12, 0x54, 0x55, 0x54, 0x50, 0xD4, 0x5C, 0x94, 0x51, 0x04, 0x72, 0x14, 0x50, 0x08, 0x48, 0x06, 0x87, 0xFC, 0x00, 0x00, 0x10, 0x20, 0x12, 0x20, 0x7D, 0x20, 0x11, 0x7E, 0x14, 0x82, 0xFE, 0x14, 0x10, 0x90, 0x50, 0x90, 0x51, 0x10, 0x5D, 0x28, 0x52, 0x26, 0x72, 0x42, 0x50, 0x80, 0x48, 0x06, 0x87, 0xFC, 0x00, 0x00, 0x11, 0x08, 0x15, 0x28, 0x7F, 0xBC, 0x19, 0x48, 0x17, 0xFE, 0xFB, 0x18, 0x15, 0xAA, 0x59, 0x4E, 0x57, 0xF8, 0x5A, 0x08, 0x52, 0x48, 0x72, 0x48, 0x52, 0xB8, 0x49, 0x08, 0x86, 0x06, 0x03, 0xFC, 0x08, 0x08, 0x08, 0xFC, 0x0A, 0x88, 0x7F, 0x88, 0x08, 0x88, 0x08, 0xA8, 0xFF, 0x90, 0x14, 0xFC, 0x54, 0x84, 0x56, 0xC4, 0x55, 0xA8, 0x94, 0xA8, 0x14, 0x90, 0x14, 0xA8, 0x24, 0xC6, 0x4C, 0x84, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0x7E, 0xFC, 0x08, 0x28, 0x08, 0x30, 0xFF, 0xFE, 0x14, 0x40, 0x56, 0xFC, 0x55, 0x84, 0x56, 0x84, 0x94, 0xFC, 0x14, 0x84, 0x14, 0x84, 0x24, 0xFC, 0x4C, 0x84, 0x00, 0x00, 0xFF, 0x08, 0x01, 0xFC, 0x00, 0x20, 0x7E, 0x20, 0x42, 0x20, 0x42, 0x20, 0x42, 0x20, 0x7E, 0x20, 0x00, 0x20, 0x44, 0x20, 0x24, 0x20, 0x28, 0x20, 0x0E, 0x24, 0xF1, 0xFE, 0x40, 0x00, 0x02, 0x20, 0xFF, 0x20, 0x00, 0x24, 0x01, 0xFE, 0x7E, 0x20, 0x42, 0x20, 0x42, 0xF8, 0x42, 0x08, 0x7E, 0x88, 0x00, 0x50, 0x44, 0x50, 0x24, 0x20, 0x28, 0x50, 0x0E, 0x48, 0xF0, 0x8E, 0x43, 0x04, 0x01, 0x00, 0xFF, 0x84, 0x14, 0xFE, 0x14, 0x10, 0x7F, 0x10, 0x55, 0x10, 0x55, 0x10, 0x55, 0x10, 0x57, 0x10, 0x61, 0x10, 0x41, 0x10, 0x7F, 0x10, 0x41, 0x10, 0x41, 0x10, 0x7F, 0x50, 0x41, 0x20, 0x01, 0x00, 0xFF, 0x88, 0x14, 0x7C, 0x15, 0x10, 0x7F, 0x90, 0x55, 0x10, 0x55, 0x14, 0x55, 0xFE, 0x57, 0x10, 0x61, 0x10, 0x41, 0x10, 0x7F, 0x10, 0x41, 0x10, 0x41, 0x10, 0x7F, 0x10, 0x41, 0x10, 0x01, 0x08, 0xFF, 0x88, 0x14, 0x08, 0x14, 0x08, 0x7F, 0xFE, 0x55, 0x08, 0x55, 0x08, 0x55, 0x48, 0x57, 0x28, 0x61, 0x28, 0x41, 0x08, 0x7F, 0x08, 0x41, 0x08, 0x41, 0x08, 0x7F, 0x28, 0x41, 0x10, 0x04, 0x20, 0xFE, 0x20, 0x28, 0x20, 0x28, 0x24, 0xFE, 0xA6, 0xAA, 0xBC, 0xAA, 0xE4, 0xAB, 0xA4, 0xAE, 0xA4, 0xC2, 0xB4, 0x82, 0xA8, 0xFE, 0xA0, 0x82, 0x82, 0x82, 0x82, 0xFE, 0x7E, 0x82, 0x00, 0x04, 0x20, 0xFE, 0x20, 0x28, 0x20, 0x28, 0x24, 0xFF, 0xFE, 0xAA, 0x20, 0xAA, 0x20, 0xAA, 0x28, 0xAE, 0xFC, 0xC2, 0x88, 0x82, 0x88, 0xFE, 0x88, 0x82, 0x88, 0x82, 0x88, 0xFE, 0xF8, 0x82, 0x88, 0x01, 0x20, 0xFF, 0xA0, 0x14, 0x20, 0x14, 0x24, 0x7F, 0x7E, 0x55, 0x60, 0x55, 0xA4, 0x55, 0x3E, 0x57, 0x20, 0x61, 0x20, 0x41, 0x24, 0x7F, 0x3E, 0x41, 0x20, 0x41, 0x20, 0x7F, 0x20, 0x41, 0x20, 0x01, 0x20, 0xFF, 0x90, 0x14, 0x10, 0x14, 0x7E, 0x7F, 0x42, 0x55, 0x84, 0x55, 0x20, 0x55, 0x20, 0x57, 0x24, 0x61, 0x28, 0x41, 0x30, 0x7F, 0x20, 0x41, 0x22, 0x41, 0x22, 0x7F, 0x1E, 0x41, 0x00, 0x01, 0x10, 0xFF, 0x90, 0x14, 0x50, 0x14, 0x7C, 0x7F, 0x50, 0x55, 0x90, 0x55, 0x14, 0x55, 0xFE, 0x57, 0x28, 0x61, 0x28, 0x41, 0x28, 0x7F, 0x28, 0x41, 0x2A, 0x41, 0x4A, 0x7F, 0x86, 0x41, 0x00, 0x01, 0x10, 0xFF, 0x90, 0x14, 0x10, 0x14, 0x3E, 0x7F, 0x44, 0x55, 0xA8, 0x55, 0x18, 0x55, 0x10, 0x57, 0x24, 0x61, 0x7E, 0x41, 0xC4, 0x7F, 0x44, 0x41, 0x44, 0x41, 0x44, 0x7F, 0x7C, 0x41, 0x44, 0x01, 0x40, 0xFF, 0xC4, 0x14, 0x4C, 0x14, 0x50, 0x7F, 0x62, 0x55, 0x42, 0x55, 0x7E, 0x55, 0x04, 0x57, 0x7E, 0x61, 0x44, 0x41, 0x44, 0x7F, 0x7C, 0x41, 0x44, 0x41, 0x44, 0x7F, 0x7C, 0x41, 0x44, 0x04, 0x04, 0xFF, 0xFE, 0x28, 0x28, 0x28, 0xAA, 0xFE, 0x6C, 0xAA, 0x28, 0xAA, 0xFE, 0xAA, 0x80, 0xAE, 0x80, 0xC2, 0x80, 0x82, 0x80, 0xFE, 0x80, 0x82, 0x80, 0x82, 0x80, 0xFF, 0x00, 0x82, 0x00, 0x04, 0x04, 0xFF, 0xFE, 0x28, 0x00, 0x28, 0x04, 0x7D, 0xDE, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x6D, 0x54, 0x45, 0xDC, 0x45, 0x54, 0x7D, 0x54, 0x45, 0x54, 0x45, 0x54, 0x7D, 0x54, 0x45, 0x54, 0x04, 0x04, 0xFE, 0xFE, 0x28, 0x84, 0x28, 0x84, 0xFE, 0x84, 0xAA, 0xFC, 0xAA, 0x00, 0xAB, 0xFE, 0xAE, 0x20, 0xC2, 0x28, 0x82, 0xFC, 0xFE, 0x20, 0x82, 0x20, 0x82, 0x24, 0xFF, 0xFE, 0x82, 0x00, 0x04, 0x20, 0xFE, 0x20, 0x28, 0x50, 0x28, 0x50, 0xFE, 0x8E, 0xAB, 0x04, 0xAA, 0xF8, 0xAA, 0x20, 0xAE, 0x24, 0xC3, 0xFE, 0x82, 0x20, 0xFE, 0x70, 0x82, 0xAC, 0x83, 0x24, 0xFE, 0xA0, 0x82, 0x40, 0x04, 0x08, 0xFE, 0x1C, 0x29, 0xE0, 0x28, 0x04, 0xFF, 0x24, 0xAA, 0xA8, 0xAA, 0x08, 0xAB, 0xFE, 0xAE, 0x08, 0xC2, 0x88, 0x82, 0x48, 0xFE, 0x48, 0x82, 0x08, 0x82, 0x08, 0xFE, 0x28, 0x82, 0x10, 0x04, 0x04, 0xFE, 0xFE, 0x28, 0x84, 0x28, 0x84, 0xFE, 0xFC, 0xAA, 0x84, 0xAA, 0x84, 0xAA, 0xFC, 0xAE, 0x10, 0xC2, 0x90, 0x82, 0x92, 0xFE, 0xF4, 0x82, 0x98, 0x82, 0xB2, 0xFE, 0xD2, 0x82, 0x8E, 0x04, 0x20, 0xFE, 0x10, 0x28, 0x14, 0x29, 0xFE, 0xFE, 0x00, 0xAA, 0x84, 0xAA, 0x48, 0xAB, 0xFE, 0xAE, 0x00, 0xC2, 0x04, 0x82, 0xFE, 0xFE, 0x84, 0x82, 0x84, 0x82, 0x84, 0xFE, 0xFC, 0x82, 0x84, 0x04, 0x84, 0xFE, 0x9E, 0x28, 0x94, 0x28, 0x94, 0x7F, 0xF4, 0x54, 0x9C, 0x54, 0x94, 0x55, 0xD4, 0x6D, 0x54, 0x45, 0x5C, 0x45, 0x54, 0x7D, 0x54, 0x45, 0xD4, 0x45, 0x24, 0x7C, 0x24, 0x44, 0x4C, 0x04, 0x08, 0xFE, 0xFC, 0x28, 0x88, 0x28, 0xF8, 0x7C, 0x88, 0x54, 0xF8, 0x54, 0x00, 0x57, 0xFE, 0x6C, 0x20, 0x44, 0xA8, 0x44, 0xBC, 0x7C, 0xA0, 0x44, 0xA0, 0x44, 0xE6, 0x7D, 0x3C, 0x46, 0x00, 0x04, 0x00, 0xFE, 0xFE, 0x28, 0x12, 0x28, 0x50, 0xFE, 0x5C, 0xAA, 0x50, 0xAA, 0xB0, 0xAB, 0x0E, 0xAE, 0x7C, 0xC2, 0x44, 0x82, 0x7C, 0xFE, 0x44, 0x82, 0x7C, 0x82, 0x44, 0xFE, 0x54, 0x82, 0x48, 0x04, 0x40, 0xFE, 0x44, 0x2B, 0xFE, 0x28, 0x40, 0x7C, 0x88, 0x55, 0xFC, 0x56, 0x88, 0x54, 0x88, 0x6C, 0xF8, 0x44, 0x04, 0x45, 0xFE, 0x7D, 0x54, 0x45, 0x54, 0x45, 0x54, 0x7F, 0xFE, 0x44, 0x00, 0x04, 0x20, 0xFE, 0x14, 0x29, 0xFE, 0x29, 0x10, 0x7D, 0x7C, 0x55, 0x14, 0x55, 0xFE, 0x55, 0x14, 0x6D, 0x7C, 0x45, 0x10, 0x45, 0x7C, 0x7D, 0x44, 0x45, 0x44, 0x45, 0x44, 0x7E, 0x7C, 0x44, 0x44, 0x04, 0x04, 0xFF, 0xDE, 0x29, 0x54, 0x28, 0xCC, 0x7D, 0x54, 0x54, 0x64, 0x54, 0x50, 0x54, 0xA8, 0x6F, 0x46, 0x44, 0x90, 0x45, 0x20, 0x7C, 0x48, 0x45, 0x90, 0x44, 0x20, 0x7C, 0x40, 0x45, 0x80, 0x02, 0x50, 0xFF, 0x54, 0x28, 0xD8, 0x28, 0x50, 0xFF, 0xFE, 0xAA, 0x88, 0xAA, 0x50, 0xAA, 0xFC, 0xAE, 0x20, 0xC2, 0xFC, 0x82, 0x20, 0xFF, 0xFE, 0x82, 0x20, 0x82, 0x50, 0xFE, 0x8E, 0x83, 0x04, 0x04, 0x40, 0xFE, 0x60, 0x28, 0x94, 0x28, 0xFE, 0xFF, 0x90, 0xAA, 0xFC, 0xAA, 0x90, 0xAA, 0x90, 0xAE, 0xFC, 0xC2, 0x90, 0x82, 0x94, 0xFE, 0xFE, 0x82, 0x80, 0x83, 0x54, 0xFF, 0x52, 0x82, 0x02, 0x04, 0x40, 0xFE, 0x24, 0x29, 0xFE, 0x28, 0x40, 0x7C, 0x88, 0x55, 0xFC, 0x54, 0xA8, 0x54, 0xAA, 0x6D, 0x2E, 0x46, 0x00, 0x45, 0xFC, 0x7D, 0x54, 0x45, 0x54, 0x45, 0x54, 0x7F, 0xFE, 0x44, 0x00, 0x04, 0x20, 0xFE, 0x3C, 0x28, 0x20, 0x29, 0xFE, 0x7D, 0x22, 0x55, 0xFC, 0x55, 0x20, 0x55, 0xFE, 0x6D, 0x20, 0x45, 0x54, 0x45, 0xB8, 0x7D, 0x58, 0x45, 0xB6, 0x45, 0x54, 0x7E, 0x90, 0x44, 0x30, 0x04, 0x50, 0xFF, 0xFC, 0x29, 0x54, 0x29, 0xFC, 0x7D, 0x54, 0x55, 0xFC, 0x54, 0x00, 0x55, 0xFC, 0x6C, 0x00, 0x45, 0xFC, 0x45, 0x04, 0x7D, 0xFC, 0x44, 0x88, 0x44, 0x50, 0x7F, 0xFE, 0x44, 0x00, 0x04, 0x1C, 0xFF, 0xE0, 0x28, 0x24, 0x2B, 0xFE, 0x7C, 0x20, 0x55, 0xFC, 0x55, 0xAC, 0x55, 0x74, 0x6D, 0xFC, 0x44, 0x20, 0x45, 0xFC, 0x7C, 0x20, 0x47, 0xFE, 0x45, 0x54, 0x7D, 0x52, 0x46, 0x02, 0x00, 0x04, 0xFF, 0xFE, 0x02, 0x00, 0x06, 0x08, 0x09, 0x18, 0x11, 0xA0, 0x62, 0xC0, 0x04, 0xC0, 0x08, 0xA0, 0x31, 0xA0, 0x02, 0x90, 0x04, 0x8E, 0x18, 0x84, 0x60, 0x80, 0x02, 0x80, 0x01, 0x00, 0x11, 0x08, 0x10, 0x90, 0x1F, 0xFE, 0x10, 0x40, 0x7D, 0xFC, 0x44, 0x40, 0x47, 0xFE, 0x6C, 0x80, 0x54, 0x88, 0x54, 0xFC, 0x55, 0x20, 0x6D, 0x20, 0x46, 0x20, 0x44, 0x24, 0x7F, 0xFE, 0x44, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x00, 0x07, 0xF0, 0x04, 0x10, 0x08, 0x90, 0x30, 0x60, 0xDF, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x09, 0x00, 0x09, 0xF8, 0x19, 0x00, 0x27, 0x06, 0xC0, 0xFC, 0x00, 0x08, 0x7E, 0xFC, 0x08, 0x88, 0x08, 0xC8, 0x0E, 0xAA, 0x71, 0x06, 0x02, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x09, 0x00, 0x09, 0xF8, 0x0D, 0x00, 0x33, 0x06, 0xC0, 0xFC, 0x08, 0x0C, 0x08, 0xF0, 0xFE, 0x84, 0x08, 0xFE, 0x1E, 0x90, 0xE8, 0x90, 0x09, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x09, 0x00, 0x09, 0xF8, 0x0D, 0x00, 0x33, 0x06, 0xC0, 0xFC, 0x00, 0x48, 0x3F, 0xFE, 0x24, 0x40, 0x27, 0x48, 0x24, 0x50, 0x3F, 0xA0, 0x55, 0x52, 0x64, 0x8A, 0x9F, 0xF6, 0x10, 0x10, 0x1F, 0xF0, 0x09, 0x00, 0x09, 0xF8, 0x0D, 0x00, 0x33, 0x06, 0xC0, 0xFC, 0x49, 0x20, 0x2A, 0x24, 0x7F, 0x3E, 0x49, 0x44, 0x5D, 0xA8, 0x6B, 0x10, 0x49, 0x6E, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x09, 0x00, 0x09, 0xF8, 0x0D, 0x00, 0x33, 0x06, 0xC0, 0xFC, 0x04, 0x80, 0x7E, 0x80, 0x44, 0x84, 0x44, 0xFE, 0x45, 0x04, 0x7D, 0x04, 0x56, 0x04, 0x10, 0x84, 0x50, 0x44, 0x5C, 0x44, 0x50, 0x04, 0x50, 0x04, 0x5C, 0x04, 0xF0, 0x44, 0x40, 0x28, 0x00, 0x10, 0x04, 0x00, 0x7F, 0xFC, 0x44, 0x84, 0x44, 0x88, 0x44, 0x88, 0x7C, 0x90, 0x54, 0xBC, 0x10, 0x84, 0x50, 0xC4, 0x5C, 0xA8, 0x51, 0x28, 0x51, 0x10, 0x5D, 0x28, 0xF2, 0x28, 0x44, 0x46, 0x09, 0x84, 0x04, 0x04, 0x7F, 0xFE, 0x44, 0x88, 0x44, 0x88, 0x44, 0x88, 0x7C, 0x88, 0x10, 0x88, 0x13, 0xFE, 0x50, 0x88, 0x5C, 0x88, 0x50, 0x88, 0x51, 0x08, 0x5D, 0x08, 0xF1, 0x08, 0x42, 0x08, 0x04, 0x08, 0x04, 0x20, 0x7E, 0x20, 0x44, 0x28, 0x45, 0xFC, 0x44, 0x20, 0x7C, 0x20, 0x54, 0x24, 0x13, 0xFE, 0x50, 0x20, 0x5C, 0x50, 0x50, 0x50, 0x50, 0x90, 0x5C, 0x88, 0xF1, 0x08, 0x42, 0x06, 0x04, 0x04, 0x04, 0x40, 0x7E, 0x40, 0x44, 0xA0, 0x44, 0xA0, 0x44, 0x90, 0x7D, 0x08, 0x56, 0x16, 0x11, 0xF8, 0x51, 0x10, 0x5D, 0x10, 0x51, 0x10, 0x51, 0x50, 0x5D, 0x20, 0xF1, 0x04, 0x41, 0x04, 0x00, 0xFC, 0x04, 0x04, 0x7F, 0xFE, 0x44, 0x40, 0x44, 0x40, 0x44, 0x40, 0x7C, 0x80, 0x54, 0x84, 0x10, 0xFE, 0x51, 0x84, 0x5E, 0x84, 0x50, 0x84, 0x50, 0x84, 0x5C, 0x84, 0xF0, 0x84, 0x40, 0xFC, 0x00, 0x84, 0x04, 0x88, 0x7E, 0x88, 0x44, 0x88, 0x45, 0x08, 0x45, 0x08, 0x7F, 0xFE, 0x55, 0x08, 0x11, 0x08, 0x51, 0x48, 0x5D, 0x28, 0x51, 0x28, 0x51, 0x08, 0x5D, 0x08, 0xF1, 0x08, 0x41, 0x28, 0x01, 0x10, 0x00, 0x04, 0x7D, 0xDE, 0x45, 0x54, 0x45, 0x54, 0x45, 0x54, 0x7D, 0x54, 0x55, 0x54, 0x13, 0xFE, 0x51, 0x54, 0x5D, 0x54, 0x51, 0x54, 0x51, 0x54, 0x5D, 0x54, 0xF2, 0x54, 0x42, 0xE4, 0x04, 0x0C, 0x04, 0x1C, 0x7F, 0xE0, 0x45, 0x00, 0x45, 0x20, 0x45, 0x20, 0x7D, 0x20, 0x55, 0x24, 0x11, 0xFE, 0x50, 0x20, 0x5C, 0x20, 0x50, 0xA8, 0x51, 0x26, 0x5E, 0x22, 0xF0, 0x20, 0x40, 0xA0, 0x00, 0x40, 0x04, 0x40, 0x7E, 0x20, 0x44, 0x20, 0x45, 0xFE, 0x45, 0x02, 0x7E, 0x04, 0x54, 0x80, 0x10, 0x88, 0x50, 0x98, 0x5C, 0xA0, 0x50, 0xC0, 0x52, 0x80, 0x5C, 0x82, 0xF0, 0x82, 0x40, 0x7E, 0x00, 0x00, 0x09, 0x00, 0x7D, 0x00, 0x49, 0x00, 0x49, 0x04, 0x4F, 0xDE, 0x79, 0x54, 0x51, 0x54, 0x11, 0x54, 0x51, 0x54, 0x5D, 0x54, 0x51, 0x54, 0x51, 0x54, 0x5E, 0x54, 0xF2, 0x5C, 0x45, 0x54, 0x08, 0x80, 0x04, 0x20, 0x7E, 0x20, 0x44, 0x20, 0x45, 0xFE, 0x45, 0x22, 0x7D, 0x24, 0x55, 0x20, 0x11, 0xFC, 0x51, 0x88, 0x5D, 0x48, 0x51, 0x50, 0x51, 0x20, 0x5D, 0x50, 0xF2, 0x48, 0x42, 0x8E, 0x05, 0x04, 0x04, 0x40, 0x7E, 0x40, 0x44, 0x80, 0x44, 0x90, 0x45, 0x08, 0x7F, 0xFC, 0x54, 0x02, 0x10, 0x08, 0x51, 0xFC, 0x5D, 0x08, 0x51, 0x08, 0x51, 0x08, 0x5D, 0x08, 0xF1, 0x08, 0x41, 0xF8, 0x01, 0x08, 0x04, 0x20, 0x7E, 0x20, 0x44, 0x28, 0x45, 0xFC, 0x44, 0x20, 0x7C, 0x24, 0x53, 0xFE, 0x10, 0x00, 0x50, 0x20, 0x5C, 0x28, 0x51, 0xFC, 0x50, 0x20, 0x5C, 0x20, 0xF0, 0x24, 0x43, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x7E, 0x48, 0x44, 0x7C, 0x47, 0xC0, 0x44, 0x50, 0x7C, 0x22, 0x54, 0xD2, 0x13, 0x0E, 0x50, 0x08, 0x5D, 0xFC, 0x50, 0xA0, 0x50, 0xA0, 0x5C, 0xA0, 0xF1, 0x22, 0x42, 0x22, 0x04, 0x1E, 0x00, 0x10, 0x7D, 0x10, 0x45, 0x12, 0x45, 0xD4, 0x45, 0x18, 0x7D, 0x12, 0x55, 0x52, 0x11, 0x8E, 0x50, 0x20, 0x5C, 0x24, 0x53, 0xFE, 0x50, 0x20, 0x5C, 0x20, 0xF0, 0x20, 0x40, 0x20, 0x00, 0x20, 0x04, 0x20, 0x7E, 0x20, 0x45, 0x28, 0x45, 0xFC, 0x45, 0x20, 0x7E, 0x20, 0x54, 0x24, 0x13, 0xFE, 0x50, 0x90, 0x5C, 0x90, 0x50, 0x90, 0x50, 0x90, 0x5C, 0x92, 0xF1, 0x12, 0x42, 0x0E, 0x04, 0x00, 0x04, 0x00, 0x7E, 0x0C, 0x45, 0x70, 0x45, 0x10, 0x44, 0x10, 0x7C, 0x14, 0x57, 0xFE, 0x11, 0x10, 0x51, 0x10, 0x5D, 0x10, 0x51, 0x10, 0x51, 0x10, 0x5D, 0x10, 0xF2, 0x86, 0x44, 0x7C, 0x00, 0x00, 0x00, 0x40, 0x7C, 0x24, 0x47, 0xFE, 0x44, 0x88, 0x44, 0x50, 0x7C, 0x20, 0x54, 0x50, 0x10, 0x8E, 0x53, 0x04, 0x5C, 0x88, 0x50, 0x88, 0x50, 0x88, 0x5C, 0x88, 0xF0, 0x88, 0x41, 0x08, 0x02, 0x08, 0x04, 0x40, 0x7E, 0x20, 0x44, 0x04, 0x47, 0xFE, 0x44, 0x00, 0x7C, 0x88, 0x55, 0x06, 0x12, 0x8A, 0x50, 0x88, 0x5C, 0x50, 0x50, 0x50, 0x50, 0x20, 0x5C, 0x50, 0xF0, 0x88, 0x41, 0x0E, 0x02, 0x04, 0x04, 0x40, 0x7E, 0x28, 0x45, 0xFC, 0x45, 0x08, 0x45, 0x08, 0x7D, 0xF8, 0x55, 0x08, 0x11, 0x08, 0x51, 0xF8, 0x5D, 0x40, 0x51, 0x24, 0x51, 0x28, 0x5D, 0x10, 0xF1, 0x4E, 0x41, 0x84, 0x01, 0x00, 0x00, 0x08, 0x7D, 0xFC, 0x44, 0x08, 0x44, 0x08, 0x45, 0xF8, 0x7D, 0x00, 0x55, 0x04, 0x11, 0x04, 0x50, 0xFC, 0x5C, 0x00, 0x50, 0x40, 0x52, 0xA4, 0x5E, 0xA2, 0xF4, 0x8A, 0x40, 0x78, 0x00, 0x00, 0x04, 0x24, 0x7E, 0x3E, 0x44, 0x20, 0x44, 0x20, 0x45, 0xFC, 0x7D, 0x04, 0x55, 0xFC, 0x11, 0x04, 0x51, 0xFC, 0x5C, 0x20, 0x50, 0x24, 0x53, 0xFE, 0x5C, 0x20, 0xF0, 0x20, 0x40, 0x20, 0x00, 0x20, 0x00, 0x04, 0x7D, 0xFE, 0x45, 0x24, 0x45, 0x24, 0x45, 0xFC, 0x7D, 0x24, 0x55, 0x24, 0x11, 0xFC, 0x5C, 0x20, 0x53, 0xFE, 0x50, 0x70, 0x50, 0xA8, 0x5D, 0x26, 0xF2, 0x24, 0x40, 0x20, 0x00, 0x20, 0x09, 0x00, 0x7D, 0x00, 0x49, 0x00, 0x49, 0xFE, 0x4A, 0x92, 0x7C, 0x92, 0x50, 0x92, 0x17, 0xF2, 0x50, 0x92, 0x5C, 0x92, 0x50, 0x92, 0x51, 0x52, 0x5D, 0x32, 0xF2, 0x1E, 0x44, 0x12, 0x00, 0x00, 0x04, 0x0C, 0x7F, 0xF0, 0x45, 0x10, 0x45, 0x14, 0x45, 0xFE, 0x7D, 0x10, 0x55, 0x7C, 0x11, 0x44, 0x51, 0x54, 0x5D, 0x54, 0x51, 0x54, 0x51, 0x54, 0x5E, 0x20, 0xF2, 0x28, 0x44, 0x46, 0x00, 0x82, 0x04, 0x20, 0x7E, 0x10, 0x45, 0xFE, 0x45, 0x20, 0x45, 0x24, 0x7D, 0x3E, 0x55, 0x20, 0x11, 0x20, 0x51, 0x24, 0x5D, 0xFE, 0x52, 0x84, 0x52, 0x84, 0x5C, 0x84, 0xF4, 0x84, 0x48, 0xFC, 0x00, 0x84, 0x04, 0x40, 0x7E, 0x28, 0x45, 0xFC, 0x44, 0x00, 0x44, 0x88, 0x7C, 0x50, 0x54, 0x04, 0x13, 0xFE, 0x50, 0x00, 0x5D, 0xFC, 0x51, 0x04, 0x51, 0x04, 0x5D, 0x04, 0xF1, 0x04, 0x41, 0xFC, 0x01, 0x04, 0x04, 0x40, 0x7A, 0x5E, 0x4A, 0x92, 0x48, 0x14, 0x4F, 0xD4, 0x79, 0x18, 0x51, 0x14, 0x11, 0x54, 0x5F, 0xF2, 0x59, 0x12, 0x51, 0x1A, 0x51, 0x14, 0x5A, 0x90, 0xF2, 0x50, 0x44, 0x50, 0x00, 0x10, 0x00, 0x10, 0x78, 0x10, 0x4F, 0x7C, 0x49, 0x14, 0x49, 0xFE, 0x7A, 0x14, 0x57, 0x7C, 0x11, 0x10, 0x51, 0x7C, 0x5D, 0x10, 0x55, 0xFE, 0x53, 0x10, 0x5D, 0x10, 0xF2, 0x96, 0x44, 0x7C, 0x08, 0x00, 0x00, 0x48, 0x7D, 0x48, 0x47, 0xFE, 0x45, 0x48, 0x45, 0x48, 0x7D, 0x78, 0x55, 0x00, 0x11, 0xFC, 0x50, 0x20, 0x5C, 0x24, 0x53, 0xFE, 0x50, 0x70, 0x5C, 0xA8, 0xF1, 0x26, 0x42, 0x24, 0x00, 0x20, 0x08, 0x40, 0x7C, 0x40, 0x4A, 0x48, 0x4A, 0x48, 0x4B, 0xF8, 0x78, 0x00, 0x57, 0xFE, 0x10, 0x40, 0x58, 0x84, 0x57, 0xFE, 0x54, 0xA4, 0x54, 0xA4, 0x5C, 0xA4, 0xF4, 0xA4, 0x44, 0xA4, 0x04, 0x0C, 0x00, 0x0C, 0x7D, 0xF0, 0x44, 0x20, 0x44, 0x24, 0x47, 0xFE, 0x7C, 0x20, 0x55, 0xFC, 0x11, 0x24, 0x51, 0xFC, 0x5D, 0x24, 0x51, 0xFC, 0x50, 0x20, 0x5D, 0xFC, 0xF0, 0x20, 0x43, 0xFE, 0x00, 0x00, 0x00, 0x0C, 0x7D, 0xF0, 0x44, 0x24, 0x45, 0xFE, 0x45, 0x24, 0x7D, 0x24, 0x55, 0xFC, 0x11, 0x24, 0x50, 0x20, 0x5F, 0xFE, 0x52, 0x22, 0x52, 0x2A, 0x5E, 0xFA, 0xF2, 0x02, 0x42, 0x0A, 0x02, 0x04, 0x04, 0x20, 0x7E, 0x14, 0x45, 0xFE, 0x45, 0x48, 0x45, 0x48, 0x7D, 0xFE, 0x55, 0x48, 0x11, 0x78, 0x51, 0x00, 0x5D, 0xFC, 0x51, 0x04, 0x51, 0x48, 0x5E, 0x30, 0xF2, 0x28, 0x44, 0xC6, 0x0B, 0x04, 0x01, 0x08, 0x7C, 0x90, 0x47, 0xFE, 0x44, 0x40, 0x45, 0xFC, 0x7C, 0x40, 0x57, 0xFE, 0x10, 0x80, 0x50, 0x88, 0x5C, 0xFC, 0x51, 0x20, 0x51, 0x20, 0x5E, 0x20, 0xF0, 0x24, 0x43, 0xFE, 0x00, 0x00, 0x04, 0x40, 0x7E, 0x24, 0x45, 0xFE, 0x45, 0x04, 0x45, 0x04, 0x7D, 0xFC, 0x55, 0x04, 0x11, 0x00, 0x51, 0xFE, 0x5D, 0xAA, 0x52, 0xAA, 0x52, 0xFE, 0x5C, 0xAA, 0xF4, 0xAA, 0x48, 0xAA, 0x00, 0x84, 0x04, 0x00, 0x7E, 0xFC, 0x44, 0x48, 0x44, 0x30, 0x45, 0xFE, 0x7C, 0x32, 0x54, 0x54, 0x11, 0x90, 0x50, 0x30, 0x5C, 0x24, 0x53, 0xFE, 0x50, 0x70, 0x5C, 0xA8, 0xF1, 0x26, 0x42, 0x24, 0x00, 0x20, 0x08, 0x04, 0x7F, 0xFE, 0x49, 0x08, 0x49, 0xF8, 0x49, 0x08, 0x79, 0xF8, 0x51, 0x08, 0x17, 0xFE, 0x50, 0x08, 0x5F, 0xBE, 0x54, 0xA2, 0x52, 0x94, 0x59, 0x08, 0xF2, 0x94, 0x44, 0x24, 0x08, 0x42, 0x08, 0x90, 0x7C, 0x90, 0x4B, 0xFC, 0x48, 0x90, 0x48, 0x94, 0x7F, 0xFE, 0x50, 0x90, 0x13, 0xFC, 0x52, 0x94, 0x5E, 0x94, 0x52, 0x94, 0x53, 0x6C, 0x5F, 0x2C, 0xF2, 0x44, 0x42, 0x14, 0x02, 0x08, 0x04, 0x1C, 0x7F, 0xE0, 0x45, 0x24, 0x44, 0xA8, 0x44, 0x40, 0x7C, 0x88, 0x55, 0xF0, 0x10, 0x20, 0x50, 0x44, 0x5D, 0xFC, 0x50, 0x20, 0x53, 0xFE, 0x5C, 0x20, 0xF0, 0x50, 0x40, 0x8E, 0x03, 0x04, 0x08, 0x04, 0x7F, 0xFE, 0x4A, 0x00, 0x4B, 0xF4, 0x4A, 0x04, 0x7A, 0xE4, 0x52, 0xBE, 0x12, 0xA4, 0x52, 0xB4, 0x5A, 0xEC, 0x52, 0x0C, 0x52, 0xA4, 0x5C, 0xA4, 0xF5, 0xF4, 0x48, 0x14, 0x00, 0x08, 0x10, 0x04, 0xFF, 0xFE, 0x94, 0x00, 0x96, 0x28, 0x95, 0x48, 0xF7, 0xEE, 0xA4, 0x92, 0x26, 0xA4, 0xA6, 0xA8, 0xB7, 0xE8, 0xA4, 0xA8, 0xA4, 0x88, 0xA9, 0x14, 0xE9, 0x14, 0x92, 0x24, 0x24, 0x42, 0x00, 0x50, 0x7D, 0x54, 0x44, 0xD8, 0x44, 0x50, 0x47, 0xFE, 0x7C, 0x88, 0x50, 0x50, 0x11, 0xFC, 0x50, 0x20, 0x5D, 0xFC, 0x50, 0x20, 0x53, 0xFE, 0x5C, 0x20, 0xF0, 0x50, 0x41, 0x8E, 0x06, 0x04, 0x04, 0x1C, 0x7F, 0xE0, 0x45, 0x24, 0x44, 0xA8, 0x47, 0xFE, 0x7C, 0x70, 0x54, 0xAE, 0x13, 0x24, 0x51, 0xFE, 0x5D, 0x24, 0x51, 0x24, 0x51, 0xFC, 0x5D, 0x24, 0xF1, 0x24, 0x41, 0xFC, 0x01, 0x04, 0x14, 0x20, 0xFA, 0x28, 0x90, 0x24, 0x9F, 0xA0, 0x90, 0x7E, 0xFF, 0xA8, 0xA8, 0xA8, 0x28, 0xA8, 0xAF, 0xA8, 0xB2, 0x28, 0xA7, 0x28, 0xAA, 0xA8, 0xB2, 0x4A, 0xE2, 0x4A, 0x86, 0x86, 0x01, 0x00, 0x04, 0x04, 0x7F, 0xFE, 0x45, 0x54, 0x45, 0x54, 0x45, 0xFC, 0x7C, 0x84, 0x55, 0xFE, 0x12, 0x44, 0x55, 0xF4, 0x5D, 0x54, 0x51, 0xF4, 0x50, 0x44, 0x5C, 0x54, 0xF3, 0xFC, 0x40, 0x14, 0x00, 0x08, 0x11, 0x10, 0xFF, 0xFE, 0x91, 0x10, 0x94, 0x04, 0x92, 0xFE, 0xF5, 0x44, 0xA5, 0xF4, 0x25, 0x44, 0xA5, 0xF4, 0xBD, 0x44, 0xA5, 0xF4, 0xA5, 0x44, 0xBD, 0xFC, 0xE5, 0x04, 0x84, 0x14, 0x04, 0x08, 0x10, 0x40, 0xFF, 0xFE, 0x94, 0x00, 0x95, 0xFC, 0x95, 0x24, 0xF5, 0xFC, 0xA5, 0x24, 0x25, 0xFC, 0xA4, 0x20, 0xBD, 0xFC, 0xA4, 0x20, 0xA7, 0xFE, 0xBD, 0x24, 0xEA, 0xFA, 0x90, 0x20, 0x03, 0xFE, 0x09, 0x24, 0x7D, 0x24, 0x4A, 0x48, 0x49, 0x24, 0x4B, 0xFE, 0x7A, 0x94, 0x52, 0x64, 0x12, 0x94, 0x53, 0xFC, 0x5E, 0x48, 0x53, 0x68, 0x52, 0x48, 0x5F, 0x68, 0xF2, 0x4A, 0x43, 0x6A, 0x02, 0x46, 0x01, 0x08, 0xF5, 0x28, 0x97, 0xBC, 0x99, 0x48, 0x97, 0xBE, 0xF3, 0x18, 0xA5, 0xAA, 0x29, 0x4E, 0xA3, 0xF8, 0xBA, 0x0C, 0xA2, 0x48, 0xA2, 0x48, 0xBA, 0x48, 0xE0, 0xB0, 0x81, 0x0C, 0x06, 0x04, 0x10, 0x40, 0xFF, 0xFE, 0x90, 0x00, 0x95, 0xF4, 0x94, 0x04, 0xF7, 0xF6, 0xAC, 0x0C, 0x25, 0xF4, 0xAB, 0x1A, 0xB1, 0xF2, 0xA0, 0x00, 0xA3, 0xF8, 0xB9, 0x10, 0xE0, 0xE0, 0x83, 0x10, 0x0C, 0x0E, 0x00, 0xE0, 0x3F, 0x08, 0x02, 0x0C, 0x11, 0x30, 0x08, 0xC0, 0x07, 0x00, 0x78, 0x80, 0x00, 0xC0, 0x01, 0x20, 0x06, 0x50, 0x38, 0x90, 0x01, 0x10, 0x06, 0x10, 0x38, 0x10, 0x01, 0x20, 0x00, 0xC0, 0x08, 0x00, 0x10, 0x04, 0x35, 0xFE, 0xCC, 0x44, 0x28, 0x44, 0x10, 0x44, 0x30, 0x94, 0xC8, 0x88, 0x15, 0x04, 0x26, 0xFE, 0xCC, 0x84, 0x14, 0x84, 0x24, 0x84, 0xC4, 0x84, 0x14, 0xFC, 0x08, 0x84, 0x08, 0x04, 0x13, 0xFE, 0x34, 0x40, 0xCC, 0x40, 0x28, 0x84, 0x11, 0xFE, 0x31, 0x04, 0xC9, 0x04, 0x15, 0x04, 0x25, 0xFC, 0xCD, 0x04, 0x15, 0x04, 0x25, 0x04, 0xC5, 0x04, 0x15, 0xFC, 0x09, 0x04, 0x08, 0x10, 0x10, 0x90, 0x34, 0x90, 0xCC, 0x90, 0x29, 0x14, 0x11, 0xFE, 0x33, 0x10, 0xCD, 0x38, 0x15, 0x34, 0x25, 0x54, 0xCD, 0x54, 0x15, 0x92, 0x25, 0x10, 0xC5, 0x10, 0x15, 0x10, 0x09, 0x10, 0x08, 0x88, 0x10, 0x88, 0x37, 0xFE, 0xCC, 0x88, 0x29, 0xFC, 0x11, 0x04, 0x31, 0xFC, 0xC9, 0x04, 0x15, 0xFC, 0x24, 0x20, 0xCF, 0xFE, 0x14, 0x20, 0x24, 0x50, 0xC4, 0x88, 0x15, 0x06, 0x0A, 0x04, 0x08, 0x20, 0x10, 0x44, 0x35, 0xFE, 0xCD, 0x04, 0x29, 0x54, 0x11, 0x24, 0x31, 0x54, 0xC9, 0x04, 0x15, 0xFC, 0x24, 0x10, 0xCD, 0x12, 0x15, 0xD4, 0x25, 0x18, 0xC5, 0x12, 0x15, 0xD2, 0x09, 0x0E, 0x10, 0x10, 0x10, 0x90, 0x1E, 0x50, 0x24, 0x50, 0x28, 0x10, 0x7E, 0x90, 0xAA, 0x50, 0x2A, 0x54, 0x3E, 0x1E, 0x2B, 0xF0, 0x2A, 0x10, 0x3E, 0x10, 0x2A, 0x10, 0x4A, 0x10, 0x42, 0x10, 0x86, 0x10, 0x10, 0x20, 0x10, 0x20, 0x1E, 0x20, 0x24, 0x24, 0x28, 0xFE, 0x7E, 0x24, 0xAA, 0x24, 0x2A, 0x24, 0x3E, 0x24, 0x2B, 0xFE, 0x2A, 0x20, 0x3E, 0x20, 0x2A, 0x50, 0x4A, 0x48, 0x42, 0x86, 0x87, 0x04, 0x10, 0x80, 0x10, 0x84, 0x1E, 0xFE, 0x25, 0x00, 0x28, 0xF8, 0x7E, 0x20, 0xAA, 0x44, 0x2A, 0xFE, 0x3E, 0x54, 0x2A, 0x54, 0x2A, 0x54, 0x3E, 0x94, 0x2A, 0xA4, 0x4B, 0x24, 0x42, 0x54, 0x86, 0x08, 0x10, 0x04, 0x10, 0x0E, 0x1F, 0xF0, 0x24, 0x88, 0x28, 0xA8, 0x7E, 0xA8, 0xAA, 0xA8, 0x2A, 0xA8, 0x3E, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, 0x3E, 0xA8, 0x2A, 0xA4, 0x4A, 0xAC, 0x43, 0x7A, 0x86, 0x08, 0x08, 0x80, 0x08, 0x84, 0x2E, 0x98, 0x28, 0xE2, 0x2E, 0x82, 0xF4, 0x7E, 0x44, 0x00, 0x0F, 0xE0, 0x10, 0x40, 0x3F, 0xF0, 0x51, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x21, 0x10, 0x41, 0x30, 0x10, 0x20, 0x10, 0x20, 0x1D, 0x24, 0x24, 0xAC, 0x28, 0xB0, 0x7E, 0x20, 0xAA, 0x24, 0x2B, 0xFE, 0x3E, 0x50, 0x2A, 0x50, 0x2A, 0x50, 0x3E, 0x50, 0x2A, 0x52, 0x4A, 0x92, 0x42, 0x8E, 0x87, 0x00, 0x20, 0x20, 0x20, 0x24, 0x3D, 0xFE, 0x48, 0x20, 0x50, 0x24, 0xFD, 0xFE, 0x55, 0x24, 0x55, 0x24, 0x7D, 0xFC, 0x55, 0x24, 0x54, 0x70, 0x7C, 0xA8, 0x55, 0x26, 0x56, 0x24, 0x44, 0x20, 0x8C, 0x20, 0x21, 0x04, 0x20, 0x88, 0x3C, 0x50, 0x49, 0xFC, 0x51, 0x24, 0xFD, 0x24, 0x55, 0xFC, 0x55, 0x24, 0x7D, 0x24, 0x55, 0xFC, 0x54, 0x20, 0x7F, 0xFE, 0x54, 0x20, 0x54, 0x20, 0x44, 0x20, 0x8C, 0x20, 0x08, 0x40, 0x2F, 0x58, 0x28, 0x60, 0x2F, 0x44, 0x7A, 0x7C, 0x01, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x08, 0x78, 0xFF, 0x48, 0x08, 0x48, 0x3E, 0x86, 0x2B, 0x78, 0x3E, 0x48, 0x22, 0x30, 0x41, 0x4C, 0xFF, 0xFE, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x00, 0x14, 0x08, 0xFE, 0xFC, 0x10, 0x88, 0x7C, 0xA8, 0x10, 0xA8, 0xFE, 0xA8, 0x00, 0xA8, 0x7C, 0xA8, 0x44, 0xA8, 0x7C, 0xA8, 0x44, 0x50, 0x7C, 0x52, 0x44, 0x92, 0x55, 0x0E, 0x4A, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x01, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x08, 0x00, 0x0F, 0xF0, 0x00, 0x10, 0x00, 0x10, 0x00, 0xA0, 0x00, 0x40, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x3F, 0xFC, 0x21, 0x00, 0x21, 0x08, 0x2F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x42, 0x08, 0x4C, 0x50, 0x90, 0x20, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x02, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x06, 0xC0, 0x18, 0x3C, 0x60, 0x08, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x78, 0x38, 0x0B, 0xC0, 0x10, 0x40, 0x78, 0x48, 0x0F, 0xFC, 0x28, 0x40, 0x10, 0x50, 0x2B, 0xF8, 0x44, 0x46, 0x83, 0xFC, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x12, 0x10, 0x01, 0x00, 0x7F, 0xFC, 0x08, 0x20, 0x04, 0x40, 0x03, 0x80, 0x1C, 0x70, 0xE8, 0x2E, 0x08, 0x20, 0x10, 0x20, 0x20, 0x20, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x41, 0x40, 0x20, 0x44, 0x8F, 0xFE, 0x60, 0x40, 0x2B, 0xF8, 0x12, 0x48, 0x62, 0x48, 0x22, 0x48, 0x22, 0x58, 0x20, 0x40, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x02, 0x88, 0x7E, 0xFC, 0x02, 0x80, 0x02, 0x90, 0x3E, 0xF8, 0x02, 0x80, 0x02, 0x88, 0x7E, 0xFC, 0x02, 0x80, 0x02, 0x80, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x12, 0x10, 0x01, 0x00, 0x1F, 0xF0, 0x04, 0x44, 0xFF, 0xFE, 0x01, 0x00, 0x7F, 0xFC, 0x04, 0x40, 0x0C, 0x40, 0x03, 0x80, 0x1C, 0x70, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x20, 0x38, 0x17, 0xC0, 0x42, 0x48, 0x21, 0x50, 0x0B, 0xF8, 0x10, 0x40, 0x6F, 0xFE, 0x20, 0x40, 0x20, 0x48, 0x27, 0xFC, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x11, 0x10, 0x23, 0xF8, 0x12, 0x88, 0x02, 0x48, 0xF3, 0xF8, 0x11, 0x00, 0x13, 0xFC, 0x1C, 0x44, 0x12, 0xA4, 0x1B, 0xF4, 0x10, 0x08, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x12, 0x10, 0x3F, 0x20, 0x12, 0x24, 0xFF, 0xFE, 0x21, 0x04, 0x3F, 0x44, 0x21, 0x28, 0x3F, 0x10, 0x21, 0x28, 0x25, 0x46, 0x22, 0x84, 0x1F, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x51, 0x12, 0x8D, 0x64, 0x10, 0x10, 0x2B, 0xFC, 0xE5, 0x24, 0x19, 0xFC, 0x69, 0x24, 0x95, 0xFC, 0x64, 0x20, 0x05, 0xFC, 0x64, 0x20, 0x17, 0xFE, 0x08, 0x00, 0x08, 0x40, 0x08, 0x40, 0x2A, 0x40, 0x2F, 0x40, 0x28, 0x40, 0x29, 0x44, 0xFF, 0xCC, 0x00, 0x50, 0x49, 0x60, 0x49, 0x40, 0x49, 0x40, 0x55, 0x40, 0x63, 0x42, 0x41, 0x42, 0x7F, 0x3E, 0x01, 0x00, 0x08, 0x00, 0x08, 0x04, 0x2A, 0x7E, 0x2F, 0x44, 0x28, 0x44, 0x29, 0x44, 0xFF, 0xFC, 0x00, 0x44, 0x49, 0x44, 0x49, 0x44, 0x49, 0x7C, 0x55, 0x44, 0x63, 0x44, 0x41, 0x44, 0x7F, 0xFE, 0x01, 0x00, 0x10, 0x80, 0x10, 0x80, 0x50, 0x84, 0x5D, 0xFE, 0x52, 0x04, 0x50, 0x24, 0xFF, 0xF4, 0x01, 0x24, 0x55, 0x24, 0x55, 0xE4, 0x55, 0x14, 0x6D, 0x08, 0x45, 0x02, 0x45, 0x02, 0x7C, 0xFE, 0x04, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x50, 0x44, 0x5C, 0x44, 0x50, 0x44, 0x54, 0x44, 0xFE, 0x94, 0x01, 0x08, 0x54, 0x00, 0x54, 0xFC, 0x54, 0x84, 0x6C, 0x84, 0x44, 0x84, 0x44, 0x84, 0x7C, 0xFC, 0x04, 0x84, 0x10, 0x50, 0x10, 0x50, 0x50, 0x50, 0x5D, 0x50, 0x51, 0x52, 0x55, 0x74, 0xFF, 0x58, 0x01, 0x50, 0x55, 0x50, 0x55, 0x50, 0x55, 0x50, 0x6D, 0x50, 0x45, 0x50, 0x45, 0x72, 0x7F, 0x92, 0x04, 0x0E, 0x10, 0x08, 0x11, 0xFC, 0x51, 0x08, 0x5D, 0x08, 0x51, 0xF8, 0x55, 0x08, 0xFF, 0x08, 0x01, 0xF8, 0x55, 0x44, 0x55, 0x48, 0x55, 0x30, 0x6D, 0x20, 0x45, 0x10, 0x45, 0x4E, 0x7D, 0x84, 0x05, 0x00, 0x10, 0x08, 0x11, 0xFC, 0x50, 0x20, 0x5C, 0x28, 0x51, 0xFC, 0x54, 0x48, 0xFE, 0x48, 0x00, 0x48, 0x57, 0xFE, 0x54, 0x04, 0x54, 0xFE, 0x6C, 0x84, 0x44, 0x84, 0x44, 0x84, 0x7C, 0xFC, 0x04, 0x84, 0x10, 0x08, 0x10, 0xFC, 0x50, 0x88, 0x5C, 0x88, 0x50, 0x88, 0x54, 0x88, 0xFE, 0xF8, 0x00, 0xA0, 0x54, 0x28, 0x54, 0xBC, 0x54, 0xA0, 0x6C, 0xA0, 0x44, 0xA0, 0x45, 0x66, 0x7E, 0x3C, 0x04, 0x00, 0x10, 0x04, 0x11, 0xFE, 0x51, 0x04, 0x5D, 0x04, 0x51, 0xFC, 0x55, 0x00, 0xFF, 0xFE, 0x01, 0x20, 0x55, 0x48, 0x55, 0xFC, 0x55, 0x10, 0x6D, 0x7C, 0x45, 0x10, 0x45, 0x14, 0x7E, 0xFE, 0x04, 0x00, 0x00, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x02, 0x01, 0x02, 0x00, 0xFE, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x78, 0x3C, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x01, 0x08, 0x3F, 0xFC, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x3F, 0xFA, 0x01, 0x02, 0x00, 0xFE, 0x3E, 0xF8, 0x22, 0x88, 0x3E, 0xF8, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x14, 0xFF, 0xFE, 0x01, 0x00, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF4, 0x01, 0x04, 0x00, 0xFC, 0x09, 0x00, 0x08, 0x80, 0x08, 0x88, 0x1F, 0xFC, 0x10, 0x80, 0x30, 0x90, 0x3F, 0xF8, 0x50, 0x80, 0x90, 0x90, 0x1F, 0xF8, 0x10, 0x80, 0x10, 0x80, 0x10, 0x84, 0x1F, 0xFE, 0x10, 0x00, 0x10, 0x00, 0x09, 0x00, 0x08, 0x88, 0x0F, 0xFC, 0x10, 0x80, 0x3F, 0xF8, 0x50, 0x80, 0x1F, 0xF8, 0x10, 0x80, 0x1F, 0xFC, 0x10, 0x80, 0x00, 0x84, 0xFF, 0xFE, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x09, 0x00, 0x08, 0x88, 0x1F, 0xFC, 0x10, 0x80, 0x3F, 0xF8, 0x50, 0x80, 0x9F, 0xF8, 0x10, 0x80, 0x1F, 0xFC, 0x10, 0x00, 0x7F, 0xE0, 0x04, 0x28, 0x04, 0x7C, 0x08, 0x08, 0x10, 0x28, 0x60, 0x10, 0x00, 0xC0, 0x08, 0xA0, 0x7D, 0x24, 0x49, 0xFE, 0x4B, 0x20, 0x7D, 0x28, 0x49, 0xFC, 0x49, 0x20, 0x79, 0x28, 0x49, 0xFC, 0x49, 0x20, 0x4D, 0x20, 0xF1, 0x24, 0x41, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x10, 0x60, 0x10, 0x50, 0x1E, 0x84, 0x22, 0xFE, 0x65, 0x90, 0x99, 0x90, 0x0A, 0xFC, 0x14, 0x90, 0x22, 0x90, 0x7F, 0xFC, 0xA2, 0x90, 0x22, 0x90, 0x22, 0x94, 0x3E, 0xFE, 0x22, 0x80, 0x00, 0x80, 0x3E, 0xF8, 0x22, 0x88, 0x2A, 0xA8, 0x2A, 0xA8, 0x22, 0x88, 0x3E, 0xF8, 0x09, 0x00, 0x10, 0x88, 0x3F, 0xFC, 0x50, 0x80, 0x9F, 0xF8, 0x10, 0x80, 0x1F, 0xF8, 0x10, 0x80, 0x1F, 0xFC, 0x10, 0x00, 0x20, 0x10, 0x32, 0x18, 0x21, 0x10, 0x3D, 0x3E, 0x50, 0x68, 0xD7, 0x28, 0x79, 0x3E, 0x51, 0x28, 0x51, 0x28, 0x7D, 0x3E, 0x51, 0x28, 0x51, 0x68, 0x51, 0xA8, 0x7D, 0x3E, 0x40, 0x20, 0x40, 0x20, 0x04, 0x08, 0x7E, 0xFC, 0x10, 0x88, 0x10, 0xC8, 0x1E, 0xAA, 0x71, 0x0E, 0x02, 0x80, 0x0C, 0x60, 0x37, 0xDE, 0xC1, 0x04, 0x1F, 0xF0, 0x01, 0x00, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x02, 0x00, 0x01, 0x08, 0x7F, 0xFC, 0x04, 0x40, 0x14, 0x50, 0x25, 0x4C, 0x42, 0x84, 0x0C, 0x30, 0x37, 0xEE, 0xC1, 0x04, 0x1F, 0xF0, 0x01, 0x00, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x20, 0x38, 0x13, 0xC0, 0x40, 0x48, 0x27, 0xFC, 0x08, 0xA0, 0x73, 0x18, 0x22, 0x88, 0x2C, 0x60, 0x37, 0xDE, 0xC1, 0x04, 0x1F, 0xF0, 0x01, 0x00, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x08, 0x0C, 0x7E, 0xF0, 0x10, 0x80, 0x28, 0x88, 0x7E, 0xFC, 0x08, 0x90, 0x7D, 0x10, 0x0A, 0x90, 0x0C, 0x60, 0x37, 0xDE, 0xC1, 0x04, 0x1F, 0xF0, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x40, 0x7E, 0x44, 0x14, 0x7E, 0x08, 0xC8, 0xFE, 0x48, 0x1A, 0x30, 0x29, 0x48, 0x4A, 0x86, 0x0C, 0x60, 0x37, 0xDE, 0xC1, 0x04, 0x1F, 0xF0, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x08, 0x40, 0x7F, 0x44, 0x08, 0x7E, 0x3E, 0xC8, 0x09, 0x48, 0xFE, 0x30, 0x11, 0x48, 0x1E, 0x86, 0x24, 0x40, 0xDF, 0xF0, 0x31, 0x0E, 0xDF, 0xF4, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x20, 0x40, 0x17, 0xFE, 0x40, 0x90, 0x23, 0xF8, 0x09, 0x50, 0x71, 0x50, 0x23, 0x52, 0x22, 0x8E, 0x0C, 0x60, 0x37, 0xDE, 0xC1, 0x04, 0x1F, 0xF0, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x3F, 0x10, 0x21, 0x7C, 0x3F, 0x28, 0x20, 0xFE, 0x3F, 0x10, 0x51, 0x7C, 0x9F, 0x10, 0x02, 0x90, 0x0C, 0x60, 0x37, 0xDE, 0xC1, 0x04, 0x1F, 0xF0, 0x09, 0x20, 0x05, 0x48, 0x7F, 0xFC, 0x00, 0x00, 0x01, 0x00, 0x06, 0xC0, 0x18, 0x30, 0xEF, 0xEE, 0x01, 0x00, 0x1F, 0xF0, 0x05, 0x40, 0x3F, 0xF8, 0x10, 0x10, 0x28, 0x28, 0x7C, 0x7C, 0x93, 0x92, 0x7C, 0x7C, 0x10, 0x10, 0x54, 0x54, 0xFE, 0xFE, 0x20, 0x40, 0x20, 0x60, 0x3C, 0x50, 0x48, 0x50, 0x90, 0x44, 0x7F, 0xFE, 0x54, 0x40, 0x54, 0x50, 0x7C, 0x50, 0x54, 0x50, 0x54, 0x50, 0x7C, 0x90, 0x00, 0x90, 0x1D, 0x12, 0xE2, 0x12, 0x44, 0x0E, 0x20, 0x40, 0x20, 0x20, 0x3C, 0x20, 0x48, 0x04, 0x93, 0xFE, 0x7C, 0x80, 0x54, 0x88, 0x54, 0xFC, 0x7C, 0x88, 0x54, 0x88, 0x54, 0x88, 0x7C, 0x88, 0x00, 0x88, 0x1D, 0x08, 0xE1, 0x28, 0x42, 0x10, 0x20, 0x40, 0x20, 0x60, 0x3C, 0x50, 0x48, 0x44, 0x93, 0xFE, 0x7C, 0x80, 0x54, 0x80, 0x54, 0xFC, 0x7C, 0x84, 0x54, 0xC4, 0x55, 0x48, 0x7D, 0x28, 0x01, 0x10, 0x1E, 0x28, 0xE2, 0x46, 0x45, 0x84, 0x20, 0x00, 0x20, 0x08, 0x3D, 0xFC, 0x48, 0x20, 0x91, 0x24, 0x7C, 0xA8, 0x54, 0xA8, 0x54, 0x20, 0x7C, 0x24, 0x57, 0xFE, 0x54, 0x20, 0x7C, 0x20, 0x00, 0x20, 0x1C, 0x20, 0xE0, 0x20, 0x40, 0x20, 0x20, 0x40, 0x20, 0x40, 0x3C, 0x48, 0x48, 0x7C, 0x90, 0x40, 0x7C, 0x40, 0x54, 0x40, 0x54, 0x48, 0x7D, 0xFC, 0x55, 0x08, 0x55, 0x08, 0x7D, 0x08, 0x01, 0x08, 0x1D, 0x08, 0xE1, 0xF8, 0x41, 0x08, 0x20, 0x40, 0x20, 0x44, 0x3C, 0x7E, 0x48, 0x40, 0x90, 0x44, 0x7D, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x7D, 0x04, 0x55, 0xFC, 0x55, 0x04, 0x7D, 0x00, 0x01, 0x00, 0x1D, 0x00, 0xE2, 0x00, 0x44, 0x00, 0x20, 0x08, 0x20, 0x1C, 0x3D, 0xE0, 0x48, 0x20, 0x90, 0x20, 0x7C, 0x24, 0x57, 0xFE, 0x54, 0x20, 0x7C, 0x70, 0x54, 0x68, 0x54, 0xA8, 0x7D, 0x26, 0x02, 0x24, 0x1C, 0x20, 0xE0, 0x20, 0x40, 0x20, 0x20, 0x48, 0x20, 0x48, 0x3C, 0x48, 0x48, 0x88, 0x90, 0x88, 0x7D, 0xFE, 0x56, 0x88, 0x54, 0x88, 0x7C, 0xC8, 0x54, 0xA8, 0x54, 0xA8, 0x7C, 0x88, 0x00, 0x88, 0x1C, 0x88, 0xE0, 0xA8, 0x40, 0x90, 0x11, 0x10, 0x09, 0x20, 0x49, 0x40, 0x7F, 0xFE, 0x44, 0x02, 0x84, 0x04, 0x0F, 0xC0, 0x10, 0x90, 0x3F, 0xF8, 0x51, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x40, 0x48, 0x88, 0x91, 0x04, 0x7F, 0xFE, 0x54, 0x00, 0x54, 0x04, 0x7D, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x7D, 0x04, 0x01, 0x04, 0x1D, 0x04, 0xE1, 0xFC, 0x41, 0x04, 0x20, 0x20, 0x20, 0x28, 0x3D, 0xFC, 0x48, 0x20, 0x90, 0x20, 0x7C, 0x24, 0x57, 0xFE, 0x54, 0x20, 0x7C, 0x20, 0x54, 0x28, 0x55, 0xFC, 0x7C, 0x20, 0x00, 0x20, 0x1C, 0x24, 0xE3, 0xFE, 0x40, 0x00, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x24, 0x4B, 0xFE, 0x90, 0x20, 0x7C, 0x28, 0x55, 0xFC, 0x54, 0x00, 0x7C, 0x04, 0x55, 0xFE, 0x55, 0x04, 0x7D, 0x04, 0x01, 0x04, 0x1D, 0x04, 0xE1, 0xFC, 0x41, 0x04, 0x20, 0x40, 0x20, 0x40, 0x3C, 0x44, 0x4B, 0xFE, 0x90, 0x80, 0x7C, 0x88, 0x55, 0xFC, 0x56, 0x88, 0x7C, 0x88, 0x54, 0xF8, 0x54, 0x88, 0x7C, 0x88, 0x00, 0xF8, 0x1C, 0x88, 0xE0, 0xA8, 0x40, 0x90, 0x20, 0x04, 0x23, 0xFE, 0x3C, 0x20, 0x48, 0x20, 0x90, 0x44, 0x7D, 0xFE, 0x55, 0x54, 0x55, 0x54, 0x7D, 0x54, 0x55, 0x54, 0x55, 0x54, 0x7D, 0x54, 0x01, 0x54, 0x1D, 0x04, 0xE1, 0x14, 0x40, 0x08, 0x20, 0x40, 0x20, 0x20, 0x3C, 0x04, 0x4B, 0xFE, 0x90, 0x88, 0x7C, 0x50, 0x54, 0x20, 0x54, 0x50, 0x7C, 0x8E, 0x57, 0x04, 0x54, 0x88, 0x7C, 0x88, 0x00, 0x88, 0x1C, 0x88, 0xE1, 0x08, 0x42, 0x08, 0x20, 0x40, 0x20, 0x20, 0x3C, 0x04, 0x4B, 0xFE, 0x90, 0x00, 0x7C, 0x88, 0x55, 0x06, 0x56, 0x8A, 0x7C, 0x88, 0x54, 0x50, 0x54, 0x50, 0x7C, 0x20, 0x00, 0x50, 0x1C, 0x88, 0xE1, 0x06, 0x46, 0x04, 0x09, 0x20, 0x05, 0x40, 0x3F, 0xF8, 0x02, 0x00, 0xFF, 0xFE, 0x04, 0x40, 0x0A, 0x30, 0x37, 0xCE, 0xC8, 0x84, 0x1F, 0xF0, 0x31, 0x10, 0x1F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0x7F, 0xFC, 0x20, 0x04, 0x21, 0xFE, 0x3C, 0x04, 0x48, 0x04, 0x91, 0xFC, 0x7C, 0x04, 0x54, 0x04, 0x55, 0xFC, 0x7C, 0x08, 0x54, 0x08, 0x57, 0xFE, 0x7C, 0x88, 0x00, 0x48, 0x1C, 0x08, 0xE0, 0x28, 0x40, 0x10, 0x20, 0x04, 0x23, 0xFE, 0x3C, 0x20, 0x48, 0x24, 0x91, 0xFE, 0x7D, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x7D, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x7C, 0xA0, 0x00, 0xA0, 0x1C, 0x40, 0xE0, 0xB0, 0x43, 0x0E, 0x20, 0x04, 0x23, 0xFE, 0x3C, 0x00, 0x48, 0x04, 0x91, 0xDE, 0x7D, 0x54, 0x55, 0x54, 0x55, 0x54, 0x7D, 0x54, 0x55, 0xDC, 0x55, 0x54, 0x7D, 0x54, 0x01, 0x54, 0x1D, 0x54, 0xE1, 0x54, 0x41, 0x54, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x24, 0x4A, 0xFE, 0x91, 0x20, 0x7D, 0x20, 0x54, 0x50, 0x57, 0x50, 0x7D, 0xFC, 0x55, 0x10, 0x55, 0x14, 0x7D, 0xFE, 0x01, 0x10, 0x1D, 0x10, 0xE2, 0x96, 0x44, 0x7C, 0x20, 0x40, 0x20, 0x40, 0x3D, 0x7E, 0x49, 0x62, 0x91, 0x54, 0x7D, 0x48, 0x55, 0x54, 0x55, 0x62, 0x7C, 0x20, 0x54, 0x28, 0x55, 0xFC, 0x7C, 0x20, 0x00, 0x20, 0x1C, 0x24, 0xE3, 0xFE, 0x40, 0x00, 0x20, 0x04, 0x20, 0x44, 0x3D, 0xE4, 0x49, 0x44, 0x91, 0x44, 0x7D, 0x7E, 0x55, 0x44, 0x55, 0xC4, 0x7D, 0x64, 0x55, 0x54, 0x55, 0x54, 0x7D, 0x44, 0x01, 0xC4, 0x1D, 0x44, 0xE0, 0x14, 0x40, 0x08, 0x20, 0x40, 0x20, 0x40, 0x3C, 0x7C, 0x48, 0x88, 0x91, 0x50, 0x7C, 0x20, 0x54, 0x50, 0x54, 0x8E, 0x7F, 0x24, 0x54, 0x20, 0x55, 0xFC, 0x7C, 0x20, 0x00, 0xA8, 0x1D, 0x26, 0xE2, 0xA2, 0x40, 0x40, 0x20, 0x1C, 0x21, 0xE0, 0x3C, 0x40, 0x48, 0x40, 0x90, 0x88, 0x7D, 0xF0, 0x54, 0x20, 0x54, 0x40, 0x7C, 0x88, 0x55, 0xFC, 0x54, 0x20, 0x7C, 0xA8, 0x01, 0x26, 0x1E, 0x22, 0xE0, 0xA0, 0x40, 0x40, 0x20, 0x20, 0x10, 0xA8, 0x40, 0xA6, 0x25, 0x3A, 0x08, 0x60, 0x77, 0x80, 0x22, 0x00, 0x27, 0xC0, 0x08, 0x90, 0x1F, 0xF8, 0x31, 0x10, 0x5F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x20, 0x40, 0x20, 0x20, 0x3C, 0x20, 0x4B, 0xFE, 0x92, 0x02, 0x7C, 0x14, 0x54, 0xF8, 0x54, 0x00, 0x7C, 0x04, 0x57, 0xFE, 0x54, 0x90, 0x7C, 0x90, 0x00, 0x90, 0x1C, 0x92, 0xE1, 0x12, 0x46, 0x0E, 0x20, 0x00, 0x20, 0x04, 0x3D, 0xDE, 0x49, 0x54, 0x91, 0x54, 0x7D, 0xD4, 0x55, 0x54, 0x55, 0x54, 0x7D, 0xD4, 0x55, 0x14, 0x55, 0x94, 0x7D, 0x54, 0x01, 0x5C, 0x1D, 0x90, 0xE0, 0x10, 0x40, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3D, 0xFC, 0x48, 0x20, 0x90, 0xF8, 0x7C, 0x20, 0x57, 0xFE, 0x54, 0x00, 0x7D, 0xFC, 0x55, 0x04, 0x55, 0xFC, 0x7D, 0x04, 0x01, 0xFC, 0x1D, 0x04, 0xE1, 0x14, 0x41, 0x08, 0x20, 0x20, 0x20, 0x28, 0x3D, 0xFC, 0x48, 0x20, 0x90, 0x24, 0x7F, 0xFE, 0x54, 0x88, 0x55, 0x46, 0x7E, 0x7A, 0x54, 0x88, 0x55, 0x48, 0x7E, 0x50, 0x00, 0x20, 0x1C, 0x50, 0xE0, 0x8E, 0x43, 0x04, 0x20, 0x20, 0x23, 0xF0, 0x3D, 0x44, 0x49, 0x7E, 0x91, 0x44, 0x7D, 0xD4, 0x55, 0x54, 0x55, 0x54, 0x7D, 0x54, 0x55, 0xD4, 0x55, 0x54, 0x7D, 0x68, 0x01, 0xC8, 0x1F, 0x54, 0xE0, 0x52, 0x40, 0x60, 0x20, 0x50, 0x20, 0x50, 0x3C, 0x54, 0x4B, 0xDE, 0x90, 0x50, 0x7C, 0x50, 0x54, 0x50, 0x55, 0xDC, 0x7C, 0x50, 0x54, 0x50, 0x54, 0x54, 0x7F, 0xDE, 0x00, 0x50, 0x1C, 0x50, 0xE0, 0x50, 0x40, 0x50, 0x20, 0x04, 0x21, 0xFE, 0x3D, 0x04, 0x49, 0x04, 0x91, 0xFC, 0x7D, 0x04, 0x55, 0x04, 0x55, 0xFC, 0x7C, 0x10, 0x55, 0x12, 0x55, 0xD6, 0x7D, 0x18, 0x01, 0x10, 0x1D, 0x52, 0xE1, 0x92, 0x41, 0x0E, 0x20, 0x08, 0x20, 0xFC, 0x3C, 0x88, 0x48, 0xF8, 0x90, 0x88, 0x7C, 0x88, 0x54, 0xF8, 0x54, 0x04, 0x7D, 0xFE, 0x55, 0x04, 0x55, 0x04, 0x7D, 0xFC, 0x01, 0x04, 0x1D, 0x04, 0xE1, 0xFC, 0x41, 0x04, 0x20, 0x04, 0x21, 0xFE, 0x3D, 0x04, 0x49, 0x24, 0x91, 0x24, 0x7D, 0xFC, 0x55, 0x24, 0x55, 0x24, 0x7D, 0x74, 0x55, 0x54, 0x55, 0x54, 0x7D, 0x74, 0x01, 0x04, 0x1D, 0x04, 0xE1, 0xFC, 0x41, 0x04, 0x20, 0x00, 0x20, 0x44, 0x3D, 0x8E, 0x49, 0x04, 0x91, 0x04, 0x7D, 0xDC, 0x55, 0x04, 0x55, 0x04, 0x7D, 0xFC, 0x55, 0x54, 0x54, 0x50, 0x7C, 0x50, 0x00, 0x90, 0x1C, 0x92, 0xE1, 0x12, 0x46, 0x0E, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x50, 0x48, 0x88, 0x91, 0x46, 0x7E, 0x24, 0x54, 0x20, 0x55, 0xF8, 0x7C, 0x08, 0x54, 0x10, 0x54, 0x40, 0x7C, 0xA0, 0x01, 0xA4, 0x1E, 0x8A, 0xE2, 0x8A, 0x40, 0x78, 0x20, 0x04, 0x21, 0xFE, 0x3D, 0x24, 0x49, 0x24, 0x91, 0x74, 0x7D, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x7D, 0x04, 0x55, 0x74, 0x55, 0x54, 0x7D, 0x54, 0x01, 0x74, 0x1D, 0x04, 0xE2, 0x14, 0x44, 0x08, 0x20, 0x04, 0x23, 0xFE, 0x3C, 0x04, 0x48, 0x74, 0x91, 0xC4, 0x7C, 0x44, 0x55, 0xF4, 0x55, 0x54, 0x7D, 0x54, 0x55, 0x54, 0x55, 0xF4, 0x7C, 0x44, 0x00, 0x54, 0x1C, 0x76, 0xE1, 0xCA, 0x40, 0x00, 0x20, 0x00, 0x20, 0x92, 0x3C, 0x92, 0x49, 0x24, 0x92, 0x48, 0x7D, 0x24, 0x54, 0x92, 0x54, 0x04, 0x7D, 0xFE, 0x55, 0x24, 0x55, 0x24, 0x7D, 0xFC, 0x01, 0x24, 0x1D, 0x24, 0xE1, 0xFC, 0x41, 0x04, 0x20, 0x20, 0x21, 0xFC, 0x3C, 0x20, 0x48, 0x88, 0x93, 0xFE, 0x7C, 0x88, 0x54, 0x04, 0x55, 0xFE, 0x7D, 0x04, 0x55, 0x24, 0x55, 0x24, 0x7D, 0x24, 0x01, 0x24, 0x1C, 0x58, 0xE0, 0x86, 0x43, 0x02, 0x20, 0x48, 0x21, 0x48, 0x3D, 0x48, 0x4B, 0xFE, 0x91, 0x48, 0x7D, 0x48, 0x55, 0x78, 0x55, 0x00, 0x7D, 0xFC, 0x54, 0x20, 0x57, 0xFE, 0x7C, 0x70, 0x00, 0xA8, 0x1D, 0x26, 0xE2, 0x24, 0x40, 0x20, 0x20, 0x04, 0x21, 0xDE, 0x3D, 0x54, 0x49, 0x54, 0x91, 0x54, 0x7D, 0xDC, 0x54, 0x00, 0x55, 0xFC, 0x7C, 0x00, 0x57, 0xFE, 0x54, 0x80, 0x7C, 0xFC, 0x00, 0x04, 0x1C, 0x04, 0xE0, 0x28, 0x40, 0x10, 0x20, 0x08, 0x20, 0x68, 0x3B, 0x88, 0x48, 0x88, 0x90, 0x8A, 0x7F, 0xEA, 0x54, 0x9C, 0x55, 0x88, 0x7D, 0xC8, 0x55, 0xA8, 0x56, 0x88, 0x7C, 0x88, 0x00, 0x94, 0x1C, 0x94, 0xE0, 0xA2, 0x40, 0xC0, 0x20, 0x80, 0x20, 0x84, 0x3C, 0xFE, 0x49, 0x00, 0x93, 0xF8, 0x7D, 0x08, 0x55, 0xF8, 0x55, 0x08, 0x7D, 0xF8, 0x54, 0x80, 0x54, 0xF8, 0x7D, 0x88, 0x02, 0x50, 0x1C, 0x20, 0xE0, 0xD0, 0x43, 0x0E, 0x20, 0x20, 0x20, 0x44, 0x3D, 0xFE, 0x49, 0x04, 0x91, 0xFC, 0x7D, 0x04, 0x55, 0xFC, 0x54, 0x00, 0x7D, 0xFC, 0x54, 0x20, 0x54, 0x28, 0x7D, 0xFC, 0x00, 0x20, 0x1C, 0x24, 0xE3, 0xFE, 0x40, 0x00, 0x20, 0x40, 0x20, 0x24, 0x3D, 0xFE, 0x49, 0x04, 0x91, 0x04, 0x7D, 0xFC, 0x55, 0x00, 0x55, 0x04, 0x7D, 0xFE, 0x55, 0x54, 0x57, 0x54, 0x7D, 0xFC, 0x01, 0x54, 0x1D, 0x54, 0xE1, 0x54, 0x41, 0x0C, 0x20, 0x00, 0x21, 0xFC, 0x3D, 0x24, 0x48, 0x88, 0x90, 0x70, 0x7C, 0x88, 0x55, 0x26, 0x56, 0x24, 0x7D, 0xFE, 0x55, 0x24, 0x55, 0x24, 0x7D, 0xFC, 0x00, 0x20, 0x1C, 0x24, 0xE3, 0xFC, 0x40, 0x02, 0x08, 0x40, 0x7F, 0x44, 0x08, 0x7E, 0xFE, 0xC8, 0x11, 0x48, 0x1E, 0x30, 0x22, 0x48, 0x4F, 0xC6, 0x88, 0x90, 0x1F, 0xF8, 0x31, 0x10, 0x5F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFC, 0x20, 0x40, 0x20, 0x48, 0x3D, 0xF8, 0x48, 0x50, 0x93, 0xFE, 0x7C, 0x40, 0x54, 0xF0, 0x55, 0x84, 0x7E, 0xFC, 0x54, 0x00, 0x55, 0xF8, 0x7D, 0x08, 0x01, 0xF8, 0x1D, 0x08, 0xE1, 0xF8, 0x41, 0x08, 0x20, 0x04, 0x21, 0xFE, 0x3D, 0x04, 0x49, 0xFC, 0x91, 0x04, 0x7D, 0xFC, 0x54, 0x00, 0x57, 0xDE, 0x7C, 0x42, 0x56, 0x52, 0x55, 0xCE, 0x7D, 0x4A, 0x02, 0x52, 0x1C, 0x42, 0xE1, 0x4A, 0x40, 0x84, 0x20, 0x04, 0x21, 0xFE, 0x3D, 0x54, 0x49, 0x54, 0x91, 0x54, 0x7D, 0xFC, 0x54, 0x20, 0x54, 0xA8, 0x7C, 0xA8, 0x55, 0x24, 0x54, 0x20, 0x7C, 0xA8, 0x00, 0xA4, 0x1D, 0x22, 0xE2, 0x22, 0x40, 0x20, 0x20, 0x08, 0x20, 0x1C, 0x3D, 0xE0, 0x48, 0x04, 0x91, 0x24, 0x7C, 0xA8, 0x54, 0x80, 0x54, 0xFC, 0x7D, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x7C, 0x20, 0x01, 0x24, 0x1D, 0x24, 0xE1, 0xFC, 0x41, 0x04, 0x21, 0x48, 0x21, 0x48, 0x7F, 0xF8, 0x91, 0x48, 0x21, 0xC8, 0xF8, 0x9E, 0xAB, 0xEA, 0xAA, 0xAA, 0xFA, 0xAA, 0xAA, 0xAA, 0xAB, 0xEA, 0xF8, 0x8A, 0x07, 0xEA, 0x18, 0x8A, 0xE0, 0x92, 0x40, 0xA6, 0x20, 0x04, 0x23, 0xFE, 0x3C, 0x50, 0x48, 0x54, 0x91, 0xFE, 0x7D, 0x54, 0x55, 0x54, 0x55, 0xFC, 0x7C, 0x00, 0x55, 0xFC, 0x54, 0x00, 0x7F, 0xFE, 0x00, 0xA8, 0x1D, 0x26, 0xE2, 0x22, 0x40, 0x60, 0x20, 0x08, 0x21, 0xFC, 0x3C, 0x20, 0x4B, 0xFE, 0x92, 0x22, 0x7D, 0xAC, 0x54, 0x20, 0x55, 0xAC, 0x7C, 0x20, 0x54, 0x04, 0x55, 0xFE, 0x7C, 0x04, 0x00, 0xFC, 0x1C, 0x04, 0xE1, 0xFC, 0x40, 0x04, 0x20, 0xFC, 0x20, 0x84, 0x3C, 0xFC, 0x48, 0x84, 0x90, 0xFC, 0x7C, 0x00, 0x55, 0xFE, 0x55, 0x4A, 0x7D, 0x4A, 0x55, 0xFE, 0x54, 0x00, 0x7C, 0xFC, 0x00, 0x48, 0x1C, 0x30, 0xE0, 0xC8, 0x43, 0x06, 0x20, 0x40, 0x3F, 0x44, 0x40, 0xFE, 0xBF, 0x04, 0x29, 0x44, 0xFF, 0xA8, 0x25, 0x10, 0x3F, 0xE8, 0x08, 0x86, 0x1F, 0xF0, 0x31, 0x10, 0x5F, 0xF0, 0x11, 0x10, 0x1F, 0xF0, 0x00, 0x04, 0xFF, 0xFE, 0x20, 0x20, 0x23, 0xFE, 0x7A, 0x20, 0x93, 0xFC, 0x22, 0x24, 0xFB, 0xFE, 0xAA, 0x24, 0xAB, 0xFC, 0xFA, 0x20, 0xAB, 0xFC, 0xAB, 0x24, 0xFB, 0xFC, 0x05, 0x24, 0x1D, 0xFC, 0xE5, 0x24, 0x49, 0x2C, 0x20, 0x04, 0x23, 0xFE, 0x7A, 0x08, 0x92, 0xA8, 0x22, 0xAE, 0xFA, 0x12, 0xAB, 0xF4, 0xAA, 0x44, 0xFB, 0x54, 0xAB, 0x54, 0xAB, 0x54, 0xFB, 0xF4, 0x02, 0x54, 0x1C, 0x4A, 0xE4, 0x8A, 0x49, 0x10, 0x21, 0x04, 0x20, 0x88, 0x3F, 0xFE, 0x48, 0x20, 0x91, 0xFC, 0x7C, 0x20, 0x57, 0xFE, 0x55, 0x24, 0x7C, 0xA8, 0x57, 0xFE, 0x54, 0x04, 0x7D, 0xFE, 0x01, 0x04, 0x1D, 0x04, 0xE1, 0xFC, 0x41, 0x04, 0x21, 0x04, 0x20, 0x88, 0x3F, 0xFE, 0x48, 0x50, 0x91, 0xFC, 0x7D, 0x54, 0x55, 0x54, 0x55, 0x8C, 0x7D, 0x74, 0x55, 0x04, 0x55, 0xFC, 0x7C, 0x08, 0x03, 0xFE, 0x1C, 0x88, 0xE0, 0x48, 0x40, 0x18, 0x20, 0x50, 0x21, 0xFC, 0x3D, 0x54, 0x49, 0xFC, 0x91, 0x54, 0x7D, 0xFC, 0x54, 0x00, 0x57, 0xFE, 0x7C, 0x00, 0x55, 0xFC, 0x55, 0x04, 0x7D, 0xFC, 0x00, 0x88, 0x1C, 0x50, 0xE3, 0xFE, 0x40, 0x00, 0x28, 0x04, 0x28, 0xFE, 0xFC, 0x84, 0x28, 0x84, 0x38, 0x84, 0x10, 0x84, 0x7C, 0xFC, 0x54, 0x84, 0x54, 0x84, 0x7C, 0x84, 0x10, 0x84, 0xFE, 0xFC, 0x10, 0x00, 0x10, 0x04, 0x13, 0xFE, 0x10, 0x00, 0x28, 0x20, 0x28, 0x20, 0xFE, 0x24, 0x29, 0xFE, 0x39, 0x24, 0x11, 0x24, 0x7D, 0x24, 0x55, 0x24, 0x55, 0x24, 0x7F, 0xFE, 0x10, 0x20, 0xFE, 0x50, 0x10, 0x50, 0x10, 0x88, 0x11, 0x06, 0x12, 0x04, 0x28, 0x10, 0x28, 0x10, 0xFE, 0x10, 0x29, 0x10, 0x39, 0x7C, 0x10, 0x10, 0x7F, 0x10, 0x55, 0x10, 0x55, 0x28, 0x7D, 0x28, 0x11, 0x24, 0xFD, 0x44, 0x11, 0x00, 0x12, 0x86, 0x14, 0x7C, 0x10, 0x00, 0x28, 0x1C, 0x29, 0xE0, 0xFE, 0x20, 0x28, 0x24, 0x3B, 0xFE, 0x10, 0x50, 0x7C, 0x88, 0x55, 0x06, 0x56, 0x88, 0x7C, 0x88, 0x10, 0x88, 0xFE, 0x88, 0x10, 0x88, 0x10, 0x88, 0x11, 0x08, 0x12, 0x08, 0x28, 0x40, 0x28, 0x40, 0xFE, 0x78, 0x28, 0x90, 0x39, 0x24, 0x13, 0xFE, 0x7D, 0x24, 0x55, 0x24, 0x55, 0x24, 0x7D, 0xFC, 0x10, 0x50, 0xFE, 0x50, 0x10, 0x90, 0x10, 0x92, 0x11, 0x12, 0x12, 0x0E, 0x28, 0x90, 0x28, 0x90, 0xFF, 0xFC, 0x28, 0x90, 0x38, 0x44, 0x13, 0xFE, 0x7C, 0x80, 0x54, 0xFC, 0x55, 0x08, 0x7F, 0x10, 0x11, 0xFE, 0xFF, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x50, 0x11, 0x20, 0x28, 0x80, 0x28, 0x84, 0xFE, 0xFE, 0x29, 0x04, 0x3A, 0x44, 0x13, 0xFC, 0x7C, 0x04, 0x55, 0xF4, 0x54, 0x04, 0x7D, 0xF4, 0x10, 0x04, 0xFF, 0xF4, 0x11, 0x14, 0x11, 0x14, 0x11, 0xF4, 0x10, 0x08, 0x28, 0x00, 0x29, 0xFC, 0xFE, 0x48, 0x28, 0x20, 0x3B, 0xFE, 0x10, 0xA2, 0x7C, 0xA4, 0x55, 0x20, 0x56, 0x60, 0x7C, 0x24, 0x13, 0xFE, 0xFC, 0x70, 0x10, 0xA8, 0x11, 0x26, 0x12, 0x24, 0x10, 0x20, 0x28, 0x88, 0x28, 0x88, 0xFF, 0xFE, 0x28, 0x88, 0x39, 0xFC, 0x10, 0x88, 0x7F, 0xFE, 0x54, 0x20, 0x55, 0xFC, 0x7D, 0x24, 0x11, 0xFC, 0xFD, 0x24, 0x13, 0xFE, 0x11, 0x04, 0x11, 0x14, 0x11, 0x08, 0x28, 0x88, 0x28, 0x88, 0xFD, 0xFC, 0x28, 0x88, 0x3B, 0xFE, 0x10, 0x88, 0x7D, 0x04, 0x57, 0xFE, 0x55, 0x24, 0x7D, 0xFC, 0x11, 0x24, 0xFF, 0xFC, 0x11, 0x24, 0x11, 0x24, 0x11, 0x34, 0x11, 0x28, 0x02, 0x20, 0x3F, 0x20, 0x22, 0x50, 0x3A, 0x50, 0x2A, 0x88, 0x7F, 0x06, 0x41, 0x48, 0xBE, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x3E, 0x48, 0x22, 0x48, 0x22, 0x48, 0x2A, 0x88, 0x25, 0x08, 0x02, 0x08, 0x3F, 0x7C, 0x22, 0x48, 0x3A, 0x48, 0x2A, 0x48, 0x7F, 0x86, 0x41, 0x00, 0xBE, 0xFC, 0x22, 0x44, 0x3E, 0x48, 0x22, 0x28, 0x3E, 0x10, 0x22, 0x30, 0x22, 0x48, 0x2A, 0x8E, 0x25, 0x04, 0x02, 0x20, 0x3F, 0x20, 0x22, 0x20, 0x3A, 0x24, 0x2A, 0xFE, 0x7F, 0x20, 0x41, 0x20, 0xBE, 0x24, 0x22, 0xFE, 0x3E, 0x84, 0x22, 0x84, 0x3E, 0x84, 0x22, 0x84, 0x22, 0x84, 0x2A, 0xFC, 0x24, 0x84, 0x04, 0x20, 0x7E, 0x48, 0x44, 0xFC, 0x74, 0x88, 0x54, 0xA8, 0xFE, 0x88, 0x82, 0xA8, 0x7C, 0x90, 0x44, 0x84, 0x7C, 0xFE, 0x44, 0x04, 0x7C, 0x24, 0x45, 0xF4, 0x44, 0x04, 0x54, 0x28, 0x48, 0x10, 0x04, 0x08, 0x7E, 0x1C, 0x45, 0xE0, 0x75, 0x20, 0x55, 0x20, 0xFF, 0x20, 0x83, 0x24, 0x7D, 0xFE, 0x45, 0x20, 0x7D, 0x20, 0x45, 0x10, 0x7D, 0x10, 0x45, 0x28, 0x45, 0x4A, 0x55, 0xA6, 0x49, 0x12, 0x04, 0x08, 0x7E, 0x1C, 0x45, 0xE0, 0x75, 0x00, 0x55, 0x04, 0xFF, 0xFE, 0x83, 0x00, 0x7D, 0x04, 0x45, 0x7E, 0x7D, 0x44, 0x45, 0x44, 0x7D, 0x44, 0x45, 0x44, 0x45, 0x44, 0x56, 0x7C, 0x48, 0x44, 0x04, 0x40, 0x7E, 0x40, 0x44, 0x7C, 0x74, 0x84, 0x54, 0x88, 0xFF, 0x50, 0x82, 0x20, 0x7C, 0x50, 0x44, 0x8E, 0x7F, 0x04, 0x44, 0xF8, 0x7C, 0x88, 0x44, 0x88, 0x44, 0x88, 0x54, 0xF8, 0x48, 0x88, 0x00, 0x04, 0x7D, 0xFE, 0x45, 0x24, 0x75, 0x24, 0x55, 0xFC, 0xFF, 0x24, 0x83, 0x24, 0x7D, 0xFC, 0x44, 0x20, 0x7F, 0xFE, 0x44, 0x60, 0x7C, 0x70, 0x44, 0xA8, 0x45, 0x26, 0x56, 0x24, 0x48, 0x20, 0x00, 0x40, 0x7C, 0x84, 0x45, 0xFE, 0x75, 0x24, 0x55, 0x24, 0xFF, 0xFC, 0x83, 0x24, 0x7D, 0x44, 0x45, 0xFC, 0x7C, 0xA0, 0x45, 0x24, 0x7F, 0xFE, 0x44, 0x20, 0x44, 0x20, 0x54, 0x20, 0x48, 0x20, 0x00, 0x20, 0x7D, 0x24, 0x44, 0xA8, 0x74, 0x20, 0x55, 0xFE, 0xFE, 0x20, 0x82, 0xA8, 0x7D, 0x24, 0x44, 0x40, 0x7F, 0xFE, 0x44, 0x48, 0x7C, 0x88, 0x44, 0x70, 0x44, 0x50, 0x54, 0x8C, 0x49, 0x04, 0x04, 0x40, 0x7E, 0x20, 0x45, 0xFE, 0x75, 0x42, 0x54, 0x7C, 0xFE, 0x88, 0x83, 0x50, 0x7C, 0x20, 0x44, 0x50, 0x7D, 0x8E, 0x44, 0xF8, 0x7C, 0x88, 0x44, 0x88, 0x44, 0x88, 0x54, 0xF8, 0x48, 0x88, 0x04, 0x20, 0x7E, 0x10, 0x45, 0xFE, 0x75, 0x02, 0x54, 0x48, 0xFF, 0xFE, 0x82, 0x48, 0x7C, 0xFC, 0x44, 0x94, 0x7C, 0x94, 0x44, 0xA4, 0x7C, 0xA4, 0x44, 0x50, 0x44, 0x52, 0x54, 0x92, 0x49, 0x0E, 0x04, 0x40, 0x7E, 0x20, 0x45, 0xFE, 0x75, 0x02, 0x54, 0x1C, 0xFE, 0xE0, 0x82, 0x84, 0x7C, 0xFE, 0x44, 0x88, 0x7C, 0x88, 0x44, 0x88, 0x7F, 0xFE, 0x44, 0x00, 0x44, 0x88, 0x55, 0x06, 0x4A, 0x02, 0x00, 0x04, 0x7D, 0xFE, 0x45, 0x54, 0x75, 0x54, 0x55, 0xFC, 0xFE, 0x84, 0x82, 0xFE, 0x7D, 0x44, 0x47, 0xF4, 0x7D, 0x54, 0x45, 0x54, 0x7D, 0xF4, 0x44, 0x4C, 0x47, 0xFC, 0x54, 0x14, 0x48, 0x08, 0x10, 0x20, 0x24, 0x20, 0x7E, 0x28, 0x55, 0xFC, 0x54, 0x20, 0x7C, 0x24, 0x55, 0xFE, 0x54, 0x20, 0x7C, 0x70, 0x10, 0xAC, 0x19, 0x24, 0x28, 0x20, 0x2A, 0x22, 0x48, 0x02, 0x87, 0xFE, 0x00, 0x00, 0x10, 0x50, 0x24, 0x48, 0x7E, 0x40, 0x55, 0xFE, 0x54, 0x40, 0x7C, 0x40, 0x54, 0xFC, 0x54, 0x84, 0x7D, 0x28, 0x12, 0x10, 0x18, 0x2C, 0x28, 0xC4, 0x2A, 0x02, 0x48, 0x02, 0x87, 0xFE, 0x00, 0x00, 0x3F, 0xFC, 0x20, 0xA0, 0x20, 0x94, 0x3F, 0xFE, 0x21, 0x40, 0x26, 0x30, 0x39, 0x0E, 0x27, 0xF8, 0x24, 0x88, 0x27, 0xF8, 0x24, 0x88, 0x27, 0xF8, 0x41, 0x40, 0x42, 0x52, 0x84, 0x42, 0x18, 0x3E, 0x10, 0x08, 0x25, 0xFC, 0x7E, 0x50, 0x54, 0x54, 0x55, 0xFE, 0x7D, 0x54, 0x55, 0x54, 0x55, 0x54, 0x7D, 0x54, 0x11, 0xAC, 0x19, 0x04, 0x2D, 0x04, 0x29, 0x0C, 0x48, 0x02, 0x87, 0xFE, 0x00, 0x00, 0x10, 0x20, 0x25, 0x24, 0x7E, 0xA8, 0x54, 0x20, 0x54, 0xF8, 0x7C, 0x88, 0x54, 0xF8, 0x54, 0x88, 0x7C, 0xF8, 0x10, 0x88, 0x18, 0x88, 0x2A, 0xA8, 0x28, 0x92, 0x48, 0x02, 0x87, 0xFE, 0x00, 0x00, 0x10, 0x04, 0x25, 0xFE, 0x7F, 0x04, 0x55, 0x54, 0x55, 0xFC, 0x7D, 0x24, 0x55, 0xFC, 0x55, 0x44, 0x7D, 0x44, 0x11, 0x74, 0x19, 0x04, 0x2D, 0x14, 0x29, 0x0A, 0x48, 0x02, 0x87, 0xFE, 0x00, 0x00, 0x10, 0x40, 0x24, 0x24, 0x7F, 0xFE, 0x54, 0x50, 0x55, 0x24, 0x7D, 0x54, 0x55, 0xFC, 0x54, 0x20, 0x7D, 0xFC, 0x11, 0x44, 0x19, 0x54, 0x2D, 0x74, 0x29, 0x0C, 0x48, 0x02, 0x87, 0xFE, 0x00, 0x00, 0x20, 0x40, 0x20, 0x40, 0x20, 0xA0, 0x48, 0xA0, 0x49, 0x90, 0xF2, 0x48, 0x27, 0xFF, 0x4A, 0x08, 0xFB, 0xF8, 0x0A, 0x08, 0x13, 0xF8, 0x12, 0x88, 0x22, 0x50, 0x42, 0x20, 0x83, 0x1E, 0x02, 0x04, 0x3F, 0xFC, 0x20, 0x90, 0x3F, 0xFC, 0x21, 0x40, 0x26, 0x30, 0x38, 0x8E, 0x21, 0x44, 0x26, 0xB0, 0x2F, 0xF8, 0x34, 0x16, 0x27, 0xF0, 0x24, 0x10, 0x47, 0xF4, 0x44, 0x48, 0x85, 0x30, 0x06, 0x0C, 0x7F, 0x20, 0x10, 0x50, 0x1E, 0x98, 0x23, 0x26, 0x54, 0x48, 0x09, 0x10, 0x32, 0xA4, 0x04, 0x48, 0x1F, 0xF0, 0x28, 0x2E, 0xCF, 0xE4, 0x08, 0x20, 0x0F, 0xF0, 0x08, 0xA0, 0x0A, 0x60, 0x0C, 0x18, 0x7C, 0x38, 0x44, 0x20, 0x7D, 0xFC, 0x01, 0x24, 0xFF, 0xF8, 0x21, 0x24, 0x7D, 0x7C, 0x05, 0x50, 0x1A, 0x9C, 0x05, 0x40, 0x0F, 0xF0, 0x39, 0x2E, 0xCF, 0xE4, 0x0A, 0x20, 0x09, 0xC0, 0x0C, 0x30, 0x01, 0x04, 0x7F, 0xFE, 0x08, 0x90, 0x12, 0xFC, 0x7D, 0x90, 0x0A, 0xFC, 0x7C, 0x90, 0x09, 0x9E, 0x32, 0x80, 0x45, 0x40, 0x0F, 0xF0, 0x39, 0x2E, 0xCF, 0xE4, 0x0A, 0x20, 0x09, 0xC0, 0x0C, 0x30, 0x02, 0x04, 0x3F, 0x04, 0x20, 0x08, 0x24, 0x08, 0x3E, 0x10, 0x20, 0x24, 0x24, 0x44, 0x3E, 0x88, 0x20, 0x10, 0x22, 0x22, 0xFF, 0x42, 0x10, 0x04, 0x10, 0x08, 0x20, 0x10, 0x7F, 0x20, 0x01, 0x40, 0x01, 0x04, 0x3F, 0x88, 0x20, 0x10, 0x3F, 0x24, 0x20, 0x48, 0x3F, 0x10, 0x20, 0x24, 0xFF, 0x88, 0x12, 0x10, 0x3F, 0x60, 0x00, 0x04, 0xFF, 0xFE, 0x04, 0x40, 0x04, 0x42, 0x18, 0x42, 0x60, 0x3E, 0x12, 0x08, 0x14, 0x10, 0x18, 0x64, 0x12, 0x08, 0xFF, 0x72, 0x10, 0x04, 0x22, 0x18, 0x7F, 0x60, 0x00, 0x18, 0x1F, 0xE0, 0x01, 0x00, 0x0F, 0xF0, 0x01, 0x00, 0x7F, 0xFA, 0x01, 0x02, 0x00, 0xFE, 0x12, 0x08, 0x14, 0x10, 0x18, 0x64, 0x12, 0x08, 0xFF, 0x72, 0x10, 0x04, 0x22, 0x18, 0x7F, 0x60, 0x01, 0x10, 0x1F, 0xF8, 0x11, 0x10, 0x1F, 0xF0, 0x11, 0x14, 0xFF, 0xFE, 0x10, 0x10, 0x10, 0x30, 0x12, 0x18, 0x14, 0xE0, 0x18, 0x18, 0xFE, 0xE4, 0x24, 0x08, 0x7E, 0xF0, 0x00, 0x00, 0x3F, 0xF8, 0x04, 0x08, 0x18, 0x48, 0x60, 0x30, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x12, 0x18, 0x14, 0xE0, 0x18, 0x18, 0xFE, 0xE4, 0x24, 0x08, 0x7E, 0xF0, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x01, 0x10, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x12, 0x08, 0x14, 0x10, 0x18, 0x64, 0x12, 0x08, 0xFF, 0x72, 0x10, 0x04, 0x22, 0x18, 0x7F, 0x60, 0x04, 0x40, 0x24, 0x44, 0x27, 0x48, 0x24, 0x70, 0x24, 0x40, 0x2F, 0x42, 0xF0, 0x3E, 0x40, 0x00, 0x12, 0x08, 0x14, 0x10, 0x18, 0x64, 0x12, 0x08, 0xFF, 0x72, 0x10, 0x04, 0x22, 0x18, 0x7F, 0x60, 0x04, 0x40, 0x08, 0x44, 0x17, 0xFE, 0x30, 0xE0, 0xD1, 0x50, 0x12, 0x4E, 0x14, 0x44, 0x10, 0x40, 0x12, 0x08, 0x14, 0xF0, 0x18, 0x08, 0xFE, 0xF0, 0x24, 0x04, 0x7E, 0xF8, 0x11, 0x10, 0x09, 0x20, 0x3F, 0xF8, 0x02, 0x00, 0x7F, 0xFC, 0x08, 0x20, 0x3F, 0xD8, 0xC8, 0x46, 0x08, 0xD0, 0x07, 0xF0, 0x12, 0x18, 0x14, 0xE0, 0x18, 0x18, 0xFE, 0xE4, 0x24, 0x08, 0x7E, 0xF0, 0x00, 0x20, 0x06, 0x24, 0x78, 0xAC, 0x08, 0xB0, 0xFF, 0x20, 0x18, 0x50, 0x2C, 0x50, 0xCA, 0x88, 0x08, 0x86, 0x09, 0x04, 0x12, 0x18, 0x14, 0xE0, 0x18, 0x18, 0xFE, 0xE4, 0x24, 0x08, 0x7E, 0xF0, 0x01, 0x00, 0x7F, 0xFE, 0x40, 0x62, 0x8F, 0x84, 0x08, 0x20, 0x0F, 0xF0, 0x08, 0x44, 0xFF, 0xFE, 0x08, 0x20, 0x30, 0x18, 0x12, 0x18, 0x14, 0xE0, 0x18, 0x18, 0xFE, 0xE4, 0x24, 0x08, 0x7E, 0xF0, 0x00, 0x00, 0x1F, 0xF0, 0x12, 0x94, 0xFF, 0xFE, 0x08, 0x20, 0x0F, 0xF0, 0x05, 0x20, 0x18, 0xC0, 0x6C, 0x3C, 0x08, 0x08, 0x12, 0x18, 0x14, 0xE0, 0x18, 0x18, 0xFE, 0xE4, 0x24, 0x08, 0x7E, 0xF0, 0x09, 0x20, 0x1F, 0xF0, 0x14, 0x50, 0x13, 0x90, 0x14, 0x50, 0x1F, 0xF0, 0x22, 0x20, 0x3B, 0xA2, 0x22, 0x22, 0x3B, 0x9E, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x10, 0x3F, 0xFC, 0x22, 0x10, 0x27, 0x38, 0x2A, 0xD6, 0x32, 0x10, 0x21, 0x00, 0x22, 0x40, 0x24, 0x80, 0x49, 0x10, 0x42, 0x08, 0x87, 0xFC, 0x00, 0x04, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x10, 0x3F, 0xFC, 0x26, 0x38, 0x2B, 0x56, 0x32, 0x90, 0x3F, 0xF0, 0x20, 0x80, 0x2F, 0xF8, 0x20, 0x80, 0x5F, 0xF8, 0x40, 0x82, 0x80, 0x82, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x84, 0x3F, 0xFE, 0x22, 0x10, 0x3F, 0xFC, 0x22, 0x10, 0x27, 0x38, 0x2A, 0x56, 0x32, 0x90, 0x27, 0x20, 0x21, 0xC0, 0x22, 0x10, 0x4F, 0xF8, 0x42, 0xA0, 0x84, 0x98, 0x09, 0x88, 0x01, 0x00, 0x3F, 0xFC, 0x24, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x28, 0x40, 0x2F, 0x78, 0x28, 0x44, 0x2F, 0x3C, 0x20, 0x20, 0x27, 0xF8, 0x44, 0x20, 0x44, 0x22, 0x84, 0x22, 0x18, 0x1E, 0x01, 0x00, 0x3F, 0xFE, 0x24, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x2A, 0x50, 0x2C, 0x64, 0x2F, 0x7C, 0x20, 0x30, 0x27, 0xC0, 0x20, 0x88, 0x5F, 0xFC, 0x42, 0xA0, 0x9C, 0x9C, 0x00, 0x80, 0x01, 0x00, 0x3F, 0xFC, 0x24, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x28, 0x40, 0x2F, 0x78, 0x28, 0x44, 0x2F, 0x3C, 0x20, 0x88, 0x3F, 0xFC, 0x40, 0x80, 0x4F, 0xF8, 0x80, 0x80, 0x3F, 0xFE, 0x01, 0x00, 0x3F, 0xFC, 0x24, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x28, 0x40, 0x2F, 0x78, 0x28, 0x44, 0x2F, 0x3C, 0x24, 0x90, 0x22, 0xA0, 0x5F, 0xFC, 0x42, 0xA0, 0x9C, 0x9C, 0x00, 0x80, 0x10, 0x48, 0x0A, 0x48, 0x7F, 0xFC, 0x54, 0x48, 0x54, 0x48, 0x7F, 0x78, 0x55, 0x48, 0x55, 0x48, 0x7F, 0x78, 0x44, 0x48, 0x55, 0x48, 0x5E, 0xFE, 0x54, 0x00, 0x5F, 0x48, 0x94, 0x86, 0x01, 0x02, 0x01, 0x00, 0x3F, 0xFC, 0x24, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x2A, 0x50, 0x2C, 0x64, 0x2E, 0xBC, 0x21, 0x40, 0x27, 0xF0, 0x38, 0x8E, 0x4F, 0xF8, 0x44, 0x90, 0x82, 0xA0, 0x1F, 0xFC, 0x01, 0x00, 0x3F, 0xFC, 0x24, 0x40, 0x3F, 0xF8, 0x24, 0x48, 0x3F, 0xF8, 0x2A, 0x50, 0x2C, 0x64, 0x2F, 0x3C, 0x24, 0x08, 0x2F, 0x88, 0x3C, 0xFE, 0x4A, 0x88, 0x4F, 0xA8, 0x84, 0x88, 0x39, 0x98, 0x10, 0x10, 0x0A, 0x54, 0x7F, 0x10, 0x54, 0xFE, 0x54, 0x10, 0x7F, 0x54, 0x55, 0x10, 0x55, 0x48, 0x7F, 0x48, 0x44, 0xFE, 0x55, 0x28, 0x5E, 0xA8, 0x54, 0x5E, 0x5F, 0x48, 0x94, 0x88, 0x01, 0x08, 0x08, 0xA0, 0x10, 0x90, 0x30, 0xFC, 0x5F, 0x40, 0x90, 0x32, 0x10, 0x0E, 0x1F, 0xF0, 0x19, 0x30, 0x15, 0x50, 0x1F, 0xF0, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x24, 0x88, 0x42, 0x44, 0x04, 0x20, 0x7E, 0x20, 0x55, 0x24, 0x55, 0x24, 0x7D, 0x24, 0x55, 0x24, 0x55, 0xFC, 0x7C, 0x20, 0x10, 0x20, 0x7D, 0x24, 0x11, 0x24, 0xFF, 0x24, 0x01, 0x24, 0xAB, 0x24, 0xAB, 0xFC, 0x00, 0x04, 0x04, 0x10, 0x7E, 0x90, 0x54, 0x90, 0x54, 0x94, 0x7D, 0x3E, 0x55, 0x54, 0x57, 0xD4, 0x7C, 0x94, 0x10, 0x94, 0x7C, 0x94, 0x11, 0x14, 0xFF, 0x54, 0x01, 0xD4, 0xAA, 0x24, 0xAA, 0x24, 0x00, 0x4C, 0x04, 0x20, 0x7E, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x7C, 0x20, 0x54, 0x28, 0x55, 0xFC, 0x7C, 0x00, 0x10, 0x08, 0x7C, 0xFC, 0x10, 0x88, 0xFE, 0x88, 0x00, 0x88, 0xAA, 0x88, 0xAA, 0xF8, 0x00, 0x88, 0x04, 0x20, 0x7E, 0x20, 0x54, 0x7C, 0x54, 0x84, 0x7D, 0x48, 0x54, 0x30, 0x54, 0x60, 0x7D, 0x90, 0x10, 0x3E, 0x7C, 0x42, 0x10, 0xC4, 0xFF, 0x28, 0x00, 0x10, 0xAA, 0x20, 0xAA, 0x40, 0x01, 0x80, 0x04, 0x20, 0x7E, 0x20, 0x54, 0x40, 0x54, 0x88, 0x7D, 0xFC, 0x54, 0x88, 0x55, 0x06, 0x7E, 0x82, 0x10, 0xF8, 0x7C, 0x88, 0x11, 0x88, 0xFE, 0x50, 0x00, 0x20, 0xAA, 0x50, 0xAA, 0x8E, 0x01, 0x04, 0x04, 0x20, 0x7E, 0x28, 0x55, 0xFC, 0x54, 0x20, 0x7C, 0x20, 0x57, 0xFE, 0x54, 0x92, 0x7C, 0x54, 0x11, 0x10, 0x7C, 0x94, 0x13, 0xFE, 0xFC, 0x20, 0x00, 0x20, 0xAA, 0x58, 0xAA, 0x86, 0x01, 0x02, 0x3E, 0x44, 0x08, 0x7E, 0xFE, 0xA4, 0x1C, 0x24, 0x2A, 0x54, 0x48, 0x88, 0x1F, 0xF0, 0x19, 0x30, 0x15, 0x50, 0x1F, 0xF0, 0x01, 0x00, 0x3F, 0xF8, 0x01, 0x00, 0xFF, 0xFE, 0x24, 0x48, 0x44, 0x44, 0x04, 0x40, 0x7E, 0x20, 0x54, 0x04, 0x57, 0xFE, 0x7C, 0x00, 0x54, 0xF8, 0x54, 0x88, 0x7C, 0x88, 0x10, 0x88, 0x7C, 0xF8, 0x10, 0x20, 0xFE, 0xA8, 0x01, 0x26, 0xAA, 0x22, 0xAA, 0xA0, 0x00, 0x40, 0x04, 0x20, 0x7E, 0x40, 0x54, 0x88, 0x55, 0xFC, 0x7C, 0x20, 0x54, 0x24, 0x57, 0xFE, 0x7C, 0x50, 0x10, 0x98, 0x7D, 0x26, 0x10, 0xC8, 0xFE, 0x30, 0x00, 0xC4, 0xAA, 0x18, 0xAA, 0x60, 0x01, 0x80, 0x04, 0x40, 0x7E, 0x28, 0x55, 0xFC, 0x54, 0x00, 0x7C, 0x88, 0x54, 0x50, 0x57, 0xFE, 0x7C, 0x08, 0x10, 0xFC, 0x7C, 0x88, 0x10, 0x88, 0xFE, 0xF8, 0x00, 0x88, 0xAA, 0x88, 0xAA, 0xF8, 0x00, 0x88, 0x12, 0x10, 0x6F, 0x50, 0x42, 0x50, 0x6E, 0x50, 0x42, 0x88, 0x7E, 0x88, 0x01, 0x06, 0x54, 0xF8, 0x7C, 0x48, 0x54, 0x48, 0x7C, 0x48, 0x54, 0x48, 0x54, 0x48, 0x7D, 0x88, 0x52, 0xA8, 0x01, 0x10, 0x12, 0x10, 0x6F, 0x10, 0x42, 0x10, 0x6E, 0x10, 0x42, 0xFE, 0x7E, 0x92, 0x00, 0x92, 0x54, 0x92, 0x7C, 0x92, 0x54, 0xFE, 0x7C, 0x92, 0x54, 0x92, 0x54, 0x92, 0x7D, 0x92, 0x52, 0xFE, 0x00, 0x82, 0x12, 0x08, 0x6F, 0xFC, 0x42, 0x40, 0x6E, 0x48, 0x42, 0xFC, 0x7E, 0x48, 0x00, 0x48, 0x55, 0xFE, 0x7C, 0x00, 0x54, 0xFC, 0x7C, 0x84, 0x54, 0x84, 0x54, 0x84, 0x7D, 0x84, 0x52, 0xFC, 0x00, 0x84, 0x12, 0x04, 0x6F, 0xFE, 0x42, 0x84, 0x6E, 0xFC, 0x42, 0x84, 0x7E, 0xFC, 0x00, 0x20, 0x55, 0xFE, 0x7D, 0x22, 0x56, 0x24, 0x7F, 0xFE, 0x54, 0x48, 0x54, 0x88, 0x7E, 0x70, 0x52, 0x58, 0x01, 0x84, 0x12, 0x1C, 0x6F, 0xE0, 0x42, 0xA4, 0x6E, 0xA8, 0x42, 0x50, 0x7E, 0x84, 0x01, 0xF8, 0x54, 0x20, 0x7C, 0x48, 0x55, 0xFC, 0x7C, 0x20, 0x57, 0xFE, 0x54, 0x20, 0x7D, 0x50, 0x52, 0x4E, 0x01, 0x84, 0x10, 0x40, 0x3E, 0x40, 0x32, 0x40, 0x2A, 0x48, 0x3E, 0xFC, 0x00, 0x48, 0x7F, 0x48, 0x49, 0x48, 0x7F, 0x48, 0x49, 0x48, 0x7F, 0x48, 0x00, 0x48, 0xFF, 0x4A, 0x22, 0x8A, 0x22, 0x86, 0x43, 0x00, 0x10, 0x00, 0x3E, 0x08, 0x32, 0xFC, 0x2A, 0x10, 0x3E, 0x10, 0x00, 0x10, 0x7F, 0x14, 0x49, 0xFE, 0x7F, 0x10, 0x49, 0x10, 0x7F, 0x10, 0x00, 0x10, 0xFF, 0x10, 0x22, 0x10, 0x22, 0x10, 0x42, 0x10, 0x10, 0x10, 0x3E, 0x14, 0x32, 0xFE, 0x2A, 0x10, 0x3E, 0x38, 0x00, 0x56, 0x7F, 0x90, 0x49, 0x7C, 0x7F, 0x44, 0x49, 0x7C, 0x7F, 0x44, 0x00, 0x7C, 0xFF, 0x44, 0x22, 0x00, 0x22, 0xFE, 0x42, 0x00, 0x00, 0x00, 0x00, 0x30, 0x44, 0x32, 0x7F, 0xFF, 0x6C, 0x34, 0x6D, 0xFE, 0x6D, 0x32, 0x6F, 0xFF, 0x6E, 0xC0, 0x7C, 0xF8, 0x6D, 0xDC, 0x69, 0x58, 0x62, 0x78, 0x04, 0x70, 0x01, 0xDE, 0x0F, 0x07, 0x00, 0x00, 0x19, 0x02, 0x0D, 0xFF, 0x09, 0xFA, 0x7D, 0xFA, 0x47, 0xFE, 0x0D, 0x82, 0x09, 0xA3, 0x1F, 0xFF, 0x3B, 0x6A, 0x39, 0xEE, 0x58, 0xE6, 0x1B, 0xFE, 0x1A, 0x6A, 0x19, 0xEE, 0x18, 0x62, 0x00, 0x00, 0x24, 0xCC, 0x3C, 0xEE, 0x3D, 0xFF, 0x3C, 0xCD, 0x3F, 0xFF, 0x3D, 0xDE, 0x3D, 0x7E, 0x3D, 0xFF, 0x2E, 0xE7, 0x2C, 0xC6, 0x2C, 0xFE, 0x6C, 0xC6, 0x6C, 0xC6, 0x5C, 0xFE, 0x88, 0xC6, 0x08, 0x00, 0x0C, 0x18, 0x2A, 0x18, 0x3F, 0x3C, 0x3B, 0x2C, 0x3B, 0x7E, 0x3F, 0x56, 0x3B, 0xD9, 0xFF, 0x92, 0x3B, 0xFF, 0x3F, 0x0E, 0x3B, 0x4C, 0x23, 0x2C, 0x23, 0x38, 0x4F, 0x18, 0x82, 0x08, 0x00, 0x80, 0x04, 0xC8, 0x0C, 0xDC, 0x0D, 0xB0, 0x07, 0x1F, 0x3E, 0xB2, 0x0F, 0xF7, 0x36, 0xFC, 0x0B, 0xE6, 0x31, 0xC3, 0x63, 0x84, 0x3F, 0xFE, 0x03, 0xE0, 0x0F, 0xF0, 0x39, 0x9F, 0x61, 0x84, 0x00, 0x00, 0x0C, 0x18, 0x1D, 0x3A, 0x3F, 0x3F, 0x38, 0x38, 0x38, 0x78, 0x16, 0x14, 0x3F, 0x7B, 0x6D, 0xFB, 0x2F, 0x3B, 0x2E, 0x3A, 0x3C, 0x7C, 0x3E, 0x7E, 0x12, 0x36, 0x63, 0x67, 0xC1, 0xC3, 0x00, 0x00, 0x00, 0x0C, 0x03, 0xFE, 0x7F, 0x30, 0x18, 0x32, 0x39, 0xFF, 0x3C, 0x7C, 0x3E, 0x4C, 0x76, 0xEF, 0x77, 0x6E, 0xB6, 0x6C, 0x36, 0x6C, 0x3E, 0x4C, 0x36, 0x4C, 0x35, 0x8C, 0x23, 0x0C, 0x08, 0x00, 0x27, 0x24, 0x3F, 0xBF, 0x31, 0xB6, 0x3F, 0xB8, 0x31, 0xB6, 0x3F, 0xB6, 0x37, 0x3E, 0x3F, 0xBC, 0x39, 0x30, 0x00, 0xF0, 0x00, 0xC4, 0x1F, 0xFE, 0x00, 0xC0, 0x00, 0xC2, 0x7F, 0xFF, 0x00, 0x40, 0x10, 0x60, 0x18, 0x60, 0x32, 0x7E, 0x3F, 0xAF, 0x30, 0xBB, 0x65, 0x7A, 0x7E, 0x52, 0xDA, 0xB2, 0xFF, 0x7E, 0x18, 0xC6, 0x19, 0xE2, 0x1F, 0xF5, 0x1D, 0xD5, 0x3A, 0xC7, 0x10, 0xFC, 0x00, 0x00, 0x10, 0x80, 0x1C, 0x41, 0x39, 0x7F, 0x3F, 0xE1, 0x31, 0x91, 0x23, 0xB9, 0x3F, 0xB9, 0x5B, 0xF5, 0x7F, 0xFF, 0x59, 0xFD, 0x19, 0xBD, 0x1F, 0x99, 0x1D, 0x81, 0x39, 0x8F, 0x11, 0x83, 0x00, 0x00, 0x00, 0x30, 0x02, 0x30, 0x7F, 0x78, 0x18, 0x68, 0x38, 0x6C, 0x3C, 0xC6, 0x3F, 0x87, 0x37, 0xFE, 0x36, 0x30, 0x76, 0x30, 0x36, 0x30, 0x3E, 0x30, 0x36, 0x30, 0x37, 0xFF, 0x22, 0x00, 0x00, 0x00, 0x02, 0x42, 0x0D, 0x7F, 0x19, 0xE6, 0x25, 0xE4, 0x46, 0xEC, 0x0F, 0x68, 0x1B, 0xEC, 0x31, 0xE6, 0x3F, 0xE6, 0x5B, 0x7E, 0x1B, 0x7C, 0x1B, 0x68, 0x1F, 0x60, 0x1B, 0x60, 0x18, 0x60, 0x01, 0x00, 0x07, 0xC0, 0x07, 0x90, 0x07, 0xF8, 0x0D, 0x80, 0x09, 0x88, 0x1F, 0xFC, 0x29, 0xB8, 0x39, 0xB0, 0x3F, 0xFE, 0x69, 0x50, 0x49, 0x51, 0xFF, 0xFF, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x00, 0x08, 0x00, 0x0C, 0x10, 0x8C, 0x1C, 0x4C, 0x18, 0x3C, 0x18, 0x2C, 0x7F, 0x8C, 0x58, 0x4C, 0x18, 0x6C, 0x18, 0x2E, 0x18, 0x7F, 0x1F, 0xCC, 0x3C, 0x0C, 0x70, 0x0C, 0x40, 0x0C, 0x00, 0x0C, 0x00, 0x80, 0x1C, 0xC4, 0x18, 0xC6, 0x18, 0xC6, 0x3F, 0xFE, 0x10, 0xC6, 0x01, 0xC0, 0x03, 0x70, 0x06, 0x38, 0x1F, 0x1C, 0x63, 0x1B, 0x03, 0x18, 0x02, 0x18, 0x06, 0x18, 0x04, 0x18, 0x78, 0x18, 0x00, 0x00, 0x00, 0x04, 0x03, 0xFE, 0x04, 0xCC, 0x7E, 0xCE, 0x1B, 0xFF, 0x18, 0xCC, 0x7F, 0xFC, 0x59, 0xCC, 0x19, 0x84, 0x19, 0xFE, 0x1F, 0xCC, 0x7E, 0xCC, 0x62, 0xFC, 0x04, 0xCC, 0x00, 0xCC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0xCE, 0x7F, 0xCC, 0x58, 0xCC, 0x18, 0xFC, 0x18, 0xCC, 0x7F, 0xCC, 0x58, 0xCC, 0x18, 0xFC, 0x18, 0xCC, 0x1F, 0x8C, 0x7F, 0x8C, 0x23, 0x6C, 0x0E, 0x3C, 0x18, 0x0C, 0x00, 0x08, 0x00, 0xCC, 0x00, 0xAC, 0x7F, 0xF8, 0x5B, 0xEF, 0x1A, 0x9E, 0x18, 0x9E, 0x7F, 0xFE, 0x5B, 0x8E, 0x19, 0xEE, 0x19, 0x6C, 0x1F, 0x6C, 0x7E, 0x6E, 0x43, 0xDF, 0x04, 0xB3, 0x00, 0x41, 0x08, 0x08, 0x0C, 0x0C, 0x7F, 0x8E, 0x2C, 0xFF, 0x7F, 0xCC, 0x4E, 0x2C, 0x7F, 0xBC, 0x4C, 0x2C, 0x0D, 0xCC, 0x7F, 0x0C, 0x71, 0xFC, 0x01, 0x88, 0x3F, 0xFE, 0x01, 0x80, 0x01, 0x82, 0x7F, 0xFF, 0x08, 0x10, 0x0E, 0x1A, 0xFF, 0xFF, 0x0E, 0x1A, 0x7F, 0xFF, 0x3F, 0x7E, 0x33, 0x66, 0x3F, 0x7E, 0x77, 0x66, 0x26, 0x2E, 0x34, 0x3E, 0x7F, 0xFF, 0x3F, 0x7E, 0x33, 0x66, 0x3F, 0x7E, 0x33, 0x66, 0x00, 0x40, 0x0C, 0x60, 0x0C, 0xC2, 0x7F, 0xFE, 0x4D, 0x66, 0x0D, 0x36, 0x0F, 0x3E, 0x1F, 0xF6, 0x79, 0x86, 0x63, 0xFC, 0x07, 0x78, 0x0F, 0xFF, 0x35, 0x8A, 0xDF, 0xFC, 0x07, 0xB8, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x60, 0x48, 0x62, 0x7F, 0xFE, 0x6F, 0xD6, 0x6D, 0xDC, 0x6D, 0xFE, 0x7F, 0xFF, 0x6F, 0x8E, 0x6D, 0x8C, 0x6D, 0xFC, 0x6D, 0x38, 0x7F, 0xB4, 0x6B, 0x37, 0x42, 0xF2, 0x04, 0x60, 0x00, 0x10, 0x00, 0x1C, 0x7F, 0x98, 0x19, 0x98, 0x5D, 0xFF, 0x3D, 0xD9, 0x3F, 0xD9, 0x3D, 0xD9, 0x1B, 0xD9, 0x3F, 0xFF, 0x7D, 0xD9, 0x59, 0x98, 0x19, 0x98, 0x1D, 0x98, 0x7B, 0x98, 0x11, 0x18, 0x00, 0x00, 0x01, 0xFC, 0x01, 0x86, 0x7F, 0xFE, 0x59, 0xFE, 0x19, 0xA6, 0x19, 0x36, 0x1F, 0xFF, 0x7F, 0xFE, 0x19, 0x86, 0x19, 0xFE, 0x1F, 0xBC, 0x7D, 0xF4, 0x63, 0xB3, 0x06, 0xF2, 0x00, 0x60, 0x00, 0x00, 0x00, 0x58, 0x03, 0xFF, 0xFF, 0xFC, 0x71, 0xFE, 0x31, 0xB6, 0x31, 0xFE, 0x35, 0xB6, 0xFD, 0xF2, 0x31, 0xFE, 0x31, 0xFE, 0x3E, 0xD4, 0xF8, 0xFE, 0x40, 0xD2, 0x00, 0xFF, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x20, 0x02, 0x38, 0x7F, 0xFF, 0x09, 0x18, 0x18, 0x30, 0x1A, 0x37, 0x1F, 0xE6, 0x3B, 0xFC, 0x3B, 0xF8, 0x5B, 0x38, 0x1B, 0x38, 0x1B, 0x66, 0x1F, 0xFF, 0x1B, 0xFF, 0x10, 0x02, 0x00, 0x00, 0x10, 0x30, 0x18, 0x30, 0x3A, 0x78, 0x3F, 0x68, 0x20, 0xCE, 0x3E, 0xFF, 0x79, 0x82, 0x5A, 0x00, 0x7F, 0xFE, 0x18, 0xC6, 0x18, 0xC6, 0x1E, 0xC6, 0x1C, 0xFE, 0x38, 0xC6, 0x10, 0xC4, 0x00, 0x00, 0x1B, 0xFC, 0x1E, 0xDE, 0x1B, 0xFE, 0x7F, 0xBE, 0x5B, 0xF7, 0x3F, 0xA7, 0x3F, 0xFD, 0x3F, 0xB8, 0x3C, 0x32, 0x3B, 0xFF, 0x38, 0x78, 0x58, 0xF8, 0x19, 0xB6, 0x1B, 0x33, 0x1E, 0x30, 0x08, 0x08, 0x0F, 0xFC, 0x0C, 0x0C, 0x0F, 0xFC, 0x0C, 0x0C, 0x0F, 0xFC, 0x0D, 0xB8, 0x1F, 0xF0, 0x7E, 0x30, 0x06, 0x30, 0x7F, 0xFE, 0x06, 0x30, 0x04, 0x30, 0x04, 0x30, 0x18, 0x30, 0x60, 0x30, 0x02, 0x20, 0x03, 0x30, 0x03, 0x32, 0x7F, 0xFF, 0x03, 0x30, 0x03, 0x30, 0x0C, 0x34, 0x0B, 0xFE, 0x1B, 0xFE, 0x1F, 0xFF, 0x39, 0xFC, 0x59, 0xFE, 0x99, 0x86, 0x19, 0xFE, 0x19, 0x86, 0x19, 0xBE, 0x00, 0x00, 0x0D, 0x00, 0x09, 0x82, 0x19, 0xFF, 0x19, 0xF6, 0x11, 0x96, 0x39, 0xD6, 0x3F, 0xF6, 0x59, 0x94, 0x9B, 0x9C, 0x1F, 0xE8, 0x1D, 0xA8, 0x1D, 0x94, 0x1F, 0xB6, 0x19, 0xE7, 0x19, 0x82, 0x00, 0x00, 0x1C, 0x06, 0x18, 0xFE, 0x18, 0x30, 0x1B, 0xFF, 0x3E, 0xAC, 0x38, 0x6C, 0x78, 0x4E, 0x78, 0xEF, 0x19, 0xEE, 0x1C, 0x6C, 0x1E, 0x4C, 0x1A, 0x4C, 0x10, 0xCC, 0x31, 0x8C, 0x63, 0x08, 0x08, 0x00, 0x0F, 0xFC, 0x0C, 0x0C, 0x0F, 0xFC, 0x0F, 0xFC, 0x0D, 0x0C, 0x08, 0xC8, 0x00, 0x88, 0x1F, 0xFE, 0x02, 0x30, 0x03, 0x20, 0x03, 0x60, 0x01, 0xC0, 0x07, 0xE0, 0x1F, 0x7E, 0x3C, 0x08, 0x08, 0x08, 0x0F, 0xFC, 0x0C, 0x0C, 0x0F, 0xFC, 0x0F, 0xFC, 0x2C, 0x0C, 0x3F, 0xFE, 0x71, 0x83, 0x70, 0xCC, 0x1F, 0xFE, 0x02, 0x30, 0x03, 0x20, 0x03, 0x60, 0x01, 0xC0, 0x07, 0x78, 0x3C, 0x0E, 0x01, 0x00, 0x11, 0xC8, 0x1D, 0x8E, 0x19, 0x8C, 0x19, 0x8C, 0x1F, 0xFC, 0x10, 0xC8, 0x01, 0xC0, 0x03, 0x30, 0x07, 0xFF, 0x1D, 0x8A, 0x7F, 0xFC, 0x1D, 0x90, 0x07, 0xB8, 0x3F, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x0C, 0x18, 0x0D, 0x18, 0xFF, 0x99, 0x0C, 0xFF, 0x7F, 0x9B, 0x40, 0x1B, 0x22, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x33, 0x63, 0x3F, 0x63, 0x33, 0xDF, 0x33, 0x8E, 0x26, 0x04, 0x00, 0x80, 0x00, 0xD2, 0x13, 0xDE, 0x1B, 0x7E, 0x1B, 0xFE, 0x1B, 0xF7, 0x1F, 0xF7, 0x7F, 0x62, 0x1F, 0xFF, 0x1B, 0xF6, 0x1B, 0xF6, 0x1F, 0xFE, 0x3A, 0x6C, 0x73, 0xF7, 0x46, 0xE7, 0x04, 0x42, 0x08, 0x20, 0x0C, 0x30, 0x1F, 0xFF, 0x14, 0x78, 0x34, 0x58, 0x26, 0x98, 0x4F, 0xF8, 0x0C, 0x18, 0x0F, 0xF8, 0x1C, 0x18, 0x1F, 0xFC, 0x19, 0x8C, 0x19, 0x8C, 0x1B, 0xEC, 0x06, 0x3E, 0xFC, 0x04, 0x08, 0x20, 0x0C, 0x30, 0x1F, 0xFF, 0x14, 0x70, 0x34, 0x50, 0x27, 0xD8, 0x65, 0x98, 0x19, 0x9E, 0x0F, 0xB0, 0x3F, 0xFC, 0x10, 0x0C, 0x00, 0x0C, 0x1F, 0xFC, 0x00, 0x0C, 0x3F, 0xFC, 0x00, 0x0C, 0x00, 0x00, 0x10, 0x10, 0x18, 0x1F, 0x18, 0x18, 0x1C, 0xFF, 0xFE, 0xDB, 0x76, 0xFE, 0x16, 0xFE, 0x16, 0xDF, 0x16, 0xFE, 0x37, 0xBE, 0x27, 0xA7, 0x6F, 0x27, 0x47, 0x47, 0x83, 0x87, 0x07, 0x06, 0x00, 0x00, 0x10, 0x01, 0x19, 0xF9, 0x35, 0x99, 0x3F, 0xDD, 0x6D, 0xFF, 0x7F, 0xFF, 0xBF, 0xFF, 0x3F, 0xFF, 0x3F, 0xFF, 0x3F, 0xFF, 0x3F, 0xD7, 0x33, 0xE1, 0x3F, 0xB9, 0xFF, 0xBF, 0x63, 0x13, 0x00, 0x20, 0x10, 0x30, 0x7F, 0x60, 0x7F, 0x7F, 0x75, 0xC3, 0x61, 0x83, 0x7F, 0xFB, 0x69, 0x6F, 0x7D, 0x6F, 0x7D, 0x6F, 0x7D, 0x7F, 0x7D, 0xEF, 0x7F, 0x63, 0x6D, 0x17, 0xD9, 0x0E, 0x00, 0x04, 0x08, 0x00, 0x0C, 0x48, 0x1F, 0xEE, 0x1F, 0x8C, 0x19, 0xCC, 0x3F, 0xEC, 0x3D, 0x88, 0x7B, 0x88, 0x5B, 0xF0, 0x9F, 0xD4, 0x1D, 0x92, 0x19, 0xA2, 0x19, 0xBF, 0x19, 0xFF, 0x19, 0xA1, 0x19, 0x80, 0x00, 0x00, 0x0D, 0x8C, 0x08, 0xD8, 0x18, 0x94, 0x1B, 0xFE, 0x10, 0x36, 0x39, 0xFE, 0x39, 0x36, 0x5B, 0xFE, 0x9A, 0x73, 0x18, 0xF3, 0x19, 0xBE, 0x1B, 0x3E, 0x1E, 0x34, 0x1C, 0x30, 0x18, 0x30, 0x00, 0x00, 0x21, 0x08, 0x31, 0xFC, 0x3D, 0x88, 0x55, 0xF8, 0x2D, 0x88, 0x3B, 0xFC, 0x2B, 0x0E, 0x1B, 0x68, 0x13, 0x68, 0x73, 0x68, 0x33, 0x48, 0x33, 0xF8, 0x33, 0x9E, 0x3E, 0x0C, 0x18, 0x04, 0x08, 0x04, 0x0C, 0xCE, 0x0C, 0x6C, 0x0E, 0x6D, 0x7F, 0xFF, 0x1C, 0x3C, 0x3D, 0x3E, 0x3E, 0xBF, 0x3F, 0xFE, 0x3E, 0xFE, 0x2C, 0xFE, 0x2C, 0xFE, 0x4C, 0x3C, 0x0C, 0x3C, 0x0F, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x11, 0xFC, 0x19, 0x4E, 0x18, 0x30, 0x1F, 0xFF, 0x5E, 0xFA, 0x79, 0xFC, 0x7A, 0x7A, 0x5B, 0xFF, 0x1B, 0x79, 0x1B, 0xFD, 0x1F, 0xED, 0x17, 0x7D, 0x33, 0x6D, 0x63, 0x1F, 0xC3, 0x06, 0x00, 0x20, 0x00, 0x30, 0x00, 0x32, 0x7F, 0xFF, 0x66, 0x30, 0x66, 0x34, 0x67, 0xFE, 0x66, 0x30, 0x7F, 0xFF, 0x66, 0x33, 0x66, 0x33, 0x66, 0x33, 0x7E, 0x3F, 0x66, 0x37, 0x60, 0x30, 0x00, 0x30, 0x00, 0x40, 0x00, 0x60, 0x7B, 0xFC, 0x6F, 0x26, 0x6B, 0xBE, 0x7B, 0xFE, 0x73, 0xFE, 0x7B, 0x76, 0x6F, 0xFE, 0x6F, 0x3E, 0x7F, 0x66, 0x7F, 0xFF, 0x70, 0x70, 0x60, 0xD0, 0x60, 0x8F, 0x47, 0x02, 0x00, 0x00, 0x00, 0x60, 0x44, 0x34, 0x7F, 0xFE, 0x6C, 0xDC, 0x6F, 0xFF, 0x6F, 0x04, 0x7D, 0xFE, 0x6D, 0xFE, 0x6D, 0xB6, 0x6D, 0xB6, 0x6D, 0xFE, 0x7F, 0xFE, 0x6A, 0x30, 0x47, 0xFF, 0x04, 0x00, 0x00, 0x80, 0x00, 0xC4, 0x1F, 0xFE, 0x00, 0xC2, 0x7F, 0xFF, 0x08, 0x10, 0x0C, 0x18, 0x3F, 0x98, 0x32, 0x19, 0x12, 0xFF, 0x1A, 0x18, 0x1A, 0x18, 0x0C, 0x18, 0x1E, 0x18, 0x1B, 0xFF, 0xF1, 0xC0, 0x00, 0x00, 0x00, 0x02, 0x03, 0x8F, 0x06, 0xFC, 0x7F, 0xCC, 0x19, 0x8C, 0x19, 0xFF, 0x7E, 0xEC, 0x5A, 0xCC, 0x1A, 0xCC, 0x1A, 0x8E, 0x1F, 0xFF, 0x3D, 0xC0, 0x72, 0x70, 0x44, 0x1F, 0x08, 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x7E, 0x7C, 0x1C, 0x6D, 0xEE, 0x6C, 0x76, 0x6F, 0xFF, 0x6D, 0x58, 0x7C, 0xDA, 0x6D, 0xFE, 0x6F, 0xDE, 0x6E, 0xDE, 0x7C, 0xDE, 0x6C, 0xDE, 0x60, 0x9C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0xFE, 0x04, 0xE0, 0x7E, 0xB8, 0x18, 0xB0, 0x18, 0xB2, 0x7F, 0xFF, 0x59, 0x30, 0x18, 0xB8, 0x18, 0xF4, 0x1E, 0xB6, 0x7D, 0xB3, 0x21, 0x32, 0x02, 0xF0, 0x00, 0x30, 0x00, 0x80, 0x1C, 0xE2, 0x18, 0xE3, 0x10, 0xE3, 0x3F, 0xFF, 0x1F, 0xFB, 0x10, 0x0C, 0x1F, 0xFC, 0x1F, 0xFC, 0x10, 0x4C, 0x1C, 0x68, 0x1A, 0x7E, 0x1F, 0x70, 0x10, 0x64, 0x17, 0x64, 0x3E, 0x7E, 0x00, 0x00, 0x00, 0xF0, 0x40, 0xD8, 0x7D, 0xFF, 0x6D, 0x98, 0x6D, 0x98, 0x6F, 0x9A, 0x7F, 0xFF, 0x6F, 0x98, 0x6D, 0x9A, 0x6D, 0xFF, 0x6D, 0x98, 0x7D, 0x99, 0x69, 0xFF, 0x41, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x0C, 0x33, 0xFE, 0x19, 0x4C, 0x15, 0xE8, 0x66, 0xAA, 0x7B, 0xFF, 0x2E, 0xC6, 0x1F, 0xFF, 0x15, 0x88, 0x33, 0xFC, 0x73, 0x58, 0x33, 0x58, 0x36, 0x70, 0x3D, 0xDF, 0x3F, 0x04, 0x00, 0x00, 0x11, 0x00, 0x19, 0xFF, 0x19, 0xB3, 0x1D, 0xB3, 0x3F, 0xFF, 0x39, 0xB3, 0x79, 0xB3, 0x59, 0xB3, 0x19, 0xFF, 0x19, 0xB3, 0x1D, 0x33, 0x15, 0x33, 0x32, 0x33, 0x66, 0x3F, 0xCC, 0x22, 0x00, 0x00, 0x04, 0x14, 0x7F, 0xF6, 0x2D, 0x3A, 0x3C, 0xEB, 0x2C, 0xCE, 0x6C, 0xC6, 0x7E, 0xFF, 0x67, 0xF3, 0x27, 0x32, 0x0F, 0xFF, 0xF6, 0x30, 0x44, 0x78, 0x3C, 0x6E, 0x1D, 0xE6, 0x0B, 0xC2, 0x04, 0x40, 0x07, 0x70, 0x06, 0x62, 0x7F, 0xFF, 0x06, 0x60, 0x07, 0xF8, 0x05, 0x98, 0x07, 0xF8, 0x07, 0xF8, 0x04, 0x9C, 0x1F, 0xFC, 0x1F, 0xFC, 0x1F, 0xFC, 0x1F, 0xFC, 0x1F, 0xFC, 0x1B, 0xCC, 0x00, 0x00, 0x38, 0x78, 0x32, 0x5A, 0xFF, 0xDF, 0x70, 0xDE, 0x35, 0xD9, 0x7F, 0xF9, 0x30, 0xDB, 0xFE, 0xDF, 0x76, 0xF0, 0x36, 0x32, 0x3F, 0xFF, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x01, 0x01, 0x73, 0xFF, 0x5E, 0x10, 0x3E, 0x7F, 0x36, 0x61, 0x3F, 0xE9, 0x7E, 0x6D, 0x36, 0x6D, 0x56, 0x6D, 0x37, 0x69, 0x3F, 0xF9, 0x30, 0x18, 0x5C, 0x24, 0x47, 0xC3, 0x83, 0x01, 0x00, 0x10, 0x42, 0x18, 0x7F, 0xD2, 0x41, 0xFE, 0x7F, 0xE6, 0x41, 0xE6, 0x7F, 0xFE, 0x49, 0x6C, 0x6D, 0x7F, 0x7F, 0x43, 0x4E, 0x07, 0x4D, 0xFF, 0x7D, 0x03, 0x6D, 0x07, 0xEF, 0x9F, 0x4F, 0x06, 0x00, 0x08, 0x0C, 0x0C, 0x0C, 0x0C, 0xFF, 0x8C, 0x4C, 0x0E, 0x0F, 0xFF, 0x7F, 0x9C, 0x40, 0x3C, 0x22, 0x3C, 0x3F, 0x3C, 0x33, 0x6C, 0x33, 0x4C, 0x3F, 0x8C, 0x33, 0x0C, 0x32, 0x3C, 0x20, 0x08, 0x00, 0x80, 0x00, 0xC2, 0x3F, 0xFF, 0x00, 0xC8, 0x2F, 0xFE, 0x3F, 0xFF, 0x7F, 0xFB, 0x60, 0x3C, 0x00, 0xE0, 0x00, 0xC2, 0x7F, 0xFF, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x07, 0xC0, 0x03, 0x80, 0x04, 0x40, 0x07, 0x70, 0x06, 0x62, 0x7F, 0xFF, 0x06, 0x60, 0x06, 0x60, 0x07, 0xF8, 0x06, 0x30, 0x06, 0x30, 0x07, 0xB0, 0x06, 0xF0, 0x06, 0x70, 0x04, 0x32, 0x0C, 0x32, 0x38, 0x3F, 0x60, 0x00, 0x00, 0x00, 0x10, 0x22, 0x1B, 0xFF, 0x35, 0xEB, 0x3F, 0xEF, 0x20, 0xFF, 0x7F, 0xF3, 0x59, 0x72, 0xDC, 0xFC, 0xFF, 0xFF, 0x1A, 0xF9, 0x19, 0xFC, 0x1E, 0xFE, 0x1D, 0xFF, 0x38, 0xFC, 0x13, 0xE0, 0x00, 0x00, 0x20, 0x30, 0x10, 0x34, 0x1E, 0x3E, 0x0F, 0x3C, 0x6D, 0xF8, 0x3C, 0xB2, 0x2F, 0xFF, 0x08, 0xD8, 0x18, 0xD8, 0x10, 0xD8, 0x70, 0x9A, 0x31, 0x9B, 0x31, 0x1B, 0x36, 0x1F, 0x3C, 0x1F, 0x00, 0x00, 0x12, 0x04, 0x1B, 0xFE, 0x1B, 0x0C, 0x1F, 0xFC, 0x3F, 0xFC, 0x3B, 0x0C, 0x3A, 0x38, 0x5B, 0xB3, 0x1B, 0xFE, 0x1B, 0x3E, 0x1F, 0x33, 0x1F, 0x73, 0x13, 0xFF, 0x33, 0x1F, 0x60, 0x00, 0x00, 0x40, 0x00, 0x64, 0x00, 0x7E, 0x05, 0xFC, 0x7E, 0x6C, 0x1B, 0xFF, 0x1A, 0x30, 0x1C, 0x64, 0x7E, 0xFE, 0x19, 0xE0, 0x19, 0x7C, 0x1E, 0x46, 0x7C, 0x04, 0x60, 0x4C, 0x00, 0x3C, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0xFF, 0x07, 0xF0, 0x7E, 0xFE, 0x18, 0xF6, 0x18, 0xF6, 0x1C, 0xFE, 0x7E, 0xF5, 0x1B, 0xFF, 0x1B, 0x39, 0x1F, 0x3D, 0x7F, 0xFF, 0x43, 0x85, 0x03, 0x07, 0x03, 0x03, 0x00, 0x00, 0x10, 0x22, 0x1C, 0xFF, 0x18, 0x33, 0x1A, 0xBB, 0x7F, 0xFB, 0x1C, 0xFF, 0x36, 0x7B, 0x3C, 0x3F, 0x3C, 0xFF, 0x69, 0xFB, 0x6A, 0xB3, 0x5E, 0x33, 0xDF, 0xFF, 0x92, 0x77, 0x00, 0x00, 0x04, 0x40, 0x02, 0x60, 0x0F, 0xF0, 0x01, 0x80, 0x0F, 0xF0, 0x01, 0x80, 0x1F, 0xF8, 0x05, 0x84, 0x37, 0xA6, 0x7F, 0x7F, 0x48, 0x58, 0x7F, 0x7F, 0x08, 0x18, 0xFF, 0xFF, 0x08, 0x18, 0x08, 0x18, 0x02, 0x00, 0x03, 0xC0, 0x04, 0xF0, 0x0F, 0xF0, 0x0F, 0x80, 0x1E, 0x80, 0x0F, 0x80, 0x1F, 0xFC, 0x10, 0x20, 0x1C, 0x38, 0x3E, 0x7C, 0x3F, 0xFE, 0x39, 0xE0, 0x79, 0xA0, 0x39, 0xE2, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x7E, 0x32, 0x67, 0xFF, 0x67, 0x60, 0x66, 0x60, 0x7E, 0x7C, 0x66, 0x6E, 0x66, 0x4C, 0x66, 0xCC, 0x66, 0xCC, 0x7E, 0x8C, 0x65, 0x8C, 0x43, 0x7C, 0x06, 0x18, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x7F, 0xFF, 0x08, 0x18, 0x18, 0x38, 0x1A, 0x3A, 0x1F, 0x3E, 0x33, 0x76, 0x73, 0x76, 0xB3, 0xB6, 0x33, 0x36, 0x33, 0x36, 0x3F, 0x3E, 0x33, 0x36, 0x20, 0x20, 0x00, 0x00, 0x00, 0x0C, 0x03, 0xFE, 0x05, 0x3E, 0x7F, 0xBC, 0x1F, 0xFF, 0x1A, 0x78, 0x1C, 0xF8, 0x7F, 0xB6, 0x1B, 0x37, 0x1F, 0xFE, 0x1F, 0x36, 0x7F, 0xFE, 0x63, 0x36, 0x03, 0xFE, 0x03, 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x60, 0x04, 0x60, 0x7E, 0x7E, 0x18, 0xC6, 0x18, 0x86, 0x1C, 0xC6, 0x7F, 0x26, 0x18, 0x36, 0x18, 0x26, 0x1E, 0x26, 0x7C, 0x06, 0x20, 0x0E, 0x00, 0x3E, 0x00, 0x0C, 0x00, 0x00, 0x10, 0x02, 0x18, 0xBF, 0x3A, 0xFC, 0x3F, 0xB4, 0x20, 0xB4, 0x7F, 0xB4, 0x58, 0xB4, 0xDA, 0xB4, 0xFF, 0xB6, 0x18, 0xB6, 0x18, 0xB6, 0x1F, 0xB6, 0x1D, 0x33, 0x3A, 0x33, 0x14, 0x30, 0x00, 0x40, 0x10, 0x20, 0x18, 0x21, 0x1F, 0xFF, 0x18, 0xF8, 0x3F, 0xBE, 0x7F, 0xFE, 0x7B, 0x06, 0x79, 0xFC, 0x19, 0x8C, 0x19, 0xFC, 0x19, 0x8C, 0x19, 0xFC, 0x19, 0x8C, 0x19, 0xBC, 0x19, 0x8C, 0x00, 0x00, 0x00, 0x38, 0x10, 0x32, 0x19, 0xFF, 0x19, 0x30, 0x5F, 0xFF, 0x7E, 0x40, 0x7E, 0x6C, 0x7E, 0xF7, 0x7F, 0x7D, 0x7E, 0x6E, 0x7E, 0xAC, 0x7F, 0x30, 0x77, 0x38, 0x02, 0xEF, 0x07, 0x83, 0x00, 0x00, 0x00, 0x04, 0x3F, 0x3E, 0x33, 0x0C, 0x37, 0x18, 0x3F, 0x31, 0x3F, 0x3F, 0x3F, 0x17, 0x3F, 0x3B, 0x3F, 0x2B, 0x3F, 0x73, 0x37, 0xFE, 0x25, 0xC6, 0x61, 0xE2, 0x40, 0x7E, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x30, 0x02, 0x32, 0x7F, 0xFF, 0x09, 0x30, 0x18, 0x34, 0x1F, 0xFE, 0x1B, 0x30, 0x3B, 0xFE, 0x3B, 0x33, 0x5B, 0x33, 0x1B, 0x33, 0x1F, 0x3F, 0x1B, 0x37, 0x1A, 0x34, 0x10, 0x30, 0x00, 0x20, 0x04, 0x38, 0x7E, 0xF7, 0x06, 0xF6, 0x06, 0xF6, 0x3F, 0xFE, 0x36, 0x34, 0x60, 0x30, 0x7C, 0xFC, 0x6E, 0xCE, 0x2C, 0x6C, 0x0C, 0x68, 0x0C, 0x38, 0x08, 0x30, 0x78, 0xEE, 0x13, 0xC3, 0x00, 0x00, 0x18, 0x42, 0x1B, 0xFF, 0x19, 0x73, 0x7F, 0xFB, 0x59, 0xFF, 0x3A, 0xF3, 0x3C, 0xD2, 0x3F, 0xFF, 0x3D, 0x9A, 0x3B, 0xFE, 0x3D, 0x9A, 0x59, 0xFE, 0x19, 0xFF, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00, 0x00, 0x04, 0x44, 0xFE, 0x7E, 0x0C, 0x66, 0x10, 0x66, 0x70, 0x66, 0xE2, 0x7E, 0x7F, 0x66, 0x3E, 0x66, 0x6A, 0x66, 0x7A, 0x7E, 0xDA, 0x67, 0xB2, 0x67, 0x7E, 0x41, 0xCE, 0x03, 0x0C, 0x00, 0x00, 0x27, 0xFE, 0x14, 0xF0, 0x1C, 0xF0, 0x0F, 0xFE, 0x06, 0xF6, 0x0E, 0xF6, 0x7E, 0xBE, 0x1F, 0xBE, 0x1F, 0x1E, 0x1E, 0x06, 0x1F, 0xFE, 0x3E, 0x06, 0x67, 0xFF, 0x43, 0xFE, 0x00, 0x00, 0x00, 0x20, 0x01, 0xB4, 0x00, 0xFE, 0x04, 0xBA, 0xFF, 0xFF, 0x18, 0xFC, 0x18, 0xB7, 0x1D, 0xF6, 0x7E, 0xA6, 0x19, 0xFF, 0x19, 0xFE, 0x1F, 0xF7, 0xFE, 0xBF, 0x41, 0x86, 0x03, 0x06, 0x06, 0x06, 0x00, 0x00, 0x10, 0x18, 0x1C, 0x5A, 0x3A, 0x5F, 0x3F, 0x5C, 0x30, 0x9C, 0x22, 0x67, 0x3F, 0xF3, 0x5B, 0xD9, 0x7F, 0x5B, 0x58, 0x5C, 0x18, 0xF8, 0x19, 0xBC, 0x1E, 0x33, 0x3C, 0xE2, 0x13, 0xC0, 0x00, 0x00, 0x1C, 0x02, 0x1B, 0xFF, 0x19, 0x04, 0x1D, 0xFE, 0x3F, 0x8C, 0x39, 0x8C, 0x79, 0xFC, 0x59, 0x8C, 0x19, 0x8C, 0x1D, 0x8C, 0x1F, 0xFC, 0x1D, 0x8C, 0x11, 0x0A, 0x67, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x30, 0x04, 0x30, 0x7F, 0xFF, 0x19, 0xB3, 0x19, 0xB3, 0x1D, 0xFF, 0x7F, 0xB3, 0x19, 0xB3, 0x19, 0xFF, 0x1F, 0xB3, 0x3C, 0x30, 0x78, 0x30, 0x60, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x32, 0x07, 0xFF, 0xFF, 0x34, 0x19, 0xFE, 0x19, 0xFE, 0x7F, 0xFE, 0x59, 0x86, 0x19, 0x86, 0x19, 0xFE, 0x1F, 0xFF, 0xFE, 0x50, 0x41, 0xEC, 0x03, 0xC6, 0x07, 0x02, 0x04, 0x00, 0x06, 0x02, 0x7F, 0xFF, 0x27, 0x1A, 0x3F, 0xB2, 0x06, 0xB2, 0x7F, 0xFE, 0x06, 0xC6, 0x07, 0x80, 0x01, 0x82, 0x7F, 0xFF, 0x06, 0x30, 0x0F, 0xC0, 0x01, 0xF0, 0x1F, 0x3C, 0x7C, 0x04, 0x00, 0x00, 0x00, 0x10, 0x3F, 0xF8, 0x00, 0x18, 0x1F, 0xF8, 0x18, 0x18, 0x18, 0x04, 0x18, 0x04, 0x1F, 0xFE, 0x1F, 0xFC, 0x21, 0x88, 0x39, 0x8E, 0x31, 0x8C, 0x31, 0x8C, 0x3F, 0xFC, 0x10, 0x0C, 0x00, 0x40, 0x00, 0x20, 0x38, 0xB2, 0x30, 0xFF, 0x3F, 0xD2, 0x21, 0xEC, 0x64, 0xF6, 0x7F, 0xB2, 0x76, 0x68, 0xFE, 0x86, 0xB1, 0xFF, 0x32, 0xCC, 0x36, 0xCC, 0x3C, 0xCC, 0x38, 0xFC, 0x10, 0xCC, 0x00, 0x00, 0x10, 0x70, 0x1C, 0x60, 0x30, 0xE2, 0x7C, 0xFF, 0x76, 0xA3, 0x36, 0xBC, 0x25, 0xB0, 0x64, 0xF8, 0x65, 0xF6, 0x6D, 0xB7, 0x39, 0x33, 0x3D, 0x32, 0x35, 0x32, 0x62, 0xF0, 0xC0, 0x30, 0x00, 0x40, 0x0C, 0x70, 0x0C, 0xE2, 0x7F, 0xFF, 0x2C, 0xE3, 0x0C, 0xB3, 0x0F, 0xFE, 0x1F, 0xFE, 0x79, 0x86, 0x23, 0xBE, 0x0E, 0x6C, 0x3F, 0xFF, 0x65, 0x94, 0x1F, 0xF8, 0x07, 0xB0, 0x3F, 0xFE, 0x01, 0x00, 0x01, 0xC0, 0x01, 0x82, 0x7F, 0xFF, 0x02, 0x60, 0x05, 0xF0, 0x09, 0x9F, 0x3F, 0xFE, 0x61, 0x80, 0x0F, 0xFC, 0x08, 0x00, 0x07, 0xF8, 0x06, 0x70, 0x06, 0x60, 0x07, 0xE0, 0x06, 0x60, 0x04, 0x00, 0x07, 0x00, 0x06, 0x02, 0x7F, 0xFF, 0x06, 0x00, 0x06, 0x02, 0x0F, 0xFE, 0x0E, 0x06, 0x0E, 0x06, 0x0E, 0x06, 0x0E, 0x06, 0x16, 0x06, 0x16, 0x06, 0x26, 0x06, 0x26, 0x16, 0x46, 0x0E, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x24, 0x18, 0x3F, 0xFF, 0x37, 0x18, 0x36, 0x18, 0x37, 0x18, 0x36, 0x98, 0x36, 0xD8, 0x36, 0x98, 0x3E, 0x18, 0x36, 0x18, 0x30, 0x18, 0x20, 0xF8, 0x00, 0x10, 0x00, 0x00, 0x11, 0x02, 0x19, 0xFF, 0x19, 0x83, 0x1D, 0xFF, 0x3F, 0x83, 0x39, 0x82, 0x39, 0xFF, 0x79, 0xC9, 0x19, 0xFD, 0x1D, 0xED, 0x1F, 0x7D, 0x1F, 0x6D, 0x12, 0x76, 0x34, 0x1E, 0x68, 0x0C, 0x00, 0x00, 0x0C, 0x18, 0x0C, 0x0C, 0x0C, 0x08, 0x0C, 0x08, 0x0F, 0x0E, 0x7F, 0xFE, 0x7C, 0xF8, 0x1E, 0x3E, 0x3C, 0x3C, 0x0E, 0xFE, 0x7F, 0xFC, 0x26, 0x6C, 0x3E, 0x7C, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0E, 0xFF, 0xFF, 0x0C, 0x0C, 0x7F, 0xFF, 0x40, 0x40, 0x22, 0x24, 0x3F, 0x3E, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x3F, 0x33, 0x33, 0x33, 0x33, 0x20, 0x20, 0x00, 0x00, 0x07, 0xFE, 0x06, 0x76, 0x07, 0x7E, 0xFF, 0x7E, 0x31, 0xFE, 0x37, 0xF6, 0x34, 0xE4, 0xFF, 0xFE, 0x37, 0xF7, 0x3D, 0xFA, 0x3F, 0xFC, 0x7F, 0xFC, 0xF3, 0x3E, 0x41, 0xF8, 0x06, 0x00, 0x01, 0x00, 0x01, 0x80, 0x03, 0x80, 0x07, 0x60, 0x0E, 0x38, 0x18, 0xFC, 0x3F, 0xFE, 0x30, 0x0C, 0x0F, 0xFC, 0x0C, 0xCC, 0x0C, 0x8C, 0x0D, 0x8C, 0x0D, 0x6C, 0x02, 0x38, 0x1C, 0x0C, 0x78, 0x02, 0x00, 0x00, 0x18, 0x40, 0x0C, 0x20, 0x08, 0x32, 0x7F, 0xFF, 0x4F, 0x60, 0x1C, 0x60, 0x18, 0x7E, 0x1E, 0x66, 0x3A, 0x46, 0x58, 0xC6, 0x98, 0xC6, 0x19, 0x86, 0x19, 0xC6, 0x1F, 0x3C, 0x1C, 0x18, 0x00, 0x00, 0x20, 0x70, 0x10, 0x64, 0x1F, 0xFE, 0x16, 0x60, 0x6F, 0xFE, 0x3E, 0x07, 0x2F, 0xFC, 0x19, 0x1C, 0x10, 0x70, 0x30, 0x62, 0x77, 0xFF, 0x30, 0x60, 0x30, 0x60, 0x31, 0xE0, 0x30, 0x60, 0x00, 0x00, 0x30, 0x60, 0x18, 0x38, 0x08, 0x30, 0x01, 0xF2, 0x10, 0x37, 0x78, 0xBE, 0x1B, 0xF0, 0x18, 0xF8, 0x18, 0xB8, 0x18, 0xBC, 0x1E, 0xB6, 0x1D, 0x37, 0x39, 0x33, 0x12, 0xF0, 0x00, 0x20, 0x00, 0x01, 0x1D, 0xFF, 0x18, 0x78, 0x19, 0x7A, 0xFF, 0xFF, 0x59, 0xFB, 0x39, 0xFB, 0x3D, 0xDB, 0x3F, 0xDF, 0x7B, 0x8F, 0x59, 0x83, 0x59, 0xFF, 0x99, 0x96, 0x19, 0x4A, 0x19, 0x6F, 0x1B, 0x49, 0x00, 0x20, 0x00, 0x30, 0x20, 0x30, 0x10, 0x30, 0x19, 0xFE, 0x7F, 0x60, 0x64, 0x50, 0x26, 0x5C, 0x2C, 0x58, 0x3C, 0x58, 0x38, 0xB0, 0x28, 0xBC, 0x1F, 0x2C, 0x7D, 0x7E, 0x62, 0x44, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x60, 0x0A, 0x68, 0x7F, 0xFC, 0x0B, 0xC8, 0x3D, 0xC9, 0xF8, 0xEF, 0x49, 0xEF, 0x3B, 0x27, 0x1C, 0x01, 0x29, 0x08, 0x3E, 0xD6, 0x3C, 0x93, 0x7C, 0x1A, 0x6F, 0xFA, 0x07, 0xE0, 0x00, 0x40, 0x00, 0x74, 0x33, 0xFE, 0x1A, 0x64, 0x17, 0xFC, 0x67, 0xFC, 0x3B, 0x64, 0x2B, 0xFC, 0x1B, 0x6C, 0x17, 0xFE, 0x33, 0xFA, 0x77, 0xFF, 0x34, 0x8C, 0x30, 0xCC, 0x30, 0xFC, 0x30, 0x38, 0x00, 0x00, 0x00, 0x06, 0x05, 0xFE, 0x7E, 0xD8, 0x10, 0xFF, 0x30, 0xD0, 0x34, 0xF2, 0x3E, 0xFE, 0x76, 0xFE, 0x76, 0xFE, 0xB6, 0xBE, 0x37, 0xBE, 0x3F, 0x36, 0x36, 0x2C, 0x36, 0xE3, 0x25, 0xC1, 0x00, 0x00, 0x20, 0x20, 0x10, 0x32, 0x1B, 0xFF, 0x11, 0x30, 0x10, 0x30, 0xF8, 0x34, 0x19, 0xFE, 0x18, 0x20, 0x19, 0xA4, 0x19, 0xF6, 0x1F, 0xBF, 0x1F, 0xAF, 0x3A, 0x86, 0x12, 0xFC, 0x00, 0xF8, 0x00, 0x20, 0x10, 0x30, 0x19, 0xFF, 0x35, 0xCC, 0x3E, 0x68, 0x23, 0xFF, 0x7E, 0xFE, 0x58, 0xC6, 0xFE, 0xFE, 0x58, 0xC6, 0x18, 0xFE, 0x18, 0xDF, 0x1F, 0xFF, 0x1E, 0x18, 0x30, 0x18, 0x00, 0x18, 0x00, 0x00, 0x02, 0x04, 0x03, 0xFF, 0x07, 0x0B, 0xFF, 0xFF, 0x33, 0x33, 0x33, 0xFB, 0xFF, 0xFF, 0x73, 0xFF, 0x33, 0xFF, 0x33, 0xFF, 0x3E, 0xFF, 0xFE, 0xFF, 0x46, 0x33, 0x04, 0x33, 0x00, 0x21, 0x00, 0x00, 0x00, 0x60, 0x01, 0x32, 0x05, 0xFF, 0xFF, 0x02, 0x33, 0xFF, 0x32, 0x00, 0x35, 0xFE, 0xFF, 0x8C, 0x31, 0xFC, 0x31, 0x8C, 0x3F, 0x8C, 0x7D, 0xFC, 0xF1, 0x8E, 0x47, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x18, 0x02, 0x0D, 0xFF, 0x08, 0x66, 0x7C, 0x66, 0x46, 0x6E, 0x0C, 0x6D, 0x0C, 0x6F, 0x1E, 0x6B, 0x3E, 0x63, 0x2C, 0x63, 0x4C, 0xC3, 0x0C, 0xC3, 0x0D, 0x97, 0x0F, 0x0F, 0x0C, 0x06, 0x00, 0x00, 0x01, 0x08, 0x7F, 0xAC, 0x06, 0x3C, 0x3F, 0xED, 0x37, 0xFF, 0x36, 0xEC, 0x3F, 0xEC, 0x36, 0xCC, 0x3F, 0xFF, 0x3C, 0xEC, 0x1C, 0x0C, 0x18, 0x0C, 0x0C, 0x0D, 0x37, 0xFF, 0xE1, 0x80, 0x00, 0x00, 0x04, 0x14, 0x7F, 0xF6, 0x2C, 0xBA, 0x3D, 0xEB, 0x2C, 0xCC, 0x2C, 0xC6, 0x3C, 0xFE, 0x67, 0xF3, 0x27, 0x32, 0x07, 0xFF, 0xFE, 0x30, 0x44, 0x78, 0x04, 0x6E, 0x3D, 0xE6, 0x0F, 0xC2, 0x01, 0x00, 0x00, 0xC0, 0x1F, 0xFC, 0x18, 0x06, 0x18, 0x06, 0x1F, 0xFE, 0x18, 0xC4, 0x18, 0x44, 0x1F, 0xFE, 0x18, 0xC8, 0x31, 0xFC, 0x33, 0xA0, 0x27, 0xB0, 0x6D, 0xFC, 0x53, 0xCE, 0x81, 0x04, 0x00, 0x00, 0x01, 0x02, 0x7D, 0xFF, 0x2D, 0x99, 0x3D, 0xFD, 0x3D, 0x99, 0x69, 0xFF, 0x69, 0x81, 0x7D, 0xFD, 0x27, 0xE7, 0x07, 0xE7, 0xFD, 0xFF, 0x4D, 0x67, 0x0F, 0x1F, 0x3E, 0x0F, 0x1C, 0x06, 0x00, 0x14, 0x04, 0x7E, 0x7F, 0xE6, 0x6C, 0x66, 0x6B, 0xFF, 0x7A, 0x46, 0x78, 0x46, 0x7C, 0x46, 0x6C, 0x86, 0x6F, 0xB6, 0x6C, 0x34, 0x78, 0x34, 0x6B, 0xFE, 0x60, 0x30, 0x60, 0x31, 0x67, 0xFF, 0x00, 0x00, 0x20, 0xAA, 0x38, 0xFF, 0x32, 0xFD, 0x3F, 0xFF, 0x30, 0xFD, 0x64, 0xEB, 0x7F, 0xFF, 0xF4, 0x01, 0xFF, 0xFF, 0xB0, 0x42, 0x30, 0xFE, 0x32, 0x04, 0x3C, 0x04, 0x38, 0x7C, 0x10, 0x18, 0x00, 0x00, 0x1F, 0xF8, 0x03, 0xBC, 0x01, 0xC2, 0x3F, 0xFF, 0x0F, 0xC8, 0x1F, 0xD0, 0x30, 0xC4, 0x3F, 0xFE, 0x37, 0x6C, 0x3F, 0xFC, 0x36, 0x6C, 0x37, 0xEC, 0x36, 0x6C, 0x30, 0x7C, 0x20, 0x1C, 0x00, 0x00, 0x00, 0xF8, 0x00, 0xCC, 0xFE, 0xFC, 0xB0, 0xCC, 0x33, 0xFF, 0x33, 0x3B, 0xFF, 0xFF, 0x73, 0x3B, 0x32, 0x31, 0x3F, 0xFF, 0x7C, 0xF8, 0xF9, 0xB8, 0x47, 0x37, 0x0C, 0x32, 0x00, 0x30, 0x00, 0x20, 0x10, 0x30, 0x08, 0x31, 0x0F, 0xFF, 0x0E, 0x30, 0x7E, 0x32, 0x05, 0xFE, 0x08, 0x30, 0x1F, 0xFF, 0x3E, 0x33, 0x3A, 0x33, 0x58, 0x33, 0x18, 0x3F, 0x18, 0x37, 0x18, 0x30, 0x18, 0x30, 0x08, 0x20, 0x0C, 0x10, 0x3F, 0xFF, 0x28, 0x70, 0x0F, 0x3C, 0x0B, 0x36, 0x0B, 0x36, 0x1B, 0x36, 0x13, 0x24, 0x3F, 0xDC, 0x67, 0x8C, 0x01, 0x80, 0x3F, 0xFC, 0x11, 0x80, 0x01, 0x82, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x21, 0x03, 0xF1, 0x08, 0xC9, 0xFC, 0xED, 0x33, 0xFD, 0x30, 0xCD, 0x39, 0xCD, 0xFD, 0xFD, 0x31, 0xED, 0x31, 0xCD, 0x3E, 0xCD, 0xF8, 0xC1, 0x40, 0xC1, 0x00, 0xDF, 0x00, 0xC2, 0x00, 0x04, 0x30, 0xFE, 0x1C, 0xC6, 0x78, 0xFE, 0x4E, 0xC6, 0x1C, 0xC6, 0x1C, 0xFE, 0x1C, 0xC6, 0x3F, 0xFF, 0x7A, 0x98, 0x98, 0xDA, 0x19, 0x9E, 0x19, 0xD8, 0x19, 0x78, 0x1A, 0x3F, 0x1E, 0x0E, 0x00, 0x40, 0x00, 0x20, 0x40, 0x30, 0x7E, 0x32, 0x6F, 0xFF, 0x6C, 0x60, 0x6C, 0x64, 0x7C, 0x7E, 0x6C, 0x66, 0x6C, 0x46, 0x6C, 0xCE, 0x6C, 0xCC, 0x7D, 0x8C, 0x6B, 0xFC, 0x47, 0x3C, 0x0C, 0x10, 0x00, 0x00, 0x18, 0x8C, 0x18, 0xEC, 0x1B, 0xFF, 0x1E, 0xCC, 0x5C, 0xFC, 0x79, 0xFC, 0x79, 0xB6, 0x59, 0xB6, 0x19, 0xB6, 0x1F, 0xFF, 0x1E, 0x38, 0x1C, 0x48, 0x10, 0xCC, 0x63, 0x86, 0xC7, 0x03, 0x00, 0x00, 0x00, 0x02, 0x1B, 0xFF, 0x1A, 0x00, 0x18, 0xFC, 0x7E, 0xCC, 0x7E, 0xCC, 0x7E, 0xCC, 0x7E, 0xFC, 0x7E, 0xCC, 0x7E, 0xCC, 0x7E, 0xFC, 0x7E, 0xCC, 0x44, 0xCA, 0x07, 0xFF, 0x00, 0x00, 0x00, 0x40, 0x00, 0x60, 0x24, 0xC2, 0x3E, 0xFF, 0x36, 0x83, 0x37, 0xFB, 0x37, 0xDB, 0x3E, 0xFB, 0x36, 0xDB, 0x36, 0xDB, 0x36, 0xDB, 0x3E, 0xFB, 0x36, 0xDB, 0x34, 0x9F, 0x20, 0x1E, 0x00, 0x04, 0x01, 0x02, 0x3F, 0xFF, 0x1B, 0x36, 0x3F, 0x7E, 0x7F, 0xE6, 0x2F, 0xBE, 0x3F, 0xFE, 0x21, 0x07, 0x61, 0x8C, 0x3F, 0xFC, 0x05, 0xC8, 0x0F, 0xFC, 0x09, 0x82, 0x7F, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x08, 0x20, 0x0C, 0xB2, 0x1F, 0xFF, 0x14, 0x70, 0x26, 0x58, 0x24, 0x90, 0x4F, 0xF8, 0x0F, 0xF0, 0x00, 0x32, 0x1F, 0xFF, 0x19, 0xDE, 0x0F, 0xFC, 0x1F, 0xF0, 0x3F, 0x9C, 0x01, 0x87, 0x0F, 0x80, 0x04, 0x40, 0x07, 0x60, 0x06, 0x62, 0x7F, 0xFF, 0x06, 0x60, 0x06, 0x60, 0x30, 0x70, 0x0F, 0xFC, 0x6F, 0xFF, 0x3A, 0x6C, 0x2B, 0xFC, 0x1B, 0xFE, 0x70, 0x60, 0x37, 0xFF, 0x30, 0x60, 0x30, 0x60, 0x01, 0x00, 0x21, 0xC8, 0x39, 0x8E, 0x31, 0x8C, 0x3F, 0xFC, 0x1A, 0x1C, 0x6F, 0x5E, 0x1F, 0xFA, 0x3F, 0xFF, 0x58, 0x5C, 0x3F, 0xDC, 0x38, 0x9C, 0x7F, 0xDE, 0x1C, 0xB2, 0x7F, 0xB3, 0x3C, 0xE1, 0x00, 0x00, 0x00, 0x40, 0x00, 0x68, 0xFE, 0xFC, 0x58, 0x88, 0x19, 0xFE, 0x19, 0x36, 0xFF, 0xFF, 0x5A, 0x36, 0x18, 0x36, 0x18, 0x36, 0x3F, 0xFE, 0xFC, 0x36, 0x40, 0x30, 0x01, 0xF0, 0x00, 0x60, 0x00, 0x00, 0x20, 0x6C, 0x39, 0xE8, 0x35, 0xFA, 0x3F, 0xFF, 0x21, 0xF8, 0x7F, 0xFC, 0x71, 0xEE, 0xF5, 0xE4, 0xFF, 0xFC, 0x31, 0xFE, 0x31, 0xFE, 0x37, 0xFE, 0x3D, 0xFE, 0x3F, 0xFF, 0x14, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x42, 0xFE, 0xFF, 0x58, 0x83, 0x19, 0xF3, 0x19, 0xDB, 0x7E, 0xFB, 0x58, 0xDB, 0x18, 0xDB, 0x18, 0xDB, 0x1E, 0xFB, 0xFC, 0xDB, 0x40, 0xC7, 0x00, 0x3E, 0x00, 0x0C, 0x08, 0x00, 0x0C, 0xB0, 0x18, 0xF2, 0x19, 0xFF, 0x19, 0xB4, 0x33, 0xFE, 0x3F, 0xFE, 0x79, 0xB2, 0x59, 0xFF, 0x99, 0x88, 0x1B, 0xFC, 0x18, 0x9E, 0x19, 0x97, 0x19, 0x06, 0x1E, 0x3C, 0x1C, 0x0C, 0x00, 0x20, 0x00, 0x38, 0x42, 0x7C, 0x7E, 0x47, 0x7F, 0xFE, 0x7E, 0xFA, 0x7E, 0xE4, 0x7E, 0xF7, 0x7F, 0xFE, 0x7F, 0x6E, 0x7E, 0xEC, 0x7E, 0xB8, 0x67, 0x38, 0x60, 0xEE, 0x03, 0xC7, 0x07, 0x80, 0x00, 0x00, 0x00, 0xFE, 0x18, 0xF7, 0x18, 0xF6, 0x5C, 0xFE, 0x7E, 0xF6, 0x7E, 0xFE, 0x7E, 0xF6, 0x7F, 0xFF, 0x7F, 0xB3, 0x7F, 0xBF, 0x7F, 0xFF, 0xF7, 0x87, 0x01, 0x8B, 0x01, 0x87, 0x01, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, 0xFE, 0x05, 0xF0, 0x7F, 0xFF, 0x1A, 0x7C, 0x18, 0xFC, 0x1C, 0xF7, 0x7F, 0xFA, 0x1A, 0xEC, 0x18, 0xDE, 0x1E, 0xDB, 0x7C, 0x86, 0x21, 0x84, 0x03, 0x3C, 0x06, 0x08, 0x00, 0x00, 0x20, 0x04, 0x13, 0xFE, 0x1B, 0x00, 0x0A, 0x00, 0x66, 0x00, 0x34, 0x02, 0x27, 0xFF, 0x0C, 0x60, 0x08, 0xC0, 0x18, 0xD8, 0x79, 0x88, 0x31, 0x0C, 0x33, 0xFE, 0x33, 0xF6, 0x30, 0x04, 0x00, 0x00, 0x3F, 0xFF, 0x37, 0xCC, 0x36, 0xC8, 0x3F, 0xFE, 0x36, 0xF3, 0x3F, 0xFF, 0x36, 0xFB, 0x7F, 0xFB, 0x66, 0x7B, 0x66, 0x7B, 0x7E, 0x7B, 0x62, 0x7C, 0x64, 0xF7, 0x63, 0xF3, 0x41, 0xE1, 0x00, 0x00, 0x10, 0x04, 0x1C, 0xFE, 0x3A, 0x0C, 0x3F, 0x10, 0x20, 0x70, 0x3F, 0xFF, 0x78, 0x7F, 0x5A, 0x6B, 0x7F, 0x7B, 0x18, 0x5B, 0x18, 0xF3, 0x1B, 0xB3, 0x1F, 0x7E, 0x3C, 0xCE, 0x11, 0x04, 0x00, 0x00, 0x08, 0x70, 0x0D, 0x64, 0x19, 0xFE, 0x19, 0x78, 0x13, 0x78, 0x3B, 0xDE, 0x3B, 0xC6, 0x5F, 0x76, 0x9D, 0x6E, 0x19, 0x7C, 0x1B, 0x70, 0x1A, 0x78, 0x18, 0xCE, 0x1B, 0x84, 0x1F, 0x00, 0x00, 0x10, 0x00, 0x19, 0x1D, 0x19, 0x18, 0x9B, 0x18, 0xFA, 0x18, 0x5C, 0x7F, 0xFF, 0x59, 0x03, 0x18, 0x03, 0x18, 0x03, 0x19, 0xFF, 0x1E, 0x03, 0x3C, 0x03, 0x73, 0xFF, 0x40, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x60, 0x7E, 0x30, 0x24, 0x22, 0x37, 0xFF, 0x34, 0xCC, 0x2C, 0xCC, 0x2C, 0xCC, 0x7E, 0xD8, 0x26, 0x78, 0x06, 0x70, 0x7C, 0x30, 0x4C, 0x58, 0x0C, 0xCE, 0x3F, 0x87, 0x0E, 0x02, 0x00, 0x00, 0x0C, 0x3E, 0x0C, 0x37, 0xFF, 0xF6, 0x4C, 0x3C, 0x4D, 0x3C, 0x6D, 0xBE, 0x6D, 0xB7, 0x6D, 0xB3, 0x6D, 0xB3, 0xFF, 0xBF, 0x0D, 0xBE, 0x0C, 0xB4, 0x0C, 0xB0, 0x0F, 0xF0, 0x07, 0x30, 0x00, 0x00, 0x01, 0x80, 0x03, 0x80, 0x02, 0x00, 0x04, 0x00, 0x18, 0x04, 0x1F, 0xFE, 0x18, 0xCC, 0x1F, 0xFC, 0x18, 0xCC, 0x18, 0xCC, 0x1F, 0xFC, 0x18, 0xCC, 0x18, 0xCC, 0x10, 0xFC, 0x70, 0xDC, 0x00, 0x20, 0x00, 0x30, 0x10, 0x64, 0x18, 0xFE, 0x19, 0xD8, 0x5D, 0xFF, 0x7E, 0xDB, 0x7E, 0xDB, 0x7E, 0xFF, 0x7E, 0xDB, 0x7E, 0xFF, 0x7E, 0x9B, 0x7E, 0x9B, 0x77, 0x1B, 0x03, 0x1F, 0x06, 0x06, 0x00, 0x00, 0x22, 0x04, 0x3F, 0xFC, 0x37, 0x30, 0x26, 0x7E, 0x3F, 0x7F, 0x3E, 0x7E, 0x2F, 0x76, 0x3F, 0xE4, 0x7F, 0xCC, 0x53, 0xD8, 0x73, 0xC8, 0x61, 0xC2, 0x80, 0xE2, 0x80, 0x3F, 0x00, 0x07, 0x08, 0x20, 0x0E, 0x34, 0x3F, 0xFE, 0x0F, 0xF0, 0x0F, 0xF0, 0x0C, 0x32, 0x7F, 0xFF, 0x0C, 0x10, 0x1F, 0xFF, 0x3A, 0x06, 0x66, 0x00, 0x07, 0xE0, 0x0C, 0x60, 0x0C, 0x60, 0x17, 0xE0, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x4A, 0x82, 0x0F, 0x00, 0xC7, 0x00, 0x11, 0x83, 0x0F, 0x00, 0x95, 0x00, 0xA6, 0x83, 0x0F, 0x00, 0xD0, 0x00, 0x76, 0x84, 0x0F, 0x00, 0xCC, 0x00, 0x42, 0x85, 0x0F, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x82, 0x15, 0x00, 0x07, 0x01, 0x79, 0x83, 0x15, 0x00, 0x98, 0x00, 0x11, 0x84, 0x15, 0x00, 0x6D, 0x01, 0x7E, 0x85, 0x15, 0x00, 0xF3, 0x00, 0x71, 0x86, 0x15, 0x00, 0xC0, 0x00, 0x31, 0x87, 0x15, 0x00, 0xC8, 0x00, 0xF9, 0x87, 0x15, 0x00, 0xD3, 0x00, 0xCC, 0x88, 0x15, 0x00, 0xDF, 0x00, 0xAB, 0x89, 0x15, 0x00, 0xAE, 0x00, 0x59, 0x8A, 0x15, 0x00, 0x06, 0x01, 0x5F, 0x8B, 0x15, 0x00, 0x29, 0x01, 0x88, 0x8C, 0x15, 0x00, 0x1E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x90, 0x15, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/TrueType/Not_yet_supported.txt ================================================ TO DO: Add support for converted True Type fonts in an RLE format. ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/Fonts/glcdfont.c ================================================ // Original Adafruit_GFX 5x7 font #ifndef FONT5X7_H #define FONT5X7_H #include // Standard ASCII 5x7 font static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x18, 0x3C, 0x18, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x18, 0x24, 0x18, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x26, 0x29, 0x79, 0x29, 0x26, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x60, 0x60, 0x60, 0x60, 0x60, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x10, 0x20, 0x7E, 0x20, 0x10, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x23, 0x13, 0x08, 0x64, 0x62, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x80, 0x70, 0x30, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x60, 0x60, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x72, 0x49, 0x49, 0x49, 0x46, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x27, 0x45, 0x45, 0x45, 0x39, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x41, 0x21, 0x11, 0x09, 0x07, 0x36, 0x49, 0x49, 0x49, 0x36, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x41, 0x22, 0x14, 0x08, 0x02, 0x01, 0x59, 0x09, 0x06, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x7F, 0x08, 0x14, 0x22, 0x41, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x26, 0x49, 0x49, 0x49, 0x32, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x63, 0x14, 0x08, 0x14, 0x63, 0x03, 0x04, 0x78, 0x04, 0x03, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x04, 0x02, 0x01, 0x02, 0x04, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x03, 0x07, 0x08, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x38, 0x44, 0x44, 0x44, 0x28, 0x38, 0x44, 0x44, 0x28, 0x7F, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x38, 0x44, 0x44, 0x44, 0x38, 0xFC, 0x18, 0x24, 0x24, 0x18, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x48, 0x54, 0x54, 0x54, 0x24, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x44, 0x28, 0x10, 0x28, 0x44, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x41, 0x36, 0x08, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x1E, 0xA1, 0xA1, 0x61, 0x12, 0x3A, 0x40, 0x40, 0x20, 0x7A, 0x38, 0x54, 0x54, 0x55, 0x59, 0x21, 0x55, 0x55, 0x79, 0x41, 0x21, 0x54, 0x54, 0x78, 0x41, 0x21, 0x55, 0x54, 0x78, 0x40, 0x20, 0x54, 0x55, 0x79, 0x40, 0x0C, 0x1E, 0x52, 0x72, 0x12, 0x39, 0x55, 0x55, 0x55, 0x59, 0x39, 0x54, 0x54, 0x54, 0x59, 0x39, 0x55, 0x54, 0x54, 0x58, 0x00, 0x00, 0x45, 0x7C, 0x41, 0x00, 0x02, 0x45, 0x7D, 0x42, 0x00, 0x01, 0x45, 0x7C, 0x40, 0xF0, 0x29, 0x24, 0x29, 0xF0, 0xF0, 0x28, 0x25, 0x28, 0xF0, 0x7C, 0x54, 0x55, 0x45, 0x00, 0x20, 0x54, 0x54, 0x7C, 0x54, 0x7C, 0x0A, 0x09, 0x7F, 0x49, 0x32, 0x49, 0x49, 0x49, 0x32, 0x32, 0x48, 0x48, 0x48, 0x32, 0x32, 0x4A, 0x48, 0x48, 0x30, 0x3A, 0x41, 0x41, 0x21, 0x7A, 0x3A, 0x42, 0x40, 0x20, 0x78, 0x00, 0x9D, 0xA0, 0xA0, 0x7D, 0x39, 0x44, 0x44, 0x44, 0x39, 0x3D, 0x40, 0x40, 0x40, 0x3D, 0x3C, 0x24, 0xFF, 0x24, 0x24, 0x48, 0x7E, 0x49, 0x43, 0x66, 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, 0xFF, 0x09, 0x29, 0xF6, 0x20, 0xC0, 0x88, 0x7E, 0x09, 0x03, 0x20, 0x54, 0x54, 0x79, 0x41, 0x00, 0x00, 0x44, 0x7D, 0x41, 0x30, 0x48, 0x48, 0x4A, 0x32, 0x38, 0x40, 0x40, 0x22, 0x7A, 0x00, 0x7A, 0x0A, 0x0A, 0x72, 0x7D, 0x0D, 0x19, 0x31, 0x7D, 0x26, 0x29, 0x29, 0x2F, 0x28, 0x26, 0x29, 0x29, 0x29, 0x26, 0x30, 0x48, 0x4D, 0x40, 0x20, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x2F, 0x10, 0xC8, 0xAC, 0xBA, 0x2F, 0x10, 0x28, 0x34, 0xFA, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x08, 0x14, 0x2A, 0x14, 0x22, 0x22, 0x14, 0x2A, 0x14, 0x08, 0xAA, 0x00, 0x55, 0x00, 0xAA, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x10, 0x10, 0x10, 0xFF, 0x00, 0x14, 0x14, 0x14, 0xFF, 0x00, 0x10, 0x10, 0xFF, 0x00, 0xFF, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x14, 0x14, 0x14, 0xFC, 0x00, 0x14, 0x14, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x14, 0x14, 0xF4, 0x04, 0xFC, 0x14, 0x14, 0x17, 0x10, 0x1F, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x14, 0x14, 0x14, 0x1F, 0x00, 0x10, 0x10, 0x10, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x10, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x14, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0x10, 0x17, 0x00, 0x00, 0xFC, 0x04, 0xF4, 0x14, 0x14, 0x17, 0x10, 0x17, 0x14, 0x14, 0xF4, 0x04, 0xF4, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xF7, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x17, 0x14, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x14, 0x14, 0x14, 0xF4, 0x14, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x00, 0x00, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x14, 0x00, 0x00, 0x00, 0xFC, 0x14, 0x00, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0x10, 0xFF, 0x10, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x14, 0x10, 0x10, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x38, 0x44, 0x44, 0x38, 0x44, 0x7C, 0x2A, 0x2A, 0x3E, 0x14, 0x7E, 0x02, 0x02, 0x06, 0x06, 0x02, 0x7E, 0x02, 0x7E, 0x02, 0x63, 0x55, 0x49, 0x41, 0x63, 0x38, 0x44, 0x44, 0x3C, 0x04, 0x40, 0x7E, 0x20, 0x1E, 0x20, 0x06, 0x02, 0x7E, 0x02, 0x02, 0x99, 0xA5, 0xE7, 0xA5, 0x99, 0x1C, 0x2A, 0x49, 0x2A, 0x1C, 0x4C, 0x72, 0x01, 0x72, 0x4C, 0x30, 0x4A, 0x4D, 0x4D, 0x30, 0x30, 0x48, 0x78, 0x48, 0x30, 0xBC, 0x62, 0x5A, 0x46, 0x3D, 0x3E, 0x49, 0x49, 0x49, 0x00, 0x7E, 0x01, 0x01, 0x01, 0x7E, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x44, 0x44, 0x5F, 0x44, 0x44, 0x40, 0x51, 0x4A, 0x44, 0x40, 0x40, 0x44, 0x4A, 0x51, 0x40, 0x00, 0x00, 0xFF, 0x01, 0x03, 0xE0, 0x80, 0xFF, 0x00, 0x00, 0x08, 0x08, 0x6B, 0x6B, 0x08, 0x36, 0x12, 0x36, 0x24, 0x36, 0x06, 0x0F, 0x09, 0x0F, 0x06, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x30, 0x40, 0xFF, 0x01, 0x01, 0x00, 0x1F, 0x01, 0x01, 0x1E, 0x00, 0x19, 0x1D, 0x17, 0x12, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}; #endif // FONT5X7_H ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/M5Display.cpp ================================================ #include "M5Display.h" M5Display::M5Display() : TFT_eSPI() { hzk16Used = false; hzk16Type = DontUsedHzk16; } void M5Display::begin() { TFT_eSPI::begin(); fillScreen(0); } void M5Display::drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data) { setSwapBytes(true); pushImage((int32_t)x0, (int32_t)y0, (uint32_t)w, (uint32_t)h, data); setSwapBytes(false); } void M5Display::drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint16_t *data) { setSwapBytes(true); pushImage((int32_t)x0, (int32_t)y0, (uint32_t)w, (uint32_t)h, data); setSwapBytes(false); } void M5Display::drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data, uint16_t transparent) { setSwapBytes(true); pushImage((int32_t)x0, (int32_t)y0, (uint32_t)w, (uint32_t)h, data, transparent); setSwapBytes(false); } void M5Display::drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint8_t *data) { setSwapBytes(true); pushImage((int32_t)x0, (int32_t)y0, (uint32_t)w, (uint32_t)h, (const uint16_t *)data); setSwapBytes(false); } void M5Display::drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint8_t *data) { setSwapBytes(true); pushImage((int32_t)x0, (int32_t)y0, (uint32_t)w, (uint32_t)h, (uint16_t *)data); setSwapBytes(false); } /*************************************************************************************** ** Function name: loadHzk16 ** Description: loadHzk16 fonts ** Params: ** HZK16Path: HZK16 file path on TF card. e.g. /HZK16, means file on the *root dir of TF card. * ASC16Path: ASC16 file path on TF card. ***************************************************************************************/ void M5Display::loadHzk16(Hzk16Types hzkTypes, const char *HZK16Path, const char *ASC16Path) { if (hzk16Used) return; // Hzk16Types hzkTypes = InternalHzk16 if (hzkTypes == InternalHzk16) { //#if defined(_ASC16_) && defined(_HZK16_) pAscCharMatrix = (uint8_t *)&ASC16[0]; pGbkCharMatrix = (uint8_t *)&HZK16[0]; Serial.println("HZK16 path: Internal"); Serial.println("ASC16 path: Internal"); hzk16Used = initHzk16(true, nullptr, nullptr); } Serial.print("HZK16 init result: "); Serial.println(isHzk16Used()); } bool M5Display::initHzk16(boolean use, const char *HZK16Path, const char *ASC16Path) { if (use == false) { // Do not use HZK16 and ASC16 fonts hzk16Type = DontUsedHzk16; Serial.println("Use default font."); } else if (pAscCharMatrix == NULL || pGbkCharMatrix == NULL) { // Use external HZK16 and ASC16 font on TF card. hzk16Type = DontUsedHzk16; Serial.println( "External font file HZK16/ASC16 lost, use default font."); } else { // Use internal HZK16 and ASC16 fonts hzk16Type = InternalHzk16; Serial.println("Use internal HZK16 and ASC16 font."); } switch (hzk16Type) { case InternalHzk16: { if (pAscCharMatrix == NULL || pGbkCharMatrix == NULL) { hzk16Type = DontUsedHzk16; } if (pHzk16File != NULL) { pHzk16File->close(); pHzk16File = NULL; } if (pAsc16File != NULL) { pAsc16File->close(); pAsc16File = NULL; } hzkBufCount = 0; break; } case DontUsedHzk16: { if (pHzk16File != NULL) { pHzk16File->close(); pHzk16File = NULL; } if (pAsc16File != NULL) { pAsc16File->close(); pAsc16File = NULL; } break; } default: { break; } } return hzk16Type != DontUsedHzk16; } void M5Display::writeHzk(char *c) { char *ret = c; ascCharWidth = 8 * textsize; ascCharHeigth = 16 * textsize; gbkCharWidth = ascCharHeigth; gbkCharHeight = gbkCharWidth; if (ret == NULL) return; while (*ret != '\0') { while (*ret <= 0xA0) { if (*ret == '\0') return; writeHzkAsc(*ret); ret++; } writeHzkGbk(ret); ret++; ret++; } } void M5Display::writeHzkAsc(const char c) { if (c == '\n') { cursor_x = 0; cursor_y += ascCharHeigth; } else if (c != '\r') { uint32_t offset; uint8_t mask; uint16_t posX = cursor_x, posY = cursor_y; uint8_t charMatrix[16]; uint8_t *pCharMatrix; offset = (uint32_t)c * 16; if (hzk16Type == ExternalHzk16) { pAsc16File->seek(offset, SeekSet); pAsc16File->readBytes((char *)&charMatrix[0], 16); pCharMatrix = &charMatrix[0]; } else { if (pAscCharMatrix == NULL) { return; } pCharMatrix = pAscCharMatrix + offset; } // startWrite(); if (highlighted) { fillRect(cursor_x, cursor_y, ascCharWidth, ascCharHeigth, highlightcolor); } else if (istransparent == false) { fillRect(cursor_x, cursor_y, ascCharWidth, ascCharHeigth, textbgcolor); } for (uint8_t row = 0; row < 16; row++) { mask = 0x80; posX = cursor_x; for (uint8_t col = 0; col < 8; col++) { if ((*pCharMatrix & mask) != 0) { if (textsize == 1) { drawPixel(posX, posY, textcolor); } else { fillRect(posX, posY, textsize, textsize, textcolor); } } posX += textsize; mask >>= 1; } posY += textsize; pCharMatrix++; } // endWrite(); cursor_x += ascCharWidth; if (textwrap && ((cursor_x + ascCharWidth) > _width)) { cursor_x = 0; cursor_y += ascCharHeigth; } } } void M5Display::writeHzkGbk(const char *c) { uint32_t offset; uint8_t mask; uint16_t posX = cursor_x; uint16_t posY = cursor_y; uint8_t charMatrix[32]; uint8_t *pCharMatrix; offset = (uint32_t)(94 * (uint32_t)(c[0] - 0xA1) + (uint32_t)(c[1] - 0xA1)) * 32; if (hzk16Type == ExternalHzk16) { pHzk16File->seek(offset, SeekSet); pHzk16File->readBytes((char *)&charMatrix[0], 32); pCharMatrix = &charMatrix[0]; } else { if (pGbkCharMatrix == NULL) { return; } pCharMatrix = pGbkCharMatrix + offset; } // startWrite(); if (highlighted) { fillRect(cursor_x, cursor_y, gbkCharWidth, gbkCharHeight, highlightcolor); } else if (istransparent == false) { fillRect(cursor_x, cursor_y, gbkCharWidth, gbkCharHeight, textbgcolor); } for (uint8_t row = 0; row < 16; row++) { posX = cursor_x; mask = 0x80; for (uint8_t col = 0; col < 8; col++) { if ((*pCharMatrix & mask) != 0) { if (textsize == 1) { drawPixel(posX, posY, textcolor); } else { fillRect(posX, posY, textsize, textsize, textcolor); } } if ((*(pCharMatrix + 1) & mask) != 0) { if (textsize == 1) { drawPixel(posX + ascCharWidth, posY, textcolor); } else { fillRect(posX + ascCharWidth, posY, textsize, textsize, textcolor); } } mask >>= 1; posX += textsize; } posY += textsize; pCharMatrix += 2; } // endWrite(); cursor_x += gbkCharWidth; if (textwrap && ((cursor_x + gbkCharWidth) > _width)) { cursor_x = 0; cursor_y += gbkCharHeight; } } void M5Display::setTextWrap(boolean w) { textwrap = w; } #include "utility/qrcode.h" void M5Display::qrcode(const char *string, uint16_t x, uint16_t y, uint8_t width, uint8_t version) { // Create the QR code QRCode qrcode; uint8_t qrcodeData[qrcode_getBufferSize(version)]; qrcode_initText(&qrcode, qrcodeData, version, 0, string); // Top quiet zone uint8_t thickness = width / qrcode.size; uint16_t lineLength = qrcode.size * thickness; uint8_t xOffset = x + (width - lineLength) / 2; uint8_t yOffset = y + (width - lineLength) / 2; fillRect(x, y, width, width, TFT_WHITE); for (uint8_t y = 0; y < qrcode.size; y++) { for (uint8_t x = 0; x < qrcode.size; x++) { uint8_t q = qrcode_getModule(&qrcode, x, y); if (q) fillRect(x * thickness + xOffset, y * thickness + yOffset, thickness, thickness, TFT_BLACK); } } } void M5Display::qrcode(const String &string, uint16_t x, uint16_t y, uint8_t width, uint8_t version) { int16_t len = string.length() + 1; char buffer[len]; string.toCharArray(buffer, len); qrcode(buffer, x, y, width, version); } #if 0 void M5Display::sleep() { startWrite(); writecommand(ILI9341_SLPIN); // Software reset endWrite(); } void M5Display::setBrightness(uint8_t brightness) { ledcWrite(BLK_PWM_CHANNEL, brightness); } void M5Display::drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data) { setSwapBytes(true); pushImage((int32_t)x0, (int32_t)y0, (uint32_t)w, (uint32_t)h, data); setSwapBytes(false); } void M5Display::drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint16_t *data) { setSwapBytes(true); pushImage((int32_t)x0, (int32_t)y0, (uint32_t)w, (uint32_t)h, data); setSwapBytes(false); } void M5Display::drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data, uint16_t transparent) { setSwapBytes(true); pushImage((int32_t)x0, (int32_t)y0, (uint32_t)w, (uint32_t)h, data, transparent); setSwapBytes(false); } void M5Display::drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint8_t *data) { setSwapBytes(true); pushImage((int32_t)x0, (int32_t)y0, (uint32_t)w, (uint32_t)h, (const uint16_t*)data); setSwapBytes(false); } void M5Display::drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint8_t *data) { setSwapBytes(true); pushImage((int32_t)x0, (int32_t)y0, (uint32_t)w, (uint32_t)h, (uint16_t*)data); setSwapBytes(false); } void M5Display::progressBar(int x, int y, int w, int h, uint8_t val) { drawRect(x, y, w, h, 0x09F1); fillRect(x + 1, y + 1, w * (((float)val) / 100.0), h - 1, 0x09F1); } #include "utility/qrcode.h" void M5Display::qrcode(const char *string, uint16_t x, uint16_t y, uint8_t width, uint8_t version) { // Create the QR code QRCode qrcode; uint8_t qrcodeData[qrcode_getBufferSize(version)]; qrcode_initText(&qrcode, qrcodeData, version, 0, string); // Top quiet zone uint8_t thickness = width / qrcode.size; uint16_t lineLength = qrcode.size * thickness; uint8_t xOffset = x + (width-lineLength)/2; uint8_t yOffset = y + (width-lineLength)/2; fillRect(x, y, width, width, TFT_WHITE); for (uint8_t y = 0; y < qrcode.size; y++) { for (uint8_t x = 0; x < qrcode.size; x++) { uint8_t q = qrcode_getModule(&qrcode, x, y); if (q) fillRect(x * thickness + xOffset, y * thickness + yOffset, thickness, thickness, TFT_BLACK); } } } void M5Display::qrcode(const String &string, uint16_t x, uint16_t y, uint8_t width, uint8_t version) { int16_t len = string.length() + 2; char buffer[len]; string.toCharArray(buffer, len); qrcode(buffer, x, y, width, version); } // These read 16- and 32-bit types from the SD card file. // BMP data is stored little-endian, Arduino is little-endian too. // May need to reverse subscript order if porting elsewhere. uint16_t read16(fs::File &f) { uint16_t result; ((uint8_t *)&result)[0] = f.read(); // LSB ((uint8_t *)&result)[1] = f.read(); // MSB return result; } uint32_t read32(fs::File &f) { uint32_t result; ((uint8_t *)&result)[0] = f.read(); // LSB ((uint8_t *)&result)[1] = f.read(); ((uint8_t *)&result)[2] = f.read(); ((uint8_t *)&result)[3] = f.read(); // MSB return result; } // Bodmers BMP image rendering function void M5Display::drawBmpFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y) { if ((x >= width()) || (y >= height())) return; // Open requested file on SD card File bmpFS = fs.open(path, "r"); if (!bmpFS) { Serial.print("File not found"); return; } uint32_t seekOffset; uint16_t w, h, row, col; uint8_t r, g, b; uint32_t startTime = millis(); if (read16(bmpFS) == 0x4D42) { read32(bmpFS); read32(bmpFS); seekOffset = read32(bmpFS); read32(bmpFS); w = read32(bmpFS); h = read32(bmpFS); if ((read16(bmpFS) == 1) && (read16(bmpFS) == 24) && (read32(bmpFS) == 0)) { y += h - 1; setSwapBytes(true); bmpFS.seek(seekOffset); uint16_t padding = (4 - ((w * 3) & 3)) & 3; uint8_t lineBuffer[w * 3 + padding]; for (row = 0; row < h; row++) { bmpFS.read(lineBuffer, sizeof(lineBuffer)); uint8_t* bptr = lineBuffer; uint16_t* tptr = (uint16_t*)lineBuffer; // Convert 24 to 16 bit colours for (uint16_t col = 0; col < w; col++) { b = *bptr++; g = *bptr++; r = *bptr++; *tptr++ = ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); } // Push the pixel row to screen, pushImage will crop the line if needed // y is decremented as the BMP image is drawn bottom up pushImage(x, y--, w, 1, (uint16_t*)lineBuffer); } Serial.print("Loaded in "); Serial.print(millis() - startTime); Serial.println(" ms"); } else Serial.println("BMP format not recognized."); } bmpFS.close(); } // void M5Display::drawBmp(fs::FS &fs, const char *path, uint16_t x, uint16_t y) { // drawBmpFile(fs, path, x, y); // } /*************************************************** This library is written to be compatible with Adafruit's ILI9341 library and automatically detects the display type on ESP_WROVER_KITs Earlier WROVERs had ILI9341, while newer releases have ST7789V MIT license, all text above must be included in any redistribution ****************************************************/ /* * JPEG * */ #include "rom/tjpgd.h" #define jpgColor(c) \ (((uint16_t)(((uint8_t *)(c))[0] & 0xF8) << 8) | \ ((uint16_t)(((uint8_t *)(c))[1] & 0xFC) << 3) | \ ((((uint8_t *)(c))[2] & 0xF8) >> 3)) #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_ERROR const char *jd_errors[] = {"Succeeded", "Interrupted by output function", "Device error or wrong termination of input stream", "Insufficient memory pool for the image", "Insufficient stream input buffer", "Parameter error", "Data format error", "Right format but not supported", "Not supported JPEG standard"}; #endif typedef struct { uint16_t x; uint16_t y; uint16_t maxWidth; uint16_t maxHeight; uint16_t offX; uint16_t offY; jpeg_div_t scale; const void *src; size_t len; size_t index; M5Display *tft; uint16_t outWidth; uint16_t outHeight; } jpg_file_decoder_t; static uint32_t jpgReadFile(JDEC *decoder, uint8_t *buf, uint32_t len) { jpg_file_decoder_t *jpeg = (jpg_file_decoder_t *)decoder->device; File *file = (File *)jpeg->src; if (buf) { return file->read(buf, len); } else { file->seek(len, SeekCur); } return len; } static uint32_t jpgRead(JDEC *decoder, uint8_t *buf, uint32_t len) { jpg_file_decoder_t *jpeg = (jpg_file_decoder_t *)decoder->device; if (buf) { memcpy(buf, (const uint8_t *)jpeg->src + jpeg->index, len); } jpeg->index += len; return len; } static uint32_t jpgWrite(JDEC *decoder, void *bitmap, JRECT *rect) { jpg_file_decoder_t *jpeg = (jpg_file_decoder_t *)decoder->device; uint16_t x = rect->left; uint16_t y = rect->top; uint16_t w = rect->right + 1 - x; uint16_t h = rect->bottom + 1 - y; uint16_t oL = 0, oR = 0; uint8_t *data = (uint8_t *)bitmap; if (rect->right < jpeg->offX) { return 1; } if (rect->left >= (jpeg->offX + jpeg->outWidth)) { return 1; } if (rect->bottom < jpeg->offY) { return 1; } if (rect->top >= (jpeg->offY + jpeg->outHeight)) { return 1; } if (rect->top < jpeg->offY) { uint16_t linesToSkip = jpeg->offY - rect->top; data += linesToSkip * w * 3; h -= linesToSkip; y += linesToSkip; } if (rect->bottom >= (jpeg->offY + jpeg->outHeight)) { uint16_t linesToSkip = (rect->bottom + 1) - (jpeg->offY + jpeg->outHeight); h -= linesToSkip; } if (rect->left < jpeg->offX) { oL = jpeg->offX - rect->left; } if (rect->right >= (jpeg->offX + jpeg->outWidth)) { oR = (rect->right + 1) - (jpeg->offX + jpeg->outWidth); } uint16_t pixBuf[32]; uint8_t pixIndex = 0; uint16_t line; jpeg->tft->startWrite(); // jpeg->tft->setAddrWindow(x - jpeg->offX + jpeg->x + oL, y - jpeg->offY + // jpeg->y, w - (oL + oR), h); jpeg->tft->setAddrWindow(x - jpeg->offX + jpeg->x + oL, y - jpeg->offY + jpeg->y, x - jpeg->offX + jpeg->x + oL + w - (oL + oR) - 1, y - jpeg->offY + jpeg->y + h - 1); while (h--) { data += 3 * oL; line = w - (oL + oR); while (line--) { pixBuf[pixIndex++] = jpgColor(data); data += 3; if (pixIndex == 32) { jpeg->tft->writePixels(pixBuf, 32); // SPI.writePixels((uint8_t *)pixBuf, 64); pixIndex = 0; } } data += 3 * oR; } if (pixIndex) { jpeg->tft->writePixels(pixBuf, pixIndex); // SPI.writePixels((uint8_t *)pixBuf, pixIndex * 2); } jpeg->tft->endWrite(); return 1; } static bool jpgDecode(jpg_file_decoder_t *jpeg, uint32_t (*reader)(JDEC *, uint8_t *, uint32_t)) { static uint8_t work[3100]; JDEC decoder; JRESULT jres = jd_prepare(&decoder, reader, work, 3100, jpeg); if (jres != JDR_OK) { log_e("jd_prepare failed! %s", jd_errors[jres]); return false; } uint16_t jpgWidth = decoder.width / (1 << (uint8_t)(jpeg->scale)); uint16_t jpgHeight = decoder.height / (1 << (uint8_t)(jpeg->scale)); if (jpeg->offX >= jpgWidth || jpeg->offY >= jpgHeight) { log_e("Offset Outside of JPEG size"); return false; } size_t jpgMaxWidth = jpgWidth - jpeg->offX; size_t jpgMaxHeight = jpgHeight - jpeg->offY; jpeg->outWidth = (jpgMaxWidth > jpeg->maxWidth) ? jpeg->maxWidth : jpgMaxWidth; jpeg->outHeight = (jpgMaxHeight > jpeg->maxHeight) ? jpeg->maxHeight : jpgMaxHeight; jres = jd_decomp(&decoder, jpgWrite, (uint8_t)jpeg->scale); if (jres != JDR_OK) { log_e("jd_decomp failed! %s", jd_errors[jres]); return false; } return true; } void M5Display::drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x, uint16_t y, uint16_t maxWidth, uint16_t maxHeight, uint16_t offX, uint16_t offY, jpeg_div_t scale) { if ((x + maxWidth) > width() || (y + maxHeight) > height()) { log_e("Bad dimensions given"); return; } jpg_file_decoder_t jpeg; if (!maxWidth) { maxWidth = width() - x; } if (!maxHeight) { maxHeight = height() - y; } jpeg.src = jpg_data; jpeg.len = jpg_len; jpeg.index = 0; jpeg.x = x; jpeg.y = y; jpeg.maxWidth = maxWidth; jpeg.maxHeight = maxHeight; jpeg.offX = offX; jpeg.offY = offY; jpeg.scale = scale; jpeg.tft = this; jpgDecode(&jpeg, jpgRead); } void M5Display::drawJpgFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y, uint16_t maxWidth, uint16_t maxHeight, uint16_t offX, uint16_t offY, jpeg_div_t scale) { if ((x + maxWidth) > width() || (y + maxHeight) > height()) { log_e("Bad dimensions given"); return; } File file = fs.open(path); if (!file) { log_e("Failed to open file for reading"); return; } jpg_file_decoder_t jpeg; if (!maxWidth) { maxWidth = width() - x; } if (!maxHeight) { maxHeight = height() - y; } jpeg.src = &file; jpeg.len = file.size(); jpeg.index = 0; jpeg.x = x; jpeg.y = y; jpeg.maxWidth = maxWidth; jpeg.maxHeight = maxHeight; jpeg.offX = offX; jpeg.offY = offY; jpeg.scale = scale; jpeg.tft = this; jpgDecode(&jpeg, jpgReadFile); file.close(); } #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/M5Display.h ================================================ #ifndef _M5DISPLAY_H_ #define _M5DISPLAY_H_ #include #include #include #include "utility/In_eSPI.h" #include "utility/Sprite.h" #include "Fonts/HZK16.h" #include "Fonts/ASC16.h" typedef enum { JPEG_DIV_NONE, JPEG_DIV_2, JPEG_DIV_4, JPEG_DIV_8, JPEG_DIV_MAX } jpeg_div_t; typedef enum { DontUsedHzk16, InternalHzk16, ExternalHzk16 }Hzk16Types; class M5Display : public TFT_eSPI { public: M5Display(); void begin(); // void sleep(); // void setBrightness(uint8_t brightness); void drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data); void drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint8_t *data); void drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint16_t *data); void drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint8_t *data); void drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data, uint16_t transparent); void loadHzk16(Hzk16Types hzkTypes = InternalHzk16, const char *HZK16Path = "/HZK16", const char *ASC16Path = "/ASC16"); void setTextWrap(boolean wrap); void writeHzk(char *c); // Highlight the text (Once set to be true, the text background will not be // transparent any more) inline void highlight(bool isHighlight) { highlighted = isHighlight; } // Set highlight color inline void setHighlightColor(uint16_t color) { highlightcolor = color; istransparent = false; } void qrcode(const char *string, uint16_t x = 5, uint16_t y = 45, uint8_t width = 70, uint8_t version = 7); void qrcode(const String &string, uint16_t x = 5, uint16_t y = 45, uint8_t width = 70, uint8_t version = 7); /* void clearDisplay(uint32_t color=ILI9341_BLACK) { fillScreen(color); } void clear(uint32_t color=ILI9341_BLACK) { fillScreen(color); } void display() {} inline void startWrite(void){ #if defined (SPI_HAS_TRANSACTION) && defined (SUPPORT_TRANSACTIONS) && !defined(ESP32_PARALLEL) if (locked) {locked = false; SPI.beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));} #endif CS_L; } inline void endWrite(void){ #if defined (SPI_HAS_TRANSACTION) && defined (SUPPORT_TRANSACTIONS) && !defined(ESP32_PARALLEL) if(!inTransaction) {if (!locked) {locked = true; SPI.endTransaction();}} #endif CS_H; } inline void writePixel(uint16_t color) { SPI.write16(color); } inline void writePixels(uint16_t * colors, uint32_t len){ SPI.writePixels((uint8_t*)colors , len * 2); } void progressBar(int x, int y, int w, int h, uint8_t val); #define setFont setFreeFont //void qrcode(const char *string, uint16_t x = 50, uint16_t y = 10, uint8_t width = 220, uint8_t version = 6); //void qrcode(const String &string, uint16_t x = 50, uint16_t y = 10, uint8_t width = 220, uint8_t version = 6); void drawBmp(fs::FS &fs, const char *path, uint16_t x, uint16_t y); void drawBmpFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y); void drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data); void drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint8_t *data); void drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint16_t *data); void drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint8_t *data); void drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data, uint16_t transparent); void drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, jpeg_div_t scale = JPEG_DIV_NONE); void drawJpg(fs::FS &fs, const char *path, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, jpeg_div_t scale = JPEG_DIV_NONE); void drawJpgFile(fs::FS &fs, const char *path, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, jpeg_div_t scale = JPEG_DIV_NONE);*/ private: void writeHzkAsc(const char c); void writeHzkGbk(const char *c); bool initHzk16(boolean use, const char *HZK16Path, const char *ASC16Path); inline bool isHzk16Used() { return hzk16Used; } boolean hzk16Used, istransparent, highlighted; uint8_t hzkBufCount; uint8_t *pAscCharMatrix, *pGbkCharMatrix; uint16_t highlightcolor, ascCharWidth, ascCharHeigth, gbkCharWidth, gbkCharHeight; Hzk16Types hzk16Type; // Use of HZK16 and ASC16 font. File Asc16File, Hzk16File, // Font file *pAsc16File, *pHzk16File; // Font file pointer boolean textwrap; // If set, 'wrap' text at right edge of display }; #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/M5StickCPlus.cpp ================================================ // Copyright (c) M5Stack. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full // license information. #include "M5StickCPlus.h" M5StickCPlus::M5StickCPlus() : isInited(0) { } void M5StickCPlus::begin(bool LCDEnable, bool PowerEnable, bool SerialEnable) { //! Correct init once if (isInited) return; else isInited = true; //! UART if (SerialEnable) { Serial.begin(115200); Serial.flush(); delay(50); Serial.print("M5StickCPlus initializing..."); } // Power if (PowerEnable) { Axp.begin(); } // LCD INIT if (LCDEnable) { Lcd.begin(); } if (SerialEnable) { Serial.println("OK"); } Beep.begin(); Rtc.begin(); } void M5StickCPlus::update() { M5.BtnA.read(); M5.BtnB.read(); M5.Beep.update(); } M5StickCPlus M5; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/M5StickCPlus.h ================================================ //! Copyright (c) M5Stack. All rights reserved. //! Licensed under the MIT license. See LICENSE file in the project root for //! full license information. /** * \par Copyright (C), 2016-2017, M5Stack * \class M5StickC * \brief M5StickCPlus library. * @file M5StickCPlus.h * @author M5Stack * @version V0.0.6 * @date 2020/07/16 * @brief Header for M5StickCPlus.cpp module * * \par Description * This file is a drive for M5StickCPlus. * * \par Method List: * * System: * M5.begin(); * * LCD: M5.Lcd.drawPixel(int16_t x, int16_t y, uint16_t color); M5.Lcd.drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color); M5.Lcd.fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color); M5.Lcd.fillScreen(uint16_t color); M5.Lcd.drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color); M5.Lcd.drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,uint16_t color); M5.Lcd.fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color); M5.Lcd.fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,int16_t delta, uint16_t color); M5.Lcd.drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color); M5.Lcd.fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color); M5.Lcd.drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color); M5.Lcd.fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color); M5.Lcd.drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color); M5.Lcd.drawRGBBitmap(int16_t x, int16_t y, const uint16_t bitmap[], int16_t w, int16_t h), M5.Lcd.drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg, uint8_t size); M5.Lcd.setCursor(uint16_t x0, uint16_t y0); M5.Lcd.setTextColor(uint16_t color); M5.Lcd.setTextColor(uint16_t color, uint16_t backgroundcolor); M5.Lcd.setTextSize(uint8_t size); M5.Lcd.setTextWrap(boolean w); M5.Lcd.printf(); M5.Lcd.print(); M5.Lcd.println(); M5.Lcd.drawCentreString(const char *string, int dX, int poY, int font); M5.Lcd.drawRightString(const char *string, int dX, int poY, int font); //M5.Lcd.drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x, uint16_t y); //M5.Lcd.drawJpgFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y); //M5.Lcd.drawBmpFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y); * * * * \par History: *
 * ``       `
* */ #ifndef _M5STICKC_H_ #define _M5STICKC_H_ #if defined(ESP32) #include #include #include #include "M5Display.h" #include "AXP192.h" #include "utility/Config.h" #include "utility/MPU6886.h" #include "utility/Button.h" #include "utility/Speaker.h" #include "RTC.h" class M5StickCPlus { public: M5StickCPlus(); void begin(bool LCDEnable = true, bool PowerEnable = true, bool SerialEnable = true); void update(); //! LCD M5Display Lcd = M5Display(); //! Power AXP192 Axp = AXP192(); SPEAKER Beep; #define DEBOUNCE_MS 10 Button BtnA = Button(BUTTON_A_PIN, true, DEBOUNCE_MS); Button BtnB = Button(BUTTON_B_PIN, true, DEBOUNCE_MS); //! RTC RTC Rtc; MPU6886 Imu; private: bool isInited; // uint8_t _wakeupPin; }; extern M5StickCPlus M5; #define m5 M5 #define lcd Lcd #define axp Axp #define imu Imu #define IMU Imu #else #error “This library only supports boards with ESP32 processor.” #endif #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/RTC.cpp ================================================ #include "RTC.h" RTC::RTC() { } void RTC::begin(void) { Wire1.begin(21, 22); } void RTC::GetBm8563Time(void) { Wire1.beginTransmission(0x51); Wire1.write(0x02); Wire1.endTransmission(); Wire1.requestFrom(0x51, 7); while (Wire1.available()) { trdata[0] = Wire1.read(); trdata[1] = Wire1.read(); trdata[2] = Wire1.read(); trdata[3] = Wire1.read(); trdata[4] = Wire1.read(); trdata[5] = Wire1.read(); trdata[6] = Wire1.read(); } DataMask(); Bcd2asc(); Str2Time(); } void RTC::Str2Time(void) { Second = (asc[0] - 0x30) * 10 + asc[1] - 0x30; Minute = (asc[2] - 0x30) * 10 + asc[3] - 0x30; Hour = (asc[4] - 0x30) * 10 + asc[5] - 0x30; /* uint8_t Hour; uint8_t Week; uint8_t Day; uint8_t Month; uint8_t Year; */ } void RTC::DataMask() { trdata[0] = trdata[0] & 0x7f; //秒 trdata[1] = trdata[1] & 0x7f; //分 trdata[2] = trdata[2] & 0x3f; //时 trdata[3] = trdata[3] & 0x3f; //日 trdata[4] = trdata[4] & 0x07; //星期 trdata[5] = trdata[5] & 0x1f; //月 trdata[6] = trdata[6] & 0xff; //年 } /******************************************************************** 函 数 名: void Bcd2asc(void) 功 能: bcd 码转换成 asc 码,供Lcd显示用 说 明: 调 用: 入口参数: 返 回 值:无 ***********************************************************************/ void RTC::Bcd2asc(void) { uint8_t i, j; for (j = 0, i = 0; i < 7; i++) { asc[j++] = (trdata[i] & 0xf0) >> 4 | 0x30; /*格式为: 秒 分 时 日 月 星期 年 */ asc[j++] = (trdata[i] & 0x0f) | 0x30; } } uint8_t RTC::Bcd2ToByte(uint8_t Value) { uint8_t tmp = 0; tmp = ((uint8_t)(Value & (uint8_t)0xF0) >> (uint8_t)0x4) * 10; return (tmp + (Value & (uint8_t)0x0F)); } uint8_t RTC::ByteToBcd2(uint8_t Value) { uint8_t bcdhigh = 0; while (Value >= 10) { bcdhigh++; Value -= 10; } return ((uint8_t)(bcdhigh << 4) | Value); } void RTC::GetTime(RTC_TimeTypeDef* RTC_TimeStruct) { // if() uint8_t buf[3] = {0}; Wire1.beginTransmission(0x51); Wire1.write(0x02); Wire1.endTransmission(); Wire1.requestFrom(0x51, 3); while (Wire1.available()) { buf[0] = Wire1.read(); buf[1] = Wire1.read(); buf[2] = Wire1.read(); } RTC_TimeStruct->Seconds = Bcd2ToByte(buf[0] & 0x7f); //秒 RTC_TimeStruct->Minutes = Bcd2ToByte(buf[1] & 0x7f); //分 RTC_TimeStruct->Hours = Bcd2ToByte(buf[2] & 0x3f); //时 } void RTC::SetTime(RTC_TimeTypeDef* RTC_TimeStruct) { if (RTC_TimeStruct == NULL) return; Wire1.beginTransmission(0x51); Wire1.write(0x02); Wire1.write(ByteToBcd2(RTC_TimeStruct->Seconds)); Wire1.write(ByteToBcd2(RTC_TimeStruct->Minutes)); Wire1.write(ByteToBcd2(RTC_TimeStruct->Hours)); Wire1.endTransmission(); } void RTC::GetData(RTC_DateTypeDef* RTC_DateStruct) { uint8_t buf[4] = {0}; Wire1.beginTransmission(0x51); Wire1.write(0x05); Wire1.endTransmission(); Wire1.requestFrom(0x51, 4); while (Wire1.available()) { buf[0] = Wire1.read(); buf[1] = Wire1.read(); buf[2] = Wire1.read(); buf[3] = Wire1.read(); } RTC_DateStruct->Date = Bcd2ToByte(buf[0] & 0x3f); RTC_DateStruct->WeekDay = Bcd2ToByte(buf[1] & 0x07); RTC_DateStruct->Month = Bcd2ToByte(buf[2] & 0x1f); if (buf[2] & 0x80) { RTC_DateStruct->Year = 1900 + Bcd2ToByte(buf[3] & 0xff); } else { RTC_DateStruct->Year = 2000 + Bcd2ToByte(buf[3] & 0xff); } } void RTC::SetData(RTC_DateTypeDef* RTC_DateStruct) { if (RTC_DateStruct == NULL) return; Wire1.beginTransmission(0x51); Wire1.write(0x05); Wire1.write(ByteToBcd2(RTC_DateStruct->Date)); Wire1.write(ByteToBcd2(RTC_DateStruct->WeekDay)); if (RTC_DateStruct->Year < 2000) { Wire1.write(ByteToBcd2(RTC_DateStruct->Month) | 0x80); Wire1.write(ByteToBcd2((uint8_t)(RTC_DateStruct->Year % 100))); } else { /* code */ Wire1.write(ByteToBcd2(RTC_DateStruct->Month) | 0x00); Wire1.write(ByteToBcd2((uint8_t)(RTC_DateStruct->Year % 100))); } Wire1.endTransmission(); } ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/RTC.h ================================================ #ifndef __RTC_H__ #define __RTC_H__ #include typedef struct { uint8_t Hours; uint8_t Minutes; uint8_t Seconds; } RTC_TimeTypeDef; typedef struct { uint8_t WeekDay; uint8_t Month; uint8_t Date; uint16_t Year; } RTC_DateTypeDef; class RTC { public: RTC(); void begin(void); void GetBm8563Time(void); void SetTime(RTC_TimeTypeDef* RTC_TimeStruct); void SetData(RTC_DateTypeDef* RTC_DateStruct); void GetTime(RTC_TimeTypeDef* RTC_TimeStruct); void GetData(RTC_DateTypeDef* RTC_DateStruct); public: uint8_t Second; uint8_t Minute; uint8_t Hour; uint8_t Week; uint8_t Day; uint8_t Month; uint8_t Year; uint8_t DateString[9]; uint8_t TimeString[9]; uint8_t asc[14]; private: void Bcd2asc(void); void DataMask(); void Str2Time(void); uint8_t Bcd2ToByte(uint8_t Value); uint8_t ByteToBcd2(uint8_t Value); private: /*定义数组用来存储读取的时间数据 */ uint8_t trdata[7]; /*定义数组用来存储转换的 asc 码时间数据*/ // uint8_t asc[14]; }; #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/Button.cpp ================================================ /*----------------------------------------------------------------------* * Arduino Button Library v1.0 * * Jack Christensen May 2011, published Mar 2012 * * * * Library for reading momentary contact switches like tactile button * * switches. Intended for use in state machine constructs. * * Use the read() function to read all buttons in the main loop, * * which should execute as fast as possible. * * * * This work is licensed under the Creative Commons Attribution- * * ShareAlike 3.0 Unported License. To view a copy of this license, * * visit http://creativecommons.org/licenses/by-sa/3.0/ or send a * * letter to Creative Commons, 171 Second Street, Suite 300, * * San Francisco, California, 94105, USA. * *----------------------------------------------------------------------*/ #include "Button.h" /*----------------------------------------------------------------------* * Button(pin, puEnable, invert, dbTime) instantiates a button object. * * pin Is the Arduino pin the button is connected to. * * puEnable Enables the AVR internal pullup resistor if != 0 (can also * * use true or false). * * invert If invert == 0, interprets a high state as pressed, low as * * released. If invert != 0, interprets a high state as * * released, low as pressed (can also use true or false). * * dbTime Is the debounce time in milliseconds. * * * * (Note that invert cannot be implied from puEnable since an external * * pullup could be used.) * *----------------------------------------------------------------------*/ Button::Button(uint8_t pin, uint8_t invert, uint32_t dbTime) { _pin = pin; _invert = invert; _dbTime = dbTime; pinMode(_pin, INPUT_PULLUP); _state = digitalRead(_pin); if (_invert != 0) _state = !_state; _time = millis(); _lastState = _state; _changed = 0; _hold_time = -1; _lastTime = _time; _lastChange = _time; _pressTime = _time; } /*----------------------------------------------------------------------* * read() returns the state of the button, 1==pressed, 0==released, * * does debouncing, captures and maintains times, previous states, etc. * *----------------------------------------------------------------------*/ uint8_t Button::read(void) { static uint32_t ms; static uint8_t pinVal; ms = millis(); pinVal = digitalRead(_pin); if (_invert != 0) pinVal = !pinVal; if (ms - _lastChange < _dbTime) { _lastTime = _time; _time = ms; _changed = 0; return _state; } else { _lastTime = _time; _time = ms; _lastState = _state; _state = pinVal; if (_state != _lastState) { _lastChange = ms; _changed = 1; if (_state) { _pressTime = _time; } } else { _changed = 0; } return _state; } } /*----------------------------------------------------------------------* * isPressed() and isReleased() check the button state when it was last * * read, and return false (0) or true (!=0) accordingly. * * These functions do not cause the button to be read. * *----------------------------------------------------------------------*/ uint8_t Button::isPressed(void) { return _state == 0 ? 0 : 1; } uint8_t Button::isReleased(void) { return _state == 0 ? 1 : 0; } /*----------------------------------------------------------------------* * wasPressed() and wasReleased() check the button state to see if it * * changed between the last two reads and return false (0) or * * true (!=0) accordingly. * * These functions do not cause the button to be read. * *----------------------------------------------------------------------*/ uint8_t Button::wasPressed(void) { return _state && _changed; } uint8_t Button::wasReleased(void) { return !_state && _changed && millis() - _pressTime < _hold_time; } uint8_t Button::wasReleasefor(uint32_t ms) { _hold_time = ms; return !_state && _changed && millis() - _pressTime >= ms; } /*----------------------------------------------------------------------* * pressedFor(ms) and releasedFor(ms) check to see if the button is * * pressed (or released), and has been in that state for the specified * * time in milliseconds. Returns false (0) or true (1) accordingly. * * These functions do not cause the button to be read. * *----------------------------------------------------------------------*/ uint8_t Button::pressedFor(uint32_t ms) { return (_state == 1 && _time - _lastChange >= ms) ? 1 : 0; } uint8_t Button::releasedFor(uint32_t ms) { return (_state == 0 && _time - _lastChange >= ms) ? 1 : 0; } /*----------------------------------------------------------------------* * lastChange() returns the time the button last changed state, * * in milliseconds. * *----------------------------------------------------------------------*/ uint32_t Button::lastChange(void) { return _lastChange; } ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/Button.h ================================================ /*----------------------------------------------------------------------* * Arduino Button Library v1.0 * * Jack Christensen Mar 2012 * * * * This work is licensed under the Creative Commons Attribution- * * ShareAlike 3.0 Unported License. To view a copy of this license, * * visit http://creativecommons.org/licenses/by-sa/3.0/ or send a * * letter to Creative Commons, 171 Second Street, Suite 300, * * San Francisco, California, 94105, USA. * *----------------------------------------------------------------------*/ #ifndef Button_h #define Button_h // #if ARDUINO >= 100 #include // #else // #include // #endif class Button { public: Button(uint8_t pin, uint8_t invert, uint32_t dbTime); uint8_t read(); uint8_t isPressed(); uint8_t isReleased(); uint8_t wasPressed(); uint8_t wasReleased(); uint8_t pressedFor(uint32_t ms); uint8_t releasedFor(uint32_t ms); uint8_t wasReleasefor(uint32_t ms); uint32_t lastChange(); private: uint8_t _pin; // arduino pin number uint8_t _puEnable; // internal pullup resistor enabled uint8_t _invert; // if 0, interpret high state as pressed, else interpret // low state as pressed uint8_t _state; // current button state uint8_t _lastState; // previous button state uint8_t _changed; // state changed since last read uint32_t _time; // time of current state (all times are in ms) uint32_t _lastTime; // time of previous state uint32_t _lastChange; // time of last state change uint32_t _dbTime; // debounce time uint32_t _pressTime; // press time uint32_t _hold_time; // hold time call wasreleasefor }; #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/Config.h ================================================ #ifndef _CONFIG_H_ #define _CONFIG_H_ #define M5_IR 9 #define M5_LED 10 #define M5_BUTTON_HOME 37 #define M5_BUTTON_RST 39 #define BUTTON_A_PIN 37 #define BUTTON_B_PIN 39 #define SPEAKER_PIN 2 #define TONE_PIN_CHANNEL 0 // UART #define USE_SERIAL Serial #endif /* SETTINGS_C */ ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/In_eSPI.cpp ================================================ /*************************************************** Arduino TFT graphics library targeted at ESP8266 and ESP32 based boards. This is a standalone library that contains the hardware driver, the graphics functions and the proportional fonts. The larger fonts are Run Length Encoded to reduce their size. Created by Bodmer 2/12/16 Bodmer: Added RPi 16 bit display support ****************************************************/ #include "In_eSPI.h" #if defined(ESP32) #if !defined(ESP32_PARALLEL) #ifdef USE_HSPI_PORT SPIClass spi = SPIClass(HSPI); #else // use default VSPI port SPIClass spi = SPIClass(VSPI); #endif #endif #else // ESP8266 SPIClass spi = SPIClass(); #endif // SUPPORT_TRANSACTIONS is mandatory for ESP32 so the hal mutex is toggled #if defined(ESP32) && !defined(SUPPORT_TRANSACTIONS) #define SUPPORT_TRANSACTIONS #endif // If it is a 16bit serial display we must transfer 16 bits every time #ifdef RPI_ILI9486_DRIVER #define CMD_BITS 16 - 1 #else #define CMD_BITS 8 - 1 #endif // Fast block write prototype void writeBlock(uint16_t color, uint32_t repeat); // Byte read prototype uint8_t readByte(void); // GPIO parallel input/output control void busDir(uint32_t mask, uint8_t mode); inline void TFT_eSPI::spi_begin(void) { #if defined(SPI_HAS_TRANSACTION) && defined(SUPPORT_TRANSACTIONS) && \ !defined(ESP32_PARALLEL) if (locked) { locked = false; spi.beginTransaction( SPISettings(SPI_FREQUENCY, MSBFIRST, TFT_SPI_MODE)); CS_L; } #else CS_L; #endif #ifdef ESP8266 SPI1U = SPI1U_WRITE; #endif } inline void TFT_eSPI::spi_end(void) { #if defined(SPI_HAS_TRANSACTION) && defined(SUPPORT_TRANSACTIONS) && \ !defined(ESP32_PARALLEL) if (!inTransaction) { if (!locked) { locked = true; CS_H; spi.endTransaction(); } } #ifdef ESP8266 SPI1U = SPI1U_READ; #endif #else if (!inTransaction) CS_H; #endif } inline void TFT_eSPI::spi_begin_read(void) { #if defined(SPI_HAS_TRANSACTION) && defined(SUPPORT_TRANSACTIONS) && \ !defined(ESP32_PARALLEL) if (locked) { locked = false; spi.beginTransaction( SPISettings(SPI_READ_FREQUENCY, MSBFIRST, TFT_SPI_MODE)); CS_L; } #else #if !defined(ESP32_PARALLEL) spi.setFrequency(SPI_READ_FREQUENCY); #endif CS_L; #endif #ifdef ESP8266 SPI1U = SPI1U_READ; #endif } inline void TFT_eSPI::spi_end_read(void) { #if defined(SPI_HAS_TRANSACTION) && defined(SUPPORT_TRANSACTIONS) && \ !defined(ESP32_PARALLEL) if (!inTransaction) { if (!locked) { locked = true; CS_H; spi.endTransaction(); } } #else #if !defined(ESP32_PARALLEL) spi.setFrequency(SPI_FREQUENCY); #endif if (!inTransaction) CS_H; #endif #ifdef ESP8266 SPI1U = SPI1U_WRITE; #endif } #if defined(TOUCH_CS) && \ defined(SPI_TOUCH_FREQUENCY) // && !defined(ESP32_PARALLEL) inline void TFT_eSPI::spi_begin_touch(void) { CS_H; // Just in case it has been left low #if defined(SPI_HAS_TRANSACTION) && defined(SUPPORT_TRANSACTIONS) if (locked) { locked = false; spi.beginTransaction( SPISettings(SPI_TOUCH_FREQUENCY, MSBFIRST, SPI_MODE0)); } #else spi.setFrequency(SPI_TOUCH_FREQUENCY); #endif #ifdef ESP8266 SPI1U = SPI1U_READ; #endif T_CS_L; } inline void TFT_eSPI::spi_end_touch(void) { T_CS_H; #if defined(SPI_HAS_TRANSACTION) && defined(SUPPORT_TRANSACTIONS) if (!inTransaction) { if (!locked) { locked = true; spi.endTransaction(); } } #else spi.setFrequency(SPI_FREQUENCY); #endif #ifdef ESP8266 SPI1U = SPI1U_WRITE; #endif } #endif /*************************************************************************************** ** Function name: TFT_eSPI ** Description: Constructor , we must use hardware SPI pins ***************************************************************************************/ TFT_eSPI::TFT_eSPI(int16_t w, int16_t h) { // The control pins are deliberately set to the inactive state (CS high) as // setup() might call and initialise other SPI peripherals which would could // cause conflicts if CS is floating or undefined. #ifdef TFT_CS digitalWrite(TFT_CS, HIGH); // Chip select high (inactive) pinMode(TFT_CS, OUTPUT); #endif // Configure chip select for touchscreen controller if present #ifdef TOUCH_CS digitalWrite(TOUCH_CS, HIGH); // Chip select high (inactive) pinMode(TOUCH_CS, OUTPUT); #endif #ifdef TFT_WR digitalWrite(TFT_WR, HIGH); // Set write strobe high (inactive) pinMode(TFT_WR, OUTPUT); #endif #ifdef TFT_DC digitalWrite(TFT_DC, HIGH); // Data/Command high = data mode pinMode(TFT_DC, OUTPUT); #endif #ifdef TFT_RST if (TFT_RST >= 0) { digitalWrite( TFT_RST, HIGH); // Set high, do not share pin with another SPI device pinMode(TFT_RST, OUTPUT); } #endif #ifdef ESP32_PARALLEL // Create a bit set lookup table for data bus - wastes 1kbyte of RAM but // speeds things up dramatically for (int32_t c = 0; c < 256; c++) { xset_mask[c] = 0; if (c & 0x01) xset_mask[c] |= (1 << TFT_D0); if (c & 0x02) xset_mask[c] |= (1 << TFT_D1); if (c & 0x04) xset_mask[c] |= (1 << TFT_D2); if (c & 0x08) xset_mask[c] |= (1 << TFT_D3); if (c & 0x10) xset_mask[c] |= (1 << TFT_D4); if (c & 0x20) xset_mask[c] |= (1 << TFT_D5); if (c & 0x40) xset_mask[c] |= (1 << TFT_D6); if (c & 0x80) xset_mask[c] |= (1 << TFT_D7); } // Make sure read is high before we set the bus to output digitalWrite(TFT_RD, HIGH); pinMode(TFT_RD, OUTPUT); GPIO.out_w1ts = set_mask(255); // Set data bus to 0xFF // Set TFT data bus lines to output busDir(dir_mask, OUTPUT); #endif _init_width = _width = w; // Set by specific xxxxx_Defines.h file or by users sketch _init_height = _height = h; // Set by specific xxxxx_Defines.h file or by users sketch rotation = 0; cursor_y = cursor_x = 0; textfont = 1; textsize = 1; textcolor = bitmap_fg = 0xFFFF; // White textbgcolor = bitmap_bg = 0x0000; // Black padX = 0; // No padding isDigits = false; // No bounding box adjustment textwrapX = true; // Wrap text at end of line when using print stream textwrapY = false; // Wrap text at bottom of screen when using print stream textdatum = TL_DATUM; // Top Left text alignment is default fontsloaded = 0; _swapBytes = false; // Do not swap colour bytes by default locked = true; // ESP32 transaction mutex lock flags inTransaction = false; _booted = true; _cp437 = true; _utf8 = true; addr_row = 0xFFFF; addr_col = 0xFFFF; _xpivot = 0; _ypivot = 0; #ifdef LOAD_GLCD fontsloaded = 0x0002; // Bit 1 set #endif #ifdef LOAD_FONT2 fontsloaded |= 0x0004; // Bit 2 set #endif #ifdef LOAD_FONT4 fontsloaded |= 0x0010; // Bit 4 set #endif #ifdef LOAD_FONT6 fontsloaded |= 0x0040; // Bit 6 set #endif #ifdef LOAD_FONT7 fontsloaded |= 0x0080; // Bit 7 set #endif #ifdef LOAD_FONT8 fontsloaded |= 0x0100; // Bit 8 set #endif #ifdef LOAD_FONT8N fontsloaded |= 0x0200; // Bit 9 set #endif #ifdef SMOOTH_FONT fontsloaded |= 0x8000; // Bit 15 set #endif } /*************************************************************************************** ** Function name: begin ** Description: Included for backwards compatibility ***************************************************************************************/ void TFT_eSPI::begin(uint8_t tc) { init(tc); } /*************************************************************************************** ** Function name: init (tc is tab colour for ST7735 displays only) ** Description: Reset, then initialise the TFT display registers ***************************************************************************************/ void TFT_eSPI::init(uint8_t tc) { if (_booted) { #if !defined(ESP32) #ifdef TFT_CS cspinmask = (uint32_t)digitalPinToBitMask(TFT_CS); #endif #ifdef TFT_DC dcpinmask = (uint32_t)digitalPinToBitMask(TFT_DC); #endif #ifdef TFT_WR wrpinmask = (uint32_t)digitalPinToBitMask(TFT_WR); #endif #ifdef TFT_SCLK sclkpinmask = (uint32_t)digitalPinToBitMask(TFT_SCLK); #endif #ifdef TFT_SPI_OVERLAP // Overlap mode SD0=MISO, SD1=MOSI, CLK=SCLK must use D3 as CS // pins(int8_t sck, int8_t miso, int8_t mosi, int8_t ss); // spi.pins( 6, 7, 8, 0); spi.pins(6, 7, 8, 0); #endif spi.begin(); // This will set HMISO to input #else #if !defined(ESP32_PARALLEL) #if defined(TFT_MOSI) && !defined(TFT_SPI_OVERLAP) spi.begin(TFT_SCLK, TFT_MISO, TFT_MOSI, -1); #else spi.begin(); #endif #endif #endif inTransaction = false; locked = true; // SUPPORT_TRANSACTIONS is mandatory for ESP32 so the hal mutex is // toggled so the code here is for ESP8266 only #if !defined(SUPPORT_TRANSACTIONS) && defined(ESP8266) spi.setBitOrder(MSBFIRST); spi.setDataMode(TFT_SPI_MODE); spi.setFrequency(SPI_FREQUENCY); #endif #if defined(ESP32_PARALLEL) digitalWrite(TFT_CS, LOW); // Chip select low permanently pinMode(TFT_CS, OUTPUT); #else #ifdef TFT_CS // Set to output once again in case D6 (MISO) is used for CS digitalWrite(TFT_CS, HIGH); // Chip select high (inactive) pinMode(TFT_CS, OUTPUT); #else spi.setHwCs(1); // Use hardware SS toggling #endif #endif // Set to output once again in case D6 (MISO) is used for DC #ifdef TFT_DC digitalWrite(TFT_DC, HIGH); // Data/Command high = data mode pinMode(TFT_DC, OUTPUT); #endif _booted = false; spi_end(); } // end of: if just _booted // Toggle RST low to reset spi_begin(); #ifdef TFT_RST if (TFT_RST >= 0) { digitalWrite(TFT_RST, HIGH); delay(5); digitalWrite(TFT_RST, LOW); delay(20); digitalWrite(TFT_RST, HIGH); } else writecommand(TFT_SWRST); // Software reset #else writecommand(TFT_SWRST); // Software reset #endif spi_end(); delay(150); // Wait for reset to complete spi_begin(); // This loads the driver specific initialisation code <<<<<<<<<<<<<<<<<<<<< // ADD NEW DRIVERS TO THE LIST HERE <<<<<<<<<<<<<<<<<<<<<<< #if defined(ILI9341_DRIVER) #include "ILI9341_Init.h" #elif defined(ST7735_DRIVER) tabcolor = tc; #include "ST7735_Init.h" #elif defined(ILI9163_DRIVER) #include "ILI9163_Init.h" #elif defined(S6D02A1_DRIVER) #include "S6D02A1_Init.h" #elif defined(RPI_ILI9486_DRIVER) #include "ILI9486_Init.h" #elif defined(ILI9486_DRIVER) #include "ILI9486_Init.h" #elif defined(ILI9481_DRIVER) #include "ILI9481_Init.h" #elif defined(ILI9488_DRIVER) #include "ILI9488_Init.h" #elif defined(HX8357D_DRIVER) #include "HX8357D_Init.h" #elif defined(ST7789_DRIVER) #include "ST7789_Init.h" #elif defined(R61581_DRIVER) #include "R61581_Init.h" #endif #ifdef TFT_INVERSION_ON writecommand(TFT_INVON); #endif #ifdef TFT_INVERSION_OFF writecommand(TFT_INVOFF); #endif spi_end(); setRotation(rotation); #if defined(TFT_BL) && defined(TFT_BACKLIGHT_ON) digitalWrite(TFT_BL, TFT_BACKLIGHT_ON); pinMode(TFT_BL, OUTPUT); #else #if defined(TFT_BL) && defined(M5STACK) // Turn on the back-light LED digitalWrite(TFT_BL, HIGH); pinMode(TFT_BL, OUTPUT); #endif #endif } /*************************************************************************************** ** Function name: setRotation ** Description: rotate the screen orientation m = 0-3 or 4-7 for BMP *drawing ***************************************************************************************/ void TFT_eSPI::setRotation(uint8_t m) { spi_begin(); // This loads the driver specific rotation code <<<<<<<<<<<<<<<<<<<<< ADD // NEW DRIVERS TO THE LIST HERE <<<<<<<<<<<<<<<<<<<<<<< #if defined(ILI9341_DRIVER) #include "ILI9341_Rotation.h" #elif defined(ST7735_DRIVER) #include "ST7735_Rotation.h" #elif defined(ILI9163_DRIVER) #include "ILI9163_Rotation.h" #elif defined(S6D02A1_DRIVER) #include "S6D02A1_Rotation.h" #elif defined(RPI_ILI9486_DRIVER) #include "ILI9486_Rotation.h" #elif defined(ILI9486_DRIVER) #include "ILI9486_Rotation.h" #elif defined(ILI9481_DRIVER) #include "ILI9481_Rotation.h" #elif defined(ILI9488_DRIVER) #include "ILI9488_Rotation.h" #elif defined(HX8357D_DRIVER) #include "HX8357D_Rotation.h" #elif defined(ST7789_DRIVER) #include "ST7789_Rotation.h" #elif defined(R61581_DRIVER) #include "R61581_Rotation.h" #endif delayMicroseconds(10); spi_end(); addr_row = 0xFFFF; addr_col = 0xFFFF; } /*************************************************************************************** ** Function name: commandList, used for FLASH based lists only (e.g. *ST7735) ** Description: Get initialisation commands from FLASH and send to *TFT ***************************************************************************************/ void TFT_eSPI::commandList(const uint8_t *addr) { uint8_t numCommands; uint8_t numArgs; uint8_t ms; numCommands = pgm_read_byte(addr++); // Number of commands to follow while (numCommands--) // For each command... { writecommand(pgm_read_byte(addr++)); // Read, issue command numArgs = pgm_read_byte(addr++); // Number of args to follow ms = numArgs & TFT_INIT_DELAY; // If hibit set, delay follows args numArgs &= ~TFT_INIT_DELAY; // Mask out delay bit while (numArgs--) // For each argument... { writedata(pgm_read_byte(addr++)); // Read, issue argument } if (ms) { ms = pgm_read_byte(addr++); // Read post-command delay time (ms) delay((ms == 255 ? 500 : ms)); } } } /*************************************************************************************** ** Function name: spiwrite ** Description: Write 8 bits to SPI port (legacy support only) ***************************************************************************************/ void TFT_eSPI::spiwrite(uint8_t c) { tft_Write_8(c); } /*************************************************************************************** ** Function name: writecommand ** Description: Send an 8 bit command to the TFT ***************************************************************************************/ void TFT_eSPI::writecommand(uint8_t c) { spi_begin(); // CS_L; DC_C; tft_Write_8(c); DC_D; spi_end(); // CS_H; } /*************************************************************************************** ** Function name: writedata ** Description: Send a 8 bit data value to the TFT ***************************************************************************************/ void TFT_eSPI::writedata(uint8_t d) { spi_begin(); // CS_L; DC_D; // Play safe, but should already be in data mode tft_Write_8(d); CS_L; // Allow more hold time for low VDI rail spi_end(); // CS_H; } /*************************************************************************************** ** Function name: readcommand8 ** Description: Read a 8 bit data value from an indexed command *register ***************************************************************************************/ uint8_t TFT_eSPI::readcommand8(uint8_t cmd_function, uint8_t index) { uint8_t reg = 0; #ifdef ESP32_PARALLEL writecommand(cmd_function); // Sets DC and CS high busDir(dir_mask, INPUT); CS_L; // Read nth parameter (assumes caller discards 1st parameter or points index // to 2nd) while (index--) reg = readByte(); busDir(dir_mask, OUTPUT); CS_H; #else // for ILI9341 Interface II i.e. IM [3:0] = "1101" spi_begin_read(); index = 0x10 + (index & 0x0F); DC_C; tft_Write_8(0xD9); DC_D; tft_Write_8(index); CS_H; // Some displays seem to need CS to be pulsed here, or is just a // delay needed? CS_L; DC_C; tft_Write_8(cmd_function); DC_D; reg = tft_Read_8(); spi_end_read(); #endif return reg; } /*************************************************************************************** ** Function name: readcommand16 ** Description: Read a 16 bit data value from an indexed command *register ***************************************************************************************/ uint16_t TFT_eSPI::readcommand16(uint8_t cmd_function, uint8_t index) { uint32_t reg; reg = (readcommand8(cmd_function, index + 0) << 8); reg |= (readcommand8(cmd_function, index + 1) << 0); return reg; } /*************************************************************************************** ** Function name: readcommand32 ** Description: Read a 32 bit data value from an indexed command *register ***************************************************************************************/ uint32_t TFT_eSPI::readcommand32(uint8_t cmd_function, uint8_t index) { uint32_t reg; reg = (readcommand8(cmd_function, index + 0) << 24); reg |= (readcommand8(cmd_function, index + 1) << 16); reg |= (readcommand8(cmd_function, index + 2) << 8); reg |= (readcommand8(cmd_function, index + 3) << 0); return reg; } /*************************************************************************************** ** Function name: read pixel (for SPI Interface II i.e. IM [3:0] = *"1101") ** Description: Read 565 pixel colours from a pixel ***************************************************************************************/ uint16_t TFT_eSPI::readPixel(int32_t x0, int32_t y0) { #if defined(ESP32_PARALLEL) readAddrWindow(x0, y0, 1, 1); // Sets CS low // Set masked pins D0- D7 to input busDir(dir_mask, INPUT); // Dummy read to throw away don't care value readByte(); // Fetch the 16 bit BRG pixel // uint16_t rgb = (readByte() << 8) | readByte(); #if defined(ILI9341_DRIVER) | defined(ILI9488_DRIVER) // Read 3 bytes // Read window pixel 24 bit RGB values and fill in LS bits uint16_t rgb = ((readByte() & 0xF8) << 8) | ((readByte() & 0xFC) << 3) | (readByte() >> 3); CS_H; // Set masked pins D0- D7 to output busDir(dir_mask, OUTPUT); return rgb; #else // ILI9481 16 bit read // Fetch the 16 bit BRG pixel uint16_t bgr = (readByte() << 8) | readByte(); CS_H; // Set masked pins D0- D7 to output busDir(dir_mask, OUTPUT); // Swap Red and Blue (could check MADCTL setting to see if this is needed) return (bgr >> 11) | (bgr << 11) | (bgr & 0x7E0); #endif #else // Not ESP32_PARALLEL spi_begin_read(); readAddrWindow(x0, y0, 1, 1); // Sets CS low #ifdef TFT_SDA_READ begin_SDA_Read(); #endif // Dummy read to throw away don't care value tft_Read_8(); //#if !defined (ILI9488_DRIVER) // Read the 3 RGB bytes, colour is actually only in the top 6 bits of each // byte as the TFT stores colours as 18 bits uint8_t r = tft_Read_8(); uint8_t g = tft_Read_8(); uint8_t b = tft_Read_8(); /* #else // The 6 colour bits are in MS 6 bits of each byte, but the ILI9488 needs an extra clock pulse // so bits appear shifted right 1 bit, so mask the middle 6 bits then shift 1 place left uint8_t r = (tft_Read_8()&0x7E)<<1; uint8_t g = (tft_Read_8()&0x7E)<<1; uint8_t b = (tft_Read_8()&0x7E)<<1; #endif */ CS_H; #ifdef TFT_SDA_READ end_SDA_Read(); #endif spi_end_read(); return color565(r, g, b); #endif } /*************************************************************************************** ** Function name: read byte - supports class functions ** Description: Read a byte from ESP32 8 bit data port ***************************************************************************************/ // Bus MUST be set to input before calling this function! uint8_t readByte(void) { uint8_t b = 0; #ifdef ESP32_PARALLEL RD_L; uint32_t reg; // Read all GPIO pins 0-31 reg = gpio_input_get(); // Read three times to allow for bus access time reg = gpio_input_get(); reg = gpio_input_get(); // Data should be stable now RD_H; // Check GPIO bits used and build value b = (((reg >> TFT_D0) & 1) << 0); b |= (((reg >> TFT_D1) & 1) << 1); b |= (((reg >> TFT_D2) & 1) << 2); b |= (((reg >> TFT_D3) & 1) << 3); b |= (((reg >> TFT_D4) & 1) << 4); b |= (((reg >> TFT_D5) & 1) << 5); b |= (((reg >> TFT_D6) & 1) << 6); b |= (((reg >> TFT_D7) & 1) << 7); #endif return b; } /*************************************************************************************** ** Function name: masked GPIO direction control - supports class *functions ** Description: Set masked ESP32 GPIO pins to input or output ***************************************************************************************/ void busDir(uint32_t mask, uint8_t mode) { #ifdef ESP32_PARALLEL // Supports GPIO 0 - 31 on ESP32 only gpio_config_t gpio; gpio.pin_bit_mask = mask; gpio.mode = GPIO_MODE_INPUT; gpio.pull_up_en = GPIO_PULLUP_ENABLE; gpio.pull_down_en = GPIO_PULLDOWN_DISABLE; gpio.intr_type = GPIO_INTR_DISABLE; if (mode == OUTPUT) gpio.mode = GPIO_MODE_OUTPUT; gpio_config(&gpio); #endif } /*************************************************************************************** ** Function name: read rectangle (for SPI Interface II i.e. IM [3:0] = *"1101") ** Description: Read 565 pixel colours from a defined area ***************************************************************************************/ void TFT_eSPI::readRect(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t *data) { if ((x > _width) || (y > _height) || (w == 0) || (h == 0)) return; #if defined(ESP32_PARALLEL) readAddrWindow(x, y, w, h); // Sets CS low // Set masked pins D0- D7 to input busDir(dir_mask, INPUT); // Dummy read to throw away don't care value readByte(); // Total pixel count uint32_t len = w * h; #if defined(ILI9341_DRIVER) | defined(ILI9488_DRIVER) // Read 3 bytes // Fetch the 24 bit RGB value while (len--) { // Assemble the RGB 16 bit colour uint16_t rgb = ((readByte() & 0xF8) << 8) | ((readByte() & 0xFC) << 3) | (readByte() >> 3); // Swapped byte order for compatibility with pushRect() *data++ = (rgb << 8) | (rgb >> 8); } #else // ILI9481 reads as 16 bits // Fetch the 16 bit BRG pixels while (len--) { // Read the BRG 16 bit colour uint16_t bgr = (readByte() << 8) | readByte(); // Swap Red and Blue (could check MADCTL setting to see if this is // needed) uint16_t rgb = (bgr >> 11) | (bgr << 11) | (bgr & 0x7E0); // Swapped byte order for compatibility with pushRect() *data++ = (rgb << 8) | (rgb >> 8); } #endif CS_H; // Set masked pins D0- D7 to output busDir(dir_mask, OUTPUT); #else // Not ESP32_PARALLEL spi_begin_read(); readAddrWindow(x, y, w, h); // Sets CS low #ifdef TFT_SDA_READ begin_SDA_Read(); #endif // Dummy read to throw away don't care value tft_Read_8(); // Read window pixel 24 bit RGB values uint32_t len = w * h; while (len--) { #if !defined(ILI9488_DRIVER) // Read the 3 RGB bytes, colour is actually only in the top 6 bits of // each byte as the TFT stores colours as 18 bits uint8_t r = tft_Read_8(); uint8_t g = tft_Read_8(); uint8_t b = tft_Read_8(); #else // The 6 colour bits are in LS 6 bits of each byte but we do not include // the extra clock pulse so we use a trick and mask the middle 6 bits of // the byte, then only shift 1 place left uint8_t r = (tft_Read_8() & 0x7E) << 1; uint8_t g = (tft_Read_8() & 0x7E) << 1; uint8_t b = (tft_Read_8() & 0x7E) << 1; #endif // Swapped colour byte order for compatibility with pushRect() *data++ = (r & 0xF8) | (g & 0xE0) >> 5 | (b & 0xF8) << 5 | (g & 0x1C) << 11; } CS_H; #ifdef TFT_SDA_READ end_SDA_Read(); #endif spi_end_read(); #endif } /*************************************************************************************** ** Function name: tft_Read_8 ** Description: Software SPI to read bidirectional SDA line ***************************************************************************************/ #if defined(ESP8266) && defined(TFT_SDA_READ) uint8_t TFT_eSPI::tft_Read_8(void) { uint8_t ret = 0; uint32_t reg = 0; for (uint8_t i = 0; i < 8; i++) { // read results ret <<= 1; SCLK_L; if (digitalRead(TFT_MOSI)) ret |= 1; SCLK_H; } return ret; } #endif /*************************************************************************************** ** Function name: beginSDA ** Description: Detach SPI from pin to permit software SPI ***************************************************************************************/ #ifdef TFT_SDA_READ void TFT_eSPI::begin_SDA_Read(void) { #ifdef ESP32 pinMatrixOutDetach(TFT_MOSI, false, false); pinMode(TFT_MOSI, INPUT); pinMatrixInAttach(TFT_MOSI, VSPIQ_IN_IDX, false); #else // ESP8266 #ifdef TFT_SPI_OVERLAP // Reads in overlap mode not supported #else spi.end(); #endif #endif } #endif /*************************************************************************************** ** Function name: endSDA ** Description: Attach SPI pins after software SPI ***************************************************************************************/ #ifdef TFT_SDA_READ void TFT_eSPI::end_SDA_Read(void) { #ifdef ESP32 pinMode(TFT_MOSI, OUTPUT); pinMatrixOutAttach(TFT_MOSI, VSPID_OUT_IDX, false, false); pinMode(TFT_MISO, INPUT); pinMatrixInAttach(TFT_MISO, VSPIQ_IN_IDX, false); #else #ifdef TFT_SPI_OVERLAP spi.pins(6, 7, 8, 0); #else spi.begin(); #endif #endif } #endif /*************************************************************************************** ** Function name: push rectangle (for SPI Interface II i.e. IM [3:0] = *"1101") ** Description: push 565 pixel colours into a defined area ***************************************************************************************/ void TFT_eSPI::pushRect(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t *data) { // Function deprecated, remains for backwards compatibility // pushImage() is better as it will crop partly off-screen image blocks pushImage(x, y, w, h, data); } /*************************************************************************************** ** Function name: pushImage ** Description: plot 16 bit colour sprite or image onto TFT ***************************************************************************************/ void TFT_eSPI::pushImage(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t *data) { if ((x >= _width) || (y >= _height)) return; int32_t dx = 0; int32_t dy = 0; int32_t dw = w; int32_t dh = h; if (x < 0) { dw += x; dx = -x; x = 0; } if (y < 0) { dh += y; dy = -y; y = 0; } if ((x + w) > _width) dw = _width - x; if ((y + h) > _height) dh = _height - y; if (dw < 1 || dh < 1) return; spi_begin(); inTransaction = true; setWindow(x, y, x + dw - 1, y + dh - 1); data += dx + dy * w; while (dh--) { pushColors(data, dw, _swapBytes); data += w; } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: pushImage ** Description: plot 16 bit sprite or image with 1 colour being *transparent ***************************************************************************************/ void TFT_eSPI::pushImage(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t *data, uint16_t transp) { if ((x >= _width) || (y >= _height)) return; int32_t dx = 0; int32_t dy = 0; int32_t dw = w; int32_t dh = h; if (x < 0) { dw += x; dx = -x; x = 0; } if (y < 0) { dh += y; dy = -y; y = 0; } if ((x + w) > _width) dw = _width - x; if ((y + h) > _height) dh = _height - y; if (dw < 1 || dh < 1) return; spi_begin(); inTransaction = true; data += dx + dy * w; int32_t xe = x + dw - 1, ye = y + dh - 1; uint16_t lineBuf[dw]; if (!_swapBytes) transp = transp >> 8 | transp << 8; while (dh--) { int32_t len = dw; uint16_t *ptr = data; int32_t px = x; boolean move = true; uint16_t np = 0; while (len--) { if (transp != *ptr) { if (move) { move = false; setWindow(px, y, xe, ye); } lineBuf[np] = *ptr; np++; } else { move = true; if (np) { pushColors((uint16_t *)lineBuf, np, _swapBytes); np = 0; } } px++; ptr++; } if (np) pushColors((uint16_t *)lineBuf, np, _swapBytes); y++; data += w; } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: pushImage - for FLASH (PROGMEM) stored images ** Description: plot 16 bit image ***************************************************************************************/ void TFT_eSPI::pushImage(int32_t x, int32_t y, int32_t w, int32_t h, const uint16_t *data) { #ifdef ESP32 pushImage(x, y, w, h, (uint16_t *)data); #else // Partitioned memory FLASH processor if ((x >= _width) || (y >= _height)) return; int32_t dx = 0; int32_t dy = 0; int32_t dw = w; int32_t dh = h; if (x < 0) { dw += x; dx = -x; x = 0; } if (y < 0) { dh += y; dy = -y; y = 0; } if ((x + w) > _width) dw = _width - x; if ((y + h) > _height) dh = _height - y; if (dw < 1 || dh < 1) return; spi_begin(); inTransaction = true; data += dx + dy * w; uint16_t buffer[64]; uint16_t *pix_buffer = buffer; setWindow(x, y, x + dw - 1, y + dh - 1); // Work out the number whole buffers to send uint16_t nb = (dw * dh) / 64; // Fill and send "nb" buffers to TFT for (int32_t i = 0; i < nb; i++) { for (int32_t j = 0; j < 64; j++) { pix_buffer[j] = pgm_read_word(&data[i * 64 + j]); } pushColors(pix_buffer, 64, _swapBytes); } // Work out number of pixels not yet sent uint16_t np = (dw * dh) % 64; // Send any partial buffer left over if (np) { for (int32_t i = 0; i < np; i++) { pix_buffer[i] = pgm_read_word(&data[nb * 64 + i]); } pushColors(pix_buffer, np, _swapBytes); } inTransaction = false; spi_end(); #endif // if ESP32 else ESP8266 check } /*************************************************************************************** ** Function name: pushImage - for FLASH (PROGMEM) stored images ** Description: plot 16 bit image with 1 colour being transparent ***************************************************************************************/ void TFT_eSPI::pushImage(int32_t x, int32_t y, int32_t w, int32_t h, const uint16_t *data, uint16_t transp) { #ifdef ESP32 pushImage(x, y, w, h, (uint16_t *)data, transp); #else // Partitioned memory FLASH processor if ((x >= _width) || (y >= (int32_t)_height)) return; int32_t dx = 0; int32_t dy = 0; int32_t dw = w; int32_t dh = h; if (x < 0) { dw += x; dx = -x; x = 0; } if (y < 0) { dh += y; dy = -y; y = 0; } if ((x + w) > _width) dw = _width - x; if ((y + h) > _height) dh = _height - y; if (dw < 1 || dh < 1) return; spi_begin(); inTransaction = true; data += dx + dy * w; int32_t xe = x + dw - 1, ye = y + dh - 1; uint16_t lineBuf[dw]; if (!_swapBytes) transp = transp >> 8 | transp << 8; while (dh--) { int32_t len = dw; uint16_t *ptr = (uint16_t *)data; int32_t px = x; boolean move = true; uint16_t np = 0; while (len--) { uint16_t color = pgm_read_word(ptr); if (transp != color) { if (move) { move = false; setWindow(px, y, xe, ye); } lineBuf[np] = color; np++; } else { move = true; if (np) { pushColors(lineBuf, np, _swapBytes); np = 0; } } px++; ptr++; } if (np) pushColors(lineBuf, np, _swapBytes); y++; data += w; } inTransaction = false; spi_end(); #endif // if ESP32 else ESP8266 check } /*************************************************************************************** ** Function name: pushImage ** Description: plot 8 bit image or sprite using a line buffer ***************************************************************************************/ void TFT_eSPI::pushImage(int32_t x, int32_t y, int32_t w, int32_t h, uint8_t *data, bool bpp8) { if ((x >= _width) || (y >= (int32_t)_height)) return; int32_t dx = 0; int32_t dy = 0; int32_t dw = w; int32_t dh = h; if (x < 0) { dw += x; dx = -x; x = 0; } if (y < 0) { dh += y; dy = -y; y = 0; } if ((x + w) > _width) dw = _width - x; if ((y + h) > _height) dh = _height - y; if (dw < 1 || dh < 1) return; spi_begin(); inTransaction = true; setWindow(x, y, x + dw - 1, y + dh - 1); // Sets CS low and sent RAMWR // Line buffer makes plotting faster uint16_t lineBuf[dw]; if (bpp8) { uint8_t blue[] = {0, 11, 21, 31}; // blue 2 to 5 bit colour lookup table _lastColor = -1; // Set to illegal value // Used to store last shifted colour uint8_t msbColor = 0; uint8_t lsbColor = 0; data += dx + dy * w; while (dh--) { uint32_t len = dw; uint8_t *ptr = data; uint8_t *linePtr = (uint8_t *)lineBuf; while (len--) { uint32_t color = *ptr++; // Shifts are slow so check if colour has changed first if (color != _lastColor) { // =====Green===== ===============Red============== msbColor = (color & 0x1C) >> 2 | (color & 0xC0) >> 3 | (color & 0xE0); // =====Green===== =======Blue====== lsbColor = (color & 0x1C) << 3 | blue[color & 0x03]; _lastColor = color; } *linePtr++ = msbColor; *linePtr++ = lsbColor; } pushColors(lineBuf, dw, false); data += w; } } else { while (dh--) { w = (w + 7) & 0xFFF8; int32_t len = dw; uint8_t *ptr = data; uint8_t *linePtr = (uint8_t *)lineBuf; uint8_t bits = 8; while (len > 0) { if (len < 8) bits = len; uint32_t xp = dx; for (uint16_t i = 0; i < bits; i++) { uint8_t col = (ptr[(xp + dy * w) >> 3] << (xp & 0x7)) & 0x80; if (col) { *linePtr++ = bitmap_fg >> 8; *linePtr++ = (uint8_t)bitmap_fg; } else { *linePtr++ = bitmap_bg >> 8; *linePtr++ = (uint8_t)bitmap_bg; } // if (col) drawPixel((dw-len)+xp,h-dh,bitmap_fg); // else drawPixel((dw-len)+xp,h-dh,bitmap_bg); xp++; } ptr++; len -= 8; } pushColors(lineBuf, dw, false); dy++; } } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: pushImage ** Description: plot 8 or 1 bit image or sprite with a transparent *colour ***************************************************************************************/ void TFT_eSPI::pushImage(int32_t x, int32_t y, int32_t w, int32_t h, uint8_t *data, uint8_t transp, bool bpp8) { if ((x >= _width) || (y >= _height)) return; int32_t dx = 0; int32_t dy = 0; int32_t dw = w; int32_t dh = h; if (x < 0) { dw += x; dx = -x; x = 0; } if (y < 0) { dh += y; dy = -y; y = 0; } if ((x + w) > _width) dw = _width - x; if ((y + h) > _height) dh = _height - y; if (dw < 1 || dh < 1) return; spi_begin(); inTransaction = true; int32_t xe = x + dw - 1, ye = y + dh - 1; // Line buffer makes plotting faster uint16_t lineBuf[dw]; if (bpp8) { data += dx + dy * w; uint8_t blue[] = {0, 11, 21, 31}; // blue 2 to 5 bit colour lookup table _lastColor = -1; // Set to illegal value // Used to store last shifted colour uint8_t msbColor = 0; uint8_t lsbColor = 0; // int32_t spx = x, spy = y; while (dh--) { int32_t len = dw; uint8_t *ptr = data; uint8_t *linePtr = (uint8_t *)lineBuf; int32_t px = x; boolean move = true; uint16_t np = 0; while (len--) { if (transp != *ptr) { if (move) { move = false; setWindow(px, y, xe, ye); } uint8_t color = *ptr; // Shifts are slow so check if colour has changed first if (color != _lastColor) { // =====Green===== // ===============Red============== msbColor = (color & 0x1C) >> 2 | (color & 0xC0) >> 3 | (color & 0xE0); // =====Green===== =======Blue====== lsbColor = (color & 0x1C) << 3 | blue[color & 0x03]; _lastColor = color; } *linePtr++ = msbColor; *linePtr++ = lsbColor; np++; } else { move = true; if (np) { pushColors(lineBuf, np, false); linePtr = (uint8_t *)lineBuf; np = 0; } } px++; ptr++; } if (np) pushColors(lineBuf, np, false); y++; data += w; } } else { w = (w + 7) & 0xFFF8; while (dh--) { int32_t px = x; boolean move = true; uint16_t np = 0; int32_t len = dw; uint8_t *ptr = data; uint8_t bits = 8; while (len > 0) { if (len < 8) bits = len; uint32_t xp = dx; uint32_t yp = (dy * w) >> 3; for (uint16_t i = 0; i < bits; i++) { // uint8_t col = (ptr[(xp + dy * w)>>3] << (xp & 0x7)) & // 0x80; if ((ptr[(xp >> 3) + yp] << (xp & 0x7)) & 0x80) { if (move) { move = false; setWindow(px, y, xe, ye); } np++; } else { if (np) { pushColor(bitmap_fg, np); np = 0; move = true; } } px++; xp++; } ptr++; len -= 8; } if (np) pushColor(bitmap_fg, np); y++; dy++; } } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: setSwapBytes ** Description: Used by 16 bit pushImage() to swap byte order in *colours ***************************************************************************************/ void TFT_eSPI::setSwapBytes(bool swap) { _swapBytes = swap; } /*************************************************************************************** ** Function name: getSwapBytes ** Description: Return the swap byte order for colours ***************************************************************************************/ bool TFT_eSPI::getSwapBytes(void) { return _swapBytes; } /*************************************************************************************** ** Function name: read rectangle (for SPI Interface II i.e. IM [3:0] = *"1101") ** Description: Read RGB pixel colours from a defined area ***************************************************************************************/ // If w and h are 1, then 1 pixel is read, *data array size must be 3 bytes per // pixel void TFT_eSPI::readRectRGB(int32_t x0, int32_t y0, int32_t w, int32_t h, uint8_t *data) { #if defined(ESP32_PARALLEL) // ESP32 parallel bus supported yet #else // Not ESP32_PARALLEL spi_begin_read(); readAddrWindow(x0, y0, w, h); // Sets CS low #ifdef TFT_SDA_READ begin_SDA_Read(); #endif // Dummy read to throw away don't care value tft_Read_8(); // Read window pixel 24 bit RGB values, buffer must be set in sketch to 3 * // w * h uint32_t len = w * h; while (len--) { #if !defined(ILI9488_DRIVER) // Read the 3 RGB bytes, colour is actually only in the top 6 bits of // each byte as the TFT stores colours as 18 bits *data++ = tft_Read_8(); *data++ = tft_Read_8(); *data++ = tft_Read_8(); #else // The 6 colour bits are in MS 6 bits of each byte, but the ILI9488 // needs an extra clock pulse so bits appear shifted right 1 bit, so // mask the middle 6 bits then shift 1 place left *data++ = (tft_Read_8() & 0x7E) << 1; *data++ = (tft_Read_8() & 0x7E) << 1; *data++ = (tft_Read_8() & 0x7E) << 1; #endif } CS_H; #ifdef TFT_SDA_READ end_SDA_Read(); #endif spi_end_read(); #endif } /*************************************************************************************** ** Function name: drawCircle ** Description: Draw a circle outline ***************************************************************************************/ // Optimised midpoint circle algorithm void TFT_eSPI::drawCircle(int32_t x0, int32_t y0, int32_t r, uint32_t color) { int32_t x = 0; int32_t dx = 1; int32_t dy = r + r; int32_t p = -(r >> 1); spi_begin(); inTransaction = true; // These are ordered to minimise coordinate changes in x or y // drawPixel can then send fewer bounding box commands drawPixel(x0 + r, y0, color); drawPixel(x0 - r, y0, color); drawPixel(x0, y0 - r, color); drawPixel(x0, y0 + r, color); while (x < r) { if (p >= 0) { dy -= 2; p -= dy; r--; } dx += 2; p += dx; x++; // These are ordered to minimise coordinate changes in x or y // drawPixel can then send fewer bounding box commands drawPixel(x0 + x, y0 + r, color); drawPixel(x0 - x, y0 + r, color); drawPixel(x0 - x, y0 - r, color); drawPixel(x0 + x, y0 - r, color); drawPixel(x0 + r, y0 + x, color); drawPixel(x0 - r, y0 + x, color); drawPixel(x0 - r, y0 - x, color); drawPixel(x0 + r, y0 - x, color); } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: drawCircleHelper ** Description: Support function for circle drawing ***************************************************************************************/ void TFT_eSPI::drawCircleHelper(int32_t x0, int32_t y0, int32_t r, uint8_t cornername, uint32_t color) { int32_t f = 1 - r; int32_t ddF_x = 1; int32_t ddF_y = -2 * r; int32_t x = 0; while (x < r) { if (f >= 0) { r--; ddF_y += 2; f += ddF_y; } x++; ddF_x += 2; f += ddF_x; if (cornername & 0x4) { drawPixel(x0 + x, y0 + r, color); drawPixel(x0 + r, y0 + x, color); } if (cornername & 0x2) { drawPixel(x0 + x, y0 - r, color); drawPixel(x0 + r, y0 - x, color); } if (cornername & 0x8) { drawPixel(x0 - r, y0 + x, color); drawPixel(x0 - x, y0 + r, color); } if (cornername & 0x1) { drawPixel(x0 - r, y0 - x, color); drawPixel(x0 - x, y0 - r, color); } } } /*************************************************************************************** ** Function name: fillCircle ** Description: draw a filled circle ***************************************************************************************/ // Optimised midpoint circle algorithm, changed to horizontal lines (faster in // sprites) void TFT_eSPI::fillCircle(int32_t x0, int32_t y0, int32_t r, uint32_t color) { int32_t x = 0; int32_t dx = 1; int32_t dy = r + r; int32_t p = -(r >> 1); spi_begin(); inTransaction = true; drawFastHLine(x0 - r, y0, dy + 1, color); while (x < r) { if (p >= 0) { dy -= 2; p -= dy; r--; } dx += 2; p += dx; x++; drawFastHLine(x0 - r, y0 + x, 2 * r + 1, color); drawFastHLine(x0 - r, y0 - x, 2 * r + 1, color); drawFastHLine(x0 - x, y0 + r, 2 * x + 1, color); drawFastHLine(x0 - x, y0 - r, 2 * x + 1, color); } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: fillCircleHelper ** Description: Support function for filled circle drawing ***************************************************************************************/ // Used to support drawing roundrects, changed to horizontal lines (faster in // sprites) void TFT_eSPI::fillCircleHelper(int32_t x0, int32_t y0, int32_t r, uint8_t cornername, int32_t delta, uint32_t color) { int32_t f = 1 - r; int32_t ddF_x = 1; int32_t ddF_y = -r - r; int32_t y = 0; delta++; while (y < r) { if (f >= 0) { r--; ddF_y += 2; f += ddF_y; } y++; // x++; ddF_x += 2; f += ddF_x; if (cornername & 0x1) { drawFastHLine(x0 - r, y0 + y, r + r + delta, color); drawFastHLine(x0 - y, y0 + r, y + y + delta, color); } if (cornername & 0x2) { drawFastHLine(x0 - r, y0 - y, r + r + delta, color); // 11995, 1090 drawFastHLine(x0 - y, y0 - r, y + y + delta, color); } } } /*************************************************************************************** ** Function name: drawEllipse ** Description: Draw a ellipse outline ***************************************************************************************/ void TFT_eSPI::drawEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_t color) { if (rx < 2) return; if (ry < 2) return; int32_t x, y; int32_t rx2 = rx * rx; int32_t ry2 = ry * ry; int32_t fx2 = 4 * rx2; int32_t fy2 = 4 * ry2; int32_t s; spi_begin(); inTransaction = true; for (x = 0, y = ry, s = 2 * ry2 + rx2 * (1 - 2 * ry); ry2 * x <= rx2 * y; x++) { // These are ordered to minimise coordinate changes in x or y // drawPixel can then send fewer bounding box commands drawPixel(x0 + x, y0 + y, color); drawPixel(x0 - x, y0 + y, color); drawPixel(x0 - x, y0 - y, color); drawPixel(x0 + x, y0 - y, color); if (s >= 0) { s += fx2 * (1 - y); y--; } s += ry2 * ((4 * x) + 6); } for (x = rx, y = 0, s = 2 * rx2 + ry2 * (1 - 2 * rx); rx2 * y <= ry2 * x; y++) { // These are ordered to minimise coordinate changes in x or y // drawPixel can then send fewer bounding box commands drawPixel(x0 + x, y0 + y, color); drawPixel(x0 - x, y0 + y, color); drawPixel(x0 - x, y0 - y, color); drawPixel(x0 + x, y0 - y, color); if (s >= 0) { s += fy2 * (1 - x); x--; } s += rx2 * ((4 * y) + 6); } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: fillEllipse ** Description: draw a filled ellipse ***************************************************************************************/ void TFT_eSPI::fillEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_t color) { if (rx < 2) return; if (ry < 2) return; int32_t x, y; int32_t rx2 = rx * rx; int32_t ry2 = ry * ry; int32_t fx2 = 4 * rx2; int32_t fy2 = 4 * ry2; int32_t s; spi_begin(); inTransaction = true; for (x = 0, y = ry, s = 2 * ry2 + rx2 * (1 - 2 * ry); ry2 * x <= rx2 * y; x++) { drawFastHLine(x0 - x, y0 - y, x + x + 1, color); drawFastHLine(x0 - x, y0 + y, x + x + 1, color); if (s >= 0) { s += fx2 * (1 - y); y--; } s += ry2 * ((4 * x) + 6); } for (x = rx, y = 0, s = 2 * rx2 + ry2 * (1 - 2 * rx); rx2 * y <= ry2 * x; y++) { drawFastHLine(x0 - x, y0 - y, x + x + 1, color); drawFastHLine(x0 - x, y0 + y, x + x + 1, color); if (s >= 0) { s += fy2 * (1 - x); x--; } s += rx2 * ((4 * y) + 6); } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: fillScreen ** Description: Clear the screen to defined colour ***************************************************************************************/ void TFT_eSPI::fillScreen(uint32_t color) { fillRect(0, 0, _width, _height, color); } /*************************************************************************************** ** Function name: drawRect ** Description: Draw a rectangle outline ***************************************************************************************/ // Draw a rectangle void TFT_eSPI::drawRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color) { spi_begin(); inTransaction = true; drawFastHLine(x, y, w, color); drawFastHLine(x, y + h - 1, w, color); // Avoid drawing corner pixels twice drawFastVLine(x, y + 1, h - 2, color); drawFastVLine(x + w - 1, y + 1, h - 2, color); inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: drawRoundRect ** Description: Draw a rounded corner rectangle outline ***************************************************************************************/ // Draw a rounded rectangle void TFT_eSPI::drawRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t r, uint32_t color) { spi_begin(); inTransaction = true; // smarter version drawFastHLine(x + r, y, w - r - r, color); // Top drawFastHLine(x + r, y + h - 1, w - r - r, color); // Bottom drawFastVLine(x, y + r, h - r - r, color); // Left drawFastVLine(x + w - 1, y + r, h - r - r, color); // Right // draw four corners drawCircleHelper(x + r, y + r, r, 1, color); drawCircleHelper(x + w - r - 1, y + r, r, 2, color); drawCircleHelper(x + w - r - 1, y + h - r - 1, r, 4, color); drawCircleHelper(x + r, y + h - r - 1, r, 8, color); inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: fillRoundRect ** Description: Draw a rounded corner filled rectangle ***************************************************************************************/ // Fill a rounded rectangle, changed to horizontal lines (faster in sprites) void TFT_eSPI::fillRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t r, uint32_t color) { spi_begin(); inTransaction = true; // smarter version fillRect(x, y + r, w, h - r - r, color); // draw four corners fillCircleHelper(x + r, y + h - r - 1, r, 1, w - r - r - 1, color); fillCircleHelper(x + r, y + r, r, 2, w - r - r - 1, color); inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: drawTriangle ** Description: Draw a triangle outline using 3 arbitrary points ***************************************************************************************/ // Draw a triangle void TFT_eSPI::drawTriangle(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t x2, int32_t y2, uint32_t color) { spi_begin(); inTransaction = true; drawLine(x0, y0, x1, y1, color); drawLine(x1, y1, x2, y2, color); drawLine(x2, y2, x0, y0, color); inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: fillTriangle ** Description: Draw a filled triangle using 3 arbitrary points ***************************************************************************************/ // Fill a triangle - original Adafruit function works well and code footprint is // small void TFT_eSPI::fillTriangle(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t x2, int32_t y2, uint32_t color) { int32_t a, b, y, last; // Sort coordinates by Y order (y2 >= y1 >= y0) if (y0 > y1) { swap_coord(y0, y1); swap_coord(x0, x1); } if (y1 > y2) { swap_coord(y2, y1); swap_coord(x2, x1); } if (y0 > y1) { swap_coord(y0, y1); swap_coord(x0, x1); } if (y0 == y2) { // Handle awkward all-on-same-line case as its own thing a = b = x0; if (x1 < a) a = x1; else if (x1 > b) b = x1; if (x2 < a) a = x2; else if (x2 > b) b = x2; drawFastHLine(a, y0, b - a + 1, color); return; } spi_begin(); inTransaction = true; int32_t dx01 = x1 - x0, dy01 = y1 - y0, dx02 = x2 - x0, dy02 = y2 - y0, dx12 = x2 - x1, dy12 = y2 - y1, sa = 0, sb = 0; // For upper part of triangle, find scanline crossings for segments // 0-1 and 0-2. If y1=y2 (flat-bottomed triangle), the scanline y1 // is included here (and second loop will be skipped, avoiding a /0 // error there), otherwise scanline y1 is skipped here and handled // in the second loop...which also avoids a /0 error here if y0=y1 // (flat-topped triangle). if (y1 == y2) last = y1; // Include y1 scanline else last = y1 - 1; // Skip it for (y = y0; y <= last; y++) { a = x0 + sa / dy01; b = x0 + sb / dy02; sa += dx01; sb += dx02; if (a > b) swap_coord(a, b); drawFastHLine(a, y, b - a + 1, color); } // For lower part of triangle, find scanline crossings for segments // 0-2 and 1-2. This loop is skipped if y1=y2. sa = dx12 * (y - y1); sb = dx02 * (y - y0); for (; y <= y2; y++) { a = x1 + sa / dy12; b = x0 + sb / dy02; sa += dx12; sb += dx02; if (a > b) swap_coord(a, b); drawFastHLine(a, y, b - a + 1, color); } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: drawBitmap ** Description: Draw an image stored in an array on the TFT ***************************************************************************************/ void TFT_eSPI::drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color, uint16_t bgcolor) { spi_begin(); inTransaction = true; int32_t i, j, byteWidth = (w + 7) / 8; for (j = 0; j < h; j++) { for (i = 0; i < w; i++) { if (pgm_read_byte(bitmap + j * byteWidth + i / 8) & (128 >> (i & 7))) drawPixel(x + i, y + j, color); else drawPixel(x + i, y + j, bgcolor); } } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: drawXBitmap ** Description: Draw an image stored in an XBM array onto the TFT ***************************************************************************************/ void TFT_eSPI::drawXBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color) { spi_begin(); inTransaction = true; int32_t i, j, byteWidth = (w + 7) / 8; for (j = 0; j < h; j++) { for (i = 0; i < w; i++) { if (pgm_read_byte(bitmap + j * byteWidth + i / 8) & (1 << (i & 7))) { drawPixel(x + i, y + j, color); } } } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: drawXBitmap ** Description: Draw an XBM image with foreground and background *colors ***************************************************************************************/ void TFT_eSPI::drawXBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color, uint16_t bgcolor) { spi_begin(); inTransaction = true; int32_t i, j, byteWidth = (w + 7) / 8; for (j = 0; j < h; j++) { for (i = 0; i < w; i++) { if (pgm_read_byte(bitmap + j * byteWidth + i / 8) & (1 << (i & 7))) drawPixel(x + i, y + j, color); else drawPixel(x + i, y + j, bgcolor); } } inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: setCursor ** Description: Set the text cursor x,y position ***************************************************************************************/ void TFT_eSPI::setCursor(int16_t x, int16_t y) { cursor_x = x; cursor_y = y; } /*************************************************************************************** ** Function name: setCursor ** Description: Set the text cursor x,y position and font ***************************************************************************************/ void TFT_eSPI::setCursor(int16_t x, int16_t y, uint8_t font) { textfont = font; cursor_x = x; cursor_y = y; } /*************************************************************************************** ** Function name: getCursorX ** Description: Get the text cursor x position ***************************************************************************************/ int16_t TFT_eSPI::getCursorX(void) { return cursor_x; } /*************************************************************************************** ** Function name: getCursorY ** Description: Get the text cursor y position ***************************************************************************************/ int16_t TFT_eSPI::getCursorY(void) { return cursor_y; } /*************************************************************************************** ** Function name: setTextSize ** Description: Set the text size multiplier ***************************************************************************************/ void TFT_eSPI::setTextSize(uint8_t s) { if (s > 7) s = 7; // Limit the maximum size multiplier so byte variables can be // used for rendering textsize = (s > 0) ? s : 1; // Don't allow font size 0 } /*************************************************************************************** ** Function name: setTextColor ** Description: Set the font foreground colour (background is *transparent) ***************************************************************************************/ void TFT_eSPI::setTextColor(uint16_t c) { // For 'transparent' background, we'll set the bg // to the same as fg instead of using a flag textcolor = textbgcolor = c; } /*************************************************************************************** ** Function name: setTextColor ** Description: Set the font foreground and background colour ***************************************************************************************/ void TFT_eSPI::setTextColor(uint16_t c, uint16_t b) { textcolor = c; textbgcolor = b; } /*************************************************************************************** ** Function name: setPivot ** Description: Set the pivot point on the TFT *************************************************************************************x*/ void TFT_eSPI::setPivot(int16_t x, int16_t y) { _xpivot = x; _ypivot = y; } /*************************************************************************************** ** Function name: getPivotX ** Description: Get the x pivot position ***************************************************************************************/ int16_t TFT_eSPI::getPivotX(void) { return _xpivot; } /*************************************************************************************** ** Function name: getPivotY ** Description: Get the y pivot position ***************************************************************************************/ int16_t TFT_eSPI::getPivotY(void) { return _ypivot; } /*************************************************************************************** ** Function name: setBitmapColor ** Description: Set the foreground foreground and background colour ***************************************************************************************/ void TFT_eSPI::setBitmapColor(uint16_t c, uint16_t b) { if (c == b) b = ~c; bitmap_fg = c; bitmap_bg = b; } /*************************************************************************************** ** Function name: setTextWrap ** Description: Define if text should wrap at end of line ***************************************************************************************/ void TFT_eSPI::setTextWrap(boolean wrapX, boolean wrapY) { textwrapX = wrapX; textwrapY = wrapY; } /*************************************************************************************** ** Function name: setTextDatum ** Description: Set the text position reference datum ***************************************************************************************/ void TFT_eSPI::setTextDatum(uint8_t d) { textdatum = d; } /*************************************************************************************** ** Function name: setTextPadding ** Description: Define padding width (aids erasing old text and *numbers) ***************************************************************************************/ void TFT_eSPI::setTextPadding(uint16_t x_width) { padX = x_width; } /*************************************************************************************** ** Function name: getRotation ** Description: Return the rotation value (as used by setRotation()) ***************************************************************************************/ uint8_t TFT_eSPI::getRotation(void) { return rotation; } /*************************************************************************************** ** Function name: getTextDatum ** Description: Return the text datum value (as used by *setTextDatum()) ***************************************************************************************/ uint8_t TFT_eSPI::getTextDatum(void) { return textdatum; } /*************************************************************************************** ** Function name: width ** Description: Return the pixel width of display (per current *rotation) ***************************************************************************************/ // Return the size of the display (per current rotation) int16_t TFT_eSPI::width(void) { return _width; } /*************************************************************************************** ** Function name: height ** Description: Return the pixel height of display (per current *rotation) ***************************************************************************************/ int16_t TFT_eSPI::height(void) { return _height; } /*************************************************************************************** ** Function name: textWidth ** Description: Return the width in pixels of a string in a given *font ***************************************************************************************/ int16_t TFT_eSPI::textWidth(const String &string) { int16_t len = string.length() + 2; char buffer[len]; string.toCharArray(buffer, len); return textWidth(buffer, textfont); } int16_t TFT_eSPI::textWidth(const String &string, uint8_t font) { int16_t len = string.length() + 2; char buffer[len]; string.toCharArray(buffer, len); return textWidth(buffer, font); } int16_t TFT_eSPI::textWidth(const char *string) { return textWidth(string, textfont); } int16_t TFT_eSPI::textWidth(const char *string, uint8_t font) { int32_t str_width = 0; uint16_t uniCode = 0; #ifdef SMOOTH_FONT if (fontLoaded) { while (*string) { uniCode = decodeUTF8(*string++); if (uniCode) { if (uniCode == 0x20) str_width += gFont.spaceWidth; else { uint16_t gNum = 0; bool found = getUnicodeIndex(uniCode, &gNum); if (found) { if (str_width == 0 && gdX[gNum] < 0) str_width -= gdX[gNum]; if (*string || isDigits) str_width += gxAdvance[gNum]; else str_width += (gdX[gNum] + gWidth[gNum]); } else str_width += gFont.spaceWidth + 1; } } } isDigits = false; return str_width; } #endif if (font > 1 && font < 9) { char *widthtable = (char *)pgm_read_dword(&(fontdata[font].widthtbl)) - 32; // subtract the 32 outside the loop while (*string) { uniCode = *(string++); if (uniCode > 31 && uniCode < 128) str_width += pgm_read_byte( widthtable + uniCode); // Normally we need to subtract 32 from uniCode else str_width += pgm_read_byte( widthtable + 32); // Set illegal character = space width } } else { #ifdef LOAD_GFXFF if (gfxFont) // New font { while (*string) { uniCode = decodeUTF8(*string++); if ((uniCode >= pgm_read_word(&gfxFont->first)) && (uniCode <= pgm_read_word(&gfxFont->last))) { uniCode -= pgm_read_word(&gfxFont->first); GFXglyph *glyph = &( ((GFXglyph *)pgm_read_dword(&gfxFont->glyph))[uniCode]); // If this is not the last character or is a digit then use // xAdvance if (*string || isDigits) str_width += pgm_read_byte(&glyph->xAdvance); // Else use the offset plus width since this can be bigger // than xAdvance else str_width += ((int8_t)pgm_read_byte(&glyph->xOffset) + pgm_read_byte(&glyph->width)); } } } else #endif { #ifdef LOAD_GLCD while (*string++) str_width += 6; #endif } } isDigits = false; return str_width * textsize; } /*************************************************************************************** ** Function name: fontsLoaded ** Description: return an encoded 16 bit value showing the fonts *loaded ***************************************************************************************/ // Returns a value showing which fonts are loaded (bit N set = Font N loaded) uint16_t TFT_eSPI::fontsLoaded(void) { return fontsloaded; } /*************************************************************************************** ** Function name: fontHeight ** Description: return the height of a font (yAdvance for free *fonts) ***************************************************************************************/ int16_t TFT_eSPI::fontHeight(int16_t font) { #ifdef SMOOTH_FONT if (fontLoaded) return gFont.yAdvance; #endif #ifdef LOAD_GFXFF if (font == 1) { if (gfxFont) // New font { return pgm_read_byte(&gfxFont->yAdvance) * textsize; } } #endif return pgm_read_byte(&fontdata[font].height) * textsize; } int16_t TFT_eSPI::fontHeight(void) { return fontHeight(textfont); } /*************************************************************************************** ** Function name: drawChar ** Description: draw a single character in the Adafruit GLCD font ***************************************************************************************/ void TFT_eSPI::drawChar(int32_t x, int32_t y, uint16_t c, uint32_t color, uint32_t bg, uint8_t size) { if ((x >= _width) || // Clip right (y >= _height) || // Clip bottom ((x + 6 * size - 1) < 0) || // Clip left ((y + 8 * size - 1) < 0)) // Clip top return; if (c < 32) return; #ifdef LOAD_GLCD //>>>>>>>>>>>>>>>>>> #ifdef LOAD_GFXFF if (!gfxFont) { // 'Classic' built-in font #endif //>>>>>>>>>>>>>>>>>> boolean fillbg = (bg != color); if ((size == 1) && fillbg) { uint8_t column[6]; uint8_t mask = 0x1; spi_begin(); setWindow(x, y, x + 5, y + 8); for (int8_t i = 0; i < 5; i++) column[i] = pgm_read_byte(font + (c * 5) + i); column[5] = 0; #if defined(ESP8266) && !defined(ILI9488_DRIVER) color = (color >> 8) | (color << 8); bg = (bg >> 8) | (bg << 8); for (int8_t j = 0; j < 8; j++) { for (int8_t k = 0; k < 5; k++) { if (column[k] & mask) { SPI1W0 = color; } else { SPI1W0 = bg; } SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } } mask <<= 1; SPI1W0 = bg; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } } #else // for ESP32 or ILI9488 for (int8_t j = 0; j < 8; j++) { for (int8_t k = 0; k < 5; k++) { if (column[k] & mask) { tft_Write_16(color); } else { tft_Write_16(bg); } } mask <<= 1; tft_Write_16(bg); } #endif spi_end(); } else { spi_begin(); inTransaction = true; for (int8_t i = 0; i < 6; i++) { uint8_t line; if (i == 5) line = 0x0; else line = pgm_read_byte(font + (c * 5) + i); if (size == 1) // default size { for (int8_t j = 0; j < 8; j++) { if (line & 0x1) drawPixel(x + i, y + j, color); line >>= 1; } } else { // big size for (int8_t j = 0; j < 8; j++) { if (line & 0x1) fillRect(x + (i * size), y + (j * size), size, size, color); else if (fillbg) fillRect(x + i * size, y + j * size, size, size, bg); line >>= 1; } } } inTransaction = false; spi_end(); } //>>>>>>>>>>>>>>>>>>>>>>>>>>> #ifdef LOAD_GFXFF } else { // Custom font #endif //>>>>>>>>>>>>>>>>>>>>>>>>>>> #endif // LOAD_GLCD #ifdef LOAD_GFXFF // Filter out bad characters not present in font if ((c >= pgm_read_word(&gfxFont->first)) && (c <= pgm_read_word(&gfxFont->last))) { spi_begin(); inTransaction = true; //>>>>>>>>>>>>>>>>>>>>>>>>>>> c -= pgm_read_word(&gfxFont->first); GFXglyph *glyph = &(((GFXglyph *)pgm_read_dword(&gfxFont->glyph))[c]); uint8_t *bitmap = (uint8_t *)pgm_read_dword(&gfxFont->bitmap); uint32_t bo = pgm_read_word(&glyph->bitmapOffset); uint8_t w = pgm_read_byte(&glyph->width), h = pgm_read_byte(&glyph->height); // xa = pgm_read_byte(&glyph->xAdvance); int8_t xo = pgm_read_byte(&glyph->xOffset), yo = pgm_read_byte(&glyph->yOffset); uint8_t xx, yy, bits = 0, bit = 0; int16_t xo16 = 0, yo16 = 0; if (size > 1) { xo16 = xo; yo16 = yo; } // Here we have 3 versions of the same function just for evaluation // purposes Comment out the next two #defines to revert to the // slower Adafruit implementation // If FAST_LINE is defined then the free fonts are rendered using // horizontal lines this makes rendering fonts 2-5 times faster. // Particularly good for large fonts. This is an elegant solution // since it still uses generic functions present in the stock // library. // If FAST_SHIFT is defined then a slightly faster (at least for AVR // processors) shifting bit mask is used // Free fonts don't look good when the size multiplier is >1 so we // could remove code if this is not wanted and speed things up #define FAST_HLINE #define FAST_SHIFT // FIXED_SIZE is an option in User_Setup.h that only works with // FAST_LINE enabled #ifdef FIXED_SIZE x += xo; // Save 88 bytes of FLASH y += yo; #endif #ifdef FAST_HLINE #ifdef FAST_SHIFT uint16_t hpc = 0; // Horizontal foreground pixel count for (yy = 0; yy < h; yy++) { for (xx = 0; xx < w; xx++) { if (bit == 0) { bits = pgm_read_byte(&bitmap[bo++]); bit = 0x80; } if (bits & bit) hpc++; else { if (hpc) { #ifndef FIXED_SIZE if (size == 1) drawFastHLine(x + xo + xx - hpc, y + yo + yy, hpc, color); else fillRect(x + (xo16 + xx - hpc) * size, y + (yo16 + yy) * size, size * hpc, size, color); #else drawFastHLine(x + xx - hpc, y + yy, hpc, color); #endif hpc = 0; } } bit >>= 1; } // Draw pixels for this line as we are about to increment yy if (hpc) { #ifndef FIXED_SIZE if (size == 1) drawFastHLine(x + xo + xx - hpc, y + yo + yy, hpc, color); else fillRect(x + (xo16 + xx - hpc) * size, y + (yo16 + yy) * size, size * hpc, size, color); #else drawFastHLine(x + xx - hpc, y + yy, hpc, color); #endif hpc = 0; } } #else uint16_t hpc = 0; // Horizontal foreground pixel count for (yy = 0; yy < h; yy++) { for (xx = 0; xx < w; xx++) { if (!(bit++ & 7)) { bits = pgm_read_byte(&bitmap[bo++]); } if (bits & 0x80) hpc++; else { if (hpc) { if (size == 1) drawFastHLine(x + xo + xx - hpc, y + yo + yy, hpc, color); else fillRect(x + (xo16 + xx - hpc) * size, y + (yo16 + yy) * size, size * hpc, size, color); hpc = 0; } } bits <<= 1; } // Draw pixels for this line as we are about to increment yy if (hpc) { if (size == 1) drawFastHLine(x + xo + xx - hpc, y + yo + yy, hpc, color); else fillRect(x + (xo16 + xx - hpc) * size, y + (yo16 + yy) * size, size * hpc, size, color); hpc = 0; } } #endif #else for (yy = 0; yy < h; yy++) { for (xx = 0; xx < w; xx++) { if (!(bit++ & 7)) { bits = pgm_read_byte(&bitmap[bo++]); } if (bits & 0x80) { if (size == 1) { drawPixel(x + xo + xx, y + yo + yy, color); } else { fillRect(x + (xo16 + xx) * size, y + (yo16 + yy) * size, size, size, color); } } bits <<= 1; } } #endif inTransaction = false; spi_end(); } #endif #ifdef LOAD_GLCD #ifdef LOAD_GFXFF } // End classic vs custom font #endif #endif } /*************************************************************************************** ** Function name: setAddrWindow ** Description: define an area to receive a stream of pixels ***************************************************************************************/ // Chip select is high at the end of this function void TFT_eSPI::setAddrWindow(int32_t x0, int32_t y0, int32_t w, int32_t h) { spi_begin(); setWindow(x0, y0, x0 + w - 1, y0 + h - 1); spi_end(); } /*************************************************************************************** ** Function name: setWindow ** Description: define an area to receive a stream of pixels ***************************************************************************************/ // Chip select stays low, call spi_begin first. Use setAddrWindow() from // sketches #if defined(ESP8266) && !defined(RPI_WRITE_STROBE) && \ !defined(RPI_ILI9486_DRIVER) void TFT_eSPI::setWindow(int32_t xs, int32_t ys, int32_t xe, int32_t ye) { // spi_begin(); // Must be called before setWimdow #ifdef CGRAM_OFFSET xs += colstart; xe += colstart; ys += rowstart; ye += rowstart; #endif // Column addr set DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_CASET; SPI1CMD |= SPIBUSY; addr_col = 0xFFFF; addr_row = 0xFFFF; while (SPI1CMD & SPIBUSY) { } DC_D; SPI1U1 = (31 << SPILMOSI) | (31 << SPILMISO); // Load the two coords as a 32 bit value and shift in one go SPI1W0 = (xs >> 8) | (uint16_t)(xs << 8) | ((uint8_t)(xe >> 8) << 16 | (xe << 24)); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } // Row addr set DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_PASET; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; SPI1U1 = (31 << SPILMOSI) | (31 << SPILMISO); // Load the two coords as a 32 bit value and shift in one go SPI1W0 = (ys >> 8) | (uint16_t)(ys << 8) | ((uint8_t)(ye >> 8) << 16 | (ye << 24)); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } // write to RAM DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_RAMWR; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; SPI1U1 = (15 << SPILMOSI) | (15 << SPILMISO); // spi_end(); } #elif defined(ESP8266) && !defined(RPI_WRITE_STROBE) && \ defined( \ RPI_ILI9486_DRIVER) // This is for the RPi display that needs 16 bits void TFT_eSPI::setWindow(int32_t xs, int32_t ys, int32_t xe, int32_t ye) { // spi_begin(); // Must be called before setWimdow addr_col = 0xFFFF; addr_row = 0xFFFF; // Column addr set DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_CASET << 8; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; uint8_t xb[] = { 0, (uint8_t)(xs >> 8), 0, (uint8_t)(xs >> 0), 0, (uint8_t)(xe >> 8), 0, (uint8_t)(xe >> 0), }; spi.writePattern(&xb[0], 8, 1); // Row addr set DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_PASET << 8; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; uint8_t yb[] = { 0, (uint8_t)(ys >> 8), 0, (uint8_t)(ys >> 0), 0, (uint8_t)(ye >> 8), 0, (uint8_t)(ye >> 0), }; spi.writePattern(&yb[0], 8, 1); // write to RAM DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_RAMWR << 8; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; // Re-instate SPI flags settings corrupted by SPI library writePattern() // call SPI1U = SPI1U_WRITE; // spi_end(); } #else #if defined(ESP8266) && \ defined( \ RPI_ILI9486_DRIVER) // This is for the RPi display that needs 16 bits void TFT_eSPI::setWindow(int32_t x0, int32_t y0, int32_t x1, int32_t y1) { // spi_begin(); // Must be called before setWimdow SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); // Column addr set DC_C; SPI1W0 = TFT_CASET << (CMD_BITS + 1 - 8); SPI1CMD |= SPIBUSY; addr_col = 0xFFFF; // Use the waiting time to do something useful addr_row = 0xFFFF; while (SPI1CMD & SPIBUSY) { } DC_D; SPI1W0 = x0 >> 0; SPI1CMD |= SPIBUSY; x0 = x0 << 8; // Use the waiting time to do something useful while (SPI1CMD & SPIBUSY) { } SPI1W0 = x0; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } SPI1W0 = x1 >> 0; SPI1CMD |= SPIBUSY; x1 = x1 << 8; // Use the waiting time to do something useful while (SPI1CMD & SPIBUSY) { } SPI1W0 = x1; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } // Row addr set DC_C; SPI1W0 = TFT_PASET << (CMD_BITS + 1 - 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; SPI1W0 = y0 >> 0; SPI1CMD |= SPIBUSY; y0 = y0 << 8; // Use the waiting time to do something useful while (SPI1CMD & SPIBUSY) { } SPI1W0 = y0; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } SPI1W0 = y1 >> 0; SPI1CMD |= SPIBUSY; y1 = y1 << 8; // Use the waiting time to do something useful while (SPI1CMD & SPIBUSY) { } SPI1W0 = y1; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } // write to RAM DC_C; SPI1W0 = TFT_RAMWR << (CMD_BITS + 1 - 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; // spi_end(); } #else // This is for the ESP32 void TFT_eSPI::setWindow(int32_t x0, int32_t y0, int32_t x1, int32_t y1) { // spi_begin(); // Must be called before setWimdow addr_col = 0xFFFF; addr_row = 0xFFFF; #ifdef CGRAM_OFFSET x0 += colstart; x1 += colstart; y0 += rowstart; y1 += rowstart; #endif DC_C; tft_Write_8(TFT_CASET); DC_D; #if defined(RPI_ILI9486_DRIVER) uint8_t xb[] = { 0, (uint8_t)(x0 >> 8), 0, (uint8_t)(x0 >> 0), 0, (uint8_t)(x1 >> 8), 0, (uint8_t)(x1 >> 0), }; spi.writePattern(&xb[0], 8, 1); #else tft_Write_32(SPI_32(x0, x1)); #endif DC_C; // Row addr set tft_Write_8(TFT_PASET); DC_D; #if defined(RPI_ILI9486_DRIVER) uint8_t yb[] = { 0, (uint8_t)(y0 >> 8), 0, (uint8_t)(y0 >> 0), 0, (uint8_t)(y1 >> 8), 0, (uint8_t)(y1 >> 0), }; spi.writePattern(&yb[0], 8, 1); #else tft_Write_32(SPI_32(y0, y1)); #endif DC_C; // write to RAM tft_Write_8(TFT_RAMWR); DC_D; // spi_end(); } #endif // end RPI_ILI9486_DRIVER check #endif // end ESP32 check /*************************************************************************************** ** Function name: readAddrWindow ** Description: define an area to read a stream of pixels ***************************************************************************************/ // Chip select stays low #if defined(ESP8266) && !defined(RPI_WRITE_STROBE) void TFT_eSPI::readAddrWindow(int32_t xs, int32_t ys, int32_t w, int32_t h) { int32_t xe = xs + w - 1; int32_t ye = ys + h - 1; addr_col = 0xFFFF; addr_row = 0xFFFF; #ifdef CGRAM_OFFSET xs += colstart; xe += colstart; ys += rowstart; ye += rowstart; #endif // Column addr set DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_CASET; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; SPI1U1 = (31 << SPILMOSI) | (31 << SPILMISO); // Load the two coords as a 32 bit value and shift in one go SPI1W0 = (xs >> 8) | (uint16_t)(xs << 8) | ((uint8_t)(xe >> 8) << 16 | (xe << 24)); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } // Row addr set DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_PASET; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; SPI1U1 = (31 << SPILMOSI) | (31 << SPILMISO); // Load the two coords as a 32 bit value and shift in one go SPI1W0 = (ys >> 8) | (uint16_t)(ys << 8) | ((uint8_t)(ye >> 8) << 16 | (ye << 24)); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } // read from RAM DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_RAMRD; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; } #else // ESP32 void TFT_eSPI::readAddrWindow(int32_t xs, int32_t ys, int32_t w, int32_t h) { int32_t xe = xs + w - 1; int32_t ye = ys + h - 1; addr_col = 0xFFFF; addr_row = 0xFFFF; #ifdef CGRAM_OFFSET xs += colstart; xe += colstart; ys += rowstart; ye += rowstart; #endif // Column addr set DC_C; tft_Write_8(TFT_CASET); DC_D; tft_Write_32(SPI_32(xs, xe)); // Row addr set DC_C; tft_Write_8(TFT_PASET); DC_D; tft_Write_32(SPI_32(ys, ye)); DC_C; tft_Write_8(TFT_RAMRD); // Read CGRAM command DC_D; } #endif /*************************************************************************************** ** Function name: drawPixel ** Description: push a single pixel at an arbitrary position ***************************************************************************************/ #if defined(ESP8266) && !defined(RPI_WRITE_STROBE) void TFT_eSPI::drawPixel(int32_t x, int32_t y, uint32_t color) { // Range checking if ((x < 0) || (y < 0) || (x >= _width) || (y >= _height)) return; #ifdef CGRAM_OFFSET x += colstart; y += rowstart; #endif spi_begin(); // No need to send x if it has not changed (speeds things up) if (addr_col != x) { DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_CASET << (CMD_BITS + 1 - 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; #if defined(RPI_ILI9486_DRIVER) // This is for the RPi display that needs 16 // bits per byte uint8_t cBin[] = {0, (uint8_t)(x >> 8), 0, (uint8_t)(x >> 0)}; spi.writePattern(&cBin[0], 4, 2); #else SPI1U1 = (31 << SPILMOSI) | (31 << SPILMISO); // Load the two coords as a 32 bit value and shift in one go uint32_t xswap = (x >> 8) | (uint16_t)(x << 8); SPI1W0 = xswap | (xswap << 16); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } #endif addr_col = x; } // No need to send y if it has not changed (speeds things up) if (addr_row != y) { DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_PASET << (CMD_BITS + 1 - 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; #if defined(RPI_ILI9486_DRIVER) // This is for the RPi display that needs 16 // bits per byte uint8_t cBin[] = {0, (uint8_t)(y >> 8), 0, (uint8_t)(y >> 0)}; spi.writePattern(&cBin[0], 4, 2); #else SPI1U1 = (31 << SPILMOSI) | (31 << SPILMISO); // Load the two coords as a 32 bit value and shift in one go uint32_t yswap = (y >> 8) | (uint16_t)(y << 8); SPI1W0 = yswap | (yswap << 16); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } #endif addr_row = y; } DC_C; SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); SPI1W0 = TFT_RAMWR << (CMD_BITS + 1 - 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; #if defined(ILI9488_DRIVER) tft_Write_16(color); #else SPI1U1 = (15 << SPILMOSI) | (15 << SPILMISO); SPI1W0 = (color >> 8) | (color << 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } #endif spi_end(); } #else #if defined(ESP8266) && \ defined( \ RPI_ILI9486_DRIVER) // This is for the RPi display that needs 16 bits void TFT_eSPI::drawPixel(int32_t x, int32_t y, uint32_t color) { // Range checking if ((x < 0) || (y < 0) || (x >= _width) || (y >= _height)) return; spi_begin(); SPI1U1 = (CMD_BITS << SPILMOSI) | (CMD_BITS << SPILMISO); // No need to send x if it has not changed (speeds things up) if (addr_col != x) { DC_C; SPI1W0 = TFT_CASET << (CMD_BITS + 1 - 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; SPI1W0 = x >> 0; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } SPI1W0 = x << 8; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } SPI1W0 = x >> 0; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } SPI1W0 = x << 8; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } addr_col = x; } // No need to send y if it has not changed (speeds things up) if (addr_row != y) { DC_C; SPI1W0 = TFT_PASET << (CMD_BITS + 1 - 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; SPI1W0 = y >> 0; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } SPI1W0 = y << 8; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } SPI1W0 = y >> 0; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } SPI1W0 = y << 8; SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } addr_row = y; } DC_C; SPI1W0 = TFT_RAMWR << (CMD_BITS + 1 - 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } DC_D; SPI1W0 = (color >> 8) | (color << 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } spi_end(); } #else // ESP32 void TFT_eSPI::drawPixel(int32_t x, int32_t y, uint32_t color) { // Range checking if ((x < 0) || (y < 0) || (x >= _width) || (y >= _height)) return; spi_begin(); #ifdef CGRAM_OFFSET x += colstart; y += rowstart; #endif DC_C; // No need to send x if it has not changed (speeds things up) if (addr_col != x) { tft_Write_8(TFT_CASET); DC_D; #if defined(RPI_ILI9486_DRIVER) uint8_t xb[] = { 0, (uint8_t)(x >> 8), 0, (uint8_t)(x >> 0), 0, (uint8_t)(x >> 8), 0, (uint8_t)(x >> 0), }; spi.writePattern(&xb[0], 8, 1); #else tft_Write_32(SPI_32(x, x)); #endif DC_C; addr_col = x; } // No need to send y if it has not changed (speeds things up) if (addr_row != y) { tft_Write_8(TFT_PASET); DC_D; #if defined(RPI_ILI9486_DRIVER) uint8_t yb[] = { 0, (uint8_t)(y >> 8), 0, (uint8_t)(y >> 0), 0, (uint8_t)(y >> 8), 0, (uint8_t)(y >> 0), }; spi.writePattern(&yb[0], 8, 1); #else tft_Write_32(SPI_32(y, y)); #endif DC_C; addr_row = y; } tft_Write_8(TFT_RAMWR); DC_D; tft_Write_16(color); spi_end(); } #endif #endif /*************************************************************************************** ** Function name: pushColor ** Description: push a single pixel ***************************************************************************************/ void TFT_eSPI::pushColor(uint16_t color) { spi_begin(); tft_Write_16(color); spi_end(); } /*************************************************************************************** ** Function name: pushColor ** Description: push a single colour to "len" pixels ***************************************************************************************/ void TFT_eSPI::pushColor(uint16_t color, uint32_t len) { spi_begin(); #ifdef RPI_WRITE_STROBE uint8_t colorBin[] = {(uint8_t)(color >> 8), (uint8_t)color}; if (len) spi.writePattern(&colorBin[0], 2, 1); len--; while (len--) { WR_L; WR_H; } #else #if defined(ESP32_PARALLEL) while (len--) { tft_Write_16(color); } #else writeBlock(color, len); #endif #endif spi_end(); } /*************************************************************************************** ** Function name: startWrite ** Description: begin transaction with CS low, MUST later call *endWrite ***************************************************************************************/ void TFT_eSPI::startWrite(void) { spi_begin(); inTransaction = true; } /*************************************************************************************** ** Function name: endWrite ** Description: end transaction with CS high ***************************************************************************************/ void TFT_eSPI::endWrite(void) { inTransaction = false; spi_end(); } /*************************************************************************************** ** Function name: writeColor (use startWrite() and endWrite() before & *after) ** Description: raw write of "len" pixels avoiding transaction check ***************************************************************************************/ void TFT_eSPI::writeColor(uint16_t color, uint32_t len) { #ifdef RPI_WRITE_STROBE uint8_t colorBin[] = {(uint8_t)(color >> 8), (uint8_t)color}; if (len) spi.writePattern(&colorBin[0], 2, 1); len--; while (len--) { WR_L; WR_H; } #else #if defined(ESP32_PARALLEL) while (len--) { tft_Write_16(color); } #else writeBlock(color, len); #endif #endif } /*************************************************************************************** ** Function name: pushColors ** Description: push an array of pixels for 16 bit raw image drawing ***************************************************************************************/ // Assumed that setAddrWindow() has previously been called void TFT_eSPI::pushColors(uint8_t *data, uint32_t len) { spi_begin(); #if defined(RPI_WRITE_STROBE) while (len >= 64) { spi.writePattern(data, 64, 1); data += 64; len -= 64; } if (len) spi.writePattern(data, len, 1); #else #ifdef ESP32_PARALLEL while (len--) { tft_Write_8(*data); data++; } #elif defined(ILI9488_DRIVER) uint16_t color; while (len > 1) { color = (*data++) | ((*data++) << 8); tft_Write_16(color); len -= 2; } #else #if (SPI_FREQUENCY == 80000000) while (len >= 64) { spi.writePattern(data, 64, 1); data += 64; len -= 64; } if (len) spi.writePattern(data, len, 1); #else spi.writeBytes(data, len); #endif #endif #endif spi_end(); } /*************************************************************************************** ** Function name: pushColors ** Description: push an array of pixels, for image drawing ***************************************************************************************/ void TFT_eSPI::pushColors(uint16_t *data, uint32_t len, bool swap) { spi_begin(); #if defined(ESP32) || defined(ILI9488_DRIVER) #if defined(ESP32_PARALLEL) || defined(ILI9488_DRIVER) if (swap) while (len--) { tft_Write_16(*data); data++; } else while (len--) { tft_Write_16S(*data); data++; } #else if (swap) spi.writePixels(data, len << 1); else spi.writeBytes((uint8_t *)data, len << 1); #endif #else uint32_t color[8]; SPI1U1 = (255 << SPILMOSI) | (255 << SPILMISO); while (len > 15) { if (swap) { uint32_t i = 0; while (i < 8) { color[i] = (*data >> 8) | (uint16_t)(*data << 8); data++; color[i] |= ((*data >> 8) | (*data << 8)) << 16; data++; i++; } } else { memcpy(color, data, 32); data += 16; } len -= 16; // ESP8266 wait time here at 40MHz SPI is ~5.45us while (SPI1CMD & SPIBUSY) { } SPI1W0 = color[0]; SPI1W1 = color[1]; SPI1W2 = color[2]; SPI1W3 = color[3]; SPI1W4 = color[4]; SPI1W5 = color[5]; SPI1W6 = color[6]; SPI1W7 = color[7]; SPI1CMD |= SPIBUSY; } if (len) { uint32_t bits = (len * 16 - 1); // bits left to shift - 1 if (swap) { uint16_t *ptr = (uint16_t *)color; while (len--) { *ptr++ = (*(data) >> 8) | (uint16_t)(*(data) << 8); data++; } } else { memcpy(color, data, len << 1); } while (SPI1CMD & SPIBUSY) { } SPI1U1 = (bits << SPILMOSI) | (bits << SPILMISO); SPI1W0 = color[0]; SPI1W1 = color[1]; SPI1W2 = color[2]; SPI1W3 = color[3]; SPI1W4 = color[4]; SPI1W5 = color[5]; SPI1W6 = color[6]; SPI1W7 = color[7]; SPI1CMD |= SPIBUSY; } while (SPI1CMD & SPIBUSY) { } #endif spi_end(); } /*************************************************************************************** ** Function name: drawLine ** Description: draw a line between 2 arbitrary points ***************************************************************************************/ // Bresenham's algorithm - thx wikipedia - speed enhanced by Bodmer to use // an efficient FastH/V Line draw routine for line segments of 2 pixels or more #if defined(RPI_ILI9486_DRIVER) || defined(ESP32) || \ defined(RPI_WRITE_STROBE) || defined(HX8357D_DRIVER) || \ defined(ILI9488_DRIVER) void TFT_eSPI::drawLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t color) { spi_begin(); inTransaction = true; boolean steep = abs(y1 - y0) > abs(x1 - x0); if (steep) { swap_coord(x0, y0); swap_coord(x1, y1); } if (x0 > x1) { swap_coord(x0, x1); swap_coord(y0, y1); } int32_t dx = x1 - x0, dy = abs(y1 - y0); ; int32_t err = dx >> 1, ystep = -1, xs = x0, dlen = 0; if (y0 < y1) ystep = 1; // Split into steep and not steep for FastH/V separation if (steep) { for (; x0 <= x1; x0++) { dlen++; err -= dy; if (err < 0) { err += dx; if (dlen == 1) drawPixel(y0, xs, color); else drawFastVLine(y0, xs, dlen, color); dlen = 0; y0 += ystep; xs = x0 + 1; } } if (dlen) drawFastVLine(y0, xs, dlen, color); } else { for (; x0 <= x1; x0++) { dlen++; err -= dy; if (err < 0) { err += dx; if (dlen == 1) drawPixel(xs, y0, color); else drawFastHLine(xs, y0, dlen, color); dlen = 0; y0 += ystep; xs = x0 + 1; } } if (dlen) drawFastHLine(xs, y0, dlen, color); } inTransaction = false; spi_end(); } #else // This is a weeny bit faster void TFT_eSPI::drawLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t color) { boolean steep = abs(y1 - y0) > abs(x1 - x0); if (steep) { swap_coord(x0, y0); swap_coord(x1, y1); } if (x0 > x1) { swap_coord(x0, x1); swap_coord(y0, y1); } if (x1 < 0) return; int16_t dx, dy; dx = x1 - x0; dy = abs(y1 - y0); int16_t err = dx / 2; int8_t ystep = (y0 < y1) ? 1 : (-1); spi_begin(); int16_t swapped_color = (color >> 8) | (color << 8); if (steep) // y increments every iteration (y0 is x-axis, and x0 is y-axis) { if (x1 >= (int32_t)_height) x1 = _height - 1; for (; x0 <= x1; x0++) { if ((x0 >= 0) && (y0 >= 0) && (y0 < _width)) break; err -= dy; if (err < 0) { err += dx; y0 += ystep; } } if (x0 > x1) { spi_end(); return; } setWindow(y0, x0, y0, _height); SPI1W0 = swapped_color; for (; x0 <= x1; x0++) { while (SPI1CMD & SPIBUSY) { } SPI1CMD |= SPIBUSY; err -= dy; if (err < 0) { y0 += ystep; if ((y0 < 0) || (y0 >= _width)) break; err += dx; while (SPI1CMD & SPIBUSY) { } setWindow(y0, x0 + 1, y0, _height); SPI1W0 = swapped_color; } } } else // x increments every iteration (x0 is x-axis, and y0 is y-axis) { if (x1 >= _width) x1 = _width - 1; for (; x0 <= x1; x0++) { if ((x0 >= 0) && (y0 >= 0) && (y0 < (int32_t)_height)) break; err -= dy; if (err < 0) { err += dx; y0 += ystep; } } if (x0 > x1) { spi_end(); return; } setWindow(x0, y0, _width, y0); SPI1W0 = swapped_color; for (; x0 <= x1; x0++) { while (SPI1CMD & SPIBUSY) { } SPI1CMD |= SPIBUSY; err -= dy; if (err < 0) { y0 += ystep; if ((y0 < 0) || (y0 >= (int32_t)_height)) break; err += dx; while (SPI1CMD & SPIBUSY) { } setWindow(x0 + 1, y0, _width, y0); SPI1W0 = swapped_color; } } } while (SPI1CMD & SPIBUSY) { } spi_end(); } #endif /*************************************************************************************** ** Function name: drawFastVLine ** Description: draw a vertical line ***************************************************************************************/ #if defined(ESP8266) && !defined(RPI_WRITE_STROBE) void TFT_eSPI::drawFastVLine(int32_t x, int32_t y, int32_t h, uint32_t color) { // Clipping if ((x < 0) || (x >= _width) || (y >= _height)) return; if (y < 0) { h += y; y = 0; } if ((y + h) > _height) h = _height - y; if (h < 1) return; spi_begin(); setWindow(x, y, x, y + h - 1); writeBlock(color, h); spi_end(); } #else void TFT_eSPI::drawFastVLine(int32_t x, int32_t y, int32_t h, uint32_t color) { // Clipping if ((x < 0) || (x >= _width) || (y >= _height)) return; if (y < 0) { h += y; y = 0; } if ((y + h) > _height) h = _height - y; if (h < 1) return; spi_begin(); setWindow(x, y, x, y + h - 1); #ifdef RPI_WRITE_STROBE #if defined(ESP8266) SPI1W0 = (color >> 8) | (color << 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } #else tft_Write_16(color); #endif h--; while (h--) { WR_L; WR_H; } #else #ifdef ESP32_PARALLEL while (h--) { tft_Write_16(color); } #else writeBlock(color, h); #endif #endif spi_end(); } #endif /*************************************************************************************** ** Function name: drawFastHLine ** Description: draw a horizontal line ***************************************************************************************/ #if defined(ESP8266) && !defined(RPI_WRITE_STROBE) void TFT_eSPI::drawFastHLine(int32_t x, int32_t y, int32_t w, uint32_t color) { // Clipping if ((y < 0) || (x >= _width) || (y >= _height)) return; if (x < 0) { w += x; x = 0; } if ((x + w) > _width) w = _width - x; if (w < 1) return; spi_begin(); setWindow(x, y, x + w - 1, y); writeBlock(color, w); spi_end(); } #else void TFT_eSPI::drawFastHLine(int32_t x, int32_t y, int32_t w, uint32_t color) { // Clipping if ((y < 0) || (x >= _width) || (y >= _height)) return; if (x < 0) { w += x; x = 0; } if ((x + w) > _width) w = _width - x; if (w < 1) return; spi_begin(); setWindow(x, y, x + w - 1, y); #ifdef RPI_WRITE_STROBE #if defined(ESP8266) SPI1W0 = (color >> 8) | (color << 8); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } #else tft_Write_16(color); #endif w--; while (w--) { WR_L; WR_H; } #else #ifdef ESP32_PARALLEL while (w--) { tft_Write_16(color); } #else writeBlock(color, w); #endif #endif spi_end(); } #endif /*************************************************************************************** ** Function name: fillRect ** Description: draw a filled rectangle ***************************************************************************************/ #if defined(ESP8266) && !defined(RPI_WRITE_STROBE) void TFT_eSPI::fillRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color) { // Clipping if ((x >= _width) || (y >= _height)) return; if (x < 0) { w += x; x = 0; } if (y < 0) { h += y; y = 0; } if ((x + w) > _width) w = _width - x; if ((y + h) > _height) h = _height - y; if ((w < 1) || (h < 1)) return; spi_begin(); setWindow(x, y, x + w - 1, y + h - 1); writeBlock(color, w * h); spi_end(); } #else void TFT_eSPI::fillRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color) { // Clipping if ((x >= _width) || (y >= _height)) return; if (x < 0) { w += x; x = 0; } if (y < 0) { h += y; y = 0; } if ((x + w) > _width) w = _width - x; if ((y + h) > _height) h = _height - y; if ((w < 1) || (h < 1)) return; spi_begin(); setWindow(x, y, x + w - 1, y + h - 1); uint32_t n = (uint32_t)w * (uint32_t)h; #ifdef RPI_WRITE_STROBE tft_Write_16(color); while (n--) { WR_L; WR_H; } #else #ifdef ESP32_PARALLEL if (color >> 8 == (uint8_t)color) { tft_Write_8(color); n--; WR_L; WR_H; while (n) { WR_L; WR_H; n--; WR_L; WR_H; } } else { while (n--) { tft_Write_16(color); } } #else writeBlock(color, n); #endif #endif spi_end(); } #endif /*************************************************************************************** ** Function name: color565 ** Description: convert three 8 bit RGB levels to a 16 bit colour *value ***************************************************************************************/ uint16_t TFT_eSPI::color565(uint8_t r, uint8_t g, uint8_t b) { return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); } /*************************************************************************************** ** Function name: color16to8 ** Description: convert 16 bit colour to an 8 bit 332 RGB colour *value ***************************************************************************************/ uint8_t TFT_eSPI::color16to8(uint16_t c) { return ((c & 0xE000) >> 8) | ((c & 0x0700) >> 6) | ((c & 0x0018) >> 3); } /*************************************************************************************** ** Function name: color8to16 ** Description: convert 8 bit colour to a 16 bit 565 colour value ***************************************************************************************/ uint16_t TFT_eSPI::color8to16(uint8_t color) { uint8_t blue[] = {0, 11, 21, 31}; // blue 2 to 5 bit colour lookup table uint16_t color16 = 0; // =====Green===== ===============Red============== color16 = (color & 0x1C) << 6 | (color & 0xC0) << 5 | (color & 0xE0) << 8; // =====Green===== =======Blue====== color16 |= (color & 0x1C) << 3 | blue[color & 0x03]; return color16; } /*************************************************************************************** ** Function name: invertDisplay ** Description: invert the display colours i = 1 invert, i = 0 *normal ***************************************************************************************/ void TFT_eSPI::invertDisplay(boolean i) { spi_begin(); // Send the command twice as otherwise it does not always work! writecommand(i ? TFT_INVON : TFT_INVOFF); writecommand(i ? TFT_INVON : TFT_INVOFF); spi_end(); } /************************************************************************** ** Function name: setAttribute ** Description: Sets a control parameter of an attribute **************************************************************************/ void TFT_eSPI::setAttribute(uint8_t attr_id, uint8_t param) { switch (attr_id) { break; case 1: _cp437 = param; break; case 2: _utf8 = param; break; // case 3: // TBD future feature control // _tbd = param; // break; } } /************************************************************************** ** Function name: getAttribute ** Description: Get value of an attribute (control parameter) **************************************************************************/ uint8_t TFT_eSPI::getAttribute(uint8_t attr_id) { switch (attr_id) { case 1: // ON/OFF control of full CP437 character set return _cp437; break; case 2: // ON/OFF control of UTF-8 decoding return _utf8; break; // case 3: // TBD future feature control // return _tbd; // break; } return false; } /*************************************************************************************** ** Function name: decodeUTF8 ** Description: Serial UTF-8 decoder with fall-back to extended *ASCII *************************************************************************************x*/ #define DECODE_UTF8 // Test only, comment out to stop decoding uint16_t TFT_eSPI::decodeUTF8(uint8_t c) { #ifdef DECODE_UTF8 // 7 bit Unicode Code Point if ((c & 0x80) == 0x00) { decoderState = 0; return (uint16_t)c; } if (decoderState == 0) { // 11 bit Unicode Code Point if ((c & 0xE0) == 0xC0) { decoderBuffer = ((c & 0x1F) << 6); decoderState = 1; return 0; } // 16 bit Unicode Code Point if ((c & 0xF0) == 0xE0) { decoderBuffer = ((c & 0x0F) << 12); decoderState = 2; return 0; } // 21 bit Unicode Code Point not supported so fall-back to extended // ASCII if ((c & 0xF8) == 0xF0) return (uint16_t)c; } else { if (decoderState == 2) { decoderBuffer |= ((c & 0x3F) << 6); decoderState--; return 0; } else { decoderBuffer |= (c & 0x3F); decoderState = 0; return decoderBuffer; } } decoderState = 0; #endif return (uint16_t)c; // fall-back to extended ASCII } /*************************************************************************************** ** Function name: decodeUTF8 ** Description: Line buffer UTF-8 decoder with fall-back to extended *ASCII *************************************************************************************x*/ uint16_t TFT_eSPI::decodeUTF8(uint8_t *buf, uint16_t *index, uint16_t remaining) { byte c = buf[(*index)++]; // Serial.print("Byte from string = 0x"); Serial.println(c, HEX); #ifdef DECODE_UTF8 // 7 bit Unicode if ((c & 0x80) == 0x00) return c; // 11 bit Unicode if (((c & 0xE0) == 0xC0) && (remaining > 1)) return ((c & 0x1F) << 6) | (buf[(*index)++] & 0x3F); // 16 bit Unicode if (((c & 0xF0) == 0xE0) && (remaining > 2)) { c = ((c & 0x0F) << 12) | ((buf[(*index)++] & 0x3F) << 6); return c | ((buf[(*index)++] & 0x3F)); } // 21 bit Unicode not supported so fall-back to extended ASCII // if ((c & 0xF8) == 0xF0) return c; #endif return c; // fall-back to extended ASCII } /*************************************************************************************** ** Function name: write ** Description: draw characters piped through serial stream ***************************************************************************************/ size_t TFT_eSPI::write(uint8_t utf8) { if (utf8 == '\r') return 1; uint16_t uniCode = utf8; if (_utf8) uniCode = decodeUTF8(utf8); if (uniCode == 0) return 1; #ifdef SMOOTH_FONT if (fontLoaded) { // Serial.print("UniCode="); Serial.println(uniCode); // Serial.print("UTF8 ="); Serial.println(utf8); // fontFile = SPIFFS.open( _gFontFilename, "r" ); // if(!fontFile) //{ // fontLoaded = false; // return 1; //} drawGlyph(uniCode); // fontFile.close(); return 1; } #endif if (uniCode == '\n') uniCode += 22; // Make it a valid space character to stop errors else if (uniCode < 32) return 1; uint16_t width = 0; uint16_t height = 0; // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv DEBUG // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Serial.print((uint8_t) uniCode); // // Debug line sends all printed TFT text to serial port Serial.println(uniCode, // HEX); // Debug line sends all printed TFT text to serial port delay(5); // // Debug optional wait for serial port to flush through //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ DEBUG //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #ifdef LOAD_GFXFF if (!gfxFont) { #endif //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #ifdef LOAD_FONT2 if (textfont == 2) { if (uniCode > 127) return 1; width = pgm_read_byte(widtbl_f16 + uniCode - 32); height = chr_hgt_f16; // Font 2 is rendered in whole byte widths so we must allow for this width = (width + 6) / 8; // Width in whole bytes for font 2, should be // + 7 but must allow for font width change width = width * 8; // Width converted back to pixels } #ifdef LOAD_RLE else #endif #endif #ifdef LOAD_RLE { if ((textfont > 2) && (textfont < 9)) { if (uniCode > 127) return 1; // Uses the fontinfo struct array to avoid lots of 'if' or // 'switch' statements width = pgm_read_byte( (uint8_t *)pgm_read_dword(&(fontdata[textfont].widthtbl)) + uniCode - 32); height = pgm_read_byte(&fontdata[textfont].height); } } #endif #ifdef LOAD_GLCD if (textfont == 1) { width = 6; height = 8; } #else if (textfont == 1) return 1; #endif height = height * textsize; if (utf8 == '\n') { cursor_y += height; cursor_x = 0; } else { if (textwrapX && (cursor_x + width * textsize > _width)) { cursor_y += height; cursor_x = 0; } if (textwrapY && (cursor_y >= (int32_t)_height)) cursor_y = 0; cursor_x += drawChar(uniCode, cursor_x, cursor_y, textfont); } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #ifdef LOAD_GFXFF } // Custom GFX font else { if (utf8 == '\n') { cursor_x = 0; cursor_y += (int16_t)textsize * (uint8_t)pgm_read_byte(&gfxFont->yAdvance); } else { if (uniCode > pgm_read_word(&gfxFont->last)) return 1; if (uniCode < pgm_read_word(&gfxFont->first)) return 1; uint16_t c2 = uniCode - pgm_read_word(&gfxFont->first); GFXglyph *glyph = &(((GFXglyph *)pgm_read_dword(&gfxFont->glyph))[c2]); uint8_t w = pgm_read_byte(&glyph->width), h = pgm_read_byte(&glyph->height); if ((w > 0) && (h > 0)) { // Is there an associated bitmap? int16_t xo = (int8_t)pgm_read_byte(&glyph->xOffset); if (textwrapX && ((cursor_x + textsize * (xo + w)) > _width)) { // Drawing character would go off right edge; wrap to new // line cursor_x = 0; cursor_y += (int16_t)textsize * (uint8_t)pgm_read_byte(&gfxFont->yAdvance); } if (textwrapY && (cursor_y >= (int32_t)_height)) cursor_y = 0; drawChar(cursor_x, cursor_y, uniCode, textcolor, textbgcolor, textsize); } cursor_x += pgm_read_byte(&glyph->xAdvance) * (int16_t)textsize; } } #endif // LOAD_GFXFF //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< return 1; } /*************************************************************************************** ** Function name: drawChar ** Description: draw a Unicode glyph onto the screen ***************************************************************************************/ // Any UTF-8 decoding must be done before calling drawChar() int16_t TFT_eSPI::drawChar(uint16_t uniCode, int32_t x, int32_t y) { return drawChar(uniCode, x, y, textfont); } // Any UTF-8 decoding must be done before calling drawChar() int16_t TFT_eSPI::drawChar(uint16_t uniCode, int32_t x, int32_t y, uint8_t font) { if (!uniCode) return 0; if (font == 1) { #ifdef LOAD_GLCD #ifndef LOAD_GFXFF drawChar(x, y, uniCode, textcolor, textbgcolor, textsize); return 6 * textsize; #endif #else #ifndef LOAD_GFXFF return 0; #endif #endif #ifdef LOAD_GFXFF drawChar(x, y, uniCode, textcolor, textbgcolor, textsize); if (!gfxFont) { // 'Classic' built-in font #ifdef LOAD_GLCD return 6 * textsize; #else return 0; #endif } else { if ((uniCode >= pgm_read_word(&gfxFont->first)) && (uniCode <= pgm_read_word(&gfxFont->last))) { uint16_t c2 = uniCode - pgm_read_word(&gfxFont->first); GFXglyph *glyph = &(((GFXglyph *)pgm_read_dword(&gfxFont->glyph))[c2]); return pgm_read_byte(&glyph->xAdvance) * textsize; } else { return 0; } } #endif } if ((font > 1) && (font < 9) && ((uniCode < 32) || (uniCode > 127))) return 0; int32_t width = 0; int32_t height = 0; uint32_t flash_address = 0; uniCode -= 32; #ifdef LOAD_FONT2 if (font == 2) { flash_address = pgm_read_dword(&chrtbl_f16[uniCode]); width = pgm_read_byte(widtbl_f16 + uniCode); height = chr_hgt_f16; } #ifdef LOAD_RLE else #endif #endif #ifdef LOAD_RLE { if ((font > 2) && (font < 9)) { flash_address = pgm_read_dword(pgm_read_dword(&(fontdata[font].chartbl)) + uniCode * sizeof(void *)); width = pgm_read_byte( (uint8_t *)pgm_read_dword(&(fontdata[font].widthtbl)) + uniCode); height = pgm_read_byte(&fontdata[font].height); } } #endif int32_t w = width; int32_t pX = 0; int32_t pY = y; uint8_t line = 0; #ifdef LOAD_FONT2 // chop out code if we do not need it if (font == 2) { w = w + 6; // Should be + 7 but we need to compensate for width increment w = w / 8; if (x + width * textsize >= (int16_t)_width) return width * textsize; if (textcolor == textbgcolor || textsize != 1) { spi_begin(); inTransaction = true; for (int32_t i = 0; i < height; i++) { if (textcolor != textbgcolor) fillRect(x, pY, width * textsize, textsize, textbgcolor); for (int32_t k = 0; k < w; k++) { line = pgm_read_byte((uint8_t *)flash_address + w * i + k); if (line) { if (textsize == 1) { pX = x + k * 8; if (line & 0x80) drawPixel(pX, pY, textcolor); if (line & 0x40) drawPixel(pX + 1, pY, textcolor); if (line & 0x20) drawPixel(pX + 2, pY, textcolor); if (line & 0x10) drawPixel(pX + 3, pY, textcolor); if (line & 0x08) drawPixel(pX + 4, pY, textcolor); if (line & 0x04) drawPixel(pX + 5, pY, textcolor); if (line & 0x02) drawPixel(pX + 6, pY, textcolor); if (line & 0x01) drawPixel(pX + 7, pY, textcolor); } else { pX = x + k * 8 * textsize; if (line & 0x80) fillRect(pX, pY, textsize, textsize, textcolor); if (line & 0x40) fillRect(pX + textsize, pY, textsize, textsize, textcolor); if (line & 0x20) fillRect(pX + 2 * textsize, pY, textsize, textsize, textcolor); if (line & 0x10) fillRect(pX + 3 * textsize, pY, textsize, textsize, textcolor); if (line & 0x08) fillRect(pX + 4 * textsize, pY, textsize, textsize, textcolor); if (line & 0x04) fillRect(pX + 5 * textsize, pY, textsize, textsize, textcolor); if (line & 0x02) fillRect(pX + 6 * textsize, pY, textsize, textsize, textcolor); if (line & 0x01) fillRect(pX + 7 * textsize, pY, textsize, textsize, textcolor); } } } pY += textsize; } inTransaction = false; spi_end(); } else // Faster drawing of characters and background using block write { spi_begin(); setWindow(x, y, (x + w * 8) - 1, y + height - 1); uint8_t mask; for (int32_t i = 0; i < height; i++) { for (int32_t k = 0; k < w; k++) { line = pgm_read_byte((uint8_t *)flash_address + w * i + k); pX = x + k * 8; mask = 0x80; while (mask) { if (line & mask) { tft_Write_16(textcolor); } else { tft_Write_16(textbgcolor); } mask = mask >> 1; } } pY += textsize; } spi_end(); } } #ifdef LOAD_RLE else #endif #endif // FONT2 #ifdef LOAD_RLE // 674 bytes of code // Font is not 2 and hence is RLE encoded { spi_begin(); inTransaction = true; w *= height; // Now w is total number of pixels in the character if ((textsize != 1) || (textcolor == textbgcolor)) { if (textcolor != textbgcolor) fillRect(x, pY, width * textsize, textsize * height, textbgcolor); int32_t px = 0, py = pY; // To hold character block start and end // column and row values int32_t pc = 0; // Pixel count uint8_t np = textsize * textsize; // Number of pixels in a drawn pixel uint8_t tnp = 0; // Temporary copy of np for while loop uint8_t ts = textsize - 1; // Temporary copy of textsize // 16 bit pixel count so maximum font size is equivalent to 180x180 // pixels in area w is total number of pixels to plot to fill // character block while (pc < w) { line = pgm_read_byte((uint8_t *)flash_address); flash_address++; if (line & 0x80) { line &= 0x7F; line++; if (ts) { px = x + textsize * (pc % width); // Keep these px and py calculations // outside the loop as they are slow py = y + textsize * (pc / width); } else { px = x + pc % width; // Keep these px and py calculations // outside the loop as they are slow py = y + pc / width; } while ( line--) { // In this case the while(line--) is faster pc++; // This is faster than putting pc+=line before // while()? setWindow(px, py, px + ts, py + ts); if (ts) { tnp = np; while (tnp--) { tft_Write_16(textcolor); } } else { tft_Write_16(textcolor); } px += textsize; if (px >= (x + width * textsize)) { px = x; py += textsize; } } } else { line++; pc += line; } } } else // Text colour != background && textsize = 1 // so use faster drawing of characters and background using // block write { setWindow(x, y, x + width - 1, y + height - 1); #ifdef RPI_WRITE_STROBE uint8_t textcolorBin[] = {(uint8_t)(textcolor >> 8), (uint8_t)textcolor}; uint8_t textbgcolorBin[] = {(uint8_t)(textbgcolor >> 8), (uint8_t)textbgcolor}; #endif // Maximum font size is equivalent to 180x180 pixels in area while (w > 0) { line = pgm_read_byte( (uint8_t *)flash_address++); // 8 bytes smaller when // incrementing here if (line & 0x80) { line &= 0x7F; line++; w -= line; #ifdef RPI_WRITE_STROBE spi.writePattern(&textcolorBin[0], 2, 1); line--; while (line--) { WR_L; WR_H; } #else #ifdef ESP32_PARALLEL while (line--) { tft_Write_16(textcolor); } #else writeBlock(textcolor, line); #endif #endif } else { line++; w -= line; #ifdef RPI_WRITE_STROBE spi.writePattern(&textbgcolorBin[0], 2, 1); line--; while (line--) { WR_L; WR_H; } #else #ifdef ESP32_PARALLEL while (line--) { tft_Write_16(textbgcolor); } #else writeBlock(textbgcolor, line); #endif #endif } } } inTransaction = false; spi_end(); } // End of RLE font rendering #endif return width * textsize; // x + } /*************************************************************************************** ** Function name: drawString (with or without user defined font) ** Description : draw string with padding if it is defined ***************************************************************************************/ // Without font number, uses font set by setTextFont() int16_t TFT_eSPI::drawString(const String &string, int32_t poX, int32_t poY) { int16_t len = string.length() + 2; char buffer[len]; string.toCharArray(buffer, len); return drawString(buffer, poX, poY, textfont); } // With font number int16_t TFT_eSPI::drawString(const String &string, int32_t poX, int32_t poY, uint8_t font) { int16_t len = string.length() + 2; char buffer[len]; string.toCharArray(buffer, len); return drawString(buffer, poX, poY, font); } // Without font number, uses font set by setTextFont() int16_t TFT_eSPI::drawString(const char *string, int32_t poX, int32_t poY) { return drawString(string, poX, poY, textfont); } // With font number. Note: font number is over-ridden if a smooth font is loaded int16_t TFT_eSPI::drawString(const char *string, int32_t poX, int32_t poY, uint8_t font) { int16_t sumX = 0; uint8_t padding = 1, baseline = 0; uint16_t cwidth = textWidth( string, font); // Find the pixel width of the string in the font uint16_t cheight = 8 * textsize; #ifdef LOAD_GFXFF #ifdef SMOOTH_FONT bool freeFont = (font == 1 && gfxFont && !fontLoaded); #else bool freeFont = (font == 1 && gfxFont); #endif if (freeFont) { cheight = glyph_ab * textsize; poY += cheight; // Adjust for baseline datum of free fonts baseline = cheight; padding = 101; // Different padding method used for Free Fonts // We need to make an adjustment for the bottom of the string (eg 'y' // character) if ((textdatum == BL_DATUM) || (textdatum == BC_DATUM) || (textdatum == BR_DATUM)) { cheight += glyph_bb * textsize; } } #endif // If it is not font 1 (GLCD or free font) get the baseline and pixel height // of the font #ifdef SMOOTH_FONT if (fontLoaded) { baseline = gFont.maxAscent; cheight = fontHeight(); } else #endif if (font != 1) { baseline = pgm_read_byte(&fontdata[font].baseline) * textsize; cheight = fontHeight(font); } if (textdatum || padX) { switch (textdatum) { case TC_DATUM: poX -= cwidth / 2; padding += 1; break; case TR_DATUM: poX -= cwidth; padding += 2; break; case ML_DATUM: poY -= cheight / 2; // padding += 0; break; case MC_DATUM: poX -= cwidth / 2; poY -= cheight / 2; padding += 1; break; case MR_DATUM: poX -= cwidth; poY -= cheight / 2; padding += 2; break; case BL_DATUM: poY -= cheight; // padding += 0; break; case BC_DATUM: poX -= cwidth / 2; poY -= cheight; padding += 1; break; case BR_DATUM: poX -= cwidth; poY -= cheight; padding += 2; break; case L_BASELINE: poY -= baseline; // padding += 0; break; case C_BASELINE: poX -= cwidth / 2; poY -= baseline; padding += 1; break; case R_BASELINE: poX -= cwidth; poY -= baseline; padding += 2; break; } // Check coordinates are OK, adjust if not if (poX < 0) poX = 0; if (poX + cwidth > width()) poX = width() - cwidth; if (poY < 0) poY = 0; if (poY + cheight - baseline > height()) poY = height() - cheight; } int8_t xo = 0; #ifdef LOAD_GFXFF if (freeFont && (textcolor != textbgcolor)) { cheight = (glyph_ab + glyph_bb) * textsize; // Get the offset for the first character only to allow for negative // offsets uint16_t c2 = 0; uint16_t len = strlen(string); uint16_t n = 0; while (n < len && c2 == 0) c2 = decodeUTF8((uint8_t *)string, &n, len - n); if ((c2 >= pgm_read_word(&gfxFont->first)) && (c2 <= pgm_read_word(&gfxFont->last))) { c2 -= pgm_read_word(&gfxFont->first); GFXglyph *glyph = &(((GFXglyph *)pgm_read_dword(&gfxFont->glyph))[c2]); xo = pgm_read_byte(&glyph->xOffset) * textsize; // Adjust for negative xOffset if (xo > 0) xo = 0; else cwidth -= xo; // Add 1 pixel of padding all round // cheight +=2; // fillRect(poX+xo-1, poY - 1 - glyph_ab * textsize, cwidth+2, // cheight, textbgcolor); fillRect(poX + xo, poY - glyph_ab * textsize, cwidth, cheight, textbgcolor); } padding -= 100; } #endif uint16_t len = strlen(string); uint16_t n = 0; #ifdef SMOOTH_FONT if (fontLoaded) { if (textcolor != textbgcolor) fillRect(poX, poY, cwidth, cheight, textbgcolor); // drawLine(poX - 5, poY, poX + 5, poY, TFT_GREEN); // drawLine(poX, poY - 5, poX, poY + 5, TFT_GREEN); // fontFile = SPIFFS.open( _gFontFilename, "r"); if (!fontFile) return 0; setCursor(poX, poY); while (n < len) { uint16_t uniCode = decodeUTF8((uint8_t *)string, &n, len - n); drawGlyph(uniCode); } sumX += cwidth; // fontFile.close(); } else #endif { while (n < len) { uint16_t uniCode = decodeUTF8((uint8_t *)string, &n, len - n); sumX += drawChar(uniCode, poX + sumX, poY, font); } } // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv DEBUG // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv // Switch on debugging for the padding areas //#define PADDING_DEBUG #ifndef PADDING_DEBUG //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ DEBUG //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if ((padX > cwidth) && (textcolor != textbgcolor)) { int16_t padXc = poX + cwidth + xo; #ifdef LOAD_GFXFF if (freeFont) { poX += xo; // Adjust for negative offset start character poY -= glyph_ab * textsize; sumX += poX; } #endif switch (padding) { case 1: fillRect(padXc, poY, padX - cwidth, cheight, textbgcolor); break; case 2: fillRect(padXc, poY, (padX - cwidth) >> 1, cheight, textbgcolor); padXc = (padX - cwidth) >> 1; if (padXc > poX) padXc = poX; fillRect(poX - padXc, poY, (padX - cwidth) >> 1, cheight, textbgcolor); break; case 3: if (padXc > padX) padXc = padX; fillRect(poX + cwidth - padXc, poY, padXc - cwidth, cheight, textbgcolor); break; } } #else // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv DEBUG // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv // This is debug code to show text (green box) and blanked (white box) areas // It shows that the padding areas are being correctly sized and positioned if ((padX > sumX) && (textcolor != textbgcolor)) { int16_t padXc = poX + sumX; // Maximum left side padding #ifdef LOAD_GFXFF if ((font == 1) && (gfxFont)) poY -= glyph_ab; #endif drawRect(poX, poY, sumX, cheight, TFT_GREEN); switch (padding) { case 1: drawRect(padXc, poY, padX - sumX, cheight, TFT_WHITE); break; case 2: drawRect(padXc, poY, (padX - sumX) >> 1, cheight, TFT_WHITE); padXc = (padX - sumX) >> 1; if (padXc > poX) padXc = poX; drawRect(poX - padXc, poY, (padX - sumX) >> 1, cheight, TFT_WHITE); break; case 3: if (padXc > padX) padXc = padX; drawRect(poX + sumX - padXc, poY, padXc - sumX, cheight, TFT_WHITE); break; } } #endif //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ DEBUG //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return sumX; } /*************************************************************************************** ** Function name: drawCentreString (deprecated, use setTextDatum()) ** Descriptions: draw string centred on dX ***************************************************************************************/ int16_t TFT_eSPI::drawCentreString(const String &string, int32_t dX, int32_t poY, uint8_t font) { int16_t len = string.length() + 2; char buffer[len]; string.toCharArray(buffer, len); return drawCentreString(buffer, dX, poY, font); } int16_t TFT_eSPI::drawCentreString(const char *string, int32_t dX, int32_t poY, uint8_t font) { uint8_t tempdatum = textdatum; int32_t sumX = 0; textdatum = TC_DATUM; sumX = drawString(string, dX, poY, font); textdatum = tempdatum; return sumX; } /*************************************************************************************** ** Function name: drawRightString (deprecated, use setTextDatum()) ** Descriptions: draw string right justified to dX ***************************************************************************************/ int16_t TFT_eSPI::drawRightString(const String &string, int32_t dX, int32_t poY, uint8_t font) { int16_t len = string.length() + 2; char buffer[len]; string.toCharArray(buffer, len); return drawRightString(buffer, dX, poY, font); } int16_t TFT_eSPI::drawRightString(const char *string, int32_t dX, int32_t poY, uint8_t font) { uint8_t tempdatum = textdatum; int16_t sumX = 0; textdatum = TR_DATUM; sumX = drawString(string, dX, poY, font); textdatum = tempdatum; return sumX; } /*************************************************************************************** ** Function name: drawNumber ** Description: draw a long integer ***************************************************************************************/ int16_t TFT_eSPI::drawNumber(long long_num, int32_t poX, int32_t poY) { isDigits = true; // Eliminate jiggle in monospaced fonts char str[12]; ltoa(long_num, str, 10); return drawString(str, poX, poY, textfont); } int16_t TFT_eSPI::drawNumber(long long_num, int32_t poX, int32_t poY, uint8_t font) { isDigits = true; // Eliminate jiggle in monospaced fonts char str[12]; ltoa(long_num, str, 10); return drawString(str, poX, poY, font); } /*************************************************************************************** ** Function name: drawFloat ** Descriptions: drawFloat, prints 7 non zero digits maximum ***************************************************************************************/ // Assemble and print a string, this permits alignment relative to a datum // looks complicated but much more compact and actually faster than using print // class int16_t TFT_eSPI::drawFloat(float floatNumber, uint8_t dp, int32_t poX, int32_t poY) { return drawFloat(floatNumber, dp, poX, poY, textfont); } int16_t TFT_eSPI::drawFloat(float floatNumber, uint8_t dp, int32_t poX, int32_t poY, uint8_t font) { isDigits = true; char str[14]; // Array to contain decimal string uint8_t ptr = 0; // Initialise pointer for array int8_t digits = 1; // Count the digits to avoid array overflow float rounding = 0.5; // Round up down delta if (dp > 7) dp = 7; // Limit the size of decimal portion // Adjust the rounding value for (uint8_t i = 0; i < dp; ++i) rounding /= 10.0; if (floatNumber < -rounding) // add sign, avoid adding - sign to 0.0! { str[ptr++] = '-'; // Negative number str[ptr] = 0; // Put a null in the array as a precaution digits = 0; // Set digits to 0 to compensate so pointer value can be // used later floatNumber = -floatNumber; // Make positive } floatNumber += rounding; // Round up or down // For error put ... in string and return (all TFT_eSPI library fonts // contain . character) if (floatNumber >= 2147483647) { strcpy(str, "..."); return drawString(str, poX, poY, font); } // No chance of overflow from here on // Get integer part uint32_t temp = (uint32_t)floatNumber; // Put integer part into array ltoa(temp, str + ptr, 10); // Find out where the null is to get the digit count loaded while ((uint8_t)str[ptr] != 0) ptr++; // Move the pointer along digits += ptr; // Count the digits str[ptr++] = '.'; // Add decimal point str[ptr] = '0'; // Add a dummy zero str[ptr + 1] = 0; // Add a null but don't increment pointer so it can be overwritten // Get the decimal portion floatNumber = floatNumber - temp; // Get decimal digits one by one and put in array // Limit digit count so we don't get a false sense of resolution uint8_t i = 0; while ((i < dp) && (digits < 9)) // while (i < dp) for no limit but array size must be increased { i++; floatNumber *= 10; // for the next decimal temp = floatNumber; // get the decimal ltoa(temp, str + ptr, 10); ptr++; digits++; // Increment pointer and digits count floatNumber -= temp; // Remove that digit } // Finally we can plot the string and return pixel length return drawString(str, poX, poY, font); } /*************************************************************************************** ** Function name: setFreeFont ** Descriptions: Sets the GFX free font to use ***************************************************************************************/ #ifdef LOAD_GFXFF void TFT_eSPI::setFreeFont(const GFXfont *f) { textfont = 1; gfxFont = (GFXfont *)f; glyph_ab = 0; glyph_bb = 0; uint16_t numChars = pgm_read_word(&gfxFont->last) - pgm_read_word(&gfxFont->first); // Find the biggest above and below baseline offsets for (uint8_t c = 0; c < numChars; c++) { GFXglyph *glyph1 = &(((GFXglyph *)pgm_read_dword(&gfxFont->glyph))[c]); int8_t ab = -pgm_read_byte(&glyph1->yOffset); if (ab > glyph_ab) glyph_ab = ab; int8_t bb = pgm_read_byte(&glyph1->height) - ab; if (bb > glyph_bb) glyph_bb = bb; } } /*************************************************************************************** ** Function name: setTextFont ** Description: Set the font for the print stream ***************************************************************************************/ void TFT_eSPI::setTextFont(uint8_t f) { textfont = (f > 0) ? f : 1; // Don't allow font 0 gfxFont = NULL; } #else /*************************************************************************************** ** Function name: setFreeFont ** Descriptions: Sets the GFX free font to use ***************************************************************************************/ // Alternative to setTextFont() so we don't need two different named functions void TFT_eSPI::setFreeFont(uint8_t font) { setTextFont(font); } /*************************************************************************************** ** Function name: setTextFont ** Description: Set the font for the print stream ***************************************************************************************/ void TFT_eSPI::setTextFont(uint8_t f) { textfont = (f > 0) ? f : 1; // Don't allow font 0 } #endif /*************************************************************************************** ** Function name: writeBlock ** Description: Write a block of pixels of the same colour ***************************************************************************************/ // Clear screen test 76.8ms theoretical. 81.5ms TFT_eSPI, 967ms Adafruit_ILI9341 // Performance 26.15Mbps@26.66MHz, 39.04Mbps@40MHz, 75.4Mbps@80MHz SPI clock // Efficiency: // TFT_eSPI 98.06% 97.59% 94.24% // Adafruit_GFX 19.62% 14.31% 7.94% // #if defined(ESP8266) && !defined(ILI9488_DRIVER) void writeBlock(uint16_t color, uint32_t repeat) { uint16_t color16 = (color >> 8) | (color << 8); uint32_t color32 = color16 | color16 << 16; SPI1W0 = color32; SPI1W1 = color32; SPI1W2 = color32; SPI1W3 = color32; if (repeat > 8) { SPI1W4 = color32; SPI1W5 = color32; SPI1W6 = color32; SPI1W7 = color32; } if (repeat > 16) { SPI1W8 = color32; SPI1W9 = color32; SPI1W10 = color32; SPI1W11 = color32; } if (repeat > 24) { SPI1W12 = color32; SPI1W13 = color32; SPI1W14 = color32; SPI1W15 = color32; } if (repeat > 31) { SPI1U1 = (511 << SPILMOSI); while (repeat > 31) { #if defined SPI_FREQUENCY && (SPI_FREQUENCY == 80000000) if (SPI1CMD & SPIBUSY) // added to sync with flag change #endif while (SPI1CMD & SPIBUSY) { } SPI1CMD |= SPIBUSY; repeat -= 32; } while (SPI1CMD & SPIBUSY) { } } if (repeat) { repeat = (repeat << 4) - 1; SPI1U1 = (repeat << SPILMOSI); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } } } #elif defined(ILI9488_DRIVER) #ifdef ESP8266 void writeBlock(uint16_t color, uint32_t repeat) { // Split out the colours uint8_t r = (color & 0xF800) >> 8; uint8_t g = (color & 0x07E0) >> 3; uint8_t b = (color & 0x001F) << 3; // Concatenate 4 pixels into three 32 bit blocks uint32_t r0 = r << 24 | b << 16 | g << 8 | r; uint32_t r1 = g << 24 | r << 16 | b << 8 | g; uint32_t r2 = b << 24 | g << 16 | r << 8 | b; SPI1W0 = r0; SPI1W1 = r1; SPI1W2 = r2; if (repeat > 4) { SPI1W3 = r0; SPI1W4 = r1; SPI1W5 = r2; } if (repeat > 8) { SPI1W6 = r0; SPI1W7 = r1; SPI1W8 = r2; } if (repeat > 12) { SPI1W9 = r0; SPI1W10 = r1; SPI1W11 = r2; SPI1W12 = r0; SPI1W13 = r1; SPI1W14 = r2; SPI1W15 = r0; } if (repeat > 20) { SPI1U1 = (503 << SPILMOSI); while (repeat > 20) { while (SPI1CMD & SPIBUSY) { } SPI1CMD |= SPIBUSY; repeat -= 21; } while (SPI1CMD & SPIBUSY) { } } if (repeat) { repeat = (repeat * 24) - 1; SPI1U1 = (repeat << SPILMOSI); SPI1CMD |= SPIBUSY; while (SPI1CMD & SPIBUSY) { } } } #else // Now the code for ESP32 and ILI9488 void writeBlock(uint16_t color, uint32_t repeat) { // Split out the colours uint32_t r = (color & 0xF800) >> 8; uint32_t g = (color & 0x07E0) << 5; uint32_t b = (color & 0x001F) << 19; // Concatenate 4 pixels into three 32 bit blocks uint32_t r0 = r << 24 | b | g | r; uint32_t r1 = r0 >> 8 | g << 16; uint32_t r2 = r1 >> 8 | b << 8; if (repeat > 19) { SET_PERI_REG_BITS(SPI_MOSI_DLEN_REG(SPI_PORT), SPI_USR_MOSI_DBITLEN, 479, SPI_USR_MOSI_DBITLEN_S); while (repeat > 19) { while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT)) & SPI_USR) ; WRITE_PERI_REG(SPI_W0_REG(SPI_PORT), r0); WRITE_PERI_REG(SPI_W1_REG(SPI_PORT), r1); WRITE_PERI_REG(SPI_W2_REG(SPI_PORT), r2); WRITE_PERI_REG(SPI_W3_REG(SPI_PORT), r0); WRITE_PERI_REG(SPI_W4_REG(SPI_PORT), r1); WRITE_PERI_REG(SPI_W5_REG(SPI_PORT), r2); WRITE_PERI_REG(SPI_W6_REG(SPI_PORT), r0); WRITE_PERI_REG(SPI_W7_REG(SPI_PORT), r1); WRITE_PERI_REG(SPI_W8_REG(SPI_PORT), r2); WRITE_PERI_REG(SPI_W9_REG(SPI_PORT), r0); WRITE_PERI_REG(SPI_W10_REG(SPI_PORT), r1); WRITE_PERI_REG(SPI_W11_REG(SPI_PORT), r2); WRITE_PERI_REG(SPI_W12_REG(SPI_PORT), r0); WRITE_PERI_REG(SPI_W13_REG(SPI_PORT), r1); WRITE_PERI_REG(SPI_W14_REG(SPI_PORT), r2); SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_USR); repeat -= 20; } while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT)) & SPI_USR) ; } if (repeat) { SET_PERI_REG_BITS(SPI_MOSI_DLEN_REG(SPI_PORT), SPI_USR_MOSI_DBITLEN, (repeat * 24) - 1, SPI_USR_MOSI_DBITLEN_S); WRITE_PERI_REG(SPI_W0_REG(SPI_PORT), r0); WRITE_PERI_REG(SPI_W1_REG(SPI_PORT), r1); WRITE_PERI_REG(SPI_W2_REG(SPI_PORT), r2); WRITE_PERI_REG(SPI_W3_REG(SPI_PORT), r0); WRITE_PERI_REG(SPI_W4_REG(SPI_PORT), r1); WRITE_PERI_REG(SPI_W5_REG(SPI_PORT), r2); if (repeat > 8) { WRITE_PERI_REG(SPI_W6_REG(SPI_PORT), r0); WRITE_PERI_REG(SPI_W7_REG(SPI_PORT), r1); WRITE_PERI_REG(SPI_W8_REG(SPI_PORT), r2); WRITE_PERI_REG(SPI_W9_REG(SPI_PORT), r0); WRITE_PERI_REG(SPI_W10_REG(SPI_PORT), r1); WRITE_PERI_REG(SPI_W11_REG(SPI_PORT), r2); WRITE_PERI_REG(SPI_W12_REG(SPI_PORT), r0); WRITE_PERI_REG(SPI_W13_REG(SPI_PORT), r1); WRITE_PERI_REG(SPI_W14_REG(SPI_PORT), r2); } SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_USR); while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT)) & SPI_USR) ; } } #endif #else // Low level register based ESP32 code for 16 bit colour SPI TFTs void writeBlock(uint16_t color, uint32_t repeat) { uint32_t color32 = COL_32(color, color); if (repeat > 31) // Revert legacy toggle buffer change { WRITE_PERI_REG(SPI_MOSI_DLEN_REG(SPI_PORT), 511); while (repeat > 31) { while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT)) & SPI_USR) ; WRITE_PERI_REG(SPI_W0_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W1_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W2_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W3_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W4_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W5_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W6_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W7_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W8_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W9_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W10_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W11_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W12_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W13_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W14_REG(SPI_PORT), color32); WRITE_PERI_REG(SPI_W15_REG(SPI_PORT), color32); SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_USR); repeat -= 32; } while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT)) & SPI_USR) ; } if (repeat) { // Revert toggle buffer change WRITE_PERI_REG(SPI_MOSI_DLEN_REG(SPI_PORT), (repeat << 4) - 1); for (uint32_t i = 0; i <= (repeat >> 1); i++) WRITE_PERI_REG((SPI_W0_REG(SPI_PORT) + (i << 2)), color32); SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_USR); while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT)) & SPI_USR) ; } } #endif /*************************************************************************************** ** Function name: getSetup ** Description: Get the setup details for diagnostic and sketch *access ***************************************************************************************/ void TFT_eSPI::getSetup(setup_t &tft_settings) { // tft_settings.version is set in header file #if defined(ESP8266) tft_settings.esp = 8266; #elif defined(ESP32) tft_settings.esp = 32; #else tft_settings.esp = -1; #endif #if defined(SUPPORT_TRANSACTIONS) tft_settings.trans = true; #else tft_settings.trans = false; #endif #if defined(ESP32_PARALLEL) tft_settings.serial = false; tft_settings.tft_spi_freq = 0; #else tft_settings.serial = true; tft_settings.tft_spi_freq = SPI_FREQUENCY / 100000; #ifdef SPI_READ_FREQUENCY tft_settings.tft_rd_freq = SPI_READ_FREQUENCY / 100000; #endif #endif #if defined(TFT_SPI_OVERLAP) tft_settings.overlap = true; #else tft_settings.overlap = false; #endif tft_settings.tft_driver = TFT_DRIVER; tft_settings.tft_width = _init_width; tft_settings.tft_height = _init_height; #ifdef CGRAM_OFFSET tft_settings.r0_x_offset = colstart; tft_settings.r0_y_offset = rowstart; tft_settings.r1_x_offset = 0; tft_settings.r1_y_offset = 0; tft_settings.r2_x_offset = 0; tft_settings.r2_y_offset = 0; tft_settings.r3_x_offset = 0; tft_settings.r3_y_offset = 0; #else tft_settings.r0_x_offset = 0; tft_settings.r0_y_offset = 0; tft_settings.r1_x_offset = 0; tft_settings.r1_y_offset = 0; tft_settings.r2_x_offset = 0; tft_settings.r2_y_offset = 0; tft_settings.r3_x_offset = 0; tft_settings.r3_y_offset = 0; #endif #if defined(TFT_MOSI) tft_settings.pin_tft_mosi = TFT_MOSI; #else tft_settings.pin_tft_mosi = -1; #endif #if defined(TFT_MISO) tft_settings.pin_tft_miso = TFT_MISO; #else tft_settings.pin_tft_miso = -1; #endif #if defined(TFT_SCLK) tft_settings.pin_tft_clk = TFT_SCLK; #else tft_settings.pin_tft_clk = -1; #endif #if defined(TFT_CS) tft_settings.pin_tft_cs = TFT_CS; #else tft_settings.pin_tft_cs = -1; #endif #if defined(TFT_DC) tft_settings.pin_tft_dc = TFT_DC; #else tft_settings.pin_tft_dc = -1; #endif #if defined(TFT_RD) tft_settings.pin_tft_rd = TFT_RD; #else tft_settings.pin_tft_rd = -1; #endif #if defined(TFT_WR) tft_settings.pin_tft_wr = TFT_WR; #else tft_settings.pin_tft_wr = -1; #endif #if defined(TFT_RST) tft_settings.pin_tft_rst = TFT_RST; #else tft_settings.pin_tft_rst = -1; #endif #if defined(ESP32_PARALLEL) tft_settings.pin_tft_d0 = TFT_D0; tft_settings.pin_tft_d1 = TFT_D1; tft_settings.pin_tft_d2 = TFT_D2; tft_settings.pin_tft_d3 = TFT_D3; tft_settings.pin_tft_d4 = TFT_D4; tft_settings.pin_tft_d5 = TFT_D5; tft_settings.pin_tft_d6 = TFT_D6; tft_settings.pin_tft_d7 = TFT_D7; #else tft_settings.pin_tft_d0 = -1; tft_settings.pin_tft_d1 = -1; tft_settings.pin_tft_d2 = -1; tft_settings.pin_tft_d3 = -1; tft_settings.pin_tft_d4 = -1; tft_settings.pin_tft_d5 = -1; tft_settings.pin_tft_d6 = -1; tft_settings.pin_tft_d7 = -1; #endif #if defined(TOUCH_CS) tft_settings.pin_tch_cs = TOUCH_CS; tft_settings.tch_spi_freq = SPI_TOUCH_FREQUENCY / 100000; #else tft_settings.pin_tch_cs = -1; tft_settings.tch_spi_freq = 0; #endif } //////////////////////////////////////////////////////////////////////////////////////// #ifdef TOUCH_CS #include "Extensions/Touch.cpp" #include "Extensions/Button.cpp" #endif //#include "Extensions/Sprite.cpp" #ifdef SMOOTH_FONT #include "Extensions/Smooth_font.cpp" #endif //////////////////////////////////////////////////////////////////////////////////////// ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/In_eSPI.h ================================================ /*************************************************** Arduino TFT graphics library targeted at ESP8266 and ESP32 based boards. This is a standalone library that contains the hardware driver, the graphics functions and the proportional fonts. The larger fonts are Run Length Encoded to reduce their FLASH footprint. ****************************************************/ // Stop fonts etc being loaded multiple times #ifndef _In_eSPIH_ #define _In_eSPIH_ #define TFT_ESPI_VERSION "1.4.5" //#define ESP32 //Just used to test ESP32 options // Include header file that defines the fonts loaded, the TFT drivers // available and the pins to be used #include "In_eSPI_Setup.h" #ifndef TAB_COLOUR #define TAB_COLOUR 0 #endif // If the frequency is not defined, set a default #ifndef SPI_FREQUENCY #define SPI_FREQUENCY 20000000 #endif // If the frequency is not defined, set a default #ifndef SPI_READ_FREQUENCY #define SPI_READ_FREQUENCY SPI_FREQUENCY #endif #ifdef ST7789_DRIVER #define TFT_SPI_MODE SPI_MODE3 #else #define TFT_SPI_MODE SPI_MODE0 #endif // If the frequency is not defined, set a default #ifndef SPI_TOUCH_FREQUENCY #define SPI_TOUCH_FREQUENCY 2500000 #endif // Use GLCD font in error case where user requests a smooth font file // that does not exist (this is a temporary fix to stop ESP32 reboot) #ifdef SMOOTH_FONT #ifndef LOAD_GLCD #define LOAD_GLCD #endif #endif // Only load the fonts defined in User_Setup.h (to save space) // Set flag so RLE rendering code is optionally compiled #ifdef LOAD_GLCD #include #endif #ifdef LOAD_FONT2 #include #endif #ifdef LOAD_FONT4 #include #define LOAD_RLE #endif #ifdef LOAD_FONT6 #include #ifndef LOAD_RLE #define LOAD_RLE #endif #endif #ifdef LOAD_FONT7 #include #ifndef LOAD_RLE #define LOAD_RLE #endif #endif #ifdef LOAD_FONT8 #include #ifndef LOAD_RLE #define LOAD_RLE #endif #elif defined LOAD_FONT8N #define LOAD_FONT8 #include #ifndef LOAD_RLE #define LOAD_RLE #endif #endif #include #include #include #include #ifdef ESP32 #include "soc/spi_reg.h" #ifdef USE_HSPI_PORT #define SPI_PORT HSPI #else #define SPI_PORT VSPI #endif #endif #ifdef SMOOTH_FONT // Call up the SPIFFS FLASH filing system for the anti-aliased fonts #define FS_NO_GLOBALS #include #ifdef ESP32 #include "SPIFFS.h" #endif #endif #ifndef TFT_DC #define DC_C // No macro allocated so it generates no code #define DC_D // No macro allocated so it generates no code #else #if defined(ESP8266) && (TFT_DC == 16) #define DC_C digitalWrite(TFT_DC, LOW) #define DC_D digitalWrite(TFT_DC, HIGH) #elif defined(ESP32) #if defined(ESP32_PARALLEL) #define DC_C GPIO.out_w1tc = (1 << TFT_DC) #define DC_D GPIO.out_w1ts = (1 << TFT_DC) #else #if TFT_DC >= 32 #ifdef RPI_ILI9486_DRIVER // RPi display needs a slower DC change #define DC_C \ GPIO.out1_w1ts.val = (1 << (TFT_DC - 32)); \ GPIO.out1_w1tc.val = (1 << (TFT_DC - 32)) #define DC_D \ GPIO.out1_w1tc.val = (1 << (TFT_DC - 32)); \ GPIO.out1_w1ts.val = (1 << (TFT_DC - 32)) #else #define DC_C \ GPIO.out1_w1tc.val = \ (1 << (TFT_DC - 32)) //;GPIO.out1_w1tc.val = (1 << (TFT_DC - 32)) #define DC_D \ GPIO.out1_w1ts.val = \ (1 << (TFT_DC - 32)) //;GPIO.out1_w1ts.val = (1 << (TFT_DC - 32)) #endif #else #if TFT_DC >= 0 #ifdef RPI_ILI9486_DRIVER // RPi display needs a slower DC change #define DC_C \ GPIO.out_w1ts = (1 << TFT_DC); \ GPIO.out_w1tc = (1 << TFT_DC) #define DC_D \ GPIO.out_w1tc = (1 << TFT_DC); \ GPIO.out_w1ts = (1 << TFT_DC) #else #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) #define DC_D GPIO.out_w1ts = (1 << TFT_DC) //;GPIO.out_w1ts = (1 << TFT_DC) #endif #else #define DC_C #define DC_D #endif #endif #endif #else #define DC_C GPOC = dcpinmask #define DC_D GPOS = dcpinmask #endif #endif #if defined(TFT_SPI_OVERLAP) #undef TFT_CS #define SPI1U_WRITE (SPIUMOSI | SPIUSSE | SPIUCSSETUP | SPIUCSHOLD) #define SPI1U_READ (SPIUMOSI | SPIUSSE | SPIUCSSETUP | SPIUCSHOLD | SPIUDUPLEX) #else #ifdef ESP8266 #define SPI1U_WRITE (SPIUMOSI | SPIUSSE) #define SPI1U_READ (SPIUMOSI | SPIUSSE | SPIUDUPLEX) #endif #endif #ifndef TFT_CS #define CS_L // No macro allocated so it generates no code #define CS_H // No macro allocated so it generates no code #else #if defined(ESP8266) && (TFT_CS == 16) #define CS_L digitalWrite(TFT_CS, LOW) #define CS_H digitalWrite(TFT_CS, HIGH) #elif defined(ESP32) #if defined(ESP32_PARALLEL) #define CS_L // The TFT CS is set permanently low during init() #define CS_H #else #if TFT_CS >= 32 #ifdef RPI_ILI9486_DRIVER // RPi display needs a slower CS change #define CS_L \ GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)); \ GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)) #define CS_H \ GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)); \ GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)) #else #define CS_L \ GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)); \ GPIO.out1_w1tc.val = (1 << (TFT_CS - 32)) #define CS_H \ GPIO.out1_w1ts.val = \ (1 << (TFT_CS - 32)) //;GPIO.out1_w1ts.val = (1 << (TFT_CS - 32)) #endif #else #if TFT_CS >= 0 #ifdef RPI_ILI9486_DRIVER // RPi display needs a slower CS change #define CS_L \ GPIO.out_w1ts = (1 << TFT_CS); \ GPIO.out_w1tc = (1 << TFT_CS) #define CS_H \ GPIO.out_w1tc = (1 << TFT_CS); \ GPIO.out_w1ts = (1 << TFT_CS) #else #define CS_L \ GPIO.out_w1tc = (1 << TFT_CS); \ GPIO.out_w1tc = (1 << TFT_CS) #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) #endif #else #define CS_L #define CS_H #endif #endif #endif #else #define CS_L GPOC = cspinmask #define CS_H GPOS = cspinmask #endif #endif // Use single register write for CS_L and DC_C if pins are both in range 0-31 #ifdef ESP32 #ifdef TFT_CS #if (TFT_CS >= 0) && (TFT_CS < 32) && (TFT_DC >= 0) && (TFT_DC < 32) #ifdef RPI_ILI9486_DRIVER // RPi display needs a slower CD and DC change #define CS_L_DC_C \ GPIO.out_w1tc = ((1 << TFT_CS) | (1 << TFT_DC)); \ GPIO.out_w1tc = ((1 << TFT_CS) | (1 << TFT_DC)) #else #define CS_L_DC_C \ GPIO.out_w1tc = ((1 << TFT_CS) | (1 << TFT_DC)); \ GPIO.out_w1tc = ((1 << TFT_CS) | (1 << TFT_DC)) #endif #else #define CS_L_DC_C \ CS_L; \ DC_C #endif #else #define CS_L_DC_C \ CS_L; \ DC_C #endif #else // ESP8266 #define CS_L_DC_C \ CS_L; \ DC_C #endif // chip select signal for touchscreen #ifndef TOUCH_CS #define T_CS_L // No macro allocated so it generates no code #define T_CS_H // No macro allocated so it generates no code #else #define T_CS_L digitalWrite(TOUCH_CS, LOW) #define T_CS_H digitalWrite(TOUCH_CS, HIGH) #endif #ifdef TFT_WR #if defined(ESP32) #define WR_L GPIO.out_w1tc = (1 << TFT_WR) #define WR_H GPIO.out_w1ts = (1 << TFT_WR) #else #define WR_L GPOC = wrpinmask #define WR_H GPOS = wrpinmask #endif #endif #ifdef ESP8266 // Concatenate two 16 bit values for the SPI 32 bit register write #define SPI_32(H, L) ((H) << 16 | (L)) #define COL_32(H, L) ((H) << 16 | (L)) #else #if defined(ESP32_PARALLEL) || defined(ILI9488_DRIVER) #define SPI_32(H, L) ((H) << 16 | (L)) #else #define SPI_32(H, L) (((H) << 8 | (H) >> 8) | (((L) << 8 | (L) >> 8) << 16)) #endif // Swap byte order for concatenated 16 bit colors // AB CD -> DCBA for 32 bit register write #define COL_32(H, L) (((H) << 8 | (H) >> 8) | (((L) << 8 | (L) >> 8) << 16)) #endif #if defined(ESP32) && defined(ESP32_PARALLEL) // Mask for the 8 data bits to set pin directions #define dir_mask \ ((1 << TFT_D0) | (1 << TFT_D1) | (1 << TFT_D2) | (1 << TFT_D3) | \ (1 << TFT_D4) | (1 << TFT_D5) | (1 << TFT_D6) | (1 << TFT_D7)) // Data bits and the write line are cleared to 0 in one step #define clr_mask (dir_mask | (1 << TFT_WR)) // A lookup table is used to set the different bit patterns, this uses 1kByte of // RAM #define set_mask(C) \ xset_mask[C] // 63fps Sprite rendering test 33% faster, graphicstest // only 1.8% faster than shifting in real time // Real-time shifting alternative to above to save 1KByte RAM, 47 fps Sprite // rendering test /*#define set_mask(C) ((C&0x80)>>7)<>6)<>5)<>4)<>3)<>2)<>1)<>0)<> 0)); \ WR_H #else #define tft_Write_16(C) \ GPIO.out_w1tc = clr_mask; \ GPIO.out_w1ts = set_mask((uint8_t)(C >> 8)); \ WR_H; \ GPIO.out_w1tc = clr_mask; \ GPIO.out_w1ts = set_mask((uint8_t)(C >> 0)); \ WR_H #endif // 16 bit write with swapped bytes #define tft_Write_16S(C) \ GPIO.out_w1tc = clr_mask; \ GPIO.out_w1ts = set_mask((uint8_t)(C >> 0)); \ WR_H; \ GPIO.out_w1tc = clr_mask; \ GPIO.out_w1ts = set_mask((uint8_t)(C >> 8)); \ WR_H // Write 32 bits to TFT #define tft_Write_32(C) \ GPIO.out_w1tc = clr_mask; \ GPIO.out_w1ts = set_mask((uint8_t)(C >> 24)); \ WR_H; \ GPIO.out_w1tc = clr_mask; \ GPIO.out_w1ts = set_mask((uint8_t)(C >> 16)); \ WR_H; \ GPIO.out_w1tc = clr_mask; \ GPIO.out_w1ts = set_mask((uint8_t)(C >> 8)); \ WR_H; \ GPIO.out_w1tc = clr_mask; \ GPIO.out_w1ts = set_mask((uint8_t)(C >> 0)); \ WR_H #ifdef TFT_RD #define RD_L GPIO.out_w1tc = (1 << TFT_RD) //#define RD_L digitalWrite(TFT_WR, LOW) #define RD_H GPIO.out_w1ts = (1 << TFT_RD) //#define RD_H digitalWrite(TFT_WR, HIGH) #endif #elif defined( \ ILI9488_DRIVER) // 16 bit colour converted to 3 bytes for 18 bit RGB // Write 8 bits to TFT #define tft_Write_8(C) spi.transfer(C) // Convert 16 bit colour to 18 bit and write in 3 bytes #define tft_Write_16(C) \ spi.transfer((C & 0xF800) >> 8); \ spi.transfer((C & 0x07E0) >> 3); \ spi.transfer((C & 0x001F) << 3) // Convert swapped byte 16 bit colour to 18 bit and write in 3 bytes #define tft_Write_16S(C) \ spi.transfer(C & 0xF8); \ spi.transfer((C & 0xE0) >> 11 | (C & 0x07) << 5); \ spi.transfer((C & 0x1F00) >> 5) // Write 32 bits to TFT #define tft_Write_32(C) spi.write32(C) #elif defined(RPI_ILI9486_DRIVER) #define tft_Write_8(C) \ spi.transfer(0); \ spi.transfer(C) #define tft_Write_16(C) spi.write16(C) #define tft_Write_16S(C) spi.write16(C << 8 | C >> 8) #define tft_Write_32(C) spi.write32(C) #elif defined ESP8266 #define tft_Write_8(C) spi.write(C) #define tft_Write_16(C) spi.write16(C) #define tft_Write_32(C) spi.write32(C) #else // ESP32 using SPI with 16 bit color display // ESP32 low level SPI writes for 8, 16 and 32 bit values // to avoid the function call overhead // Write 8 bits #define tft_Write_8(C) \ WRITE_PERI_REG(SPI_MOSI_DLEN_REG(SPI_PORT), 8 - 1); \ WRITE_PERI_REG(SPI_W0_REG(SPI_PORT), C); \ SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_USR); \ while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT)) & SPI_USR) \ ; // Write 16 bits with corrected endianess for 16 bit colours #define tft_Write_16(C) \ WRITE_PERI_REG(SPI_MOSI_DLEN_REG(SPI_PORT), 16 - 1); \ WRITE_PERI_REG(SPI_W0_REG(SPI_PORT), C << 8 | C >> 8); \ SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_USR); \ while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT)) & SPI_USR) \ ; // Write 16 bits #define tft_Write_16S(C) \ WRITE_PERI_REG(SPI_MOSI_DLEN_REG(SPI_PORT), 16 - 1); \ WRITE_PERI_REG(SPI_W0_REG(SPI_PORT), C); \ SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_USR); \ while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT)) & SPI_USR) \ ; // Write 32 bits #define tft_Write_32(C) \ WRITE_PERI_REG(SPI_MOSI_DLEN_REG(SPI_PORT), 32 - 1); \ WRITE_PERI_REG(SPI_W0_REG(SPI_PORT), C); \ SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_USR); \ while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT)) & SPI_USR) \ ; #endif #if !defined(ESP32_PARALLEL) // Read from display using SPI or software SPI #if defined(ESP8266) && defined(TFT_SDA_READ) // Use a bit banged function call for ESP8266 and bi-directional SDA pin #define SCLK_L GPOC = sclkpinmask #define SCLK_H GPOS = sclkpinmask #else // Use a SPI read transfer #define tft_Read_8() spi.transfer(0) #endif // Make sure TFT_MISO is defined if not used to avoid an error message #ifndef TFT_MISO #define TFT_MISO -1 #endif #endif #ifdef LOAD_GFXFF // We can include all the free fonts and they will only be built into // the sketch if they are used #include // Call up any user custom fonts // #include // New custom font file #includes #include // CF_OL24 #include // CF_OL32 #include // CF_RT24 #include // CF_S24 #include // CF_Y32 // Original Adafruit_GFX "Free Fonts" #include // TT1 #include // FF1 or FM9 #include // FF2 or FM12 #include // FF3 or FM18 #include // FF4 or FM24 #include // FF5 or FMO9 #include // FF6 or FMO12 #include // FF7 or FMO18 #include // FF8 or FMO24 #include // FF9 or FMB9 #include // FF10 or FMB12 #include // FF11 or FMB18 #include // FF12 or FMB24 #include // FF13 or FMBO9 #include // FF14 or FMBO12 #include // FF15 or FMBO18 #include // FF16 or FMBO24 // Sans serif fonts #include // FF17 or FSS9 #include // FF18 or FSS12 #include // FF19 or FSS18 #include // FF20 or FSS24 #include // FF21 or FSSO9 #include // FF22 or FSSO12 #include // FF23 or FSSO18 #include // FF24 or FSSO24 #include // FF25 or FSSB9 #include // FF26 or FSSB12 #include // FF27 or FSSB18 #include // FF28 or FSSB24 #include // FF29 or FSSBO9 #include // FF30 or FSSBO12 #include // FF31 or FSSBO18 #include // FF32 or FSSBO24 // Serif fonts #include // FF33 or FS9 #include // FF34 or FS12 #include // FF35 or FS18 #include // FF36 or FS24 #include // FF37 or FSI9 #include // FF38 or FSI12 #include // FF39 or FSI18 #include // FF40 or FSI24 #include // FF41 or FSB9 #include // FF42 or FSB12 #include // FF43 or FSB18 #include // FF44 or FSB24 #include // FF45 or FSBI9 #include // FF46 or FSBI12 #include // FF47 or FSBI18 #include // FF48 or FSBI24 #endif // #ifdef LOAD_GFXFF // These enumerate the text plotting alignment (reference datum point) #define TL_DATUM 0 // Top left (default) #define TC_DATUM 1 // Top centre #define TR_DATUM 2 // Top right #define ML_DATUM 3 // Middle left #define CL_DATUM 3 // Centre left, same as above #define MC_DATUM 4 // Middle centre #define CC_DATUM 4 // Centre centre, same as above #define MR_DATUM 5 // Middle right #define CR_DATUM 5 // Centre right, same as above #define BL_DATUM 6 // Bottom left #define BC_DATUM 7 // Bottom centre #define BR_DATUM 8 // Bottom right #define L_BASELINE \ 9 // Left character baseline (Line the 'A' character would sit on) #define C_BASELINE 10 // Centre character baseline #define R_BASELINE 11 // Right character baseline // New color definitions use for all my libraries #define TFT_BLACK 0x0000 /* 0, 0, 0 */ #define TFT_NAVY 0x000F /* 0, 0, 128 */ #define TFT_DARKGREEN 0x03E0 /* 0, 128, 0 */ #define TFT_DARKCYAN 0x03EF /* 0, 128, 128 */ #define TFT_MAROON 0x7800 /* 128, 0, 0 */ #define TFT_PURPLE 0x780F /* 128, 0, 128 */ #define TFT_OLIVE 0x7BE0 /* 128, 128, 0 */ #define TFT_LIGHTGREY 0xC618 /* 192, 192, 192 */ #define TFT_DARKGREY 0x7BEF /* 128, 128, 128 */ #define TFT_BLUE 0x001F /* 0, 0, 255 */ #define TFT_GREEN 0x07E0 /* 0, 255, 0 */ #define TFT_CYAN 0x07FF /* 0, 255, 255 */ #define TFT_RED 0xF800 /* 255, 0, 0 */ #define TFT_MAGENTA 0xF81F /* 255, 0, 255 */ #define TFT_YELLOW 0xFFE0 /* 255, 255, 0 */ #define TFT_WHITE 0xFFFF /* 255, 255, 255 */ #define TFT_ORANGE 0xFDA0 /* 255, 180, 0 */ #define TFT_GREENYELLOW 0xB7E0 /* 180, 255, 0 */ #define TFT_PINK 0xFC9F #define BLACK 0x0000 /* 0, 0, 0 */ #define NAVY 0x000F /* 0, 0, 128 */ #define DARKGREEN 0x03E0 /* 0, 128, 0 */ #define DARKCYAN 0x03EF /* 0, 128, 128 */ #define MAROON 0x7800 /* 128, 0, 0 */ #define PURPLE 0x780F /* 128, 0, 128 */ #define OLIVE 0x7BE0 /* 128, 128, 0 */ #define LIGHTGREY 0xC618 /* 192, 192, 192 */ #define DARKGREY 0x7BEF /* 128, 128, 128 */ #define BLUE 0x001F /* 0, 0, 255 */ #define GREEN 0x07E0 /* 0, 255, 0 */ #define CYAN 0x07FF /* 0, 255, 255 */ #define RED 0xF800 /* 255, 0, 0 */ #define MAGENTA 0xF81F /* 255, 0, 255 */ #define YELLOW 0xFFE0 /* 255, 255, 0 */ #define WHITE 0xFFFF /* 255, 255, 255 */ #define ORANGE 0xFDA0 /* 255, 180, 0 */ #define GREENYELLOW 0xB7E0 /* 180, 255, 0 */ #define PINK 0xFC9F // Next is a special 16 bit colour value that encodes to 8 bits // and will then decode back to the same 16 bit value. // Convenient for 8 bit and 16 bit transparent sprites. #define TFT_TRANSPARENT 0x0120 // Swap any type template static inline void swap_coord(T &a, T &b) { T t = a; a = b; b = t; } #ifndef min // Return minimum of two numbers, may already be defined #define min(a, b) (((a) < (b)) ? (a) : (b)) #endif // This structure allows sketches to retrieve the user setup parameters at // runtime by calling getSetup(), zero impact on code size unless used, mainly // for diagnostics typedef struct { String version = TFT_ESPI_VERSION; int16_t esp; uint8_t trans; uint8_t serial; uint8_t overlap; #if defined(ESP32) #if defined(USE_HSPI_PORT) uint8_t port = HSPI; #else uint8_t port = VSPI; #endif #endif uint16_t tft_driver; // Hexadecimal code uint16_t tft_width; // Rotation 0 width and height uint16_t tft_height; uint8_t r0_x_offset; // Offsets, not all used yet uint8_t r0_y_offset; uint8_t r1_x_offset; uint8_t r1_y_offset; uint8_t r2_x_offset; uint8_t r2_y_offset; uint8_t r3_x_offset; uint8_t r3_y_offset; int8_t pin_tft_mosi; int8_t pin_tft_miso; int8_t pin_tft_clk; int8_t pin_tft_cs; int8_t pin_tft_dc; int8_t pin_tft_rd; int8_t pin_tft_wr; int8_t pin_tft_rst; int8_t pin_tft_d0; int8_t pin_tft_d1; int8_t pin_tft_d2; int8_t pin_tft_d3; int8_t pin_tft_d4; int8_t pin_tft_d5; int8_t pin_tft_d6; int8_t pin_tft_d7; int8_t pin_tch_cs; int16_t tft_spi_freq; int16_t tft_rd_freq; int16_t tch_spi_freq; } setup_t; // This is a structure to conveniently hold information on the default fonts // Stores pointer to font character image address table, width table and height // Create a null set in case some fonts not used (to prevent crash) const uint8_t widtbl_null[1] = {0}; PROGMEM const uint8_t chr_null[1] = {0}; PROGMEM const uint8_t *const chrtbl_null[1] = {chr_null}; typedef struct { const uint8_t *chartbl; const uint8_t *widthtbl; uint8_t height; uint8_t baseline; } fontinfo; // Now fill the structure const PROGMEM fontinfo fontdata[] = { #ifdef LOAD_GLCD {(const uint8_t *)font, widtbl_null, 0, 0}, #else {(const uint8_t *)chrtbl_null, widtbl_null, 0, 0}, #endif // GLCD font (Font 1) does not have all parameters {(const uint8_t *)chrtbl_null, widtbl_null, 8, 7}, #ifdef LOAD_FONT2 {(const uint8_t *)chrtbl_f16, widtbl_f16, chr_hgt_f16, baseline_f16}, #else {(const uint8_t *)chrtbl_null, widtbl_null, 0, 0}, #endif // Font 3 current unused {(const uint8_t *)chrtbl_null, widtbl_null, 0, 0}, #ifdef LOAD_FONT4 {(const uint8_t *)chrtbl_f32, widtbl_f32, chr_hgt_f32, baseline_f32}, #else {(const uint8_t *)chrtbl_null, widtbl_null, 0, 0}, #endif // Font 5 current unused {(const uint8_t *)chrtbl_null, widtbl_null, 0, 0}, #ifdef LOAD_FONT6 {(const uint8_t *)chrtbl_f64, widtbl_f64, chr_hgt_f64, baseline_f64}, #else {(const uint8_t *)chrtbl_null, widtbl_null, 0, 0}, #endif #ifdef LOAD_FONT7 {(const uint8_t *)chrtbl_f7s, widtbl_f7s, chr_hgt_f7s, baseline_f7s}, #else {(const uint8_t *)chrtbl_null, widtbl_null, 0, 0}, #endif #ifdef LOAD_FONT8 {(const uint8_t *)chrtbl_f72, widtbl_f72, chr_hgt_f72, baseline_f72} #else {(const uint8_t *)chrtbl_null, widtbl_null, 0, 0} #endif }; // Class functions and variables class TFT_eSPI : public Print { public: TFT_eSPI(int16_t _W = TFT_WIDTH, int16_t _H = TFT_HEIGHT); void init(uint8_t tc = TAB_COLOUR), begin(uint8_t tc = TAB_COLOUR); // Same - begin included for backwards // compatibility // These are virtual so the TFT_eSprite class can override them with sprite // specific functions virtual void drawPixel(int32_t x, int32_t y, uint32_t color), drawChar(int32_t x, int32_t y, uint16_t c, uint32_t color, uint32_t bg, uint8_t size), drawLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t color), drawFastVLine(int32_t x, int32_t y, int32_t h, uint32_t color), drawFastHLine(int32_t x, int32_t y, int32_t w, uint32_t color), fillRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color); virtual int16_t drawChar(uint16_t uniCode, int32_t x, int32_t y, uint8_t font), drawChar(uint16_t uniCode, int32_t x, int32_t y), height(void), width(void); // The TFT_eSprite class inherits the following functions void setWindow(int32_t xs, int32_t ys, int32_t xe, int32_t ye), pushColor(uint16_t color), pushColor(uint16_t color, uint32_t len), pushColors(uint16_t *data, uint32_t len, bool swap = true), // With byte swap option pushColors(uint8_t *data, uint32_t len), fillScreen(uint32_t color); void drawRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color), drawRoundRect(int32_t x0, int32_t y0, int32_t w, int32_t h, int32_t radius, uint32_t color), fillRoundRect(int32_t x0, int32_t y0, int32_t w, int32_t h, int32_t radius, uint32_t color), setRotation(uint8_t r), invertDisplay(boolean i), drawCircle(int32_t x0, int32_t y0, int32_t r, uint32_t color), drawCircleHelper(int32_t x0, int32_t y0, int32_t r, uint8_t cornername, uint32_t color), fillCircle(int32_t x0, int32_t y0, int32_t r, uint32_t color), fillCircleHelper(int32_t x0, int32_t y0, int32_t r, uint8_t cornername, int32_t delta, uint32_t color), drawEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_t color), fillEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_t color), drawTriangle(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t x2, int32_t y2, uint32_t color), fillTriangle(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t x2, int32_t y2, uint32_t color), drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color, uint16_t bgcolor), drawXBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color), drawXBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t fgcolor, uint16_t bgcolor), setBitmapColor(uint16_t fgcolor, uint16_t bgcolor), // For 1bpp sprites setPivot(int16_t x, int16_t y), setCursor(int16_t x, int16_t y), setCursor(int16_t x, int16_t y, uint8_t font), setTextColor(uint16_t color), setTextColor(uint16_t fgcolor, uint16_t bgcolor), setTextSize(uint8_t size), setTextWrap(boolean wrapX, boolean wrapY = false), setTextDatum(uint8_t datum), setTextPadding(uint16_t x_width), #ifdef LOAD_GFXFF setFreeFont(const GFXfont *f = NULL), setTextFont(uint8_t font), #else setFreeFont(uint8_t font), setTextFont(uint8_t font), #endif spiwrite(uint8_t), writecommand(uint8_t c), writedata(uint8_t d), commandList(const uint8_t *addr); uint8_t readcommand8(uint8_t cmd_function, uint8_t index = 0); uint16_t readcommand16(uint8_t cmd_function, uint8_t index = 0); uint32_t readcommand32(uint8_t cmd_function, uint8_t index = 0); // Read the colour of a pixel at x,y and return value in 565 format uint16_t readPixel(int32_t x0, int32_t y0); // The next functions can be used as a pair to copy screen blocks (or // horizontal/vertical lines) to another location Read a block of pixels to // a data buffer, buffer is 16 bit and the array size must be at least w * h void readRect(int32_t x0, int32_t y0, int32_t w, int32_t h, uint16_t *data); // Write a block of pixels to the screen void pushRect(int32_t x0, int32_t y0, int32_t w, int32_t h, uint16_t *data); // These are used to render images or sprites stored in RAM arrays void pushImage(int32_t x0, int32_t y0, int32_t w, int32_t h, uint16_t *data); void pushImage(int32_t x0, int32_t y0, int32_t w, int32_t h, uint16_t *data, uint16_t transparent); // These are used to render images stored in FLASH (PROGMEM) void pushImage(int32_t x0, int32_t y0, int32_t w, int32_t h, const uint16_t *data, uint16_t transparent); void pushImage(int32_t x0, int32_t y0, int32_t w, int32_t h, const uint16_t *data); // These are used by pushSprite for 1 and 8 bit colours void pushImage(int32_t x0, int32_t y0, int32_t w, int32_t h, uint8_t *data, bool bpp8 = true); void pushImage(int32_t x0, int32_t y0, int32_t w, int32_t h, uint8_t *data, uint8_t transparent, bool bpp8 = true); // Swap the byte order for pushImage() - corrects endianness void setSwapBytes(bool swap); bool getSwapBytes(void); // This next function has been used successfully to dump the TFT screen to a // PC for documentation purposes It reads a screen area and returns the RGB // 8 bit colour values of each pixel Set w and h to 1 to read 1 pixel's // colour. The data buffer must be at least w * h * 3 bytes void readRectRGB(int32_t x0, int32_t y0, int32_t w, int32_t h, uint8_t *data); uint8_t getRotation(void), getTextDatum(void), color16to8(uint16_t color565); // Convert 16 bit colour to 8 bits int16_t getCursorX(void), getCursorY(void); int16_t getPivotX(void), getPivotY(void); uint16_t fontsLoaded(void), color565(uint8_t red, uint8_t green, uint8_t blue), // Convert 8 bit red, green and blue to 16 bits color8to16(uint8_t color332); // Convert 8 bit colour to 16 bits int16_t drawNumber(long long_num, int32_t poX, int32_t poY, uint8_t font), drawNumber(long long_num, int32_t poX, int32_t poY), drawFloat(float floatNumber, uint8_t decimal, int32_t poX, int32_t poY, uint8_t font), drawFloat(float floatNumber, uint8_t decimal, int32_t poX, int32_t poY), // Handle char arrays drawString(const char *string, int32_t poX, int32_t poY, uint8_t font), drawString(const char *string, int32_t poX, int32_t poY), drawCentreString( const char *string, int32_t dX, int32_t poY, uint8_t font), // Deprecated, use setTextDatum() and drawString() drawRightString( const char *string, int32_t dX, int32_t poY, uint8_t font), // Deprecated, use setTextDatum() and drawString() // Handle String type drawString(const String &string, int32_t poX, int32_t poY, uint8_t font), drawString(const String &string, int32_t poX, int32_t poY), drawCentreString( const String &string, int32_t dX, int32_t poY, uint8_t font), // Deprecated, use setTextDatum() and drawString() drawRightString( const String &string, int32_t dX, int32_t poY, uint8_t font); // Deprecated, use setTextDatum() and drawString() int16_t textWidth(const char *string, uint8_t font), textWidth(const char *string), textWidth(const String &string, uint8_t font), textWidth(const String &string), fontHeight(int16_t font), fontHeight(void); void setAddrWindow(int32_t xs, int32_t ys, int32_t w, int32_t h); // Compatibility additions void startWrite(void); // Begin SPI transaction void writeColor( uint16_t color, uint32_t len); // Write colours without transaction overhead void endWrite(void); // End SPI transaction uint16_t decodeUTF8(uint8_t *buf, uint16_t *index, uint16_t remaining); uint16_t decodeUTF8(uint8_t c); size_t write(uint8_t); #ifdef TFT_SDA_READ #if defined(ESP8266) && defined(TFT_SDA_READ) uint8_t tft_Read_8(void); #endif void begin_SDA_Read(void); void end_SDA_Read(void); #endif // Set or get an arbitrary library attribute or configuration option void setAttribute(uint8_t id = 0, uint8_t a = 0); uint8_t getAttribute(uint8_t id = 0); void getSetup( setup_t &tft_settings); // Sketch provides the instance to populate int32_t cursor_x, cursor_y, padX; uint32_t textcolor, textbgcolor; uint32_t bitmap_fg, bitmap_bg; uint8_t textfont, // Current selected font textsize, // Current font size multiplier textdatum, // Text reference datum rotation; // Display rotation (0-3) int16_t _xpivot; // x pivot point coordinate int16_t _ypivot; // x pivot point coordinate uint8_t decoderState = 0; // UTF8 decoder state uint16_t decoderBuffer; // Unicode code-point buffer private: inline void spi_begin() __attribute__((always_inline)); inline void spi_end() __attribute__((always_inline)); inline void spi_begin_read() __attribute__((always_inline)); inline void spi_end_read() __attribute__((always_inline)); void readAddrWindow(int32_t xs, int32_t ys, int32_t w, int32_t h); uint8_t tabcolor, colstart = 0, rowstart = 0; // some ST7735 displays need this changed volatile uint32_t *dcport, *csport; uint32_t cspinmask, dcpinmask, wrpinmask, sclkpinmask; #if defined(ESP32_PARALLEL) uint32_t xclr_mask, xdir_mask, xset_mask[256]; #endif uint32_t lastColor = 0xFFFF; protected: int32_t win_xe, win_ye; int32_t _init_width, _init_height; // Display w/h as input, used by setRotation() int32_t _width, _height; // Display w/h as modified by current rotation int32_t addr_row, addr_col; uint32_t fontsloaded; uint8_t glyph_ab, // glyph delta Y (height) above baseline glyph_bb; // glyph delta Y (height) below baseline bool isDigits; // adjust bounding box for numbers to reduce visual jiggling bool textwrapX, textwrapY; // If set, 'wrap' text at right and optionally // bottom edge of display bool _swapBytes; // Swap the byte order for TFT pushImage() bool locked, inTransaction; // Transaction and mutex lock flags for ESP32 bool _booted; // init() or begin() has already run once bool _cp437; // If set, use correct CP437 charset (default is ON) bool _utf8; // If set, use UTF-8 decoder in print stream 'write()' function // (default ON) uint32_t _lastColor; // Buffered value of last colour used #ifdef LOAD_GFXFF GFXfont *gfxFont; #endif // Load the Touch extension #ifdef TOUCH_CS #include "Extensions/Touch.h" #endif // Load the Anti-aliased font extension #ifdef SMOOTH_FONT #include "Extensions/Smooth_font.h" #endif }; // End of class TFT_eSPI // Load the Button Class // #include "Extensions/Button.h" // Load the Sprite Class // #include "Extensions/Sprite.h" #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/In_eSPI_Setup.h ================================================ // USER DEFINED SETTINGS // Set driver type, fonts to be loaded, pins used and SPI control method etc // // See the User_Setup_Select.h file if you wish to be able to define multiple // setups and then easily select which setup file is used by the compiler. // // If this file is edited correctly then all the library example sketches // should run without the need to make any more changes for a particular // hardware setup! Note that some sketches are designed for a particular TFT // pixel width/height // ################################################################################## // // Section 1. Call up the right driver file and any options for it // // ################################################################################## #include "ST7789_Defines.h" // Only define one driver, the other ones must be commented out //#define ILI9341_DRIVER // #define ST7735_DRIVER // Define additional parameters below for this // display //#define ILI9163_DRIVER // Define additional parameters below for this // display #define S6D02A1_DRIVER #define RPI_ILI9486_DRIVER // 20MHz maximum // SPI #define HX8357D_DRIVER #define ILI9481_DRIVER #define ILI9486_DRIVER //#define ILI9488_DRIVER // WARNING: Do not connect ILI9488 display SDO to // MISO if other devices share the SPI bus (TFT SDO does NOT tristate when CS is // high) #define ST7789_DRIVER // Define additional parameters below for this display //#define R61581_DRIVER #define TFT_DRIVER 0x7789 // Some displays support SPI reads via the MISO pin, other displays have a // single bi-directional SDA pin and the library will try to read this via the // MOSI line. To use the SDA line for reading data from the TFT uncomment the // following line: // #define TFT_SDA_READ // This option if for ESP32 ONLY, tested with // ST7789 display only // For ST7789 ONLY, define the colour order IF the blue and red are swapped on // your display Try ONE option at a time to find the correct colour order for // your display // #define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue // #define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red // For M5Stack ESP32 module with integrated ILI9341 display ONLY, remove // in // line below // #define M5STACK // For ST7789, ST7735 and ILI9163 ONLY, define the pixel width and height in // portrait orientation #define TFT_WIDTH 135 // #define TFT_WIDTH 128 // #define TFT_WIDTH 240 // ST7789 240 x 240 and 240 x 320 #define TFT_HEIGHT 240 // #define TFT_HEIGHT 128 // #define TFT_HEIGHT 240 // ST7789 240 x 240 // #define TFT_HEIGHT 320 // ST7789 240 x 320 // For ST7735 ONLY, define the type of display, originally this was based on the // colour of the tab on the screen protector film but this is not always true, // so try out the different options below if the screen does not display // graphics correctly, e.g. colours wrong, mirror images, or tray pixels at the // edges. Comment out ALL BUT ONE of these options for a ST7735 display driver, // save this this User_Setup file, then rebuild and upload the sketch to the // board again: // #define ST7735_INITB // #define ST7735_GREENTAB // #define ST7735_GREENTAB2 //#define ST7735_GREENTAB3 // #define ST7735_GREENTAB128 // For 128 x 128 display //#define ST7735_GREENTAB160x80 // For 160 x 80 display (BGR, inverted, 26 // offset) // #define ST7735_REDTAB //#define ST7735_BLACKTAB //#define ST7735_REDTAB160x80 // For 160 x 80 display with 24 pixel offset // If colours are inverted (white shows as black) then uncomment one of the next // 2 lines try both options, one of the options should correct the inversion. // #define TFT_INVERSION_ON // #define TFT_INVERSION_OFF // If a backlight control signal is available then define the TFT_BL pin in // Section 2 below. The backlight will be turned ON when tft.begin() is called, // but the library needs to know if the LEDs are ON with the pin HIGH or LOW. If // the LEDs are to be driven with a PWM signal or turned OFF/ON then this must // be handled by the user sketch. e.g. with digitalWrite(TFT_BL, LOW); // #define TFT_BACKLIGHT_ON HIGH // HIGH or LOW are options // ################################################################################## // // Section 2. Define the pins that are used to interface with the display here // // ################################################################################## // We must use hardware SPI, a minimum of 3 GPIO pins is needed. // Typical setup for ESP8266 NodeMCU ESP-12 is : // // Display SDO/MISO to NodeMCU pin D6 (or leave disconnected if not reading // TFT) Display LED to NodeMCU pin VIN (or 5V, see below) Display SCK to // NodeMCU pin D5 Display SDI/MOSI to NodeMCU pin D7 Display DC (RS/AO)to // NodeMCU pin D3 Display RESET to NodeMCU pin D4 (or RST, see below) // Display CS to NodeMCU pin D8 (or GND, see below) // Display GND to NodeMCU pin GND (0V) // Display VCC to NodeMCU 5V or 3.3V // // The TFT RESET pin can be connected to the NodeMCU RST pin or 3.3V to free up // a control pin // // The DC (Data Command) pin may be labeled AO or RS (Register Select) // // With some displays such as the ILI9341 the TFT CS pin can be connected to GND // if no more SPI devices (e.g. an SD Card) are connected, in this case comment // out the #define TFT_CS line below so it is NOT defined. Other displays such // at the ST7735 require the TFT CS pin to be toggled during setup, so in these // cases the TFT_CS line must be defined and connected. // // The NodeMCU D0 pin can be used for RST // // // Note: only some versions of the NodeMCU provide the USB 5V on the VIN pin // If 5V is not available at a pin you can use 3.3V but backlight brightness // will be lower. // ###### EDIT THE PIN NUMBERS IN THE LINES FOLLOWING TO SUIT YOUR ESP8266 SETUP // ###### // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin // designation //#define TFT_CS PIN_D8 // Chip select control pin D8 //#define TFT_DC PIN_D3 // Data Command control pin //#define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next // line) #define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is // connected to NodeMCU RST or 3.3V //#define TFT_BL PIN_D1 // LED back-light (only for ST7789 with backlight // control pin) //#define TOUCH_CS PIN_D2 // Chip select pin (T_CS) of touch screen //#define TFT_WR PIN_D2 // Write strobe for modified Raspberry Pi TFT only // ###### FOR ESP8266 OVERLAP MODE EDIT THE PIN NUMBERS IN THE FOLLOWING LINES // ###### // Overlap mode shares the ESP8266 FLASH SPI bus with the TFT so has a // performance impact but saves pins for other functions. Use NodeMCU SD0=MISO, // SD1=MOSI, CLK=SCLK to connect to TFT in overlap mode // In ESP8266 overlap mode the following must be defined //#define TFT_SPI_OVERLAP // In ESP8266 overlap mode the TFT chip select MUST connect to pin D3 //#define TFT_CS PIN_D3 //#define TFT_DC PIN_D5 // Data Command control pin //#define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next // line) #define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is // connected to NodeMCU RST or 3.3V // ###### EDIT THE PIN NUMBERS IN THE LINES FOLLOWING TO SUIT YOUR ESP32 SETUP // ###### // For ESP32 Dev board (only tested with ILI9341 display) // The hardware SPI can be mapped to any pins //#define TFT_MISO 19 //#define TFT_MOSI 23 //#define TFT_SCLK 18 //#define TFT_CS 15 // Chip select control pin //#define TFT_DC 2 // Data Command control pin //#define TFT_RST 4 // Reset pin (could connect to RST pin) //#define TFT_RST -1 // Set TFT_RST to -1 if display RESET is connected to // ESP32 board RST //#define TFT_BL 32 // LED back-light (only for ST7789 with backlight control // pin) //#define TOUCH_CS 21 // Chip select pin (T_CS) of touch screen //#define TFT_WR 22 // Write strobe for modified Raspberry Pi TFT only // For the M5Stack module use these #define lines //#define TFT_MISO 19 //#define TFT_MOSI 23 //#define TFT_SCLK 18 //#define TFT_CS 14 // Chip select control pin //#define TFT_DC 27 // Data Command control pin //#define TFT_RST 33 // Reset pin (could connect to Arduino RESET pin) //#define TFT_BL 32 // LED back-light (required for M5Stack) #define TFT_MOSI 15 #define TFT_SCLK 13 #define TFT_CS 5 // Chip select line for TFT display on Shield #define TFT_DC 23 // Data/command line for TFT on Shield #define TFT_RST 18 // Reset line for TFT is handled by seesaw! // ###### EDIT THE PINs BELOW TO SUIT YOUR ESP32 PARALLEL TFT SETUP ###### // The library supports 8 bit parallel TFTs with the ESP32, the pin // selection below is compatible with ESP32 boards in UNO format. // Wemos D32 boards need to be modified, see diagram in Tools folder. // Only ILI9481 and ILI9341 based displays have been tested! // Parallel bus is only supported on ESP32 // Uncomment line below to use ESP32 Parallel interface instead of SPI //#define ESP32_PARALLEL // The ESP32 and TFT the pins used for testing are: //#define TFT_CS 33 // Chip select control pin (library pulls permanently low //#define TFT_DC 15 // Data Command control pin - must use a pin in the range // 0-31 #define TFT_RST 32 // Reset pin, toggles on startup //#define TFT_WR 4 // Write strobe control pin - must use a pin in the range // 0-31 #define TFT_RD 2 // Read strobe control pin //#define TFT_D0 12 // Must use pins in the range 0-31 for the data bus //#define TFT_D1 13 // so a single register write sets/clears all bits. //#define TFT_D2 26 // Pins can be randomly assigned, this does not affect //#define TFT_D3 25 // TFT screen update performance. //#define TFT_D4 17 //#define TFT_D5 16 //#define TFT_D6 27 //#define TFT_D7 14 // ################################################################################## // // Section 3. Define the fonts that are to be used here // // ################################################################################## // Comment out the #defines below with // to stop that font being loaded // The ESP8366 and ESP32 have plenty of memory so commenting out fonts is not // normally necessary. If all fonts are loaded the extra FLASH space required is // about 17Kbytes. To save FLASH space only enable the fonts you need! #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes // in FLASH #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in // FLASH, 96 characters #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in // FLASH, 96 characters //#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, // only characters 1234567890:-.apm //#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in // FLASH, only characters 1234567890:-. //#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, // only characters 1234567890:-. //#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, // so 3 digits fit a 160 pixel TFT #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free // fonts FF1 to FF48 and custom fonts // Comment out the #define below to stop the SPIFFS filing system and smooth // font code being loaded this will save ~20kbytes of FLASH //#define SMOOTH_FONT // ################################################################################## // // Section 4. Other options // // ################################################################################## // Define the SPI clock frequency, this affects the graphics rendering speed. // Too fast and the TFT driver will not keep up and display corruption appears. // With an ILI9341 display 40MHz works OK, 80MHz sometimes fails // With a ST7735 display more than 27MHz may not work (spurious pixels and // lines) With an ILI9163 display 27 MHz works OK. The RPi typically only works // at 20MHz maximum. // #define SPI_FREQUENCY 1000000 // #define SPI_FREQUENCY 5000000 // #define SPI_FREQUENCY 10000000 // #define SPI_FREQUENCY 20000000 #define SPI_FREQUENCY 27000000 // Actually sets it to 26.67MHz = 80/3 // #define SPI_FREQUENCY 40000000 // Maximum to use SPIFFS // #define SPI_FREQUENCY 80000000 // Optional reduced SPI frequency for reading TFT #define SPI_READ_FREQUENCY 20000000 // The XPT2046 requires a lower SPI clock rate of 2.5MHz so we define that here: #define SPI_TOUCH_FREQUENCY 2500000 // The ESP32 has 2 free SPI ports i.e. VSPI and HSPI, the VSPI is the default. // If the VSPI port is in use and pins are not accessible (e.g. TTGO T-Beam) // then uncomment the following line: //#define USE_HSPI_PORT // Comment out the following #define if "SPI Transactions" do not need to be // supported. When commented out the code size will be smaller and sketches will // run slightly faster, so leave it commented out unless you need it! // Transaction support is needed to work with SD library but not needed with // TFT_SdFat Transaction support is required if other SPI devices are connected. // Transactions are automatically enabled by the library for an ESP32 (to use // HAL mutex) so changing it here has no effect // #define SUPPORT_TRANSACTIONS ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/MPU6886.cpp ================================================ #include "MPU6886.h" #include #include MPU6886::MPU6886() { } void MPU6886::I2C_Read_NBytes(uint8_t driver_Addr, uint8_t start_Addr, uint8_t number_Bytes, uint8_t* read_Buffer) { Wire1.beginTransmission(driver_Addr); Wire1.write(start_Addr); Wire1.endTransmission(false); uint8_t i = 0; Wire1.requestFrom(driver_Addr, number_Bytes); //! Put read results in the Rx buffer while (Wire1.available()) { read_Buffer[i++] = Wire1.read(); } } void MPU6886::I2C_Write_NBytes(uint8_t driver_Addr, uint8_t start_Addr, uint8_t number_Bytes, uint8_t* write_Buffer) { Wire1.beginTransmission(driver_Addr); Wire1.write(start_Addr); Wire1.write(*write_Buffer); Wire1.endTransmission(); } int MPU6886::Init(void) { unsigned char tempdata[1]; unsigned char regdata; Wire1.begin(21, 22); I2C_Read_NBytes(MPU6886_ADDRESS, MPU6886_WHOAMI, 1, tempdata); if (tempdata[0] != 0x19) return -1; delay(1); regdata = 0x00; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_PWR_MGMT_1, 1, ®data); delay(10); regdata = (0x01 << 7); I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_PWR_MGMT_1, 1, ®data); delay(10); regdata = (0x01 << 0); I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_PWR_MGMT_1, 1, ®data); delay(10); regdata = 0x10; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_ACCEL_CONFIG, 1, ®data); delay(1); regdata = 0x18; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_GYRO_CONFIG, 1, ®data); delay(1); regdata = 0x01; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_CONFIG, 1, ®data); delay(1); regdata = 0x05; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_SMPLRT_DIV, 1, ®data); delay(1); regdata = 0x00; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_INT_ENABLE, 1, ®data); delay(1); regdata = 0x00; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_ACCEL_CONFIG2, 1, ®data); delay(1); regdata = 0x00; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_USER_CTRL, 1, ®data); delay(1); regdata = 0x00; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_FIFO_EN, 1, ®data); delay(1); regdata = 0x22; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_INT_PIN_CFG, 1, ®data); delay(1); regdata = 0x01; I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_INT_ENABLE, 1, ®data); delay(100); getGres(); getAres(); return 0; } void MPU6886::getAccelAdc(int16_t* ax, int16_t* ay, int16_t* az) { uint8_t buf[6]; I2C_Read_NBytes(MPU6886_ADDRESS, MPU6886_ACCEL_XOUT_H, 6, buf); *ax = ((int16_t)buf[0] << 8) | buf[1]; *ay = ((int16_t)buf[2] << 8) | buf[3]; *az = ((int16_t)buf[4] << 8) | buf[5]; } void MPU6886::getGyroAdc(int16_t* gx, int16_t* gy, int16_t* gz) { uint8_t buf[6]; I2C_Read_NBytes(MPU6886_ADDRESS, MPU6886_GYRO_XOUT_H, 6, buf); *gx = ((uint16_t)buf[0] << 8) | buf[1]; *gy = ((uint16_t)buf[2] << 8) | buf[3]; *gz = ((uint16_t)buf[4] << 8) | buf[5]; } void MPU6886::getTempAdc(int16_t* t) { uint8_t buf[2]; I2C_Read_NBytes(MPU6886_ADDRESS, MPU6886_TEMP_OUT_H, 2, buf); *t = ((uint16_t)buf[0] << 8) | buf[1]; } //!俯仰,航向,横滚:pitch,yaw,roll,指三维空间中飞行器的旋转状态。 void MPU6886::getAhrsData(float* pitch, float* roll, float* yaw) { float accX = 0; float accY = 0; float accZ = 0; float gyroX = 0; float gyroY = 0; float gyroZ = 0; getGyroData(&gyroX, &gyroY, &gyroZ); getAccelData(&accX, &accY, &accZ); MahonyAHRSupdateIMU(gyroX * DEG_TO_RAD, gyroY * DEG_TO_RAD, gyroZ * DEG_TO_RAD, accX, accY, accZ, pitch, roll, yaw); } void MPU6886::getGres() { switch (Gyscale) { // Possible gyro scales (and their register bit settings) are: case GFS_250DPS: gRes = 250.0 / 32768.0; break; case GFS_500DPS: gRes = 500.0 / 32768.0; break; case GFS_1000DPS: gRes = 1000.0 / 32768.0; break; case GFS_2000DPS: gRes = 2000.0 / 32768.0; break; } } void MPU6886::getAres() { switch (Acscale) { // Possible accelerometer scales (and their register bit settings) // are: 2 Gs (00), 4 Gs (01), 8 Gs (10), and 16 Gs (11). Here's a // bit of an algorith to calculate DPS/(ADC tick) based on that // 2-bit value: case AFS_2G: aRes = 2.0 / 32768.0; break; case AFS_4G: aRes = 4.0 / 32768.0; break; case AFS_8G: aRes = 8.0 / 32768.0; break; case AFS_16G: aRes = 16.0 / 32768.0; break; } } void MPU6886::SetGyroFsr(Gscale scale) { // return IIC_Write_Byte(MPU_GYRO_CFG_REG,scale<<3);//设置陀螺仪满量程范围 unsigned char regdata; regdata = (scale << 3); I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_GYRO_CONFIG, 1, ®data); delay(10); Gyscale = scale; getGres(); } void MPU6886::SetAccelFsr(Ascale scale) { unsigned char regdata; regdata = (scale << 3); I2C_Write_NBytes(MPU6886_ADDRESS, MPU6886_ACCEL_CONFIG, 1, ®data); delay(10); Acscale = scale; getAres(); } void MPU6886::getAccelData(float* ax, float* ay, float* az) { int16_t accX = 0; int16_t accY = 0; int16_t accZ = 0; getAccelAdc(&accX, &accY, &accZ); *ax = (float)accX * aRes; *ay = (float)accY * aRes; *az = (float)accZ * aRes; } void MPU6886::getGyroData(float* gx, float* gy, float* gz) { int16_t gyroX = 0; int16_t gyroY = 0; int16_t gyroZ = 0; getGyroAdc(&gyroX, &gyroY, &gyroZ); *gx = (float)gyroX * gRes; *gy = (float)gyroY * gRes; *gz = (float)gyroZ * gRes; } void MPU6886::getTempData(float* t) { int16_t temp = 0; getTempAdc(&temp); *t = (float)temp / 326.8 + 25.0; } ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/MPU6886.h ================================================ /* Note: The MPU6886 is an I2C sensor and uses the Arduino Wire library. Because the sensor is not 5V tolerant, we are using a 3.3 V 8 MHz Pro Mini or a 3.3 V Teensy 3.1. We have disabled the internal pull-ups used by the Wire library in the Wire.h/twi.c utility file. We are also using the 400 kHz fast I2C mode by setting the TWI_FREQ to 400000L /twi.h utility file. */ #ifndef _MPU6886_H_ #define _MPU6886_H_ #include #include #include "MahonyAHRS.h" #define MPU6886_ADDRESS 0x68 #define MPU6886_WHOAMI 0x75 #define MPU6886_ACCEL_INTEL_CTRL 0x69 #define MPU6886_SMPLRT_DIV 0x19 #define MPU6886_INT_PIN_CFG 0x37 #define MPU6886_INT_ENABLE 0x38 #define MPU6886_ACCEL_XOUT_H 0x3B #define MPU6886_ACCEL_XOUT_L 0x3C #define MPU6886_ACCEL_YOUT_H 0x3D #define MPU6886_ACCEL_YOUT_L 0x3E #define MPU6886_ACCEL_ZOUT_H 0x3F #define MPU6886_ACCEL_ZOUT_L 0x40 #define MPU6886_TEMP_OUT_H 0x41 #define MPU6886_TEMP_OUT_L 0x42 #define MPU6886_GYRO_XOUT_H 0x43 #define MPU6886_GYRO_XOUT_L 0x44 #define MPU6886_GYRO_YOUT_H 0x45 #define MPU6886_GYRO_YOUT_L 0x46 #define MPU6886_GYRO_ZOUT_H 0x47 #define MPU6886_GYRO_ZOUT_L 0x48 #define MPU6886_USER_CTRL 0x6A #define MPU6886_PWR_MGMT_1 0x6B #define MPU6886_PWR_MGMT_2 0x6C #define MPU6886_CONFIG 0x1A #define MPU6886_GYRO_CONFIG 0x1B #define MPU6886_ACCEL_CONFIG 0x1C #define MPU6886_ACCEL_CONFIG2 0x1D #define MPU6886_FIFO_EN 0x23 //#define G (9.8) #define RtA 57.324841 #define AtR 0.0174533 #define Gyro_Gr 0.0010653 class MPU6886 { public: enum Ascale { AFS_2G = 0, AFS_4G, AFS_8G, AFS_16G }; enum Gscale { GFS_250DPS = 0, GFS_500DPS, GFS_1000DPS, GFS_2000DPS }; Gscale Gyscale = GFS_2000DPS; Ascale Acscale = AFS_8G; public: MPU6886(); int Init(void); void getAccelAdc(int16_t* ax, int16_t* ay, int16_t* az); void getGyroAdc(int16_t* gx, int16_t* gy, int16_t* gz); void getTempAdc(int16_t* t); void getAccelData(float* ax, float* ay, float* az); void getGyroData(float* gx, float* gy, float* gz); void getTempData(float* t); void SetGyroFsr(Gscale scale); void SetAccelFsr(Ascale scale); void getAhrsData(float* pitch, float* roll, float* yaw); public: float aRes, gRes; private: private: void I2C_Read_NBytes(uint8_t driver_Addr, uint8_t start_Addr, uint8_t number_Bytes, uint8_t* read_Buffer); void I2C_Write_NBytes(uint8_t driver_Addr, uint8_t start_Addr, uint8_t number_Bytes, uint8_t* write_Buffer); void getGres(); void getAres(); }; #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/MahonyAHRS.cpp ================================================ //===================================================================================================== // MahonyAHRS.c //===================================================================================================== // // Madgwick's implementation of Mayhony's AHRS algorithm. // See: http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms // // Date Author Notes // 29/09/2011 SOH Madgwick Initial release // 02/10/2011 SOH Madgwick Optimised for reduced CPU load // //===================================================================================================== //--------------------------------------------------------------------------------------------------- // Header files #include "MahonyAHRS.h" #include #include //--------------------------------------------------------------------------------------------------- // Definitions #define sampleFreq 25.0f // sample frequency in Hz #define twoKpDef (2.0f * 1.0f) // 2 * proportional gain #define twoKiDef (2.0f * 0.0f) // 2 * integral gain //#define twoKiDef (0.0f * 0.0f) //--------------------------------------------------------------------------------------------------- // Variable definitions volatile float twoKp = twoKpDef; // 2 * proportional gain (Kp) volatile float twoKi = twoKiDef; // 2 * integral gain (Ki) volatile float q0 = 1.0, q1 = 0.0, q2 = 0.0, q3 = 0.0; // quaternion of sensor frame relative to auxiliary frame volatile float integralFBx = 0.0f, integralFBy = 0.0f, integralFBz = 0.0f; // integral error terms scaled by Ki //--------------------------------------------------------------------------------------------------- // Function declarations // float invSqrt(float x); //==================================================================================================== // Functions //--------------------------------------------------------------------------------------------------- // AHRS algorithm update void MahonyAHRSupdate(float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz) { float recipNorm; float q0q0, q0q1, q0q2, q0q3, q1q1, q1q2, q1q3, q2q2, q2q3, q3q3; float hx, hy, bx, bz; float halfvx, halfvy, halfvz, halfwx, halfwy, halfwz; float halfex, halfey, halfez; float qa, qb, qc; // Use IMU algorithm if magnetometer measurement invalid (avoids NaN in // magnetometer normalisation) if ((mx == 0.0f) && (my == 0.0f) && (mz == 0.0f)) { // MahonyAHRSupdateIMU(gx, gy, gz, ax, ay, az); return; } // Compute feedback only if accelerometer measurement valid (avoids NaN in // accelerometer normalisation) if (!((ax == 0.0f) && (ay == 0.0f) && (az == 0.0f))) { // Normalise accelerometer measurement recipNorm = sqrt(ax * ax + ay * ay + az * az); ax *= recipNorm; ay *= recipNorm; az *= recipNorm; // Normalise magnetometer measurement recipNorm = sqrt(mx * mx + my * my + mz * mz); mx *= recipNorm; my *= recipNorm; mz *= recipNorm; // Auxiliary variables to avoid repeated arithmetic q0q0 = q0 * q0; q0q1 = q0 * q1; q0q2 = q0 * q2; q0q3 = q0 * q3; q1q1 = q1 * q1; q1q2 = q1 * q2; q1q3 = q1 * q3; q2q2 = q2 * q2; q2q3 = q2 * q3; q3q3 = q3 * q3; // Reference direction of Earth's magnetic field hx = 2.0f * (mx * (0.5f - q2q2 - q3q3) + my * (q1q2 - q0q3) + mz * (q1q3 + q0q2)); hy = 2.0f * (mx * (q1q2 + q0q3) + my * (0.5f - q1q1 - q3q3) + mz * (q2q3 - q0q1)); bx = sqrt(hx * hx + hy * hy); bz = 2.0f * (mx * (q1q3 - q0q2) + my * (q2q3 + q0q1) + mz * (0.5f - q1q1 - q2q2)); // Estimated direction of gravity and magnetic field halfvx = q1q3 - q0q2; halfvy = q0q1 + q2q3; halfvz = q0q0 - 0.5f + q3q3; halfwx = bx * (0.5f - q2q2 - q3q3) + bz * (q1q3 - q0q2); halfwy = bx * (q1q2 - q0q3) + bz * (q0q1 + q2q3); halfwz = bx * (q0q2 + q1q3) + bz * (0.5f - q1q1 - q2q2); // Error is sum of cross product between estimated direction and // measured direction of field vectors halfex = (ay * halfvz - az * halfvy) + (my * halfwz - mz * halfwy); halfey = (az * halfvx - ax * halfvz) + (mz * halfwx - mx * halfwz); halfez = (ax * halfvy - ay * halfvx) + (mx * halfwy - my * halfwx); // Compute and apply integral feedback if enabled if (twoKi > 0.0f) { integralFBx += twoKi * halfex * (1.0f / sampleFreq); // integral error scaled by Ki integralFBy += twoKi * halfey * (1.0f / sampleFreq); integralFBz += twoKi * halfez * (1.0f / sampleFreq); gx += integralFBx; // apply integral feedback gy += integralFBy; gz += integralFBz; } else { integralFBx = 0.0f; // prevent integral windup integralFBy = 0.0f; integralFBz = 0.0f; } // Apply proportional feedback gx += twoKp * halfex; gy += twoKp * halfey; gz += twoKp * halfez; } // Integrate rate of change of quaternion gx *= (0.5f * (1.0f / sampleFreq)); // pre-multiply common factors gy *= (0.5f * (1.0f / sampleFreq)); gz *= (0.5f * (1.0f / sampleFreq)); qa = q0; qb = q1; qc = q2; q0 += (-qb * gx - qc * gy - q3 * gz); q1 += (qa * gx + qc * gz - q3 * gy); q2 += (qa * gy - qb * gz + q3 * gx); q3 += (qa * gz + qb * gy - qc * gx); // Normalise quaternion recipNorm = sqrt(q0 * q0 + q1 * q1 + q2 * q2 + q3 * q3); q0 *= recipNorm; q1 *= recipNorm; q2 *= recipNorm; q3 *= recipNorm; } //--------------------------------------------------------------------------------------------------- // IMU algorithm update void MahonyAHRSupdateIMU(float gx, float gy, float gz, float ax, float ay, float az, float *pitch, float *roll, float *yaw) { float recipNorm; float halfvx, halfvy, halfvz; float halfex, halfey, halfez; float qa, qb, qc; // Compute feedback only if accelerometer measurement valid (avoids NaN in // accelerometer normalisation) if (!((ax == 0.0f) && (ay == 0.0f) && (az == 0.0f))) { // Normalise accelerometer measurement recipNorm = invSqrt(ax * ax + ay * ay + az * az); ax *= recipNorm; ay *= recipNorm; az *= recipNorm; // Estimated direction of gravity and vector perpendicular to magnetic // flux halfvx = q1 * q3 - q0 * q2; halfvy = q0 * q1 + q2 * q3; halfvz = q0 * q0 - 0.5f + q3 * q3; // Error is sum of cross product between estimated and measured // direction of gravity halfex = (ay * halfvz - az * halfvy); halfey = (az * halfvx - ax * halfvz); halfez = (ax * halfvy - ay * halfvx); // Compute and apply integral feedback if enabled if (twoKi > 0.0f) { integralFBx += twoKi * halfex * (1.0f / sampleFreq); // integral error scaled by Ki integralFBy += twoKi * halfey * (1.0f / sampleFreq); integralFBz += twoKi * halfez * (1.0f / sampleFreq); gx += integralFBx; // apply integral feedback gy += integralFBy; gz += integralFBz; } else { integralFBx = 0.0f; // prevent integral windup integralFBy = 0.0f; integralFBz = 0.0f; } // Apply proportional feedback gx += twoKp * halfex; gy += twoKp * halfey; gz += twoKp * halfez; } // Integrate rate of change of quaternion gx *= (0.5f * (1.0f / sampleFreq)); // pre-multiply common factors gy *= (0.5f * (1.0f / sampleFreq)); gz *= (0.5f * (1.0f / sampleFreq)); qa = q0; qb = q1; qc = q2; q0 += (-qb * gx - qc * gy - q3 * gz); q1 += (qa * gx + qc * gz - q3 * gy); q2 += (qa * gy - qb * gz + q3 * gx); q3 += (qa * gz + qb * gy - qc * gx); // Normalise quaternion recipNorm = invSqrt(q0 * q0 + q1 * q1 + q2 * q2 + q3 * q3); q0 *= recipNorm; q1 *= recipNorm; q2 *= recipNorm; q3 *= recipNorm; *pitch = asin(-2 * q1 * q3 + 2 * q0 * q2); // pitch *roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2 * q2 + 1); // roll *yaw = atan2(2 * (q1 * q2 + q0 * q3), q0 * q0 + q1 * q1 - q2 * q2 - q3 * q3); // yaw *pitch *= RAD_TO_DEG; *yaw *= RAD_TO_DEG; // Declination of SparkFun Electronics (40°05'26.6"N 105°11'05.9"W) is // 8° 30' E ± 0° 21' (or 8.5°) on 2016-07-19 // - http://www.ngdc.noaa.gov/geomag-web/#declination *yaw -= 8.5; *roll *= RAD_TO_DEG; /// Serial.printf("%f %f %f \r\n", pitch, roll, yaw); } //--------------------------------------------------------------------------------------------------- // Fast inverse square-root // See: http://en.wikipedia.org/wiki/Fast_inverse_square_root float invSqrt(float x) { float halfx = 0.5f * x; float y = x; #pragma GCC diagnostic ignored "-Wstrict-aliasing" long i = *(long *)&y; i = 0x5f3759df - (i >> 1); y = *(float *)&i; #pragma GCC diagnostic warning "-Wstrict-aliasing" y = y * (1.5f - (halfx * y * y)); return y; } //==================================================================================================== // END OF CODE //==================================================================================================== ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/MahonyAHRS.h ================================================ //===================================================================================================== // MahonyAHRS.h //===================================================================================================== // // Madgwick's implementation of Mayhony's AHRS algorithm. // See: http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms // // Date Author Notes // 29/09/2011 SOH Madgwick Initial release // 02/10/2011 SOH Madgwick Optimised for reduced CPU load // //===================================================================================================== #ifndef MahonyAHRS_h #define MahonyAHRS_h //---------------------------------------------------------------------------------------------------- // Variable declaration extern volatile float twoKp; // 2 * proportional gain (Kp) extern volatile float twoKi; // 2 * integral gain (Ki) // volatile float q0, q1, q2, q3; // quaternion of sensor frame relative to // auxiliary frame //--------------------------------------------------------------------------------------------------- // Function declarations void MahonyAHRSupdate(float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz); // void MahonyAHRSupdateIMU(float gx, float gy, float gz, float ax, float ay, // float az); void MahonyAHRSupdateIMU(float gx, float gy, float gz, float ax, float ay, float az, float *pitch, float *roll, float *yaw); float invSqrt(float x); #endif //===================================================================================================== // End of file //===================================================================================================== ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/ST7735_Defines.h ================================================ // Change the width and height if required (defined in portrait mode) // or use the constructor to over-ride defaults #ifndef TFT_WIDTH #define TFT_WIDTH 80 #endif #ifndef TFT_HEIGHT #define TFT_HEIGHT 160 #endif //#define ST7735_INITB // #define ST7735_INITB // #define ST7735_GREENTAB // #define ST7735_GREENTAB2 //#define ST7735_GREENTAB3 // #define ST7735_GREENTAB128 // For 128 x 128 display #define ST7735_GREENTAB160x80 // For 160 x 80 display (BGR, inverted, 26 // offset) //#define ST7735_REDTAB //#define ST7735_BLACKTAB //#define ST7735_REDTAB160x80 // Enumerate the different configurations #define INITR_GREENTAB 0x0 #define INITR_REDTAB 0x1 #define INITR_BLACKTAB 0x2 // Display with no offsets #define INITR_GREENTAB2 \ 0x3 // Use if you get random pixels on two edges of green tab display #define INITR_GREENTAB3 \ 0x4 // Use if you get random pixels on edge(s) of 128x128 screen #define INITR_GREENTAB128 \ 0x5 // Use if you only get part of 128x128 screen in rotation 0 & 1 #define INITR_GREENTAB160x80 \ 0x6 // Use if you only get part of 128x128 screen in rotation 0 & 1 #define INITR_REDTAB160x80 \ 0x7 // Added for // https://www.aliexpress.com/item/ShengYang-1pcs-IPS-0-96-inch-7P-SPI-HD-65K-Full-Color-OLED-Module-ST7735-Drive/32918394604.html #define INITB 0xB // Setup the tab color that will be used by the library setRotation() and setup // command list #if defined(ST7735_INITB) #define TAB_COLOUR INITB #elif defined(ST7735_GREENTAB) #define TAB_COLOUR INITR_GREENTAB #define CGRAM_OFFSET #elif defined(ST7735_GREENTAB2) #define TAB_COLOUR INITR_GREENTAB2 #define CGRAM_OFFSET #elif defined(ST7735_GREENTAB3) #define TAB_COLOUR INITR_GREENTAB3 #define CGRAM_OFFSET #elif defined(ST7735_GREENTAB128) #define TAB_COLOUR INITR_GREENTAB128 #define CGRAM_OFFSET #elif defined(ST7735_GREENTAB160x80) #define TAB_COLOUR INITR_GREENTAB160x80 #define CGRAM_OFFSET #elif defined(ST7735_REDTAB160x80) #define TAB_COLOUR INITR_REDTAB160x80 #define CGRAM_OFFSET #elif defined(ST7735_REDTAB) #define TAB_COLOUR INITR_REDTAB #elif defined(ST7735_BLACKTAB) #define TAB_COLOUR INITR_BLACKTAB #else // Make sure it is not undefined #define TAB_COLOUR INITR_BLACKTAB #endif // Color definitions for backwards compatibility with old sketches // use colour definitions like TFT_BLACK to make sketches more portable #define ST7735_BLACK 0x0000 /* 0, 0, 0 */ #define ST7735_NAVY 0x000F /* 0, 0, 128 */ #define ST7735_DARKGREEN 0x03E0 /* 0, 128, 0 */ #define ST7735_DARKCYAN 0x03EF /* 0, 128, 128 */ #define ST7735_MAROON 0x7800 /* 128, 0, 0 */ #define ST7735_PURPLE 0x780F /* 128, 0, 128 */ #define ST7735_OLIVE 0x7BE0 /* 128, 128, 0 */ #define ST7735_LIGHTGREY 0xC618 /* 192, 192, 192 */ #define ST7735_DARKGREY 0x7BEF /* 128, 128, 128 */ #define ST7735_BLUE 0x001F /* 0, 0, 255 */ #define ST7735_GREEN 0x07E0 /* 0, 255, 0 */ #define ST7735_CYAN 0x07FF /* 0, 255, 255 */ #define ST7735_RED 0xF800 /* 255, 0, 0 */ #define ST7735_MAGENTA 0xF81F /* 255, 0, 255 */ #define ST7735_YELLOW 0xFFE0 /* 255, 255, 0 */ #define ST7735_WHITE 0xFFFF /* 255, 255, 255 */ #define ST7735_ORANGE 0xFD20 /* 255, 165, 0 */ #define ST7735_GREENYELLOW 0xAFE5 /* 173, 255, 47 */ #define ST7735_PINK 0xF81F #define BLACK 0x0000 /* 0, 0, 0 */ #define NAVY 0x000F /* 0, 0, 128 */ #define DARKGREEN 0x03E0 /* 0, 128, 0 */ #define DARKCYAN 0x03EF /* 0, 128, 128 */ #define MAROON 0x7800 /* 128, 0, 0 */ #define PURPLE 0x780F /* 128, 0, 128 */ #define OLIVE 0x7BE0 /* 128, 128, 0 */ #define LIGHTGREY 0xC618 /* 192, 192, 192 */ #define DARKGREY 0x7BEF /* 128, 128, 128 */ #define BLUE 0x001F /* 0, 0, 255 */ #define GREEN 0x07E0 /* 0, 255, 0 */ #define CYAN 0x07FF /* 0, 255, 255 */ #define RED 0xF800 /* 255, 0, 0 */ #define MAGENTA 0xF81F /* 255, 0, 255 */ #define YELLOW 0xFFE0 /* 255, 255, 0 */ #define WHITE 0xFFFF /* 255, 255, 255 */ #define ORANGE 0xFD20 /* 255, 165, 0 */ #define GREENYELLOW 0xAFE5 /* 173, 255, 47 */ #define PINK 0xF81F // Delay between some initialisation commands #define TFT_INIT_DELAY 0x80 // Generic commands used by TFT_eSPI.cpp #define TFT_NOP 0x00 #define TFT_SWRST 0x01 #define TFT_CASET 0x2A #define TFT_PASET 0x2B #define TFT_RAMWR 0x2C #define TFT_RAMRD 0x2E #define TFT_IDXRD 0x00 // 0xDD // ILI9341 only, indexed control register read #define TFT_MADCTL 0x36 #define TFT_MAD_MY 0x80 #define TFT_MAD_MX 0x40 #define TFT_MAD_MV 0x20 #define TFT_MAD_ML 0x10 #define TFT_MAD_BGR 0x08 #define TFT_MAD_MH 0x04 #define TFT_MAD_RGB 0x00 #define TFT_INVOFF 0x20 #define TFT_INVON 0x21 // ST7735 specific commands used in init #define ST7735_NOP 0x00 #define ST7735_SWRESET 0x01 #define ST7735_RDDID 0x04 #define ST7735_RDDST 0x09 #define ST7735_SLPIN 0x10 #define ST7735_SLPOUT 0x11 #define ST7735_PTLON 0x12 #define ST7735_NORON 0x13 #define ST7735_INVOFF 0x20 #define ST7735_INVON 0x21 #define ST7735_DISPOFF 0x28 #define ST7735_DISPON 0x29 #define ST7735_CASET 0x2A #define ST7735_RASET 0x2B // PASET #define ST7735_RAMWR 0x2C #define ST7735_RAMRD 0x2E #define ST7735_PTLAR 0x30 // Add #define ST7735_VSCRDEF 0x33 #define ST7735_COLMOD 0x3A #define ST7735_MADCTL 0x36 #define ST7735_VSCRSADD 0x37 #define ST7735_FRMCTR1 0xB1 #define ST7735_FRMCTR2 0xB2 #define ST7735_FRMCTR3 0xB3 #define ST7735_INVCTR 0xB4 #define ST7735_DISSET5 0xB6 #define ST7735_PWCTR1 0xC0 #define ST7735_PWCTR2 0xC1 #define ST7735_PWCTR3 0xC2 #define ST7735_PWCTR4 0xC3 #define ST7735_PWCTR5 0xC4 #define ST7735_VMCTR1 0xC5 #define ST7735_RDID1 0xDA #define ST7735_RDID2 0xDB #define ST7735_RDID3 0xDC #define ST7735_RDID4 0xDD #define ST7735_PWCTR6 0xFC #define ST7735_GMCTRP1 0xE0 #define ST7735_GMCTRN1 0xE1 ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/ST7735_Init.h ================================================ // This is the command sequence that initialises the ST7735 driver // // This setup information is in a format accepted by the commandList() function // which reduces FLASH space, but on an ESP8266 there is plenty available! // // See ILI9341_Setup.h file for an alternative simpler format { // Initialization commands for ST7735 screens static const uint8_t PROGMEM Bcmd[] = { // Initialization commands for 7735B screens 18, // 18 commands in list: ST7735_SWRESET, TFT_INIT_DELAY, // 1: Software reset, no args, w/delay 50, // 50 ms delay ST7735_SLPOUT, TFT_INIT_DELAY, // 2: Out of sleep mode, no args, w/delay 255, // 255 = 500 ms delay ST7735_COLMOD, 1 + TFT_INIT_DELAY, // 3: Set color mode, 1 arg + delay: 0x05, // 16-bit color 10, // 10 ms delay ST7735_FRMCTR1, 3 + TFT_INIT_DELAY, // 4: Frame rate control, 3 args + delay: 0x00, // fastest refresh 0x06, // 6 lines front porch 0x03, // 3 lines back porch 10, // 10 ms delay ST7735_MADCTL, 1, // 5: Memory access ctrl (directions), 1 arg: 0x40, // Row addr/col addr, bottom to top refresh ST7735_DISSET5, 2, // 6: Display settings #5, 2 args, no delay: 0x15, // 1 clk cycle nonoverlap, 2 cycle gate // rise, 3 cycle osc equalize 0x02, // Fix on VTL ST7735_INVCTR, 1, // 7: Display inversion control, 1 arg: 0x0, // Line inversion ST7735_PWCTR1, 2 + TFT_INIT_DELAY, // 8: Power control, 2 args + delay: 0x02, // GVDD = 4.7V 0x70, // 1.0uA 10, // 10 ms delay ST7735_PWCTR2, 1, // 9: Power control, 1 arg, no delay: 0x05, // VGH = 14.7V, VGL = -7.35V ST7735_PWCTR3, 2, // 10: Power control, 2 args, no delay: 0x01, // Opamp current small 0x02, // Boost frequency ST7735_VMCTR1, 2 + TFT_INIT_DELAY, // 11: Power control, 2 args + delay: 0x3C, // VCOMH = 4V 0x38, // VCOML = -1.1V 10, // 10 ms delay ST7735_PWCTR6, 2, // 12: Power control, 2 args, no delay: 0x11, 0x15, ST7735_GMCTRP1, 16, // 13: Magical unicorn dust, 16 args, no delay: 0x09, 0x16, 0x09, 0x20, // (seriously though, not sure what 0x21, 0x1B, 0x13, 0x19, // these config values represent) 0x17, 0x15, 0x1E, 0x2B, 0x04, 0x05, 0x02, 0x0E, ST7735_GMCTRN1, 16 + TFT_INIT_DELAY, // 14: Sparkles and rainbows, 16 args + delay: 0x0B, 0x14, 0x08, 0x1E, // (ditto) 0x22, 0x1D, 0x18, 0x1E, 0x1B, 0x1A, 0x24, 0x2B, 0x06, 0x06, 0x02, 0x0F, 10, // 10 ms delay ST7735_CASET, 4, // 15: Column addr set, 4 args, no delay: 0x00, 0x02, // XSTART = 2 0x00, 0x81, // XEND = 129 ST7735_RASET, 4, // 16: Row addr set, 4 args, no delay: 0x00, 0x02, // XSTART = 1 0x00, 0x81, // XEND = 160 ST7735_NORON, TFT_INIT_DELAY, // 17: Normal display on, no args, w/delay 10, // 10 ms delay ST7735_DISPON, TFT_INIT_DELAY, // 18: Main screen turn on, no args, w/delay 255}, // 255 = 500 ms delay Rcmd1[] = { // Init for 7735R, part 1 (red or green tab) 15, // 15 commands in list: ST7735_SWRESET, TFT_INIT_DELAY, // 1: Software reset, 0 args, w/delay 150, // 150 ms delay ST7735_SLPOUT, TFT_INIT_DELAY, // 2: Out of sleep mode, 0 args, w/delay 255, // 500 ms delay ST7735_FRMCTR1, 3, // 3: Frame rate ctrl - normal mode, 3 args: 0x01, 0x2C, 0x2D, // Rate = fosc/(1x2+40) * (LINE+2C+2D) ST7735_FRMCTR2, 3, // 4: Frame rate control - idle mode, 3 args: 0x01, 0x2C, 0x2D, // Rate = fosc/(1x2+40) * (LINE+2C+2D) ST7735_FRMCTR3, 6, // 5: Frame rate ctrl - partial mode, 6 args: 0x01, 0x2C, 0x2D, // Dot inversion mode 0x01, 0x2C, 0x2D, // Line inversion mode ST7735_INVCTR, 1, // 6: Display inversion ctrl, 1 arg, no delay: 0x07, // No inversion ST7735_PWCTR1, 3, // 7: Power control, 3 args, no delay: 0xA2, 0x02, // -4.6V 0x84, // AUTO mode ST7735_PWCTR2, 1, // 8: Power control, 1 arg, no delay: 0xC5, // VGH25 = 2.4C VGSEL = -10 VGH = 3 * AVDD ST7735_PWCTR3, 2, // 9: Power control, 2 args, no delay: 0x0A, // Opamp current small 0x00, // Boost frequency ST7735_PWCTR4, 2, // 10: Power control, 2 args, no delay: 0x8A, // BCLK/2, Opamp current small & Medium low 0x2A, ST7735_PWCTR5, 2, // 11: Power control, 2 args, no delay: 0x8A, 0xEE, ST7735_VMCTR1, 1, // 12: Power control, 1 arg, no delay: 0x0E, ST7735_INVOFF, 0, // 13: Don't invert display, no args, no delay ST7735_MADCTL, 1, // 14: Memory access control (directions), 1 arg: 0xC8, // row addr/col addr, bottom to top refresh ST7735_COLMOD, 1, // 15: set color mode, 1 arg, no delay: 0x05}, // 16-bit color Rcmd2green[] = { // Init for 7735R, part 2 (green tab only) 2, // 2 commands in list: ST7735_CASET, 4, // 1: Column addr set, 4 args, no delay: 0x00, 0x02, // XSTART = 0 0x00, 0x7F + 0x02, // XEND = 127 ST7735_RASET, 4, // 2: Row addr set, 4 args, no delay: 0x00, 0x01, // XSTART = 0 0x00, 0x9F + 0x01}, // XEND = 159 Rcmd2red[] = { // Init for 7735R, part 2 (red tab only) 2, // 2 commands in list: ST7735_CASET, 4, // 1: Column addr set, 4 args, no delay: 0x00, 0x00, // XSTART = 0 0x00, 0x7F, // XEND = 127 ST7735_RASET, 4, // 2: Row addr set, 4 args, no delay: 0x00, 0x00, // XSTART = 0 0x00, 0x9F}, // XEND = 159 Rcmd3[] = { // Init for 7735R, part 3 (red or green tab) 4, // 4 commands in list: ST7735_GMCTRP1, 16, // 1: 16 args, no delay: 0x02, 0x1c, 0x07, 0x12, 0x37, 0x32, 0x29, 0x2d, 0x29, 0x25, 0x2B, 0x39, 0x00, 0x01, 0x03, 0x10, ST7735_GMCTRN1, 16, // 2: 16 args, no delay: 0x03, 0x1d, 0x07, 0x06, 0x2E, 0x2C, 0x29, 0x2D, 0x2E, 0x2E, 0x37, 0x3F, 0x00, 0x00, 0x02, 0x10, ST7735_NORON, TFT_INIT_DELAY, // 3: Normal display on, no args, w/delay 10, // 10 ms delay ST7735_DISPON, TFT_INIT_DELAY, // 4: Main screen turn on, no args w/delay 100}; // 100 ms delay if (tabcolor == INITB) { commandList(Bcmd); } else { commandList(Rcmd1); if (tabcolor == INITR_GREENTAB) { commandList(Rcmd2green); colstart = 2; rowstart = 1; } else if (tabcolor == INITR_GREENTAB2) { commandList(Rcmd2green); writecommand(ST7735_MADCTL); writedata(0xC0); colstart = 2; rowstart = 1; } else if (tabcolor == INITR_GREENTAB3) { commandList(Rcmd2green); colstart = 2; rowstart = 3; } else if (tabcolor == INITR_GREENTAB128) { commandList(Rcmd2green); colstart = 0; rowstart = 32; } else if (tabcolor == INITR_GREENTAB160x80) { commandList(Rcmd2green); writecommand(TFT_INVON); colstart = 26; rowstart = 1; } else if (tabcolor == INITR_REDTAB160x80) { commandList(Rcmd2green); colstart = 24; rowstart = 0; } else if (tabcolor == INITR_REDTAB) { commandList(Rcmd2red); } else if (tabcolor == INITR_BLACKTAB) { writecommand(ST7735_MADCTL); writedata(0xC0); } commandList(Rcmd3); } } ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/ST7735_Rotation.h ================================================ // This is the command sequence that rotates the ST7735 driver coordinate frame rotation = m % 4; // Limit the range of values to 0-3 writecommand(TFT_MADCTL); switch (rotation) { case 0: if (tabcolor == INITR_BLACKTAB) { writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_RGB); } else if (tabcolor == INITR_GREENTAB2) { writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_RGB); colstart = 2; rowstart = 1; } else if (tabcolor == INITR_GREENTAB3) { writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_BGR); colstart = 2; rowstart = 3; } else if (tabcolor == INITR_GREENTAB128) { writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_MH | TFT_MAD_BGR); colstart = 0; rowstart = 32; } else if (tabcolor == INITR_GREENTAB160x80) { writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_MH | TFT_MAD_BGR); colstart = 26; rowstart = 1; } else if (tabcolor == INITR_REDTAB160x80) { writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_MH | TFT_MAD_BGR); colstart = 24; rowstart = 0; } else if (tabcolor == INITB) { writedata(TFT_MAD_MX | TFT_MAD_RGB); } else { writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_BGR); } _width = _init_width; _height = _init_height; break; case 1: if (tabcolor == INITR_BLACKTAB) { writedata(TFT_MAD_MY | TFT_MAD_MV | TFT_MAD_RGB); } else if (tabcolor == INITR_GREENTAB2) { writedata(TFT_MAD_MY | TFT_MAD_MV | TFT_MAD_RGB); colstart = 1; rowstart = 2; } else if (tabcolor == INITR_GREENTAB3) { writedata(TFT_MAD_MY | TFT_MAD_MV | TFT_MAD_BGR); colstart = 3; rowstart = 2; } else if (tabcolor == INITR_GREENTAB128) { writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_BGR); colstart = 32; rowstart = 0; } else if (tabcolor == INITR_GREENTAB160x80) { writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_BGR); colstart = 1; rowstart = 26; } else if (tabcolor == INITR_REDTAB160x80) { writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_BGR); colstart = 0; rowstart = 24; } else if (tabcolor == INITB) { writedata(TFT_MAD_MV | TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_RGB); } else { writedata(TFT_MAD_MY | TFT_MAD_MV | TFT_MAD_BGR); } _width = _init_height; _height = _init_width; break; case 2: if (tabcolor == INITR_BLACKTAB) { writedata(TFT_MAD_RGB); } else if (tabcolor == INITR_GREENTAB2) { writedata(TFT_MAD_RGB); colstart = 2; rowstart = 1; } else if (tabcolor == INITR_GREENTAB3) { writedata(TFT_MAD_BGR); colstart = 2; rowstart = 1; } else if (tabcolor == INITR_GREENTAB128) { writedata(TFT_MAD_BGR); colstart = 0; rowstart = 0; } else if (tabcolor == INITR_GREENTAB160x80) { writedata(TFT_MAD_BGR); colstart = 26; rowstart = 1; } else if (tabcolor == INITR_REDTAB160x80) { writedata(TFT_MAD_BGR); colstart = 24; rowstart = 0; } else if (tabcolor == INITB) { writedata(TFT_MAD_MY | TFT_MAD_RGB); } else { writedata(TFT_MAD_BGR); } _width = _init_width; _height = _init_height; break; case 3: if (tabcolor == INITR_BLACKTAB) { writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_RGB); } else if (tabcolor == INITR_GREENTAB2) { writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_RGB); colstart = 1; rowstart = 2; } else if (tabcolor == INITR_GREENTAB3) { writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_BGR); colstart = 1; rowstart = 2; } else if (tabcolor == INITR_GREENTAB128) { writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_BGR); colstart = 0; rowstart = 0; } else if (tabcolor == INITR_GREENTAB160x80) { writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_BGR); colstart = 1; rowstart = 26; } else if (tabcolor == INITR_REDTAB160x80) { writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_BGR); colstart = 0; rowstart = 24; } else if (tabcolor == INITB) { writedata(TFT_MAD_MV | TFT_MAD_RGB); } else { writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_BGR); } _width = _init_height; _height = _init_width; break; // These next rotations are for bottum up BMP drawing /* case 4: writedata(ST7735_TFT_MAD_MX | ST7735_TFT_MAD_MY | ST7735_TFT_MAD_BGR); _width = _init_width; _height = _init_height; break; case 5: writedata(ST7735_TFT_MAD_MV | ST7735_TFT_MAD_MX | ST7735_TFT_MAD_BGR); _width = _init_height; _height = _init_width; break; case 6: writedata(ST7735_TFT_MAD_BGR); _width = _init_width; _height = _init_height; break; case 7: writedata(ST7735_TFT_MAD_MY | ST7735_TFT_MAD_MV | ST7735_TFT_MAD_BGR); _width = _init_height; _height = _init_width; break; */ } ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/ST7789_Defines.h ================================================ // Change the width and height if required (defined in portrait mode) // or use the constructor to over-ride defaults #ifndef TFT_WIDTH #define TFT_WIDTH 135 #endif #ifndef TFT_HEIGHT #define TFT_HEIGHT 240 #endif #define CGRAM_OFFSET // Delay between some initialisation commands #define TFT_INIT_DELAY 0x80 // Not used unless commandlist invoked // Generic commands used by TFT_eSPI.cpp #define TFT_NOP 0x00 #define TFT_SWRST 0x01 #define TFT_SLPIN 0x10 #define TFT_SLPOUT 0x11 #define TFT_NORON 0x13 #define TFT_INVOFF 0x20 #define TFT_INVON 0x21 #define TFT_DISPOFF 0x28 #define TFT_DISPON 0x29 #define TFT_CASET 0x2A #define TFT_PASET 0x2B #define TFT_RAMWR 0x2C #define TFT_RAMRD 0x2E #define TFT_MADCTL 0x36 #define TFT_COLMOD 0x3A // Flags for TFT_MADCTL #define TFT_MAD_MY 0x80 #define TFT_MAD_MX 0x40 #define TFT_MAD_MV 0x20 #define TFT_MAD_ML 0x10 #define TFT_MAD_RGB 0x00 #define TFT_MAD_BGR 0x08 #define TFT_MAD_MH 0x04 #define TFT_MAD_SS 0x02 #define TFT_MAD_GS 0x01 #ifdef TFT_RGB_ORDER #if (TFT_RGB_ORDER == 1) #define TFT_MAD_COLOR_ORDER TFT_MAD_RGB #else #define TFT_MAD_COLOR_ORDER TFT_MAD_BGR #endif #else #ifdef CGRAM_OFFSET #define TFT_MAD_COLOR_ORDER TFT_MAD_BGR #else #define TFT_MAD_COLOR_ORDER TFT_MAD_RGB #endif #endif #define TFT_IDXRD 0x00 // ILI9341 only, indexed control register read // ST7789 specific commands used in init #define ST7789_NOP 0x00 #define ST7789_SWRESET 0x01 #define ST7789_RDDID 0x04 #define ST7789_RDDST 0x09 #define ST7789_RDDPM 0x0A // Read display power mode #define ST7789_RDD_MADCTL 0x0B // Read display MADCTL #define ST7789_RDD_COLMOD 0x0C // Read display pixel format #define ST7789_RDDIM 0x0D // Read display image mode #define ST7789_RDDSM 0x0E // Read display signal mode #define ST7789_RDDSR 0x0F // Read display self-diagnostic result (ST7789V) #define ST7789_SLPIN 0x10 #define ST7789_SLPOUT 0x11 #define ST7789_PTLON 0x12 #define ST7789_NORON 0x13 #define ST7789_INVOFF 0x20 #define ST7789_INVON 0x21 #define ST7789_GAMSET 0x26 // Gamma set #define ST7789_DISPOFF 0x28 #define ST7789_DISPON 0x29 #define ST7789_CASET 0x2A #define ST7789_RASET 0x2B #define ST7789_RAMWR 0x2C #define ST7789_RGBSET 0x2D // Color setting for 4096, 64K and 262K colors #define ST7789_RAMRD 0x2E #define ST7789_PTLAR 0x30 #define ST7789_VSCRDEF 0x33 // Vertical scrolling definition (ST7789V) #define ST7789_TEOFF 0x34 // Tearing effect line off #define ST7789_TEON 0x35 // Tearing effect line on #define ST7789_MADCTL 0x36 // Memory data access control #define ST7789_IDMOFF 0x38 // Idle mode off #define ST7789_IDMON 0x39 // Idle mode on #define ST7789_RAMWRC 0x3C // Memory write continue (ST7789V) #define ST7789_RAMRDC 0x3E // Memory read continue (ST7789V) #define ST7789_COLMOD 0x3A #define ST7789_RAMCTRL 0xB0 // RAM control #define ST7789_RGBCTRL 0xB1 // RGB control #define ST7789_PORCTRL 0xB2 // Porch control #define ST7789_FRCTRL1 0xB3 // Frame rate control #define ST7789_PARCTRL 0xB5 // Partial mode control #define ST7789_GCTRL 0xB7 // Gate control #define ST7789_GTADJ 0xB8 // Gate on timing adjustment #define ST7789_DGMEN 0xBA // Digital gamma enable #define ST7789_VCOMS 0xBB // VCOMS setting #define ST7789_LCMCTRL 0xC0 // LCM control #define ST7789_IDSET 0xC1 // ID setting #define ST7789_VDVVRHEN 0xC2 // VDV and VRH command enable #define ST7789_VRHS 0xC3 // VRH set #define ST7789_VDVSET 0xC4 // VDV setting #define ST7789_VCMOFSET 0xC5 // VCOMS offset set #define ST7789_FRCTR2 0xC6 // FR Control 2 #define ST7789_CABCCTRL 0xC7 // CABC control #define ST7789_REGSEL1 0xC8 // Register value section 1 #define ST7789_REGSEL2 0xCA // Register value section 2 #define ST7789_PWMFRSEL 0xCC // PWM frequency selection #define ST7789_PWCTRL1 0xD0 // Power control 1 #define ST7789_VAPVANEN 0xD2 // Enable VAP/VAN signal output #define ST7789_CMD2EN 0xDF // Command 2 enable #define ST7789_PVGAMCTRL 0xE0 // Positive voltage gamma control #define ST7789_NVGAMCTRL 0xE1 // Negative voltage gamma control #define ST7789_DGMLUTR 0xE2 // Digital gamma look-up table for red #define ST7789_DGMLUTB 0xE3 // Digital gamma look-up table for blue #define ST7789_GATECTRL 0xE4 // Gate control #define ST7789_SPI2EN 0xE7 // SPI2 enable #define ST7789_PWCTRL2 0xE8 // Power control 2 #define ST7789_EQCTRL 0xE9 // Equalize time control #define ST7789_PROMCTRL 0xEC // Program control #define ST7789_PROMEN 0xFA // Program mode enable #define ST7789_NVMSET 0xFC // NVM setting #define ST7789_PROMACT 0xFE // Program action ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/ST7789_Init.h ================================================ // This is the command sequence that initialises the ST7789 driver // // This setup information uses simple 8 bit SPI writecommand() and writedata() // functions // // See ST7735_Setup.h file for an alternative format { writecommand(ST7789_SLPOUT); // Sleep out delay(120); writecommand(ST7789_NORON); // Normal display mode on //------------------------------display and color format // setting--------------------------------// writecommand(ST7789_MADCTL); // writedata(0x00); writedata(TFT_MAD_COLOR_ORDER); // JLX240 display datasheet writecommand(0xB6); writedata(0x0A); writedata(0x82); writecommand(ST7789_COLMOD); writedata(0x55); delay(10); //--------------------------------ST7789V Frame rate // setting----------------------------------// writecommand(ST7789_PORCTRL); writedata(0x0c); writedata(0x0c); writedata(0x00); writedata(0x33); writedata(0x33); writecommand(ST7789_GCTRL); // Voltages: VGH / VGL writedata(0x35); //---------------------------------ST7789V Power // setting--------------------------------------// writecommand(ST7789_VCOMS); writedata(0x28); // JLX240 display datasheet writecommand(ST7789_LCMCTRL); writedata(0x0C); writecommand(ST7789_VDVVRHEN); writedata(0x01); writedata(0xFF); writecommand(ST7789_VRHS); // voltage VRHS writedata(0x10); writecommand(ST7789_VDVSET); writedata(0x20); writecommand(ST7789_FRCTR2); writedata(0x0f); writecommand(ST7789_PWCTRL1); writedata(0xa4); writedata(0xa1); //--------------------------------ST7789V gamma // setting---------------------------------------// writecommand(ST7789_PVGAMCTRL); writedata(0xd0); writedata(0x00); writedata(0x02); writedata(0x07); writedata(0x0a); writedata(0x28); writedata(0x32); writedata(0x44); writedata(0x42); writedata(0x06); writedata(0x0e); writedata(0x12); writedata(0x14); writedata(0x17); writecommand(ST7789_NVGAMCTRL); writedata(0xd0); writedata(0x00); writedata(0x02); writedata(0x07); writedata(0x0a); writedata(0x28); writedata(0x31); writedata(0x54); writedata(0x47); writedata(0x0e); writedata(0x1c); writedata(0x17); writedata(0x1b); writedata(0x1e); writecommand(ST7789_INVON); writecommand(ST7789_CASET); // Column address set writedata(0x00); writedata(0x00); writedata(0x00); writedata(0xE5); // 239 writecommand(ST7789_RASET); // Row address set writedata(0x00); writedata(0x00); writedata(0x01); writedata(0x3F); // 319 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // end_tft_write(); delay(120); // begin_tft_write(); writecommand(ST7789_DISPON); // Display on delay(120); #ifdef TFT_BL // Turn on the back-light LED digitalWrite(TFT_BL, HIGH); pinMode(TFT_BL, OUTPUT); #endif } ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/ST7789_Rotation.h ================================================ // This is the command sequence that rotates the ST7789 driver coordinate frame writecommand(TFT_MADCTL); rotation = m % 4; switch (rotation) { case 0: // Portrait #ifdef CGRAM_OFFSET if (_init_width == 135) { colstart = 52; rowstart = 40; } else { colstart = 0; rowstart = 0; } #endif writedata(TFT_MAD_COLOR_ORDER); _width = _init_width; _height = _init_height; break; case 1: // Landscape (Portrait + 90) #ifdef CGRAM_OFFSET if (_init_width == 135) { colstart = 40; rowstart = 53; } else { colstart = 0; rowstart = 0; } #endif writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_COLOR_ORDER); _width = _init_height; _height = _init_width; break; case 2: // Inverter portrait #ifdef CGRAM_OFFSET if (_init_width == 135) { colstart = 53; rowstart = 40; } else { colstart = 0; rowstart = 80; } #endif writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_COLOR_ORDER); _width = _init_width; _height = _init_height; break; case 3: // Inverted landscape #ifdef CGRAM_OFFSET if (_init_width == 135) { colstart = 40; rowstart = 52; } else { colstart = 80; rowstart = 0; } #endif writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_COLOR_ORDER); _width = _init_height; _height = _init_width; break; } ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/Speaker.cpp ================================================ #include "Speaker.h" SPEAKER::SPEAKER(void) { _volume = 8; _begun = false; } void SPEAKER::begin() { _begun = true; ledcSetup(TONE_PIN_CHANNEL, 0, 13); ledcAttachPin(SPEAKER_PIN, TONE_PIN_CHANNEL); setBeep(4000, 100); } void SPEAKER::end() { mute(); ledcDetachPin(SPEAKER_PIN); _begun = false; } void SPEAKER::tone(uint16_t frequency) { if (!_begun) begin(); ledcWriteTone(TONE_PIN_CHANNEL, frequency); } void SPEAKER::tone(uint16_t frequency, uint32_t duration) { tone(frequency); _count = millis() + duration; speaker_on = 1; } void SPEAKER::beep() { if (!_begun) begin(); tone(_beep_freq, _beep_duration); } void SPEAKER::setBeep(uint16_t frequency, uint16_t duration) { _beep_freq = frequency; _beep_duration = duration; } void SPEAKER::setVolume(uint8_t volume) { _volume = 11 - volume; } void SPEAKER::mute() { ledcWriteTone(TONE_PIN_CHANNEL, 0); digitalWrite(SPEAKER_PIN, 0); } void SPEAKER::update() { if (speaker_on) { if (millis() > _count) { speaker_on = 0; mute(); } } } void SPEAKER::write(uint8_t value) { dacWrite(SPEAKER_PIN, value); } void SPEAKER::playMusic(const uint8_t* music_data, uint16_t sample_rate) { uint32_t length = strlen((char*)music_data); uint16_t delay_interval = ((uint32_t)1000000 / sample_rate); if (_volume != 11) { for (int i = 0; i < length; i++) { dacWrite(SPEAKER_PIN, music_data[i] / _volume); delayMicroseconds(delay_interval); } for (int t = music_data[length - 1] / _volume; t >= 0; t--) { dacWrite(SPEAKER_PIN, t); delay(2); } } // ledcSetup(TONE_PIN_CHANNEL, 0, 13); ledcAttachPin(SPEAKER_PIN, TONE_PIN_CHANNEL); } ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/Speaker.h ================================================ #ifndef _SPEAKER_H_ #define _SPEAKER_H_ #include "Arduino.h" #include "Config.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "esp32-hal-dac.h" #ifdef __cplusplus } #endif /* __cplusplus */ class SPEAKER { public: SPEAKER(void); void begin(); void end(); void mute(); void tone(uint16_t frequency); void tone(uint16_t frequency, uint32_t duration); void beep(); void setBeep(uint16_t frequency, uint16_t duration); void update(); void write(uint8_t value); void setVolume(uint8_t volume); void playMusic(const uint8_t *music_data, uint16_t sample_rate); private: uint32_t _count; uint8_t _volume; uint16_t _beep_duration; uint16_t _beep_freq; bool _begun; bool speaker_on; }; #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/Sprite.cpp ================================================ /************************************************************************************** // The following class creates Sprites in RAM, graphics can then be drawn in the Sprite // and rendered quickly onto the TFT screen. The class inherits the graphics functions // from the TFT_eSPI class. Some functions are overridden by this class so that the // graphics are written to the Sprite rather than the TFT. // Coded by Bodmer, see license file in root folder ***************************************************************************************/ /*************************************************************************************** // Color bytes are swapped when writing to RAM, this introduces a small overhead but // there is a nett performance gain by using swapped bytes. ***************************************************************************************/ #include "Sprite.h" /*************************************************************************************** ** Function name: TFT_eSprite ** Description: Class constructor *************************************************************************************x*/ TFT_eSprite::TFT_eSprite(TFT_eSPI *tft) { _tft = tft; // Pointer to tft class so we can call member functions _iwidth = 0; // Initialise width and height to 0 (it does not exist yet) _iheight = 0; _bpp = 16; _iswapBytes = false; // Do not swap pushImage colour bytes by default _created = false; _xs = 0; // window bounds for pushColor _ys = 0; _xe = 0; _ye = 0; _xptr = 0; // pushColor coordinate _yptr = 0; _xpivot = 0; _ypivot = 0; this->cursor_y = this->cursor_x = 0; // Text cursor position } /*************************************************************************************** ** Function name: createSprite ** Description: Create a sprite (bitmap) of defined width and height *************************************************************************************x*/ // cast returned value to (uint8_t*) for 8 bit or (uint16_t*) for 16 bit colours void *TFT_eSprite::createSprite(int16_t w, int16_t h, uint8_t frames) { if (_created) return _img8_1; if (w < 1 || h < 1) return NULL; _iwidth = _dwidth = _bitwidth = w; _iheight = _dheight = h; this->cursor_x = 0; this->cursor_y = 0; // Default scroll rectangle and gap fill colour _sx = 0; _sy = 0; _sw = w; _sh = h; _scolor = TFT_BLACK; _xpivot = w / 2; _ypivot = h / 2; _img8 = (uint8_t *)callocSprite(w, h, frames); _img8_1 = _img8; _img8_2 = _img8; _img = (uint16_t *)_img8; // This is to make it clear what pointer size is expected to be used // but casting in the user sketch is needed due to the use of void* if (_bpp == 1) { w = (w + 7) & 0xFFF8; _img8_2 = _img8 + ((w >> 3) * h + 1); } if (_img8) { _created = true; return _img8; } return NULL; } /*************************************************************************************** ** Function name: callocSprite ** Description: Allocate a memory area for the Sprite and return *pointer *************************************************************************************x*/ void *TFT_eSprite::callocSprite(int16_t w, int16_t h, uint8_t frames) { // Add one extra "off screen" pixel to point out-of-bounds setWindow() // coordinates this means push/writeColor functions do not need additional // bounds checks and hence will run faster in normal circumstances. uint8_t *ptr8 = NULL; if (_bpp == 16) { #if defined(ESP32) && defined(CONFIG_SPIRAM_SUPPORT) if (psramFound()) ptr8 = (uint8_t *)ps_calloc(w * h + 1, sizeof(uint16_t)); else #endif ptr8 = (uint8_t *)calloc(w * h + 1, sizeof(uint16_t)); } else if (_bpp == 8) { #if defined(ESP32) && defined(CONFIG_SPIRAM_SUPPORT) if (psramFound()) ptr8 = (uint8_t *)ps_calloc(w * h + 1, sizeof(uint8_t)); else #endif ptr8 = (uint8_t *)calloc(w * h + 1, sizeof(uint8_t)); } else // Must be 1 bpp { //_dwidth Display width+height in pixels always in rotation 0 // orientation _dheight Not swapped for sprite rotations // Note: for 1bpp _iwidth and _iheight are swapped during Sprite // rotations w = (w + 7) & 0xFFF8; // width should be the multiple of 8 bits to be // compatible with epdpaint _iwidth = w; // _iwidth is rounded up to be multiple of 8, so might not // be = _dwidth _bitwidth = w; if (frames > 2) frames = 2; // Currently restricted to 2 frame buffers if (frames < 1) frames = 1; #if defined(ESP32) && defined(CONFIG_SPIRAM_SUPPORT) if (psramFound()) ptr8 = (uint8_t *)ps_calloc(frames * (w >> 3) * h + frames, sizeof(uint8_t)); else #endif ptr8 = (uint8_t *)calloc(frames * (w >> 3) * h + frames, sizeof(uint8_t)); } return ptr8; } /*************************************************************************************** ** Function name: frameBuffer ** Description: For 1 bpp Sprites, select the frame used for *graphics *************************************************************************************x*/ // Frames are numbered 1 and 2 void *TFT_eSprite::frameBuffer(int8_t f) { if (!_created) return NULL; if (_bpp == 16) return _img; if (_bpp == 8) return _img8; if (f == 2) _img8 = _img8_2; else _img8 = _img8_1; return _img8; } /*************************************************************************************** ** Function name: setColorDepth ** Description: Set bits per pixel for colour (1, 8 or 16) *************************************************************************************x*/ void *TFT_eSprite::setColorDepth(int8_t b) { // Can't change an existing sprite's colour depth so delete it if (_created) free(_img8_1); // Now define the new colour depth if (b > 8) _bpp = 16; // Bytes per pixel else if (b > 1) _bpp = 8; else _bpp = 1; // If it existed, re-create the sprite with the new colour depth if (_created) { _created = false; return createSprite(_iwidth, _iheight); } return NULL; } /*************************************************************************************** ** Function name: getColorDepth ** Description: Get bits per pixel for colour (1, 8 or 16) *************************************************************************************x*/ int8_t TFT_eSprite::getColorDepth(void) { if (_created) return _bpp; else return 0; } /*************************************************************************************** ** Function name: setBitmapColor ** Description: Set the foreground foreground and background colour ***************************************************************************************/ void TFT_eSprite::setBitmapColor(uint16_t c, uint16_t b) { if (c == b) b = ~c; _tft->bitmap_fg = c; _tft->bitmap_bg = b; } /*************************************************************************************** ** Function name: deleteSprite ** Description: Delete the sprite to free up memory (RAM) *************************************************************************************x*/ void TFT_eSprite::deleteSprite(void) { if (!_created) return; free(_img8_1); _created = false; } /*************************************************************************************** ** Function name: setPivot ** Description: Set the pivot point in this Sprite *************************************************************************************x*/ void TFT_eSprite::setPivot(int16_t x, int16_t y) { _xpivot = x; _ypivot = y; } /*************************************************************************************** ** Function name: getPivotX ** Description: Get the x pivot position ***************************************************************************************/ int16_t TFT_eSprite::getPivotX(void) { return _xpivot; } /*************************************************************************************** ** Function name: getPivotY ** Description: Get the y pivot position ***************************************************************************************/ int16_t TFT_eSprite::getPivotY(void) { return _ypivot; } /*************************************************************************************** ** Function name: pushRotated ** Description: Push a rotated copy of the Sprite to TFT screen *************************************************************************************x*/ bool TFT_eSprite::pushRotated(int16_t angle, int32_t transp) { if (!_created) return false; // Trig values for the rotation float radAngle = -angle * 0.0174532925; // Convert degrees to radians float sinra = sin(radAngle); float cosra = cos(radAngle); // Bounding box parameters int16_t min_x; int16_t min_y; int16_t max_x; int16_t max_y; // Get the bounding box of this rotated source Sprite relative to Sprite // pivot getRotatedBounds(sinra, cosra, width(), height(), _xpivot, _ypivot, &min_x, &min_y, &max_x, &max_y); // Move bounding box so source Sprite pivot coincides with TFT pivot min_x += _tft->_xpivot; max_x += _tft->_xpivot; min_y += _tft->_ypivot; max_y += _tft->_ypivot; // Test only to show bounding box on TFT // _tft->drawRect(min_x, min_y, max_x - min_x + 1, max_y - min_y + 1, // TFT_GREEN); // Return if bounding box is outside of TFT area if (min_x > _tft->width()) return true; if (min_y > _tft->height()) return true; if (max_x < 0) return true; if (max_y < 0) return true; // Clip bounding box to be within TFT area if (min_x < 0) min_x = 0; if (min_y < 0) min_y = 0; if (max_x > _tft->width()) max_x = _tft->width(); if (max_y > _tft->height()) max_y = _tft->height(); _tft->startWrite(); // ESP32: avoid transaction overhead for every tft // pixel // Scan destination bounding box and fetch transformed pixels from source // Sprite for (int32_t x = min_x; x <= max_x; x++) { int32_t xt = x - _tft->_xpivot; float cxt = cosra * xt + _xpivot; float sxt = sinra * xt + _ypivot; bool column_drawn = false; for (int32_t y = min_y; y <= max_y; y++) { int32_t yt = y - _tft->_ypivot; int32_t xs = (int32_t)round(cxt - sinra * yt); // Do not calculate ys unless xs is in bounds if (xs >= 0 && xs < width()) { int32_t ys = (int32_t)round(sxt + cosra * yt); // Check if ys is in bounds if (ys >= 0 && ys < height()) { int32_t rp = readPixel(xs, ys); if (rp != transp) _tft->drawPixel(x, y, rp); column_drawn = true; } } else if (column_drawn) y = max_y; // Skip remaining column pixels } } _tft->endWrite(); // ESP32: end transaction return true; } /*************************************************************************************** ** Function name: pushRotated ** Description: Push a rotated copy of the Sprite to another Sprite *************************************************************************************x*/ bool TFT_eSprite::pushRotated(TFT_eSprite *spr, int16_t angle, int32_t transp) { if (!_created) return false; // Check this Sprite is created if (!spr->_created) return false; // Ckeck destination Sprite is created // Trig values for the rotation float radAngle = -angle * 0.0174532925; // Convert degrees to radians float sinra = sin(radAngle); float cosra = cos(radAngle); // Bounding box parameters int16_t min_x; int16_t min_y; int16_t max_x; int16_t max_y; // Get the bounding box of this rotated source Sprite getRotatedBounds(sinra, cosra, width(), height(), _xpivot, _ypivot, &min_x, &min_y, &max_x, &max_y); // Move bounding box so source Sprite pivot coincides with destination // Sprite pivot min_x += spr->_xpivot; max_x += spr->_xpivot; min_y += spr->_ypivot; max_y += spr->_ypivot; // Test only to show bounding box // spr->fillSprite(TFT_BLACK); // spr->drawRect(min_x, min_y, max_x - min_x + 1, max_y - min_y + 1, // TFT_GREEN); // Return if bounding box is completely outside of destination Sprite if (min_x > spr->width()) return true; if (min_y > spr->height()) return true; if (max_x < 0) return true; if (max_y < 0) return true; // Clip bounding box if it is partially within destination Sprite if (min_x < 0) min_x = 0; if (min_y < 0) min_y = 0; if (max_x > spr->width()) max_x = spr->width(); if (max_y > spr->height()) max_y = spr->height(); // Scan destination bounding box and fetch transformed pixels from source // Sprite for (int32_t x = min_x; x <= max_x; x++) { int32_t xt = x - spr->_xpivot; float cxt = cosra * xt + _xpivot; float sxt = sinra * xt + _ypivot; bool column_drawn = false; for (int32_t y = min_y; y <= max_y; y++) { int32_t yt = y - spr->_ypivot; int32_t xs = (int32_t)round(cxt - sinra * yt); // Do not calculate ys unless xs is in bounds if (xs >= 0 && xs < width()) { int32_t ys = (int32_t)round(sxt + cosra * yt); // Check if ys is in bounds if (ys >= 0 && ys < height()) { int32_t rp = readPixel(xs, ys); if (rp != transp) spr->drawPixel(x, y, rp); column_drawn = true; } } else if (column_drawn) y = max_y; // Skip the remaining pixels below the Sprite } } return true; } /*************************************************************************************** ** Function name: rotatedBounds ** Description: Get bounding box of a rotated Sprite wrt pivot *************************************************************************************x*/ void TFT_eSprite::getRotatedBounds(float sina, float cosa, int16_t w, int16_t h, int16_t xp, int16_t yp, int16_t *min_x, int16_t *min_y, int16_t *max_x, int16_t *max_y) { w -= xp; // w is now right edge coordinate relative to xp h -= yp; // h is now bottom edge coordinate relative to yp // Calculate new corner coordinates int16_t x0 = -xp * cosa - yp * sina; int16_t y0 = xp * sina - yp * cosa; int16_t x1 = w * cosa - yp * sina; int16_t y1 = -w * sina - yp * cosa; int16_t x2 = h * sina + w * cosa; int16_t y2 = h * cosa - w * sina; int16_t x3 = h * sina - xp * cosa; int16_t y3 = h * cosa + xp * sina; // Find bounding box extremes, enlarge box to accomodate rounding errors *min_x = x0 - 2; if (x1 < *min_x) *min_x = x1 - 2; if (x2 < *min_x) *min_x = x2 - 2; if (x3 < *min_x) *min_x = x3 - 2; *max_x = x0 + 2; if (x1 > *max_x) *max_x = x1 + 2; if (x2 > *max_x) *max_x = x2 + 2; if (x3 > *max_x) *max_x = x3 + 2; *min_y = y0 - 2; if (y1 < *min_y) *min_y = y1 - 2; if (y2 < *min_y) *min_y = y2 - 2; if (y3 < *min_y) *min_y = y3 - 2; *max_y = y0 + 2; if (y1 > *max_y) *max_y = y1 + 2; if (y2 > *max_y) *max_y = y2 + 2; if (y3 > *max_y) *max_y = y3 + 2; } /*************************************************************************************** ** Function name: pushSprite ** Description: Push the sprite to the TFT at x, y *************************************************************************************x*/ void TFT_eSprite::pushSprite(int32_t x, int32_t y) { if (!_created) return; if (_bpp == 16) _tft->pushImage(x, y, _iwidth, _iheight, _img); else _tft->pushImage(x, y, _dwidth, _dheight, _img8, (bool)(_bpp == 8)); } /*************************************************************************************** ** Function name: pushSprite ** Description: Push the sprite to the TFT at x, y with transparent *colour *************************************************************************************x*/ void TFT_eSprite::pushSprite(int32_t x, int32_t y, uint16_t transp) { if (!_created) return; if (_bpp == 16) _tft->pushImage(x, y, _iwidth, _iheight, _img, transp); else if (_bpp == 8) { transp = (uint8_t)((transp & 0xE000) >> 8 | (transp & 0x0700) >> 6 | (transp & 0x0018) >> 3); _tft->pushImage(x, y, _dwidth, _dheight, _img8, (uint8_t)transp, (bool)true); } else _tft->pushImage(x, y, _dwidth, _dheight, _img8, 0, (bool)false); } /*************************************************************************************** ** Function name: readPixel ** Description: Read 565 colour of a pixel at defined coordinates *************************************************************************************x*/ uint16_t TFT_eSprite::readPixel(int32_t x, int32_t y) { if ((x < 0) || (x >= _iwidth) || (y < 0) || (y >= _iheight) || !_created) return 0; if (_bpp == 16) { uint16_t color = _img[x + y * _iwidth]; return (color >> 8) | (color << 8); } if (_bpp == 8) { uint16_t color = _img8[x + y * _iwidth]; if (color != 0) { uint8_t blue[] = {0, 11, 21, 31}; color = (color & 0xE0) << 8 | (color & 0xC0) << 5 | (color & 0x1C) << 6 | (color & 0x1C) << 3 | blue[color & 0x03]; } return color; } if (_rotation == 1) { uint16_t tx = x; x = _dwidth - y - 1; y = tx; } else if (_rotation == 2) { x = _dwidth - x - 1; y = _dheight - y - 1; } else if (_rotation == 3) { uint16_t tx = x; x = y; y = _dheight - tx - 1; } uint16_t color = (_img8[(x + y * _bitwidth) >> 3] << (x & 0x7)) & 0x80; return color >> 7; } /*************************************************************************************** ** Function name: pushImage ** Description: push 565 colour image into a defined area of a *sprite *************************************************************************************x*/ void TFT_eSprite::pushImage(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t *data) { if ((x >= _iwidth) || (y >= _iheight) || (w == 0) || (h == 0) || !_created) return; if ((x + w < 0) || (y + h < 0)) return; int32_t xo = 0; int32_t yo = 0; int32_t xs = x; int32_t ys = y; uint32_t ws = w; uint32_t hs = h; if (x < 0) { xo = -x; xs = 0; } if (y < 0) { yo = -y; ys = 0; } if (xs + w >= _iwidth) ws = _iwidth - xs; if (ys + h >= _iheight) hs = _iheight - ys; if (_bpp == 16) // Plot a 16 bpp image into a 16 bpp Sprite { for (uint32_t yp = yo; yp < yo + hs; yp++) { x = xs; for (uint32_t xp = xo; xp < xo + ws; xp++) { uint16_t color = data[xp + yp * w]; if (!_iswapBytes) color = color << 8 | color >> 8; _img[x + ys * _iwidth] = color; x++; } ys++; } } else if (_bpp == 8) // Plot a 16 bpp image into a 8 bpp Sprite { for (uint32_t yp = yo; yp < yo + hs; yp++) { x = xs; for (uint32_t xp = xo; xp < xo + ws; xp++) { uint16_t color = data[xp + yp * w]; if (_iswapBytes) color = color << 8 | color >> 8; _img8[x + ys * _iwidth] = (uint8_t)((color & 0xE000) >> 8 | (color & 0x0700) >> 6 | (color & 0x0018) >> 3); x++; } ys++; } } else // 1bpp { // Move coordinate rotation to support fn if (_rotation == 1) { int32_t tx = x; x = _dwidth - y - 1; y = tx; } else if (_rotation == 2) { x = _dwidth - x - 1; y = _dheight - y - 1; } else if (_rotation == 3) { int32_t tx = x; x = y; y = _dheight - tx - 1; } // Plot a 1bpp image into a 1bpp Sprite uint8_t *pdata = (uint8_t *)data; uint32_t ww = (w + 7) & 0xFFF8; for (int32_t yp = 0; yp < h; yp++) { uint32_t yw = (yp * ww) >> 3; uint32_t yyp = y + yp; for (int32_t xp = 0; xp < w; xp++) { uint16_t readPixel = (pdata[(xp >> 3) + yw] & (0x80 >> (xp & 0x7))); drawPixel(x + xp, yyp, readPixel); } } } } /*************************************************************************************** ** Function name: pushImage ** Description: push 565 colour FLASH (PROGMEM) image into a defined *area *************************************************************************************x*/ void TFT_eSprite::pushImage(int32_t x, int32_t y, int32_t w, int32_t h, const uint16_t *data) { #ifdef ESP32 pushImage(x, y, w, h, (uint16_t *)data); #else // Partitioned memory FLASH processor if ((x >= _iwidth) || (y >= _iheight) || (w == 0) || (h == 0) || !_created) return; if ((x + w < 0) || (y + h < 0)) return; int32_t xo = 0; int32_t yo = 0; int32_t xs = x; int32_t ys = y; uint32_t ws = w; uint32_t hs = h; if (x < 0) { xo = -x; xs = 0; } if (y < 0) { yo = -y; ys = 0; } if (xs + w >= _iwidth) ws = _iwidth - xs; if (ys + h >= _iheight) hs = _iheight - ys; if (_bpp == 16) // Plot a 16 bpp image into a 16 bpp Sprite { for (uint32_t yp = yo; yp < yo + hs; yp++) { x = xs; for (uint32_t xp = xo; xp < xo + ws; xp++) { uint16_t color = pgm_read_word(data + xp + yp * w); if (!_iswapBytes) color = color << 8 | color >> 8; _img[x + ys * _iwidth] = color; x++; } ys++; } } else if (_bpp == 8) // Plot a 16 bpp image into a 8 bpp Sprite { for (uint32_t yp = yo; yp < yo + hs; yp++) { x = xs; for (uint32_t xp = xo; xp < xo + ws; xp++) { uint16_t color = pgm_read_word(data + xp + yp * w); if (_iswapBytes) color = color << 8 | color >> 8; _img8[x + ys * _iwidth] = (uint8_t)((color & 0xE000) >> 8 | (color & 0x0700) >> 6 | (color & 0x0018) >> 3); x++; } ys++; } } else // 1bpp { // Move coordinate rotation to support fn if (_rotation == 1) { int32_t tx = x; x = _dwidth - y - 1; y = tx; } else if (_rotation == 2) { x = _dwidth - x - 1; y = _dheight - y - 1; } else if (_rotation == 3) { int32_t tx = x; x = y; y = _dheight - tx - 1; } // Plot a 1bpp image into a 1bpp Sprite const uint8_t *pdata = (const uint8_t *)data; uint32_t ww = (w + 7) & 0xFFF8; for (int32_t yp = 0; yp < h; yp++) { for (int32_t xp = 0; xp < ww; xp += 8) { uint8_t pbyte = pgm_read_byte(pdata++); for (uint8_t xc = 0; xc < 8; xc++) { if (xp + xc < w) drawPixel(x + xp + xc, y + yp, (pbyte << xc) & 0x80); } } } } #endif // if ESP32 else ESP8266 check } /*************************************************************************************** ** Function name: setSwapBytes ** Description: Used by 16 bit pushImage() to swap byte order in *colours ***************************************************************************************/ void TFT_eSprite::setSwapBytes(bool swap) { _iswapBytes = swap; } /*************************************************************************************** ** Function name: getSwapBytes ** Description: Return the swap byte order for colours ***************************************************************************************/ bool TFT_eSprite::getSwapBytes(void) { return _iswapBytes; } /*************************************************************************************** ** Function name: setWindow ** Description: Set the bounds of a window for pushColor and *writeColor *************************************************************************************x*/ void TFT_eSprite::setWindow(int32_t x0, int32_t y0, int32_t x1, int32_t y1) { bool duff_coord = false; if (x0 > x1) swap_coord(x0, x1); if (y0 > y1) swap_coord(y0, y1); if (x0 < 0) x0 = 0; if (x0 >= _iwidth) duff_coord = true; if (x1 < 0) x1 = 0; if (x1 >= _iwidth) x1 = _iwidth - 1; if (y0 < 0) y0 = 0; if (y0 >= _iheight) duff_coord = true; if (y1 < 0) y1 = 0; if (y1 >= _iheight) y1 = _iheight - 1; if (duff_coord) { // Point to that extra "off screen" pixel _xs = 0; _ys = _iheight; _xe = 0; _ye = _iheight; } else { _xs = x0; _ys = y0; _xe = x1; _ye = y1; } _xptr = _xs; _yptr = _ys; } /*************************************************************************************** ** Function name: pushColor ** Description: Send a new pixel to the set window *************************************************************************************x*/ void TFT_eSprite::pushColor(uint32_t color) { if (!_created) return; // Write the colour to RAM in set window if (_bpp == 16) _img[_xptr + _yptr * _iwidth] = (uint16_t)(color >> 8) | (color << 8); else if (_bpp == 8) _img8[_xptr + _yptr * _iwidth] = (uint8_t)((color & 0xE000) >> 8 | (color & 0x0700) >> 6 | (color & 0x0018) >> 3); else drawPixel(_xptr, _yptr, color); // Increment x _xptr++; // Wrap on x and y to start, increment y if needed if (_xptr > _xe) { _xptr = _xs; _yptr++; if (_yptr > _ye) _yptr = _ys; } } /*************************************************************************************** ** Function name: pushColor ** Description: Send a "len" new pixels to the set window *************************************************************************************x*/ void TFT_eSprite::pushColor(uint32_t color, uint16_t len) { if (!_created) return; uint16_t pixelColor; if (_bpp == 16) pixelColor = (uint16_t)(color >> 8) | (color << 8); else if (_bpp == 8) pixelColor = (color & 0xE000) >> 8 | (color & 0x0700) >> 6 | (color & 0x0018) >> 3; else pixelColor = (uint16_t)color; // for 1bpp while (len--) writeColor(pixelColor); } /*************************************************************************************** ** Function name: writeColor ** Description: Write a pixel with pre-formatted colour to the set *window *************************************************************************************x*/ void TFT_eSprite::writeColor(uint16_t color) { if (!_created) return; // Write 16 bit RGB 565 encoded colour to RAM if (_bpp == 16) _img[_xptr + _yptr * _iwidth] = color; // Write 8 bit RGB 332 encoded colour to RAM else if (_bpp == 8) _img8[_xptr + _yptr * _iwidth] = (uint8_t)color; else drawPixel(_xptr, _yptr, color); // Increment x _xptr++; // Wrap on x and y to start, increment y if needed if (_xptr > _xe) { _xptr = _xs; _yptr++; if (_yptr > _ye) _yptr = _ys; } } /*************************************************************************************** ** Function name: setScrollRect ** Description: Set scroll area within the sprite and the gap fill *colour *************************************************************************************x*/ void TFT_eSprite::setScrollRect(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t color) { if ((x >= _iwidth) || (y >= _iheight) || !_created) return; if (x < 0) x = 0; if (y < 0) y = 0; if ((x + w) > _iwidth) w = _iwidth - x; if ((y + h) > _iheight) h = _iheight - y; if (w < 1 || h < 1) return; _sx = x; _sy = y; _sw = w; _sh = h; _scolor = color; } /*************************************************************************************** ** Function name: scroll ** Description: Scroll dx,dy pixels, positive right,down, negative *left,up *************************************************************************************x*/ void TFT_eSprite::scroll(int16_t dx, int16_t dy) { if (abs(dx) >= _sw || abs(dy) >= _sh) { fillRect(_sx, _sy, _sw, _sh, _scolor); return; } // Fetch the scroll area width and height set by setScrollRect() uint32_t w = _sw - abs(dx); // line width to copy uint32_t h = _sh - abs(dy); // lines to copy int32_t iw = _iwidth; // width of sprite // Fetch the x,y origin set by setScrollRect() uint32_t tx = _sx; // to x uint32_t fx = _sx; // from x uint32_t ty = _sy; // to y uint32_t fy = _sy; // from y // Adjust for x delta if (dx <= 0) fx -= dx; else tx += dx; // Adjust for y delta if (dy <= 0) fy -= dy; else { // Scrolling down so start copy from bottom ty = ty + _sh - 1; // "To" pointer iw = -iw; // Pointer moves backwards fy = ty - dy; // "From" pointer } // Calculate "from y" and "to y" pointers in RAM uint32_t fyp = fx + fy * _iwidth; uint32_t typ = tx + ty * _iwidth; // Now move the pixels in RAM if (_bpp == 16) { while (h--) { // move pixel lines (to, from, byte count) memmove(_img + typ, _img + fyp, w << 1); typ += iw; fyp += iw; } } else if (_bpp == 8) { while (h--) { // move pixel lines (to, from, byte count) memmove(_img8 + typ, _img8 + fyp, w); typ += iw; fyp += iw; } } else if (_bpp == 1) { if (dx > 0) { tx += w; fx += w; } // Start from right edge while (h--) { // move pixels one by one for (uint16_t xp = 0; xp < w; xp++) { if (dx <= 0) drawPixel(tx + xp, ty, readPixel(fx + xp, fy)); if (dx > 0) drawPixel(tx - xp, ty, readPixel(fx - xp, fy)); } if (dy <= 0) { ty++; fy++; } else { ty--; fy--; } } } else return; // Not 1, 8 or 16 bpp // Fill the gap left by the scrolling if (dx > 0) fillRect(_sx, _sy, dx, _sh, _scolor); if (dx < 0) fillRect(_sx + _sw + dx, _sy, -dx, _sh, _scolor); if (dy > 0) fillRect(_sx, _sy, _sw, dy, _scolor); if (dy < 0) fillRect(_sx, _sy + _sh + dy, _sw, -dy, _scolor); } /*************************************************************************************** ** Function name: fillSprite ** Description: Fill the whole sprite with defined colour *************************************************************************************x*/ void TFT_eSprite::fillSprite(uint32_t color) { if (!_created) return; // Use memset if possible as it is super fast if (((uint8_t)color == (uint8_t)(color >> 8)) && _bpp == 16) memset(_img, (uint8_t)color, _iwidth * _iheight * 2); else if (_bpp == 8) { color = (color & 0xE000) >> 8 | (color & 0x0700) >> 6 | (color & 0x0018) >> 3; memset(_img8, (uint8_t)color, _iwidth * _iheight); } else if (_bpp == 1) { if (color) memset(_img8, 0xFF, (_iwidth >> 3) * _iheight + 1); else memset(_img8, 0x00, (_iwidth >> 3) * _iheight + 1); } else fillRect(0, 0, _iwidth, _iheight, color); } /*************************************************************************************** ** Function name: setCursor ** Description: Set the sprite text cursor x,y position *************************************************************************************x*/ // Not needed - using TFT_eSPI class function and this->cursor_x/y // void TFT_eSprite::setCursor(int16_t x, int16_t y) //{ // this->cursor_x = x; // this->cursor_y = y; //} /*************************************************************************************** ** Function name: width ** Description: Return the width of sprite *************************************************************************************x*/ // Return the size of the display int16_t TFT_eSprite::width(void) { if (!_created) return 0; if (_bpp > 1) return _iwidth; if (_rotation == 1 || _rotation == 3) return _dheight; return _dwidth; } /*************************************************************************************** ** Function name: height ** Description: Return the height of sprite *************************************************************************************x*/ int16_t TFT_eSprite::height(void) { if (!_created) return 0; if (_bpp > 1) return _iheight; if (_rotation == 1 || _rotation == 3) return _dwidth; return _dheight; } /*************************************************************************************** ** Function name: setRotation ** Description: Rotate coordinate frame for 1bpp sprite *************************************************************************************x*/ // Does nothing for 8 and 16 bpp sprites. TODO allow rotation of these sprites void TFT_eSprite::setRotation(uint8_t rotation) { if (_bpp != 1) return; _rotation = rotation; if (rotation == 0 && _iwidth > _iheight) swap_coord(_iwidth, _iheight); if (rotation == 1 && _iwidth < _iheight) swap_coord(_iwidth, _iheight); if (rotation == 2 && _iwidth > _iheight) swap_coord(_iwidth, _iheight); if (rotation == 3 && _iwidth < _iheight) swap_coord(_iwidth, _iheight); } /*************************************************************************************** ** Function name: getRotation ** Description: Get rotation for 1bpp sprite *************************************************************************************x*/ uint8_t TFT_eSprite::getRotation(void) { return _rotation; } /*************************************************************************************** ** Function name: drawPixel ** Description: push a single pixel at an arbitrary position *************************************************************************************x*/ void TFT_eSprite::drawPixel(int32_t x, int32_t y, uint32_t color) { // Range checking if ((x < 0) || (y < 0) || !_created) return; if (_bpp == 16) { if ((x >= _iwidth) || (y >= _iheight)) return; color = (color >> 8) | (color << 8); _img[x + y * _iwidth] = (uint16_t)color; } else if (_bpp == 8) { if ((x >= _iwidth) || (y >= _iheight)) return; _img8[x + y * _iwidth] = (uint8_t)((color & 0xE000) >> 8 | (color & 0x0700) >> 6 | (color & 0x0018) >> 3); } else // 1 bpp { if ((x >= _dwidth) || (y >= _dheight)) return; if (_rotation == 1) { uint16_t tx = x; x = _dwidth - y - 1; y = tx; } else if (_rotation == 2) { x = _dwidth - x - 1; y = _dheight - y - 1; } else if (_rotation == 3) { uint16_t tx = x; x = y; y = _dheight - tx - 1; } if (color) _img8[(x + y * _bitwidth) >> 3] |= (0x80 >> (x & 0x7)); else _img8[(x + y * _bitwidth) >> 3] &= ~(0x80 >> (x & 0x7)); } } /*************************************************************************************** ** Function name: drawLine ** Description: draw a line between 2 arbitrary points *************************************************************************************x*/ void TFT_eSprite::drawLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t color) { if (!_created) return; boolean steep = abs(y1 - y0) > abs(x1 - x0); if (steep) { swap_coord(x0, y0); swap_coord(x1, y1); } if (x0 > x1) { swap_coord(x0, x1); swap_coord(y0, y1); } int32_t dx = x1 - x0, dy = abs(y1 - y0); ; int32_t err = dx >> 1, ystep = -1, xs = x0, dlen = 0; if (y0 < y1) ystep = 1; // Split into steep and not steep for FastH/V separation if (steep) { for (; x0 <= x1; x0++) { dlen++; err -= dy; if (err < 0) { err += dx; if (dlen == 1) drawPixel(y0, xs, color); else drawFastVLine(y0, xs, dlen, color); dlen = 0; y0 += ystep; xs = x0 + 1; } } if (dlen) drawFastVLine(y0, xs, dlen, color); } else { for (; x0 <= x1; x0++) { dlen++; err -= dy; if (err < 0) { err += dx; if (dlen == 1) drawPixel(xs, y0, color); else drawFastHLine(xs, y0, dlen, color); dlen = 0; y0 += ystep; xs = x0 + 1; } } if (dlen) drawFastHLine(xs, y0, dlen, color); } } /*************************************************************************************** ** Function name: drawFastVLine ** Description: draw a vertical line *************************************************************************************x*/ void TFT_eSprite::drawFastVLine(int32_t x, int32_t y, int32_t h, uint32_t color) { if ((x < 0) || (x >= _iwidth) || (y >= _iheight) || !_created) return; if (y < 0) { h += y; y = 0; } if ((y + h) > _iheight) h = _iheight - y; if (h < 1) return; if (_bpp == 16) { color = (color >> 8) | (color << 8); int32_t yp = x + _iwidth * y; while (h--) { _img[yp] = (uint16_t)color; yp += _iwidth; } } else if (_bpp == 8) { color = (color & 0xE000) >> 8 | (color & 0x0700) >> 6 | (color & 0x0018) >> 3; while (h--) _img8[x + _iwidth * y++] = (uint8_t)color; } else { while (h--) { drawPixel(x, y, color); y++; } } } /*************************************************************************************** ** Function name: drawFastHLine ** Description: draw a horizontal line *************************************************************************************x*/ void TFT_eSprite::drawFastHLine(int32_t x, int32_t y, int32_t w, uint32_t color) { if ((y < 0) || (x >= _iwidth) || (y >= _iheight) || !_created) return; if (x < 0) { w += x; x = 0; } if ((x + w) > _iwidth) w = _iwidth - x; if (w < 1) return; if (_bpp == 16) { color = (color >> 8) | (color << 8); while (w--) _img[_iwidth * y + x++] = (uint16_t)color; } else if (_bpp == 8) { color = (color & 0xE000) >> 8 | (color & 0x0700) >> 6 | (color & 0x0018) >> 3; memset(_img8 + _iwidth * y + x, (uint8_t)color, w); } else { while (w--) { drawPixel(x, y, color); x++; } } } /*************************************************************************************** ** Function name: fillRect ** Description: draw a filled rectangle *************************************************************************************x*/ void TFT_eSprite::fillRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color) { if (!_created) return; if ((x >= _iwidth) || (y >= _iheight)) return; if (x < 0) { w += x; x = 0; } if (y < 0) { h += y; y = 0; } if ((x + w) > _iwidth) w = _iwidth - x; if ((y + h) > _iheight) h = _iheight - y; if ((w < 1) || (h < 1)) return; int32_t yp = _iwidth * y + x; if (_bpp == 16) { color = (color >> 8) | (color << 8); uint32_t iw = w; int32_t ys = yp; if (h--) { while (iw--) _img[yp++] = (uint16_t)color; } yp = ys; while (h--) { yp += _iwidth; memcpy(_img + yp, _img + ys, w << 1); } } else if (_bpp == 8) { color = (color & 0xE000) >> 8 | (color & 0x0700) >> 6 | (color & 0x0018) >> 3; while (h--) { memset(_img8 + yp, (uint8_t)color, w); yp += _iwidth; } } else { while (h--) { int32_t ww = w; int32_t xx = x; while (ww--) drawPixel(xx++, y, color); y++; } } } /*************************************************************************************** ** Function name: write ** Description: draw characters piped through serial stream *************************************************************************************x*/ size_t TFT_eSprite::write(uint8_t utf8) { uint16_t uniCode = decodeUTF8(utf8); if (!uniCode) return 1; if (utf8 == '\r') return 1; #ifdef SMOOTH_FONT if (this->fontLoaded) { if (uniCode < 32 && utf8 != '\n') return 1; // fontFile = SPIFFS.open( _gFontFilename, "r" ); // fontFile = SPIFFS.open( this->_gFontFilename, "r" ); // if(!fontFile) //{ // fontLoaded = false; // return 1; //} // Serial.print("Decoded Unicode = 0x");Serial.println(unicode,HEX); drawGlyph(uniCode); // fontFile.close(); return 1; } #endif if (!_created) return 1; if (uniCode == '\n') uniCode += 22; // Make it a valid space character to stop errors else if (uniCode < 32) return 1; uint16_t width = 0; uint16_t height = 0; // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv DEBUG // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Serial.print((uint8_t) uniCode); // // Debug line sends all printed TFT text to serial port Serial.println(uniCode, // HEX); // Debug line sends all printed TFT text to serial port delay(5); // // Debug optional wait for serial port to flush through //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ DEBUG //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #ifdef LOAD_GFXFF if (!gfxFont) { #endif //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #ifdef LOAD_FONT2 if (textfont == 2) { if (utf8 > 127) return 1; width = pgm_read_byte(widtbl_f16 + uniCode - 32); height = chr_hgt_f16; // Font 2 is rendered in whole byte widths so we must allow for this width = (width + 6) / 8; // Width in whole bytes for font 2, should be // + 7 but must allow for font width change width = width * 8; // Width converted back to pixles } #ifdef LOAD_RLE else #endif #endif #ifdef LOAD_RLE { if ((textfont > 2) && (textfont < 9)) { if (utf8 > 127) return 1; // Uses the fontinfo struct array to avoid lots of 'if' or // 'switch' statements width = pgm_read_byte( (uint8_t *)pgm_read_dword(&(fontdata[textfont].widthtbl)) + uniCode - 32); height = pgm_read_byte(&fontdata[textfont].height); } } #endif #ifdef LOAD_GLCD if (textfont == 1) { width = 6; height = 8; } #else if (textfont == 1) return 1; #endif height = height * textsize; if (utf8 == '\n') { this->cursor_y += height; this->cursor_x = 0; } else { if (textwrapX && (this->cursor_x + width * textsize > _iwidth)) { this->cursor_y += height; this->cursor_x = 0; } if (textwrapY && (this->cursor_y >= _iheight)) this->cursor_y = 0; this->cursor_x += drawChar(uniCode, this->cursor_x, this->cursor_y, textfont); } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #ifdef LOAD_GFXFF } // Custom GFX font else { if (utf8 == '\n') { this->cursor_x = 0; this->cursor_y += (int16_t)textsize * (uint8_t)pgm_read_byte(&gfxFont->yAdvance); } else { if (uniCode > pgm_read_word(&gfxFont->last)) return 1; if (uniCode < pgm_read_word(&gfxFont->first)) return 1; uint8_t c2 = uniCode - pgm_read_word(&gfxFont->first); GFXglyph *glyph = &(((GFXglyph *)pgm_read_dword(&gfxFont->glyph))[c2]); uint8_t w = pgm_read_byte(&glyph->width), h = pgm_read_byte(&glyph->height); if ((w > 0) && (h > 0)) { // Is there an associated bitmap? int16_t xo = (int8_t)pgm_read_byte(&glyph->xOffset); if (textwrapX && ((this->cursor_x + textsize * (xo + w)) > _iwidth)) { // Drawing character would go off right edge; wrap to new // line this->cursor_x = 0; this->cursor_y += (int16_t)textsize * (uint8_t)pgm_read_byte(&gfxFont->yAdvance); } if (textwrapY && (this->cursor_y >= _iheight)) this->cursor_y = 0; drawChar(this->cursor_x, this->cursor_y, uniCode, textcolor, textbgcolor, textsize); } this->cursor_x += pgm_read_byte(&glyph->xAdvance) * (int16_t)textsize; } } #endif // LOAD_GFXFF //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< return 1; } /*************************************************************************************** ** Function name: drawChar ** Description: draw a single character in the Adafruit GLCD or *freefont *************************************************************************************x*/ void TFT_eSprite::drawChar(int32_t x, int32_t y, uint16_t c, uint32_t color, uint32_t bg, uint8_t size) { if (!_created) return; if ((x >= _iwidth) || // Clip right (y >= _iheight) || // Clip bottom ((x + 6 * size - 1) < 0) || // Clip left ((y + 8 * size - 1) < 0)) // Clip top return; if (c < 32) return; #ifdef LOAD_GLCD //>>>>>>>>>>>>>>>>>> #ifdef LOAD_GFXFF if (!gfxFont) { // 'Classic' built-in font #endif //>>>>>>>>>>>>>>>>>> boolean fillbg = (bg != color); if ((size == 1) && fillbg) { uint8_t column[6]; uint8_t mask = 0x1; for (int8_t i = 0; i < 5; i++) column[i] = pgm_read_byte(font + (c * 5) + i); column[5] = 0; int8_t j, k; for (j = 0; j < 8; j++) { for (k = 0; k < 5; k++) { if (column[k] & mask) { drawPixel(x + k, y + j, color); } else { drawPixel(x + k, y + j, bg); } } mask <<= 1; drawPixel(x + k, y + j, bg); } } else { for (int8_t i = 0; i < 6; i++) { uint8_t line; if (i == 5) line = 0x0; else line = pgm_read_byte(font + (c * 5) + i); if (size == 1) // default size { for (int8_t j = 0; j < 8; j++) { if (line & 0x1) drawPixel(x + i, y + j, color); line >>= 1; } } else { // big size for (int8_t j = 0; j < 8; j++) { if (line & 0x1) fillRect(x + (i * size), y + (j * size), size, size, color); else if (fillbg) fillRect(x + i * size, y + j * size, size, size, bg); line >>= 1; } } } } //>>>>>>>>>>>>>>>>>>>>>>>>>>> #ifdef LOAD_GFXFF } else { // Custom font #endif //>>>>>>>>>>>>>>>>>>>>>>>>>>> #endif // LOAD_GLCD #ifdef LOAD_GFXFF // Filter out bad characters not present in font if ((c >= pgm_read_word(&gfxFont->first)) && (c <= pgm_read_word(&gfxFont->last))) { //>>>>>>>>>>>>>>>>>>>>>>>>>>> c -= pgm_read_word(&gfxFont->first); GFXglyph *glyph = &(((GFXglyph *)pgm_read_dword(&gfxFont->glyph))[c]); uint8_t *bitmap = (uint8_t *)pgm_read_dword(&gfxFont->bitmap); uint32_t bo = pgm_read_word(&glyph->bitmapOffset); uint8_t w = pgm_read_byte(&glyph->width), h = pgm_read_byte(&glyph->height); // xa = pgm_read_byte(&glyph->xAdvance); int8_t xo = pgm_read_byte(&glyph->xOffset), yo = pgm_read_byte(&glyph->yOffset); uint8_t xx, yy, bits = 0, bit = 0; int16_t xo16 = 0, yo16 = 0; if (size > 1) { xo16 = xo; yo16 = yo; } uint16_t hpc = 0; // Horizontal foreground pixel count for (yy = 0; yy < h; yy++) { for (xx = 0; xx < w; xx++) { if (bit == 0) { bits = pgm_read_byte(&bitmap[bo++]); bit = 0x80; } if (bits & bit) hpc++; else { if (hpc) { if (size == 1) drawFastHLine(x + xo + xx - hpc, y + yo + yy, hpc, color); else fillRect(x + (xo16 + xx - hpc) * size, y + (yo16 + yy) * size, size * hpc, size, color); hpc = 0; } } bit >>= 1; } // Draw pixels for this line as we are about to increment yy if (hpc) { if (size == 1) drawFastHLine(x + xo + xx - hpc, y + yo + yy, hpc, color); else fillRect(x + (xo16 + xx - hpc) * size, y + (yo16 + yy) * size, size * hpc, size, color); hpc = 0; } } } #endif #ifdef LOAD_GLCD #ifdef LOAD_GFXFF } // End classic vs custom font #endif #endif } /*************************************************************************************** ** Function name: drawChar ** Description: draw a unicode onto the screen *************************************************************************************x*/ // Any UTF-8 decoding must be done before calling drawChar() int16_t TFT_eSprite::drawChar(uint16_t uniCode, int32_t x, int32_t y) { return drawChar(uniCode, x, y, textfont); } // Any UTF-8 decoding must be done before calling drawChar() int16_t TFT_eSprite::drawChar(uint16_t uniCode, int32_t x, int32_t y, uint8_t font) { if (!_created) return 0; if (!uniCode) return 0; if (font == 1) { #ifdef LOAD_GLCD #ifndef LOAD_GFXFF drawChar(x, y, uniCode, textcolor, textbgcolor, textsize); return 6 * textsize; #endif #else #ifndef LOAD_GFXFF return 0; #endif #endif #ifdef LOAD_GFXFF drawChar(x, y, uniCode, textcolor, textbgcolor, textsize); if (!gfxFont) { // 'Classic' built-in font #ifdef LOAD_GLCD return 6 * textsize; #else return 0; #endif } else { if ((uniCode >= pgm_read_word(&gfxFont->first)) && (uniCode <= pgm_read_word(&gfxFont->last))) { uint16_t c2 = uniCode - pgm_read_word(&gfxFont->first); GFXglyph *glyph = &(((GFXglyph *)pgm_read_dword(&gfxFont->glyph))[c2]); return pgm_read_byte(&glyph->xAdvance) * textsize; } else { return 0; } } #endif } if ((font > 1) && (font < 9) && ((uniCode < 32) || (uniCode > 127))) return 0; int32_t width = 0; int32_t height = 0; uint32_t flash_address = 0; uniCode -= 32; #ifdef LOAD_FONT2 if (font == 2) { // This is faster than using the fontdata structure flash_address = pgm_read_dword(&chrtbl_f16[uniCode]); width = pgm_read_byte(widtbl_f16 + uniCode); height = chr_hgt_f16; } #ifdef LOAD_RLE else #endif #endif #ifdef LOAD_RLE { if ((font > 2) && (font < 9)) { // This is slower than above but is more convenient for the RLE // fonts flash_address = pgm_read_dword(pgm_read_dword(&(fontdata[font].chartbl)) + uniCode * sizeof(void *)); width = pgm_read_byte( (uint8_t *)pgm_read_dword(&(fontdata[font].widthtbl)) + uniCode); height = pgm_read_byte(&fontdata[font].height); } } #endif int32_t w = width; int32_t pX = 0; int32_t pY = y; uint8_t line = 0; #ifdef LOAD_FONT2 // chop out code if we do not need it if (font == 2) { w = w + 6; // Should be + 7 but we need to compensate for width increment w = w / 8; if (x + width * textsize >= _iwidth) return width * textsize; for (int32_t i = 0; i < height; i++) { if (textcolor != textbgcolor) fillRect(x, pY, width * textsize, textsize, textbgcolor); for (int32_t k = 0; k < w; k++) { line = pgm_read_byte((uint8_t *)flash_address + w * i + k); if (line) { if (textsize == 1) { pX = x + k * 8; if (line & 0x80) drawPixel(pX, pY, textcolor); if (line & 0x40) drawPixel(pX + 1, pY, textcolor); if (line & 0x20) drawPixel(pX + 2, pY, textcolor); if (line & 0x10) drawPixel(pX + 3, pY, textcolor); if (line & 0x08) drawPixel(pX + 4, pY, textcolor); if (line & 0x04) drawPixel(pX + 5, pY, textcolor); if (line & 0x02) drawPixel(pX + 6, pY, textcolor); if (line & 0x01) drawPixel(pX + 7, pY, textcolor); } else { pX = x + k * 8 * textsize; if (line & 0x80) fillRect(pX, pY, textsize, textsize, textcolor); if (line & 0x40) fillRect(pX + textsize, pY, textsize, textsize, textcolor); if (line & 0x20) fillRect(pX + 2 * textsize, pY, textsize, textsize, textcolor); if (line & 0x10) fillRect(pX + 3 * textsize, pY, textsize, textsize, textcolor); if (line & 0x08) fillRect(pX + 4 * textsize, pY, textsize, textsize, textcolor); if (line & 0x04) fillRect(pX + 5 * textsize, pY, textsize, textsize, textcolor); if (line & 0x02) fillRect(pX + 6 * textsize, pY, textsize, textsize, textcolor); if (line & 0x01) fillRect(pX + 7 * textsize, pY, textsize, textsize, textcolor); } } } pY += textsize; } } #ifdef LOAD_RLE else #endif #endif // FONT2 #ifdef LOAD_RLE // 674 bytes of code // Font is not 2 and hence is RLE encoded { w *= height; // Now w is total number of pixels in the character if (textcolor != textbgcolor) fillRect(x, pY, width * textsize, textsize * height, textbgcolor); int16_t color = textcolor; if (_bpp == 16) color = (textcolor >> 8) | (textcolor << 8); else if (_bpp == 8) color = ((textcolor & 0xE000) >> 8 | (textcolor & 0x0700) >> 6 | (textcolor & 0x0018) >> 3); int32_t px = 0, py = pY; // To hold character block start and end // column and row values int32_t pc = 0; // Pixel count uint8_t np = textsize * textsize; // Number of pixels in a drawn pixel uint8_t tnp = 0; // Temporary copy of np for while loop uint8_t ts = textsize - 1; // Temporary copy of textsize // 16 bit pixel count so maximum font size is equivalent to 180x180 // pixels in area w is total number of pixels to plot to fill character // block while (pc < w) { line = pgm_read_byte((uint8_t *)flash_address); flash_address++; // 20 bytes smaller by incrementing here if (line & 0x80) { line &= 0x7F; line++; if (ts) { px = x + textsize * (pc % width); // Keep these px and py calculations // outside the loop as they are slow py = y + textsize * (pc / width); } else { px = x + pc % width; // Keep these px and py calculations // outside the loop as they are slow py = y + pc / width; } while (line--) { pc++; setWindow(px, py, px + ts, py + ts); if (ts) { tnp = np; while (tnp--) writeColor(color); } else writeColor(color); px += textsize; if (px >= (x + width * textsize)) { px = x; py += textsize; } } } else { line++; pc += line; } } } // End of RLE font rendering #endif return width * textsize; // x + } #ifdef SMOOTH_FONT /*************************************************************************************** ** Function name: drawGlyph ** Description: Write a character to the sprite cursor position *************************************************************************************x*/ void TFT_eSprite::drawGlyph(uint16_t code) { if (code < 0x21) { if (code == 0x20) { if (_created) this->cursor_x += this->gFont.spaceWidth; else this->cursor_x += this->gFont.spaceWidth; return; } if (code == '\n') { if (_created) { this->cursor_x = 0; this->cursor_y += this->gFont.yAdvance; if (this->cursor_y >= _height) this->cursor_y = 0; return; } else { cursor_x = 0; cursor_y += gFont.yAdvance; if (cursor_y >= _height) cursor_y = 0; return; } } } uint16_t gNum = 0; bool found = this->getUnicodeIndex(code, &gNum); uint16_t fg = this->textcolor; uint16_t bg = this->textbgcolor; if (found) { bool newSprite = !_created; if (newSprite) { createSprite(this->gWidth[gNum], this->gFont.yAdvance); if (bg) fillSprite(bg); this->cursor_x = -this->gdX[gNum]; this->cursor_y = 0; } this->fontFile.seek( this->gBitmap[gNum], fs::SeekSet); // This is slow for a significant position shift! uint8_t pbuffer[this->gWidth[gNum]]; int16_t xs = 0; uint16_t dl = 0; for (int32_t y = 0; y < this->gHeight[gNum]; y++) { this->fontFile.read(pbuffer, this->gWidth[gNum]); for (int32_t x = 0; x < this->gWidth[gNum]; x++) { uint8_t pixel = pbuffer[x]; if (pixel) { if (pixel != 0xFF) { if (dl) { drawFastHLine(xs, y + this->cursor_y + this->gFont.maxAscent - this->gdY[gNum], dl, fg); dl = 0; } if (_bpp != 1) drawPixel(x + this->cursor_x + this->gdX[gNum], y + this->cursor_y + this->gFont.maxAscent - this->gdY[gNum], alphaBlend(pixel, fg, bg)); else if (pixel > 127) drawPixel(x + this->cursor_x + this->gdX[gNum], y + this->cursor_y + this->gFont.maxAscent - this->gdY[gNum], fg); } else { if (dl == 0) xs = x + this->cursor_x + this->gdX[gNum]; dl++; } } else { if (dl) { drawFastHLine(xs, y + this->cursor_y + this->gFont.maxAscent - this->gdY[gNum], dl, fg); dl = 0; } } } if (dl) { drawFastHLine(xs, y + this->cursor_y + this->gFont.maxAscent - this->gdY[gNum], dl, fg); dl = 0; } } if (newSprite) { pushSprite(this->cursor_x + this->gdX[gNum], this->cursor_y, bg); deleteSprite(); this->cursor_x += this->gxAdvance[gNum]; } else this->cursor_x += this->gxAdvance[gNum]; } else { // Not a Unicode in font so draw a rectangle and move on cursor drawRect(this->cursor_x, this->cursor_y + this->gFont.maxAscent - this->gFont.ascent, this->gFont.spaceWidth, this->gFont.ascent, fg); this->cursor_x += this->gFont.spaceWidth + 1; } } /*************************************************************************************** ** Function name: printToSprite ** Description: Write a string to the sprite cursor position *************************************************************************************x*/ void TFT_eSprite::printToSprite(String string) { if (!this->fontLoaded) return; uint16_t len = string.length(); char cbuffer[len + 1]; // Add 1 for the null string.toCharArray( cbuffer, len + 1); // Add 1 for the null, otherwise characters get dropped printToSprite(cbuffer, len); // printToSprite((char*)string.c_str(), string.length()); } /*************************************************************************************** ** Function name: printToSprite ** Description: Write a string to the sprite cursor position *************************************************************************************x*/ void TFT_eSprite::printToSprite(char *cbuffer, uint16_t len) // String string) { if (!this->fontLoaded) return; // fontFile = SPIFFS.open( this->_gFontFilename, "r" ); if (!this->fontFile) { this->fontLoaded = false; return; } uint16_t n = 0; bool newSprite = !_created; if (newSprite) { int16_t sWidth = 0; uint16_t index = 0; while (n < len) { uint16_t unicode = decodeUTF8((uint8_t *)cbuffer, &n, len - n); if (this->getUnicodeIndex(unicode, &index)) { if (n == 0) sWidth -= this->gdX[index]; if (n == len - 1) sWidth += (this->gWidth[index] + this->gdX[index]); else sWidth += this->gxAdvance[index]; } else sWidth += this->gFont.spaceWidth + 1; } createSprite(sWidth, this->gFont.yAdvance); if (this->textbgcolor != TFT_BLACK) fillSprite(this->textbgcolor); } n = 0; while (n < len) { uint16_t unicode = decodeUTF8((uint8_t *)cbuffer, &n, len - n); // Serial.print("Decoded Unicode = 0x");Serial.println(unicode,HEX); // Serial.print("n = ");Serial.println(n); drawGlyph(unicode); } if (newSprite) { // The sprite had to be created so place at TFT cursor pushSprite(_tft->cursor_x, _tft->cursor_y); deleteSprite(); } // fontFile.close(); } /*************************************************************************************** ** Function name: printToSprite ** Description: Print character in a Sprite, create sprite if needed *************************************************************************************x*/ int16_t TFT_eSprite::printToSprite(int16_t x, int16_t y, uint16_t index) { bool newSprite = !_created; int16_t sWidth = this->gWidth[index]; if (newSprite) { createSprite(sWidth, this->gFont.yAdvance); if (this->textbgcolor != TFT_BLACK) fillSprite(this->textbgcolor); drawGlyph(this->gUnicode[index]); pushSprite(x + this->gdX[index], y, this->textbgcolor); deleteSprite(); } else drawGlyph(this->gUnicode[index]); return this->gxAdvance[index]; } #endif ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/Sprite.h ================================================ /*************************************************************************************** // The following class creates Sprites in RAM, graphics can then be drawn in the Sprite // and rendered quickly onto the TFT screen. The class inherits the graphics functions // from the TFT_eSPI class. Some functions are overridden by this class so that the // graphics are written to the Sprite rather than the TFT. ***************************************************************************************/ #include "In_eSPI.h" class TFT_eSprite : public TFT_eSPI { public: TFT_eSprite(TFT_eSPI *tft); // Create a sprite of width x height pixels, return a pointer to the RAM // area Sketch can cast returned value to (uint16_t*) for 16 bit depth if // needed RAM required is 1 byte per pixel for 8 bit colour depth, 2 bytes // for 16 bit void *createSprite(int16_t width, int16_t height, uint8_t frames = 1); // Delete the sprite to free up the RAM void deleteSprite(void); // Select the frame buffer for graphics void *frameBuffer(int8_t f); // Set or get the colour depth to 8 or 16 bits. Can be used to change depth // an existing sprite, but clears it to black, returns a new pointer if // sprite is re-created. void *setColorDepth(int8_t b); int8_t getColorDepth(void); void setBitmapColor(uint16_t c, uint16_t b); void drawPixel(int32_t x, int32_t y, uint32_t color); void drawChar(int32_t x, int32_t y, uint16_t c, uint32_t color, uint32_t bg, uint8_t size), fillSprite(uint32_t color), // Define a window to push 16 bit colour pixels into in a raster order // Colours are converted to 8 bit if depth is set to 8 setWindow(int32_t x0, int32_t y0, int32_t x1, int32_t y1), pushColor(uint32_t color), pushColor(uint32_t color, uint16_t len), // Push a pixel preformatted as a 8 or 16 bit colour (avoids conversion // overhead) writeColor(uint16_t color), // Set the scroll zone, top left corner at x,y with defined width and // height The colour (optional, black is default) is used to fill the // gap after the scroll setScrollRect(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t color = TFT_BLACK), // Scroll the defined zone dx,dy pixels. Negative values left,up, // positive right,down dy is optional (default is then no up/down // scroll). The sprite coordinate frame does not move because pixels are // moved scroll(int16_t dx, int16_t dy = 0), drawLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t color), drawFastVLine(int32_t x, int32_t y, int32_t h, uint32_t color), drawFastHLine(int32_t x, int32_t y, int32_t w, uint32_t color), fillRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color); // Set the sprite text cursor position for print class (does not change the // TFT screen cursor) // setCursor(int16_t x, int16_t y); // Set the rotation of the Sprite (for 1bpp Sprites only) void setRotation(uint8_t rotation); uint8_t getRotation(void); // Push a rotated copy of Sprite to TFT with optional transparent colour bool pushRotated(int16_t angle, int32_t transp = -1); // Push a rotated copy of Sprite to another different Sprite with optional // transparent colour bool pushRotated(TFT_eSprite *spr, int16_t angle, int32_t transp = -1); // Set and get the pivot point for this Sprite void setPivot(int16_t x, int16_t y); int16_t getPivotX(void), getPivotY(void); // Get the bounding box for a rotated copy of this Sprite void getRotatedBounds(float sina, float cosa, int16_t w, int16_t h, int16_t xp, int16_t yp, int16_t *min_x, int16_t *min_y, int16_t *max_x, int16_t *max_y); // Read the colour of a pixel at x,y and return value in 565 format uint16_t readPixel(int32_t x0, int32_t y0); // Write an image (colour bitmap) to the sprite void pushImage(int32_t x0, int32_t y0, int32_t w, int32_t h, uint16_t *data); void pushImage(int32_t x0, int32_t y0, int32_t w, int32_t h, const uint16_t *data); // Swap the byte order for pushImage() - corrects different image endianness void setSwapBytes(bool swap); bool getSwapBytes(void); // Push the sprite to the TFT screen, this fn calls pushImage() in the TFT // class. Optionally a "transparent" colour can be defined, pixels of that // colour will not be rendered void pushSprite(int32_t x, int32_t y); void pushSprite(int32_t x, int32_t y, uint16_t transparent); int16_t drawChar(uint16_t uniCode, int32_t x, int32_t y, uint8_t font), drawChar(uint16_t uniCode, int32_t x, int32_t y); // Return the width and height of the sprite int16_t width(void), height(void); // Used by print class to print text to cursor position size_t write(uint8_t); // Functions associated with anti-aliased fonts void drawGlyph(uint16_t code); void printToSprite(String string); void printToSprite(char *cbuffer, uint16_t len); int16_t printToSprite(int16_t x, int16_t y, uint16_t index); private: TFT_eSPI *_tft; // Reserve memory for the Sprite and return a pointer void *callocSprite(int16_t width, int16_t height, uint8_t frames = 1); protected: uint8_t _bpp; // bits per pixel (1, 8 or 16) uint16_t *_img; // pointer to 16 bit sprite uint8_t *_img8; // pointer to 8 bit sprite uint8_t *_img8_1; // pointer to frame 1 uint8_t *_img8_2; // pointer to frame 2 int16_t _xpivot; // x pivot point coordinate int16_t _ypivot; // y pivot point coordinate bool _created; // A Sprite has been created and memory reserved bool _gFont = false; // int32_t _icursor_x, _icursor_y; uint8_t _rotation = 0; int32_t _xs, _ys, _xe, _ye, _xptr, _yptr; // for setWindow int32_t _sx, _sy; // x,y for scroll zone uint32_t _sw, _sh; // w,h for scroll zone uint32_t _scolor; // gap fill colour for scroll zone boolean _iswapBytes; // Swap the byte order for Sprite pushImage() int32_t _iwidth, _iheight; // Sprite memory image bit width and height // (swapped during rotations) int32_t _dwidth, _dheight; // Real display width and height (for <8bpp Sprites) int32_t _bitwidth; // Sprite image bit width for drawPixel (for <8bpp // Sprites, not swapped) }; ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/qrcode.c ================================================ /** * The MIT License (MIT) * * Copyright (c) 2017 Richard Moore * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /** * Special thanks to Nayuki (https://www.nayuki.io/) from which this library * was heavily inspired and compared against. * * See: https://github.com/nayuki/QR-Code-generator/tree/master/cpp */ #include "qrcode.h" #include #include //#pragma mark - Error Correction Lookup tables #if LOCK_VERSION == 0 static const uint16_t NUM_ERROR_CORRECTION_CODEWORDS[4][40] = { // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, // 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, // 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error // correction level { 10, 16, 26, 36, 48, 64, 72, 88, 110, 130, 150, 176, 198, 216, 240, 280, 308, 338, 364, 416, 442, 476, 504, 560, 588, 644, 700, 728, 784, 812, 868, 924, 980, 1036, 1064, 1120, 1204, 1260, 1316, 1372}, // Medium {7, 10, 15, 20, 26, 36, 40, 48, 60, 72, 80, 96, 104, 120, 132, 144, 168, 180, 196, 224, 224, 252, 270, 300, 312, 336, 360, 390, 420, 450, 480, 510, 540, 570, 570, 600, 630, 660, 720, 750}, // Low {17, 28, 44, 64, 88, 112, 130, 156, 192, 224, 264, 308, 352, 384, 432, 480, 532, 588, 650, 700, 750, 816, 900, 960, 1050, 1110, 1200, 1260, 1350, 1440, 1530, 1620, 1710, 1800, 1890, 1980, 2100, 2220, 2310, 2430}, // High {13, 22, 36, 52, 72, 96, 108, 132, 160, 192, 224, 260, 288, 320, 360, 408, 448, 504, 546, 600, 644, 690, 750, 810, 870, 952, 1020, 1050, 1140, 1200, 1290, 1350, 1440, 1530, 1590, 1680, 1770, 1860, 1950, 2040}, // Quartile }; static const uint8_t NUM_ERROR_CORRECTION_BLOCKS[4][40] = { // Version: (note that index 0 is for padding, and is set to an illegal // value) // 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, // 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, // 40 Error correction level {1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49}, // Medium {1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25}, // Low {1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81}, // High {1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68}, // Quartile }; static const uint16_t NUM_RAW_DATA_MODULES[40] = { // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, // 14, 15, 16, 17, 208, 359, 567, 807, 1079, 1383, 1568, 1936, 2336, 2768, 3232, 3728, 4256, 4651, 5243, 5867, 6523, // 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, // 29, 30, 31, 7211, 7931, 8683, 9252, 10068, 10916, 11796, 12708, 13652, 14628, 15371, 16411, 17483, 18587, // 32, 33, 34, 35, 36, 37, 38, 39, 40 19723, 20891, 22091, 23008, 24272, 25568, 26896, 28256, 29648}; // @TODO: Put other LOCK_VERSIONS here #elif LOCK_VERSION == 3 static const int16_t NUM_ERROR_CORRECTION_CODEWORDS[4] = {26, 15, 44, 36}; static const int8_t NUM_ERROR_CORRECTION_BLOCKS[4] = {1, 1, 2, 2}; static const uint16_t NUM_RAW_DATA_MODULES = 567; #else #error Unsupported LOCK_VERSION (add it...) #endif static int max(int a, int b) { if (a > b) { return a; } return b; } /* static int abs(int value) { if (value < 0) { return -value; } return value; } */ //#pragma mark - Mode testing and conversion static int8_t getAlphanumeric(char c) { if (c >= '0' && c <= '9') { return (c - '0'); } if (c >= 'A' && c <= 'Z') { return (c - 'A' + 10); } switch (c) { case ' ': return 36; case '$': return 37; case '%': return 38; case '*': return 39; case '+': return 40; case '-': return 41; case '.': return 42; case '/': return 43; case ':': return 44; } return -1; } static bool isAlphanumeric(const char *text, uint16_t length) { while (length != 0) { if (getAlphanumeric(text[--length]) == -1) { return false; } } return true; } static bool isNumeric(const char *text, uint16_t length) { while (length != 0) { char c = text[--length]; if (c < '0' || c > '9') { return false; } } return true; } //#pragma mark - Counting // We store the following tightly packed (less 8) in modeInfo // <=9 <=26 <= 40 // NUMERIC ( 10, 12, 14); // ALPHANUMERIC ( 9, 11, 13); // BYTE ( 8, 16, 16); static char getModeBits(uint8_t version, uint8_t mode) { // Note: We use 15 instead of 16; since 15 doesn't exist and we cannot store // 16 (8 + 8) in 3 bits hex(int("".join(reversed([('00' + bin(x - // 8)[2:])[-3:] for x in [10, 9, 8, 12, 11, 15, 14, 13, 15]])), 2)) unsigned int modeInfo = 0x7bbb80a; #if LOCK_VERSION == 0 || LOCK_VERSION > 9 if (version > 9) { modeInfo >>= 9; } #endif #if LOCK_VERSION == 0 || LOCK_VERSION > 26 if (version > 26) { modeInfo >>= 9; } #endif char result = 8 + ((modeInfo >> (3 * mode)) & 0x07); if (result == 15) { result = 16; } return result; } //#pragma mark - BitBucket typedef struct BitBucket { uint32_t bitOffsetOrWidth; uint16_t capacityBytes; uint8_t *data; } BitBucket; /* void bb_dump(BitBucket *bitBuffer) { printf("Buffer: "); for (uint32_t i = 0; i < bitBuffer->capacityBytes; i++) { printf("%02x", bitBuffer->data[i]); if ((i % 4) == 3) { printf(" "); } } printf("\n"); } */ static uint16_t bb_getGridSizeBytes(uint8_t size) { return (((size * size) + 7) / 8); } static uint16_t bb_getBufferSizeBytes(uint32_t bits) { return ((bits + 7) / 8); } static void bb_initBuffer(BitBucket *bitBuffer, uint8_t *data, int32_t capacityBytes) { bitBuffer->bitOffsetOrWidth = 0; bitBuffer->capacityBytes = capacityBytes; bitBuffer->data = data; memset(data, 0, bitBuffer->capacityBytes); } static void bb_initGrid(BitBucket *bitGrid, uint8_t *data, uint8_t size) { bitGrid->bitOffsetOrWidth = size; bitGrid->capacityBytes = bb_getGridSizeBytes(size); bitGrid->data = data; memset(data, 0, bitGrid->capacityBytes); } static void bb_appendBits(BitBucket *bitBuffer, uint32_t val, uint8_t length) { uint32_t offset = bitBuffer->bitOffsetOrWidth; for (int8_t i = length - 1; i >= 0; i--, offset++) { bitBuffer->data[offset >> 3] |= ((val >> i) & 1) << (7 - (offset & 7)); } bitBuffer->bitOffsetOrWidth = offset; } /* void bb_setBits(BitBucket *bitBuffer, uint32_t val, int offset, uint8_t length) { for (int8_t i = length - 1; i >= 0; i--, offset++) { bitBuffer->data[offset >> 3] |= ((val >> i) & 1) << (7 - (offset & 7)); } } */ static void bb_setBit(BitBucket *bitGrid, uint8_t x, uint8_t y, bool on) { uint32_t offset = y * bitGrid->bitOffsetOrWidth + x; uint8_t mask = 1 << (7 - (offset & 0x07)); if (on) { bitGrid->data[offset >> 3] |= mask; } else { bitGrid->data[offset >> 3] &= ~mask; } } static void bb_invertBit(BitBucket *bitGrid, uint8_t x, uint8_t y, bool invert) { uint32_t offset = y * bitGrid->bitOffsetOrWidth + x; uint8_t mask = 1 << (7 - (offset & 0x07)); bool on = ((bitGrid->data[offset >> 3] & (1 << (7 - (offset & 0x07)))) != 0); if (on ^ invert) { bitGrid->data[offset >> 3] |= mask; } else { bitGrid->data[offset >> 3] &= ~mask; } } static bool bb_getBit(BitBucket *bitGrid, uint8_t x, uint8_t y) { uint32_t offset = y * bitGrid->bitOffsetOrWidth + x; return (bitGrid->data[offset >> 3] & (1 << (7 - (offset & 0x07)))) != 0; } //#pragma mark - Drawing Patterns // XORs the data modules in this QR Code with the given mask pattern. Due to // XOR's mathematical properties, calling applyMask(m) twice with the same value // is equivalent to no change at all. This means it is possible to apply a mask, // undo it, and try another mask. Note that a final well-formed QR Code symbol // needs exactly one mask applied (not zero, not two, etc.). static void applyMask(BitBucket *modules, BitBucket *isFunction, uint8_t mask) { uint8_t size = modules->bitOffsetOrWidth; for (uint8_t y = 0; y < size; y++) { for (uint8_t x = 0; x < size; x++) { if (bb_getBit(isFunction, x, y)) { continue; } bool invert = 0; switch (mask) { case 0: invert = (x + y) % 2 == 0; break; case 1: invert = y % 2 == 0; break; case 2: invert = x % 3 == 0; break; case 3: invert = (x + y) % 3 == 0; break; case 4: invert = (x / 3 + y / 2) % 2 == 0; break; case 5: invert = x * y % 2 + x * y % 3 == 0; break; case 6: invert = (x * y % 2 + x * y % 3) % 2 == 0; break; case 7: invert = ((x + y) % 2 + x * y % 3) % 2 == 0; break; } bb_invertBit(modules, x, y, invert); } } } static void setFunctionModule(BitBucket *modules, BitBucket *isFunction, uint8_t x, uint8_t y, bool on) { bb_setBit(modules, x, y, on); bb_setBit(isFunction, x, y, true); } // Draws a 9*9 finder pattern including the border separator, with the center // module at (x, y). static void drawFinderPattern(BitBucket *modules, BitBucket *isFunction, uint8_t x, uint8_t y) { uint8_t size = modules->bitOffsetOrWidth; for (int8_t i = -4; i <= 4; i++) { for (int8_t j = -4; j <= 4; j++) { uint8_t dist = max(abs(i), abs(j)); // Chebyshev/infinity norm int16_t xx = x + j, yy = y + i; if (0 <= xx && xx < size && 0 <= yy && yy < size) { setFunctionModule(modules, isFunction, xx, yy, dist != 2 && dist != 4); } } } } // Draws a 5*5 alignment pattern, with the center module at (x, y). static void drawAlignmentPattern(BitBucket *modules, BitBucket *isFunction, uint8_t x, uint8_t y) { for (int8_t i = -2; i <= 2; i++) { for (int8_t j = -2; j <= 2; j++) { setFunctionModule(modules, isFunction, x + j, y + i, max(abs(i), abs(j)) != 1); } } } // Draws two copies of the format bits (with its own error correction code) // based on the given mask and this object's error correction level field. static void drawFormatBits(BitBucket *modules, BitBucket *isFunction, uint8_t ecc, uint8_t mask) { uint8_t size = modules->bitOffsetOrWidth; // Calculate error correction code and pack bits uint32_t data = ecc << 3 | mask; // errCorrLvl is uint2, mask is uint3 uint32_t rem = data; for (int i = 0; i < 10; i++) { rem = (rem << 1) ^ ((rem >> 9) * 0x537); } data = data << 10 | rem; data ^= 0x5412; // uint15 // Draw first copy for (uint8_t i = 0; i <= 5; i++) { setFunctionModule(modules, isFunction, 8, i, ((data >> i) & 1) != 0); } setFunctionModule(modules, isFunction, 8, 7, ((data >> 6) & 1) != 0); setFunctionModule(modules, isFunction, 8, 8, ((data >> 7) & 1) != 0); setFunctionModule(modules, isFunction, 7, 8, ((data >> 8) & 1) != 0); for (int8_t i = 9; i < 15; i++) { setFunctionModule(modules, isFunction, 14 - i, 8, ((data >> i) & 1) != 0); } // Draw second copy for (int8_t i = 0; i <= 7; i++) { setFunctionModule(modules, isFunction, size - 1 - i, 8, ((data >> i) & 1) != 0); } for (int8_t i = 8; i < 15; i++) { setFunctionModule(modules, isFunction, 8, size - 15 + i, ((data >> i) & 1) != 0); } setFunctionModule(modules, isFunction, 8, size - 8, true); } // Draws two copies of the version bits (with its own error correction code), // based on this object's version field (which only has an effect for 7 <= // version <= 40). static void drawVersion(BitBucket *modules, BitBucket *isFunction, uint8_t version) { int8_t size = modules->bitOffsetOrWidth; #if LOCK_VERSION != 0 && LOCK_VERSION < 7 return; #else if (version < 7) { return; } // Calculate error correction code and pack bits uint32_t rem = version; // version is uint6, in the range [7, 40] for (uint8_t i = 0; i < 12; i++) { rem = (rem << 1) ^ ((rem >> 11) * 0x1F25); } uint32_t data = version << 12 | rem; // uint18 // Draw two copies for (uint8_t i = 0; i < 18; i++) { bool bit = ((data >> i) & 1) != 0; uint8_t a = size - 11 + i % 3, b = i / 3; setFunctionModule(modules, isFunction, a, b, bit); setFunctionModule(modules, isFunction, b, a, bit); } #endif } static void drawFunctionPatterns(BitBucket *modules, BitBucket *isFunction, uint8_t version, uint8_t ecc) { uint8_t size = modules->bitOffsetOrWidth; // Draw the horizontal and vertical timing patterns for (uint8_t i = 0; i < size; i++) { setFunctionModule(modules, isFunction, 6, i, i % 2 == 0); setFunctionModule(modules, isFunction, i, 6, i % 2 == 0); } // Draw 3 finder patterns (all corners except bottom right; overwrites some // timing modules) drawFinderPattern(modules, isFunction, 3, 3); drawFinderPattern(modules, isFunction, size - 4, 3); drawFinderPattern(modules, isFunction, 3, size - 4); #if LOCK_VERSION == 0 || LOCK_VERSION > 1 if (version > 1) { // Draw the numerous alignment patterns uint8_t alignCount = version / 7 + 2; uint8_t step; if (version != 32) { step = (version * 4 + alignCount * 2 + 1) / (2 * alignCount - 2) * 2; // ceil((size - 13) / (2*numAlign - 2)) * 2 } else { // C-C-C-Combo breaker! step = 26; } uint8_t alignPositionIndex = alignCount - 1; uint8_t alignPosition[alignCount]; alignPosition[0] = 6; uint8_t size = version * 4 + 17; for (uint8_t i = 0, pos = size - 7; i < alignCount - 1; i++, pos -= step) { alignPosition[alignPositionIndex--] = pos; } for (uint8_t i = 0; i < alignCount; i++) { for (uint8_t j = 0; j < alignCount; j++) { if ((i == 0 && j == 0) || (i == 0 && j == alignCount - 1) || (i == alignCount - 1 && j == 0)) { continue; // Skip the three finder corners } else { drawAlignmentPattern(modules, isFunction, alignPosition[i], alignPosition[j]); } } } } #endif // Draw configuration data drawFormatBits( modules, isFunction, ecc, 0); // Dummy mask value; overwritten later in the constructor drawVersion(modules, isFunction, version); } // Draws the given sequence of 8-bit codewords (data and error correction) onto // the entire data area of this QR Code symbol. Function modules need to be // marked off before this is called. static void drawCodewords(BitBucket *modules, BitBucket *isFunction, BitBucket *codewords) { uint32_t bitLength = codewords->bitOffsetOrWidth; uint8_t *data = codewords->data; uint8_t size = modules->bitOffsetOrWidth; // Bit index into the data uint32_t i = 0; // Do the funny zigzag scan for (int16_t right = size - 1; right >= 1; right -= 2) { // Index of right column in each column pair if (right == 6) { right = 5; } for (uint8_t vert = 0; vert < size; vert++) { // Vertical counter for (int j = 0; j < 2; j++) { uint8_t x = right - j; // Actual x coordinate bool upwards = ((right & 2) == 0) ^ (x < 6); uint8_t y = upwards ? size - 1 - vert : vert; // Actual y coordinate if (!bb_getBit(isFunction, x, y) && i < bitLength) { bb_setBit(modules, x, y, ((data[i >> 3] >> (7 - (i & 7))) & 1) != 0); i++; } // If there are any remainder bits (0 to 7), they are already // set to 0/false/white when the grid of modules was initialized } } } } //#pragma mark - Penalty Calculation #define PENALTY_N1 3 #define PENALTY_N2 3 #define PENALTY_N3 40 #define PENALTY_N4 10 // Calculates and returns the penalty score based on state of this QR Code's // current modules. This is used by the automatic mask choice algorithm to find // the mask pattern that yields the lowest score. // @TODO: This can be optimized by working with the bytes instead of bits. static uint32_t getPenaltyScore(BitBucket *modules) { uint32_t result = 0; uint8_t size = modules->bitOffsetOrWidth; // Adjacent modules in row having same color for (uint8_t y = 0; y < size; y++) { bool colorX = bb_getBit(modules, 0, y); for (uint8_t x = 1, runX = 1; x < size; x++) { bool cx = bb_getBit(modules, x, y); if (cx != colorX) { colorX = cx; runX = 1; } else { runX++; if (runX == 5) { result += PENALTY_N1; } else if (runX > 5) { result++; } } } } // Adjacent modules in column having same color for (uint8_t x = 0; x < size; x++) { bool colorY = bb_getBit(modules, x, 0); for (uint8_t y = 1, runY = 1; y < size; y++) { bool cy = bb_getBit(modules, x, y); if (cy != colorY) { colorY = cy; runY = 1; } else { runY++; if (runY == 5) { result += PENALTY_N1; } else if (runY > 5) { result++; } } } } uint16_t black = 0; for (uint8_t y = 0; y < size; y++) { uint16_t bitsRow = 0, bitsCol = 0; for (uint8_t x = 0; x < size; x++) { bool color = bb_getBit(modules, x, y); // 2*2 blocks of modules having same color if (x > 0 && y > 0) { bool colorUL = bb_getBit(modules, x - 1, y - 1); bool colorUR = bb_getBit(modules, x, y - 1); bool colorL = bb_getBit(modules, x - 1, y); if (color == colorUL && color == colorUR && color == colorL) { result += PENALTY_N2; } } // Finder-like pattern in rows and columns bitsRow = ((bitsRow << 1) & 0x7FF) | color; bitsCol = ((bitsCol << 1) & 0x7FF) | bb_getBit(modules, y, x); // Needs 11 bits accumulated if (x >= 10) { if (bitsRow == 0x05D || bitsRow == 0x5D0) { result += PENALTY_N3; } if (bitsCol == 0x05D || bitsCol == 0x5D0) { result += PENALTY_N3; } } // Balance of black and white modules if (color) { black++; } } } // Find smallest k such that (45-5k)% <= dark/total <= (55+5k)% uint16_t total = size * size; for (uint16_t k = 0; black * 20 < (9 - k) * total || black * 20 > (11 + k) * total; k++) { result += PENALTY_N4; } return result; } //#pragma mark - Reed-Solomon Generator static uint8_t rs_multiply(uint8_t x, uint8_t y) { // Russian peasant multiplication // See: https://en.wikipedia.org/wiki/Ancient_Egyptian_multiplication uint16_t z = 0; for (int8_t i = 7; i >= 0; i--) { z = (z << 1) ^ ((z >> 7) * 0x11D); z ^= ((y >> i) & 1) * x; } return z; } static void rs_init(uint8_t degree, uint8_t *coeff) { memset(coeff, 0, degree); coeff[degree - 1] = 1; // Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * // (x - r^{degree-1}), drop the highest term, and store the rest of the // coefficients in order of descending powers. Note that r = 0x02, which is // a generator element of this field GF(2^8/0x11D). uint16_t root = 1; for (uint8_t i = 0; i < degree; i++) { // Multiply the current product by (x - r^i) for (uint8_t j = 0; j < degree; j++) { coeff[j] = rs_multiply(coeff[j], root); if (j + 1 < degree) { coeff[j] ^= coeff[j + 1]; } } root = (root << 1) ^ ((root >> 7) * 0x11D); // Multiply by 0x02 mod GF(2^8/0x11D) } } static void rs_getRemainder(uint8_t degree, uint8_t *coeff, uint8_t *data, uint8_t length, uint8_t *result, uint8_t stride) { // Compute the remainder by performing polynomial division // for (uint8_t i = 0; i < degree; i++) { result[] = 0; } // memset(result, 0, degree); for (uint8_t i = 0; i < length; i++) { uint8_t factor = data[i] ^ result[0]; for (uint8_t j = 1; j < degree; j++) { result[(j - 1) * stride] = result[j * stride]; } result[(degree - 1) * stride] = 0; for (uint8_t j = 0; j < degree; j++) { result[j * stride] ^= rs_multiply(coeff[j], factor); } } } //#pragma mark - QrCode static int8_t encodeDataCodewords(BitBucket *dataCodewords, const uint8_t *text, uint16_t length, uint8_t version) { int8_t mode = MODE_BYTE; if (isNumeric((char *)text, length)) { mode = MODE_NUMERIC; bb_appendBits(dataCodewords, 1 << MODE_NUMERIC, 4); bb_appendBits(dataCodewords, length, getModeBits(version, MODE_NUMERIC)); uint16_t accumData = 0; uint8_t accumCount = 0; for (uint16_t i = 0; i < length; i++) { accumData = accumData * 10 + ((char)(text[i]) - '0'); accumCount++; if (accumCount == 3) { bb_appendBits(dataCodewords, accumData, 10); accumData = 0; accumCount = 0; } } // 1 or 2 digits remaining if (accumCount > 0) { bb_appendBits(dataCodewords, accumData, accumCount * 3 + 1); } } else if (isAlphanumeric((char *)text, length)) { mode = MODE_ALPHANUMERIC; bb_appendBits(dataCodewords, 1 << MODE_ALPHANUMERIC, 4); bb_appendBits(dataCodewords, length, getModeBits(version, MODE_ALPHANUMERIC)); uint16_t accumData = 0; uint8_t accumCount = 0; for (uint16_t i = 0; i < length; i++) { accumData = accumData * 45 + getAlphanumeric((char)(text[i])); accumCount++; if (accumCount == 2) { bb_appendBits(dataCodewords, accumData, 11); accumData = 0; accumCount = 0; } } // 1 character remaining if (accumCount > 0) { bb_appendBits(dataCodewords, accumData, 6); } } else { bb_appendBits(dataCodewords, 1 << MODE_BYTE, 4); bb_appendBits(dataCodewords, length, getModeBits(version, MODE_BYTE)); for (uint16_t i = 0; i < length; i++) { bb_appendBits(dataCodewords, (char)(text[i]), 8); } } // bb_setBits(dataCodewords, length, 4, getModeBits(version, mode)); return mode; } static void performErrorCorrection(uint8_t version, uint8_t ecc, BitBucket *data) { // See: http://www.thonky.com/qr-code-tutorial/structure-final-message #if LOCK_VERSION == 0 uint8_t numBlocks = NUM_ERROR_CORRECTION_BLOCKS[ecc][version - 1]; uint16_t totalEcc = NUM_ERROR_CORRECTION_CODEWORDS[ecc][version - 1]; uint16_t moduleCount = NUM_RAW_DATA_MODULES[version - 1]; #else uint8_t numBlocks = NUM_ERROR_CORRECTION_BLOCKS[ecc]; uint16_t totalEcc = NUM_ERROR_CORRECTION_CODEWORDS[ecc]; uint16_t moduleCount = NUM_RAW_DATA_MODULES; #endif uint8_t blockEccLen = totalEcc / numBlocks; uint8_t numShortBlocks = numBlocks - moduleCount / 8 % numBlocks; uint8_t shortBlockLen = moduleCount / 8 / numBlocks; uint8_t shortDataBlockLen = shortBlockLen - blockEccLen; uint8_t result[data->capacityBytes]; memset(result, 0, sizeof(result)); uint8_t coeff[blockEccLen]; rs_init(blockEccLen, coeff); uint16_t offset = 0; uint8_t *dataBytes = data->data; // Interleave all short blocks for (uint8_t i = 0; i < shortDataBlockLen; i++) { uint16_t index = i; uint8_t stride = shortDataBlockLen; for (uint8_t blockNum = 0; blockNum < numBlocks; blockNum++) { result[offset++] = dataBytes[index]; #if LOCK_VERSION == 0 || LOCK_VERSION >= 5 if (blockNum == numShortBlocks) { stride++; } #endif index += stride; } } // Version less than 5 only have short blocks #if LOCK_VERSION == 0 || LOCK_VERSION >= 5 { // Interleave long blocks uint16_t index = shortDataBlockLen * (numShortBlocks + 1); uint8_t stride = shortDataBlockLen; for (uint8_t blockNum = 0; blockNum < numBlocks - numShortBlocks; blockNum++) { result[offset++] = dataBytes[index]; if (blockNum == 0) { stride++; } index += stride; } } #endif // Add all ecc blocks, interleaved uint8_t blockSize = shortDataBlockLen; for (uint8_t blockNum = 0; blockNum < numBlocks; blockNum++) { #if LOCK_VERSION == 0 || LOCK_VERSION >= 5 if (blockNum == numShortBlocks) { blockSize++; } #endif rs_getRemainder(blockEccLen, coeff, dataBytes, blockSize, &result[offset + blockNum], numBlocks); dataBytes += blockSize; } memcpy(data->data, result, data->capacityBytes); data->bitOffsetOrWidth = moduleCount; } // We store the Format bits tightly packed into a single byte (each of the 4 // modes is 2 bits) The format bits can be determined by ECC_FORMAT_BITS >> (2 * // ecc) static const uint8_t ECC_FORMAT_BITS = (0x02 << 6) | (0x03 << 4) | (0x00 << 2) | (0x01 << 0); //#pragma mark - Public QRCode functions uint16_t qrcode_getBufferSize(uint8_t version) { return bb_getGridSizeBytes(4 * version + 17); } // @TODO: Return error if data is too big. int8_t qrcode_initBytes(QRCode *qrcode, uint8_t *modules, uint8_t version, uint8_t ecc, uint8_t *data, uint16_t length) { uint8_t size = version * 4 + 17; qrcode->version = version; qrcode->size = size; qrcode->ecc = ecc; qrcode->modules = modules; uint8_t eccFormatBits = (ECC_FORMAT_BITS >> (2 * ecc)) & 0x03; #if LOCK_VERSION == 0 uint16_t moduleCount = NUM_RAW_DATA_MODULES[version - 1]; uint16_t dataCapacity = moduleCount / 8 - NUM_ERROR_CORRECTION_CODEWORDS[eccFormatBits][version - 1]; #else version = LOCK_VERSION; uint16_t moduleCount = NUM_RAW_DATA_MODULES; uint16_t dataCapacity = moduleCount / 8 - NUM_ERROR_CORRECTION_CODEWORDS[eccFormatBits]; #endif struct BitBucket codewords; uint8_t codewordBytes[bb_getBufferSizeBytes(moduleCount)]; bb_initBuffer(&codewords, codewordBytes, (int32_t)sizeof(codewordBytes)); // Place the data code words into the buffer int8_t mode = encodeDataCodewords(&codewords, data, length, version); if (mode < 0) { return -1; } qrcode->mode = mode; // Add terminator and pad up to a byte if applicable uint32_t padding = (dataCapacity * 8) - codewords.bitOffsetOrWidth; if (padding > 4) { padding = 4; } bb_appendBits(&codewords, 0, padding); bb_appendBits(&codewords, 0, (8 - codewords.bitOffsetOrWidth % 8) % 8); // Pad with alternate bytes until data capacity is reached for (uint8_t padByte = 0xEC; codewords.bitOffsetOrWidth < (dataCapacity * 8); padByte ^= 0xEC ^ 0x11) { bb_appendBits(&codewords, padByte, 8); } BitBucket modulesGrid; bb_initGrid(&modulesGrid, modules, size); BitBucket isFunctionGrid; uint8_t isFunctionGridBytes[bb_getGridSizeBytes(size)]; bb_initGrid(&isFunctionGrid, isFunctionGridBytes, size); // Draw function patterns, draw all codewords, do masking drawFunctionPatterns(&modulesGrid, &isFunctionGrid, version, eccFormatBits); performErrorCorrection(version, eccFormatBits, &codewords); drawCodewords(&modulesGrid, &isFunctionGrid, &codewords); // Find the best (lowest penalty) mask uint8_t mask = 0; int32_t minPenalty = INT32_MAX; for (uint8_t i = 0; i < 8; i++) { drawFormatBits(&modulesGrid, &isFunctionGrid, eccFormatBits, i); applyMask(&modulesGrid, &isFunctionGrid, i); int penalty = getPenaltyScore(&modulesGrid); if (penalty < minPenalty) { mask = i; minPenalty = penalty; } applyMask(&modulesGrid, &isFunctionGrid, i); // Undoes the mask due to XOR } qrcode->mask = mask; // Overwrite old format bits drawFormatBits(&modulesGrid, &isFunctionGrid, eccFormatBits, mask); // Apply the final choice of mask applyMask(&modulesGrid, &isFunctionGrid, mask); return 0; } int8_t qrcode_initText(QRCode *qrcode, uint8_t *modules, uint8_t version, uint8_t ecc, const char *data) { return qrcode_initBytes(qrcode, modules, version, ecc, (uint8_t *)data, strlen(data)); } bool qrcode_getModule(QRCode *qrcode, uint8_t x, uint8_t y) { if (x >= qrcode->size || y >= qrcode->size) { return false; } uint32_t offset = y * qrcode->size + x; return (qrcode->modules[offset >> 3] & (1 << (7 - (offset & 0x07)))) != 0; } /* uint8_t qrcode_getHexLength(QRCode *qrcode) { return ((qrcode->size * qrcode->size) + 7) / 4; } void qrcode_getHex(QRCode *qrcode, char *result) { } */ ================================================ FILE: arduino_workspace/libraries/M5StickC-Plus/src/utility/qrcode.h ================================================ /** * The MIT License (MIT) * * Copyright (c) 2017 Richard Moore * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /** * Special thanks to Nayuki (https://www.nayuki.io/) from which this library * was heavily inspired and compared against. * * See: https://github.com/nayuki/QR-Code-generator/tree/master/cpp */ #ifndef __QRCODE_H_ #define __QRCODE_H_ #ifndef __cplusplus typedef unsigned char bool; static const bool false = 0; static const bool true = 1; #endif #include // QR Code Format Encoding #define MODE_NUMERIC 0 #define MODE_ALPHANUMERIC 1 #define MODE_BYTE 2 // Error Correction Code Levels #define ECC_LOW 0 #define ECC_MEDIUM 1 #define ECC_QUARTILE 2 #define ECC_HIGH 3 // If set to non-zero, this library can ONLY produce QR codes at that version // This saves a lot of dynamic memory, as the codeword tables are skipped #ifndef LOCK_VERSION #define LOCK_VERSION 0 #endif typedef struct QRCode { uint8_t version; uint8_t size; uint8_t ecc; uint8_t mode; uint8_t mask; uint8_t *modules; } QRCode; #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ uint16_t qrcode_getBufferSize(uint8_t version); int8_t qrcode_initText(QRCode *qrcode, uint8_t *modules, uint8_t version, uint8_t ecc, const char *data); int8_t qrcode_initBytes(QRCode *qrcode, uint8_t *modules, uint8_t version, uint8_t ecc, uint8_t *data, uint16_t length); bool qrcode_getModule(QRCode *qrcode, uint8_t x, uint8_t y); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __QRCODE_H_ */ ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/PtpIpCamera.cpp ================================================ #include "PtpIpCamera.h" #include #include "ptpip_utils.h" #define PTPIP_TIMEOUT 5000 #define PTPIP_CONN_TIMEOUT 5000 #define PTPIP_CONN_WAIT 1000 #define PTPIP_PACKET_TIMEOUT 5000 #define PTPIP_ERROR_THRESH 10 #define PTPIP_INITSEQ_TIMEOUT 10000 //#define PTPIP_DEBUG_RX PtpIpCamera::PtpIpCamera(char* name) { strcpy(my_name, name); state = PTPSTATE_INIT; #ifdef PTPIP_KEEP_STATS stats_pkts = 0; stats_acks = 0; stats_tx = 0; #endif critical_error_cnt = 0; dbgser_important = new DebuggingSerial(&Serial); dbgser_states = new DebuggingSerial(&Serial); dbgser_events = new DebuggingSerial(&Serial); dbgser_rx = new DebuggingSerial(&Serial); dbgser_tx = new DebuggingSerial(&Serial); dbgser_devprop_dump = new DebuggingSerial(&Serial); dbgser_devprop_change = new DebuggingSerial(&Serial); dbgser_important->enabled = true; dbgser_states-> enabled = true; dbgser_events-> enabled = true; dbgser_rx-> enabled = false; #ifdef PTPIP_DEBUG_RX dbgser_rx->enabled = true; #endif dbgser_tx->enabled = false; dbgser_devprop_dump-> enabled = false; dbgser_devprop_change->enabled = false; } void PtpIpCamera::begin(uint32_t ip, uint32_t wait) { if (ip == 0) { //dbgser_important->printf("PTP camera got an empty IP address\r\n"); return; } if (state > PTPSTATE_START_WAIT && state < PTPSTATE_DISCONNECTED) { return; } dbgser_states->printf("PTP camera beginning connection %08X\r\n", ip); ip_addr = ip; state = PTPSTATE_START_WAIT; last_rx_time = millis(); conn_wait = wait; need_disconnect = false; } void PtpIpCamera::force_disconnect(void) { ip_addr = 0; state = 0; need_disconnect = true; } void PtpIpCamera::task() { uint32_t now = millis(); if (state == PTPSTATE_INIT) { return; } if (need_disconnect) { ip_addr = 0; state = 0; need_disconnect = false; return; } if (state == PTPSTATE_START_WAIT && (now - last_rx_time) > conn_wait) { reset_buffers(); error_cnt = 0; #ifdef USE_ASYNC_SOCK socket_main.onPacket (this->onAsyncPacket , this); socket_main.onError (this->onAsyncError , this); socket_main.onTimeout (this->onAsyncTimeout , this); socket_main.onAck (this->onAsyncAck , this); socket_event.onPacket (this->onAsyncPacketEvent, this); socket_event.onError (this->onAsyncError , this); socket_event.onTimeout(this->onAsyncTimeout , this); socket_event.onAck (this->onAsyncAck , this); #endif socket_main.connect (IPAddress(ip_addr), PTP_OVER_IP_PORT #ifndef USE_ASYNC_SOCK , PTPIP_CONN_TIMEOUT #endif ); socket_event.connect(IPAddress(ip_addr), PTP_OVER_IP_PORT #ifndef USE_ASYNC_SOCK , PTPIP_CONN_TIMEOUT #endif ); state = PTPSTATE_SOCK_CONN; last_rx_time = now; } if (state == PTPSTATE_SOCK_CONN) { if (socket_main.connected() && socket_event.connected()) { #ifndef USE_ASYNC_SOCK socket_main .setTimeout(PTPIP_TIMEOUT); socket_event.setTimeout(PTPIP_TIMEOUT); #else socket_main .setAckTimeout(PTPIP_TIMEOUT); socket_event.setAckTimeout(PTPIP_TIMEOUT); //dbgser_states->printf("PTP socket MSS %u\r\n", socket_main.getMss()); #endif last_rx_time = now; state += 2; dbgser_states->printf("PTP sockets connected\r\n"); if (cb_onConfirmedAvail != NULL) { cb_onConfirmedAvail(); } return; } else if ((now - last_rx_time) > PTPIP_CONN_TIMEOUT) { dbgser_important->printf("PTP connection timed out\r\n"); state = PTPSTATE_DISCONNECTED; critical_error_cnt++; if (cb_onCriticalError != NULL) { cb_onCriticalError(); } return; } } if (state == PTPSTATE_DISCONNECT) { #ifdef USE_ASYNC_SOCK socket_main .close(true); socket_event.close(true); #else socket_main .stop(); socket_event.stop(); #endif dbgser_important->printf("PTP socket stopping due to disconnection\r\n"); state |= 1; return; } else if (state == (PTPSTATE_DISCONNECT | 1)) { #ifdef USE_ASYNC_SOCK if (socket_main.disconnected() && socket_event.disconnected()) { state = PTPSTATE_DISCONNECTED; } #else state = PTPSTATE_DISCONNECTED; #endif if (cb_onDisconnect != NULL) { cb_onDisconnect(); } return; } if (state < PTPSTATE_DISCONNECT && error_cnt >= PTPIP_ERROR_THRESH) { dbgser_important->printf("PTP socket too many errors (state %u)\r\n", state); state = PTPSTATE_DISCONNECT; return; } if (state > PTPSTATE_SOCK_CONN + 1 && state < PTPSTATE_DISCONNECT) { if (socket_main.connected() == 0 || socket_event.connected() == 0) { dbgser_important->printf("PTP socket disconnected (state %u)\r\n", state); state = PTPSTATE_DISCONNECT; return; } poll(); uint32_t last_pending = pending_data; uint32_t pkt_timeout = PTPIP_PACKET_TIMEOUT; if (pending_data > 0 || pktbuff_idx > 0) { pkt_timeout *= 3; } do { if (now > last_rx_time && (now - last_rx_time) > pkt_timeout) { if (pktbuff_idx > 0) { if (try_decode_pkt(pktbuff, &pktbuff_idx, PACKET_BUFFER_SIZE, true) == false) { dbgser_important->printf("PTP timeout receiving packet (%u rem)\r\n", pktbuff_idx); } } last_rx_time = now; reset_buffers(); if (cb_stream_done != NULL) { cb_stream_done(); } cb_stream_done = NULL; cb_stream = NULL; stream_state = PTPSTREAMSTATE_NONE; pending_data = 0; break; } // if we are in a critical streaming mode, keep polling tightly // which means no LCD updates, no button presses, no I2C transactions if ((stream_state != PTPSTREAMSTATE_NONE && pending_data > 0) && (millis() - now) < 2000) { poll(); if (last_pending != pending_data) { // keep reading if busy now = millis(); last_pending = pending_data; } continue; } else { break; } } while (true); } if (state == PTPSTATE_CMD_REQ) { if (send_cmd_req()) { dbgser_states->printf("PTP init sent CMD_REQ\r\n"); } else { dbgser_important->printf("PTP init send error, CMD_REQ failed\r\n"); } } else if (state == PTPSTATE_EVENT_REQ) { if (send_event_req()) { dbgser_states->printf("PTP init sent EVENT_REQ\r\n"); } else { dbgser_important->printf("PTP init send error, EVENT_REQ failed\r\n"); } } else if (state == PTPSTATE_OPENSESSION) { if (send_open_session()) { dbgser_states->printf("PTP init sent open_session\r\n"); } else { dbgser_important->printf("PTP init send error, open_session failed\r\n"); } } else if (state >= PTPSTATE_SESSION_INIT && state < PTPSTATE_POLLING && canSend()) { if (init_substeps == NULL) { dbgser_states->printf("PTP init no other tasks, now polling\r\n"); state = PTPSTATE_POLLING; if (cb_onConnect != NULL) { cb_onConnect(); } } else { ptpip_init_substep_t* substepstruct = &(init_substeps[substate]); if (substepstruct->op_code != 0) { if (send_oper_req(substepstruct->op_code, (uint32_t*)(substepstruct->params), substepstruct->params_cnt, NULL, -1)) { dbgser_states->printf("PTP init sent substate %u\r\n", substate); } else { dbgser_important->printf("PTP init failed to send substate %u\r\n", substate); } } else // 0 in the table's opcode means end-of-table { dbgser_states->printf("PTP init finished sending all substates %u\r\n", substate); dbgser_states->printf("PTP init done, now polling\r\n"); state = PTPSTATE_POLLING; if (cb_onConnect != NULL) { cb_onConnect(); } } } } if (state != (PTPSTATE_CMD_REQ + 1) && state < PTPSTATE_POLLING) { // still handshaking but not waiting for pairing if (now > last_rx_time && (now - last_rx_time) > PTPIP_INITSEQ_TIMEOUT) { // too long dbgser_important->printf("PTP handshake timed out %u %u\r\n", now, last_rx_time); state = PTPSTATE_DISCONNECTED; critical_error_cnt++; if (cb_onCriticalError != NULL) { cb_onCriticalError(); } return; } } } void PtpIpCamera::poll() { yield(); #ifndef USE_ASYNC_SOCK poll_socket(&socket_main , pktbuff , &pktbuff_idx , PACKET_BUFFER_SIZE); poll_socket(&socket_event, eventbuff, &eventbuff_idx, PACKET_BUFFER_SIZE); #else #ifdef ASYNCTCP_NO_RTOS_TASK socket_main.poll_task(); socket_event.poll_task(); #endif #endif } void PtpIpCamera::poll_socket( #ifndef USE_ASYNC_SOCK WiFiClient* sock, #else AsyncClient* sock, #endif uint8_t buff[], uint32_t* buff_idx, uint32_t buff_max #ifdef USE_ASYNC_SOCK , struct pbuf *pb #endif ) { uint32_t now = millis(); int avail, read_limit, to_read, did_read; #ifndef USE_ASYNC_SOCK if (sock->connected() == false) { error_cnt += 1; return; } #endif #ifndef USE_ASYNC_SOCK if ((avail = sock->available()) <= 0) { return; } #else avail = pb->len; // note: the _recv function from AsyncClient already handles the pb->next packet for you, do not attempt to chain them here #endif read_limit = buff_max - (*buff_idx) - 1; to_read = avail > read_limit ? read_limit : avail; #ifndef USE_ASYNC_SOCK did_read = sock->read((uint8_t*)&(buff[*buff_idx]), (size_t)to_read); #else memcpy(&(buff[*buff_idx]), pb->payload, to_read); did_read = to_read; #endif (*buff_idx) += did_read; if (did_read > 0) { if (cb_onRxAct != NULL) { cb_onRxAct(); } #ifdef PTPIP_DEBUG_RX debug_rx((uint8_t*)buff, did_read); #endif error_cnt = 0; } last_rx_time = now; int retries = 6; // the data we just read might contain multiple valid packets // we try to decode as much of it as possible do { yield(); if ((*buff_idx) >= 8) { if (try_decode_pkt(buff, buff_idx, buff_max, false) == false) { break; } } } while ((retries--) > 0); } bool PtpIpCamera::try_decode_pkt(uint8_t buff[], uint32_t* buff_idx, uint32_t buff_max, bool can_force) { bool did_stuff = false; ptpip_pkthdr_t* hdr = (ptpip_pkthdr_t*)buff; if (stream_state != PTPSTREAMSTATE_NONE && pending_data > 0) // stream has started and also STARTDATA has been received, this check takes priority { if (hdr->pkt_type == PTP_PKTTYPE_DATA && stream_state == PTPSTREAMSTATE_START) { int32_t chunk_size = hdr->length - 12; int32_t avail_size = (*buff_idx) - 12; if (avail_size <= 0) { return false; } int32_t copy_size = chunk_size < avail_size ? chunk_size : avail_size; dbgser_events->printf("stream sending first chunk %u / %u\r\n", copy_size, pending_data); if (cb_stream != NULL) { cb_stream(&(buff[12]), copy_size); } pending_data -= copy_size; buffer_consume(buff, buff_idx, copy_size, buff_max); stream_state = PTPSTREAMSTATE_GOING; did_stuff = true; } else if (pending_data > 0) { uint32_t copy_size = (uint32_t)(*buff_idx); if (copy_size > pending_data) { copy_size = pending_data; } //dbgser_events->printf(" %u ", copy_size); if (cb_stream != NULL) { cb_stream(buff, copy_size); } pending_data -= copy_size; buffer_consume(buff, buff_idx, copy_size, buff_max); did_stuff = true; if (pending_data <= 0) { dbgser_events->printf("stream 0 pending\r\n"); stream_state = PTPSTREAMSTATE_DONE_EMPTY; } } } else if (stream_state == PTPSTREAMSTATE_DONE_EMPTY) { // this is a dirty hack // even after pending data is 0, there seems to be remaining data in the buffer // so I implemented this next loop to discard data until the next packet appears valid while ((*buff_idx) >= 8) { if (hdr->length <= 32) // length is about right { if (hdr->pkt_type >= PTP_PKTTYPE_OPERRESP && hdr->pkt_type <= PTP_PKTTYPE_ENDDATA) // is valid packet type { break; } } buffer_consume(buff, buff_idx, 1, buff_max); // discard one byte } if ((*buff_idx) >= 8) // exited loop due to valid packet { stream_state = PTPSTREAMSTATE_NONE; did_stuff |= try_decode_pkt(buff, buff_idx, buff_max, false); } } else if ((*buff_idx) >= hdr->length) { if (pending_data <= 0) { if (decode_pkt(buff, *buff_idx)) { buffer_consume(buff, buff_idx, hdr->length, buff_max); } else { reset_buffers(); } did_stuff = true; } else // pending_data > 0 { if (hdr->pkt_type == PTP_PKTTYPE_DATA) { uint32_t chunk_size = hdr->length - 12; uint32_t copy_size = chunk_size; if ((databuff_idx + copy_size) >= DATA_BUFFER_SIZE) { copy_size = DATA_BUFFER_SIZE - databuff_idx - 1; } memcpy(&(databuff[databuff_idx]), &(buff[12]), copy_size); databuff_idx += copy_size; pending_data -= chunk_size; decode_pkt(buff, *buff_idx); // this should only do a debug print buffer_consume(buff, buff_idx, hdr->length, buff_max); did_stuff = true; } else if (hdr->pkt_type == PTP_PKTTYPE_ENDDATA || hdr->pkt_type == PTP_PKTTYPE_CANCELDATA) { pending_data = 0; did_stuff |= try_decode_pkt(buff, buff_idx, buff_max, false); // no chance of infinite recursion due to pending_data = 0 } else { if (decode_pkt(buff, *buff_idx)) { buffer_consume(buff, buff_idx, hdr->length, buff_max); } else { reset_buffers(); } did_stuff = true; } } } else if ((*buff_idx) >= 8 && can_force) { decode_pkt(buff, *buff_idx); //buffer_consume(buff, buff_idx, (*buff_idx), buff_max); // no need to call buffer_consume as the only place that calls can_force will do a reset_buffer anyways did_stuff = true; } return did_stuff; } bool PtpIpCamera::decode_pkt(uint8_t buff[], uint32_t buff_len) { bool pkt_valid = true; ptpip_pkthdr_t* hdr = (ptpip_pkthdr_t*)buff; uint32_t pkt_len = hdr->length; uint32_t pkt_type = hdr->pkt_type; if (pkt_type == PTP_PKTTYPE_INITCMDACK && state <= (PTPSTATE_CMD_REQ + 1)) { parse_cmd_ack(buff); state = PTPSTATE_EVENT_REQ; dbgser_states->printf("PTP init next state EVENT_REQ (%u)\r\n", state); } else if (pkt_type == PTP_PKTTYPE_INITEVENTACK && state <= (PTPSTATE_EVENT_REQ + 1)) { state = PTPSTATE_OPENSESSION; dbgser_states->printf("PTP init next state OPEN_SESSION (%u)\r\n", state); } else if (pkt_type == PTP_PKTTYPE_OPERRESP && state <= (PTPSTATE_OPENSESSION + 1)) { ptpip_pkt_operresp_t* operresp = (ptpip_pkt_operresp_t*)buff; if (PTP_RESPCODE_IS_OK_ISH(operresp->resp_code) || buff_len == 8 // odd case for incomplete packet, assume a success response code ) { state = PTPSTATE_SESSION_INIT; substate = 0; dbgser_states->printf("PTP init, session opened %u, next state SESSION_INIT (%u)\r\n", session_id, state); } else { dbgser_important->printf("PTP init OPEN_SESSION failed 0x%04X\r\n", operresp->resp_code); } } else if (pkt_type == PTP_PKTTYPE_OPERRESP && state >= PTPSTATE_SESSION_INIT && state < PTPSTATE_POLLING) { ptpip_pkt_operresp_t* operresp = (ptpip_pkt_operresp_t*)buff; if (PTP_RESPCODE_IS_OK_ISH(operresp->resp_code) || buff_len == 8) { state += 1; substate += 1; dbgser_states->printf("PTP init next state/substate %u/%u\r\n", state, substate); } else { dbgser_important->printf("PTP init oper-resp failed 0x%04X (state/substate %u/%u)\r\n", operresp->resp_code, state, substate); #ifdef PTPIP_IGNORE_INIT_ERROR state += 1; substate += 1; #endif } state &= 0xFFFFFFFE; } else if (pkt_type == PTP_PKTTYPE_OPERRESP && state >= PTPSTATE_POLLING) { state &= 0xFFFFFFFE; ptpip_pkt_operresp_t* operresp = (ptpip_pkt_operresp_t*)buff; dbgser_states->printf("PTP got oper-resp 0x%04X\r\n", operresp->resp_code); } else if (pkt_type == PTP_PKTTYPE_STARTDATA) { ptpip_pkt_startdata_t* pktstruct = (ptpip_pkt_startdata_t*)buff; pending_data = pktstruct->pending_data_length; databuff_idx = 0; dbgser_rx->printf("PTPRX start-data %u\r\n", pending_data); if (stream_state != PTPSTREAMSTATE_NONE) { dbgser_events->printf("stream startdata %u\r\n", pending_data); } } else if (pkt_type == PTP_PKTTYPE_ENDDATA) { dbgser_rx->printf("PTPRX end-data\r\n"); if (stream_state != PTPSTREAMSTATE_NONE) { dbgser_events->printf("stream enddata "); if (pending_data > 0) { dbgser_events->printf("with data rem %u\r\n", pending_data); pending_data = 0; stream_state = PTPSTREAMSTATE_NONE; } else if (stream_state >= PTPSTREAMSTATE_GOING && pending_data <= 0) { dbgser_events->printf("finalizing\r\n"); } else { dbgser_events->printf("??\r\n"); } } } else if (pkt_type == PTP_PKTTYPE_CANCELDATA) { dbgser_rx->printf("PTPRX cancel-data\r\n"); if (stream_state != PTPSTREAMSTATE_NONE) { dbgser_events->printf("stream canceldata\r\n"); pending_data = 0; stream_state = PTPSTREAMSTATE_NONE; } } else if (pkt_type == PTP_PKTTYPE_INITFAILED) { dbgser_rx->printf("PTPRX init-failed\r\n"); if (cb_onReject != NULL) { cb_onReject(); } } else if (pkt_type == PTP_PKTTYPE_DATA) { dbgser_rx->printf("PTPRX data chunk %u\r\n", (pkt_len - 12)); } else if (pkt_type == PTP_PKTTYPE_EVENT) { ptpip_pkt_event_t* pktstruct = (ptpip_pkt_event_t*)buff; uint16_t event_code = pktstruct->event_code; dbgser_events->printf("PTPIP event 0x%04X", event_code); int i = sizeof(ptpip_pkt_event_t); for (; i < buff_len && i < pkt_len; i++) { dbgser_events->printf(" 0x%02X", buff[i]); } dbgser_events->printf("\r\n"); if (cb_onEvent != NULL) { cb_onEvent(event_code); } } else if (pkt_type == PTP_PKTTYPE_PROBEREQ) { send_probe_resp(); dbgser_events->printf("PTPIP probe request\r\n"); critical_error_cnt++; if (cb_onCriticalError != NULL) { cb_onCriticalError(); } } else { dbgser_important->printf("PTP unknown packet type 0x%08X , ", pkt_type); int i = sizeof(ptpip_pkt_event_t); for (; i < buff_len && i < pkt_len; i++) { dbgser_important->printf(" 0x%02X", buff[i]); } dbgser_important->printf("\r\n"); pkt_valid = false; } return pkt_valid; } bool PtpIpCamera::check_name() { return false; } void PtpIpCamera::parse_cmd_ack(uint8_t* data) { ptpip_pkt_cmdack_t* pktstruct = (ptpip_pkt_cmdack_t*)data; conn_id = pktstruct->conn_id; copy_utf16_to_bytes(cam_name, pktstruct->name, NAME_BUFFER_SIZE); dbgser_states->printf("PTP recv'ed CMD-ACK, conn-ID 0x%08X, name: %s\r\n", conn_id, cam_name); check_name(); } void PtpIpCamera::wait_while_busy(uint32_t min_time, uint32_t max_time, volatile bool* exit_signal) { volatile bool to_exit = false; uint32_t start_time = millis(); uint32_t now = start_time; while ((canSend() == false && (now - start_time) < max_time) || ((now - start_time) < min_time && min_time > 0)) { now = millis(); poll(); // poll, not task, because poll only reads and never sends // note: poll calls yield if (exit_signal != NULL) { to_exit |= *exit_signal; if (to_exit && (now - start_time) >= min_time) { break; } } } } #ifdef USE_ASYNC_SOCK void PtpIpCamera::wait_canSend(AsyncClient* sock, uint32_t max_time) { uint32_t start_time = millis(); uint32_t now = start_time; while ((sock->canSend() == false && (now - start_time) < max_time)) { now = millis(); } } #endif void PtpIpCamera::start_stream(void (*cb_s)(uint8_t*, uint32_t), void (*cb_d)(void)) { cb_stream = cb_s; cb_stream_done = cb_d; stream_state = PTPSTREAMSTATE_START; pending_data = 0; dbgser_events->printf("starting stream\r\n"); } void PtpIpCamera::reset_buffers() { pktbuff_idx = 0; eventbuff_idx = 0; databuff_idx = 0; } bool PtpIpCamera::isKindaBusy() { if (canNewConnect()) { return false; } if (isOperating()) { if (canSend() && pending_data <= 0) { return false; } else { return true; } } if (state >= PTPSTATE_DISCONNECT || state <= PTPSTATE_START_WAIT) { return false; } return true; } bool PtpIpCamera::isPairingWaiting() { if (state != (PTPSTATE_CMD_REQ + 1)) { return false; } return (millis() - last_rx_time) > 1000; } void PtpIpCamera::debug_rx(uint8_t* buff, uint32_t read_in) { uint32_t buff_addr = (uint32_t)buff; uint32_t buff_addr_pkt = (uint32_t)(this->pktbuff); uint32_t buff_addr_evt = (uint32_t)(this->eventbuff); uint32_t buff_len; if (buff_addr == buff_addr_pkt) { dbgser_rx->printf("RX[%u] PKT %u/%u:", millis(), read_in, (buff_len = this->pktbuff_idx)); } else { dbgser_rx->printf("RX[%u] EVT %u/%u:", millis(), read_in, (buff_len = this->eventbuff_idx)); } if (dbgser_rx->enabled) { print_buffer_hex(buff, buff_len); } dbgser_rx->printf("\r\n"); } void PtpIpCamera::set_debugflags(uint32_t x) { this->debug_flags = x; dbgser_states-> enabled = ((x & PTPDEBUGFLAG_STATES ) != 0); dbgser_events-> enabled = ((x & PTPDEBUGFLAG_EVENTS ) != 0); dbgser_rx-> enabled = ((x & PTPDEBUGFLAG_RX ) != 0); dbgser_tx-> enabled = ((x & PTPDEBUGFLAG_TX ) != 0); dbgser_devprop_dump-> enabled = ((x & PTPDEBUGFLAG_DEVPROP_DUMP ) != 0); dbgser_devprop_change->enabled = ((x & PTPDEBUGFLAG_DEVPROP_CHANGE) != 0); } void PtpIpCamera::test_debug_msg(const char* s) { dbgser_states->print(s); } #ifdef USE_ASYNC_SOCK void PtpIpCamera::onAsyncPacket(void* pcam, AsyncClient* sock, struct pbuf* pb) { PtpIpCamera* cam = (PtpIpCamera*)pcam; cam->poll_socket(sock, cam->pktbuff, &(cam->pktbuff_idx), PACKET_BUFFER_SIZE, pb); #ifdef PTPIP_KEEP_STATS cam->stats_pkts++; #endif } void PtpIpCamera::onAsyncPacketEvent(void* pcam, AsyncClient* sock, struct pbuf* pb) { PtpIpCamera* cam = (PtpIpCamera*)pcam; cam->poll_socket(sock, cam->eventbuff, &(cam->eventbuff_idx), PACKET_BUFFER_SIZE, pb); } void PtpIpCamera::onAsyncError(void* pcam, AsyncClient* sock, int8_t errnum) { PtpIpCamera* cam = (PtpIpCamera*)pcam; cam->error_cnt += 1; dbgser_important->printf("PTP socket error event 0x%02X\r\n", errnum); } void PtpIpCamera::onAsyncTimeout(void* pcam, AsyncClient* sock, uint32_t t) { PtpIpCamera* cam = (PtpIpCamera*)pcam; cam->error_cnt += 1; dbgser_important->printf("PTP socket timeout event\r\n"); } void PtpIpCamera::onAsyncAck(void* pcam, AsyncClient* sock, size_t sz, uint32_t t) { PtpIpCamera* cam = (PtpIpCamera*)pcam; cam->error_cnt = 0; #ifdef PTPIP_KEEP_STATS cam->stats_acks++; #endif } #endif ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/PtpIpCamera.h ================================================ #ifndef _PTPIPCAMERA_H_ #define _PTPIPCAMERA_H_ #include #include #include #include "esp_wifi.h" #include #include "ptpipdefs.h" #include "ptpcodes.h" enum { PTPSTATE_INIT = 0, PTPSTATE_START_WAIT = 2, PTPSTATE_SOCK_CONN = 4, PTPSTATE_CMD_REQ = 6, PTPSTATE_EVENT_REQ = 8, PTPSTATE_OPENSESSION = 10, PTPSTATE_SESSION_INIT = 12, PTPSTATE_POLLING = 0x0100, PTPSTATE_DISCONNECT = 0x1000, PTPSTATE_DISCONNECTED = 0x1002, }; enum { PTPSTREAMSTATE_NONE, PTPSTREAMSTATE_START, PTPSTREAMSTATE_GOING, PTPSTREAMSTATE_DONE_EMPTY, }; #define PACKET_BUFFER_SIZE (1024 * 6) // needs to be just big enough for a whole device properties packet #define DATA_BUFFER_SIZE (1024 * 6) // needs to be just big enough for a whole device properties packet #define NAME_BUFFER_SIZE 256 //#define PTPIP_KEEP_STATS #define PTPIP_IGNORE_INIT_ERROR #define DEFAULT_BUSY_TIMEOUT 1000 #define DEFAULT_SAVE_TIMEOUT 5000 #define PTP_GUID_LEN 16 //#define USE_ASYNC_SOCK #ifdef USE_ASYNC_SOCK #include #endif typedef struct { const uint32_t op_code; const uint32_t params[3]; const uint8_t params_cnt; } ptpip_init_substep_t; typedef struct { uint16_t prop_code; uint16_t data_type; int32_t value; } ptpipcam_prop_t; enum { PTPDEBUGFLAG_NONE = 0x00, PTPDEBUGFLAG_STATES = 0x01, PTPDEBUGFLAG_EVENTS = 0x02, PTPDEBUGFLAG_RX = 0x04, PTPDEBUGFLAG_TX = 0x08, PTPDEBUGFLAG_DEVPROP_DUMP = 0x10, PTPDEBUGFLAG_DEVPROP_CHANGE = 0x20, }; class PtpIpCamera { public: PtpIpCamera(char* name); void begin(uint32_t ip, uint32_t wait = 1000); virtual void task(void); void poll(void); inline bool isAlive(void) { return (state & 0xF000) == 0; }; inline bool canSend(void) { return (state & 0x0001) == 0 #ifdef USE_ASYNC_SOCK && socket_main.canSend() #endif ; }; inline bool isOperating(void) { return (state & 0x0F00) != 0; }; inline int getState(void) { return state; }; inline uint32_t getIp(void) { return ip_addr; }; inline uint32_t getLastRxTime(void) { return last_rx_time; }; inline char* getCameraName(void) { return (char*)cam_name; }; inline bool canNewConnect(void) { return state < PTPSTATE_START_WAIT || state >= PTPSTATE_DISCONNECTED; }; bool isKindaBusy(void); bool isPairingWaiting(void); bool send_oper_req(uint32_t opcode, uint32_t* params, uint8_t params_cnt, uint8_t* payload, int32_t payload_len); virtual void wait_while_busy(uint32_t min_wait, uint32_t max_wait, volatile bool* exit_signal = NULL); inline char* donateBuffer(void) { return (char*)databuff; }; void generate_guid(char*); void install_guid(char*); void force_disconnect(void); void (*cb_onConnect)(void) = NULL; void (*cb_onCriticalError)(void) = NULL; void (*cb_onDisconnect)(void) = NULL; void (*cb_onReject)(void) = NULL; void (*cb_onConfirmedAvail)(void) = NULL; void (*cb_onEvent)(uint16_t) = NULL; void (*cb_onRxAct)(void) = NULL; virtual void set_debugflags(uint32_t x); uint32_t debug_flags; void test_debug_msg(const char*); #ifdef PTPIP_KEEP_STATS uint32_t stats_tx; uint32_t stats_acks; uint32_t stats_pkts; #endif uint8_t critical_error_cnt; protected: int state; int substate; uint32_t ip_addr; bool need_disconnect = false; #ifndef USE_ASYNC_SOCK WiFiClient socket_main; WiFiClient socket_event; #else AsyncClient socket_main; AsyncClient socket_event; #endif void poll_socket ( #ifndef USE_ASYNC_SOCK WiFiClient* sock #else AsyncClient* sock #endif , uint8_t buff[], uint32_t* buff_idx, uint32_t buff_max #ifdef USE_ASYNC_SOCK , struct pbuf* pb #endif ); virtual bool decode_pkt (uint8_t buff[], uint32_t buff_len); bool try_decode_pkt(uint8_t buff[], uint32_t* buff_idx, uint32_t buff_max, bool can_force); virtual bool check_name (void); void fill_guid (char*); uint32_t last_rx_time; uint32_t pending_data; // technically this should be 64 bits int32_t incomplete_time; uint32_t conn_wait; // buffers uint32_t pktbuff_idx; uint32_t databuff_idx; uint32_t eventbuff_idx; uint8_t pktbuff [PACKET_BUFFER_SIZE]; uint8_t databuff [DATA_BUFFER_SIZE]; uint8_t eventbuff[PACKET_BUFFER_SIZE]; uint8_t outbuff [PACKET_BUFFER_SIZE]; void reset_buffers(void); // the protocol requires that these must be kept for the session uint32_t conn_id; uint32_t session_id; uint32_t transaction_id; void parse_cmd_ack(uint8_t*); uint8_t error_cnt; // name strings char my_name [NAME_BUFFER_SIZE]; char cam_name[NAME_BUFFER_SIZE]; char* custom_guid = NULL; // derived class must fill this ptpip_init_substep_t* init_substeps; uint8_t init_substeps_cnt; // data sending functions bool send_data(uint8_t* payload, uint32_t payload_len); bool send_cmd_req(void); bool send_event_req(void); bool send_probe_resp(void); bool send_open_session(void); void send_debug(char* s); void debug_rx(uint8_t*, uint32_t); void (*cb_stream)(uint8_t* buff, uint32_t len) = NULL; void (*cb_stream_done)(void) = NULL; void start_stream(void (*cb_s)(uint8_t*, uint32_t), void (*cb_d)(void)); uint8_t stream_state = PTPSTREAMSTATE_NONE; #ifdef USE_ASYNC_SOCK void wait_canSend (AsyncClient* sock, uint32_t max_time); static void onAsyncPacket (void*, AsyncClient*, struct pbuf *pb); static void onAsyncPacketEvent(void*, AsyncClient*, struct pbuf *pb); static void onAsyncError (void*, AsyncClient*, int8_t); static void onAsyncTimeout (void*, AsyncClient*, uint32_t); static void onAsyncAck (void*, AsyncClient*, size_t, uint32_t); #endif DebuggingSerial* dbgser_important; DebuggingSerial* dbgser_states; DebuggingSerial* dbgser_events; DebuggingSerial* dbgser_rx; DebuggingSerial* dbgser_tx; DebuggingSerial* dbgser_devprop_dump; DebuggingSerial* dbgser_devprop_change; }; #endif ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/PtpIpCameraSend.cpp ================================================ #include #include "PtpIpCamera.h" #include "ptpip_utils.h" #define PTPSEND_DEBUG(x) do { if (dbgser_tx->enabled) { send_debug((char*)x); } } while (0) #ifdef USE_ASYNC_SOCK #define SOCK_WRITE(_s, _b, _blen) (_s).write((const char*)(_b), (size_t)(_blen)) #else #define SOCK_WRITE(_s, _b, _blen) (_s).write((const uint8_t*)(_b), (size_t)(_blen)) #endif bool PtpIpCamera::send_oper_req(uint32_t opcode, uint32_t* params, uint8_t params_cnt, uint8_t* payload, int32_t payload_len) { ptpip_pkt_operreq_t* pktstruct = (ptpip_pkt_operreq_t*)outbuff; uint32_t* params_dest = (uint32_t*)&(outbuff[sizeof(ptpip_pkt_operreq_t)]); uint32_t len, i; int wrote; pktstruct->header.pkt_type = PTP_PKTTYPE_OPERREQ; pktstruct->data_phase = payload_len >= 0 ? 1 : 0; pktstruct->op_code = opcode; pktstruct->transaction_id = transaction_id; memcpy(params_dest, params, params_cnt * sizeof(uint32_t)); len = sizeof(ptpip_pkt_operreq_t) + (params_cnt * sizeof(uint32_t)); pktstruct->header.length = len; #ifdef USE_ASYNC_SOCK wait_canSend(&socket_main, DEFAULT_BUSY_TIMEOUT); #endif PTPSEND_DEBUG("PTPSEND OPER_REQ"); wrote = SOCK_WRITE(socket_main, outbuff, len); if (wrote > 0) { if (payload_len > 0) { if (send_data(payload, payload_len) == false) { error_cnt += 1; return false; } } transaction_id += 1; state |= 1; #ifndef USE_ASYNC_SOCK error_cnt = 0; #endif #ifdef PTPIP_KEEP_STATS stats_tx += 1; #endif return true; } else { error_cnt += 1; return false; } } bool PtpIpCamera::send_data(uint8_t* payload, uint32_t payload_len) { int wrote; ptpip_pkt_startdata_t* startstruct = (ptpip_pkt_startdata_t*)outbuff; startstruct->header.pkt_type = PTP_PKTTYPE_STARTDATA; startstruct->transaction_id = transaction_id; startstruct->pending_data_length = payload_len; startstruct->header.length = sizeof(ptpip_pkt_startdata_t); #ifdef USE_ASYNC_SOCK wait_canSend(&socket_main, DEFAULT_BUSY_TIMEOUT); #endif PTPSEND_DEBUG("PTPSEND START_DATA"); wrote = SOCK_WRITE(socket_main, outbuff, startstruct->header.length); if (wrote <= 0) { error_cnt += 1; return false; } #ifdef PTPIP_KEEP_STATS stats_tx += 1; #endif ptpip_pkt_data_t* datastruct = (ptpip_pkt_data_t*)outbuff; datastruct->header.pkt_type = PTP_PKTTYPE_DATA; datastruct->transaction_id = transaction_id; memcpy((void*)&(outbuff[sizeof(ptpip_pkt_data_t)]), payload, payload_len); datastruct->header.length = sizeof(ptpip_pkt_data_t) + payload_len; #ifdef USE_ASYNC_SOCK wait_canSend(&socket_main, DEFAULT_BUSY_TIMEOUT); #endif PTPSEND_DEBUG("PTPSEND DATA"); wrote = SOCK_WRITE(socket_main, outbuff, startstruct->header.length); if (wrote <= 0) { error_cnt += 1; return false; } #ifdef PTPIP_KEEP_STATS stats_tx += 1; #endif ptpip_pkt_enddata_t* endstruct = (ptpip_pkt_enddata_t*)outbuff; endstruct->header.pkt_type = PTP_PKTTYPE_ENDDATA; endstruct->transaction_id = transaction_id; endstruct->header.length = sizeof(ptpip_pkt_enddata_t); #ifdef USE_ASYNC_SOCK wait_canSend(&socket_main, DEFAULT_BUSY_TIMEOUT); #endif PTPSEND_DEBUG("PTPSEND END_DATA"); wrote = SOCK_WRITE(socket_main, outbuff, endstruct->header.length); if (wrote <= 0) { error_cnt += 1; return false; } #ifdef PTPIP_KEEP_STATS stats_tx += 1; #endif #ifndef USE_ASYNC_SOCK error_cnt = 0; #endif return true; } bool PtpIpCamera::send_cmd_req() { int wrote; uint32_t len; uint32_t* version_ptr; ptpip_pkt_cmdreq_t* pktstruct = (ptpip_pkt_cmdreq_t*)outbuff; pktstruct->header.pkt_type = PTP_PKTTYPE_INITCMDREQ; fill_guid((char*)(pktstruct->guid)); len = 8 + PTP_GUID_LEN; len += copy_bytes_to_utf16(pktstruct->name, my_name, NAME_BUFFER_SIZE); version_ptr = (uint32_t*)&(outbuff[len]); (*version_ptr) = 0x00010000; len += 4; pktstruct->header.length = len; #ifdef USE_ASYNC_SOCK wait_canSend(&socket_main, DEFAULT_BUSY_TIMEOUT); #endif PTPSEND_DEBUG("PTPSEND CMD_REQ"); wrote = SOCK_WRITE(socket_main, outbuff, len); if (wrote > 0) { state |= 1; #ifndef USE_ASYNC_SOCK error_cnt = 0; #endif #ifdef PTPIP_KEEP_STATS stats_tx += 1; #endif return true; } else { error_cnt += 1; return false; } } bool PtpIpCamera::send_event_req() { int wrote; ptpip_pkt_eventreq_t* pktstruct = (ptpip_pkt_eventreq_t*)outbuff; pktstruct->header.pkt_type = PTP_PKTTYPE_INITEVENTREQ; pktstruct->conn_id = conn_id; pktstruct->header.length = sizeof(ptpip_pkt_eventreq_t); #ifdef USE_ASYNC_SOCK wait_canSend(&socket_event, DEFAULT_BUSY_TIMEOUT); #endif PTPSEND_DEBUG("PTPSEND EVENT_REQ"); wrote = SOCK_WRITE(socket_event, outbuff, pktstruct->header.length); if (wrote > 0) { state |= 1; #ifndef USE_ASYNC_SOCK error_cnt = 0; #endif #ifdef PTPIP_KEEP_STATS stats_tx += 1; #endif return true; } else { error_cnt += 1; return false; } } bool PtpIpCamera::send_probe_resp() { int wrote; ptpip_pkthdr_t* pktstruct = (ptpip_pkthdr_t*)outbuff; pktstruct->pkt_type = PTP_PKTTYPE_PROBERESP; pktstruct->length = sizeof(ptpip_pkthdr_t); #ifdef USE_ASYNC_SOCK wait_canSend(&socket_main, DEFAULT_BUSY_TIMEOUT); #endif PTPSEND_DEBUG("PTPSEND PROBE_RESP"); wrote = SOCK_WRITE(socket_main, outbuff, pktstruct->length); if (wrote > 0) { #ifndef USE_ASYNC_SOCK error_cnt = 0; #endif return true; } else { error_cnt += 1; return false; } } bool PtpIpCamera::send_open_session() { uint32_t params[2]; session_id += 1; transaction_id = 1; params[0] = transaction_id; params[1] = session_id; bool success = send_oper_req(PTP_OPCODE_OpenSession, params, 2, NULL, -1); return success; } void PtpIpCamera::send_debug(char* s) { dbgser_tx->printf(s); #ifdef USE_ASYNC_SOCK dbgser_tx->printf(" (space %u) ", socket_main.space()); #else dbgser_tx->printf(" "); #endif uint32_t* len = (uint32_t*)outbuff; if (dbgser_tx->enabled) { print_buffer_hex(outbuff, *len); } dbgser_tx->println(); } ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/PtpIpSonyAlphaCamera.cpp ================================================ #include "PtpIpSonyAlphaCamera.h" #include #include "ptpip_utils.h" #include #define SONYCAM_CHECK_PROPS_INTERVAL 10000 static const ptpip_init_substep_t init_table[] = { { PTP_OPCODE_GetDeviceInfo , { 0, 0, 0 } , 0 }, { PTP_OPCODE_GetStorageIDs , { 0, 0, 0 } , 0 }, { SONYALPHA_OPCODE_SDIOConnect , { 1, 0, 0 } , 3 }, { SONYALPHA_OPCODE_SDIOConnect , { 2, 0, 0 } , 3 }, { SONYALPHA_OPCODE_SDIOGetExtDeviceInfo, { 0x12C, 0, 0 } , 3 }, { SONYALPHA_OPCODE_SDIOConnect , { 3, 0, 0 } , 3 }, { SONYALPHA_OPCODE_SDIOGetExtDeviceInfo, { 0x12C, 0, 0 } , 3 }, { 0, { 0, 0, 0 } , 0 }, // end of table }; static const uint16_t interested_properties_default[] = { SONYALPHA_PROPCODE_FocusFound, SONYALPHA_PROPCODE_FocusMode, SONYALPHA_PROPCODE_Recording, SONYALPHA_PROPCODE_FocusArea, SONYALPHA_PROPCODE_ManualFocusMode, SONYALPHA_PROPCODE_ManualFocusDist, SONYALPHA_PROPCODE_ZoomStep, SONYALPHA_PROPCODE_ShutterSpeed, SONYALPHA_PROPCODE_DriveMode, SONYALPHA_PROPCODE_ISO, SONYALPHA_PROPCODE_FocusPointGet, SONYALPHA_PROPCODE_FocusPointSet, SONYALPHA_PROPCODE_ExposeIndex, SONYALPHA_PROPCODE_ExpoComp, SONYALPHA_PROPCODE_Aperture, SONYALPHA_PROPCODE_FileFormat, SONYALPHA_PROPCODE_ObjectInMemory, SONYALPHA_PROPCODE_SonyBatteryLevel, SONYALPHA_PROPCODE_MemoryRemaining_Card1, SONYALPHA_PROPCODE_MemoryRemaining_Card2, PTP_PROPCODE_ExposureProgramMode, SONYALPHA_PROPCODE_ZoomPercentage, 0x0000, // end of table }; PtpIpSonyAlphaCamera::PtpIpSonyAlphaCamera(char* host_name, uint16_t* interested_properties) : PtpIpCamera(host_name) { // make the properties table based on how many properties we are interested in uint8_t i, j; // so count first for (i = 0; i < 255; i++) { if (interested_properties_default[i] == 0) { // end of table break; } } if (interested_properties != NULL) { for (j = 0; j < 255 ; j++) { if (interested_properties[j] == 0) { // end of table break; } } } properties_cnt = i + j; properties = (ptpipcam_prop_t*)malloc(properties_cnt * sizeof(ptpipcam_prop_t)); memset(properties, 0, sizeof(ptpipcam_prop_t) * properties_cnt); p_interested_properties = (uint16_t*)malloc(properties_cnt * sizeof(uint16_t)); memcpy(p_interested_properties, interested_properties_default, sizeof(uint16_t) * i); if (interested_properties != NULL && j > 0) { memcpy(&(p_interested_properties[i]), interested_properties, sizeof(uint16_t) * j); } this->init_substeps = (ptpip_init_substep_t*)init_table; propdecode_weird_string = true; propdecode_weird_form = true; table_shutter_speed = NULL; check_props_time = 0; need_check_properties = false; properties_pending = false; } bool PtpIpSonyAlphaCamera::check_name() { this->cam_model = SONYALPHAMODEL_A1; // TODO: assign model number according to name string if (camera_name_check(this->cam_name, "ILCE-1")) { this->cam_model = SONYALPHAMODEL_A1; } else if (camera_name_check(this->cam_name, "A7M4A") || camera_name_check(this->cam_name, "ILCE-7M4A")) { this->cam_model = SONYALPHAMODEL_A7M4A; } else if (camera_name_check(this->cam_name, "A7M4") || camera_name_check(this->cam_name, "ILCE-7M4")) { this->cam_model = SONYALPHAMODEL_A7M4; } else if (camera_name_check(this->cam_name, "A7SM3") || camera_name_check(this->cam_name, "ILCE-7SM3")) { this->cam_model = SONYALPHAMODEL_A7SM3; } else if (camera_name_check(this->cam_name, "A9M2") || camera_name_check(this->cam_name, "ILCE-9M2")) { this->cam_model = SONYALPHAMODEL_A9M2; } else if (camera_name_check(this->cam_name, "A7RM4") || camera_name_check(this->cam_name, "ILCE-7M4")) { this->cam_model = SONYALPHAMODEL_A7RM4; } else if (camera_name_check(this->cam_name, "A7C") || camera_name_check(this->cam_name, "ILCE-7C")) { this->cam_model = SONYALPHAMODEL_A7C; } else if (camera_name_check(this->cam_name, "ZV-E10") || camera_name_check(this->cam_name, "ZVE10")) { // confirmed "ZV-E10" this->cam_model = SONYALPHAMODEL_ZVE10; } else if (camera_name_check(this->cam_name, "ZV1") || camera_name_check(this->cam_name, "ZV-1")) { this->cam_model = SONYALPHAMODEL_ZV1; } else if (camera_name_check(this->cam_name, "A6600") || camera_name_check(this->cam_name, "ILCE-6600")) { this->cam_model = SONYALPHAMODEL_A6600; } else if (camera_name_check(this->cam_name, "A6500") || camera_name_check(this->cam_name, "ILCE-6500")) { this->cam_model = SONYALPHAMODEL_A6500; } else if (camera_name_check(this->cam_name, "A6400") || camera_name_check(this->cam_name, "ILCE-6400")) { this->cam_model = SONYALPHAMODEL_A6400; } else if (camera_name_check(this->cam_name, "A6300") || camera_name_check(this->cam_name, "ILCE-6300")) { this->cam_model = SONYALPHAMODEL_A6300; } else if (camera_name_check(this->cam_name, "A6200") || camera_name_check(this->cam_name, "ILCE-6200")) { this->cam_model = SONYALPHAMODEL_A6200; } else if (camera_name_check(this->cam_name, "A6100") || camera_name_check(this->cam_name, "ILCE-6100")) { this->cam_model = SONYALPHAMODEL_A6100; } else if (camera_name_check(this->cam_name, "A6000") || camera_name_check(this->cam_name, "ILCE-6000")) { this->cam_model = SONYALPHAMODEL_A6000; } return true; } bool PtpIpSonyAlphaCamera::decode_pkt(uint8_t buff[], uint32_t buff_len) { ptpip_pkthdr_t* hdr = (ptpip_pkthdr_t*)buff; uint32_t pkt_len = hdr->length; uint32_t pkt_type = hdr->pkt_type; if (pkt_type == PTP_PKTTYPE_OPERRESP && state >= PTPSTATE_POLLING) { state &= 0xFFFFFFFE; if (properties_pending != false) { decode_properties(); } else if (objinfo_pending != false) { decode_objinfo(); } } else if (pkt_type == PTP_PKTTYPE_ENDDATA) { if (properties_pending != false) { decode_properties(); } else if (objinfo_pending != false) { decode_objinfo(); } } else if (pkt_type == PTP_PKTTYPE_EVENT) { ptpip_pkt_event_t* pktstruct = (ptpip_pkt_event_t*)buff; uint16_t event_code = pktstruct->event_code; if (event_code == SONYALPHA_EVENTCODE_PropertyChanged) { need_check_properties = true; } else if (event_code == SONYALPHA_EVENTCODE_ObjectAdded) { need_check_object = true; need_check_object_id = *((uint32_t*)&(buff[sizeof(ptpip_pkt_event_t) + sizeof(uint32_t)])); dbgser_events->printf("ObjectAdded 0x%08X\r\n", need_check_object_id); } } return PtpIpCamera::decode_pkt(buff, buff_len); } bool PtpIpSonyAlphaCamera::check_dev_props() { bool success; wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); need_check_properties = false; success = send_oper_req(SONYALPHA_OPCODE_GetAllDevicePropData, NULL, 0, NULL, -1); if (success != false) { check_props_time = millis(); properties_pending = true; } return success; } bool PtpIpSonyAlphaCamera::check_get_object() { bool success; wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); need_check_object = false; dbgser_events->printf("check_get_object 0x%08X", need_check_object_id); success = send_oper_req(PTP_OPCODE_GetObjectInfo, &need_check_object_id, 1, NULL, -1); if (success != false) { dbgser_events->printf(" sent\r\n", need_check_object_id); objinfo_pending = true; } else { dbgser_events->printf(" failed\r\n"); } return success; } #if 0 bool PtpIpSonyAlphaCamera::get_jpg(void (*cb_s)(uint8_t*, uint32_t), void (*cb_d)(void)) { bool success; wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t objcode = 0xFFFFC002; success = send_oper_req(PTP_OPCODE_GetObject, &objcode, 1, NULL, 0); if (success != false) { reset_buffers(); start_stream(cb_s, cb_d); } return success; } #endif void PtpIpSonyAlphaCamera::task() { yield(); if (state >= PTPSTATE_POLLING && state < PTPSTATE_DISCONNECT) { uint32_t now = millis(); #ifdef SONYCAM_CHECK_PROPS_INTERVAL #if SONYCAM_CHECK_PROPS_INTERVAL > 0 if ((now - check_props_time) >= SONYCAM_CHECK_PROPS_INTERVAL) { need_check_properties |= true; } #endif #endif if (need_check_object != false && canSend()) { check_get_object(); } else if (need_check_properties != false && canSend()) { check_dev_props(); } } PtpIpCamera::task(); } bool PtpIpSonyAlphaCamera::is_manuallyfocused() { uint16_t prop_code = SONYALPHA_PROPCODE_FocusMode; if (has_property(prop_code) == false) { return false; } int32_t x = get_property(prop_code); return (x == SONYALPHA_AFMODE_MF); } bool PtpIpSonyAlphaCamera::is_movierecording() { uint16_t prop_code = SONYALPHA_PROPCODE_Recording; if (has_property(prop_code) == false) { return false; } int32_t x = get_property(prop_code); return (x != 0); } bool PtpIpSonyAlphaCamera::is_spotfocus() { uint16_t prop_code = SONYALPHA_PROPCODE_FocusArea; if (has_property(prop_code) == false) { return false; } int32_t x = get_property(prop_code); return (x == SONYALPHA_FOCUSAREA_ZONE || x == SONYALPHA_FOCUSAREA_TRACKING_ZONE || x == SONYALPHA_FOCUSAREA_MOVEABLE_SMALL || x == SONYALPHA_FOCUSAREA_MOVEABLE_MEDIUM || x == SONYALPHA_FOCUSAREA_MOVEABLE_LARGE || x == SONYALPHA_FOCUSAREA_MOVEABLE_EXPAND || x == SONYALPHA_FOCUSAREA_TRACKING_MOVEABLE_SMALL || x == SONYALPHA_FOCUSAREA_TRACKING_MOVEABLE_MEDIUM || x == SONYALPHA_FOCUSAREA_TRACKING_MOVEABLE_LARGE || x == SONYALPHA_FOCUSAREA_TRACKING_MOVEABLE_EXPAND); } bool PtpIpSonyAlphaCamera::is_continuousshooting() { uint16_t prop_code = SONYALPHA_PROPCODE_DriveMode; if (has_property(prop_code) == false) { return false; } int32_t x = get_property(prop_code); return (x == SONYALPHA_DRIVEMODE_ContHi || x == SONYALPHA_DRIVEMODE_ContHiPlus || x == SONYALPHA_DRIVEMODE_ContLo || x == SONYALPHA_DRIVEMODE_ContMid || x == SONYALPHA_DRIVEMODE_Continuous || x == SONYALPHA_DRIVEMODE_ContinuousSpeedPriority); } /* //this function is available as a live-updated variable instead bool PtpIpSonyAlphaCamera::is_focused() { uint16_t prop_code = SONYALPHA_PROPCODE_FocusFound; if (has_property(prop_code) == false) { return false; } int32_t x = get_property(prop_code); return (x != SONYALPHA_FOCUSSTATUS_FOCUSED); } */ void PtpIpSonyAlphaCamera::wait_while_saving(uint32_t min_wait, uint32_t max_wait_get, uint32_t max_wait_save) { uint32_t start_time = millis(); uint32_t now = start_time; int has_photo = 0; if (has_property(SONYALPHA_PROPCODE_ObjectInMemory) == false) { wait_while_busy(min_wait, max_wait_save); return; } while (((now - start_time) < max_wait_get) || ((now - start_time) < min_wait && min_wait > 0)) { now = millis(); task(); int32_t x = get_property(SONYALPHA_PROPCODE_ObjectInMemory); if (has_photo <= 0) { if (x > 0) { has_photo = x; break; } } } if (has_photo > 0) { while ((now - start_time) < max_wait_save || ((now - start_time) < min_wait && min_wait > 0)) { now = millis(); task(); int32_t x = get_property(SONYALPHA_PROPCODE_ObjectInMemory); if (x < has_photo) { break; } } while (canSend() == false || ((now - start_time) < min_wait && min_wait > 0)) { now = millis(); poll(); } } else { while ((canSend() == false && (now - start_time) < max_wait_get) || ((now - start_time) < min_wait && min_wait > 0)) { now = millis(); poll(); } } } ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/PtpIpSonyAlphaCamera.h ================================================ #ifndef _PTPIP_SONYALPHACAM_H_ #define _PTPIP_SONYALPHACAM_H_ #include "PtpIpCamera.h" #include "ptpsonycodes.h" #define SONYCAM_DEFAULT_SHUTTER_TIME 250 enum { SONYALPHAMODEL_NONE = 0, SONYALPHAMODEL_A1 = 1, SONYALPHAMODEL_A7SM3, SONYALPHAMODEL_A9M2, SONYALPHAMODEL_A7M4A, SONYALPHAMODEL_A7RM4, SONYALPHAMODEL_A7C, SONYALPHAMODEL_A7M4, SONYALPHAMODEL_ZVE10, SONYALPHAMODEL_ZV1, SONYALPHAMODEL_A6600, SONYALPHAMODEL_A6500, SONYALPHAMODEL_A6400, SONYALPHAMODEL_A6300, SONYALPHAMODEL_A6200, SONYALPHAMODEL_A6100, SONYALPHAMODEL_A6000, }; class PtpIpSonyAlphaCamera : public PtpIpCamera { public: PtpIpSonyAlphaCamera(char* host_name, uint16_t* interested_properties); ptpipcam_prop_t* properties; int properties_cnt; volatile bool is_focused; uint8_t cam_model = 0; virtual void wait_while_saving(uint32_t min_wait, uint32_t max_wait_get, uint32_t max_wait_save); bool update_property(uint16_t prop_code, uint16_t data_type, uint8_t* data_chunk, uint8_t data_size); int32_t get_property(uint16_t prop_code); uint32_t get_property_enum(uint16_t prop_code, uint32_t cur_val, int32_t step = 0); bool has_property(uint16_t prop_code); bool check_dev_props(void); bool check_get_object(void); void decode_properties(void); void decode_objinfo(void); void test_prop_decode(uint8_t* data, uint32_t len); bool decode_pkt(uint8_t buff[], uint32_t buff_len); bool check_name(void); void task(void); bool is_manuallyfocused(void); bool is_movierecording(void); bool is_spotfocus(void); //bool is_focused(void); inline bool need_wait_af(void) { return is_manuallyfocused() == false; } bool is_continuousshooting(void); bool cmd_AutoFocus(bool onoff); bool cmd_Shutter(bool openclose); bool cmd_ManualFocusStep(int16_t step); bool cmd_ZoomStep(int16_t step); bool cmd_FocusPointSet(int16_t x, int16_t y); bool cmd_Shoot(int t); bool cmd_MovieRecord(bool onoff); bool cmd_MovieRecordToggle(); bool cmd_ManualFocusMode(bool onoff, bool precheck = false); bool cmd_ManualFocusToggle(bool onoff); bool cmd_ShutterSpeedStep(int8_t step); //bool cmd_ShutterSpeedSet(int16_t numerator, int16_t denominator); // disabled, unfriendly API bool cmd_ShutterSpeedSet32(uint32_t x); // input parameter expects a 16 bit numerator and 16 bit denominator, and must be an exact match for an item from the corresponding enum list bool cmd_IsoSet(uint32_t x); // input parameter expects value to be a positive integer, and must be an exact match for an item from the corresponding enum list, meaning the "double bar" flag must exist for some items bool cmd_ApertureSet(uint16_t x); // input parameter expects value to be x * 1000 where x is the f/num, must be an exact match for an item from the corresponding enum list bool cmd_ExpoCompSet(int32_t x); // input parameter expects value to be x * 1000 where x is stops of light, but with 2nd decimal place 0, example: +1.7 ev must be specified as 1700, 1666 should be rounded to 1700 bool cmd_arb(uint32_t opcode, uint32_t propcode, uint8_t* payload, uint32_t payload_len); #if 0 bool get_jpg(void (*cb_s)(uint8_t*, uint32_t), void (*cb_d)(void)); #endif bool need_check_properties; bool need_check_object; uint32_t need_check_object_id; bool properties_pending; bool objinfo_pending; uint32_t check_props_time; uint16_t* p_interested_properties; bool propdecode_weird_string; bool propdecode_weird_form; uint32_t prop_rx_cnt; // these tables, if they are not NULL, will contain valid entries that the camera accepts // index 0 is always the length of the table // the rest of the table might not be 32 bit per entry, for example, aperture is actually 16 bits per entry, so do "uint16* ptr = (uint16_t*)(&table_aperture[1]);" uint32_t* table_shutter_speed; uint32_t* table_iso; uint32_t* table_aperture; }; #endif ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/PtpIpSonyAlphaCameraPropDecoder.cpp ================================================ #include "PtpIpSonyAlphaCamera.h" #include #include "ptpip_utils.h" void PtpIpSonyAlphaCamera::decode_properties() { prop_rx_cnt++; critical_error_cnt = 0; properties_pending = false; need_check_properties = false; if (databuff_idx <= 0) { return; } uint8_t* p = (uint8_t*)databuff; int i, j, totalprops = 0, len = databuff_idx; #if 0 Serial.println("DevProps Dump:"); print_buffer_hex(databuff, len); Serial.println(); #endif for (i = 0, j = 0; i < len && (j <= totalprops || i == 0); ) { if (i == 0) { // the first couple of bytes is supposed to be the total number of properties totalprops = *((int*)p); dbgser_devprop_dump->printf("\r\nDevProps [%d, %d]:", totalprops, len); i += 8; continue; } j += 1; dbgser_devprop_dump->printf("\r\n"); uint16_t propcode = *(uint16_t*)(&(p[i])); dbgser_devprop_dump->printf("PROP[%u][PC 0x%04X]", i, propcode); i += 2; uint16_t datatype = *(uint16_t*)(&(p[i])); i += 2; if (datatype == 0x0000) { i += 4; dbgser_devprop_dump->printf(" unknown data type 0"); continue; } if (propcode == 0x0000) { i += 4; dbgser_devprop_dump->printf(" unknown prop code 0"); continue; } i += 2; // skips the get/set visibility byte uint8_t* dptr = nullptr; int dsz = 1; if (datatype <= 0x0A) { dbgser_devprop_dump->printf("[DT 0x%X]", datatype); } switch (datatype & 0x0F) { case 0x0001: case 0x0002: dsz = 1; break; case 0x0003: case 0x0004: dsz = 2; break; case 0x0005: case 0x0006: dsz = 4; break; case 0x0007: case 0x0008: dsz = 8; break; case 0x0009: case 0x000A: dsz = 16; break; } if (datatype <= 0x000A) // simple integers { i += dsz; // skips the default value dptr = (uint8_t*)(&(p[i])); i += dsz; // skips the data value if (dbgser_devprop_dump->enabled) { propdecoder_print_hex(datatype, dptr, 1); } } else if (datatype == 0xFFFF) { // string if (propdecode_weird_string == false) { uint32_t elecnt = p[i]; i += 1; dbgser_devprop_dump->printf("[STR %u]: ", elecnt); uint32_t j; for (j = 0; j < (elecnt * 2); j+= 2) { char uc = p[i + j]; if (uc != 0) { dbgser_devprop_dump->printf("%c", uc); } } i += elecnt * 2; } else { uint32_t elecnt = p[i]; i -= 2; if (p[i] == 0x01 && p[i + 1] == 0x01) // check the get/set { // I don't understand this but it works i += 2; elecnt = (*((uint32_t*)&p[i])) & 0xFFFF; i += 2; } else if (p[i] == 0x00 && p[i + 1] == 0x02 && p[i + 2] == 0x00) { // I don't understand this but it works i += 3; elecnt = (*((uint32_t*)&p[i])) & 0xFF; i += 1; } dbgser_devprop_dump->printf("[STR %u]: ", elecnt); if (elecnt > 0) { // warning: in-place copy copyn_utf16_to_bytes(&(p[i]), &(p[i]), elecnt); dbgser_devprop_dump->printf("\"%s\"", (char*)(&(p[i]))); i += elecnt * 2; } else { dbgser_devprop_dump->printf(" weird empty string"); } } } else if ((datatype & 0x4000) != 0) { // array uint32_t elecnt = *(uint32_t*)(&(p[i])); i += 4; dbgser_devprop_dump->printf("[ARR %u]", elecnt); if (elecnt > 0) { dptr = (uint8_t*)(&(p[i])); // first element as default if (dbgser_devprop_dump->enabled) { propdecoder_print_hex(datatype, dptr, elecnt); } } i += dsz * elecnt; } bool interesting = update_property(propcode, datatype, dptr, dsz); if (interesting) { dbgser_devprop_change->printf("***DevProp[0x%04X]: 0x%08X\r\n", propcode, get_property(propcode)); } uint8_t formflag = p[i]; i += 1; if (formflag == 0) { continue; } else if (formflag == 0x01) { // range i += 3 * dsz; dbgser_devprop_dump->printf(" [FRM RNG %d]", dsz); continue; } else if (formflag == 0x02) { // enumeration if (propdecode_weird_form == false) { uint16_t enumcnt = *(uint16_t*)(&(p[i])); i += 2; #define PROP_TRYPOPULATETABLE(_tbl, _propcode, _dsz, _enumcnt, _txt) do \ {\ if (propcode == (_propcode) && dsz == (_dsz) && (_enumcnt) != 0) {\ if ((_tbl) != NULL) {\ if ((_enumcnt) > (_tbl)[0]) {\ free((_tbl)); \ (_tbl) = NULL; \ dbgser_events->printf(_txt " free'd\r\n");\ }\ }\ if ((_tbl) == NULL) {\ (_tbl) = (uint32_t*)malloc(((_enumcnt) * dsz) + sizeof(uint32_t));\ memcpy((void*)&((_tbl)[1]), (void*)&(p[i]), (_enumcnt) * dsz);\ (_tbl)[0] = (_enumcnt);\ dbgser_events->printf(_txt " created %u\r\n", (_enumcnt));\ }\ }\ } while (0)\ PROP_TRYPOPULATETABLE(table_shutter_speed, SONYALPHA_PROPCODE_ShutterSpeed, 4, enumcnt, "table_shutter_speed"); PROP_TRYPOPULATETABLE(table_iso , SONYALPHA_PROPCODE_ISO , 4, enumcnt, "table_iso"); PROP_TRYPOPULATETABLE(table_aperture , SONYALPHA_PROPCODE_Aperture , 2, enumcnt, "table_aperture"); PROP_TRYPOPULATETABLE(table_aperture , SONYALPHA_PROPCODE_Aperture , 4, enumcnt, "table_aperture"); i += enumcnt * dsz; dbgser_devprop_dump->printf(" [FRM ENUM %d]", enumcnt); continue; } else { // weird form, seems to have two forms uint16_t enumcnt = *(uint16_t*)(&(p[i])); i += 2; PROP_TRYPOPULATETABLE(table_shutter_speed, SONYALPHA_PROPCODE_ShutterSpeed, 4, enumcnt, "table_shutter_speed"); PROP_TRYPOPULATETABLE(table_iso , SONYALPHA_PROPCODE_ISO , 4, enumcnt, "table_iso"); PROP_TRYPOPULATETABLE(table_aperture , SONYALPHA_PROPCODE_Aperture , 2, enumcnt, "table_aperture"); PROP_TRYPOPULATETABLE(table_aperture , SONYALPHA_PROPCODE_Aperture , 4, enumcnt, "table_aperture"); i += enumcnt * dsz; uint16_t enumcnt2 = *(uint16_t*)(&(p[i])); i += 2; PROP_TRYPOPULATETABLE(table_shutter_speed, SONYALPHA_PROPCODE_ShutterSpeed, 4, enumcnt2, "table_shutter_speed"); PROP_TRYPOPULATETABLE(table_iso , SONYALPHA_PROPCODE_ISO , 4, enumcnt2, "table_iso"); PROP_TRYPOPULATETABLE(table_aperture , SONYALPHA_PROPCODE_Aperture , 2, enumcnt2, "table_aperture"); PROP_TRYPOPULATETABLE(table_aperture , SONYALPHA_PROPCODE_Aperture , 4, enumcnt2, "table_aperture"); i += enumcnt2 * dsz; dbgser_devprop_dump->printf(" [FRM ENUMx2 %d]", (enumcnt + enumcnt2)); } } } dbgser_devprop_dump->printf("\r\n"); // check if lens has disconnected, in which case, forget the aperture list if (table_aperture != NULL && ((has_property(SONYALPHA_PROPCODE_Aperture) && (get_property(SONYALPHA_PROPCODE_Aperture) == 0 || get_property(SONYALPHA_PROPCODE_Aperture) >= 0x7FFF)) || (has_property(SONYALPHA_PROPCODE_Aperture) == false))) { dbgser_devprop_change->printf("lens disconnected\r\n"); free(table_aperture); table_aperture = NULL; } databuff_idx = 0; check_props_time = millis(); } bool PtpIpSonyAlphaCamera::update_property(uint16_t prop_code, uint16_t data_type, uint8_t* data_chunk, uint8_t data_size) { if (data_type > 0x0A) { return false; } int32_t x = decode_chunk_to_int(data_type, data_chunk, data_size); int i; // the wait routine can check this variable to exit quickly if (prop_code == SONYALPHA_PROPCODE_FocusFound) { is_focused = (x == SONYALPHA_FOCUSSTATUS_FOCUSED); // check if AF-S mode and focus is actually obtained if (is_focused == false && has_property(SONYALPHA_PROPCODE_FocusMode)) { if (get_property(SONYALPHA_PROPCODE_FocusMode) == SONYALPHA_AFMODE_AFS && x == SONYALPHA_FOCUSSTATUS_AFS_FOCUSED) { is_focused |= true; } } } bool is_interested = false; for (i = 0; i < 255; i++) { uint16_t intprop = p_interested_properties[i]; if (intprop != 0) // not end of table { if (intprop == prop_code) { is_interested = true; break; } } else // end of table { if (i == 0) { // empty table is_interested = true; } break; } } if (is_interested) { for (i = 0; i < properties_cnt; i++) { ptpipcam_prop_t* pp = &(properties[i]); if (pp->prop_code == 0) { // fill first empty slot pp->prop_code = prop_code; pp->data_type = data_type; pp->value = x; return true; } else if (pp->prop_code == prop_code) { // found existing slot pp->data_type = data_type; if (pp->value != x) { pp->value = x; return true; } } } } return false; } int32_t PtpIpSonyAlphaCamera::get_property(uint16_t prop_code) { int i; for (i = 0; i < properties_cnt; i++) { ptpipcam_prop_t* pp = &(properties[i]); if (pp->prop_code == prop_code) { return pp->value; } } return 0; } bool PtpIpSonyAlphaCamera::has_property(uint16_t prop_code) { int i; for (i = 0; i < properties_cnt; i++) { ptpipcam_prop_t* pp = &(properties[i]); if (pp->prop_code == prop_code) { return true; } } return false; } uint32_t PtpIpSonyAlphaCamera::get_property_enum(uint16_t prop_code, uint32_t cur_val, int32_t step) { uint32_t* tbl = NULL; if (prop_code == SONYALPHA_PROPCODE_ShutterSpeed) { tbl = this->table_shutter_speed; } else if (prop_code == SONYALPHA_PROPCODE_ISO) { tbl = this->table_iso; } if (tbl == NULL) { return 0xFFFFFFFF; } uint32_t cnt = tbl[0]; int32_t i, j; for (i = 1; i <= cnt; i++) { uint32_t x = tbl[i], y; if (x == cur_val) { j = i + step; y = tbl[j]; if (j >= cnt || j <= 1) { j = (j >= cnt) ? cnt : j; j = (j <= 1) ? 1 : j; y = tbl[j]; if (y == 0 || y == 0xFFFFFFFF) { j += (j >= cnt) ? (-1) : j; j += (j <= 1) ? ( 1) : j; y = tbl[j]; } } return y; } } return 0xFFFFFFFF; } void PtpIpSonyAlphaCamera::test_prop_decode(uint8_t* data, uint32_t len) { memcpy(databuff, data, len); databuff_idx = len; decode_properties(); } void propdecoder_print_hex(uint16_t datatype, uint8_t* dptr, int cnt) { uint16_t* ptr16 = (uint16_t*)dptr; uint32_t* ptr32 = (uint32_t*)dptr; (void)ptr16; (void)ptr32; int j, k; for (j = 0, k = 0; j < cnt; j++) { switch (datatype & 0x0F) { case 1: case 2: Serial.printf(" 0x%02X", dptr[k] ); k += 1; break; case 3: case 4: Serial.printf(" 0x%04X", ptr16[j]); k += 2; break; case 5: case 6: Serial.printf(" 0x%08X", ptr32[j]); k += 4; break; // case 7 and beyond are 64+ bits, not tested as my camera doesn't support case 7: case 8: Serial.printf(" 0x%08X%08X", ptr32[j + 1], ptr32[j]); k += 8; break; case 9: case 10: Serial.printf(" 0x%08X%08X", ptr32[j + 3], ptr32[j + 2]); Serial.printf( "%08X%08X", ptr32[j + 1], ptr32[j ]); k += 16; break; } } } void PtpIpSonyAlphaCamera::decode_objinfo() { objinfo_pending = false; need_check_object = false; uint32_t* p = (uint32_t*)databuff; uint32_t photo_size = p[2]; dbgser_events->printf("decode_objinfo size %u\r\n", photo_size); uint32_t req_params[3]; req_params[0] = need_check_object_id; req_params[1] = 0; req_params[2] = photo_size; bool success = send_oper_req(PTP_OPCODE_GetPartialObject, req_params, 3, NULL, 0); if (success != false) { reset_buffers(); start_stream(NULL, NULL); } // sample: // 0x00 0x00 0x01 0x00 0x01 0x38 0x00 0x00 0x34 0xF5 0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x0D 0x44 0x00 0x53 0x00 0x43 0x00 0x30 0x00 0x39 0x00 0x38 0x00 0x37 0x00 0x31 0x00 0x2E 0x00 0x4A 0x00 0x50 0x00 0x47 0x00 0x00 0x00 0x00 0x00 0x00 } ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/PtpIpSonyAlphaCameraSend.cpp ================================================ #include "PtpIpSonyAlphaCamera.h" #include #include "ptpip_utils.h" bool PtpIpSonyAlphaCamera::cmd_AutoFocus(bool onoff) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_AutoFocus; uint8_t data[] = { onoff ? (uint8_t)2 : (uint8_t)1, (uint8_t)0 }; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceB, &propcode, 1, (uint8_t*)data, 2); } bool PtpIpSonyAlphaCamera::cmd_Shutter(bool openclose) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_Capture; uint8_t data[] = { openclose ? (uint8_t)2 : (uint8_t)1, (uint8_t)0 }; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceB, &propcode, 1, (uint8_t*)data, 2); } bool PtpIpSonyAlphaCamera::cmd_ManualFocusStep(int16_t step) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_ManualFocusStep; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceB, &propcode, 1, (uint8_t*)&step, 2); } bool PtpIpSonyAlphaCamera::cmd_ZoomStep(int16_t step) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_ZoomStep; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceB, &propcode, 1, (uint8_t*)&step, 2); } #if 0 // disabled, unfriendly API bool PtpIpSonyAlphaCamera::cmd_ShutterSpeedSet(int16_t numerator, int16_t denominator) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_ShutterSpeed; int16_t data[] = {denominator, numerator}; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceA, &propcode, 1, (uint8_t*)data, sizeof(int16_t) * 2); } #endif bool PtpIpSonyAlphaCamera::cmd_ShutterSpeedSet32(uint32_t x) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_ShutterSpeed; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceA, &propcode, 1, (uint8_t*)&x, sizeof(uint32_t)); } bool PtpIpSonyAlphaCamera::cmd_ShutterSpeedStep(int8_t dir) { if (dir == 0) { return false; } if (table_shutter_speed == NULL) { return false; } uint16_t prop_code = SONYALPHA_PROPCODE_ShutterSpeed; if (has_property(prop_code) == false) { return false; } uint32_t x = get_property(prop_code); // get current shutter speed uint32_t ss = get_property_enum(prop_code, x, dir); if (ss != 0 && ss != 0xFFFFFFFF) { return cmd_ShutterSpeedSet32(ss); } return false; } bool PtpIpSonyAlphaCamera::cmd_IsoSet(uint32_t x) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_ISO; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceA, &propcode, 1, (uint8_t*)&x, sizeof(uint32_t)); } bool PtpIpSonyAlphaCamera::cmd_ApertureSet(uint16_t x) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_Aperture; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceA, &propcode, 1, (uint8_t*)&x, sizeof(uint16_t)); } bool PtpIpSonyAlphaCamera::cmd_ExpoCompSet(int32_t x) { // command parameter must be one of the values from the enum list // which just means some rounding is needed, just in case float fx = x; fx /= 100.0; int32_t y = (int32_t)lround(fx); y *= 100; wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_ExpoComp; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceA, &propcode, 1, (uint8_t*)&y, sizeof(int32_t)); } bool PtpIpSonyAlphaCamera::cmd_FocusPointSet(int16_t x, int16_t y) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_FocusPointSet; int16_t data[] = {y, x}; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceB, &propcode, 1, (uint8_t*)data, sizeof(int16_t) * 2); } bool PtpIpSonyAlphaCamera::cmd_Shoot(int t) { if (t <= 0) { t = SONYCAM_DEFAULT_SHUTTER_TIME; } bool success = false; wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); success |= cmd_Shutter(true); // if continuous shooting is on, then don't wait too long here // if bulb mode is on, then this is the shutter speed wait_while_busy(t, DEFAULT_BUSY_TIMEOUT, NULL); success |= cmd_Shutter(false); wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); return success; } bool PtpIpSonyAlphaCamera::cmd_MovieRecord(bool onoff) { bool already_on = is_movierecording(); if ((already_on && onoff) || (!already_on && !onoff)) { return true; } wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_Movie; uint8_t data[] = { onoff ? (uint8_t)2 : (uint8_t)1, (uint8_t)0 }; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceB, &propcode, 1, (uint8_t*)data, 2); } bool PtpIpSonyAlphaCamera::cmd_MovieRecordToggle() { bool already_on = is_movierecording(); return cmd_MovieRecord(!already_on); } bool PtpIpSonyAlphaCamera::cmd_ManualFocusMode(bool onoff, bool precheck) { if (precheck) { bool already_on = is_manuallyfocused(); if ((already_on && onoff) || (!already_on && !onoff)) { return true; } } wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); uint32_t propcode = SONYALPHA_PROPCODE_ManualFocusMode; uint8_t data[] = { onoff ? (uint8_t)2 : (uint8_t)1, (uint8_t)0 }; return send_oper_req((uint32_t)SONYALPHA_OPCODE_SetControlDeviceB, &propcode, 1, (uint8_t*)data, 2); } bool PtpIpSonyAlphaCamera::cmd_ManualFocusToggle(bool onoff) { bool already_on = is_manuallyfocused(); return cmd_ManualFocusMode(!already_on, false); } bool PtpIpSonyAlphaCamera::cmd_arb(uint32_t opcode, uint32_t propcode, uint8_t* payload, uint32_t payload_len) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT); return send_oper_req(opcode, &propcode, 1, payload, payload_len); } ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/examples/PtpApDemo/PtpApDemo.ino ================================================ #include #include PtpIpSonyAlphaCamera ptpcam((char*)"ALPHA-FAIRY", NULL); // declare with name and random GUID void setup() { Serial.begin(115200); WiFi.mode(WIFI_AP); WiFi.softAP("fairywifi", "1234567890"); // start WiFi AP Serial.println("Hello World. PTP Demo. WiFi AP initialized, waiting for client..."); } uint32_t check_for_wifi_client() { // get a list of WiFi clients, and see which one has been assigned a valid IP wifi_sta_list_t wifi_sta_list; tcpip_adapter_sta_list_t adapter_sta_list; memset(&wifi_sta_list , 0, sizeof(wifi_sta_list )); memset(&adapter_sta_list, 0, sizeof(adapter_sta_list)); esp_wifi_ap_get_sta_list (&wifi_sta_list); tcpip_adapter_get_sta_list(&wifi_sta_list, &adapter_sta_list); int i; for (i = 0; i < adapter_sta_list.num; i++) { if (adapter_sta_list.sta[i].ip.addr != 0) { return adapter_sta_list.sta[i].ip.addr; } } return 0; } void loop() { static uint32_t client_ip = 0; uint32_t check_ip; ptpcam.task(); // performs all required polling and tasks for the PTP connection if (client_ip == 0) // has not connected yet { check_ip = check_for_wifi_client(); if (check_ip != 0) // new WiFi client { client_ip = check_ip; Serial.print("New WiFi Client: "); Serial.println(IPAddress(client_ip)); ptpcam.begin(client_ip); // start the handshake } } if (Serial.available()) // check if user has input command from serial port { char c = Serial.read(); if (c == 'x') // this is a command from serial port { Serial.println("Command: Shoot Photo"); if (ptpcam.isOperating()) // check connection { ptpcam.cmd_Shoot(200); // execute the command } else { Serial.println("Error: Camera Not Connected"); } } else if (c == '[' || c == ']') // command to change aperture { change_aperture(c == '[' ? -1 : +1); } else if (c != '\r' && c != '\n') { Serial.printf("Unknown Command: %c\r\n", c); } } } void change_aperture(int dir) { if (ptpcam.table_aperture != NULL) // validate table exists { uint32_t tbl_len = ptpcam.table_aperture[0]; if (tbl_len > 0) // validate table has entries { uint16_t* aperture_table = (uint16_t*)&(ptpcam.table_aperture[1]); // table is declared as 32 bit but actually uses 16 bit entries starting after the first 32 bit entry if (ptpcam.has_property(SONYALPHA_PROPCODE_Aperture)) // validate camera has aperture data { // get the current aperture uint16_t current_aperture = ptpcam.get_property(SONYALPHA_PROPCODE_Aperture); float current_aperture_f = current_aperture; Serial.printf("Current aperture: 0x%04X = %0.1f\r\n", current_aperture, current_aperture_f / 100.0f); int cur_idx = -1, i; // look in the table for the matching entry for (i = 0; i < tbl_len; i++) { uint16_t x = aperture_table[i]; if (x == current_aperture) { // found match cur_idx = i; break; } } if (cur_idx >= 0) { // match found // find the next idx in the table int next_idx = cur_idx + dir; // limit range to somewhere within the table if (next_idx < 0) { next_idx = 0; } else if (next_idx >= tbl_len) { next_idx = tbl_len - 1; } // find the next entry in the table uint16_t next_aperture = aperture_table[next_idx]; float next_aperture_f = next_aperture; Serial.printf("Next aperture[%u -> %u]: 0x%04X = %0.1f\r\n", cur_idx, next_idx, next_aperture, next_aperture_f / 100.0f); // finally send the command, knowing that the parameter is valid ptpcam.cmd_ApertureSet(next_aperture); } else { Serial.println("Error: No aperture matches in table"); } } else { Serial.println("Error: No aperture data available"); } } else { Serial.println("Error: Aperture table has 0 entries"); } } else { Serial.println("Error: No aperture table available"); } } ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/examples/PtpStaDemo/PtpStaDemo.ino ================================================ #include #include PtpIpSonyAlphaCamera ptpcam((char*)"ALPHA-FAIRY", NULL); // declare with name and random GUID int wifi_last_status; void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); wifi_last_status = WiFi.status(); // remember pre-init status WiFi.begin("DIRECT-qIR1:DSC-RX0M2", "7CBcqf62"); // connect to camera Serial.println("Hello World. PTP Demo. WiFi attempting connection..."); } void loop() { ptpcam.task(); // performs all required polling and tasks for the PTP connection int status = WiFi.status(); if (status == WL_CONNECTED) { IPAddress gateway = WiFi.gatewayIP(); IPAddress localIp = WiFi.localIP(); if (gateway != 0 && localIp != 0 && wifi_last_status != status && ptpcam.canNewConnect()) // new connect { wifi_last_status = status; Serial.print("WiFi Connected: "); Serial.println(gateway); ptpcam.begin((uint32_t)gateway); // start the handshake } } else { wifi_last_status = status; } if (Serial.available()) // check if user has input command from serial port { char c = Serial.read(); if (c == 'x') // this is a command from serial port { Serial.println("Command: Shoot Photo"); if (ptpcam.isOperating()) // check connection { ptpcam.cmd_Shoot(200); // execute the command } else { Serial.println("Error: Camera Not Connected"); } } else if (c == '[' || c == ']') // command to change aperture { change_aperture(c == '[' ? -1 : +1); } else if (c != '\r' && c != '\n') { Serial.printf("Unknown Command: %c\r\n", c); } } } void change_aperture(int dir) { if (ptpcam.table_aperture != NULL) // validate table exists { uint32_t tbl_len = ptpcam.table_aperture[0]; if (tbl_len > 0) // validate table has entries { uint16_t* aperture_table = (uint16_t*)&(ptpcam.table_aperture[1]); // table is declared as 32 bit but actually uses 16 bit entries starting after the first 32 bit entry if (ptpcam.has_property(SONYALPHA_PROPCODE_Aperture)) // validate camera has aperture data { // get the current aperture uint16_t current_aperture = ptpcam.get_property(SONYALPHA_PROPCODE_Aperture); float current_aperture_f = current_aperture; Serial.printf("Current aperture: 0x%04X = %0.1f\r\n", current_aperture, current_aperture_f / 100.0f); int cur_idx = -1, i; // look in the table for the matching entry for (i = 0; i < tbl_len; i++) { uint16_t x = aperture_table[i]; if (x == current_aperture) { // found match cur_idx = i; break; } } if (cur_idx >= 0) { // match found // find the next idx in the table int next_idx = cur_idx + dir; // limit range to somewhere within the table if (next_idx < 0) { next_idx = 0; } else if (next_idx >= tbl_len) { next_idx = tbl_len - 1; } // find the next entry in the table uint16_t next_aperture = aperture_table[next_idx]; float next_aperture_f = next_aperture; Serial.printf("Next aperture[%u -> %u]: 0x%04X = %0.1f\r\n", cur_idx, next_idx, next_aperture, next_aperture_f / 100.0f); // finally send the command, knowing that the parameter is valid ptpcam.cmd_ApertureSet(next_aperture); } else { Serial.println("Error: No aperture matches in table"); } } else { Serial.println("Error: No aperture data available"); } } else { Serial.println("Error: Aperture table has 0 entries"); } } else { Serial.println("Error: No aperture table available"); } } ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/ptpcodes.h ================================================ #ifndef _PTPCODES_H_ #define _PTPCODES_H_ enum { PTP_PKTTYPE_INITCMDREQ = 0x0001, PTP_PKTTYPE_INITCMDACK = 0x0002, PTP_PKTTYPE_INITEVENTREQ = 0x0003, PTP_PKTTYPE_INITEVENTACK = 0x0004, PTP_PKTTYPE_INITFAILED = 0x0005, PTP_PKTTYPE_OPERREQ = 0x0006, PTP_PKTTYPE_OPERRESP = 0x0007, PTP_PKTTYPE_EVENT = 0x0008, PTP_PKTTYPE_STARTDATA = 0x0009, PTP_PKTTYPE_DATA = 0x000A, PTP_PKTTYPE_CANCELDATA = 0x000B, PTP_PKTTYPE_ENDDATA = 0x000C, PTP_PKTTYPE_PROBEREQ = 0x000D, PTP_PKTTYPE_PROBERESP = 0x000E, }; enum { PTP_OPCODE_Undefined = 0x1000, PTP_OPCODE_GetDeviceInfo = 0x1001, PTP_OPCODE_OpenSession = 0x1002, PTP_OPCODE_CloseSession = 0x1003, PTP_OPCODE_GetStorageIDs = 0x1004, PTP_OPCODE_GetStorageInfo = 0x1005, PTP_OPCODE_GetNumObjects = 0x1006, PTP_OPCODE_GetObjectHandles = 0x1007, PTP_OPCODE_GetObjectInfo = 0x1008, PTP_OPCODE_GetObject = 0x1009, PTP_OPCODE_GetThumb = 0x100A, PTP_OPCODE_DeleteObject = 0x100B, PTP_OPCODE_SendObjectInfo = 0x100C, PTP_OPCODE_SendObject = 0x100D, PTP_OPCODE_InitiateCapture = 0x100E, PTP_OPCODE_FormatStore = 0x100F, PTP_OPCODE_ResetDevice = 0x1010, PTP_OPCODE_SelfTest = 0x1011, PTP_OPCODE_SetObjectProtection = 0x1012, PTP_OPCODE_PowerDown = 0x1013, PTP_OPCODE_GetDevicePropDesc = 0x1014, PTP_OPCODE_GetDevicePropValue = 0x1015, PTP_OPCODE_SetDevicePropValue = 0x1016, PTP_OPCODE_ResetDevicePropValue = 0x1017, PTP_OPCODE_TerminateOpenCapture = 0x1018, PTP_OPCODE_MoveObject = 0x1019, PTP_OPCODE_CopyObject = 0x101A, PTP_OPCODE_GetPartialObject = 0x101B, PTP_OPCODE_InitiateOpenCapture = 0x101C, PTP_OPCODE_GetObjectPropValue = 0x9803, }; enum { PTP_CONTAINER_UNDEFINED = 0x0000, PTP_CONTAINER_CMD = 0x0001, PTP_CONTAINER_DATA = 0x0002, PTP_CONTAINER_RESPONSE = 0x0003, PTP_CONTAINER_EVENT = 0x0004, }; enum { PTP_PROPCODE_BatteryLevel = 0x5001, PTP_PROPCODE_FunctionalMode = 0x5002, PTP_PROPCODE_ImageSize = 0x5003, PTP_PROPCODE_CompressionSetting = 0x5004, PTP_PROPCODE_WhiteBalance = 0x5005, PTP_PROPCODE_RGBGain = 0x5006, PTP_PROPCODE_Aperture = 0x5007, PTP_PROPCODE_FocalLength = 0x5008, PTP_PROPCODE_FocusDistance = 0x5009, PTP_PROPCODE_FocusMode = 0x500A, PTP_PROPCODE_ExposureMeteringMode = 0x500B, PTP_PROPCODE_FlashMode = 0x500C, PTP_PROPCODE_ExposureTime = 0x500D, PTP_PROPCODE_ExposureProgramMode = 0x500E, PTP_PROPCODE_ExposureIndex = 0x500F, PTP_PROPCODE_ExposureBiasCompensation = 0x5010, PTP_PROPCODE_DateTime = 0x5011, PTP_PROPCODE_CaptureDelay = 0x5012, PTP_PROPCODE_StillCaptureMode = 0x5013, PTP_PROPCODE_Contrast = 0x5014, PTP_PROPCODE_Sharpness = 0x5015, PTP_PROPCODE_DigitalZoom = 0x5016, PTP_PROPCODE_EffectMode = 0x5017, PTP_PROPCODE_BurstNumber = 0x5018, PTP_PROPCODE_BurstInterval = 0x5019, PTP_PROPCODE_TimelapseNumber = 0x501A, PTP_PROPCODE_TimelapseInterval = 0x501B, PTP_PROPCODE_FocusMeteringMode = 0x501C, PTP_PROPCODE_UploadURL = 0x501D, PTP_PROPCODE_Artist = 0x501E, PTP_PROPCODE_CopyrightInfo = 0x501F, }; enum { PTP_RESPCODE_Undefined = 0x2000, PTP_RESPCODE_OK = 0x2001, PTP_RESPCODE_GeneralError = 0x2002, PTP_RESPCODE_SessionNotOpen = 0x2003, PTP_RESPCODE_InvalidTransactionID = 0x2004, PTP_RESPCODE_OperationNotSupported = 0x2005, PTP_RESPCODE_ParameterNotSupported = 0x2006, PTP_RESPCODE_IncompleteTransfer = 0x2007, PTP_RESPCODE_InvalidStorageID = 0x2008, PTP_RESPCODE_InvalidObjectHandle = 0x2009, PTP_RESPCODE_DevicePropNotSupported = 0x200A, PTP_RESPCODE_InvalidObjectFormatCode = 0x200B, PTP_RESPCODE_StoreFull = 0x200C, PTP_RESPCODE_ObjectWriteProtected = 0x200D, PTP_RESPCODE_StoreReadOnly = 0x200E, PTP_RESPCODE_AccessDenied = 0x200F, PTP_RESPCODE_NoThumbnailPresent = 0x2010, PTP_RESPCODE_SelfTestFailed = 0x2011, PTP_RESPCODE_PartialDeletion = 0x2012, PTP_RESPCODE_StoreNotAvailable = 0x2013, PTP_RESPCODE_SpecificationByFormatUnsupported = 0x2014, PTP_RESPCODE_NoValidObjectInfo = 0x2015, PTP_RESPCODE_InvalidCodeFormat = 0x2016, PTP_RESPCODE_UnknownVendorCode = 0x2017, PTP_RESPCODE_CaptureAlreadyTerminated = 0x2018, PTP_RESPCODE_DeviceBusy = 0x2019, PTP_RESPCODE_InvalidParentObject = 0x201A, PTP_RESPCODE_InvalidDevicePropFormat = 0x201B, PTP_RESPCODE_InvalidDevicePropValue = 0x201C, PTP_RESPCODE_InvalidParameter = 0x201D, PTP_RESPCODE_SessionAlreadyOpen = 0x201E, PTP_RESPCODE_TransactionCancelled = 0x201F, PTP_RESPCODE_SpecificationofDestinationUnsupported = 0x2020, }; #define PTP_RESPCODE_IS_OK_ISH(x) (((x) == PTP_RESPCODE_OK) || ((x) == PTP_RESPCODE_OperationNotSupported) || ((x) == PTP_RESPCODE_InvalidStorageID) || ((x) == PTP_RESPCODE_StoreNotAvailable) || ((x) == PTP_RESPCODE_CaptureAlreadyTerminated)) enum { PTP_EVENTCODE_CancelTransaction = 0x4001, PTP_EVENTCODE_ObjectAdded = 0x4002, PTP_EVENTCODE_ObjectRemoved = 0x4003, PTP_EVENTCODE_StoreAdded = 0x4004, PTP_EVENTCODE_StoreRemoved = 0x4005, PTP_EVENTCODE_DevicePropChanged = 0x4006, PTP_EVENTCODE_ObjectInfoChanged = 0x4007, PTP_EVENTCODE_DeviceInfoChanged = 0x4008, PTP_EVENTCODE_RequestObjectTransfer = 0x4009, PTP_EVENTCODE_StoreFull = 0x400A, PTP_EVENTCODE_StorageInfoChanged = 0x400C, PTP_EVENTCODE_CaptureComplete = 0x400D, PTP_EVENTCODE_ObjectAddedInSdram = 0xC101, PTP_EVENTCODE_CaptureCompleteRecInSdram = 0xC102, PTP_EVENTCODE_RecordingInterrupted = 0xC105, }; enum { PTP_EXPOPROGMODE_UNDEFINED = 0x0000, PTP_EXPOPROGMODE_MANUAL = 0x0001, PTP_EXPOPROGMODE_AUTO = 0x0002, PTP_EXPOPROGMODE_A = 0x0003, PTP_EXPOPROGMODE_S = 0x0004, PTP_EXPOPROGMODE_PROGRAMCREATIVE = 0x0005, PTP_EXPOPROGMODE_PROGRAMACTION = 0x0006, PTP_EXPOPROGMODE_PORTRAIT = 0x0007, }; #endif ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/ptpip_utils.cpp ================================================ #include "PtpIpCamera.h" #include "ptpip_utils.h" #include #include //#define PTPIP_DEBUG_RX uint32_t copy_bytes_to_utf16(void* dest, void* src, int n) { int i, j; uint8_t* dp = (uint8_t*)dest; uint8_t* sp = (uint8_t*)src; i = 0; j = 0; while (i < (n - 1)) { uint8_t c = sp[i]; dp[j] = c; dp[j+1] = 0; dp[j+2] = 0; dp[j+3] = 0; i += 1; j += 2; if (c == 0) { break; } } return j; } uint32_t copy_utf16_to_bytes(void* dest, void* src, int n) { int i, j; uint8_t* dp = (uint8_t*)dest; uint8_t* sp = (uint8_t*)src; i = 0; j = 0; while (j < (n - 1)) { uint8_t c = sp[i]; dp[j] = c; i += 2; j += 1; if (c == 0) { break; } } return j; } void copyn_utf16_to_bytes(void* dest, void* src, uint32_t n) { int i, j; uint8_t* dp = (uint8_t*)dest; uint8_t* sp = (uint8_t*)src; i = 0; j = 0; while (j < n) { uint8_t c = sp[i]; dp[j] = c; i += 2; j += 1; if (c == 0) { break; } } dp[j] = 0; } void buffer_consume(uint8_t buff[], uint32_t* buff_idx, uint32_t read_cnt, uint32_t buff_max) { uint32_t i, j; if (read_cnt > (*buff_idx)) { read_cnt = (*buff_idx); } //for (i = 0, j = read_cnt; j < buff_max; i++, j++) { // buff[i] = buff[j]; //} memcpy(buff, &(buff[read_cnt]), buff_max - read_cnt); (*buff_idx) -= read_cnt; #ifdef PTPIP_DEBUG_RX if ((*buff_idx) > 0) { Serial.printf("BUF CONSUME (%u , %u) ", read_cnt, (*buff_idx)); for (i = 0; i < (*buff_idx); i++) { Serial.printf(" %02X", buff[i]); } Serial.printf("\r\n"); } #endif } void print_buffer_hex(uint8_t* data, uint32_t len) { #if 1 if (len > 128) { Serial.printf(" too long"); return; } #endif uint32_t i; for (i = 0; i < len; i++) { if (i != 0 && (i % 32) == 0) { Serial.printf("\r\n"); } else { Serial.printf(" "); } Serial.printf("%02X", data[i]); } } uint32_t decode_chunk_to_uint(uint16_t data_type, uint8_t* data_chunk, uint8_t data_size) { uint8_t dsz = property_data_get_size(data_type); uint8_t i; uint32_t res = 0; for (i = 0; i < dsz; i++) { res += data_chunk[i] << (8 * i); } return res; } int32_t decode_chunk_to_int(uint16_t data_type, uint8_t* data_chunk, uint8_t data_length) { int dsz = property_data_get_size(data_type); int32_t u = (int32_t)decode_chunk_to_uint(data_type, data_chunk, data_length); if ((data_type & 1) != 0) { // signed if (u >= pow(2, ((8 * dsz) - 1))) { u -= pow(2, ((8 * dsz))); } } return u; } uint8_t property_data_get_size(uint16_t data_type) { uint8_t dsz = 1; uint16_t dt4bit = data_type & 0x0F; switch (dt4bit) { case 1: case 2: dsz = 1; break; case 3: case 4: dsz = 2; break; case 5: case 6: dsz = 4; break; case 7: case 8: dsz = 8; break; case 9: case 0x0A: dsz = 16; break; } return dsz; } bool camera_name_check(char* instr, const char* needle) { int slen1 = strlen(instr); int slen2 = strlen(needle); if (slen2 > slen1) { return false; } int i, d = slen1 - slen2; for (i = 0; i <= d; i++) { bool all_match = true; char* shifted_str = &instr[i]; int slen3 = strlen(shifted_str); int j; for (j = 0; j < slen3 && j < slen2; j++) { char c1 = shifted_str[j]; char c2 = needle[j]; c1 = (c1 >= 'A' && c1 <= 'Z') ? (c1 - 'A' + 'a') : (c1); c2 = (c2 >= 'A' && c2 <= 'Z') ? (c2 - 'A' + 'a') : (c2); if (c1 != c2) { all_match = false; break; } } if (all_match) { return true; } } return false; } void PtpIpCamera::generate_guid(char* s) { uint8_t guid_src[PTP_GUID_LEN]; WiFi.macAddress(guid_src); memcpy(&(guid_src[6]), my_name, 10); sprintf((char*)s, "%02x%02x%02x%02x-%02x%02x-%02x", guid_src[0], guid_src[1], guid_src[2], guid_src[3], guid_src[4], guid_src[5], guid_src[6]); } void PtpIpCamera::fill_guid(char* s) { if (custom_guid == NULL) { generate_guid(s); } else { if (custom_guid[0] == 0) { generate_guid(s); } else { memcpy(s, custom_guid, PTP_GUID_LEN + 1); } } } void PtpIpCamera::install_guid(char* s) { bool uninstall = false; if (s == NULL) { uninstall = true; } else if (s[0] == 0) { uninstall = true; } if (uninstall) { if (custom_guid != NULL) { free(custom_guid); custom_guid = NULL; } return; } if (custom_guid == NULL) { custom_guid = (char*)malloc(PTP_GUID_LEN+2); custom_guid[0] = 0; custom_guid[PTP_GUID_LEN] = 0; } memcpy(custom_guid, s, PTP_GUID_LEN + 1); } ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/ptpip_utils.h ================================================ #ifndef _PTPIP_UTILS_H_ #define _PTPIP_UTILS_H_ #include #include uint32_t copy_bytes_to_utf16 (void* dest, void* src, int n); uint32_t copy_utf16_to_bytes (void* dest, void* src, int n); void copyn_utf16_to_bytes (void* dest, void* src, uint32_t n); void buffer_consume (uint8_t buff[], uint32_t* buff_idx, uint32_t read_cnt, uint32_t buff_max); void print_buffer_hex (uint8_t* data, uint32_t len); int32_t decode_chunk_to_int (uint16_t data_type, uint8_t* data_chunk, uint8_t data_length); uint32_t decode_chunk_to_uint (uint16_t data_type, uint8_t* data_chunk, uint8_t data_length); void propdecoder_print_hex (uint16_t datatype, uint8_t* dptr, int cnt); uint8_t property_data_get_size(uint16_t data_type); bool camera_name_check (char* instr, const char* needle); #endif ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/ptpipdefs.h ================================================ #ifndef _PTPIPDEFS_H_ #define _PTPIPDEFS_H_ #include #include #ifdef __cplusplus extern "C" { #endif #define PTP_OVER_IP_PORT 15740 #define PTPIP_NAME_LENGTH_MAX 256 typedef struct __attribute__((packed)) { uint32_t length; uint32_t pkt_type; } ptpip_pkthdr_t; typedef struct __attribute__((packed)) { ptpip_pkthdr_t header; uint8_t guid[16]; uint16_t name[PTPIP_NAME_LENGTH_MAX]; } ptpip_pkt_cmdreq_t; typedef struct __attribute__((packed)) { ptpip_pkthdr_t header; uint32_t conn_id; uint8_t guid[16]; uint16_t name[PTPIP_NAME_LENGTH_MAX]; } ptpip_pkt_cmdack_t; typedef struct __attribute__((packed)) { ptpip_pkthdr_t header; uint32_t conn_id; } ptpip_pkt_eventreq_t; typedef struct __attribute__((packed)) { ptpip_pkthdr_t header; uint32_t data_phase; uint16_t op_code; uint32_t transaction_id; } ptpip_pkt_operreq_t; typedef struct __attribute__((packed)) { ptpip_pkthdr_t header; uint16_t resp_code; } ptpip_pkt_operresp_t; typedef struct __attribute__((packed)) { ptpip_pkthdr_t header; uint32_t transaction_id; uint32_t pending_data_length; uint32_t pending_data_length_h; } ptpip_pkt_startdata_t; typedef struct __attribute__((packed)) { ptpip_pkthdr_t header; uint32_t transaction_id; } ptpip_pkt_data_t; typedef struct __attribute__((packed)) { ptpip_pkthdr_t header; uint32_t transaction_id; } ptpip_pkt_enddata_t; typedef struct __attribute__((packed)) { ptpip_pkthdr_t header; uint16_t event_code; } ptpip_pkt_event_t; #ifdef __cplusplus } #endif #endif ================================================ FILE: arduino_workspace/libraries/PtpIpCamera/ptpsonycodes.h ================================================ #ifndef _PTPSONYCODES_H_ #define _PTPSONYCODES_H_ #include "ptpcodes.h" enum { SONYALPHA_OPCODE_SDIOConnect = 0x9201, SONYALPHA_OPCODE_SDIOGetExtDeviceInfo = 0x9202, SONYALPHA_OPCODE_SonyGetDevicePropDesc = 0x9203, SONYALPHA_OPCODE_SonyGetDevicePropValue = 0x9204, SONYALPHA_OPCODE_SetControlDeviceA = 0x9205, SONYALPHA_OPCODE_GetControlDeviceDesc = 0x9206, SONYALPHA_OPCODE_SetControlDeviceB = 0x9207, SONYALPHA_OPCODE_GetAllDevicePropData = 0x9209, }; enum { SONYALPHA_EVENTCODE_ObjectAdded = 0xC201, SONYALPHA_EVENTCODE_ObjectRemoved = 0xC202, SONYALPHA_EVENTCODE_PropertyChanged = 0xC203, SONYALPHA_EVENTCODE_Unknown_1 = 0xC206, SONYALPHA_EVENTCODE_Unknown_2 = 0xC207, SONYALPHA_EVENTCODE_Unknown_3 = 0xC20C, }; enum { SONYALPHA_PROPCODE_DPCCompensation = 0xD200, SONYALPHA_PROPCODE_DRangeOptimize = 0xD201, SONYALPHA_PROPCODE_SonyImageSize = 0xD203, SONYALPHA_PROPCODE_ShutterSpeed = 0xD20D, SONYALPHA_PROPCODE_Unknown_0E = 0xD20E, SONYALPHA_PROPCODE_ColorTemp = 0xD20F, SONYALPHA_PROPCODE_CCFilter = 0xD210, SONYALPHA_PROPCODE_AspectRatio = 0xD211, SONYALPHA_PROPCODE_FocusFound = 0xD213, SONYALPHA_PROPCODE_ObjectInMemory = 0xD215, SONYALPHA_PROPCODE_ExposeIndex = 0xD216, SONYALPHA_PROPCODE_SonyBatteryLevel = 0xD218, SONYALPHA_PROPCODE_PictureEffect = 0xD21B, SONYALPHA_PROPCODE_ABFilter = 0xD21C, SONYALPHA_PROPCODE_Recording = 0xD21D, SONYALPHA_PROPCODE_ISO = 0xD21E, SONYALPHA_PROPCODE_AutoFocus = 0xD2C1, SONYALPHA_PROPCODE_FocusMode = PTP_PROPCODE_FocusMode, SONYALPHA_PROPCODE_Capture = 0xD2C2, SONYALPHA_PROPCODE_Movie = 0xD2C8, SONYALPHA_PROPCODE_StillImage = 0xD2C7, SONYALPHA_PROPCODE_DriveMode = PTP_PROPCODE_StillCaptureMode, SONYALPHA_PROPCODE_Aperture = PTP_PROPCODE_Aperture, SONYALPHA_PROPCODE_ExpoComp = PTP_PROPCODE_ExposureBiasCompensation, SONYALPHA_PROPCODE_FocusArea = 0xD22C, SONYALPHA_PROPCODE_FocusPointGet = 0xD232, SONYALPHA_PROPCODE_FocusPointSet = 0xD2DC, SONYALPHA_PROPCODE_ManualFocusMode = 0xD2D2, SONYALPHA_PROPCODE_ManualFocusStep = 0xD2D1, SONYALPHA_PROPCODE_ZoomStep = 0xD2DD, SONYALPHA_PROPCODE_ZoomPercentage = 0xD25D, SONYALPHA_PROPCODE_FileFormat = PTP_PROPCODE_CompressionSetting, SONYALPHA_PROPCODE_MovieTime = 0xD261, SONYALPHA_PROPCODE_ManualFocusDist = 0xD24C, // range seems to be 0 to 100 inclusive, 100 also represents infinity SONYALPHA_PROPCODE_FocusAssistWindow = 0xD254, SONYALPHA_PROPCODE_MemoryRemaining_Card1 = 0xD249, SONYALPHA_PROPCODE_MemoryRemaining_Card2 = 0xD257, }; enum { SONYALPHA_DRIVEMODE_Single = 0x0001, SONYALPHA_DRIVEMODE_ContHi = 0x0002, SONYALPHA_DRIVEMODE_ContHiPlus = 0x8010, SONYALPHA_DRIVEMODE_ContLo = 0x8012, SONYALPHA_DRIVEMODE_ContMid = 0x8015, SONYALPHA_DRIVEMODE_SelfTimer10s = 0x8004, SONYALPHA_DRIVEMODE_SelfTimer2s = 0x8005, SONYALPHA_DRIVEMODE_SelfTimer5s = 0x8003, SONYALPHA_DRIVEMODE_SelfTimer10sContinuous3Images = 0x8008, SONYALPHA_DRIVEMODE_SelfTimer10sContinuous5Images = 0x8009, SONYALPHA_DRIVEMODE_SelfTimer2sContinuous3Images = 0x800E, SONYALPHA_DRIVEMODE_SelfTimer2sContinuous5Images = 0x800F, SONYALPHA_DRIVEMODE_SelfTimer5sContinuous3Images = 0x800C, SONYALPHA_DRIVEMODE_SelfTimer5sContinuous5Images = 0x800D, SONYALPHA_DRIVEMODE_Continuous = 0x8013, SONYALPHA_DRIVEMODE_ContinuousSpeedPriority = 0x8014, SONYALPHA_DRIVEMODE_WhiteBalanceBracketLow = 0x8018, SONYALPHA_DRIVEMODE_WhiteBalanceBracketHigh = 0x8028, SONYALPHA_DRIVEMODE_DRangeOptimizerBracketLow = 0x8019, SONYALPHA_DRIVEMODE_DRangoOptimizerBracketHigh = 0x8029, SONYALPHA_DRIVEMODE_ContinuousBracket10EV3Image = 0x8311, SONYALPHA_DRIVEMODE_ContinuousBracket20EV3Image = 0x8321, SONYALPHA_DRIVEMODE_ContinuousBracket30EV3Image = 0x8331, SONYALPHA_DRIVEMODE_ContinuousBracket03EV3Image = 0x8337, SONYALPHA_DRIVEMODE_ContinuousBracket05EV3Image = 0x8357, SONYALPHA_DRIVEMODE_ContinuousBracket07EV3Image = 0x8377, SONYALPHA_DRIVEMODE_ContinuousBracket10EV5Image = 0x8511, SONYALPHA_DRIVEMODE_ContinuousBracket20EV5Image = 0x8521, SONYALPHA_DRIVEMODE_ContinuousBracket30EV5Image = 0x8531, SONYALPHA_DRIVEMODE_ContinuousBracket03EV5Image = 0x8537, SONYALPHA_DRIVEMODE_ContinuousBracket05EV5Image = 0x8557, SONYALPHA_DRIVEMODE_ContinuousBracket07EV5Image = 0x8577, SONYALPHA_DRIVEMODE_ContinuousBracket10EV9Image = 0x8911, SONYALPHA_DRIVEMODE_ContinuousBracket03EV9Image = 0x8937, SONYALPHA_DRIVEMODE_ContinuousBracket05EV9Image = 0x8957, SONYALPHA_DRIVEMODE_ContinuousBracket07EV9Image = 0x8977, SONYALPHA_DRIVEMODE_SingleBracket10EV3Image = 0x8310, SONYALPHA_DRIVEMODE_SingleBracket20EV3Image = 0x8320, SONYALPHA_DRIVEMODE_SingleBracket30EV3Image = 0x8330, SONYALPHA_DRIVEMODE_SingleBracket03EV3Image = 0x8336, SONYALPHA_DRIVEMODE_SingleBracket05EV3Image = 0x8356, SONYALPHA_DRIVEMODE_SingleBracket07EV3Image = 0x8376, SONYALPHA_DRIVEMODE_SingleBracket10EV5Image = 0x8510, SONYALPHA_DRIVEMODE_SingleBracket20EV5Image = 0x8520, SONYALPHA_DRIVEMODE_SingleBracket30EV5Image = 0x8530, SONYALPHA_DRIVEMODE_SingleBracket03EV5Image = 0x8536, SONYALPHA_DRIVEMODE_SingleBracket05EV5Image = 0x8556, SONYALPHA_DRIVEMODE_SingleBracket07EV5Image = 0x8576, SONYALPHA_DRIVEMODE_SingleBracket10EV9Image = 0x8910, SONYALPHA_DRIVEMODE_SingleBracket03EV9Image = 0x8936, SONYALPHA_DRIVEMODE_SingleBracket05EV9Image = 0x8956, SONYALPHA_DRIVEMODE_SingleBracket07EV9Image = 0x8976, }; // note: Does NOT match "CrDriveMode" from "CrDeviceProperty" in CrSDK enum { SONYALPHA_EXPOMODE_IntelligentAuto = 0x8000, SONYALPHA_EXPOMODE_SuperiorAuto = 0x8001, SONYALPHA_EXPOMODE_P = 0x0002, SONYALPHA_EXPOMODE_A = 0x0003, SONYALPHA_EXPOMODE_S = 0x0004, SONYALPHA_EXPOMODE_M = 0x0001, SONYALPHA_EXPOMODE_MovieP = 0x8050, SONYALPHA_EXPOMODE_MovieA = 0x8051, SONYALPHA_EXPOMODE_MovieS = 0x8052, SONYALPHA_EXPOMODE_MovieM = 0x8053, SONYALPHA_EXPOMODE_Panoramic = 0x8041, SONYALPHA_EXPOMODE_Portrait = 0x0007, SONYALPHA_EXPOMODE_SportsAction = 0x8011, SONYALPHA_EXPOMODE_Macro = 0x8015, SONYALPHA_EXPOMODE_Landscape = 0x8014, SONYALPHA_EXPOMODE_Sunset = 0x8012, SONYALPHA_EXPOMODE_NightScene = 0x8013, SONYALPHA_EXPOMODE_HandheldTwilight = 0x8016, SONYALPHA_EXPOMODE_NightPortrait = 0x8017, SONYALPHA_EXPOMODE_AntiMotionBlur = 0x8018, }; // note: potentially matching "CrExposureProgram" from "CrDeviceProperty" in CrSDK enum { SONYALPHA_FOCUSAREA_WIDE = 0x0001, SONYALPHA_FOCUSAREA_ZONE = 0x0002, SONYALPHA_FOCUSAREA_CENTER = 0x0003, SONYALPHA_FOCUSAREA_MOVEABLE_SMALL = 0x0101, SONYALPHA_FOCUSAREA_MOVEABLE_MEDIUM = 0x0102, SONYALPHA_FOCUSAREA_MOVEABLE_LARGE = 0x0103, SONYALPHA_FOCUSAREA_MOVEABLE_EXPAND = 0x0104, SONYALPHA_FOCUSAREA_TRACKING_WIDE = 0x0201, SONYALPHA_FOCUSAREA_TRACKING_ZONE = 0x0202, SONYALPHA_FOCUSAREA_TRACKING_CENTER = 0x0203, SONYALPHA_FOCUSAREA_TRACKING_MOVEABLE_SMALL = 0x0204, SONYALPHA_FOCUSAREA_TRACKING_MOVEABLE_MEDIUM = 0x0205, SONYALPHA_FOCUSAREA_TRACKING_MOVEABLE_LARGE = 0x0206, SONYALPHA_FOCUSAREA_TRACKING_MOVEABLE_EXPAND = 0x0207, }; // note: Does NOT match "CrFocusArea" from "CrDeviceProperty" in CrSDK enum { SONYALPHA_FILEFORMAT_RAW = 0x0010, SONYALPHA_FILEFORMAT_RAW_JPEG_STD = 0x0012, SONYALPHA_FILEFORMAT_RAW_JPEG_FINE = 0x0013, SONYALPHA_FILEFORMAT_RAW_JPEG_XFINE = 0x0014, SONYALPHA_FILEFORMAT_JPEG_STD = 0x0002, SONYALPHA_FILEFORMAT_JPEG_FINE = 0x0003, SONYALPHA_FILEFORMAT_JPEG_XFINE = 0x0004, }; // note: the quality bits seems to be matching "CrJpegQuality" from "CrDeviceProperty" in CrSDK #define SONYALPHA_FOCUSPOINT_X_MAX 639 #define SONYALPHA_FOCUSPOINT_Y_MAX 480 #define SONYALPHA_FOCUSPOINT_X_MID ((SONYALPHA_FOCUSPOINT_X_MAX + 1) / 2) #define SONYALPHA_FOCUSPOINT_Y_MID ((SONYALPHA_FOCUSPOINT_Y_MAX + 0) / 2) // TODO: unsure if this is specific to the a6600 that I'm testing on, maybe a bigger screen means bigger numbers? enum { SONYALPHA_FOCUSSTEP_FARTHER_SMALL = 1, SONYALPHA_FOCUSSTEP_FARTHER_MEDIUM = 3, SONYALPHA_FOCUSSTEP_FARTHER_LARGE = 7, SONYALPHA_FOCUSSTEP_CLOSER_SMALL = -1, SONYALPHA_FOCUSSTEP_CLOSER_MEDIUM = -3, SONYALPHA_FOCUSSTEP_CLOSER_LARGE = -7, // TODO: experiment with other step sizes }; enum { SONYALPHA_ZOOM_TELE = -1, SONYALPHA_ZOOM_WIDE = 1, }; enum { SONYALPHA_AFMODE_AFC = 0x8004, SONYALPHA_AFMODE_AFS = 0x0002, SONYALPHA_AFMODE_AFA = 0x8005, SONYALPHA_AFMODE_DMF = 0x8006, SONYALPHA_AFMODE_MF = 0x0001, }; // note: Does NOT match "CrFocusMode" from "CrDeviceProperty" in CrSDK enum { SONYALPHA_FOCUSSTATUS_NONE = 0x01, // idle SONYALPHA_FOCUSSTATUS_FOCUSED = 0x06, // focused, and tracking SONYALPHA_FOCUSSTATUS_HUNTING = 0x05, // still searching SONYALPHA_FOCUSSTATUS_FAILED = 0x03, // AF failed, unable to acquire SONYALPHA_FOCUSSTATUS_LOST = 0x02, // single AF on target, but then shift out of focus (normal for AF-S) SONYALPHA_FOCUSSTATUS_AFS_FOCUSED = SONYALPHA_FOCUSSTATUS_LOST, }; // note: Does NOT match "CrFocusIndicator" from "CrDeviceProperty" in CrSDK #endif ================================================ FILE: arduino_workspace/libraries/SerialCmdLine/SerialCmdLine.cpp ================================================ #include "SerialCmdLine.h" SerialCmdLine::SerialCmdLine(Stream* stream_obj, cmd_def_t* user_cmd_list, bool local_echo, char* prompt, char* unknown_reply, bool higher_priori, uint32_t buffer_size) { this->_buffer_size = buffer_size; this->_buffer = (uint8_t*)malloc(buffer_size); this->_buffer[0] = 0; this->_buff_idx = 0; this->_prev_char = 0; if (prompt != NULL) { int sl = strlen(prompt); this->_prompt = (char*)malloc(sl + 1); strcpy(this->_prompt, prompt); } else { this->_prompt = NULL; } if (unknown_reply != NULL) { int sl = strlen(unknown_reply); this->_unknown_reply = (char*)malloc(sl + 1); strcpy(this->_unknown_reply, unknown_reply); } else { this->_unknown_reply = NULL; } this->_stream = stream_obj; this->_echo = local_echo; this->_cmd_list = user_cmd_list; this->_higher_priori = higher_priori; } int SerialCmdLine::task() { int ret = 0; if (_stream->available() <= 0) { // nothing to do return ret; } do { uint8_t c = _stream->read(); ret += 1; if (_echo) { _stream->write((char)c); } if (c == '\n' && this->_prev_char == '\r') { this->_prev_char = c; return ret; } if (c == '\0' || c == '\r' || c == '\n') { _buffer[_buff_idx] = '\0'; this->_stream->write("\r\n"); if (_buff_idx == 0) { if (this->_prompt != NULL) { this->_stream->write(this->_prompt, strlen(this->_prompt)); } this->_prev_char = c; return ret; } uint8_t ti; for (ti = 0; ; ti++) { cmd_def_t* cmd = &(_cmd_list[ti]); if (cmd->cmd_header == NULL || cmd->cmd_header[0] == '\0' || cmd->handler_callback == NULL) { break; // end of table reached } uint8_t sl = strlen(cmd->cmd_header); char endchar = _buffer[sl]; if (memcmp(cmd->cmd_header, _buffer, sl) == 0 && (endchar == '\0' || endchar == ' ' || endchar == '\t' || endchar == '\r' || endchar == '\n')) { if (endchar == ' ' || endchar == '\t') { sl += 1; } char* ptr = (char*)&(_buffer[sl]); cmd->handler_callback(cmd, ptr, _stream); if (this->_prompt != NULL) { this->_stream->write(this->_prompt, strlen(this->_prompt)); } this->_prev_char = c; _buff_idx = 0; _buffer[_buff_idx] = 0; return ret * -1; } } if (this->_unknown_reply != NULL) { if (_echo) { this->_stream->write("\r\n"); } this->_stream->write(this->_unknown_reply, strlen(this->_unknown_reply)); } this->_stream->write("\r\n"); this->_stream->write(this->_prompt, strlen(this->_prompt)); this->_prev_char = c; _buff_idx = 0; _buffer[_buff_idx] = 0; } else { if (_buff_idx > 0 && c == 0x08 && _echo) { // backspace _buff_idx -= 1; _buffer[_buff_idx] = 0; this->_prev_char = c; } else if ((_buff_idx + 1) < _buffer_size) { _buffer[_buff_idx] = c; _buff_idx += 1; _buffer[_buff_idx] = 0; this->_prev_char = c; } } } while (_stream->available() > 0 && _higher_priori); return ret; } void SerialCmdLine::print_prompt() { if (this->_prompt != NULL) { this->_stream->write(this->_prompt, strlen(this->_prompt)); } } ================================================ FILE: arduino_workspace/libraries/SerialCmdLine/SerialCmdLine.h ================================================ #ifndef _SERIALCMDLINE_H_ #define _SERIALCMDLINE_H_ #include #include #include #include #include #include typedef void (*cmd_handler_t)(void*, char*, Stream*); typedef struct { const char cmd_header[64]; cmd_handler_t handler_callback; } cmd_def_t; class SerialCmdLine { public: SerialCmdLine(Stream* stream_obj, cmd_def_t* user_cmd_list, bool local_echo, char* prompt, char* unknown_reply, bool higher_priori, uint32_t buffer_size); void print_prompt(void); int task(void); inline void set_echo(bool x) { this->_echo = x; }; protected: Stream* _stream; cmd_def_t* _cmd_list; bool _echo; char* _prompt; char* _unknown_reply; uint8_t* _buffer; uint32_t _buffer_size; uint32_t _buff_idx; char _prev_char; bool _higher_priori; }; #endif ================================================ FILE: arduino_workspace/libraries/SonyCameraInfraredRemote/SonyCameraInfraredRemote.cpp ================================================ #include "SonyCameraInfraredRemote.h" #include //#define USE_IRREMOTE #define USE_ESP32_RMT #ifdef USE_IRREMOTE #define USE_OPEN_DRAIN_OUTPUT_FOR_SEND_PIN #define SEND_PWM_BY_TIMER #define NO_DECODER #include #include #define IR_TX_PIN 9 //#define IR_TX_PIN 26 #endif #ifdef USE_ESP32_RMT #include "driver/rmt.h" #include "soc/rmt_reg.h" #define IR_TX_PIN GPIO_NUM_9 //#define IR_TX_PIN GPIO_NUM_26 #define RMT_CHANNEL RMT_CHANNEL_3 #define ACTIVE_VAL 0 #endif void SonyCamIr_Init() { #ifdef USE_IRREMOTE IrSender.begin(9); #endif #ifdef USE_ESP32_RMT rmt_config_t rmt_tx; rmt_tx.channel = RMT_CHANNEL; rmt_tx.gpio_num = IR_TX_PIN; rmt_tx.clk_div = 80; // 1 MHz, 1 us - we set up sampling to every 1 microseconds rmt_tx.mem_block_num = 2; rmt_tx.rmt_mode = RMT_MODE_TX; rmt_tx.tx_config.loop_en = false; rmt_tx.tx_config.carrier_duty_percent = 33; rmt_tx.tx_config.carrier_freq_hz = 40000; rmt_tx.tx_config.carrier_level = (ACTIVE_VAL == 0) ? RMT_CARRIER_LEVEL_LOW : RMT_CARRIER_LEVEL_HIGH; rmt_tx.tx_config.carrier_en = true; rmt_tx.tx_config.idle_level = (ACTIVE_VAL == 0) ? RMT_IDLE_LEVEL_HIGH : RMT_IDLE_LEVEL_LOW; rmt_tx.tx_config.idle_output_en = true; rmt_config(&rmt_tx); rmt_driver_install(rmt_tx.channel, 0, 0); rmt_tx_start(rmt_tx.channel, 1); SonyCamIr_SendRaw(0, 0); #endif } void SonyCamIr_SendRaw(uint16_t addr, uint8_t cmd) { #ifdef USE_IRREMOTE IrSender.sendSony(addr, cmd, 1, SONY_BITS_MAX); #endif #ifdef USE_ESP32_RMT uint32_t data; static rmt_item32_t rmtObjects[32]; uint8_t i, j; data = addr; data <<= 7; data &= 0xFFFF80; data |= cmd & 0x7F; rmtObjects[0].duration0 = 2400; rmtObjects[0].level0 = ACTIVE_VAL == 0 ? 0 : 1; rmtObjects[0].duration1 = 600; rmtObjects[0].level1 = ACTIVE_VAL == 0 ? 1 : 0; for (i = 1, j = 0; j < 20; i += 1, j += 1) { rmtObjects[i].duration0 = (((data & (1UL << j)) != 0) ? 2 : 1) * 600; rmtObjects[i].level0 = ACTIVE_VAL == 0 ? 0 : 1; rmtObjects[i].duration1 = 600; rmtObjects[i].level1 = ACTIVE_VAL == 0 ? 1 : 0; } rmt_write_items(RMT_CHANNEL, rmtObjects, i, true); #endif } void SonyCamIr_SendRawX(uint16_t addr, uint8_t cmd, uint8_t xtimes) { uint8_t i; for (i = 0; i < xtimes; i++) { SonyCamIr_SendRaw(addr, cmd); } } void SonyCamIr_SendRawBits(uint32_t data, uint8_t numbits, uint8_t xtimes) { uint8_t k; for (k = 0; k < xtimes; k++) { #ifdef USE_ESP32_RMT static rmt_item32_t rmtObjects[32]; uint8_t i, j; rmtObjects[0].duration0 = 2400; rmtObjects[0].level0 = ACTIVE_VAL == 0 ? 0 : 1; rmtObjects[0].duration1 = 600; rmtObjects[0].level1 = ACTIVE_VAL == 0 ? 1 : 0; for (i = 1, j = 0; j < numbits; i += 1, j += 1) { rmtObjects[i].duration0 = (((data & (1UL << j)) != 0) ? 2 : 1) * 600; rmtObjects[i].level0 = ACTIVE_VAL == 0 ? 0 : 1; rmtObjects[i].duration1 = 600; rmtObjects[i].level1 = ACTIVE_VAL == 0 ? 1 : 0; } rmt_write_items(RMT_CHANNEL, rmtObjects, i, true); #endif } } void SonyCamIr_Shoot() { SonyCamIr_SendRawX(IR_ADDR_SONYCAM, IR_CMD_SHOOT, 3); } void SonyCamIr_Shoot2S() { SonyCamIr_SendRawX(IR_ADDR_SONYCAM, IR_CMD_SHOOT_2S, 3); } void SonyCamIr_Movie() { SonyCamIr_SendRawX(IR_ADDR_SONYCAM, IR_CMD_MOVIE, 3); } ================================================ FILE: arduino_workspace/libraries/SonyCameraInfraredRemote/SonyCameraInfraredRemote.h ================================================ #ifndef _SonyCameraInfraredRemote_H_ #define _SonyCameraInfraredRemote_H_ #include #ifdef __cplusplus extern "C" { #endif // 20 bits, repeat 3 times #define IR_ADDR_SONYCAM 0x1E3A #define IR_CMD_SHOOT 0x2D #define IR_CMD_SHOOT_2S 0x37 #define IR_CMD_MOVIE 0x48 #define IR_CMD_ZOOM_TELE1 0x4A #define IR_CMD_ZOOM_WIDE1 0x4B #define IR_CMD_ZOOM_TELE2 0x4C #define IR_CMD_ZOOM_WIDE2 0x4D #define IR_CMD_MENU 0x38 #define IR_CMD_CENTER_BTN 0x39 #define IR_CMD_UP_BTN 0x3A #define IR_CMD_DOWN_BTN 0x3B #define IR_CMD_LEFT_BTN 0x3E #define IR_CMD_RIGHT_BTN 0x3F #define IR_CMD_PREVIEW 0x3C #define IR_CMD_DELETE 0x3D #define IR_CMD_PLAY 0x47 // the commands below are not divided into address and command, use the raw sending function // reverse engineered from Sony RMT-845 infrared remote control #define IR_CMD_RMT845_TCRESET 0x3D7D // 20 bits, repeat 5 times #define IR_CMD_RMT845_DATACODE 0x3D33 // 20 bits, repeat 5 times #define IR_CMD_RMT845_RECORD 0x3D30 // 20 bits, repeat 5 times #define IR_CMD_RMT845_SLOWLEFT 0x022D22 // 20 bits, repeat 5 times #define IR_CMD_RMT845_SLOWRIGHT 0x022D23 // 20 bits, repeat 5 times #define IR_CMD_RMT845_SCANLEFT 0x022D30 // 20 bits, repeat 5 times #define IR_CMD_RMT845_SCANRIGHT 0x022D31 // 20 bits, repeat 5 times #define IR_CMD_RMT845_PLAY 0x022D32 // 20 bits, repeat 5 times #define IR_CMD_RMT845_PAUSE 0x022D39 // 20 bits, repeat 5 times #define IR_CMD_RMT845_STOP 0x022D38 // 20 bits, repeat 5 times #define IR_CMD_RMT845_MODE 0x022D1B // 20 bits, repeat 5 times #define IR_CMD_RMT845_ENTER 0x022D0B // 20 bits, repeat 5 times #define IR_CMD_RMT845_DISPLAY 0x022D54 // 20 bits, repeat 5 times #define IR_CMD_RMT845_ARROWLEFT 0x022D7B // 20 bits, repeat 5 times #define IR_CMD_RMT845_ARROWRIGHT 0x022D7C // 20 bits, repeat 5 times #define IR_CMD_RMT845_ARROWUP 0x022D79 // 20 bits, repeat 5 times #define IR_CMD_RMT845_ARROWDOWN 0x022D7A // 20 bits, repeat 5 times #define IR_CMD_RMT845_ZOOMTELE 0x6C9A // 15 bits, repeat 5 times or until button release #define IR_CMD_RMT845_ZOOMWIDE 0x6C9B // 15 bits, repeat 5 times or until button release void SonyCamIr_Init(void); void SonyCamIr_Shoot(void); void SonyCamIr_Shoot2S(void); void SonyCamIr_Movie(void); void SonyCamIr_SendRaw(uint16_t addr, uint8_t cmd); void SonyCamIr_SendRawX(uint16_t addr, uint8_t cmd, uint8_t xtimes); void SonyCamIr_SendRawBits(uint32_t data, uint8_t numbits, uint8_t xtimes); #ifdef __cplusplus } #endif #endif ================================================ FILE: arduino_workspace/libraries/SonyHttpCamera/SonyHttpCamera.cpp ================================================ #include "SonyHttpCamera.h" DebuggingSerial* SonyHttpCamera::dbgser_important; DebuggingSerial* SonyHttpCamera::dbgser_states; DebuggingSerial* SonyHttpCamera::dbgser_events; DebuggingSerial* SonyHttpCamera::dbgser_rx; DebuggingSerial* SonyHttpCamera::dbgser_tx; DebuggingSerial* SonyHttpCamera::dbgser_devprop_dump; DebuggingSerial* SonyHttpCamera::dbgser_devprop_change; SonyHttpCamera::SonyHttpCamera() { tbl_iso = NULL; tbl_shutterspd = NULL; tbl_aperture = NULL; dbgser_important = new DebuggingSerial(&Serial); dbgser_states = new DebuggingSerial(&Serial); dbgser_events = new DebuggingSerial(&Serial); dbgser_rx = new DebuggingSerial(&Serial); dbgser_tx = new DebuggingSerial(&Serial); dbgser_devprop_dump = new DebuggingSerial(&Serial); dbgser_devprop_change = new DebuggingSerial(&Serial); dbgser_important->enabled = false; dbgser_states-> enabled = true; dbgser_events-> enabled = false; dbgser_rx-> enabled = false; dbgser_tx-> enabled = false; dbgser_devprop_dump-> enabled = false; dbgser_devprop_change->enabled = false; begin(0); } void SonyHttpCamera::begin(uint32_t ip, WiFiUDP* sock) { uint32_t now = millis(); need_disconnect = false; ip_addr = ip; ssdp_udp = sock; init_retries = 0; error_cnt = 0; event_api_version = 3; is_movierecording_v = false; is_manuallyfocused_v = 0; is_focused = false; has_focus_status = false; req_id = 1; rx_buff_idx = 0; if (rx_buff == NULL) { rx_buff_size = 1024 * 6; rx_buff = (char*)malloc(rx_buff_size); // rx_buff could be shared if assigned before begin is called } rx_buff[0] = 0; url_buffer[0] = 0; last_poll_time = 0; if (state != SHCAMSTATE_FORBIDDEN && ip != 0) { state = SHCAMSTATE_WAIT; state_after_wait = SHCAMSTATE_CONNECTING; start_time = now; wait_until = now + 1000; dbgser_states->printf("httpcam hello IP %08X\r\n", ip); } else if (ip == 0) { state = SHCAMSTATE_NONE; } zoom_state = 0; zoom_time = 0; poll_delay = 500; if (state != SHCAMSTATE_FORBIDDEN && ip != 0) { if (tbl_iso != NULL) { free(tbl_iso); tbl_iso = NULL; } if (tbl_shutterspd != NULL) { free(tbl_shutterspd); tbl_shutterspd = NULL; } if (tbl_aperture != NULL) { free(tbl_aperture); tbl_aperture = NULL; } str_aperture_prev[0] = 0; } } void SonyHttpCamera::force_disconnect(void) { need_disconnect = true; } bool SonyHttpCamera::parse_event(char* data, int32_t maxlen) { char res_buff[64] = {0}; signed int i, j, k; bool ret = false; bool found; if (maxlen <= 0) { maxlen = rx_buff_idx; } found = scan_json_for_key(rx_buff, maxlen, "cameraStatus", &i, &j, (char*)res_buff, 64); if (found) { is_movierecording_v = (memcmp(res_buff, "Movie", 5) == 0); is_sortofbusy = (memcmp(res_buff, "IDLE", 4) != 0 && memcmp(res_buff, "idle", 4) != 0); dbgser_devprop_dump->printf("httpcam event key \"cameraStatus\" = \"%s\"\r\n", res_buff); ret |= true; event_found_flag |= (1 << 0); } found = scan_json_for_key(rx_buff, maxlen, "focusStatus", &i, &j, (char*)res_buff, 64); if (found) { strcpy(str_focusstatus, res_buff); dbgser_devprop_dump->printf("httpcam event key \"focusStatus\" = \"%s\"\r\n", res_buff); is_focused = (memcmp(res_buff, "Focused", 7) == 0); has_focus_status = true; ret |= true; event_found_flag |= (1 << 1); } found = scan_json_for_key(rx_buff, maxlen, "currentIsoSpeedRate", &i, &j, (char*)res_buff, 64); if (found && strlen(res_buff) > 0) { strcpy(str_iso, res_buff); dbgser_devprop_dump->printf("httpcam event key \"currentIsoSpeedRate\" = \"%s\"\r\n", res_buff); ret |= true; event_found_flag |= (1 << 2); } if (tbl_iso == NULL) { found = scan_json_for_key(rx_buff, maxlen, "isoSpeedRateCandidates", &i, &j, NULL, 0); if (found) { k = j - i + 3; tbl_iso = (char*)malloc(k); found = scan_json_for_key(rx_buff, maxlen, "isoSpeedRateCandidates", &i, &j, (char*)tbl_iso, k - 1); dbgser_devprop_dump->printf("httpcam event key \"isoSpeedRateCandidates\" = \"%s\"\r\n", tbl_iso); ret |= true; event_found_flag |= (1 << 3); } } found = scan_json_for_key(rx_buff, maxlen, "currentShutterSpeed", &i, &j, (char*)res_buff, 64); if (found && strlen(res_buff) > 0) { strcpy(str_shutterspd, res_buff); strcpy_no_slash(str_shutterspd_clean, str_shutterspd); dbgser_devprop_dump->printf("httpcam event key \"currentShutterSpeed\" = \"%s\"\r\n", res_buff); ret |= true; event_found_flag |= (1 << 4); } if (tbl_shutterspd == NULL) { found = scan_json_for_key(rx_buff, maxlen, "shutterSpeedCandidates", &i, &j, NULL, 0); if (found) { k = j - i + 3; tbl_shutterspd = (char*)malloc(k); found = scan_json_for_key(rx_buff, maxlen, "shutterSpeedCandidates", &i, &j, (char*)tbl_shutterspd, k - 1); dbgser_devprop_dump->printf("httpcam event key \"shutterSpeedCandidates\" = \"%s\"\r\n", tbl_shutterspd); ret |= true; event_found_flag |= (1 << 5); } } bool aperture_changed = false; found = scan_json_for_key(rx_buff, maxlen, "currentFNumber", &i, &j, (char*)res_buff, 64); if (found && strlen(res_buff) > 0) { strcpy(str_aperture, res_buff); dbgser_devprop_dump->printf("httpcam event key \"currentFNumber\" = \"%s\"\r\n", res_buff); ret |= true; if (strcmp(str_aperture, str_aperture_prev) != 0) { aperture_changed = true; } strcpy(str_aperture_prev, str_aperture); } if (tbl_aperture == NULL || aperture_changed) { found = scan_json_for_key(rx_buff, maxlen, "fNumberCandidates", &i, &j, NULL, 0); if (found) { k = j - i + 3; if (tbl_aperture == NULL) { tbl_aperture = (char*)malloc(k * 3); } found = scan_json_for_key(rx_buff, maxlen, "fNumberCandidates", &i, &j, (char*)tbl_aperture, k - 1); dbgser_devprop_dump->printf("httpcam event key \"fNumberCandidates\" = \"%s\"\r\n", tbl_aperture); ret |= true; } } found = scan_json_for_key(rx_buff, maxlen, "currentExposureCompensation", &i, &j, (char*)res_buff, 64); if (found && strlen(res_buff) > 0) { strcpy(str_expocomp, res_buff); // the expo compensation string requires a bit of cleanup int z = strlen(str_expocomp) - 1; for (; z > 0; z--) { char zc = str_expocomp[z]; if ((zc < '0' || zc > '9') && zc != '-' && zc != '+' && zc != '.') { str_expocomp[z] = 0; } else { break; // no need to clean up valid characters } } expocomp = atoi(str_expocomp) * 333; // this converts it into the same units that PTP mode uses dbgser_devprop_dump->printf("httpcam event key \"currentExposureCompensation\" = \"%s\"\r\n", res_buff); ret |= true; } found = scan_json_for_key(rx_buff, maxlen, "currentExposureMode", &i, &j, (char*)res_buff, 64); if (found && strlen(res_buff) > 0) { strcpy(str_expomode, res_buff); dbgser_devprop_dump->printf("httpcam event key \"currentExposureMode\" = \"%s\"\r\n", res_buff); ret |= true; } found = scan_json_for_key(rx_buff, maxlen, "currentFocusMode", &i, &j, (char*)res_buff, 64); if (found && strlen(res_buff) > 0) { // warning, it seems like this item is missing, even from my a6600 is_manuallyfocused_v = (memcmp(res_buff, "AF" , 2) == 0) ? SHCAM_FOCUSMODE_AF : is_manuallyfocused_v; is_manuallyfocused_v = (memcmp(res_buff, "MF" , 2) == 0) ? SHCAM_FOCUSMODE_MF : is_manuallyfocused_v; is_manuallyfocused_v = (memcmp(res_buff, "DMF", 3) == 0) ? SHCAM_FOCUSMODE_MF : is_manuallyfocused_v; if (is_manuallyfocused_v == SHCAM_FOCUSMODE_AF) { strcpy(str_afmode, res_buff); } dbgser_devprop_dump->printf("httpcam event key \"currentFocusMode\" = \"%s\"\r\n", res_buff); ret |= true; event_found_flag |= (1 << 6); } found = scan_json_for_key(rx_buff, maxlen, "currentShootMode", &i, &j, (char*)res_buff, 64); if (found && strlen(res_buff) > 0) { if (memcmp("still", res_buff, 5) == 0) { shoot_mode == SHOOTMODE_STILLS; } else if (memcmp("movie", res_buff, 5) == 0) { shoot_mode == SHOOTMODE_MOVIE; } dbgser_devprop_dump->printf("httpcam event key \"currentShootMode\" = \"%s\"\r\n", res_buff); ret |= true; event_found_flag |= (1 << 7); } found = scan_json_for_key(rx_buff, maxlen, "error", &i, &j, (char*)res_buff, 64); if (found) { dbgser_devprop_dump->printf("httpcam event key \"res_buff\" = \"%s\"\r\n", res_buff); int eno; if (parse_json_err_num((const char*)res_buff, &eno)) { // check error number, 14 means unsupported, downgrade the version number for event fetching if (eno == 14 && event_api_version > 0) { event_api_version--; } } } else { if (event_found_flag != 0) { critical_error_cnt = 0; error_cnt = 0; } } #if 0 dbgser_devprop_dump->printf(rx_buff); dbgser_devprop_dump->println(); #endif return ret; } void SonyHttpCamera::get_event() { rx_buff_idx = 0; event_found_flag = 0; sprintf(cmd_buffer, "{ \"method\": \"getEvent\", \"params\": [false], \"id\": %u, \"version\": \"1.%u\" }", req_id, event_api_version); dbgser_tx->printf("httpcam get_event json: %s\r\n", cmd_buffer); cmd_send(cmd_buffer, NULL, false); req_id++; state = SHCAMSTATE_POLLING + 1; last_poll_time = millis(); } void SonyHttpCamera::poll() { yield(); if (state == SHCAMSTATE_POLLING + 1) { bool no_len = http_content_len < 0; WiFiClient* cli = NULL; if (httpclient.connected()) { cli = httpclient.getStreamPtr(); int avail; while ((avail = cli->available()) > 0) { int r = read_in_chunk(cli, avail, rx_buff, &rx_buff_idx); if (http_content_len >= 0) { http_content_len -= r; } if (r == 0) { break; } //parse_event(rx_buff, rx_buff_idx); } //dbgser_states->printf("httpcam event read with rem=%d\r\n", http_content_len); } if ((no_len && httpclient.connected() == false) || (no_len == false && http_content_len <= 0) || httpclient.connected() == false) { dbgser_rx->println(); parse_event(rx_buff, rx_buff_idx); if (cli != NULL) { while (cli->available() > 0) { cli->read(); } } if (httpclient.connected()) { httpclient.end(); } dbgser_states->printf("httpcam finalizing poll, evt 0x%08X\r\n", event_found_flag); state = SHCAMSTATE_POLLING; } } } void SonyHttpCamera::task() { if (state == SHCAMSTATE_FORBIDDEN) { return; } if (need_disconnect) { begin(0); return; } uint32_t now = millis(); poll(); if (state == SHCAMSTATE_WAIT && state_after_wait == SHCAMSTATE_CONNECTING && now < wait_until && ip_addr != 0) { // this poll is before SSDP queries are sent ssdp_poll(ssdp_udp); return; } if (state == SHCAMSTATE_WAIT && now >= wait_until) { state = state_after_wait; if (state == SHCAMSTATE_CONNECTING && ip_addr != 0) { dbgser_states->println("httpcam starting SSDP"); if (ssdp_udp == NULL) { ssdp_udp = new WiFiUDP(); } ssdp_start(ssdp_udp); state = SHCAMSTATE_INIT_SSDP; wait_until = now + 2000; init_retries = 0; return; } } if (state == SHCAMSTATE_INIT_SSDP) { // this poll is after SSDP queries are sent ssdp_poll(ssdp_udp); } if (state == SHCAMSTATE_INIT_GETDD && init_retries > 0) { get_dd_xml(); } if (state == SHCAMSTATE_INIT_GOTDD) { #if 0 state = SHCAMSTATE_INIT_ACCESSCONTROL; #else //state = SHCAMSTATE_INIT_GETVERSION; state = SHCAMSTATE_INIT_STARTRECMODE; #endif init_retries = 0; } if ((state == SHCAMSTATE_INIT_ACCESSCONTROL || state == SHCAMSTATE_INIT_GETVERSION || state == SHCAMSTATE_INIT_GETAPILIST || state == SHCAMSTATE_INIT_STARTRECMODE || state == SHCAMSTATE_INIT_SETCAMFUNC) && (state & 1) == 0) { bool success; #if 0 if (state == SHCAMSTATE_INIT_ACCESSCONTROL) { sprintf(cmd_buffer, "{\"version\": \"1.0\", \"params\": [{\"developerName\": \"\", \"sg\": \"\", \"methods\": \"\", \"developerID\": \"\"}], \"method\": \"actEnableMethods\", \"id\": %u}", req_id); success = cmd_send(cmd_buffer, access_url, true); endif req_id++; dbgser_tx->printf("httpcam init accessControl\r\n"); } else #endif if (state == SHCAMSTATE_INIT_GETVERSION) { sprintf(cmd_buffer, cmd_generic_fmt, "getVersions", req_id); success = cmd_send(cmd_buffer); req_id++; dbgser_tx->printf("httpcam init getVersions\r\n"); } else if (state == SHCAMSTATE_INIT_GETAPILIST) { sprintf(cmd_buffer, cmd_generic_fmt, "getAvailableApiList", req_id); success = cmd_send(cmd_buffer); req_id++; dbgser_tx->printf("httpcam init getAvailableApiList\r\n"); } else if (state == SHCAMSTATE_INIT_STARTRECMODE) { sprintf(cmd_buffer, cmd_generic_fmt, "startRecMode", req_id); success = cmd_send(cmd_buffer); req_id++; dbgser_tx->printf("httpcam init startRecMode\r\n"); } else if (state == SHCAMSTATE_INIT_SETCAMFUNC) { sprintf(cmd_buffer, cmd_generic_fmt, "cameraFunction", req_id); success = cmd_send(cmd_buffer); req_id++; dbgser_tx->printf("httpcam init cameraFunction\r\n"); } if (success) { state += 2; dbgser_states->printf("httpcam init next state %u\r\n", state); } else { init_retries++; if (init_retries > 2) { state += 2; dbgser_states->printf("httpcam init err %d, giving up, next state %u\r\n", last_http_resp_code, state); init_retries = 0; } else { dbgser_states->printf("httpcam init err %d, state %u, try %u\r\n", last_http_resp_code, state, init_retries); } } last_poll_time = millis(); } if ((state > SHCAMSTATE_INIT_DONE1 && state < SHCAMSTATE_POLLING) && (state & 1) == 0) { dbgser_states->print("httpcam performing first getEvent\r\n"); get_event(); } if ((state == SHCAMSTATE_READY || state == SHCAMSTATE_POLLING)) { if ((now - last_poll_time) > poll_delay) { get_event(); } else if ((now - zoom_time) > 5000 && zoom_time != 0 && zoom_state != 0) { cmd_ZoomStop(); } } if (error_cnt > 10) { state = SHCAMSTATE_FAILED; if (cb_onDisconnect != NULL) { cb_onDisconnect(); } } } void SonyHttpCamera::wait_while_saving(uint32_t min_wait, uint32_t max_wait_get, uint32_t max_wait_save) { uint32_t start_time = millis(); uint32_t now = start_time; while (((now - start_time) < max_wait_get) || ((now - start_time) < min_wait && min_wait > 0)) { now = millis(); task(); if (is_sortofbusy) { break; } } if (is_sortofbusy) { while ((now - start_time) < max_wait_save || ((now - start_time) < min_wait && min_wait > 0)) { now = millis(); task(); if (is_sortofbusy == false) { break; } } } } void SonyHttpCamera::set_debugflags(uint32_t x) { debug_flags = x; dbgser_states-> enabled = ((x & DEBUGFLAG_STATES ) != 0); dbgser_events-> enabled = ((x & DEBUGFLAG_EVENTS ) != 0); dbgser_rx-> enabled = ((x & DEBUGFLAG_RX ) != 0); dbgser_tx-> enabled = ((x & DEBUGFLAG_TX ) != 0); dbgser_devprop_dump-> enabled = ((x & DEBUGFLAG_DEVPROP_DUMP ) != 0); dbgser_devprop_change->enabled = ((x & DEBUGFLAG_DEVPROP_CHANGE) != 0); } void SonyHttpCamera::test_debug_msg(const char* s) { dbgser_states->print(s); } ================================================ FILE: arduino_workspace/libraries/SonyHttpCamera/SonyHttpCamera.h ================================================ #ifndef _SONYHTTPCAMERA_H_ #define _SONYHTTPCAMERA_H_ #include #include #include #include #include #include #include #include #define SHCAM_RXBUFF_UNIT 64 #ifndef DEFAULT_BUSY_TIMEOUT #define DEFAULT_BUSY_TIMEOUT 5000 #endif #define SHCAM_NEED_ENTER_MOVIE_MODE enum { SHCAMSTATE_NONE = 0, SHCAMSTATE_WAIT = 1, SHCAMSTATE_CONNECTING = 2, SHCAMSTATE_INIT_SSDP = 4, SHCAMSTATE_INIT_GETDD = 5, SHCAMSTATE_INIT_GOTDD = 6, SHCAMSTATE_INIT_ACCESSCONTROL = 8, SHCAMSTATE_INIT_GETVERSION = 10, SHCAMSTATE_INIT_GETAPILIST = 12, SHCAMSTATE_INIT_STARTRECMODE = 14, SHCAMSTATE_INIT_SETCAMFUNC = 16, SHCAMSTATE_INIT_DONE1, SHCAMSTATE_INIT_DONE2 = 20, SHCAMSTATE_READY = 22, SHCAMSTATE_POLLING = 24, SHCAMSTATE_COMMANDING = 26, SHCAMSTATE_FAILED = 0x80, SHCAMSTATE_DISCONNECTED = 0x81, SHCAMSTATE_FORBIDDEN = 0x82, }; enum { DEBUGFLAG_NONE = 0x00, DEBUGFLAG_STATES = 0x01, DEBUGFLAG_EVENTS = 0x02, DEBUGFLAG_RX = 0x04, DEBUGFLAG_TX = 0x08, DEBUGFLAG_DEVPROP_DUMP = 0x10, DEBUGFLAG_DEVPROP_CHANGE = 0x20, }; enum { SHOOTMODE_STILLS, SHOOTMODE_MOVIE, }; enum { SHCAM_FOCUSMODE_NONE = 0, SHCAM_FOCUSMODE_MF, SHCAM_FOCUSMODE_AF, }; bool scan_json_for_key(char* data, int32_t datalen, const char* keystr, signed int* start_idx, signed int* end_idx, char* tgt, int tgtlen); int count_commas(char* data); void strcpy_no_slash(char* dst, char* src); bool get_txt_within_strtbl(char* tbl, int idx, char* tgt); int get_idx_within_strtbl(char* tbl, char* needle); uint32_t parse_shutter_speed_str(char* s); bool parse_json_err_num(const char* data, int* outnum); class SonyHttpCamera { public: SonyHttpCamera(); void begin(uint32_t ip, WiFiUDP* udpsock = NULL); void poll(void); void task(void); inline uint32_t getIp (void) { return ip_addr; }; inline char* getCameraName (void) { return friendly_name; }; inline uint8_t getState (void) { return state; }; inline bool canSend (void) { return state >= SHCAMSTATE_READY && (state & 1) == 0; }; inline bool isOperating (void) { return state >= SHCAMSTATE_READY && state < SHCAMSTATE_FAILED; }; inline bool canNewConnect (void) { return state == SHCAMSTATE_NONE || state == SHCAMSTATE_FAILED || state == SHCAMSTATE_DISCONNECTED; }; inline void setForbidden (void) { state = SHCAMSTATE_FORBIDDEN; } void force_disconnect(void); virtual void wait_while_saving(uint32_t min_wait, uint32_t max_wait_get, uint32_t max_wait_save); inline int getPollDelay (void) { return poll_delay; }; inline void setPollDelay (uint32_t x) { poll_delay = x; }; inline void setPollDelaySlow(void) { poll_delay = 500; }; inline bool is_movierecording (void) { return is_movierecording_v; }; inline uint8_t is_manuallyfocused(void) { return is_manuallyfocused_v; }; bool is_focused; inline bool is_moviemode (void) { return shoot_mode == SHOOTMODE_MOVIE; }; inline bool need_wait_af (void) { return has_focus_status && is_manuallyfocused_v == SHCAM_FOCUSMODE_AF; }; inline char* getLiveviewUrl(void) { return liveview_url; }; void disconnect(void) { state = SHCAMSTATE_DISCONNECTED; }; void wait_while_busy(uint32_t min_wait, uint32_t max_wait, volatile bool* exit_signal = NULL); void (*cb_onConnect)(void) = NULL; void (*cb_onDisconnect)(void) = NULL; void (*cb_onCriticalError)(void) = NULL; void (*cb_onNoServiceUrl)(void) = NULL; uint32_t critical_error_cnt = 0; char* tbl_shutterspd = NULL; char* tbl_iso = NULL; char* tbl_aperture = NULL; void borrowBuffer(char*, uint32_t); inline void set_ssdpTimeout(uint32_t x) { ssdp_allowed_time = x; }; virtual void set_debugflags(uint32_t x); uint32_t debug_flags; void test_debug_msg(const char*); protected: uint32_t ip_addr; uint8_t state, state_after_wait; uint32_t req_id; uint32_t wait_until; uint32_t start_time; uint32_t ssdp_allowed_time = 5; bool need_disconnect = false; char friendly_name[256]; char service_url[256]; char access_url[256]; char url_buffer[256]; char cmd_buffer[256]; char* liveview_url; char* rx_buff = NULL; uint32_t rx_buff_idx; static uint32_t rx_buff_size; HTTPClient httpclient; int32_t http_content_len; static int read_in_chunk(WiFiClient* stream, int32_t chunk, char* buff, uint32_t* buff_idx); WiFiUDP* ssdp_udp; uint32_t init_retries; uint32_t error_cnt; uint8_t event_api_version; int last_http_resp_code; uint32_t last_poll_time; uint32_t poll_delay; char str_shutterspd[32]; char str_shutterspd_clean[32]; char str_iso[32]; char str_focusstatus[32]; char str_afmode[32]; char str_aperture[32]; char str_aperture_prev[32]; char str_expocomp[32]; char str_expomode[32]; int expocomp; bool is_sortofbusy; int8_t zoom_state; uint32_t zoom_time; bool is_movierecording_v; uint8_t is_manuallyfocused_v; uint8_t shoot_mode; bool has_focus_status; bool parse_event(char* data, int32_t maxlen = 0); void parse_dd_xml(char* data, int32_t maxlen = 0); void get_event(void); void get_dd_xml(void); uint32_t event_found_flag; void ssdp_start(WiFiUDP* sock); bool ssdp_checkurl(WiFiUDP* sock); bool ssdp_poll(WiFiUDP* sock); void cmd_prep(void); bool cmd_send(char* data, char* alt_url = NULL, bool callend = true); static const char cmd_generic_fmt[]; static const char cmd_generic_strparam_fmt[]; static const char cmd_generic_strintparam_fmt[]; static const char cmd_generic_strfloatparam_fmt[]; static const char cmd_generic_intparam_fmt[]; static const char cmd_generic_floatparam_fmt[]; static const char cmd_zoom_fmt[]; static DebuggingSerial* dbgser_important; static DebuggingSerial* dbgser_states; static DebuggingSerial* dbgser_events; static DebuggingSerial* dbgser_rx; static DebuggingSerial* dbgser_tx; static DebuggingSerial* dbgser_devprop_dump; static DebuggingSerial* dbgser_devprop_change; public: inline char* get_shutterspd_str (void) { return str_shutterspd_clean; }; inline uint32_t get_shutterspd_32 (void) { return parse_shutter_speed_str(str_shutterspd_clean); }; inline int get_shutterspd_idx (void) { return (tbl_shutterspd != NULL) ? get_idx_within_strtbl(tbl_shutterspd, str_shutterspd) : -1; }; inline char* get_iso_str (void) { return str_iso; }; inline int get_iso_idx (void) { return (tbl_iso != NULL) ? get_idx_within_strtbl(tbl_iso, str_iso) : -1; }; inline char* get_aperture_str (void) { return str_aperture; }; inline int get_aperture_idx (void) { return (tbl_aperture != NULL) ? get_idx_within_strtbl(tbl_aperture, str_aperture) : -1; }; uint32_t get_another_shutterspd(int idx, char* tgt); inline char* get_str_afmode (void) { return str_afmode ; }; inline char* get_str_aperture(void) { return str_aperture; }; inline char* get_str_expocomp(void) { return str_expocomp; }; inline char* get_str_expomode(void) { return str_expomode; }; inline int get_expocomp (void) { return expocomp; }; void cmd_Shoot(void); void cmd_MovieRecord(bool is_start); void cmd_MovieRecordToggle(void); void cmd_ZoomStart(int dir); void cmd_ZoomStop(void); void cmd_FocusPointSet16(int16_t x, int16_t y); void cmd_FocusPointSetF(float x, float y); void cmd_ShutterSpeedSetStr(char*); // input parameter must match string from "shutterSpeedCandidates" void cmd_IsoSet(uint32_t x); // input parameter must match format from PTP mode void cmd_IsoSetStr(char*); // input parameter must match string from "isoSpeedRateCandidates" void cmd_ApertureSet(float x); // input parameter must match string from "fNumberCandidates" after string formatting with "%0.1f" void cmd_ApertureSet32(uint32_t x); // input parameter must match format from PTP mode void cmd_ApertureSetStr(char*); // input parameter must match string from "fNumberCandidates" void cmd_ExpoCompSet32(int32_t x); // input parameter must match format from PTP mode void cmd_ExpoCompSetIdx(int32_t x); // input parameter is a signed integer number, each step represents 1/3 of a stop void cmd_ManualFocusMode(bool onoff, bool precheck = false); void cmd_ManualFocusToggle(bool onoff); void cmd_AutoFocus(bool onoff); #ifdef SHCAM_NEED_ENTER_MOVIE_MODE void cmd_MovieMode(bool onoff); #endif }; #endif ================================================ FILE: arduino_workspace/libraries/SonyHttpCamera/SonyHttpCameraCmds.cpp ================================================ #include "SonyHttpCamera.h" const char SonyHttpCamera::cmd_generic_fmt[] = "{ \"method\": \"%s\", \"params\": [], \"id\": %u, \"version\": \"1.0\" }"; const char SonyHttpCamera::cmd_generic_strparam_fmt[] = "{ \"method\": \"%s\", \"params\": [\"%s\"], \"id\": %u, \"version\": \"1.0\" }"; const char SonyHttpCamera::cmd_generic_strintparam_fmt[] = "{ \"method\": \"%s\", \"params\": [\"%d\"], \"id\": %u, \"version\": \"1.0\" }"; const char SonyHttpCamera::cmd_generic_strfloatparam_fmt[] = "{ \"method\": \"%s\", \"params\": [\"%0.1f\"], \"id\": %u, \"version\": \"1.0\" }"; const char SonyHttpCamera::cmd_generic_intparam_fmt[] = "{ \"method\": \"%s\", \"params\": [%d], \"id\": %u, \"version\": \"1.0\" }"; const char SonyHttpCamera::cmd_generic_floatparam_fmt[] = "{ \"method\": \"%s\", \"params\": [%0.1f], \"id\": %u, \"version\": \"1.0\" }"; const char SonyHttpCamera::cmd_zoom_fmt[] = "{ \"method\": \"actZoom\", \"params\": [\"%s\",\"%s\"], \"id\": %u, \"version\": \"1.0\" }"; void SonyHttpCamera::cmd_prep(void) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT, NULL); } bool SonyHttpCamera::cmd_send(char* cmd, char* alt_url, bool callend) { dbgser_tx->printf("httpcam cmd %s\r\n", cmd); httpclient.begin(alt_url == NULL ? service_url : alt_url); httpclient.addHeader("Content-Type", "application/json"); last_http_resp_code = httpclient.POST(cmd); bool success = last_http_resp_code == 200; http_content_len = httpclient.getSize(); if (callend) { #if 0 WiFiClient* cli = httpclient.getStreamPtr(); if (cli != NULL) { dbgser_rx->print("cmd resp: "); while (cli->available() > 0) { dbgser_rx->write(cli->read()); } dbgser_rx->println(); } #endif httpclient.end(); } else { state |= 1; } return success; } void SonyHttpCamera::cmd_Shoot(void) { cmd_prep(); sprintf(cmd_buffer, cmd_generic_fmt, "actTakePicture", req_id); cmd_send(cmd_buffer); req_id++; } void SonyHttpCamera::cmd_MovieRecord(bool is_start) { cmd_prep(); sprintf(cmd_buffer, cmd_generic_fmt, is_start ? "startMovieRec" : "stopMovieRec", req_id); cmd_send(cmd_buffer); req_id++; is_movierecording_v = is_start; #ifdef SHCAM_NEED_ENTER_MOVIE_MODE if (is_start == false && shoot_mode == SHOOTMODE_MOVIE) { cmd_MovieMode(false); } #endif } void SonyHttpCamera::cmd_MovieRecordToggle(void) { cmd_MovieRecord(is_movierecording_v == false); } #ifdef SHCAM_NEED_ENTER_MOVIE_MODE void SonyHttpCamera::cmd_MovieMode(bool onoff) { cmd_prep(); sprintf(cmd_buffer, cmd_generic_strparam_fmt, "setShootMode", onoff ? "movie" : "still", req_id); cmd_send(cmd_buffer); req_id++; shoot_mode = onoff ? SHOOTMODE_MOVIE : SHOOTMODE_STILLS; } #endif void SonyHttpCamera::cmd_ZoomStart(int dir) { if (zoom_state == 0) { if (dir != 0) { cmd_prep(); sprintf(cmd_buffer, cmd_zoom_fmt, dir > 0 ? "in" : "out", "start", req_id); cmd_send(cmd_buffer); req_id++; zoom_time = millis(); } else { cmd_ZoomStop(); } zoom_state = dir; } else if ((zoom_state > 0 && dir < 0) || (zoom_state < 0 && dir > 0)) { cmd_ZoomStop(); cmd_ZoomStart(dir); } else if ((zoom_state * dir) > 0) { zoom_time = millis(); } else if (dir == 0) { cmd_ZoomStop(); } } void SonyHttpCamera::cmd_ZoomStop(void) { wait_while_busy(0, DEFAULT_BUSY_TIMEOUT * 5, NULL); cmd_prep(); sprintf(cmd_buffer, cmd_zoom_fmt, zoom_state > 0 ? "in" : "out", "stop", req_id); cmd_send(cmd_buffer); req_id++; zoom_state = 0; zoom_time = 0; } void SonyHttpCamera::cmd_FocusPointSet16(int16_t x, int16_t y) { float xx = x; float yy = y; xx *= 100; yy *= 100; xx /= 639; yy /= 480; cmd_FocusPointSetF(xx, yy); } void SonyHttpCamera::cmd_FocusPointSetF(float x, float y) { cmd_prep(); sprintf(cmd_buffer, "{\"method\": \"setTouchAFPosition\", \"params\": [%0.1f, %0.1f], \"id\": %u, \"version\": \"1.0\"}", x, y, req_id); cmd_send(cmd_buffer); req_id++; } void SonyHttpCamera::cmd_ShutterSpeedSetStr(char* s) { cmd_prep(); int slen = strlen(s); char* tmp = (char*)malloc(strlen(s) + 3); strcpy(tmp, s); if (s[slen - 1] == '"' && s[slen - 2] != '\\') { tmp[slen - 1] = '\\'; tmp[slen - 0] = '"'; tmp[slen + 1] = 0; } sprintf(cmd_buffer, cmd_generic_strparam_fmt, "setShutterSpeed", tmp, req_id); free(tmp); cmd_send(cmd_buffer); req_id++; } void SonyHttpCamera::cmd_IsoSet(uint32_t x) { if (x == 0 || x == 0xFFFFFF) { cmd_IsoSetStr((char*)"AUTO"); return; } x &= 0xFFFFFF; cmd_prep(); sprintf(cmd_buffer, cmd_generic_strintparam_fmt, "setIsoSpeedRate", x, req_id); cmd_send(cmd_buffer); req_id++; } void SonyHttpCamera::cmd_IsoSetStr(char* s) { cmd_prep(); sprintf(cmd_buffer, cmd_generic_strparam_fmt, "setIsoSpeedRate", s, req_id); cmd_send(cmd_buffer); req_id++; } void SonyHttpCamera::cmd_ApertureSet(float x) { cmd_prep(); sprintf(cmd_buffer, cmd_generic_strfloatparam_fmt, "setFNumber", x, req_id); cmd_send(cmd_buffer); req_id++; } void SonyHttpCamera::cmd_ApertureSet32(uint32_t x) { float fx = x; fx /= 100.0; cmd_ApertureSet(fx); } void SonyHttpCamera::cmd_ApertureSetStr(char* s) { cmd_prep(); sprintf(cmd_buffer, cmd_generic_strparam_fmt, "setFNumber", s, req_id); cmd_send(cmd_buffer); req_id++; } void SonyHttpCamera::cmd_ExpoCompSetIdx(int32_t x) { cmd_prep(); sprintf(cmd_buffer, cmd_generic_strintparam_fmt, "setExposureCompensation", x, req_id); cmd_send(cmd_buffer); req_id++; } void SonyHttpCamera::cmd_ExpoCompSet32(int32_t x) { float fx = x; fx /= 333.3; cmd_ExpoCompSetIdx((int32_t)lround(fx)); } void SonyHttpCamera::cmd_ManualFocusMode(bool onoff, bool precheck) { if (precheck) { bool already_on = is_manuallyfocused_v; if ((already_on && onoff) || (!already_on && !onoff)) { return; } } cmd_prep(); if (strlen(str_afmode) <= 0) { sprintf(str_afmode, "AF-C"); } sprintf(cmd_buffer, cmd_generic_strparam_fmt, "setFocusMode", onoff ? "MF" : str_afmode, req_id); cmd_send(cmd_buffer); is_manuallyfocused_v = onoff; } void SonyHttpCamera::cmd_ManualFocusToggle(bool onoff) { cmd_ManualFocusMode(onoff == false, false); } void SonyHttpCamera::cmd_AutoFocus(bool onoff) { cmd_prep(); sprintf(cmd_buffer, cmd_generic_fmt, onoff ? "actHalfPressShutter" : "cancelHalfPressShutter", req_id); cmd_send(cmd_buffer); } ================================================ FILE: arduino_workspace/libraries/SonyHttpCamera/SonyHttpCameraInit.cpp ================================================ #include "SonyHttpCamera.h" void SonyHttpCamera::parse_dd_xml(char* data, int32_t maxlen) { int32_t i, j, k; int32_t slen = maxlen; if (maxlen <= 0) { slen = strlen(data); } dbgser_rx->printf("dd.xml data %u:\r\n", slen); dbgser_rx->print(data); dbgser_rx->print("\r\n"); char c; bool hasName = false; char keyFriendlyName[] = ""; int32_t keyLen = strlen(keyFriendlyName); for (i = 0; i < slen - keyLen; i++) { if (memcmp(&(data[i]), keyFriendlyName, keyLen) == 0) { dbgser_states->printf("found friendly name idx %u\r\n", i); i += keyLen; for (k = 0; i < slen - keyLen; i++, k++) { c = data[i]; if (c == '<' && data[i + 1] == '/') { friendly_name[k] = 0; hasName = true; break; } else { friendly_name[k] = c; } } i += keyLen; break; } } if (hasName == false) { i = 0; } bool hasUrl = false; char keySrvTypeCam[] = "X_ScalarWebAPI_ServiceType>cameraprintf("found ServiceType idx %u\r\n", i); i += keyLen; char keyActionListUrl[] = "ActionList_URL>http://"; keyLen = strlen(keyActionListUrl); for (; i < slen - keyLen && hasUrl == false; i++) { if (memcmp(&(data[i]), keyActionListUrl, keyLen) == 0) { printf("found ActionList_URL idx %u\r\n", i); i += keyLen - 7; for (k = 0; i < slen - keyLen; i++, k++) { c = data[i]; if (c == '<' && data[i + 1] == '/') { strcpy(access_url, service_url); sprintf((char*)(&service_url[k]),"/camera"); sprintf((char*)(&access_url[k]),"/accessControl"); hasUrl = true; break; } else { service_url[k] = c; service_url[k + 1] = 0; } } } } } } if (hasUrl == false) { i = 0; } char keyLiveView[] = "_LiveView_Single_URL>http://"; keyLen = strlen(keyLiveView); for (; i < slen - keyLen; i++) { if (memcmp(&(data[i]), keyLiveView, keyLen) == 0) { if (liveview_url == NULL) { liveview_url = (char*)malloc(256); } dbgser_states->printf("found LiveView idx %u\r\n", i); i += keyLen - 7; for (k = 0; i < slen - keyLen; i++, k++) { c = data[i]; if (c == '<' && data[i + 1] == '/') { liveview_url[k] = 0; break; } else { liveview_url[k] = c; } } } } if (hasUrl) { dbgser_states->printf("service URL: %s\r\n", service_url); state = SHCAMSTATE_INIT_GOTDD; } else { dbgser_states->printf("no service URL found\r\n"); state = SHCAMSTATE_FORBIDDEN; if (cb_onNoServiceUrl != NULL) { cb_onNoServiceUrl(); } } } void SonyHttpCamera::get_dd_xml() { char* url_buffer_used = (char*)cmd_buffer; // borrow another buffer if (strlen(url_buffer) <= 0) { // we didn't get a valid URL from SSDP // try different default URLs until something works uint8_t rem = init_retries % 2; if (rem == 0) { sprintf(url_buffer_used, "http://%s:64321/dd.xml", IPAddress(ip_addr).toString().c_str()); } else if (rem == 1) { sprintf(url_buffer_used, "http://%s:61000/scalarwebapi_dd.xml", IPAddress(ip_addr).toString().c_str()); } } else { strcpy(url_buffer_used, url_buffer); } dbgser_states->printf("getting dd.xml from URL: %s\r\n", url_buffer_used); httpclient.begin(url_buffer_used); last_http_resp_code = httpclient.GET(); http_content_len = httpclient.getSize(); if (last_http_resp_code == 200) { dbgser_states->printf("httpcam success got dd.xml\r\n"); parse_dd_xml((char*)httpclient.getString().c_str()); } else { dbgser_states->printf("httpcam unable to get dd.xml"); init_retries++; if (init_retries > 10) { critical_error_cnt++; dbgser_states->printf(", resp code %d, giving up", last_http_resp_code); state = SHCAMSTATE_FORBIDDEN; if (cb_onCriticalError != NULL) { cb_onCriticalError(); } } else { dbgser_states->printf(", resp code %d, try %u", last_http_resp_code, init_retries); state = SHCAMSTATE_INIT_GETDD; } dbgser_states->printf("\r\n"); } } void SonyHttpCamera::ssdp_start(WiFiUDP* sock) { if (sock == NULL) { return; } sock->beginMulticast(IPAddress(239,255,255,250), 1900); sock->beginMulticastPacket(); sock->print("M-SEARCH * HTTP/1.1\r\n"); sock->print("HOST: 239.255.255.250:1900\r\n"); sock->print("MAN: \"ssdp:discover\"\r\n"); // cycle through possible queries uint8_t rem = init_retries % 4; if (rem == 0 || rem == 2) { sock->print("MX: 1\r\n"); sock->print("ST: urn:schemas-sony-com:service:ScalarWebAPI:1\r\n"); sock->print("USER-AGENT: xyz/1.0 abc/1.0\r\n"); } else if (rem == 1) { sock->print("MX: 1\r\n"); sock->print("ST: urn:dial-multiscreen-org:service:dial:1\r\n"); sock->print("USER-AGENT: Google Chrome/1.0 Windows\r\n"); } else if (rem == 3) { sock->print("ST:ssdp:all\r\n"); sock->print("MX: 1\r\n"); } sock->print("\r\n"); sock->endPacket(); } bool SonyHttpCamera::ssdp_checkurl(WiFiUDP* sock) { if (sock == NULL) { return false; } String s; while (sock->available()) { s = sock->readStringUntil('\n'); if (s.startsWith("LOCATION:")) { char* ss = (char*)&(s.c_str()[9]); int i, j; for (i = 0; ; i++) { char c = ss[i]; if (c == 'h') { for (j = 0; ; i++, j++) { c = ss[i]; if (c == '\r' || c == '\n' || c == 0) { return true; } url_buffer[j] = c; url_buffer[j + 1] = 0; } } } } } return false; } bool SonyHttpCamera::ssdp_poll(WiFiUDP* sock) { bool got_ssdp = false; bool got_url_ssdp = false; uint32_t now = millis(); if (sock == NULL) { return false; } if (now >= wait_until) { sock->parsePacket(); if (sock->available() > 0) { got_url_ssdp = ssdp_checkurl(sock); got_ssdp |= got_url_ssdp; dbgser_states->print("httpcam SSDP got reply, reached time to parse"); if (got_ssdp) { dbgser_states->printf(", URL: %s\r\n", url_buffer); } else { dbgser_states->print(", no URL result\r\n"); } } if (got_ssdp == false) { init_retries++; if ((now - start_time) >= (ssdp_allowed_time * 1000)) { got_ssdp = true; // give up and get dd.xml anyways critical_error_cnt++; dbgser_states->println("httpcam SSDP give up"); } else { dbgser_states->printf("httpcam SSDP timeout, try %u\r\n", init_retries); ssdp_start(sock); wait_until = now + 250; } } } if (got_ssdp) { init_retries = 0; get_dd_xml(); } return got_url_ssdp; } ================================================ FILE: arduino_workspace/libraries/SonyHttpCamera/SonyHttpCameraUtils.cpp ================================================ #include "SonyHttpCamera.h" uint32_t SonyHttpCamera::rx_buff_size; int SonyHttpCamera::read_in_chunk(WiFiClient* stream, int32_t chunk, char* buff, uint32_t* buff_idx) { if ((*buff_idx) == 0) { dbgser_rx->println("httpcam rx: "); } if (chunk > SHCAM_RXBUFF_UNIT) { chunk = SHCAM_RXBUFF_UNIT; } if (chunk > stream->available()) { chunk = stream->available(); } int32_t i = (*buff_idx) + chunk; while (i > rx_buff_size) { int32_t j, k; for (j = 0, k = SHCAM_RXBUFF_UNIT; k < (*buff_idx) && k < rx_buff_size; j++, k++) { buff[j] = buff[k]; } i -= SHCAM_RXBUFF_UNIT; (*buff_idx) -= SHCAM_RXBUFF_UNIT; } uint8_t* tgt = (uint8_t*)(&(buff[(*buff_idx)])); int r = stream->readBytes(tgt, chunk); dbgser_rx->write(tgt, r); (*buff_idx) += r; buff[(*buff_idx)] = 0; return r; } bool scan_json_for_key(char* data, int32_t datalen, const char* keystr, signed int* start_idx, signed int* end_idx, char* tgt, int tgtlen) { int32_t slen = datalen; if (datalen <= 0) { slen = strlen(data); } signed int sidx = -1, eidx = -1; *start_idx = -1; *end_idx = -1; int32_t keylen = strlen(keystr); int i, j; bool found = false; for (i = 0; i < slen && found == false; i++) { if (data[i] == '"' && data[i + keylen + 1] == '"') { if (memcmp(&(data[i + 1]), keystr, keylen) == 0) { i += keylen + 2; char c = data[i]; char prev_c = c; for (; i < slen && c != 0 && found == false; i++) { c = data[i]; if (c == ':') { i++; sidx = i; for (; i < slen && c != 0 && found == false; i++) { c = data[i]; if (c == '"') { i++; sidx = i; prev_c = c; for (; i < slen && c != 0 && found == false; i++) { c = data[i]; if (c == '"' && prev_c != '\\') { eidx = i - 1; found = true; } prev_c = c; } } else if (c == '[') { i++; sidx = i; bool in_quote = false; prev_c = c; for (; i < slen && c != 0 && found == false; i++) { c = data[i]; if (c == '"' && prev_c != '\\') { in_quote ^= true; } else if (c == ']' && in_quote == false) { eidx = i - 1; found = true; } prev_c = c; } } else if (c == '{') { i++; sidx = i; bool in_quote = false; prev_c = c; for (; i < slen && c != 0 && found == false; i++) { c = data[i]; if (c == '"' && prev_c != '\\') { in_quote ^= true; } else if (c == '}' && in_quote == false) { eidx = i - 1; found = true; } prev_c = c; } } else if (c == ',') { if (found == false) { eidx = i - 1; } found = true; } else if (c == ' ' || c == '\t' || c == '\r' || c == '\n') { if (i == sidx + 1) { sidx = i + 1; } } prev_c = c; } } else if (c == ',') { break; } else if (c != ' ' && c != '\t' && c != '\r' && c != '\n' && found == false) { return false; } prev_c = c; } } // memcmp } } if (sidx < 0 || eidx < 0) { return false; } if (found) { if (start_idx != NULL) { *start_idx = sidx; } if (end_idx != NULL) { *end_idx = eidx; } if (tgt != NULL) { for (i = sidx, j = 0; i <= eidx && j < tgtlen - 1; i++, j++) { tgt[j] = data[i]; } tgt[j] = 0; } } return found; } bool parse_json_err_num(const char* data, int* outnum) { char tmp[16]; int slen = strlen(data); int i, j; for (i = 0, j = 0; i < slen; i++) { char c = data[i]; if (c >= '0' && c <= '9') { tmp[j] = c; // record numeric character into temp string tmp[j + 1] = 0; j += 1; } else if (i > 0 && j > 0) { break; // stop on non-numeric, but only after we actually have a number } } if (j > 0) { *outnum = atoi(tmp); return true; } return false; } int count_commas(char* data) { uint32_t slen = strlen(data); int i, cnt = 0; for (i = 0; i < slen; i++) { char c = data[i]; if (c == ',') { cnt++; } } return cnt; } int get_idx_within_strtbl(char* tbl, char* needle) { int slen = strlen(tbl); int nlen = strlen(needle); int i; int comma_cnt = 0; bool in_quote = false; char c, prev_c = 0; for (i = 0; i < slen - nlen; i++) { c = tbl[i]; if (c == '"' && tbl[i + nlen + 2] == '"') { prev_c = c; i++; if (memcmp(&tbl[i], needle, nlen) == 0) { return comma_cnt; } continue; } else if (c == '"' && prev_c != '\\') { in_quote ^= true; } else if (c == ',' && in_quote == false) { comma_cnt++; } prev_c = c; } return -1; } bool get_txt_within_strtbl(char* tbl, int idx, char* tgt) { int slen = strlen(tbl); int i, j; int comma_cnt = 0; bool in_quote = false; char c, prev_c = 0; for (i = 0, j = 0; i < slen; i++) { c = tbl[i]; if (c == '"' && prev_c != '\\') { in_quote ^= true; } else if (c == ',' && in_quote == false) { comma_cnt++; } else if (in_quote && comma_cnt == idx) { tgt[j] = c; tgt[j + 1] = 0; } if (in_quote == false && j > 0) { return true; } prev_c = c; } if (j > 0) { return true; } tgt[0] = 0; return false; } void strcpy_no_slash(char* dst, char* src) { int i, j; int slen = strlen(src); for (i = 0, j = 0; i < slen; i++) { char c = src[i]; if (c != '\\') { dst[j] = c; dst[j+1] = 0; j += 1; } } } uint32_t parse_shutter_speed_str(char* s) { int slen = strlen(s); if (s[slen - 1] == '"') { s[slen - 1] = 0; slen--; if (s[slen - 1] == '\\') { s[slen - 1] = 0; slen--; } double f = atof(s); f *= 10; int fi = lround(f); fi <<= 16; fi |= 10; return fi; } else if (memcmp("1/", s, 2) == 0) { int x = atoi(&(s[2])); x |= 0x10000; return x; } else { double f = atof(s); f *= 10; int fi = lround(f); fi <<= 16; fi |= 10; return fi; } return 0; } uint32_t SonyHttpCamera::get_another_shutterspd(int idx, char* tgt) { if (get_txt_within_strtbl(str_shutterspd, idx, tgt)) { return parse_shutter_speed_str(tgt); } return 0; } void SonyHttpCamera::wait_while_busy(uint32_t min_time, uint32_t max_time, volatile bool* exit_signal) { volatile bool to_exit = false; uint32_t start_time = millis(); uint32_t now = start_time; uint32_t old_poll_delay = poll_delay; poll_delay = 50; while ((canSend() == false && isOperating() == true && (now - start_time) < max_time) || (now - start_time) < min_time) { now = millis(); poll(); // poll, not task, because poll only reads and never sends // note: poll calls yield if (exit_signal != NULL) { to_exit |= *exit_signal; if (to_exit && (now - start_time) >= min_time) { break; } } } poll_delay = old_poll_delay; } void SonyHttpCamera::borrowBuffer(char* buff, uint32_t size) { rx_buff_size = size; rx_buff = buff; } ================================================ FILE: arduino_workspace/libraries/SonyHttpCamera/examples/HttpJsonDemo/HttpJsonDemo.ino ================================================ #include SonyHttpCamera httpcam; int wifi_last_status; void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); wifi_last_status = WiFi.status(); // remember pre-init status WiFi.begin("DIRECT-W9C2:DSC-RX100M4", "UsmyDXRY"); // connect to camera Serial.println("Hello World. HTTP JSON Demo. WiFi initialized, waiting for IP..."); } void loop() { httpcam.task(); int status = WiFi.status(); if (status == WL_CONNECTED) { IPAddress gateway = WiFi.gatewayIP(); IPAddress localIp = WiFi.localIP(); if (gateway != 0 && localIp != 0 && wifi_last_status != status && httpcam.canNewConnect()) // new connect { wifi_last_status = status; Serial.print("WiFi Connected: "); Serial.println(gateway); httpcam.begin((uint32_t)gateway); // start the handshake } } else { wifi_last_status = status; } if (Serial.available()) // check if user has input command from serial port { char c = Serial.read(); if (c == 'x') // this is a command from serial port { Serial.println("Command: Shoot Photo"); if (httpcam.isOperating()) // check connection { httpcam.cmd_Shoot(); // execute the command } else { Serial.println("Error: Camera Not Connected"); } } else if (c != '\r' && c != '\n') { Serial.printf("Unknown Command: %c\r\n", c); } } } ================================================ FILE: arduino_workspace/libraries/Wire/keywords.txt ================================================ ####################################### # Syntax Coloring Map For Wire ####################################### ####################################### # Datatypes (KEYWORD1) ####################################### ####################################### # Methods and Functions (KEYWORD2) ####################################### begin KEYWORD2 end KEYWORD2 setClock KEYWORD2 getClock KEYWORD2 setTimeOut KEYWORD2 getTimeOut KEYWORD2 beginTransmission KEYWORD2 endTransmission KEYWORD2 requestFrom KEYWORD2 onReceive KEYWORD2 onRequest KEYWORD2 ####################################### # Instances (KEYWORD2) ####################################### Wire KEYWORD2 TwoWire KEYWORD2 ####################################### # Constants (LITERAL1) ####################################### ================================================ FILE: arduino_workspace/libraries/Wire/library.properties ================================================ name=Wire version=2.0.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Allows the communication between devices or sensors connected via Two Wire Interface Bus. For esp8266 boards. paragraph= category=Signal Input/Output url=http://arduino.cc/en/Reference/Wire architectures=esp32 ================================================ FILE: arduino_workspace/libraries/Wire/src/Wire.cpp ================================================ /* TwoWire.cpp - TWI/I2C library for Arduino & Wiring Copyright (c) 2006 Nicholas Zambetti. All right reserved. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts Modified December 2014 by Ivan Grokhotkov (ivan@esp8266.com) - esp8266 support Modified April 2015 by Hrsto Gochkov (ficeto@ficeto.com) - alternative esp8266 support Modified Nov 2017 by Chuck Todd (ctodd@cableone.net) - ESP32 ISR Support Modified Nov 2021 by Hristo Gochkov to support ESP-IDF API */ extern "C" { #include #include #include } #include "esp32-hal-i2c.h" #include "esp32-hal-i2c-slave.h" #include "Wire.h" #include "Arduino.h" TwoWire::TwoWire(uint8_t bus_num) :num(bus_num & 1) ,sda(-1) ,scl(-1) ,bufferSize(I2C_BUFFER_LENGTH) // default Wire Buffer Size ,rxBuffer(NULL) ,rxIndex(0) ,rxLength(0) ,txBuffer(NULL) ,txLength(0) ,txAddress(0) ,_timeOutMillis(50) ,nonStop(false) #if !CONFIG_DISABLE_HAL_LOCKS ,nonStopTask(NULL) ,lock(NULL) #endif ,is_slave(false) ,user_onRequest(NULL) ,user_onReceive(NULL) {} TwoWire::~TwoWire() { end(); #if !CONFIG_DISABLE_HAL_LOCKS if(lock != NULL){ vSemaphoreDelete(lock); } #endif } bool TwoWire::initPins(int sdaPin, int sclPin) { if(sdaPin < 0) { // default param passed if(num == 0) { if(sda==-1) { sdaPin = SDA; //use Default Pin } else { sdaPin = sda; // reuse prior pin } } else { if(sda==-1) { #ifdef WIRE1_PIN_DEFINED sdaPin = SDA1; #else log_e("no Default SDA Pin for Second Peripheral"); return false; //no Default pin for Second Peripheral #endif } else { sdaPin = sda; // reuse prior pin } } } if(sclPin < 0) { // default param passed if(num == 0) { if(scl == -1) { sclPin = SCL; // use Default pin } else { sclPin = scl; // reuse prior pin } } else { if(scl == -1) { #ifdef WIRE1_PIN_DEFINED sclPin = SCL1; #else log_e("no Default SCL Pin for Second Peripheral"); return false; //no Default pin for Second Peripheral #endif } else { sclPin = scl; // reuse prior pin } } } sda = sdaPin; scl = sclPin; return true; } bool TwoWire::setPins(int sdaPin, int sclPin) { #if !CONFIG_DISABLE_HAL_LOCKS if(lock == NULL){ lock = xSemaphoreCreateMutex(); if(lock == NULL){ log_e("xSemaphoreCreateMutex failed"); return false; } } //acquire lock if(xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE){ log_e("could not acquire lock"); return false; } #endif if(!i2cIsInit(num)){ initPins(sdaPin, sclPin); } else { log_e("bus already initialized. change pins only when not."); } #if !CONFIG_DISABLE_HAL_LOCKS //release lock xSemaphoreGive(lock); #endif return !i2cIsInit(num); } bool TwoWire::allocateWireBuffer(void) { // or both buffer can be allocated or none will be if (rxBuffer == NULL) { rxBuffer = (uint8_t *)malloc(bufferSize); if (rxBuffer == NULL) { log_e("Can't allocate memory for I2C_%d rxBuffer", num); return false; } } if (txBuffer == NULL) { txBuffer = (uint8_t *)malloc(bufferSize); if (txBuffer == NULL) { log_e("Can't allocate memory for I2C_%d txBuffer", num); freeWireBuffer(); // free rxBuffer for safety! return false; } } // in case both were allocated before, they must have the same size. All good. return true; } void TwoWire::freeWireBuffer(void) { if (rxBuffer != NULL) { free(rxBuffer); rxBuffer = NULL; } if (txBuffer != NULL) { free(txBuffer); txBuffer = NULL; } } size_t TwoWire::setBufferSize(size_t bSize) { // Maximum size .... HEAP limited ;-) if (bSize < 32) { // 32 bytes is the I2C FIFO Len for ESP32/S2/S3/C3 log_e("Minimum Wire Buffer size is 32 bytes"); return 0; } #if !CONFIG_DISABLE_HAL_LOCKS if(lock == NULL){ lock = xSemaphoreCreateMutex(); if(lock == NULL){ log_e("xSemaphoreCreateMutex failed"); return 0; } } //acquire lock if(xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE){ log_e("could not acquire lock"); return 0; } #endif // allocateWireBuffer allocates memory for both pointers or just free them if (rxBuffer != NULL || txBuffer != NULL) { // if begin() has been already executed, memory size changes... data may be lost. We don't care! :^) if (bSize != bufferSize) { // we want a new buffer size ... just reset buffer pointers and allocate new ones freeWireBuffer(); bufferSize = bSize; if (!allocateWireBuffer()) { // failed! Error message already issued bSize = 0; // returns error log_e("Buffer allocation failed"); } } // else nothing changes, all set! } else { // no memory allocated yet, just change the size value - allocation in begin() bufferSize = bSize; } #if !CONFIG_DISABLE_HAL_LOCKS //release lock xSemaphoreGive(lock); #endif return bSize; } // Slave Begin bool TwoWire::begin(uint8_t addr, int sdaPin, int sclPin, uint32_t frequency) { bool started = false; #if !CONFIG_DISABLE_HAL_LOCKS if(lock == NULL){ lock = xSemaphoreCreateMutex(); if(lock == NULL){ log_e("xSemaphoreCreateMutex failed"); return false; } } //acquire lock if(xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE){ log_e("could not acquire lock"); return false; } #endif if(is_slave){ log_w("Bus already started in Slave Mode."); started = true; goto end; } if(i2cIsInit(num)){ log_e("Bus already started in Master Mode."); goto end; } if (!allocateWireBuffer()) { // failed! Error Message already issued goto end; } if(!initPins(sdaPin, sclPin)){ goto end; } i2cSlaveAttachCallbacks(num, onRequestService, onReceiveService, this); if(i2cSlaveInit(num, sda, scl, addr, frequency, bufferSize, bufferSize) != ESP_OK){ log_e("Slave Init ERROR"); goto end; } is_slave = true; started = true; end: if (!started) freeWireBuffer(); #if !CONFIG_DISABLE_HAL_LOCKS //release lock xSemaphoreGive(lock); #endif return started; } // Master Begin bool TwoWire::begin(int sdaPin, int sclPin, uint32_t frequency) { bool started = false; esp_err_t err = ESP_OK; #if !CONFIG_DISABLE_HAL_LOCKS if(lock == NULL){ lock = xSemaphoreCreateMutex(); if(lock == NULL){ log_e("xSemaphoreCreateMutex failed"); return false; } } //acquire lock if(xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE){ log_e("could not acquire lock"); return false; } #endif if(is_slave){ log_e("Bus already started in Slave Mode."); goto end; } if(i2cIsInit(num)){ log_w("Bus already started in Master Mode."); started = true; goto end; } if (!allocateWireBuffer()) { // failed! Error Message already issued goto end; } if(!initPins(sdaPin, sclPin)){ goto end; } err = i2cInit(num, sda, scl, frequency); started = (err == ESP_OK); end: if (!started) freeWireBuffer(); #if !CONFIG_DISABLE_HAL_LOCKS //release lock xSemaphoreGive(lock); #endif return started; } bool TwoWire::end() { esp_err_t err = ESP_OK; #if !CONFIG_DISABLE_HAL_LOCKS if(lock != NULL){ //acquire lock if(xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE){ log_e("could not acquire lock"); return false; } #endif if(is_slave){ err = i2cSlaveDeinit(num); if(err == ESP_OK){ is_slave = false; } } else if(i2cIsInit(num)){ err = i2cDeinit(num); } freeWireBuffer(); #if !CONFIG_DISABLE_HAL_LOCKS //release lock xSemaphoreGive(lock); } #endif return (err == ESP_OK); } uint32_t TwoWire::getClock() { uint32_t frequency = 0; #if !CONFIG_DISABLE_HAL_LOCKS //acquire lock if(lock == NULL || xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE){ log_e("could not acquire lock"); } else { #endif if(is_slave){ log_e("Bus is in Slave Mode"); } else { i2cGetClock(num, &frequency); } #if !CONFIG_DISABLE_HAL_LOCKS //release lock xSemaphoreGive(lock); } #endif return frequency; } bool TwoWire::setClock(uint32_t frequency) { esp_err_t err = ESP_OK; #if !CONFIG_DISABLE_HAL_LOCKS //acquire lock if(lock == NULL || xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE){ log_e("could not acquire lock"); return false; } #endif if(is_slave){ log_e("Bus is in Slave Mode"); err = ESP_FAIL; } else { err = i2cSetClock(num, frequency); } #if !CONFIG_DISABLE_HAL_LOCKS //release lock xSemaphoreGive(lock); #endif return (err == ESP_OK); } void TwoWire::setTimeOut(uint16_t timeOutMillis) { _timeOutMillis = timeOutMillis; } uint16_t TwoWire::getTimeOut() { return _timeOutMillis; } void TwoWire::beginTransmission(uint16_t address) { if(is_slave){ log_e("Bus is in Slave Mode"); return; } #if !CONFIG_DISABLE_HAL_LOCKS if(nonStop && nonStopTask == xTaskGetCurrentTaskHandle()){ log_e("Unfinished Repeated Start transaction! Expected requestFrom, not beginTransmission! Clearing..."); //release lock xSemaphoreGive(lock); } //acquire lock if(lock == NULL || xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE){ log_e("could not acquire lock"); return; } #endif nonStop = false; txAddress = address; txLength = 0; } /* https://www.arduino.cc/reference/en/language/functions/communication/wire/endtransmission/ endTransmission() returns: 0: success. 1: data too long to fit in transmit buffer. 2: received NACK on transmit of address. 3: received NACK on transmit of data. 4: other error. 5: timeout */ uint8_t TwoWire::endTransmission(bool sendStop) { if(is_slave){ log_e("Bus is in Slave Mode"); return 4; } if (txBuffer == NULL){ log_e("NULL TX buffer pointer"); return 4; } esp_err_t err = ESP_OK; if(sendStop){ err = i2cWrite(num, txAddress, txBuffer, txLength, _timeOutMillis); #if !CONFIG_DISABLE_HAL_LOCKS //release lock xSemaphoreGive(lock); #endif } else { //mark as non-stop nonStop = true; #if !CONFIG_DISABLE_HAL_LOCKS nonStopTask = xTaskGetCurrentTaskHandle(); #endif } switch(err){ case ESP_OK: return 0; case ESP_FAIL: return 2; case ESP_ERR_TIMEOUT: return 5; default: break; } return 4; } size_t TwoWire::requestFrom(uint16_t address, size_t size, bool sendStop) { if(is_slave){ log_e("Bus is in Slave Mode"); return 0; } if (rxBuffer == NULL || txBuffer == NULL){ log_e("NULL buffer pointer"); return 0; } esp_err_t err = ESP_OK; if(nonStop #if !CONFIG_DISABLE_HAL_LOCKS && nonStopTask == xTaskGetCurrentTaskHandle() #endif ){ if(address != txAddress){ log_e("Unfinished Repeated Start transaction! Expected address do not match! %u != %u", address, txAddress); return 0; } nonStop = false; rxIndex = 0; rxLength = 0; err = i2cWriteReadNonStop(num, address, txBuffer, txLength, rxBuffer, size, _timeOutMillis, &rxLength); if(err){ //log_e("i2cWriteReadNonStop returned Error %d", err); } } else { #if !CONFIG_DISABLE_HAL_LOCKS //acquire lock if(lock == NULL || xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE){ log_e("could not acquire lock"); return 0; } #endif rxIndex = 0; rxLength = 0; err = i2cRead(num, address, rxBuffer, size, _timeOutMillis, &rxLength); if(err){ log_e("i2cRead returned Error %d", err); } } #if !CONFIG_DISABLE_HAL_LOCKS //release lock xSemaphoreGive(lock); #endif return rxLength; } size_t TwoWire::write(uint8_t data) { if (txBuffer == NULL){ log_e("NULL TX buffer pointer"); return 0; } if(txLength >= bufferSize) { return 0; } txBuffer[txLength++] = data; return 1; } size_t TwoWire::write(const uint8_t *data, size_t quantity) { for(size_t i = 0; i < quantity; ++i) { if(!write(data[i])) { return i; } } return quantity; } int TwoWire::available(void) { int result = rxLength - rxIndex; return result; } int TwoWire::read(void) { int value = -1; if (rxBuffer == NULL){ log_e("NULL RX buffer pointer"); return value; } if(rxIndex < rxLength) { value = rxBuffer[rxIndex++]; } return value; } int TwoWire::peek(void) { int value = -1; if (rxBuffer == NULL){ log_e("NULL RX buffer pointer"); return value; } if(rxIndex < rxLength) { value = rxBuffer[rxIndex]; } return value; } void TwoWire::flush(void) { rxIndex = 0; rxLength = 0; txLength = 0; //i2cFlush(num); // cleanup } size_t TwoWire::requestFrom(uint8_t address, size_t len, bool sendStop) { return requestFrom(static_cast(address), static_cast(len), static_cast(sendStop)); } uint8_t TwoWire::requestFrom(uint8_t address, uint8_t len, uint8_t sendStop) { return requestFrom(static_cast(address), static_cast(len), static_cast(sendStop)); } uint8_t TwoWire::requestFrom(uint16_t address, uint8_t len, uint8_t sendStop) { return requestFrom(address, static_cast(len), static_cast(sendStop)); } /* Added to match the Arduino function definition: https://github.com/arduino/ArduinoCore-API/blob/173e8eadced2ad32eeb93bcbd5c49f8d6a055ea6/api/HardwareI2C.h#L39 * See: https://github.com/arduino-libraries/ArduinoECCX08/issues/25 */ uint8_t TwoWire::requestFrom(uint16_t address, uint8_t len, bool stopBit) { return requestFrom((uint16_t)address, (size_t)len, stopBit); } uint8_t TwoWire::requestFrom(uint8_t address, uint8_t len) { return requestFrom(static_cast(address), static_cast(len), true); } uint8_t TwoWire::requestFrom(uint16_t address, uint8_t len) { return requestFrom(address, static_cast(len), true); } uint8_t TwoWire::requestFrom(int address, int len) { return requestFrom(static_cast(address), static_cast(len), true); } uint8_t TwoWire::requestFrom(int address, int len, int sendStop) { return static_cast(requestFrom(static_cast(address), static_cast(len), static_cast(sendStop))); } void TwoWire::beginTransmission(int address) { beginTransmission(static_cast(address)); } void TwoWire::beginTransmission(uint8_t address) { beginTransmission(static_cast(address)); } uint8_t TwoWire::endTransmission(void) { return endTransmission(true); } size_t TwoWire::slaveWrite(const uint8_t * buffer, size_t len) { return i2cSlaveWrite(num, buffer, len, _timeOutMillis); } void TwoWire::onReceiveService(uint8_t num, uint8_t* inBytes, size_t numBytes, bool stop, void * arg) { TwoWire * wire = (TwoWire*)arg; if(!wire->user_onReceive){ return; } if (wire->rxBuffer == NULL){ log_e("NULL RX buffer pointer"); return; } for(uint8_t i = 0; i < numBytes; ++i){ wire->rxBuffer[i] = inBytes[i]; } wire->rxIndex = 0; wire->rxLength = numBytes; wire->user_onReceive(numBytes); } void TwoWire::onRequestService(uint8_t num, void * arg) { TwoWire * wire = (TwoWire*)arg; if(!wire->user_onRequest){ return; } if (wire->txBuffer == NULL){ log_e("NULL TX buffer pointer"); return; } wire->txLength = 0; wire->user_onRequest(); if(wire->txLength){ wire->slaveWrite((uint8_t*)wire->txBuffer, wire->txLength); } } void TwoWire::onReceive( void (*function)(int) ) { user_onReceive = function; } // sets function called on slave read void TwoWire::onRequest( void (*function)(void) ) { user_onRequest = function; } TwoWire Wire = TwoWire(0); TwoWire Wire1 = TwoWire(1); ================================================ FILE: arduino_workspace/libraries/Wire/src/Wire.h ================================================ /* TwoWire.h - TWI/I2C library for Arduino & Wiring Copyright (c) 2006 Nicholas Zambetti. All right reserved. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts Modified December 2014 by Ivan Grokhotkov (ivan@esp8266.com) - esp8266 support Modified April 2015 by Hrsto Gochkov (ficeto@ficeto.com) - alternative esp8266 support Modified November 2017 by Chuck Todd to use ISR and increase stability. Modified Nov 2021 by Hristo Gochkov to support ESP-IDF API */ #ifndef TwoWire_h #define TwoWire_h #include #if !CONFIG_DISABLE_HAL_LOCKS #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/semphr.h" #endif #include "Stream.h" // WIRE_HAS_BUFFER_SIZE means Wire has setBufferSize() #define WIRE_HAS_BUFFER_SIZE 1 // WIRE_HAS_END means Wire has end() #define WIRE_HAS_END 1 #ifndef I2C_BUFFER_LENGTH #define I2C_BUFFER_LENGTH 128 // Default size, if none is set using Wire::setBuffersize(size_t) #endif typedef void(*user_onRequest)(void); typedef void(*user_onReceive)(uint8_t*, int); class TwoWire: public Stream { protected: uint8_t num; int8_t sda; int8_t scl; size_t bufferSize; uint8_t *rxBuffer; size_t rxIndex; size_t rxLength; uint8_t *txBuffer; size_t txLength; uint16_t txAddress; uint32_t _timeOutMillis; bool nonStop; #if !CONFIG_DISABLE_HAL_LOCKS TaskHandle_t nonStopTask; SemaphoreHandle_t lock; #endif private: bool is_slave; void (*user_onRequest)(void); void (*user_onReceive)(int); static void onRequestService(uint8_t, void *); static void onReceiveService(uint8_t, uint8_t*, size_t, bool, void *); bool initPins(int sdaPin, int sclPin); bool allocateWireBuffer(void); void freeWireBuffer(void); public: TwoWire(uint8_t bus_num); ~TwoWire(); //call setPins() first, so that begin() can be called without arguments from libraries bool setPins(int sda, int scl); bool begin(int sda, int scl, uint32_t frequency=0); // returns true, if successful init of i2c bus bool begin(uint8_t slaveAddr, int sda, int scl, uint32_t frequency); // Explicit Overload for Arduino MainStream API compatibility inline bool begin() { return begin(-1, -1, static_cast(0)); } inline bool begin(uint8_t addr) { return begin(addr, -1, -1, 0); } inline bool begin(int addr) { return begin(static_cast(addr), -1, -1, 0); } bool end(); size_t setBufferSize(size_t bSize); void setTimeOut(uint16_t timeOutMillis); // default timeout of i2c transactions is 50ms uint16_t getTimeOut(); bool setClock(uint32_t); uint32_t getClock(); void beginTransmission(uint16_t address); void beginTransmission(uint8_t address); void beginTransmission(int address); uint8_t endTransmission(bool sendStop); uint8_t endTransmission(void); size_t requestFrom(uint16_t address, size_t size, bool sendStop); uint8_t requestFrom(uint16_t address, uint8_t size, bool sendStop); uint8_t requestFrom(uint16_t address, uint8_t size, uint8_t sendStop); size_t requestFrom(uint8_t address, size_t len, bool stopBit); uint8_t requestFrom(uint16_t address, uint8_t size); uint8_t requestFrom(uint8_t address, uint8_t size, uint8_t sendStop); uint8_t requestFrom(uint8_t address, uint8_t size); uint8_t requestFrom(int address, int size, int sendStop); uint8_t requestFrom(int address, int size); size_t write(uint8_t); size_t write(const uint8_t *, size_t); int available(void); int read(void); int peek(void); void flush(void); inline size_t write(const char * s) { return write((uint8_t*) s, strlen(s)); } inline size_t write(unsigned long n) { return write((uint8_t)n); } inline size_t write(long n) { return write((uint8_t)n); } inline size_t write(unsigned int n) { return write((uint8_t)n); } inline size_t write(int n) { return write((uint8_t)n); } void onReceive( void (*)(int) ); void onRequest( void (*)(void) ); size_t slaveWrite(const uint8_t *, size_t); }; extern TwoWire Wire; extern TwoWire Wire1; #endif ================================================ FILE: doc/Camera-Reverse-Engineering.md ================================================ # Reverse Engineering My first attempt at a project that can control a Sony camera used USB. The Sony Imaging Edge Remote application supports both USB and network communication. This was when I discovered that the camera used PTP (Picture Transfer Protocol) by packet-sniffing over USB. Digging around the internet, it looks like the protocol is from 2000 and one link available to download: https://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/f2012/jmv87/site/files/pima15740-2000.pdf . Later, TCP/IP was added as a transport mechanism for PTP, I managed to find a draft version of the document: https://www.cipa.jp/std/documents/e/DC-X005.pdf but a lot of the values in there are undefined (don't worry, they are obviously defined today and Wireshark will decode them for you) If the link for these documents are down (ISO charges $200 for the latest copy of the ISO 15740 document, and CIPA requires a membership for the latest DC-500 document), I have [uploaded copies here](../ext_docs/). The protocol involves operation codes and property codes. Sony cameras seem to use a mix of standard codes in the document, plus additional proprietary ones not described in the document. These required more packet-sniffing to figure out. For example, setting the focus point coordinate packs the X and Y coordinates as 16 bit integers, adjusting the focus was done in steps of 1, 3, or 7, no other numbers worked. Conveniently other people have worked on similar projects and I was able to get some of these codes from: https://github.com/Parrot-Developers/sequoia-ptpy/blob/master/ptpy/extensions/sony.py , thanks Parrot! Another source, a bit harder to decipher, is the libgphoto project: https://github.com/gphoto/libgphoto2/tree/master/camlibs/ptp2/cameras ## Initial Handshake There are two parts to the handshake. The first part is pretty well described by the protocol documentation. The second part involves a series of operation requests using Sony's own operation codes. This appears to be slightly different between camera models, so it adds to the difficulty of supporting camera models that I do not own. However, I did write my source code in a way that this sequence is described in a table, so new camera models can be supported very easily once I get some sniffed data from the new camera model. #### August 2022 It seems like the handshake is the same across at least two camera models, I'm fairly confident it will be the same across all camera models. Also, the act of "pairing" is simply a delay after the host sends the "initialization command request" which contains the host's friendly name, the name is shown on the camera's screen and the user has to press OK. When OK is pressed, "initialization command acknowledgment" is returned to the host. The host's GUID is memorized by the camera so it won't be prompted for any future handshakes. #### Warning About Pairing!!! It looks like when a camera is "paired" to an application, you cannot unpair it!!! The only way to unpair is through a factory reset, which would cause you to lose all of your custom key mappings and memory recall slots. Please use the "Connect Without Pairing" option!!! NOTE: After examining multiple Wireshark capture sessions, using the same laptop as the host, and multiple camera models, it looks like the GUID for each pairing is unique. This means a spoofing attack is less likely to be possible, and very impractical to implement in a way that a photographer can utilize. ## Device Properties One key feature for me to implement is to read the camera's status (current settings, battery level, etc). This is done by requesting all device properties, and then getting a gigantic chunk of data as a reply. There are a few annoying things about the way this works: * different cameras have different properties, and also depends on what mode the camera is in * this makes it a bit hard to just pre-program a list of properties * each property in the chunk has a variable data length, you can't just find a property before reading all of the properties before it * the data chunk is huge, easily more than 3kb, very problematic for small microcontrollers, and takes a long time to receive and iterate through * conveniently, a event packet is sent when a property changes, so periodic polling is not necessary, saving a lot of traffic * Wireshark and other sniffers/decoders do not automatically extract individual properties for you The first property packet decoder I wrote worked on an older A6600 camera, it conformed to the PIMA 15740 document. When I used the same code on my newer A1 camera, it failed to decode, it seems like either the protocol was updated since the year 2000 or Sony started to deviate from what was documented. To resolve this, I looked at the entire packet for 16 bit sequences that looked like a property code (which all look like 0xD2??), which let me compare what my code thought was a complete single property vs what was actually a single complete property. There isn't any indicator if a camera model used the older property packet format or the newer one, so supporting additional camera models is difficult and requires additional packet sniffing. The newer packet format seems to include multiple enum lists for each property, instead of the older way of including just one enum list. I don't know why there are two lists, it could be one list each for photo mode and movie mode, or it could be a list with items that are enabled and another list with all possible items so that a GUI can grey-out some items. I did not put the effort into investigating this further, and my code simply keeps track of the size of the list, and copies the list when a new list is longer than the remembered list. These lists (available options) can change during run-time, according to: * mechanical vs electronic shutter * whether or not BULB mode is available * ISO range specified by the user * movie vs photo mode * what apertures are available on the attached lens To help myself understand more of the unknown individual property items, I experimented with code that monitored each individual property for changes. I monitored these changes as I played around with my camera. This allowed me to fill in the gaps that my other resources lacked. ## Other Gotchas Some camera models support "save image to camera only", while other cameras only support "save image to camera and PC" without an option to not save to PC, which is bad for any embedded application. In the latter case, the image will be stuck in the buffer of the camera until a PTP transaction retrieves it. For devices with limited memory, the only workaround is to retrieve the data but toss it out, but this is still very very slow (we are talking about 25 megabytes of data for one file from a low megapixel camera, 80 MB or 120 MB from a high megapixel camera). Exacerbating the problem, when the camera saves both raw format and JPEG format, two files need to be retrieved but only one notification is given, and it only counts as 1 image when you try to read the buffer size property. There are some commands that will override the physical controls on the camera. For example, if the camera is in auto-focus mode, and a manual focus toggle command is sent to go into manual focus mode, then the camera is stuck in manual focus mode, the user cannot use the on-camera controls to return it to auto-focus mode until another PTP command is issued to disable manual focus mode. This is especially confusing when some camera models have a physical dial for focus modes, some lenses have a focus mode toggle, and there's also a menu item on the camera for focus modes. For example, if the Wi-Fi connection is interrupted after a manual focus PTP command is sent, the dial on the camera stops working until you reboot the camera. ## Supporting Other Cameras I've mentioned above some of the difficulties with adding support for other camera models that I do not personally own. The main hurtle is that I need to packet-sniff each camera model in order to obtain the handshake sequence and the device property format. Sony does list the cameras that support wireless communication with the Imaging Edge Remote PC application. These are the cameras that can be more easily supported, because anybody can simply run Wireshark to obtain a packet-sniff log. Also, [Sony does actually provide a SDK](https://support.d-imaging.sony.co.jp/app/sdk/en/index.html) for some cameras! But the SDK is meant for Windows, MacOS, and Linux (with a heavy focus on Raspberry Pi in the documentation, thanks Sony! Did you know Sony UK manufactures Raspberry Pis?). The SDK does not expose any of the protocol and its codes, and cannot be used for a microcontroller platform. ## Adding the HTTP JSON-RPC Protocol, mid August 2022 I figured out that older cameras use a deprecated API and SDK that Sony used to offer: https://developer.sony.com/develop/cameras/api-information/supported-features-and-compatible-cameras It's a totally proprietary protocol (no standard organization), and is missing manual focusing (so focus stacking is impossible, as is any other feature that requires manual focus). It uses plain JSON and is fairly well documented. ## Adding Zoom, Obtaining Focal Length, mid Oct 2022 I have a friend who does some cool virtual production stuff (think of how The Mandalorian was filmed on a virtual set), and he said that it would be super useful to obtain the lens current focal length for calibration, because that information is used for the camera 3D positional tracking. While testing I didn't notice any property codes changing while I zoomed with my lenses. It turns out that turning on APS-C mode on my full frame camera disables a whole bunch of the PTP commands from working. So testing with the cheap kit 16-50mm power zoom lens isn't valid. I bit the bullet and got the 16-35mm full frame power zoom lens SELP1635G. Bam! Now the camera is spitting out a property code, `0xD25D`, and it contains the zoom as a percentage (number 0 to 100). So this feature only works with official Sony full frame lenses with power zoom. ## Problems with Card Buffering, mid Oct 2022 A user that I was helping reported that when his A7R4 was commanded to take a photo, the camera's card buffer would not clear, and the busy LED of the camera stayed on forever. This was a situation I have previously encountered using PTP-over-USB. I immediately confirmed that the behavior is similar over Wi-Fi using Wireshark. The easiest solution is for the user to set the "Still Image Save Destination" to be "Camera Only" instead of "PC + Camera". But it turns out, there's now two different places in the Sony camera menu system where this is set, one for PC control, one for smartphone control. So the user should have both options set to "Camera Only". But there is always the possibility that the option is actually missing on some cameras, as is with my own A6600 and RX0M2. The solution was to simply read out the buffer into nothingness. This is easy over USB, as the connection is reliable and quick. The file is a JPG file about 400kb. After screwing around with my code, I got the ESP32 to swallow that data, but it really did require the core to stop servicing other IO operations like I2C and debug serial port messages. ## Timecode Reset, late Oct 2022 I responded to [this feature request](https://github.com/frank26080115/alpha-fairy/issues/13). It is about adding a infrared remote command to reset the running timecode on cameras. This is a way of synchronizing video across multiple simultaneously filming cameras. My first attempt involving simply guessing. It is quite common for Sony devices to use commands that comprise of a 13 bit device address and 7 bit command, meaning I had to check 127 different commands. This was not successful, but I did figure out many other command bytes in this process. The RMT-845 does not exist in any of the open source IR code databases I checked, such as LIRC. The remote is also no longer in production, and actually quite rare. Subsequent replacement models exist but without the timecode resetting button. So I decided to actually purchase one before they disappear forever. After obtaining one, I quickly wired it up to a logic analyzer to extract it's infrared codes. The results are [inside this source file (click here)](https://github.com/frank26080115/alpha-fairy/blob/main/arduino_workspace/libraries/SonyCameraInfraredRemote/SonyCameraInfraredRemote.h). ================================================ FILE: doc/Firmware-Engineering.md ================================================ # Firmware Architecture I've written a bunch of libraries when appropriate, things that can be used independantly by other applications. This also makes it easy to do tests. * the PTP-over-TCP/IP stuff and the Sony camera object is in one library called PtpIpCamera * in theory it is extendable to Canon and Nikon * the HTTP and JSON-RPC library for Sony cameras, called SonyHttpCamera * infrared command sending * low level Wi-Fi initialization and new client detection * extended image file decoding for LCD display * image sprite caching linked list * serial port command line handler (I wrote my own custom one instead of borrowing one) * serial port objects that can be enabled or disabled individually, like log levels, except not levels, but sources 3rd party libraries are used for the M5StickC hardware and Wi-Fi. Of course the main application involves a complex interaction between all of these libraries and the application itself. The ESP32 Wi-Fi stuff runs on its own RTOS thread, as ESP intended, and takes advantage of multi-core. Everything else is on another thread, the one that runs Arduino's `loop()` function. The Wi-Fi API calls are synchronous (I did try asynchronous and it didn't add much benefit). The various modules I wrote that has asynchronous elements offer a `poll()` or `task()` function that can be called during wait-loops. The menu system is abstracted into four classes that can be inherited: Submenu, Menu Item, Configurable App, Configurable Item The submenu and app classes feature pages that can be navigated, a list of pages in a linked list makes up a submenu or app. Each page is a class that is represented by a PNG image or an item that can be configured. All of these classes have a bunch of virtual functions that can be overridden by a subclass, such as `on_navTo()`, `on_spin()`, and the all important `on_execute()`. All of this makes it easy to put together an app and also customize it to respond to the gesture controls in particular ways, while still keeping many default behaviors so that the entire project has consistency in user experience. The major menu items uses full screen sized PNG files, and is only refreshed when required, which saves on some power and lag since it's slow to read from external flash and then updating the entire screen. Text elements are drawn quickly directly to only a small region of the screen. Smaller icons, such as the status bar, are cached into sprites to avoid the read from external flash. The code that handles the status bar, which reads the PMIC data (battery voltage and etc) is in a polling function that runs only periodically. The I2C transactions are slow and cost battery power. The IMU has to be polled at 40ms intervals because that's what the AHRS algorithm requires. Originally the clock animation was also cached for speed, but it took way too much memory and caused other memory allocation to fail, so now, the clock is actually drawn computationally. ## User Interaction It's fun trying to create a good user experience with only two buttons and a screen, luckily there's also an IMU sensor too. In general, the side-button means "next", the big-button means "activate", and the power button only turns the device on and off. The M5StickC library provides an implementation of the AHRS filter to calculate angles from accelerometer and gyroscope data. The output isn't very good but is good enough for me to not bother re-writing the filter. For focus pulling and zooming, the user tilts the device left or right to determine both the direction and speed of focus change. To adjust values in the configuration screens, tilting left means the user wants the value to go down, tilting right means the user wants the value to go up. To change the delay for remote shutter (which only offers 3 options), the user spins the whole device around to change the delay. This is currently slightly buggy because the ARHS output does not handle upside-down at all, a workaround is used to handle a full spin. To set the shutter speed and ISO for the dual-shutter, the setting is actually obtained from the camera itself when the user pressed the big button. As in, the camera itself is the user input. The trigger to activate dual-shutter is also constantly monitoring the camera's focus status, so when the user presses the shutter button on the camera half-way down, the dual-shutter code executes. My original implementation had one long chain of menu items, and the user could tilt left to navigate backwards. But after adding more features, I decided to go with nested menus instead of just one flat menu. ### HTTP Server for Smartphones When I added support for cameras that used the HTTP protocol, I also had to add a way for the user to input the camera's own Wi-Fi SSID and password. This is done by serving up a web page interface. The user can use a smartphone to type the Wi-Fi credentials into this web page. There are a total of 9 profile slots for Wi-Fi credentials, so theoretically the user can own 9 different cameras and use them all with the same remote. The profile number can be selected from the Wi-Fi configuration menu (without using a smartphone). ### Wi-Fi Password Input When I added support for older cameras, I also added an auto-connect function that utilizes Wi-Fi scanning to find cameras. For this to work, the user needs to be able to input a password. While a smartphone can be used for this, it would interrupt the workflow significantly. So I implemented a keyboard. There were several ways I could've done this: * for each character in the password string, the user will scroll through all available characters with buttons * this is common in devices with more buttons for up and down, or some sort of wheel * T9 or T9-like keypad, navigated by either buttons or IMU * this is what Sony cameras implement * something that represents a real keyboard * navigated by IMU, inspired by the IMU keyboard on PlayStation 4 I did a survey of Sony camera users and determined that the randomly-generated passwords mostly contain letters (both upper and lower case) and numbers. With this in mind, ended up deciding to implement a 3 row keyboard navigated by IMU angle. The big-button is used to press a key selected by moving the remote, the side-button is a shift function. The power button became a cancel button. They keyboard layout itself contains a backspace key and the enter key. In practice, the IMU certainly did have enough precision for this input method to be very usable (my main concern was noisy or imprecise IMU data making it difficult to select the right key). ## Resource Usage The built process (on October 18 2022) reports that Sketch uses 1182745 bytes (90%) of program storage space. Maximum is 1310720 bytes. Global variables use 72312 bytes (22%) of dynamic memory, leaving 255368 bytes for local variables. Maximum is 327680 bytes. The local variable memory is further used for image sprites. It actually does not have enough memory to store every single sprite that I can come up with, so the sprite manager is constantly being unloaded. The PNG files occupy a bit less than 440kb total (I am using PngOptimizer to make sure they are totally compressed). There should be 4MB of flash memory available for files like this. This project is written in C++. The M5StickC does support MicroPython, and I did initially attempt to write this whole project using MicroPython. That failed, the python code actually ran fine on my PC, but threw a out-of-memory exception as soon as it tried the first `import` statement on ESP32. The big problem is that the MicroPython port for M5StickC is horribly inefficient. [I have written an entire rant about it.](M5StickC-MicroPython-Sucks-Rant.md) ================================================ FILE: doc/M5StickC-MicroPython-Sucks-Rant.md ================================================ The M5Stack and M5Stick MicroPython port is terrible. Do not use it. The first major problem is that it's simply too memory limited. This project is simply a remote control for a camera, it's not that complicated. But I wrote all of the Python code out, tested it on my PC first, then moved it over to the M5StickC, and it failed to import due to memory limits! I'm using built-in libraries as much as possible and import statements don't account for allocation of buffers so you can't blame me for this. The second major problem is that it's running all of your code within a container called "m5cloud". This container allows you to use their website-based IDE to remotely update your code (so making a soft-access-point device is also impossible with the web IDE, yay...). It sounds nice but it means you never have access to the MicroPython REPL, print() statements cannot be shown, and there's a global try-catch that puts whatever error you encounter onto the LCD screen. Do you want to read your exceptions on a 80 pixel wide LCD screen?! There's no stacktrace! The container also means each import statement is permanent for the session, you can't edit a file and run import again, the change won't take effect until you fully reboot. I bet these monkeys wrote "m5cloud" in plaintext Python instead of a proper C backend so it's hogging all the dynamic memory. I'll never find out since they hide the source code. They've even discountinued their desktop IDE so you can't use the latest IDE with the USB port. Even with the VSCode extension, you can't view output from print() statements, and worse, the extension holds the COM port open so you can't have a second serial terminal application running. (my solution to all of this is to use com0com along with some of my own code to make a serial-port-spy program, I can send it the KeyboardInterrupt exception to exit the m5cloud container and use REPL) (officially, M5Stack don't care, and other community members have said their own solutions involve side channels like MQTT or using Bluetooth LE with a terminal on a smartphone) Their MicroPython API calls are also horribly documented, you can try going into github and reading their .py files but you'll soon realize that nothing matches up and everything is outdated. Their IR LED only has one modulation encoder implemented in MicroPython and they made it in a way that stops anybody from implementing another modulation encoder. (I do love MicroPython, I have done a project that involved a Wi-Fi web server which did real-time image processing from a camera, pattern recognition on the image, etc. Totally taking advantage of memory management and dynamic typing) Working with C++ is much better. M5Stack basically gathered a crap-ton of Arduino libraries that other people wrote and tossed it into their own library and released it. M5Stack's own code is pretty poorly documented. (Espressif's code is pretty well documented!) M5Stack seems to have removed the JPG and PNG decoders from the M5StickC library, it seems like they thought "it doesn't have a microSD slot so it won't have files", which is completely wrong since all ESP32 variants have a flash file-system. I had to re-implement these decoders. ================================================ FILE: doc/Shutter-Release-Cable-Connector.md ================================================ # Shutter Release Cable Attachment The use of the software, firmware, instructions, and scripts on this site is done at your own discretion and risk and with agreement that you will be solely responsible for any damage to your electronic devices or loss of data that results from such activities. It may be wise to use the intervalometer mode with a shutter release cable, due to the chance of the Wi-Fi connection being unreliable or having too much latency. The M5StickC-Plus that the Alpha-Fairy is built upon has a pin connector at the end. You can construct something that connects a shutter release cable to this connector. ![](img/shutter_release_cable_plugged_in.jpg) ![](img/shutter_release_cable_connector.jpg) You need: * a shutter release cable for Sony cameras, it should be USB-micro-B on one end and 3.5mm TRS male plug on the other * a chunk of perfboard, a kind of circuit board that has holes arranged in a grid. you only need 5 holes by 8 holes so you will probably buy a big one and cut it down * a PJ-320A jack, which is a 3.5mm TRS female jack, commonly found on Amazon/Ebay/(some other cheap online store) sold in large packs * some wire, soldering equipment, something that can cut perfboard, a small file, etc ![](img/shutter_release_cable_parts.png) This diagram below shows how it should be put together, make it look like the photo above ![](img/shutter_release_cable_design.png) Do not plug in your camera unless you are 100% sure you've wired this correctly. Also avoid charging or updating the firmware with the camera plugged in. If you have the skills, you can try adding an optocoupler to the circuit to further protect your camera. This is not required but it adds an additional layer of protection. ================================================ FILE: doc/Wishlist-for-Sony-Mirrorless-Camera-Remote-Protocol.md ================================================ ## Wishlist for Sony Mirrorless Camera Remote Protocol * Make the option to save to "Camera Only" an option on all models of cameras and for all modes * Give an option to unpair a computer without doing a full factory reset * Add focal length data to the device property packets * for all lenses, not just power zoom lenses * will allow for accurate inside-out camera 3D positional tracking without calibrating for lens focal length * Better implementation of manual focusing commands * need more step size options * need consistent relationships between step sizes * need more granularity in the focus plane distance readout, currently 0-100 * need a command to go-to a particular focus plane distance, at a particular speed * Camera needs to reattempt a connection when a connection fails * Commands to change exposure settings should not be ignored when photos are buffered * Shutter command needs an option that ignores the focus state, forcing the photo to be taken * Give access to custom buttons ================================================ FILE: doc/img/menu_map.afdesign ================================================ [File too large to display: 36.0 MB] ================================================ FILE: platformio.ini ================================================ ; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [platformio] src_dir = arduino_workspace/AlphaFairy lib_dir = arduino_workspace/libraries data_dir = arduino_workspace/AlphaFairy/data [env:m5stick-c] platform = espressif32 board = m5stick-c framework = arduino # no jtag pin on m5stick-c for debugging # debug_tool = esp-prog ================================================ FILE: screens_240/png2jpg.py ================================================ from PIL import Image import os, glob for i in glob.glob("*.png"): j = Image.open(i) nm, ext = os.path.splitext(i) savename = nm + ".jpg" if os.path.isfile(savename): os.remove(savename) j.convert("RGB").save(savename, quality=100, subsampling=0) print(savename)